Ejemplo n.º 1
0
        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.");
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }