view src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java @ 394:c0cf9fe00d77 multicast

add direction Information
author sugi
date Tue, 17 Jun 2014 17:11:18 +0900
parents a049f025583b
children f64e53200228
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);
		
		FishInfo fishInfo = new FishInfo(afp.getX(),afp.getY(),afp.getZ());
		fishInfo.rolX = dfp.rolX;
		fishInfo.rolY = dfp.rolY;
		fishInfo.rolZ = dfp.rolZ;
		fishInfo.rotate = dfp.rotate;
		ods.update(myName+"FishabsoluteP", fishInfo);
		
		this.recycle();
	}
	

}