Reload on resource external change

This commit is contained in:
Rendo 2025-07-17 21:11:10 +05:00
commit 5680ecc17e
2 changed files with 25 additions and 3 deletions

View file

@ -13,6 +13,11 @@ public partial class AdventureEditor : MarginContainer
[Signal] [Signal]
public delegate void HardReloadRequestedEventHandler(); public delegate void HardReloadRequestedEventHandler();
public override void _Ready()
{
EditorInterface.Singleton.GetInspector().PropertyEdited += OnInspectorPropertyChanged;
}
public void Reload() public void Reload()
{ {
EmitSignal(SignalName.ReloadRequested); EmitSignal(SignalName.ReloadRequested);
@ -33,5 +38,12 @@ public partial class AdventureEditor : MarginContainer
} }
ResourceSaver.Save(editedResource, editedPath); ResourceSaver.Save(editedResource, editedPath);
} }
public void OnInspectorPropertyChanged(string property)
{
if (EditorInterface.Singleton.GetInspector().GetEditedObject() is AdventureLevelResource resource)
{
editedPath = resource.ResourcePath;
HardReload();
}
}
} }

View file

@ -1,6 +1,16 @@
[gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=2 format=3 uid="uid://ctbue7dex4umy"] [gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=6 format=3 uid="uid://ctbue7dex4umy"]
[ext_resource type="Script" uid="uid://bximdujbkj2n4" path="res://addons/pvzadventure/AdventureLevelResource.cs" id="1_46lr8"] [ext_resource type="Script" uid="uid://bximdujbkj2n4" path="res://addons/pvzadventure/AdventureLevelResource.cs" id="1_46lr8"]
[ext_resource type="Script" uid="uid://cw7yc3i2lgcja" path="res://addons/pvzadventure/WaveEvent.cs" id="2_otfbt"]
[ext_resource type="Script" uid="uid://7rptlb5qr3b6" path="res://addons/pvzadventure/WaveData.cs" id="3_cugtx"]
[ext_resource type="Script" uid="uid://dl12rj75tk2qi" path="res://addons/pvzadventure/RowSpawn.cs" id="4_y1e37"]
[sub_resource type="Resource" id="Resource_qsvr4"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = -1.0
isHugeWave = false
[resource] [resource]
script = ExtResource("1_46lr8") script = ExtResource("1_46lr8")
@ -8,5 +18,5 @@ startSun = 50.0
wavePercentage = 0.0 wavePercentage = 0.0
standardWaveDelay = 0.0 standardWaveDelay = 0.0
initialWaveDelay = 0.0 initialWaveDelay = 0.0
waves = [] waves = [SubResource("Resource_qsvr4")]
initialScenes = Array[PackedScene]([null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]) initialScenes = Array[PackedScene]([null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null])