added distance to network message
This commit is contained in:
@@ -13,5 +13,5 @@ interface INetworkInterface {
|
||||
public function send(chan: Int,replyChan: Int,payload: Any):Void;
|
||||
public function name():String;
|
||||
public function getBaseRoutingCost():Int;
|
||||
public var onMessage (default, null): Signal<Package>;
|
||||
public var onMessage (default, null): Signal<{pack:Package,?dist:Float}>;
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ using tink.CoreApi;
|
||||
class Loopback implements INetworkInterface {
|
||||
public static final instance:Loopback = new Loopback();
|
||||
|
||||
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 var openChans: Array<Int> = [];
|
||||
|
||||
private function new() {
|
||||
@@ -38,7 +38,7 @@ class Loopback implements INetworkInterface {
|
||||
|
||||
public function send(chan:Int, replyChan:Int, payload:Any) {
|
||||
if (this.openChans.contains(chan)){
|
||||
this.onMessageTrigger.trigger(payload);
|
||||
this.onMessageTrigger.trigger({pack:payload,dist:null});
|
||||
}else{
|
||||
Log.silly("Loopback got package on non open channel");
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class Net {
|
||||
}
|
||||
|
||||
private function setupInterf(interf: INetworkInterface) {
|
||||
interf.onMessage.handle(pack -> handle(pack,interf));
|
||||
interf.onMessage.handle(e -> handle(e.pack,interf,e.dist));
|
||||
interf.listen(networkID);
|
||||
interf.listen(BRODCAST_PORT);
|
||||
}
|
||||
@@ -68,7 +68,7 @@ class Net {
|
||||
/**
|
||||
Called when a new package comes in.
|
||||
**/
|
||||
private function handle(pack:Package,interf: INetworkInterface) {
|
||||
private function handle(pack:Package,interf: INetworkInterface, ?dist: Float) {
|
||||
if (pack.toID == this.networkID || pack.toID == Net.BRODCAST_PORT){
|
||||
switch pack.type {
|
||||
case Data(_) | DataNoResponse(_):
|
||||
|
||||
Reference in New Issue
Block a user