using Godot; [Tool] public partial class InitialEditor : BaseEditor { public override void _Ready() { foreach (var child in GetChild(0).GetChildren()) { if (child is UNI_GridItem gridItem) { gridItem.ResourceChanged += OnResourceChanged; } } } public override void SetEditedData(AdventureLevelResource resource) { editedResource = resource; for (int i = 0; i < GetChild(0).GetChildCount(); i++) { if (GetChild(0).GetChild(i) is UNI_GridItem gridItem) { gridItem.index = i; if (editedResource.initialScenes[i] == null) gridItem.SetData(""); else gridItem.SetData(editedResource.initialScenes[i].ResourcePath); } } } public void OnResourceChanged(string to, int index) { if (ResourceLoader.Exists(to)) { editedResource.initialScenes[index] = ResourceLoader.Load(to); } else { editedResource.initialScenes[index] = null; } EmitSignal(SignalName.SaveCallback); } }