using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; public class UIWindowPresetsPlate : ModuleUIWindow { public VisualTreeAsset PresetsPlateUnitAsset; private UIPresetsPlate presetsPlate; private VisualElement element => ModuleUIPage.Q("PresetsPlate"); /// 资源模块 private ModuleAssets AssetsPlate => ModuleCore.AssetsPlate; /// 预设资源模块 private ModuleAssets AssetsPlatePresets => ModuleCore.AssetsPlatePresets; /// 转换模块 private ModuleBuilder PlatePresetsToPlate => ModuleCore.PlatePresetsToPlate; public override void Awake() { ModuleCore.PresetsPlateWindow = this; presetsPlate = new UIPresetsPlate(element); presetsPlate.ClickClose = Close; } public override void Open(Action data) { element.style.display = DisplayStyle.Flex; presetsPlate.Clear(); AssetsPlatePresets.ForEach(Create); } public override void Close() { presetsPlate.Clear(); element.style.display = DisplayStyle.None; } private void Create(DataPlatePresets data) { VisualElement temp = PresetsPlateUnitAsset.Instantiate(); UIPresetsPlateUnit unit = new UIPresetsPlateUnit(temp, data); unit.Click = () => { CreateTemplate(data); }; presetsPlate.Add(unit); } private void CreateTemplate(DataPlatePresets data) { DataPlate dataPlate = PlatePresetsToPlate.To(data); AssetsPlate.Add(dataPlate); Close(); } }