public SpaceView this[RoomPoint loc] { get { return(new SpaceView(m_world.Room[loc])); } }
public SpaceView this[RoomPoint loc] { get { return(((IWorldView)m_worldView)[loc]); } }
private bool CompareRange(RoomPoint point, int lowerX, int higherX, int lowerZ, int higherZ) { Structure.GetXPointRange(point, out var compareX, out var compreHighX); if (lowerX != compareX || compreHighX != higherX) return true; Structure.GetZPointRange(point, out var compareZ, out var compreHighZ); return lowerZ != compareZ || compreHighZ != higherZ; }
public void AddRootLife(Unit unit, RoomPoint loc) { bool isExist = m_rootLives.ContainsKey(loc); if (!isExist) { m_rootLives[loc] = new LinkedList <Unit>(); } m_rootLives[loc].Add(unit); ShowBaseLifeGameStatus(); }
/// <summary> /// 获取鼠标处于网格的位置 /// </summary> /// <returns></returns> private RoomPoint?GetMouseClickPoint(Point mouseLoc) { Point deviationPoint = new Point(mouseLoc.X - c_lifeGameShow.Location.X, mouseLoc.Y - c_lifeGameShow.Location.Y); if (deviationPoint.X < 0 || deviationPoint.Y < 0) { return(null); } else { int x = (int)((deviationPoint.X / m_lifeGameView.WidthUnit) + 0.5f); int y = (int)((deviationPoint.Y / m_lifeGameView.HeightUnit) + 0.5f); RoomPoint result = new RoomPoint(x, y); return(result); } }
/// <summary> /// GetRoofSupport: Adds the supporting columns at the edge of the roof down to the ceiling of the highest room. This /// prevents open air. /// </summary> private IEnumerable<RoomPoint> GetRoofSupport(RoomPoint p, int y) { var points = new List<RoomPoint>(); bool addSupport = Structure.GetPoint(p.X, 0, p.Z).BlockName == WallBlock; if (!addSupport) { Structure.GetZPointRange(p, out var lowerZ, out var higherZ); Structure.GetXPointRange(p, out var lowerX, out var higherX); var left = Structure.GetPoint(p.X - 1, 0, p.Z); var right = Structure.GetPoint(p.X + 1, 0, p.Z); var front = Structure.GetPoint(p.X, 0, p.Z + 1); var back = Structure.GetPoint(p.X, 0, p.Z - 1); addSupport = left == null || right == null || front == null || back == null; if (!addSupport) { var h = Structure.GetPointHeight(p); addSupport = h != Structure.GetPointHeight(left) || h != Structure.GetPointHeight(right) || h != Structure.GetPointHeight(front) || h != Structure.GetPointHeight(back); } if (!addSupport) { addSupport = CompareRange(left, lowerX, higherX, lowerZ, higherZ) || CompareRange(right, lowerX, higherX, lowerZ, higherZ) || CompareRange(front, lowerX, higherX, lowerZ, higherZ) || CompareRange(back, lowerX, higherX, lowerZ, higherZ); } } if (addSupport) { for (var wallY = y - 1; wallY >= Structure.GetPointHeight(p); wallY--) { points.Add(new RoomPoint {X = p.X, Y = wallY, Z = p.Z, Order = 0, BlockName = Structure.WallBlock}); } } return points; }
public void BuildLevel() { startingRoomPoints = new RoomPoint[levelSize]; Transform pointHolder = GameObject.Find("Room Points").transform; Transform borderHolder = GameObject.Find("Borders").transform; for (int i = 0; i < levelSize; i++) { for (int j = 0; j < levelSize; j++) { RoomPoint newRoomPoint = Instantiate(roomPoint, new Vector2(roomStep * i, -roomStep * j), Quaternion.identity); newRoomPoint.transform.parent = pointHolder; Transform newBorderWall; if (newRoomPoint.transform.position.x % roomStep == 0 && newRoomPoint.transform.position.y == 0) { startingRoomPoints[i] = newRoomPoint; newBorderWall = Instantiate(borderWall, new Vector3(newRoomPoint.transform.position.x, 5.5f), Quaternion.identity); newBorderWall.parent = borderHolder; } if (newRoomPoint.transform.position.x % roomStep == 0 && newRoomPoint.transform.position.y == (1 - levelSize) * roomStep) { newBorderWall = Instantiate(borderWall, new Vector3(newRoomPoint.transform.position.x, -levelSize * roomStep + 4.5f), Quaternion.identity); newBorderWall.parent = borderHolder; } if (newRoomPoint.transform.position.x == 0 && newRoomPoint.transform.position.y % roomStep == 0) { newBorderWall = Instantiate(borderWall, new Vector3(-5.5f, newRoomPoint.transform.position.y), Quaternion.AngleAxis(90, Vector3.forward)); newBorderWall.parent = borderHolder; } if (newRoomPoint.transform.position.x == limit && newRoomPoint.transform.position.y % roomStep == 0) { newBorderWall = Instantiate(borderWall, new Vector3(levelSize * roomStep - 4.5f, newRoomPoint.transform.position.y), Quaternion.AngleAxis(90, Vector3.forward)); newBorderWall.parent = borderHolder; } } } }
/// <summary> /// /// </summary> public static List <RoomPoint> GetRoomPoints(int roomNumber) { var points = new List <RoomPoint>(); if (roomNumber >= 1) { var room = new RoomPoint { PointX = 35, PointY = 14, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 34, PointY = 83, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 15, PointY = 84, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 13, PointY = 135, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 34, PointY = 136, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 34, PointY = 245, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 336, PointY = 242, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 336, PointY = 137, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 376, PointY = 136, RoomNumber = 1 }; points.Add(room); room = new RoomPoint { PointX = 142, PointY = 14, RoomNumber = 1 }; points.Add(room); } if (roomNumber >= 2) { var room = new RoomPoint { PointX = 445, PointY = 126, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 389, PointY = 241, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 763, PointY = 241, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 571, PointY = 139, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 559, PointY = 147, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 516, PointY = 128, RoomNumber = 2 }; points.Add(room); room = new RoomPoint { PointX = 487, PointY = 148, RoomNumber = 2 }; points.Add(room); } if (roomNumber >= 3) { var room = new RoomPoint { PointX = 460, PointY = 299, RoomNumber = 3 }; points.Add(room); room = new RoomPoint { PointX = 458, PointY = 455, RoomNumber = 3 }; points.Add(room); room = new RoomPoint { PointX = 675, PointY = 455, RoomNumber = 3 }; points.Add(room); room = new RoomPoint { PointX = 673, PointY = 351, RoomNumber = 3 }; points.Add(room); room = new RoomPoint { PointX = 551, PointY = 342, RoomNumber = 3 }; points.Add(room); } return(points); }
private static void InitializeRoomPoint(MyEventsContext context, EventDefinition eventDefinition) { RoomPoint room; if (eventDefinition.RoomNumber >= 1) { room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 35; room.PointY = 14; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 34; room.PointY = 83; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 15; room.PointY = 84; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 13; room.PointY = 135; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 34; room.PointY = 136; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 34; room.PointY = 245; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 336; room.PointY = 242; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 336; room.PointY = 137; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 376; room.PointY = 136; room.RoomNumber = 1; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 142; room.PointY = 14; room.RoomNumber = 1; context.RoomPoints.Add(room); } if (eventDefinition.RoomNumber >= 2) { room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 445; room.PointY = 126; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 389; room.PointY = 241; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 763; room.PointY = 241; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 571; room.PointY = 139; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 559; room.PointY = 147; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 516; room.PointY = 128; room.RoomNumber = 2; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 487; room.PointY = 148; room.RoomNumber = 2; context.RoomPoints.Add(room); } if (eventDefinition.RoomNumber >= 3) { room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 460; room.PointY = 299; room.RoomNumber = 3; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 458; room.PointY = 455; room.RoomNumber = 3; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 675; room.PointY = 455; room.RoomNumber = 3; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 673; room.PointY = 351; room.RoomNumber = 3; context.RoomPoints.Add(room); room = new RoomPoint(); room.EventDefinitionId = eventDefinition.EventDefinitionId; room.PointX = 551; room.PointY = 342; room.RoomNumber = 3; context.RoomPoints.Add(room); } context.SaveChanges(); }
public void RemoveLife(RoomPoint loc) { m_rootLives.Remove(loc); ShowBaseLifeGameStatus(); }
public void AddRootLife(RoomPoint loc) { AddRootLife(new Unit(), loc); }