view src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java @ 547:e91a574b69de dispose

remove index
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 18 Aug 2015 16:15:17 +0900
parents 15eeb439830c
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, this);
        info1.setKey("OwnFishP", this);
        info2.setKey("host", this);

    }

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