private Vector2 FindFirstFreeSpot(int x, int y, HullTypes type) { if (type == HullTypes.Weapon) { if (y + 1 <= size && !map.ContainsKey(new Vector2(x, y + 1))) { return new Vector2(x, y + 1); } else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y))) { return new Vector2(x + 1, y); } else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y))) { return new Vector2(x - 1, y); } return Vector2.zero; } else if (type == HullTypes.Hull) { if (y + 1 <= size && !map.ContainsKey(new Vector2(x, y + 1))) { return new Vector2(x, y + 1); } else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y))) { return new Vector2(x + 1, y); } else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y))) { return new Vector2(x - 1, y); } return Vector2.zero; } else { // ENGINE if (y - 1 >= -size && !map.ContainsKey(new Vector2(x, y - 1))) { return new Vector2(x, y + 1); } else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y))) { return new Vector2(x + 1, y); } else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y))) { return new Vector2(x - 1, y); } return Vector2.zero; } }
private Vector2 FindFirstFreeSpot(HullTypes type) { return FindFirstFreeSpot(0, 0, type); }