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);
 }
Exemplo n.º 2
0
        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();
        }