wave delay
This commit is contained in:
parent
7d1ca26baa
commit
7864160dcf
6 changed files with 97 additions and 72 deletions
|
|
@ -1,5 +1,6 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
[Tool]
|
||||
public partial class AdventureResourceInspector : Node
|
||||
|
|
@ -38,6 +39,9 @@ public partial class AdventureResourceInspector : Node
|
|||
root.SetText(0, "Level");
|
||||
EmitSignal(SignalName.Refreshed);
|
||||
|
||||
var initial = tree.CreateItem(root);
|
||||
initial.SetText(0, "Initial data");
|
||||
|
||||
for (int i = 0; i < heldResource.waves.Count; i++)
|
||||
{
|
||||
var item = tree.CreateItem(root);
|
||||
|
|
@ -50,6 +54,13 @@ public partial class AdventureResourceInspector : Node
|
|||
|
||||
var spawns = tree.CreateItem(item);
|
||||
spawns.SetText(0, "Events");
|
||||
|
||||
var delay = tree.CreateItem(item);
|
||||
if (heldResource.waves[i].customWaveDelay > 0)
|
||||
delay.SetText(0, heldResource.waves[i].customWaveDelay.ToString(new CultureInfo("en-US")));
|
||||
else
|
||||
delay.SetText(0, "Delay");
|
||||
delay.SetEditable(0, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -62,39 +73,64 @@ public partial class AdventureResourceInspector : Node
|
|||
|
||||
public void OnItemSelected()
|
||||
{
|
||||
var selected = tree.GetSelected();
|
||||
|
||||
if ((selected.GetParent() == root && selected.GetIndex() != 0) || selected.IsEditable(0)) return;
|
||||
|
||||
foreach (var child in editorContainer.GetChildren())
|
||||
{
|
||||
child.QueueFree();
|
||||
}
|
||||
|
||||
var selected = tree.GetSelected();
|
||||
if (selected == root)
|
||||
{
|
||||
GD.Print("level pressed");
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
var index = selected.GetIndex();
|
||||
if (index == 0 && selected.GetParent() == root)
|
||||
{
|
||||
if (selected.GetParent() == root) return;
|
||||
|
||||
var index = selected.GetIndex();
|
||||
if (index == ORDERED)
|
||||
GD.Print("Initial data selected");
|
||||
return;
|
||||
}
|
||||
if (index == ORDERED)
|
||||
{
|
||||
var editor = zombieEditorScene.Instantiate<ZombieEditor>();
|
||||
|
||||
editorContainer.AddChild(editor);
|
||||
editor.SetEditedWave(heldResource.waves[int.Parse(selected.GetParent().GetText(0).Split(" ")[1])]);
|
||||
editor.SetEditedWave(heldResource.waves[GetWaveIndex(selected.GetParent())]);
|
||||
return;
|
||||
}
|
||||
else if (index == EVENTS)
|
||||
{
|
||||
GD.Print("Events pressed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void OnItemEdited()
|
||||
{
|
||||
var selected = tree.GetEdited();
|
||||
if (float.TryParse(selected.GetText(0), new CultureInfo("en-US"), out float result))
|
||||
{
|
||||
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = result;
|
||||
}
|
||||
else
|
||||
{
|
||||
selected.SetText(0, "Delay");
|
||||
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = 0;
|
||||
}
|
||||
}
|
||||
public void OnTreeButtonClicked(TreeItem item, int column, int id, int button_index)
|
||||
{
|
||||
heldResource.waves.RemoveAt(item.GetIndex());
|
||||
heldResource.waves.RemoveAt(GetWaveIndex(item));
|
||||
RefreshTree();
|
||||
}
|
||||
|
||||
private int GetWaveIndex(TreeItem waveTreeItem)
|
||||
{
|
||||
return int.Parse(waveTreeItem.GetText(0).Split(" ")[1]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue