newlon/addons/pvzadventure/scripts/AdventureEditor.cs
2025-07-17 21:03:13 +05:00

37 lines
825 B
C#

using Godot;
[Tool]
public partial class AdventureEditor : MarginContainer
{
public AdventureLevelResource editedResource;
public string editedPath;
[Signal]
public delegate void ResourceChangedEventHandler(AdventureLevelResource to);
[Signal]
public delegate void ReloadRequestedEventHandler();
[Signal]
public delegate void HardReloadRequestedEventHandler();
public void Reload()
{
EmitSignal(SignalName.ReloadRequested);
}
public void HardReload()
{
editedResource = ResourceLoader.Load<AdventureLevelResource>(editedPath);
EmitSignal(SignalName.ResourceChanged, editedResource);
EmitSignal(SignalName.HardReloadRequested);
Reload();
}
public void Save()
{
if (editedPath.EndsWith(".tres") == false)
{
editedPath += ".tres";
}
ResourceSaver.Save(editedResource, editedPath);
}
}