예제 #1
0
 public void UpdateTele()
 {
     telelist.Clear();
     foreach (Map.Object key in mapRenderer.Map.Objects)
     {
         if (ThingDb.Things[key.Name].Xfer == "TransporterXfer" && key.Extent != -2)
         {
             TransporterXfer extraData = key.GetExtraData <TransporterXfer>();
             if (!telelist.ContainsKey(key))
             {
                 telelist.Add(key, extraData.ExtentLink);
             }
         }
         else if ((ThingDb.Things[key.Name].Xfer == "ElevatorXfer" || ThingDb.Things[key.Name].Xfer == "ElevatorShaftXfer") && key.Extent != -2)
         {
             ElevatorXfer extraData = key.GetExtraData <ElevatorXfer>();
             telelist.Add(key, extraData.ExtentLink);
         }
         else if (ThingDb.Things[key.Name].Xfer == "HoleXfer" && key.Extent != -2)
         {
             key.GetExtraData <HoleXfer>();
             telelist.Add(key, -1);
         }
     }
 }
예제 #2
0
        public override void SetObject(Map.Object obj)
        {
            this.obj = obj;
            ThingDb.Thing tt = ThingDb.Things[obj.Name];
            // читаем Xfer
            xfer = obj.GetExtraData <ElevatorXfer>();
            List <Map.Object> objects = new List <Map.Object>();

            // убираем этот элеватор из списков
            listElevators.Remove(obj);
            listElevShafts.Remove(obj);
            // для шахт выводим список подьемников
            if (tt.HasClassFlag(ThingDb.Thing.ClassFlags.ELEVATOR_SHAFT))
            {
                objects = listElevators;
                isShaft = true;
            }
            // для подьемников список шахт
            else if (tt.HasClassFlag(ThingDb.Thing.ClassFlags.ELEVATOR))
            {
                objects = listElevShafts;
                isShaft = false;
            }

            elevatorList.Items.Clear();
            string name;

            foreach (Map.Object e in objects)
            {
                name = e.ToString();
                if (e.Scr_Name.Length > 0)
                {
                    name = '"' + e.ScrNameShort + '"';
                }

                elevatorList.Items.Add(name);
            }
            // показываем куда подключен
            if (xfer.ExtentLink > 0)
            {
                checkIsLinked.Checked = true;
                int index = 0;
                foreach (Map.Object o in objects)
                {
                    if (o.Extent == xfer.ExtentLink)
                    {
                        elevatorList.SelectedIndex = index;
                        break;
                    }

                    index++;
                }
            }
        }