view src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java @ 618:41a5977e754c dispose

aquarium
author suruga
date Wed, 26 Jul 2017 16:17:33 +0900
parents c9175c310987
children 15eeb439830c
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);
        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();
    }
}