view src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java @ 393:38021fceabef draft multicast

test commit
author tatsuki
date Tue, 17 Jun 2014 17:39:47 +0900
parents a049f025583b
children
line wrap: on
line source

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();
	}
	

}