# HG changeset patch # User sugi # Date 1402923096 -32400 # Node ID a049f025583b2f32a4e4132d2cad4f1ab58627ff # Parent e29cf08ad1f30a4086fab0235dcd5a69df0ed572 add CalculatePosition CodeSegment diff -r e29cf08ad1f3 -r a049f025583b src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java Mon Jun 16 21:51:36 2014 +0900 @@ -0,0 +1,38 @@ +package alice.test.topology.aquarium.fx; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class CalculatePosition extends CodeSegment { + + private Receiver info = ids.create(CommandType.TAKE); // diff fish position value + private Receiver info1 = ids.create(CommandType.TAKE); // absolute fish position value + private Receiver info2 = ids.create(CommandType.PEEK); + + + public CalculatePosition(String key){ + info.setKey(key+"FishdiffP"); + info1.setKey("OwnFishP"); + info2.setKey("host"); + + } + + @Override + public void run() { + FishInfo dfp = info.asClass(FishInfo.class); + FishInfo afp = info1.asClass(FishInfo.class); + String myName = info2.asString(); + + afp.setX(afp.getX() + dfp.getX()); + afp.setY(afp.getY() + dfp.getY()); + afp.setZ(afp.getZ() + dfp.getZ()); + + ods.update(info1.key, afp); + ods.update(myName+"FishabsoluteP", new FishInfo(afp.getX(),afp.getY(),afp.getZ())); + + this.recycle(); + } + + +}