public void Initialize(List <ItemDefinition> itemList) { if (this.itemMods != null) { Debug.LogError(string.Concat("Item Definition Initializing twice: ", base.name)); } this.skins = ItemSkinDirectory.ForItem(this); this.itemMods = base.GetComponentsInChildren <ItemMod>(true); ItemMod[] itemModArray = this.itemMods; for (int i = 0; i < (int)itemModArray.Length; i++) { itemModArray[i].ModInit(); } this.Children = ( from x in itemList where x.Parent == this select x).ToArray <ItemDefinition>(); this.ItemModWearable = base.GetComponent <ItemModWearable>(); this.isHoldable = base.GetComponent <ItemModEntity>() != null; this.isUsable = (base.GetComponent <ItemModEntity>() != null ? true : base.GetComponent <ItemModConsume>() != null); }
void LoadSkinsList(ItemDefinition def) { if (SkinsList.ContainsKey(def.shortname)) { SkinsList.Remove(def.shortname); } List <ulong> ids = new List <ulong>() { 0 }; if (!configData.PreventDefaultSkins) { ItemSkinDirectory.Skin[] skins = ItemSkinDirectory.ForItem(def); List <string> uniqSkins = new List <string>(); foreach (ItemSkinDirectory.Skin skin in skins) { if (!skin.isSkin) { continue; } if (uniqSkins.Contains(skin.name)) { continue; } uniqSkins.Add(skin.name); ids.Add((ulong)skin.id); } } if (configData.Workshop.ContainsKey(def.shortname)) { foreach (ulong wid in configData.Workshop[def.shortname]) { ids.Add(wid); } } SkinsList.Add(def.shortname, ids); }
private void OnServerInitialized() { var strs = GameManifest.Current.pooledStrings; for (int i = 0; i < strs.Length; i++) { var str = strs[i].str ?? string.Empty; prefabNames.Add(str); } for (int i = 0; i < ItemManager.itemList.Count; i++) { var item = ItemManager.itemList[i]; var skinDir = ItemSkinDirectory.ForItem(item); if (skinDir == null || skinDir.Length < 1) { continue; } for (int j = 0; j < skinDir.Length; j++) { var skin = skinDir[j]; var skinID = 0ul; if (ulong.TryParse(skin.id.ToString(), out skinID)) { skinIDName[skinID] = (skin.invItem?.displayName?.english ?? skin.name); } } } for (int i = 0; i < Rust.Workshop.Approved.All.Length; i++) { var skin = Rust.Workshop.Approved.All[i]; skinIDName[skin.WorkshopdId] = skin.Name; } wData = Interface.Oxide.DataFileSystem.GetFile("damagescaler_data"); LoadData(); }