public Ability(string modelPath, string name, string suffix, int id) { Struct = new AbilityStruct(name, suffix); Name = name; Suffix = suffix; if (0 == id) { Id = ObjectId.GenerateAbilityId(); Model = new AbilityModel(TLVCustom, modelPath, null, Id); } else { Id = id; ObjectId.AddAbilityId(id); Model = new AbilityModel(TLVStandard, modelPath, null, Id); } CodeId = Id.ToObjectId(); //if (!AbilityMasterList.Exists(x => x.Path == itemPath)) // Model = new AbilityModel(this, tlvAbilityPath, null, 0) != null; //Id = id; //Model = item; Missile = new Missile(null); MasterList.Add(this); }
public void DeleteObject(string itemPath) { object item = FolderModel.Find(this, itemPath); if (null == item) { item = AbilityModel.Find(this, itemPath); } if (null != item) { if (item is FolderModel _folder) { if (null != _folder.Parent) { _folder.Parent.List.Remove(_folder); _folder.Parent.List.TrimExcess(); } if (!itemPath.Contains(@"\")) { MasterList.Remove(item); MasterList.TrimExcess(); } else { FolderMasterList.Remove(_folder); FolderMasterList.TrimExcess(); } } else if (item is AbilityModel _item) { if (null != _item.Parent) { _item.Parent.List.Remove(_item); _item.Parent.List.TrimExcess(); } if (!itemPath.Contains(@"\")) { MasterList.Remove(item); MasterList.TrimExcess(); } else { AbilityMasterList.Remove(_item); AbilityMasterList.TrimExcess(); } TLV.SmallImageList.Images.RemoveByKey(_item.ImageKey); } TLV.SetObjects(MasterList); } }
public void MoveObject(string sourceName, string destFolder) { bool sourceHasParent = sourceName.Contains(@"\"); string itemName = ""; object item = FolderModel.Find(this, sourceName); if (null == item) { item = AbilityModel.Find(this, sourceName); } if (sourceHasParent) { itemName = sourceName.After(@"\"); } else { itemName = sourceName; } sourceName = sourceName.Replace(@"\" + itemName, null); FolderModel source = FolderModel.Find(this, sourceName); if (MasterList.Contains(item) || source.List.Contains(item)) { if (sourceHasParent) { source.List.Remove(item); source.List.TrimExcess(); } else { MasterList.Remove(item); MasterList.TrimExcess(); TLV.SetObjects(MasterList); } if (destFolder.EndsWith(@"\")) { destFolder = destFolder.Remove(destFolder.LastIndexOf(@"\"), 1); } if ("" == destFolder) { if (item is FolderModel folder) { folder.Path = itemName; folder.Parent = null; } else if (item is AbilityModel _item) { _item.Path = itemName; _item.Parent = null; if (null != _item.ImageKey) { TLV.SmallImageList.Images.SetKeyName(TLV.SmallImageList.Images.IndexOfKey(_item.ImageKey), itemName); _item.ImageKey = itemName; } } MasterList.Add(item); TLV.UpdateObjects(MasterList); } else { FolderModel target; if (FolderModel.Exist(this, destFolder)) { target = FolderModel.Find(this, destFolder); } else { target = new FolderModel(this, destFolder); } if (item is FolderModel folder) { target.Add(this, item); folder.Path = destFolder + @"\" + itemName; } else if (item is AbilityModel _item) { target.Add(this, item); _item.Path = destFolder + @"\" + itemName; if (null != _item.ImageKey) { TLV.SmallImageList.Images.SetKeyName(TLV.SmallImageList.Images.IndexOfKey(_item.ImageKey), itemName); _item.ImageKey = _item.Path; } } } } }