added distance to network message
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package kernel.peripherals;
|
||||
|
||||
import kernel.log.Log;
|
||||
import kernel.net.Package;
|
||||
import kernel.net.INetworkInterface;
|
||||
|
||||
@@ -7,9 +8,9 @@ using tink.CoreApi;
|
||||
|
||||
class Modem implements INetworkInterface implements IPeripheral {
|
||||
public final addr:String;
|
||||
public var onMessage(default, null):Signal<Package>;
|
||||
public var onMessage(default, null):Signal<{pack:Package,dist:Null<Float>}>;
|
||||
|
||||
private final onMessageTrigger:SignalTrigger<Package> = Signal.trigger();
|
||||
private final onMessageTrigger:SignalTrigger<{pack:Package,dist:Null<Float>}> = Signal.trigger();
|
||||
private final native:cc.periphs.Modem.Modem;
|
||||
|
||||
@:allow(kernel.peripherals)
|
||||
@@ -19,17 +20,21 @@ class Modem implements INetworkInterface implements IPeripheral {
|
||||
this.addr = addr;
|
||||
|
||||
KernelEvents.instance.onModemMessage.handle(params ->{
|
||||
if (params.addr == this.addr){
|
||||
var pack:Package = {
|
||||
fromID: params.message.fromID,
|
||||
toID: params.message.toID,
|
||||
msgID: params.message.msgID,
|
||||
type: params.message.type,
|
||||
data: params.message.data,
|
||||
ttl: params.message.ttl,
|
||||
};
|
||||
try{
|
||||
if (params.addr == this.addr){
|
||||
var pack:Package = {
|
||||
fromID: params.message.fromID,
|
||||
toID: params.message.toID,
|
||||
msgID: params.message.msgID,
|
||||
type: params.message.type,
|
||||
data: params.message.data,
|
||||
ttl: params.message.ttl,
|
||||
};
|
||||
|
||||
this.onMessageTrigger.trigger(pack);
|
||||
this.onMessageTrigger.trigger({pack: pack, dist: params.distance});
|
||||
}
|
||||
}catch(e:Dynamic){
|
||||
Log.error("Error while parsing modem message");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user