package nl.tudelft.bw4t.client.controller.percept.processors; import java.util.Collections; import java.util.List; import java.util.Stack; import nl.tudelft.bw4t.client.controller.ClientMapController; import nl.tudelft.bw4t.map.view.ViewBlock; import eis.iilang.Numeral; import eis.iilang.Parameter; import eis.iilang.ParameterList; /** * Processes incoming holdingblocks percepts * * @author W.Pasman 21oct14 * */ public class HoldingBlocksProcessor implements PerceptProcessor { @Override public void process(List<Parameter> parameters, ClientMapController clientMapController) { Stack<ViewBlock> blockstack = new Stack<ViewBlock>(); // notice, first element in list should have been pushed last. // but we push it first now. for (Parameter arg : ((ParameterList) (parameters.get(0)))) { long id = ((Numeral) arg).getValue().longValue(); blockstack.push(clientMapController.getBlock(id)); } // to compensate for the wrong push order, we reverse Collections.reverse(blockstack); clientMapController.getTheBot().setHoldingStack(blockstack); } }