using System; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; public class VRCultivationSeedInventory : MonoBehaviour { private void Start() { for (int i = 0; i < this.m_UIButtonPlantSeeds.Length; i++) { Button button = this.m_UIButtonPlantSeeds[i]; button.onClick.AddListener(delegate { this.ButtonEvent_Selected(button); if (this.m_OnEventButtonSelected != null) { this.m_OnEventButtonSelected(); } }); } if (this.m_ButtonReturn) { this.m_ButtonReturn.onClick.AddListener(this.m_OnEventButtonClosed); } this.Refresh(); } private void ButtonEvent_Selected(Button data) { Farm_Mng instance = Farm_Mng.Instance; if (!instance) { return; } Farm_Mng.Plant_List seedType = this.GetSeedType(data.GetComponentInChildren().text); instance.NyuShoku(seedType); VRCanvasManager.Instance.ClearCanvasStack(); VRCanvasManager.Instance.OpenVRCanvas(VRCanvasManager.VRCanvasType.MainMenu); } private void SetButtonEnabled(Button button, bool b) { button.interactable = b; } private void Refresh() { string text = "vrcom_culture.nei"; if (!GameUty.FileSystem.IsExistentFile(text)) { NDebug.Assert("表がありません。" + text, false); } using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text)) { using (CsvParser csvParser = new CsvParser()) { bool condition = csvParser.Open(afileBase); NDebug.Assert(condition, text + "\nopen failed."); for (int i = 1; i < csvParser.max_cell_y; i++) { if (csvParser.IsCellToExistData(0, i)) { int num = 0; string cellAsString = csvParser.GetCellAsString(num++, i); string cellAsString2 = csvParser.GetCellAsString(num++, i); bool b = false; if (GameMain.Instance.CharacterMgr.GetMaid(0) != null) { b = (GameMain.Instance.CharacterMgr.GetMaid(0).status.GetFlag(cellAsString2) >= 1); } Button seedButton = this.GetSeedButton(cellAsString); this.SetButtonEnabled(seedButton, b); } } } } } private Button GetSeedButton(string seedName) { for (int i = 0; i < this.m_UIButtonPlantSeeds.Length; i++) { Button button = this.m_UIButtonPlantSeeds[i]; Text componentInChildren = button.GetComponentInChildren(); if (string.Equals(componentInChildren.text, seedName)) { return button; } } Debug.LogWarning("[畑の種]植物「" + seedName + "」は存在しない"); return null; } private Farm_Mng.Plant_List GetSeedType(string eventName) { if (eventName.Equals("にんじん")) { return Farm_Mng.Plant_List.Ninjin; } if (eventName.Equals("とうもろこし")) { return Farm_Mng.Plant_List.Toumorokosi; } if (eventName.Equals("とまと")) { return Farm_Mng.Plant_List.Tomato; } if (eventName.Equals("すいか")) { return Farm_Mng.Plant_List.Suika; } if (eventName.Equals("ひまわり")) { return Farm_Mng.Plant_List.Himawari; } if (eventName.Equals("ざくろ")) { return Farm_Mng.Plant_List.Zakuro; } if (eventName.Equals("夏みかん")) { return Farm_Mng.Plant_List.Natumikan; } if (eventName.Equals("さつまいも")) { return Farm_Mng.Plant_List.Satumaimo; } return Farm_Mng.Plant_List.Nothing; } private void OnEnable() { this.Refresh(); } [SerializeField] [Tooltip("種のボタンUI")] private Button[] m_UIButtonPlantSeeds; [SerializeField] [Tooltip("閉じるボタン")] private Button m_ButtonReturn; [HideInInspector] public UnityAction m_OnEventButtonSelected; [HideInInspector] public UnityAction m_OnEventButtonClosed; }