public static void OnTarget_Construct(Mobile from, object targeted, object state) { string name = (string)state; IPoint3D p = (IPoint3D)targeted; if (p != null) { Point3D point = new Point3D(p); BuildingEntry entry; if (FileBasedBuilding.BuildingTable.TryGetValue(name, out entry)) { FileBasedBuilding building = null; switch (entry.BuildType) { case 0: building = new FileBasedBuilding(name); break; case 1: building = new FileBasedBuildingAddon(name); break; case 2: building = new FileBasedAddonBuilding(name); break; } if (building != null) building.MoveToWorld(point, from.Map); } else from.SendMessage("No building found with that name."); } }
public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; switch (info.ButtonID) { case (int)Buttons.Canc: break; case (int)Buttons.Settings: from.SendGump(new CRSGump(m_Stone)); break; case (int)Buttons.Build: if (m_Stone.Track == null) { Point3D loc = m_Stone.Location; if (FileBasedBuilding.BuildingTable.ContainsKey("RaceTrack")) { FileBasedAddonBuilding track = new FileBasedAddonBuilding("RaceTrack"); track.Location = new Point3D(loc.X - 13, loc.Y - 23, loc.Z); track.Map = m_Stone.Map; m_Stone.Track = (Item)track; } else from.SendMessage("The buildingTable does not contain this type."); } break; case (int)Buttons.Demolish: if (m_Stone.Track != null) { m_Stone.Track.Delete(); m_Stone.Track = null; } break; case (int)Buttons.Ok: if (info.IsSwitched((int)Buttons.Radiostart)) m_Stone.Running = true; if (info.IsSwitched((int)Buttons.Radiostop)) m_Stone.Running = false; break; case (int)Buttons.NewRects: new RectangleSetup(from,m_Stone,false); break; case (int)Buttons.ShowRects: if(m_Stone.Rectangles.Count > 0) new RectangleSetup(from, m_Stone, true); break; } }