Files
LNXSDK/leenkx/Sources/leenkx/logicnode/NetworkSendMessageNode.hx
2025-01-22 16:18:30 +01:00

803 lines
23 KiB
Haxe

package leenkx.logicnode;
import leenkx.network.Connect;
import leenkx.network.Buffer;
import haxe.io.Bytes;
import iron.object.Object;
import iron.math.Vec4;
import iron.math.Quat;
import iron.math.Mat4;
class NetworkSendMessageNode extends LogicNode {
public var property0: String;
public var property1: String;
public var id: String;
public var all: Bool;
public function new(tree:LogicTree) {
super(tree);
}
override function run(from:Int) {
var api: String = inputs[2].get();
var message: Dynamic = inputs[3].get();
if (message == null) return;
switch (property1) {
case "string":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var buffer = new Buffer();
buffer.writeBytes(Bytes.ofString(message));
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var buffer = new Buffer();
buffer.writeBytes(Bytes.ofString(message));
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var buffer = new Buffer();
buffer.writeBytes(Bytes.ofString(message));
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var buffer = new Buffer();
buffer.writeBytes(Bytes.ofString(message));
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var buffer = new Buffer();
buffer.writeBytes(Bytes.ofString(message));
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "vector":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "float":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeFloat(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeFloat(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeFloat(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeFloat(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeFloat(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "integer":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeInt32(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeInt32(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeInt32(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeInt32(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
bytesOut.writeInt32(message);
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "boolean":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var buffer = new Buffer();
if(message == true){
buffer.writeBytes(Bytes.ofString("true"));
} else {
buffer.writeBytes(Bytes.ofString("false"));
}
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var buffer = new Buffer();
if(message == true){
buffer.writeBytes(Bytes.ofString("true"));
} else {
buffer.writeBytes(Bytes.ofString("false"));
}
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var buffer = new Buffer();
if(message == true){
buffer.writeBytes(Bytes.ofString("true"));
} else {
buffer.writeBytes(Bytes.ofString("false"));
}
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var buffer = new Buffer();
if(message == true){
buffer.writeBytes(Bytes.ofString("true"));
} else {
buffer.writeBytes(Bytes.ofString("false"));
}
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var buffer = new Buffer();
if(message == true){
buffer.writeBytes(Bytes.ofString("true"));
} else {
buffer.writeBytes(Bytes.ofString("false"));
}
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "transform":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var bytesOut = new haxe.io.BytesOutput();
var transform:Mat4 = message;
var loc = new Vec4();
var rot = new Quat();
var scale = new Vec4();
transform.decompose(loc, rot, scale);
var l = Reflect.fields(loc);
for (b in l) {
bytesOut.writeFloat(Reflect.field(loc, b));
}
var r = Reflect.fields(rot);
for (b in r) {
bytesOut.writeFloat(Reflect.field(rot, b));
}
var s = Reflect.fields(scale);
for (b in s) {
bytesOut.writeFloat(Reflect.field(scale, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var transform:Mat4 = message;
var loc = new Vec4();
var rot = new Quat();
var scale = new Vec4();
transform.decompose(loc, rot, scale);
var l = Reflect.fields(loc);
for (b in l) {
bytesOut.writeFloat(Reflect.field(loc, b));
}
var r = Reflect.fields(rot);
for (b in r) {
bytesOut.writeFloat(Reflect.field(rot, b));
}
var s = Reflect.fields(scale);
for (b in s) {
bytesOut.writeFloat(Reflect.field(scale, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var transform:Mat4 = message;
var loc = new Vec4();
var rot = new Quat();
var scale = new Vec4();
transform.decompose(loc, rot, scale);
var l = Reflect.fields(loc);
for (b in l) {
bytesOut.writeFloat(Reflect.field(loc, b));
}
var r = Reflect.fields(rot);
for (b in r) {
bytesOut.writeFloat(Reflect.field(rot, b));
}
var s = Reflect.fields(scale);
for (b in s) {
bytesOut.writeFloat(Reflect.field(scale, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var transform:Mat4 = message;
var loc = new Vec4();
var rot = new Quat();
var scale = new Vec4();
transform.decompose(loc, rot, scale);
var l = Reflect.fields(loc);
for (b in l) {
bytesOut.writeFloat(Reflect.field(loc, b));
}
var r = Reflect.fields(rot);
for (b in r) {
bytesOut.writeFloat(Reflect.field(rot, b));
}
var s = Reflect.fields(scale);
for (b in s) {
bytesOut.writeFloat(Reflect.field(scale, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var transform:Mat4 = message;
var loc = new Vec4();
var rot = new Quat();
var scale = new Vec4();
transform.decompose(loc, rot, scale);
var l = Reflect.fields(loc);
for (b in l) {
bytesOut.writeFloat(Reflect.field(loc, b));
}
var r = Reflect.fields(rot);
for (b in r) {
bytesOut.writeFloat(Reflect.field(rot, b));
}
var s = Reflect.fields(scale);
for (b in s) {
bytesOut.writeFloat(Reflect.field(scale, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
case "rotation":
if(property0 == "client"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocket);
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
connection.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
#if sys
else if(inputs[5].get() == true){
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var id = inputs[4].get();
if (id == null) return;
if(property0 == "securehost"){
var connection = cast(inputs[1].get(), leenkx.network.WebSocketSecureServer<SecureHostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
} else {
var connection = cast(inputs[1].get(), leenkx.network.WebSocketServer<HostHandler>);
for(h in connection.handlers){
if(h.id == id){
var bytesOut = new haxe.io.BytesOutput();
var i = Reflect.fields(message);
for (b in i) {
bytesOut.writeFloat(Reflect.field(message, b));
}
var buffer = new Buffer();
buffer.writeBytes(bytesOut.getBytes());
if(api != "" || api != null){
buffer.writeBytes(Bytes.ofString(api));
}
try {
h.send(buffer);
} catch(error) {
trace("Error: " + error);
}
}
}
}
}
#end
runOutput(0);
default: throw "Failed to send data.";
}
}
}