Example #1
0
        /// <summary>
        /// Добавить опознанный объект при загрузке из LUA
        /// </summary>
        /// <param name="obj">Объект</param>
        private void AddIdentifiedObjectWhenLoadFromLua(TechObject obj)
        {
            BaseTechObject baseTechObject = obj.BaseTechObject;
            var            type           = (BaseTechObjectManager.ObjectType)baseTechObject
                                            .S88Level;
            string name = BaseTechObjectManager.GetInstance()
                          .GetS88Name(baseTechObject.S88Level);

            switch (type)
            {
            case BaseTechObjectManager.ObjectType.ProcessCell:
                AddProcessCellFromLua(obj);
                break;

            case BaseTechObjectManager.ObjectType.Unit:
                AddS88ObjectFromLua(obj, name);
                break;

            case BaseTechObjectManager.ObjectType.Aggregate:
                AddS88ObjectFromLua(obj, name);
                break;

            case BaseTechObjectManager.ObjectType.UserObject:
                AddUserObject(obj);
                break;
            }
        }
Example #2
0
 public ProcessCell()
 {
     objects        = new List <TechObject>();
     baseTechObject = BaseTechObjectManager.GetInstance()
                      .GetTechObject(Name);
     globalObjectsList = TechObjectManager.GetInstance().TechObjects;
 }
Example #3
0
 public BaseObject(string baseTechObjectName)
 {
     localObjects   = new List <TechObject>();
     baseTechObject = BaseTechObjectManager.GetInstance()
                      .GetTechObject(baseTechObjectName);
     globalObjectsList = TechObjectManager.GetInstance().TechObjects;
 }
Example #4
0
        public void InsertBaseObject(string luaName)
        {
            var            baseObjectManager = BaseTechObjectManager.GetInstance();
            BaseTechObject foundBaseObject   = baseObjectManager
                                               .GetTechObject(luaName);

            if (foundBaseObject != null)
            {
                string baseObjectTypeName = baseObjectManager
                                            .GetS88Name(foundBaseObject.S88Level);
                var treeItem = GetTreeItem(baseObjectTypeName);
                if (treeItem != null)
                {
                    if (treeItem is S88Object s88Obj)
                    {
                        s88Obj.Insert(foundBaseObject.Name);
                    }
                    else
                    {
                        treeItem.Insert();
                    }

                    Editor.Editor.GetInstance().RefreshEditor();
                }
            }
        }
Example #5
0
 public ProcessCell(ITechObjectManager techObjectManager)
 {
     objects        = new List <TechObject>();
     baseTechObject = BaseTechObjectManager.GetInstance()
                      .GetTechObjectCopy(Name);
     this.techObjectManager = techObjectManager;
     globalObjectsList      = this.techObjectManager.TechObjects;
 }
 public UserObject()
 {
     objects        = new List <TechObject>();
     baseTechObject = BaseTechObjectManager.GetInstance()
                      .GetTechObject(Name);
     techObjectManager = TechObjectManager.GetInstance();
     globalObjectsList = techObjectManager.TechObjects;
 }
Example #7
0
 public BaseObject(string baseTechObjectName,
                   ITechObjectManager techObjectManager)
 {
     localObjects   = new List <TechObject>();
     baseTechObject = BaseTechObjectManager.GetInstance()
                      .GetTechObjectCopy(baseTechObjectName);
     this.techObjectManager = techObjectManager;
     globalObjectsList      = this.techObjectManager.TechObjects;
 }
Example #8
0
        private void SortTreeObjectsByCustomComparer()
        {
            string firstS88LevelName = BaseTechObjectManager.GetInstance()
                                       .GetS88Name((int)BaseTechObjectManager.ObjectType.Unit);
            string secondS88LevelName = BaseTechObjectManager.GetInstance()
                                        .GetS88Name((int)BaseTechObjectManager.ObjectType.Aggregate);

            treeObjects = treeObjects.OrderByDescending(i => i is ProcessCell)
                          .ThenByDescending(i => i is S88Object && i.DisplayText[0]
                                            .Contains(firstS88LevelName))
                          .ThenByDescending(i => i is S88Object && i.DisplayText[0]
                                            .Contains(secondS88LevelName))
                          .ThenByDescending(i => i is UserObject)
                          .ThenByDescending(i => i is Unidentified)
                          .ToList();
        }
Example #9
0
        /// <summary>
        /// Добавление технологического объекта. Вызывается из Lua.
        /// </summary>
        /// <returns>Добавленный технологический объект.</returns>
        /// <param name="globalNumber">Глобальный номер объекта, используется
        /// при импорте из файла</param>
        public TechObject AddObject(int globalNumber, int techN, string name,
                                    int techType, string nameEplan, int cooperParamNumber,
                                    string NameBC, string baseTechObjectName, string attachedObjects)
        {
            // globalNumber игнорируется в этом методе, но используется при
            // импорте описания из файла (аналогичная сигнатура, другое тело).

            var baseTechObject = BaseTechObjectManager.GetInstance()
                                 .GetTechObject(baseTechObjectName);
            // getN - null т.к он будет другой, ниже по функциям.
            TechObject obj = new TechObject(name, null, techN,
                                            techType, nameEplan.ToUpper(), cooperParamNumber, NameBC,
                                            attachedObjects, baseTechObject);

            AddObject(obj);

            return(obj);
        }
Example #10
0
        override public bool SetNewValue(string newValue, bool isExtraValue)
        {
            if (baseTechObject.Name == newValue ||
                baseTechObject.EplanName == newValue)
            {
                return(false);
            }

            if (baseTechObject.Name != "" &&
                (newValue != baseTechObject.Name ||
                 newValue != baseTechObject.EplanName))
            {
                baseTechObject.ResetBaseOperations();
                attachedObjects.Reset();
                equipment.Clear();
            }

            BaseTechObject techObjFromDB = BaseTechObjectManager.GetInstance()
                                           .GetTechObject(newValue);

            if (techObjFromDB == null)
            {
                return(false);
            }

            techObjFromDB.Owner = baseTechObject.Owner;
            baseTechObject      = techObjFromDB;
            S88Level            = baseTechObject.S88Level;
            equipment.AddItems(baseTechObject.Equipment);
            equipment.Check();

            // Т.к установили новое значение, произошла смена базового объекта
            // Надо сравнить ОУ и изменить его, если требуется
            CompareEplanNames();
            return(true);
        }