forked from LeenkxTeam/LNXSDK
104 lines
4.3 KiB
Haxe
104 lines
4.3 KiB
Haxe
package leenkx.logicnode;
|
|
import leenkx.system.Event;
|
|
import leenkx.network.Leenkx;
|
|
import iron.object.Object;
|
|
|
|
class LeenkxEventNode extends LogicNode {
|
|
public var property0: String;
|
|
public var property1: String;
|
|
|
|
public var value: String;
|
|
public var listener: TEvent = null;
|
|
public var net_Url: String;
|
|
|
|
public function new(tree:LogicTree) {
|
|
super(tree);
|
|
tree.notifyOnInit(init);
|
|
}
|
|
|
|
function init() {
|
|
if (property0 == "client") {
|
|
net_Url = inputs[0].get();
|
|
switch (property1) {
|
|
case "onopen": value = Leenkx.onOpenEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onmessage": value = Leenkx.onMessageEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onerror": value = Leenkx.onErrorEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onclose": value = Leenkx.onCloseEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onseen": value = Leenkx.onSeenEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onserver": value = Leenkx.onServerEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onconnections": value = Leenkx.onConnectionsEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onping": value = Leenkx.onPingEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onleft": value = Leenkx.onLeftEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "ontimeout": value = Leenkx.onTimeOutEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onrpc": value = Leenkx.onRpcEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onrpcresponse": value = Leenkx.onRpcResponseEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onwireleft": value = Leenkx.onWireLeftEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onwireseen": value = Leenkx.onWireSeenEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "ontorrent": value = Leenkx.onTorrentEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "ontracker": value = Leenkx.onTrackerEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onannounce": value = Leenkx.onAnnounceEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
default: throw "Failed to set client event type.";
|
|
}
|
|
} else if (property0 == "host") {
|
|
#if sys
|
|
var net_Domain = inputs[0].get();
|
|
var net_Port = inputs[1].get();
|
|
net_Url = "ws://" + net_Domain + ":" + Std.string(net_Port);
|
|
switch (property1) {
|
|
case "onopen": value = Leenkx.onOpenEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onmessage": value = Leenkx.onMessageEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onerror": value = Leenkx.onErrorEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onclose": value = Leenkx.onCloseEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
default: throw "Failed to set host event type.";
|
|
}
|
|
#end
|
|
} else if (property0 == "securehost"){
|
|
#if sys
|
|
var net_Domain = inputs[0].get();
|
|
var net_Port = inputs[1].get();
|
|
net_Url = "wss://" + net_Domain + ":" + Std.string(net_Port);
|
|
switch (property1) {
|
|
case "onopen": value = Leenkx.onOpenEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onmessage": value = Leenkx.onMessageEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onerror": value = Leenkx.onErrorEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
case "onclose": value = Leenkx.onCloseEvent;listener = Event.add(value, onEvent, tree.object.uid);
|
|
default: throw "Failed to set host event type.";
|
|
}
|
|
#end
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function onEvent() {
|
|
runOutput(0);
|
|
}
|
|
|
|
override function get(from: Int): Dynamic {
|
|
if (property0 == "host") {
|
|
return switch (from) {
|
|
case 1: Leenkx.id.get(net_Url);
|
|
case 2: Leenkx.data.get(net_Url);
|
|
default: throw "Unreachable";
|
|
}
|
|
}
|
|
else if (property0 == "securehost") {
|
|
return switch (from) {
|
|
case 1: Leenkx.id.get(net_Url);
|
|
case 2: Leenkx.data.get(net_Url);
|
|
default: throw "Unreachable";
|
|
}
|
|
}
|
|
else {
|
|
return switch (from) {
|
|
case 1: Leenkx.id.get(net_Url);
|
|
case 2: Leenkx.data.get(net_Url);
|
|
default: throw "Unreachable";
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|