moisesjpelaez - General Fixes

This commit is contained in:
2025-09-19 16:57:49 +00:00
parent 8fd05d5514
commit fcbab54a0c

View File

@ -3,33 +3,35 @@ package leenkx.system;
import haxe.Constraints.Function; import haxe.Constraints.Function;
class Signal { class Signal {
var callbacks:Array<Function> = []; var callbacks: Array<Function> = [];
public function new() { public function new() {
} }
public function connect(callback:Function) { public function connect(callback: Function) {
if (!callbacks.contains(callback)) callbacks.push(callback); if (!callbacks.contains(callback)) callbacks.push(callback);
} }
public function disconnect(callback:Function) { public function disconnect(callback: Function) {
if (callbacks.contains(callback)) callbacks.remove(callback); if (callbacks.contains(callback)) callbacks.remove(callback);
} }
public function emit(...args:Any) { public function emit(...args: Any) {
for (callback in callbacks) Reflect.callMethod(this, callback, args); for (callback in callbacks.copy()) {
if (callbacks.contains(callback)) Reflect.callMethod(null, callback, args);
}
} }
public function getConnections():Array<Function> { public function getConnections(): Array<Function> {
return callbacks; return callbacks;
} }
public function isConnected(callBack:Function):Bool { public function isConnected(callBack: Function):Bool {
return callbacks.contains(callBack); return callbacks.contains(callBack);
} }
public function isNull():Bool { public function isNull(): Bool {
return callbacks.length == 0; return callbacks.length == 0;
} }
} }