private EyeViewport initViewportForEye(final FieldOfView fov, final float xOffset) { final float left = (float) Math.tan(Math.toRadians(fov.getLeft())); final float right = (float) Math.tan(Math.toRadians(fov.getRight())); final float bottom = (float) Math.tan(Math.toRadians(fov.getBottom())); final float top = (float) Math.tan(Math.toRadians(fov.getTop())); final EyeViewport vp = new EyeViewport(); vp.x = xOffset; vp.y = 0.0f; vp.width = left + right; vp.height = bottom + top; vp.eyeX = left + xOffset; vp.eyeY = bottom; return vp; }
public void generateItemsCluster() { if (getItemsCluster().size() > 0) { throw new RuntimeException("Erro!"); } for (Cell cell : getCells().values()) { Item item = cell.getObjectsItem(); if (item != null) { FieldOfView fieldOfView = new FieldOfView(cell); Item keyItensCluster = null; Item keyItensClusterFOV = null; for (Cell cellOfFOV : fieldOfView.getCells().values()) { Item itemFOV = cellOfFOV.getObjectsItem(); if (itemFOV != null) { keyItensCluster = item.getkeyItensCluster(); keyItensClusterFOV = itemFOV.getkeyItensCluster(); if (keyItensClusterFOV != null) { if (keyItensCluster != null) { if (keyItensCluster != keyItensClusterFOV) { Collection<Item> itemsClusterFOVColl = itemsCluster.get(keyItensClusterFOV); for (Item itemsClusterFOV : itemsClusterFOVColl) { itemsClusterFOV.setKeyItensCluster(keyItensCluster); } itemsCluster.get(keyItensCluster).addAll(itemsClusterFOVColl); itemsCluster.remove(keyItensClusterFOV); } } else { item.setKeyItensCluster(keyItensClusterFOV); Collection<Item> coll = itemsCluster.get(keyItensClusterFOV); coll.add(item); } } } } if (keyItensCluster == null && keyItensClusterFOV == null) { item.setKeyItensCluster(item); Set<Item> ItemsClusterCollection = new HashSet<Item>(); ItemsClusterCollection.add(item); itemsCluster.put(item, ItemsClusterCollection); } } } }
public boolean doAction(FieldOfView game) { addActionPositionAtActor(game); game.killPiece(getPlayerNum(), getActor(), true); return true; }