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); }
/// <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)); }