using System; using System.Collections.Generic; using UnityEngine; using wf; public class CostumePartsEnabledCtrl : MonoBehaviour { public void Init(GameObject goCostumePartsEnabledPanel) { if (this.m_sceneEdit != null) { return; } this.m_sceneEdit = GameObject.Find("__SceneEdit__").GetComponent(); foreach (MPN key in this.m_sceneEdit.enabledMpns) { this.testForced.Add(key, true); } this.m_notSettingIcon = (Resources.Load("SceneEdit/RandomPreset/Texture/_I_del") as Texture2D); this.CreateRandomItem(goCostumePartsEnabledPanel); this.LoadMaidPropData(); } public void CreateRandomItem(GameObject goRandomPresetPanel) { Dictionary dicPartsTypePair = SceneEditInfo.m_dicPartsTypePair; this.m_dicItemBtn = new Dictionary(); bool flag = false; foreach (KeyValuePair keyValuePair in dicPartsTypePair) { RandomPresetContent.MPNMapping mpnmapping; if (RandomPresetContent.m_dicMPNMapping.TryGetValue(keyValuePair.Key, out mpnmapping)) { string text; if (RandomPresetContent.m_dicCategoryMapping.TryGetValue(keyValuePair.Value.m_eMenuCate, out text)) { GameObject childObject = UTY.GetChildObject(goRandomPresetPanel, "Contents/Buttons/" + mpnmapping.m_buttonName, true); if (!(childObject == null)) { childObject.SetActive(false); NDebug.Assert(childObject != null, string.Concat(new string[] { "ランダムプリセットのボタン[", mpnmapping.m_buttonTitle, "]のオブジェクト、[", mpnmapping.m_buttonName, "]が見つかりませんでした" })); if (keyValuePair.Value.m_eType == SceneEditInfo.CCateNameType.EType.Item) { if (this.m_sceneEdit.enabledMpns.Contains(keyValuePair.Key)) { if (keyValuePair.Key != MPN.acckamisub) { childObject.SetActive(true); UTY.GetChildObject(childObject, "Title", false).GetComponent().text = mpnmapping.m_buttonTitle; if (keyValuePair.Key == MPN.hairt) { UILabel component = UTY.GetChildObject(childObject, "Title", false).GetComponent(); component.text += " &\nリボン"; } UIButton component2 = childObject.GetComponent(); if (!flag) { this.activeColor = new Color(component2.defaultColor.r, component2.defaultColor.g, component2.defaultColor.b, 1f); this.inActiveColor = component2.defaultColor; flag = true; } SceneEditInfo.CCateNameType.EType eType = keyValuePair.Value.m_eType; ItemTypeRandomPresetButton itemTypeRandomPresetButton = new ItemTypeRandomPresetButton(); itemTypeRandomPresetButton.m_menuCategory = keyValuePair.Value.m_eMenuCate; itemTypeRandomPresetButton.m_eButtonType = eType; itemTypeRandomPresetButton.m_name = mpnmapping.m_buttonName; itemTypeRandomPresetButton.m_mpn = keyValuePair.Key; itemTypeRandomPresetButton.m_btnButton = component2; itemTypeRandomPresetButton.m_bBtnActive = false; itemTypeRandomPresetButton.m_executionOrder = mpnmapping.m_executionOrder; itemTypeRandomPresetButton.m_txtItem = UTY.GetChildObject(childObject, "Item", false).GetComponent(); this.m_dicItemBtn.Add(itemTypeRandomPresetButton.m_name, itemTypeRandomPresetButton); } } } } } } } UITable component3 = UTY.GetChildObject(goRandomPresetPanel, "Contents/Buttons", false).GetComponent(); Utility.ResetNGUI(component3); component3.repositionNow = true; } public void LoadMaidPropData() { Maid maid = GameMain.Instance.CharacterMgr.GetMaid(0); Action action = delegate(SceneEditInfo.EMenuCategory category, MPN mpn, UITexture tex) { int num = maid.GetProp(mpn).nTempFileNameRID; foreach (SceneEdit.SubPropMpnData subPropMpnData in this.m_sceneEdit.subPropDatas) { if (mpn == subPropMpnData.mpn) { if (subPropMpnData.manager.sloatItems != null && subPropMpnData.manager.sloatItems[0].menuItem != null) { num = subPropMpnData.manager.sloatItems[0].menuItem.m_nMenuFileRID; } break; } } Texture2D mainTexture; if (num == 0) { mainTexture = this.m_notSettingIcon; } else { mainTexture = this.GetTextureByRid(category, mpn, num); } tex.mainTexture = mainTexture; }; Facility tempSelectFacility = GameMain.Instance.FacilityMgr.tempSelectFacility; NDebug.Assert(tempSelectFacility != null, "現在選択中の施設がnullです"); foreach (KeyValuePair keyValuePair in this.m_dicItemBtn) { RandomPresetButton value = keyValuePair.Value; action(value.m_menuCategory, value.m_mpn, value.m_txtItem); bool costumeForced = tempSelectFacility.GetCostumeForced(value.m_mpn); this.SetButtonActive(value, costumeForced); if (value.m_mpn == MPN.hairt) { UITexture component = UTY.GetChildObject(value.m_btnButton.gameObject, "Item2", false).GetComponent(); action(SceneEditInfo.EMenuCategory.アクセサリ, MPN.acckamisub, component); } } } public void OnButtonClick(string clickBtnName) { RandomPresetButton randomPresetButton = this.m_dicItemBtn[clickBtnName]; this.SetButtonActive(randomPresetButton, !randomPresetButton.m_bBtnActive); } public void OnAllButtonClick(bool active) { foreach (KeyValuePair keyValuePair in this.m_dicItemBtn) { this.SetButtonActive(keyValuePair.Value, active); } } public void SetButtonActive(RandomPresetButton itemData, bool active) { Facility tempSelectFacility = GameMain.Instance.FacilityMgr.tempSelectFacility; tempSelectFacility.SetCostumeForced(itemData.m_mpn, active); if (itemData.m_mpn == MPN.hairt) { this.testForced[MPN.acckamisub] = active; } tempSelectFacility.SetCostumeForced(MPN.acckamisub, active); itemData.m_bBtnActive = active; if (itemData.m_bBtnActive) { itemData.m_btnButton.defaultColor = this.activeColor; } else { itemData.m_btnButton.defaultColor = this.inActiveColor; } } private Texture2D GetTextureByRid(SceneEditInfo.EMenuCategory eMenuCategory, MPN btnMpn, int rid) { List categoryList = this.m_sceneEdit.CategoryList; foreach (SceneEdit.SCategory scategory in categoryList) { if (scategory.m_eCategory == eMenuCategory) { foreach (SceneEdit.SPartsType spartsType in scategory.m_listPartsType) { if (spartsType.m_mpn == btnMpn) { foreach (SceneEdit.SMenuItem smenuItem in spartsType.m_listMenu) { if (smenuItem.m_nMenuFileRID == rid) { if (smenuItem.m_boDelOnly) { return smenuItem.m_texIconRef; } return smenuItem.m_texIconRef; } } return this.m_notSettingIcon; } } } } return null; } private SceneEdit m_sceneEdit; private Dictionary m_dicItemBtn; private Color activeColor; private Color inActiveColor; private Texture2D m_notSettingIcon; private Dictionary testForced = new Dictionary(); }