public void SetEntries() { if (Count > 0) { First = m_List[0]; HighLightRectangle(First.Rectangle, 1150); if (m_Number < Count) { Current = m_List[m_Number]; HighLightRectangle(Current.Rectangle, 1151); } else Current = null; if (m_Number - 1 > 0) { Last = m_List[m_Number - 1]; HighLightRectangle(Last.Rectangle, 1152); } else Last = null; } else { Current = null; First = null; Last = null; } }
private static bool NewLocation(CrateRectangle rect, bool first, ref int x, ref int y, ref int movementpoints) { int changecoord = 0; bool vertical = false; bool positive = false; switch (first ? (int)rect.FirstDirection : (int)rect.SecondDirection) { case (int)Direction.North: changecoord = rect.Rectangle.Start.Y; vertical = true; break; case (int)Direction.East: changecoord = rect.Rectangle.End.X; positive = true; break; case (int)Direction.South: changecoord = rect.Rectangle.End.Y; positive = true; vertical = true; break; case (int)Direction.West: changecoord = rect.Rectangle.Start.X; break; } int tochange = vertical ? y : x; int difference = 0; bool completed = false; if (positive && (tochange + movementpoints) <= changecoord) { tochange = tochange + movementpoints; completed = true; } else if ((tochange - movementpoints) >= changecoord) { tochange = tochange - movementpoints; completed = true; } if(!completed) difference = changecoord - tochange + (first ? 0 : (positive ?1 : -1)); tochange = tochange + difference; if (vertical) y = tochange; else x = tochange; movementpoints = movementpoints - Math.Abs(difference); return completed; }
public void NewRegion_Callback(Mobile from, Map map, Point3D start, Point3D end, object state) { int loc = (int)state; Rectangle2D rect = new Rectangle2D(start, end); if (loc < m_List.Count) { m_List[loc] = new CrateRectangle(rect); Number = loc; } else { m_List.Add(new CrateRectangle(rect)); Number = m_List.Count - 1; } from.SendGump(new RegionSettingsGump(this)); }
public static bool IsFirstRectangle(CrateRectangle rect) { return rect == Rectangles[0]; }