Browse Source

added receiving portnum to packet processing

Erinn 8 years ago
parent
commit
b5cb5683e2
2 changed files with 12 additions and 1 deletions
  1. 1 0
      js/ui.js
  2. 11 1
      phaser.inc.php

+ 1 - 0
js/ui.js

@@ -21,6 +21,7 @@ function doPacketAnimation(src, dst, payload) {
 	var tween = game.add.tween(pkt);
 	pkt.dst = dst;
 	pkt.payload = payload;
+	pkt.portNum = getRemotePort(src, dst);
 	tween.to({x: devices[dst].sprite.centerX - 16, y: devices[dst].sprite.centerY - 16}, 3000, Phaser.Easing.Sinusoidal.InOut);
 	tween.onComplete.add(donePacket, pkt);
 	tween.start();

+ 11 - 1
phaser.inc.php

@@ -141,6 +141,15 @@ function getPortRecipient(from, portNum) {
 
 }
 
+// WARNING: this should only be called by the animator
+// devicescripts should not be able to access it
+function getRemotePort(src, dst) {
+	for (int i = 0; i < level.links.length; i++) {
+		if (level.links[i].src == src && level.links[i].dst == dst) return level.links[i].dstport;
+		if (level.links[i].src == dst && level.links[i].dst == src) return level.links[i].srcport;
+	}
+}
+
 function update() {
 }
 
@@ -150,6 +159,7 @@ function donePacket() {
 	var youWin = true;
 
 	for (var i = 0; i < level.triggers.length; i++) {
+		// todo: need to check properties, device name here
 		if (level.triggers[i].hasOwnProperty("times")) level.triggers[i].times--;
 
 		if (satisfiesTrigger(this, level.triggers[i])) {
@@ -171,7 +181,7 @@ function donePacket() {
 	}
 
 	if (devices[this.dst].hasOwnProperty("script")) {
-		devices[this.dst].script.onPacketReceived(devices[this.dst], this.payload);
+		devices[this.dst].script.onPacketReceived(devices[this.dst], this.payload, this.portNum);
 	}
 }