private bool LoadItemType(string v)
 {
     this.ClearEditor();
     this.Skinnable = Skinnable.FindForItem(v);
     if (this.Skinnable == null)
     {
         return(false);
     }
     this.ItemTypeSelector.@value = this.ItemTypeSelector.options.IndexOf(this.ItemTypeSelector.options.First <Dropdown.OptionData>((Dropdown.OptionData x) => x.text == this.Skinnable.Name));
     this.Prefab = Global.CreatePrefab(this.Skinnable.EntityPrefabName);
     WorkshopItemEditor.RemoveLODs(this.Prefab);
     this.Prefab.transform.position = this.item_position_a.transform.position;
     this.Prefab.transform.rotation = this.item_position_a.transform.rotation;
     this.Prefab.SetActive(true);
     this.Prefab.AddComponent <DepthOfFieldFocusPoint>();
     this.Prefab.BroadcastMessage("BuildRig", SendMessageOptions.DontRequireReceiver);
     this.Prefab.BroadcastMessage("WorkshopMode", SendMessageOptions.DontRequireReceiver);
     Camera.main.FocusOnRenderer(this.Prefab, new Vector3(0.3f, 0.5f, 1f), Vector3.up, -1);
     if (this.Skin == null)
     {
         this.Skin = new Rust.Workshop.Skin();
     }
     this.Skin.Skinnable = this.Skinnable;
     this.Skin.ReadDefaults();
     return(true);
 }
Esempio n. 2
0
        /// <summary>
        /// Retrieves all available skins for an item
        /// </summary>
        /// <param name="item">The ItemName or ShortName.</param>
        /// <returns></returns>
        IEnumerable <ApprovedSkinInfo> GetSkinsForItem(string itemName)
        {
            if (string.IsNullOrEmpty(itemName))
            {
                return(null);
            }

            if (itemName.EndsWith("deployed"))
            {
                switch (itemName)
                {
                case "sleepingbag_leather_deployed":
                {
                    itemName = "sleepingbag";
                    break;
                }

                case "vendingmachine.deployed":
                {
                    itemName = "vending.machine";
                    break;
                }

                case "woodbox_deployed":
                {
                    itemName = "box.wooden";
                    break;
                }

                case "reactivetarget_deployed":
                {
                    itemName = "target.reactive";
                    break;
                }

                default:
                    break;
                }
            }

            var skinnable = Skinnable.FindForItem(itemName);

            if (skinnable == null)
            {
                return(null);
            }

            return(Approved.All
                   .Where(x => x.Value.Skinnable == skinnable)
                   .Select(x => x.Value));
        }