public void placeObject(Block block, Vector2 pos, float deg, bool wasDummy = true) { if (canPlacePiece(pos, block, deg)) { level.setBlock((int)pos.x, (int)pos.y, block, deg); if (!wasDummy) { pos = transformToGrid(pos, block.getWidthHeight(deg)); grid.placeObject(pos.x, pos.y, block.getBlueprintPrefab(), deg); } else { AudioPlayer("Building"); saveToDevice(); } drawRoad(); } else { level.removeBlock(block); block.removeBlueprintPrefab(); AudioPlayer("error"); } level.storeCompleteStatus(); }
public void hover(Block block, Vector2 pos, float deg) { GameObject prefab = block.getBlueprintPrefab(); Vector2 temp = transformToGrid(pos, block.getWidthHeight(deg)); Renderer rend = prefab.GetComponent <Renderer> (); rend.material.color = canPlacePiece(pos, block, deg) ? Color.white : Color.red; grid.placeDummy(temp.x, temp.y, prefab, deg); }
private bool canPlacePiece(Vector2 pos, Block piece, float deg) { Vector2 dimensions = piece.getWidthHeight(deg); if (pos.x < 0 || pos.y < 0 || pos.x + dimensions.x > level.getWidth() || pos.y + dimensions.y > level.getHeight()) { return(false); } level.removeBlock(piece); return(level.canSet((int)pos.x, (int)pos.y, piece, deg)); }