Compare commits

...
Sign in to create a new pull request.

13 commits

Author SHA1 Message Date
f0f7f6b42b collider disable 2025-08-11 01:58:21 +05:00
68cfe89f1d Peashooters 2025-08-09 21:35:02 +05:00
161f87da75 Initial spawn delay 2025-08-03 18:51:27 +05:00
941912d7f1 Plant spawn 2025-08-03 18:34:54 +05:00
32453f2e9d plant pick menu 2025-08-03 02:09:11 +05:00
73a2fe42ad seedpackets and handlers 2025-08-02 23:32:32 +05:00
2a7c402cd0 seedpacket base 2025-08-01 05:27:07 +05:00
e1931f27e1 Basic level bus 2025-08-01 03:38:38 +05:00
0cdddee7b1 fresh fresh start 2025-08-01 02:50:44 +05:00
f15f38bfc4 brand new start 2025-08-01 02:47:32 +05:00
CaTronick
a41ca5669b added screendoor zombie 2025-07-31 14:22:39 +03:00
CaTronick
8a79fc869a Added Pole animations 2025-07-31 01:19:13 +03:00
CaTronick
45aca9e7b4 Added pole vaulting zombie animations 2025-07-31 01:10:58 +03:00
568 changed files with 1679 additions and 19420 deletions

View file

@ -1,6 +0,0 @@
<Project Sdk="Godot.NET.Sdk/4.4.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
</Project>

View file

@ -1,19 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NewLON", "NewLON.csproj", "{9FFA6489-F73F-4493-8D9C-888092D73A4D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
ExportDebug|Any CPU = ExportDebug|Any CPU
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{9FFA6489-F73F-4493-8D9C-888092D73A4D}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
EndGlobal

View file

@ -1,23 +0,0 @@
#if TOOLS
using Godot;
public partial class FlatModsInspector : EditorInspectorPlugin
{
public override bool _CanHandle(GodotObject @object)
{
return true;
}
public override bool _ParseProperty(GodotObject @object, Variant.Type type, string name, PropertyHint hintType, string hintString, PropertyUsageFlags usageFlags, bool wide)
{
if (hintString == "FloatModifiers")
{
AddPropertyEditor(name, new FloatModsProperty());
return true;
}
return false;
}
}
#endif

View file

@ -1 +0,0 @@
uid://uc8igx80sr6u

View file

@ -1,60 +0,0 @@
using Godot;
[GlobalClass] [Tool]
public partial class FloatModifiers : Resource
{
[Export] private float flat_value;
[Export] private float percentage_value;
[Export] private float mult_value;
public static FloatModifiers Instantiate(float flat = 0.0f, float per = 0.0f, float mult = 1.0f)
{
FloatModifiers mod = new()
{
flat_value = flat,
percentage_value = per,
mult_value = mult
};
mod.ResourceLocalToScene = true;
return mod;
}
public float GetValue() => flat_value * mult_value * (1.0f + percentage_value);
public float GetFlat() => flat_value;
public float GetPercentage() => percentage_value;
public float GetMult() => mult_value;
public void SetFlat(float value)
{
flat_value = value;
}
public void SetPercentage(float value)
{
percentage_value = value;
}
public void SetMult(float value)
{
mult_value = value;
}
public void ChangeFlat(float amount)
{
flat_value += amount;
}
public void ChangePercentage(float amount)
{
percentage_value += amount;
}
public void ChangeMult(float amount)
{
mult_value *= amount;
}
}

View file

@ -1 +0,0 @@
uid://c3cfnrmnnuqms

View file

@ -1,90 +0,0 @@
#if TOOLS
using Godot;
public partial class FloatModsProperty : EditorProperty
{
private VBoxContainer _modsControl;
private FloatModifiers _currentValue;
private bool _updating;
public FloatModsProperty()
{
_modsControl = GD.Load<PackedScene>("res://addons/floatmodifiers/float_mods_property.tscn").Instantiate<VBoxContainer>();
AddChild(_modsControl);
AddFocusable(_modsControl);
RefreshControl();
_modsControl.GetNode<SpinBox>("%Flat").ValueChanged += UpdateFlat;
_modsControl.GetNode<SpinBox>("%Percentage").ValueChanged += UpdatePercentage;
_modsControl.GetNode<SpinBox>("%Mult").ValueChanged += UpdateMult;
}
private void UpdateFlat(double value)
{
if (_updating) return;
_currentValue.SetFlat((float)value);
RefreshControl();
EmitChanged(GetEditedProperty(), _currentValue);
}
private void UpdatePercentage(double value)
{
if (_updating) return;
_currentValue.SetPercentage((float)value);
RefreshControl();
EmitChanged(GetEditedProperty(), _currentValue);
}
private void UpdateMult(double value)
{
if (_updating) return;
_currentValue.SetMult((float)value);
RefreshControl();
EmitChanged(GetEditedProperty(), _currentValue);
}
private void RefreshControl()
{
if (_currentValue == null)
{
return;
}
_modsControl.GetNode<SpinBox>("%Flat").SetValueNoSignal(_currentValue.GetFlat());
_modsControl.GetNode<SpinBox>("%Percentage").SetValueNoSignal(_currentValue.GetPercentage());
_modsControl.GetNode<SpinBox>("%Mult").SetValueNoSignal(_currentValue.GetMult());
}
public override void _UpdateProperty()
{
// Read the current value from the property.
var newValue = GetEditedObject().Get(GetEditedProperty()).As<FloatModifiers>();
if (newValue == null)
{
newValue = new();
newValue.ResourceLocalToScene = true;
EmitChanged(GetEditedProperty(), newValue);
}
if (newValue.ResourceLocalToScene == false)
{
newValue.ResourceLocalToScene = true;
}
if (newValue == _currentValue)
{
return;
}
// Update the control with the new value.
_updating = true;
_currentValue = newValue;
RefreshControl();
_updating = false;
}
}
#endif

View file

@ -1 +0,0 @@
uid://dv5koj37coavh

View file

@ -1,20 +0,0 @@
#if TOOLS
using Godot;
[Tool]
public partial class Plugin : EditorPlugin
{
private FlatModsInspector _plugin;
public override void _EnterTree()
{
_plugin = new FlatModsInspector();
AddInspectorPlugin(_plugin);
}
public override void _ExitTree()
{
RemoveInspectorPlugin(_plugin);
}
}
#endif

View file

@ -1 +0,0 @@
uid://fjnw4mev4eiq

View file

@ -1,57 +0,0 @@
[gd_scene format=3 uid="uid://d2ne6ml10xgcl"]
[node name="FloatModsProperty" type="VBoxContainer"]
offset_right = 163.0
offset_bottom = 104.0
[node name="FlatContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="FlatContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Flat"
[node name="Flat" type="SpinBox" parent="FlatContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(128, 0)
layout_mode = 2
step = 0.001
allow_greater = true
allow_lesser = true
[node name="PercentageContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="PercentageContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "%"
[node name="Percentage" type="SpinBox" parent="PercentageContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(128, 0)
layout_mode = 2
max_value = 10.0
step = 0.001
allow_greater = true
allow_lesser = true
prefix = "+"
[node name="MultContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="Label" type="Label" parent="MultContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Mult"
[node name="Mult" type="SpinBox" parent="MultContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(128, 0)
layout_mode = 2
step = 0.001
value = 1.0
allow_greater = true
allow_lesser = true
prefix = "*"

View file

@ -1,7 +0,0 @@
[plugin]
name="FloatModifiers"
description=""
author="R34nd0"
version="1.0"
script="Plugin.cs"

View file

@ -1 +0,0 @@
cache/

View file

@ -1,24 +0,0 @@
using Godot;
using Godot.Collections;
using Newlon.Resources;
[GlobalClass]
[Tool]
public partial class AdventureLevelResource : Resource
{
[Export] public int startSun = 50;
//[Export] public Array<Conditions> conditions;
[ExportGroup("Wave properties")]
[Export(PropertyHint.Range, "0,1,0.01")] public float wavePercentage;
[Export] public float standardWaveDelay;
[Export] public float initialWaveDelay;
[Export] public RewardResource reward;
[ExportGroup("Editor-edited properties")]
[ExportSubgroup("Seedpackets")]
[Export] public Array<string> forbiddenPlants = new();
[Export] public Array<string> forbiddenTags = new();
[Export] public Array<string> prepickedPlants = new();
[ExportSubgroup("Waves")]
[Export] public Array<WaveData> waves = new();
[Export] public Array<PackedScene> initialScenes = [.. new PackedScene[45]];
}

View file

@ -1 +0,0 @@
uid://bximdujbkj2n4

View file

@ -1,44 +0,0 @@
#if TOOLS
using Godot;
[Tool]
public partial class PvZAdventure : EditorPlugin
{
private PackedScene panel = ResourceLoader.Load<PackedScene>("uid://dkq82o31vr3i2");
private Control panelInstance;
public override void _EnterTree()
{
panelInstance = panel.Instantiate<Control>();
EditorInterface.Singleton.GetEditorMainScreen().AddChild(panelInstance);
_MakeVisible(false);
}
public override void _ExitTree()
{
if (panelInstance != null)
{
panelInstance.QueueFree();
}
}
public override bool _HasMainScreen()
{
return true;
}
public override void _MakeVisible(bool visible)
{
if (panelInstance != null)
{
panelInstance.Visible = visible;
}
}
public override string _GetPluginName()
{
return "Adventure";
}
}
#endif

View file

@ -1 +0,0 @@
uid://cef32inw0wu7b

View file

@ -1,10 +0,0 @@
using Godot;
using Godot.Collections;
using Newlon.Resources;
[Tool]
[GlobalClass]
public partial class RowSpawn : Resource
{
[Export] public Array<ZombieResource> zombies = new(new ZombieResource[5]);
}

View file

@ -1 +0,0 @@
uid://dl12rj75tk2qi

View file

@ -1,12 +0,0 @@
using Godot;
using Godot.Collections;
[GlobalClass]
[Tool]
public partial class WaveData : Resource
{
[Export] public Array<RowSpawn> zombiesOrdered = new();
[Export] public Array<WaveEvent> events = new();
[Export] public float customWaveDelay = 0;
[Export] public bool isHugeWave;
}

View file

@ -1 +0,0 @@
uid://7rptlb5qr3b6

View file

@ -1,5 +0,0 @@
using Godot;
public partial class WaveEvent : Resource
{
}

View file

@ -1 +0,0 @@
uid://cw7yc3i2lgcja

View file

@ -1 +0,0 @@
uid://ct730nm5jan8i

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

View file

@ -1,7 +0,0 @@
[plugin]
name="PvZAdventure"
description=""
author="R34nd0"
version="1.0"
script="PvZAdventure.cs"

View file

@ -1,92 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://dkq82o31vr3i2"]
[ext_resource type="Script" uid="uid://dkgxtig5fwdgi" path="res://addons/pvzadventure/scripts/adventure-editor/AdventureEditor.cs" id="1_go5yu"]
[ext_resource type="Script" uid="uid://binuuattefn7d" path="res://addons/pvzadventure/scripts/FileButton.cs" id="2_d5hwn"]
[ext_resource type="Script" uid="uid://c6jttmpeyakoa" path="res://addons/pvzadventure/scripts/EditorsContainer.cs" id="3_5imrs"]
[ext_resource type="Script" uid="uid://b0hl4ap18wbb2" path="res://addons/pvzadventure/scripts/adventure-editor/AdventureResourceInspector.cs" id="3_d5hwn"]
[node name="AdventureEditor" type="MarginContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/margin_left = 5
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5
script = ExtResource("1_go5yu")
[node name="Editor" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="StatusBar" type="PanelContainer" parent="Editor"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Editor/StatusBar"]
layout_mode = 2
[node name="FileButton" type="MenuButton" parent="Editor/StatusBar/HBoxContainer"]
layout_mode = 2
text = "File"
switch_on_hover = true
item_count = 2
popup/item_0/text = "New"
popup/item_0/id = 0
popup/item_1/text = "Open"
popup/item_1/id = 1
script = ExtResource("2_d5hwn")
[node name="FileDialog" type="FileDialog" parent="Editor/StatusBar/HBoxContainer/FileButton"]
[node name="PlayButton" type="Button" parent="Editor/StatusBar/HBoxContainer"]
layout_mode = 2
text = "Play"
flat = true
[node name="WorkArea" type="HSplitContainer" parent="Editor"]
layout_mode = 2
size_flags_vertical = 3
[node name="PanelContainer" type="PanelContainer" parent="Editor/WorkArea"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_stretch_ratio = 3.0
script = ExtResource("3_5imrs")
[node name="Inspector" type="VSplitContainer" parent="Editor/WorkArea"]
layout_mode = 2
size_flags_horizontal = 3
[node name="ResourceInspector" type="VBoxContainer" parent="Editor/WorkArea/Inspector" node_paths=PackedStringArray("editorContainer", "adventureEditor")]
layout_mode = 2
size_flags_vertical = 3
script = ExtResource("3_d5hwn")
editorContainer = NodePath("../../PanelContainer")
adventureEditor = NodePath("../../../..")
[node name="Tree" type="Tree" parent="Editor/WorkArea/Inspector/ResourceInspector"]
custom_minimum_size = Vector2(0, 100)
layout_mode = 2
size_flags_vertical = 3
hide_folding = true
enable_recursive_folding = false
[node name="ControlButtons" type="HBoxContainer" parent="Editor/WorkArea/Inspector/ResourceInspector"]
layout_mode = 2
size_flags_vertical = 8
[node name="NewButton" type="Button" parent="Editor/WorkArea/Inspector/ResourceInspector/ControlButtons"]
layout_mode = 2
text = "New"
[connection signal="HardReloadRequested" from="." to="Editor/WorkArea/PanelContainer" method="ClearChildren"]
[connection signal="ResourceChanged" from="." to="Editor/WorkArea/Inspector/ResourceInspector" method="Refresh"]
[connection signal="pressed" from="Editor/StatusBar/HBoxContainer/PlayButton" to="." method="Play"]
[connection signal="Refreshed" from="Editor/WorkArea/Inspector/ResourceInspector" to="." method="Save"]
[connection signal="button_clicked" from="Editor/WorkArea/Inspector/ResourceInspector/Tree" to="Editor/WorkArea/Inspector/ResourceInspector" method="OnTreeButtonClicked"]
[connection signal="item_edited" from="Editor/WorkArea/Inspector/ResourceInspector/Tree" to="Editor/WorkArea/Inspector/ResourceInspector" method="OnItemEdited"]
[connection signal="item_selected" from="Editor/WorkArea/Inspector/ResourceInspector/Tree" to="Editor/WorkArea/Inspector/ResourceInspector" method="OnItemSelected"]
[connection signal="pressed" from="Editor/WorkArea/Inspector/ResourceInspector/ControlButtons/NewButton" to="Editor/WorkArea/Inspector/ResourceInspector" method="OnNewButtonPressed"]

View file

@ -1,153 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://sqessjn0m4o3"]
[ext_resource type="PackedScene" uid="uid://djb8ynxhnmo0t" path="res://addons/pvzadventure/scenes/initial-editor/universal_grid_item.tscn" id="1_d8e2t"]
[ext_resource type="Script" uid="uid://cumeahjpjgagq" path="res://addons/pvzadventure/scripts/InitialEditor.cs" id="1_tu7vy"]
[node name="InitialEditor" type="ScrollContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_tu7vy")
[node name="GridContainer" type="GridContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
columns = 9
[node name="GridItem" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem2" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem3" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem4" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem5" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem6" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem7" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem8" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem9" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem10" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem11" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem12" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem13" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem14" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem15" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem16" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem17" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem18" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem19" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem20" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem21" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem22" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem23" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem24" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem25" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem26" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem27" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem28" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem29" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem30" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem31" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem32" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem33" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem34" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem35" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem36" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem37" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem38" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem39" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem40" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem41" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem42" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem43" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem44" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2
[node name="GridItem45" parent="GridContainer" instance=ExtResource("1_d8e2t")]
layout_mode = 2

View file

@ -1,35 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://djb8ynxhnmo0t"]
[ext_resource type="Script" uid="uid://b8ccbjhhus7xk" path="res://addons/pvzadventure/scripts/UNI_GridItem.cs" id="1_e5mae"]
[ext_resource type="Script" uid="uid://c3cgpwy1qaeww" path="res://addons/pvzadventure/scripts/packed_scene_preview_generator.gd" id="2_k7w8c"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jbknv"]
bg_color = Color(0.18359, 0.18359, 0.18359, 1)
border_color = Color(0.140447, 0.140447, 0.140447, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="GridItem" type="PanelContainer"]
clip_contents = true
custom_minimum_size = Vector2(100, 100)
anchors_preset = -1
anchor_right = 0.172
anchor_bottom = 0.212
offset_right = -0.200005
offset_bottom = 0.199997
theme_override_styles/panel = SubResource("StyleBoxFlat_jbknv")
script = ExtResource("1_e5mae")
[node name="Texture" type="TextureRect" parent="."]
layout_mode = 2
expand_mode = 1
stretch_mode = 5
script = ExtResource("2_k7w8c")
[node name="Viewport" type="SubViewport" parent="Texture"]
process_mode = 4
transparent_bg = true
[node name="Camera2D" type="Camera2D" parent="Texture/Viewport"]

View file

@ -1,47 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://dwbqlfs51en62"]
[ext_resource type="Texture2D" uid="uid://dxyf557m4mq1p" path="res://assets/sprites/gui/EmptyPlantCard.png" id="1_dmimt"]
[ext_resource type="Texture2D" uid="uid://cabpf23ndlvx0" path="res://assets/sprites/gui/Selection.tres" id="2_0vy3a"]
[ext_resource type="Script" uid="uid://bhah157u6q56b" path="res://addons/pvzadventure/scripts/seedpacket-editor/DnDSeedpacket.cs" id="3_61l76"]
[node name="EditorSeedpacket" type="TextureButton" node_paths=PackedStringArray("preview")]
anchors_preset = -1
anchor_right = 0.103667
anchor_bottom = 0.21
offset_right = -0.199997
mouse_default_cursor_shape = 2
texture_normal = ExtResource("1_dmimt")
texture_focused = ExtResource("2_0vy3a")
stretch_mode = 0
script = ExtResource("3_61l76")
preview = NodePath("PlantPreviewContainer/Preview")
metadata/_edit_use_anchors_ = true
[node name="PlantPreviewContainer" type="Control" parent="."]
clip_contents = true
layout_mode = 1
anchor_left = -0.061
anchor_top = -0.036
anchor_right = 1.061
anchor_bottom = 0.661
offset_left = 0.00199986
offset_top = 0.0320001
offset_right = -0.0019989
offset_bottom = -0.0319977
mouse_filter = 2
[node name="Preview" type="TextureRect" parent="PlantPreviewContainer"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.185
anchor_top = 0.205
anchor_right = 0.815
anchor_bottom = 1.333
offset_left = -0.0200005
offset_top = 0.00999928
offset_right = 0.0199966
offset_bottom = 0.0259933
mouse_filter = 2
mouse_default_cursor_shape = 2
expand_mode = 1
stretch_mode = 5

View file

@ -1,59 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://dymyownbt688c"]
[ext_resource type="Texture2D" uid="uid://dxyf557m4mq1p" path="res://assets/sprites/gui/EmptyPlantCard.png" id="1_x27jk"]
[ext_resource type="Texture2D" uid="uid://cabpf23ndlvx0" path="res://assets/sprites/gui/Selection.tres" id="2_m8071"]
[ext_resource type="Texture2D" uid="uid://cjkwy3u0wuax3" path="res://assets/sprites/gui/ForbiddenPacket.tres" id="3_ji8qd"]
[ext_resource type="Script" uid="uid://cy5t2lk5g75x7" path="res://addons/pvzadventure/scripts/seedpacket-editor/ForbiddableSeedpacket.cs" id="3_m8071"]
[node name="EditorSeedpacket" type="TextureButton" node_paths=PackedStringArray("preview", "forrbidTexture")]
anchors_preset = -1
anchor_right = 0.137
anchor_bottom = 0.28
offset_right = -0.199997
mouse_default_cursor_shape = 2
texture_normal = ExtResource("1_x27jk")
texture_focused = ExtResource("2_m8071")
stretch_mode = 0
script = ExtResource("3_m8071")
preview = NodePath("PlantPreviewContainer/Preview")
forrbidTexture = NodePath("ForbiddenTexture")
metadata/_edit_use_anchors_ = true
[node name="PlantPreviewContainer" type="Control" parent="."]
clip_contents = true
layout_mode = 1
anchor_left = -0.061
anchor_top = -0.036
anchor_right = 1.061
anchor_bottom = 0.661
offset_left = 0.00199986
offset_top = 0.0320001
offset_right = -0.0019989
offset_bottom = -0.0319977
mouse_filter = 2
[node name="Preview" type="TextureRect" parent="PlantPreviewContainer"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.185
anchor_top = 0.205
anchor_right = 0.815
anchor_bottom = 1.333
offset_left = -0.0200005
offset_top = 0.00999928
offset_right = 0.0199966
offset_bottom = 0.0259933
mouse_filter = 2
mouse_default_cursor_shape = 2
expand_mode = 1
stretch_mode = 5
[node name="ForbiddenTexture" type="TextureRect" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_ji8qd")

View file

@ -1,155 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://drc0o8du38apr"]
[ext_resource type="PackedScene" uid="uid://dwbqlfs51en62" path="res://addons/pvzadventure/scenes/seedpack-editor/editor_seedpacket.tscn" id="1_m5lsd"]
[ext_resource type="Script" uid="uid://d1ks2q0c3eu0v" path="res://addons/pvzadventure/scripts/seedpacket-editor/SeedpacketEditor.cs" id="1_vrmxn"]
[node name="SeedpacketEditor" type="ScrollContainer"]
texture_filter = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
horizontal_scroll_mode = 0
script = ExtResource("1_vrmxn")
metadata/_edit_lock_ = true
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
metadata/_edit_lock_ = true
[node name="PrepickedPlants" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="Label" type="Label" parent="VBoxContainer/PrepickedPlants"]
layout_mode = 2
text = "Prepicked plants"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PrepickedContainer" type="HBoxContainer" parent="VBoxContainer/PrepickedPlants"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="Slot1" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot1" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot2" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot2" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot3" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot3" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot4" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot4" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot5" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot5" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot6" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot6" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot7" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot7" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot8" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot8" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="Slot9" type="AspectRatioContainer" parent="VBoxContainer/PrepickedPlants/PrepickedContainer"]
layout_mode = 2
size_flags_horizontal = 3
ratio = 0.7321
[node name="Seedpacket" parent="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot9" instance=ExtResource("1_m5lsd")]
layout_mode = 2
[node name="ForbiddenTags" type="VBoxContainer" parent="VBoxContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/ForbiddenTags"]
layout_mode = 2
text = "Forbidden tags"
horizontal_alignment = 1
vertical_alignment = 1
[node name="TagsContainer" type="GridContainer" parent="VBoxContainer/ForbiddenTags"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
columns = 9
[node name="ForbiddenPlants" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/ForbiddenPlants"]
layout_mode = 2
text = "Forbidden plants"
horizontal_alignment = 1
vertical_alignment = 1
[node name="FPlantsContainer" type="GridContainer" parent="VBoxContainer/ForbiddenPlants"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3
columns = 9
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot1/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot2/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot3/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot4/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot5/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot6/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot7/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot8/Seedpacket" to="." method="Save"]
[connection signal="SaveCallback" from="VBoxContainer/PrepickedPlants/PrepickedContainer/Slot9/Seedpacket" to="." method="Save"]

View file

@ -1,27 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://iwnklc62rni8"]
[ext_resource type="Script" uid="uid://cpedvgx23hlko" path="res://addons/pvzadventure/scripts/zombie-editor/ZE_AssetBrowserButton.cs" id="1_jbknv"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jbknv"]
bg_color = Color(0.18359, 0.18359, 0.18359, 1)
border_color = Color(0.140447, 0.140447, 0.140447, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="AssetBrowserButton" type="PanelContainer"]
clip_contents = true
custom_minimum_size = Vector2(100, 100)
anchors_preset = -1
anchor_right = 0.172
anchor_bottom = 0.25
offset_right = -0.200005
offset_bottom = -15.0
theme_override_styles/panel = SubResource("StyleBoxFlat_jbknv")
script = ExtResource("1_jbknv")
[node name="Texture" type="TextureRect" parent="."]
layout_mode = 2
expand_mode = 1
stretch_mode = 5

View file

@ -1,27 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://segxys6udhyw"]
[ext_resource type="Script" uid="uid://fof6kr0et8ng" path="res://addons/pvzadventure/scripts/zombie-editor/ZE_GridItem.cs" id="1_fwfh1"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jbknv"]
bg_color = Color(0.18359, 0.18359, 0.18359, 1)
border_color = Color(0.140447, 0.140447, 0.140447, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="GridItem" type="PanelContainer"]
clip_contents = true
custom_minimum_size = Vector2(100, 100)
anchors_preset = -1
anchor_right = 0.172
anchor_bottom = 0.25
offset_right = -0.200005
offset_bottom = -15.0
theme_override_styles/panel = SubResource("StyleBoxFlat_jbknv")
script = ExtResource("1_fwfh1")
[node name="Texture" type="TextureRect" parent="."]
layout_mode = 2
expand_mode = 1
stretch_mode = 5

View file

@ -1,11 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://buvnw8a7pku78"]
[ext_resource type="Script" uid="uid://q84g5imvatfl" path="res://addons/pvzadventure/scripts/zombie-editor/ZE_RowEditor.cs" id="1_wm7b4"]
[node name="RowEditor" type="VBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_wm7b4")

View file

@ -1,136 +0,0 @@
[gd_scene load_steps=10 format=3 uid="uid://db5ah76l43ng2"]
[ext_resource type="Script" uid="uid://bnuno3uhya4sg" path="res://addons/pvzadventure/scripts/zombie-editor/ZE_AssetBrowser.cs" id="1_klhya"]
[ext_resource type="Script" uid="uid://bd5hl0etgvf5a" path="res://addons/pvzadventure/scripts/zombie-editor/ZombieEditor.cs" id="1_thd7y"]
[ext_resource type="Script" uid="uid://do7s5mo36c280" path="res://addons/pvzadventure/scripts/zombie-editor/ZE_GridContainer.cs" id="2_13ic4"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_thd7y"]
bg_color = Color(0.430693, 0.742747, 0.314214, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a2umq"]
bg_color = Color(0.503317, 0.859941, 0.370424, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_13ic4"]
bg_color = Color(0.655235, 0.676224, 0.627655, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h81wb"]
bg_color = Color(1, 0.617482, 0.590722, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vak4b"]
bg_color = Color(0.655235, 0.676224, 0.627655, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nm0oj"]
bg_color = Color(0.999983, 0.30398, 0.31271, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="ZombieEditor" type="VBoxContainer" node_paths=PackedStringArray("container")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_thd7y")
container = NodePath("ZombieGrid/HBoxContainer/RowEditors")
[node name="ZombieGrid" type="ScrollContainer" parent="."]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 3.0
horizontal_scroll_mode = 2
vertical_scroll_mode = 0
[node name="HBoxContainer" type="HBoxContainer" parent="ZombieGrid"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="RowEditors" type="HBoxContainer" parent="ZombieGrid/HBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 3.0
script = ExtResource("2_13ic4")
[node name="ControlButtons" type="VBoxContainer" parent="ZombieGrid/HBoxContainer"]
layout_mode = 2
[node name="NewButton" type="Button" parent="ZombieGrid/HBoxContainer/ControlButtons"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_colors/font_disabled_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 24
theme_override_styles/disabled_mirrored = SubResource("StyleBoxFlat_thd7y")
theme_override_styles/disabled = SubResource("StyleBoxFlat_thd7y")
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_a2umq")
theme_override_styles/hover_mirrored = SubResource("StyleBoxFlat_a2umq")
theme_override_styles/hover = SubResource("StyleBoxFlat_thd7y")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxFlat_13ic4")
theme_override_styles/pressed = SubResource("StyleBoxFlat_13ic4")
theme_override_styles/normal_mirrored = SubResource("StyleBoxFlat_thd7y")
theme_override_styles/normal = SubResource("StyleBoxFlat_thd7y")
text = "+"
[node name="RemoveButton" type="Button" parent="ZombieGrid/HBoxContainer/ControlButtons"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_colors/font_disabled_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_focus_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 24
theme_override_styles/disabled_mirrored = SubResource("StyleBoxFlat_h81wb")
theme_override_styles/disabled = SubResource("StyleBoxFlat_h81wb")
theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_h81wb")
theme_override_styles/hover_mirrored = SubResource("StyleBoxFlat_h81wb")
theme_override_styles/hover = SubResource("StyleBoxFlat_h81wb")
theme_override_styles/pressed_mirrored = SubResource("StyleBoxFlat_vak4b")
theme_override_styles/pressed = SubResource("StyleBoxFlat_vak4b")
theme_override_styles/normal_mirrored = SubResource("StyleBoxFlat_nm0oj")
theme_override_styles/normal = SubResource("StyleBoxFlat_nm0oj")
text = "-"
[node name="AssetBrowser" type="ScrollContainer" parent="."]
layout_mode = 2
size_flags_vertical = 3
vertical_scroll_mode = 0
[node name="HBoxContainer" type="HBoxContainer" parent="AssetBrowser"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_klhya")
[connection signal="SaveCallback" from="ZombieGrid/HBoxContainer/RowEditors" to="." method="Save"]
[connection signal="pressed" from="ZombieGrid/HBoxContainer/ControlButtons/NewButton" to="ZombieGrid/HBoxContainer/RowEditors" method="AddSpawn"]
[connection signal="pressed" from="ZombieGrid/HBoxContainer/ControlButtons/RemoveButton" to="ZombieGrid/HBoxContainer/RowEditors" method="RemoveSpawn"]

View file

@ -1,16 +0,0 @@
using Godot;
[Tool]
public abstract partial class BaseEditor : Node
{
public AdventureLevelResource editedResource;
[Signal] public delegate void SaveCallbackEventHandler();
public virtual void SetEditedData(AdventureLevelResource data)
{
editedResource = data;
}
public virtual void Save()
{
EmitSignal(SignalName.SaveCallback);
}
}

View file

@ -1 +0,0 @@
uid://dxtrrfg1pba4p

View file

@ -1,5 +0,0 @@
public abstract partial class BaseWaveEditor : BaseEditor
{
public WaveData editedWave;
public abstract void SetEditedWave(WaveData wave);
}

View file

@ -1 +0,0 @@
uid://b23csior6audk

View file

@ -1,13 +0,0 @@
using Godot;
[Tool]
public partial class EditorsContainer : PanelContainer
{
public void ClearChildren()
{
foreach (var child in GetChildren())
{
child.QueueFree();
}
}
}

View file

@ -1 +0,0 @@
uid://c6jttmpeyakoa

View file

@ -1,51 +0,0 @@
using Godot;
#if TOOLS
[Tool]
public partial class FileButton : MenuButton
{
const int NEWFILE = 0;
const int OPENFILE = 1;
private AdventureEditor editor;
private FileDialog dialog;
private int chosenOption = -1;
public override void _Ready()
{
editor = (AdventureEditor)FindParent("AdventureEditor");
dialog = GetNode<FileDialog>("FileDialog");
GetPopup().IndexPressed += OnIndexPressed;
dialog.FileSelected += OnFileSelected;
}
private void OnIndexPressed(long index)
{
chosenOption = (int)index;
if (index == NEWFILE)
{
editor.editedResource = new AdventureLevelResource();
dialog.PopupCentered();
dialog.FileMode = FileDialog.FileModeEnum.SaveFile;
}
else if (index == OPENFILE)
{
dialog.PopupCentered();
dialog.FileMode = FileDialog.FileModeEnum.OpenFile;
}
}
private void OnFileSelected(string path)
{
editor.editedPath = path;
if (chosenOption == NEWFILE)
{
editor.Save();
editor.HardReload();
}
else if (chosenOption == OPENFILE)
{
editor.HardReload();
}
}
}
#endif

View file

@ -1 +0,0 @@
uid://binuuattefn7d

View file

@ -1,44 +0,0 @@
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<PackedScene>(to);
}
else
{
editedResource.initialScenes[index] = null;
}
EmitSignal(SignalName.SaveCallback);
}
}

View file

@ -1 +0,0 @@
uid://cumeahjpjgagq

View file

@ -1,46 +0,0 @@
using Godot;
[Tool]
public partial class UNI_GridItem : PanelContainer
{
private string path;
public int index;
[Signal] public delegate void ResourceChangedEventHandler(string path, int index);
public void SetData(string data)
{
path = data;
UpdateContent();
}
private void UpdateContent()
{
if (path == null || path == "")
{
GetNode<TextureRect>("Texture").Texture = null;
return;
}
GetNode<TextureRect>("Texture").Call("set_path", path);
}
public override Variant _GetDragData(Vector2 atPosition)
{
return path;
}
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
return data.AsGodotDictionary<string, string>().ContainsKey("files") && ResourceLoader.Exists(data.AsGodotDictionary<string, Variant>()["files"].AsStringArray()[0]);
}
public override void _DropData(Vector2 atPosition, Variant data)
{
SetData(data.AsGodotDictionary<string, Variant>()["files"].AsStringArray()[0]);
EmitSignal(SignalName.ResourceChanged, path, index);
}
public override void _GuiInput(InputEvent @event)
{
if (@event is InputEventMouseButton buttonEvent && buttonEvent.ButtonIndex == MouseButton.Right )
{
SetData(null);
EmitSignal(SignalName.ResourceChanged, path, index);
}
}
}

View file

@ -1 +0,0 @@
uid://b8ccbjhhus7xk

View file

@ -1,76 +0,0 @@
using Godot;
#if TOOLS
[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 override void _Ready()
{
EditorInterface.Singleton.GetInspector().PropertyEdited += OnInspectorPropertyChanged;
EditorInterface.Singleton.GetInspector().EditedObjectChanged += OnResourceChanged;
}
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);
}
public void OnInspectorPropertyChanged(string property)
{
if (EditorInterface.Singleton.GetInspector().GetEditedObject() is AdventureLevelResource resource && resource.ResourcePath == editedPath)
{
HardReload();
}
}
public void OnResourceChanged()
{
if (EditorInterface.Singleton.GetInspector().GetEditedObject() is AdventureLevelResource resource)
{
editedPath = resource.ResourcePath;
HardReload();
}
}
public void Play()
{
if (ResourceLoader.Exists(editedPath) == false) return;
var player = new AdventurePlayer();
var packed = new PackedScene();
player.pathToLevel = editedPath;
packed.Pack(player);
ResourceSaver.Save(packed, "res://addons/pvzadventure/cache/player.tscn");
EditorInterface.Singleton.PlayCustomScene("res://addons/pvzadventure/cache/player.tscn");
}
public override void _ExitTree()
{
EditorInterface.Singleton.GetInspector().PropertyEdited -= OnInspectorPropertyChanged;
EditorInterface.Singleton.GetInspector().EditedObjectChanged -= OnResourceChanged;
}
}
#endif

View file

@ -1 +0,0 @@
uid://dkgxtig5fwdgi

View file

@ -1,19 +0,0 @@
using Godot;
using Newlon;
[Tool]
public partial class AdventurePlayer : Node
{
const string tilesetUID = "uid://dd3yegl1xo44m";
[Export] public string pathToLevel;
public override void _Ready()
{
if (Engine.IsEditorHint()) return;
CallDeferred("InitLevel");
}
private void InitLevel()
{
LevelController.Instance.StartLevel(ResourceLoader.Load<PackedScene>(tilesetUID), ResourceLoader.Load<AdventureLevelResource>(pathToLevel));
}
}

View file

@ -1 +0,0 @@
uid://bbkfrk07l6kev

View file

@ -1,189 +0,0 @@
using Godot;
using System;
using System.Globalization;
#if TOOLS
[Tool]
public partial class AdventureResourceInspector : Node
{
const string LEVEL_ITEM_NAME = "Level";
const string INITIAL_ITEM_NAME = "Initial data";
const string ZOMBIES_ITEM_NAME = "Zombies";
const string EVENTS_ITEM_NAME = "Events";
const string HUGEWAVE_ITEM_NAME = "Is huge wave?";
const string SEEDPACKETS_ITEM_NAME = "Seedpackets editor";
private PackedScene zombieEditorScene = ResourceLoader.Load<PackedScene>("uid://db5ah76l43ng2");
private PackedScene initialEditorScene = ResourceLoader.Load<PackedScene>("uid://sqessjn0m4o3");
private PackedScene seedpacketEditorScene = ResourceLoader.Load<PackedScene>("uid://drc0o8du38apr");
private Tree tree;
private AdventureLevelResource heldResource;
private Texture2D deleteTexture = ResourceLoader.Load<Texture2D>("res://addons/pvzadventure/icons/delete.png");
[Signal]
public delegate void RefreshedEventHandler();
[Export]
public EditorsContainer editorContainer;
[Export]
public AdventureEditor adventureEditor;
private TreeItem root;
private TreeItem initialData;
private TreeItem seedpacketData;
public override void _Ready()
{
tree = GetNode<Tree>("Tree");
}
public void Refresh(AdventureLevelResource resource)
{
heldResource = resource;
RefreshTree();
}
private void RefreshTree()
{
EmitSignal(SignalName.Refreshed);
tree.Clear();
root = CreateItem(LEVEL_ITEM_NAME);
initialData = CreateItem(INITIAL_ITEM_NAME, root);
seedpacketData = CreateItem(SEEDPACKETS_ITEM_NAME, root);
for (int i = 0; i < heldResource.waves.Count; i++)
{
var wave = CreateItem(string.Format("Wave {0}", i), root);
wave.AddButton(0, deleteTexture, tooltipText: "Removes wave. (note that number will not visibly change)");
CreateItem(ZOMBIES_ITEM_NAME, wave);
CreateItem(EVENTS_ITEM_NAME, wave);
CreateItem(HUGEWAVE_ITEM_NAME, TreeItem.TreeCellMode.Check, true, wave)
.SetChecked(0, heldResource.waves[i].isHugeWave);
var delay = tree.CreateItem(wave);
if (heldResource.waves[i].customWaveDelay > 0)
delay.SetText(0, heldResource.waves[i].customWaveDelay.ToString(new CultureInfo("en-US")));
else
delay.SetText(0, heldResource.standardWaveDelay.ToString());
delay.SetEditable(0, true);
}
}
public void OnNewButtonPressed()
{
var wave = new WaveData();
heldResource.waves.Add(wave);
RefreshTree();
}
public void OnItemSelected()
{
var selected = tree.GetSelected();
if (selected.IsEditable(0) || selected.GetText(0).Split(" ")[0] == "Wave") return;
editorContainer.ClearChildren();
switch (selected.GetText(0))
{
case LEVEL_ITEM_NAME:
EditorInterface.Singleton.EditResource(adventureEditor.editedResource);
tree.DeselectAll();
return;
case ZOMBIES_ITEM_NAME:
var editor = zombieEditorScene.Instantiate<ZombieEditor>();
editorContainer.AddChild(editor);
SetupWaveEditor(editor, heldResource.waves[GetWaveIndex(selected.GetParent())]);
return;
case EVENTS_ITEM_NAME:
break;
case INITIAL_ITEM_NAME:
var initialEditor = initialEditorScene.Instantiate<InitialEditor>();
editorContainer.AddChild(initialEditor);
SetupEditor(initialEditor);
break;
case SEEDPACKETS_ITEM_NAME:
var seedpacketEditor = seedpacketEditorScene.Instantiate<SeedpacketEditor>();
editorContainer.AddChild(seedpacketEditor);
SetupEditor(seedpacketEditor);
break;
}
}
public void OnItemEdited()
{
var selected = tree.GetEdited();
if (selected.GetCellMode(0) == TreeItem.TreeCellMode.Check)
{
heldResource.waves[GetWaveIndex(selected.GetParent())].isHugeWave = selected.IsChecked(0);
}
else
{
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;
}
}
Callable.From(RefreshTree).CallDeferred();
}
public void OnTreeButtonClicked(TreeItem item, int column, int id, int button_index)
{
heldResource.waves.RemoveAt(GetWaveIndex(item));
adventureEditor.HardReload();
RefreshTree();
}
private int GetWaveIndex(TreeItem waveTreeItem)
{
return int.Parse(waveTreeItem.GetText(0).Split(" ")[1]);
}
private TreeItem CreateItem(string Name, TreeItem root = null)
{
if (root == null)
{
var item = tree.CreateItem();
item.SetText(0, Name);
return item;
}
else
{
var item = tree.CreateItem(root);
item.SetText(0, Name);
return item;
}
}
private TreeItem CreateItem(string Name, TreeItem.TreeCellMode cellMode, bool editable, TreeItem root = null)
{
var item = tree.CreateItem(root);
item.SetCellMode(0, cellMode);
item.SetEditable(0, editable);
item.SetText(0, Name);
return item;
}
private void SetupEditor(BaseEditor editor)
{
editor.SetEditedData(heldResource);
editor.SaveCallback += adventureEditor.Save;
}
private void SetupWaveEditor(BaseWaveEditor editor, WaveData editedWave)
{
SetupEditor(editor);
editor.SetEditedWave(editedWave);
}
}
#endif

View file

@ -1,42 +0,0 @@
@tool
extends TextureRect
@onready var subview = $Viewport
@onready var camera = $Viewport/Camera2D
var scene : Node
func set_path(path):
if scene:
scene.queue_free()
if ResourceLoader.exists(path) == false:
return
var packed_scene : PackedScene = load(path)
render_scene(path, packed_scene)
func render_scene(path: String,packed : PackedScene):
scene = packed.instantiate()
subview.add_child(scene)
var bb = get_bounding_box(scene)
subview.size = Vector2(max(bb.size.x,bb.size.y),max(bb.size.x,bb.size.y))
camera.position = bb.position * Vector2(0.5,0.5)
var vtexture : ViewportTexture = subview.get_texture()
texture = vtexture
func get_bounding_box(root: Node2D) -> Rect2:
var rect := Rect2();
var children := root.get_children();
while children:
var child = children.pop_back();
children.append_array(child.get_children());
if child.has_method('get_rect') and child.has_method('to_global'):
var child_rect := child.get_rect() as Rect2;
child_rect.position = child.to_global(child_rect.position);
rect = rect.merge(child_rect);
return rect;

View file

@ -1 +0,0 @@
uid://c3cgpwy1qaeww

View file

@ -1,51 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class DnDSeedpacket : TextureButton
{
[Signal] public delegate void SaveCallbackEventHandler();
[Export] private TextureRect preview;
public PlantResource HeldResource;
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
if (data.VariantType == Variant.Type.Dictionary)
{
if ((string)data.AsGodotDictionary()["type"] == "files")
{
return ResourceLoader.Load(data.AsGodotDictionary()["files"].AsGodotArray<string>()[0]) is PlantResource;
}
}
return false;
}
public override void _DropData(Vector2 atPosition, Variant data)
{
HeldResource = ResourceLoader.Load(data.AsGodotDictionary()["files"].AsGodotArray<string>()[0]) as PlantResource;
Update();
}
public override void _Pressed()
{
HeldResource = null;
Update();
}
private void Update()
{
RefreshTexture();
EmitSignal(SignalName.SaveCallback);
}
public void RefreshTexture()
{
if (HeldResource != null)
{
preview.Texture = HeldResource.Preview;
}
else
{
preview.Texture = null;
}
}
}

View file

@ -1 +0,0 @@
uid://bhah157u6q56b

View file

@ -1,28 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class ForbiddableSeedpacket : TextureButton
{
[Signal] public delegate void SaveCallbackEventHandler();
[Export] private TextureRect preview;
[Export] private TextureRect forrbidTexture;
public PlantResource HeldResource;
public bool forbidden = false;
public override void _Pressed()
{
forbidden = !forbidden;
Update();
}
private void Update()
{
RefreshTexture();
EmitSignal(SignalName.SaveCallback);
}
public void RefreshTexture()
{
preview.Texture = HeldResource.Preview;
forrbidTexture.Visible = forbidden;
}
}

View file

@ -1,101 +0,0 @@
using System.Collections.Generic;
using Godot;
using Godot.Collections;
using Newlon.Components.GUI;
using Newlon.Resources;
[Tool]
public partial class SeedpacketEditor : BaseEditor
{
private const string PLANTS_DIRECTORY = "res://assets/plants/";
public override void SetEditedData(AdventureLevelResource data)
{
base.SetEditedData(data);
SetupPrepickedPlants();
SetupForbiddablePlants();
}
public override void Save()
{
CalculatePrepickedPlants();
CalculateForbiddenPlants();
base.Save();
}
private void SetupPrepickedPlants()
{
for (int i = 0; i < editedResource.prepickedPlants.Count; i++)
{
if (GetNode("%PrepickedContainer").GetChild(i).GetNode("Seedpacket") is DnDSeedpacket packet)
{
packet.HeldResource = TryGetPlant(editedResource.prepickedPlants[i]);
packet.RefreshTexture();
}
}
}
private void SetupForbiddablePlants()
{
var plants = GetPlants();
var packed = ResourceLoader.Load<PackedScene>("uid://dymyownbt688c");
for (int i = 0; i < plants.Count; i++)
{
var seedpacket = packed.Instantiate<ForbiddableSeedpacket>();
seedpacket.HeldResource = plants[i];
seedpacket.forbidden = editedResource.forbiddenPlants.Contains(plants[i].GetInternalID());
seedpacket.RefreshTexture();
seedpacket.SaveCallback += Save;
GetNode("%FPlantsContainer").AddChild(seedpacket);
}
}
private void CalculatePrepickedPlants()
{
Array<string> prepicked = new();
foreach (var child in GetNode("%PrepickedContainer").GetChildren())
{
if (child.GetNode("Seedpacket") is DnDSeedpacket packet && packet.HeldResource != null)
{
prepicked.Add(packet.HeldResource.GetInternalID());
}
}
editedResource.prepickedPlants = prepicked;
}
private void CalculateForbiddenPlants()
{
Array<string> forbidden = new();
foreach (var child in GetNode("%FPlantsContainer").GetChildren())
{
if (child is ForbiddableSeedpacket packet && packet.forbidden)
{
forbidden.Add(packet.HeldResource.GetInternalID());
}
}
editedResource.forbiddenPlants = forbidden;
}
private PlantResource TryGetPlant(string plantName)
{
foreach (var file in ResourceLoader.ListDirectory(PLANTS_DIRECTORY))
{
if (plantName != file.TrimSuffix(".tres").ToLower()) continue;
return ResourceLoader.Load<PlantResource>(PLANTS_DIRECTORY + file);
}
return null;
}
private List<PlantResource> GetPlants()
{
var result = new List<PlantResource>();
foreach (var file in ResourceLoader.ListDirectory(PLANTS_DIRECTORY))
{
result.Add(ResourceLoader.Load<PlantResource>(PLANTS_DIRECTORY + file));
}
result.Sort((a, b) =>
{
return a.Order - b.Order;
});
return result;
}
}

View file

@ -1 +0,0 @@
uid://d1ks2q0c3eu0v

View file

@ -1,20 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class ZE_AssetBrowser : HBoxContainer
{
const string ZOMBIE_PATH = "res://assets/zombies/";
private PackedScene scene = ResourceLoader.Load<PackedScene>("uid://iwnklc62rni8");
public override void _Ready()
{
foreach (var file in ResourceLoader.ListDirectory(ZOMBIE_PATH))
{
var data = ResourceLoader.Load<ZombieResource>(ZOMBIE_PATH + file);
var button = scene.Instantiate<ZE_AssetBrowserButton>();
button.SetData(data);
AddChild(button);
}
}
}

View file

@ -1 +0,0 @@
uid://bnuno3uhya4sg

View file

@ -1,24 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class ZE_AssetBrowserButton : PanelContainer
{
private ZombieResource resource;
public void SetData(ZombieResource data)
{
resource = data;
UpdateContent();
}
private void UpdateContent()
{
GetNode<TextureRect>("Texture").Texture = resource.Preview;
}
public override Variant _GetDragData(Vector2 atPosition)
{
return resource;
}
}

View file

@ -1 +0,0 @@
uid://cpedvgx23hlko

View file

@ -1,44 +0,0 @@
using Godot;
[Tool]
public partial class ZE_GridContainer : Control
{
private PackedScene rowEditorScene = ResourceLoader.Load<PackedScene>("uid://buvnw8a7pku78");
private WaveData waveData;
[Signal] public delegate void SaveCallbackEventHandler();
public void SetData(WaveData data)
{
waveData = data;
foreach (var child in GetChildren())
{
child.QueueFree();
}
foreach (var spawn in waveData.zombiesOrdered)
{
InitEditor(spawn);
}
}
public void AddSpawn()
{
var spawn = new RowSpawn();
waveData.zombiesOrdered.Add(spawn);
InitEditor(spawn);
}
public void RemoveSpawn()
{
var editor = GetChild<ZE_RowEditor>(GetChildCount() - 1);
waveData.zombiesOrdered.Remove(editor.editedSpawn);
editor.QueueFree();
}
private void InitEditor(RowSpawn spawn)
{
var editor = rowEditorScene.Instantiate<ZE_RowEditor>();
editor.editedSpawn = spawn;
editor.SaveCallback += Save;
AddChild(editor);
}
private void Save()
{
EmitSignal(SignalName.SaveCallback);
}
}

View file

@ -1 +0,0 @@
uid://do7s5mo36c280

View file

@ -1,48 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class ZE_GridItem : Control
{
private ZombieResource resource;
public int index;
[Signal] public delegate void ResourceChangedEventHandler(ZombieResource resource, int index);
public void SetData(ZombieResource data)
{
resource = data;
UpdateContent();
}
private void UpdateContent()
{
if (resource == null)
{
GetNode<TextureRect>("Texture").Texture = null;
return;
}
GetNode<TextureRect>("Texture").Texture = resource.Preview;
}
public override Variant _GetDragData(Vector2 atPosition)
{
return resource;
}
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
return data.AsGodotObject() is ZombieResource;
}
public override void _DropData(Vector2 atPosition, Variant data)
{
SetData((ZombieResource)data.AsGodotObject());
EmitSignal(SignalName.ResourceChanged, resource, index);
}
public override void _GuiInput(InputEvent @event)
{
if (@event is InputEventMouseButton buttonEvent && buttonEvent.ButtonIndex == MouseButton.Right )
{
SetData(null);
EmitSignal(SignalName.ResourceChanged, resource, index);
}
}
}

View file

@ -1 +0,0 @@
uid://fof6kr0et8ng

View file

@ -1,29 +0,0 @@
using Godot;
using Newlon.Resources;
[Tool]
public partial class ZE_RowEditor : VBoxContainer
{
private PackedScene buttonScene = ResourceLoader.Load<PackedScene>("uid://segxys6udhyw");
[Signal] public delegate void SaveCallbackEventHandler();
public RowSpawn editedSpawn;
public override void _Ready()
{
for (int i = 0; i < editedSpawn.zombies.Count; i++)
{
var button = buttonScene.Instantiate<ZE_GridItem>();
AddChild(button);
button.index = i;
if (editedSpawn.zombies[i] != null)
button.SetData(editedSpawn.zombies[i]);
button.ResourceChanged += OnResourceChanged;
}
}
public void OnResourceChanged(ZombieResource resource, int index)
{
editedSpawn.zombies[index] = resource;
EmitSignal(SignalName.SaveCallback);
}
}

View file

@ -1 +0,0 @@
uid://q84g5imvatfl

View file

@ -1,14 +0,0 @@
using Godot;
[Tool]
public partial class ZombieEditor : BaseWaveEditor
{
[Export] private ZE_GridContainer container;
public override void SetEditedWave(WaveData data)
{
editedWave = data;
container.SetData(editedWave);
}
}

View file

@ -1 +0,0 @@
uid://bd5hl0etgvf5a

Binary file not shown.

View file

@ -1,11 +0,0 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://cn7ac4meka1hc"]
[ext_resource type="Shader" uid="uid://cgc7spjkhsx7c" path="res://assets/shaders/generic_flash.gdshader" id="1_38cc4"]
[resource]
resource_local_to_scene = true
shader = ExtResource("1_38cc4")
shader_parameter/FLASH_COLOR = Color(0.78, 0.78, 0.78, 0.501961)
shader_parameter/HIGHLIGHT_COLOR = Color(0.69, 0, 0, 0.282353)
shader_parameter/selected = false
shader_parameter/blend = 0.0

View file

@ -1,11 +0,0 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://jr0vpg030jqv"]
[ext_resource type="Shader" uid="uid://btf4xhu31ln6n" path="res://assets/shaders/canvas_group_flash.gdshader" id="1_fsu5r"]
[resource]
resource_local_to_scene = true
shader = ExtResource("1_fsu5r")
shader_parameter/FLASH_COLOR = Color(0.78, 0.78, 0.78, 0.501961)
shader_parameter/HIGHLIGHT_COLOR = Color(0.69, 0, 0, 0.282353)
shader_parameter/blend = 0.0
shader_parameter/selected = false

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="RandomRedirectEffect" load_steps=2 format=3 uid="uid://dsg1vjx76ifgu"]
[ext_resource type="Script" uid="uid://bb6lv1djnqjaw" path="res://scripts/systems/effects/RandomRedirectEffect.cs" id="1_rfumy"]
[resource]
script = ExtResource("1_rfumy")
tilesWalked = 0.2
Duration = 3.0
Slot = "garlic"

View file

@ -1,9 +0,0 @@
[gd_resource type="Resource" load_steps=2 format=3 uid="uid://dme4nvp28otq6"]
[ext_resource type="Script" uid="uid://bb6lv1djnqjaw" path="res://scripts/systems/effects/RandomRedirectEffect.cs" id="1_bd12u"]
[resource]
script = ExtResource("1_bd12u")
tilesWalked = 0.2
Duration = 0.25
Slot = "garlic"

View file

@ -1,10 +0,0 @@
[gd_resource type="Resource" load_steps=2 format=3 uid="uid://7uj0oe656jfx"]
[ext_resource type="Script" uid="uid://dyc7fc5bfkdii" path="res://scripts/systems/effects/SlownessEffect.cs" id="1_8md01"]
[resource]
script = ExtResource("1_8md01")
ColorOverride = Color(0, 1, 1, 1)
Multiplier = 0.5
Duration = 3.25
Slot = "freeze_slow"

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://bf7vjtufjc8kt"]
[ext_resource type="Texture2D" uid="uid://d4btl7vqi4v0q" path="res://assets/sprites/plants/aloe.tres" id="1_t4137"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_vw2kg"]
[ext_resource type="PackedScene" uid="uid://bw1w8jp0yeypy" path="res://scenes/entities/plants/aloe.tscn" id="2_6a4ia"]
[resource]
script = ExtResource("1_vw2kg")
Layer = 1
DontRegister = false
NameKey = "aloe"
DescriptionKey = "aloe_desc"
Cost = 75.0
Scene = ExtResource("2_6a4ia")
ReloadTime = 15.0
ReloadProgress = 0.0
Preview = ExtResource("1_t4137")
Order = 6

View file

@ -1,23 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=5 format=3 uid="uid://ciewunnfalrbb"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_jrx81"]
[ext_resource type="Texture2D" uid="uid://bt76iudw2qgnv" path="res://assets/sprites/atlases/plants/cumbucer.png" id="1_tdg4d"]
[ext_resource type="PackedScene" uid="uid://cjoyh54cpjla7" path="res://scenes/entities/plants/cucumber.tscn" id="2_0mr6r"]
[sub_resource type="AtlasTexture" id="AtlasTexture_3gogt"]
atlas = ExtResource("1_tdg4d")
region = Rect2(2, 1, 41, 65)
[resource]
script = ExtResource("1_jrx81")
Layer = 1
DontRegister = false
NameKey = "cucumber"
DescriptionKey = "cucumber_desc"
Cost = 75.0
Scene = ExtResource("2_0mr6r")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = SubResource("AtlasTexture_3gogt")
Order = 8
metadata/_custom_type_script = "uid://cyenlko1knygw"

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://btkkaow4tyw55"]
[ext_resource type="Texture2D" uid="uid://m8e84blnx7yu" path="res://assets/sprites/plants/garlic.tres" id="1_datic"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_e15gf"]
[ext_resource type="PackedScene" uid="uid://qq0cw8xtcoj3" path="res://scenes/entities/plants/garlic.tscn" id="2_81n0p"]
[resource]
script = ExtResource("1_e15gf")
Layer = 1
DontRegister = false
NameKey = "garlic"
DescriptionKey = "garlic_desc"
Cost = 50.0
Scene = ExtResource("2_81n0p")
ReloadTime = 7.5
ReloadProgress = 0.0
Preview = ExtResource("1_datic")
Order = 7

View file

@ -1,23 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=5 format=3 uid="uid://8edvnmwu4tyn"]
[ext_resource type="Texture2D" uid="uid://b06e8xhdy77d1" path="res://assets/sprites/atlases/plants/nerdus.png" id="1_of51r"]
[ext_resource type="PackedScene" uid="uid://k5aj2slxar7w" path="res://scenes/entities/plants/nerdus.tscn" id="2_0i6qf"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="3_30qd0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ivp5w"]
atlas = ExtResource("1_of51r")
region = Rect2(477, 9, 60, 59)
[resource]
script = ExtResource("3_30qd0")
Layer = 1
DontRegister = false
NameKey = "nerdus"
DescriptionKey = "nerdus_desc"
Cost = 125.0
Scene = ExtResource("2_0i6qf")
ReloadTime = 10.0
ReloadProgress = 0.0
Preview = SubResource("AtlasTexture_ivp5w")
Order = 10
metadata/_custom_type_script = "uid://cyenlko1knygw"

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://c8rr1dc7mjr3d"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_amvh8"]
[ext_resource type="Texture2D" uid="uid://ot1n4nval86w" path="res://assets/sprites/plants/peashooter.tres" id="1_rnq6r"]
[ext_resource type="PackedScene" uid="uid://dy41q1kxray5t" path="res://scenes/entities/plants/peashooter.tscn" id="1_rqf2x"]
[resource]
script = ExtResource("1_amvh8")
Layer = 1
DontRegister = false
NameKey = "peashooter"
DescriptionKey = "peashooter_desc"
Cost = 75.0
Scene = ExtResource("1_rqf2x")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = ExtResource("1_rnq6r")
Order = 0

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://bu25xgjd68gv8"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_33j6b"]
[ext_resource type="Texture2D" uid="uid://bhmnt3x5aj1l8" path="res://assets/sprites/plants/potatomine.tres" id="1_xk2pg"]
[ext_resource type="PackedScene" uid="uid://b5x35v3w2u8dx" path="res://scenes/entities/plants/potato_mine.tscn" id="2_ig2ti"]
[resource]
script = ExtResource("1_33j6b")
Layer = 1
DontRegister = false
NameKey = "potatomine"
DescriptionKey = "potatomine_desc"
Cost = 25.0
Scene = ExtResource("2_ig2ti")
ReloadTime = 25.0
ReloadProgress = 0.0
Preview = ExtResource("1_xk2pg")
Order = 3

View file

@ -1,35 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=10 format=3 uid="uid://b4r1687hg0rf5"]
[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_6km43"]
[ext_resource type="Texture2D" uid="uid://dhf2opi0brx23" path="res://assets/sprites/gui/almanach/premium_field.tres" id="1_ormja"]
[ext_resource type="PackedScene" uid="uid://bb4ya5qx224ca" path="res://scenes/entities/plants/repeater.tscn" id="2_6km43"]
[ext_resource type="Texture2D" uid="uid://31jc2e7dijas" path="res://assets/sprites/gui/PremiumPlantCard.tres" id="2_8djti"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="3_e606l"]
[ext_resource type="Script" uid="uid://3m7xks3xq3hl" path="res://scripts/gui/seedpackets/CustomSeedpacketFrame.cs" id="3_qnhmj"]
[sub_resource type="LabelSettings" id="LabelSettings_2f3e1"]
[sub_resource type="Resource" id="Resource_87lkl"]
script = ExtResource("3_qnhmj")
frame = ExtResource("2_8djti")
font = SubResource("LabelSettings_2f3e1")
almanachField = ExtResource("1_ormja")
metadata/_custom_type_script = "uid://3m7xks3xq3hl"
[sub_resource type="AtlasTexture" id="AtlasTexture_qnsfo"]
atlas = ExtResource("1_6km43")
region = Rect2(604, 241, 45, 51)
[resource]
script = ExtResource("3_e606l")
Layer = 1
DontRegister = false
NameKey = "repeater"
DescriptionKey = "repeater_desc"
Cost = 175.0
Scene = ExtResource("2_6km43")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = SubResource("AtlasTexture_qnsfo")
CustomFrame = SubResource("Resource_87lkl")
Order = 12

View file

@ -1,23 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=5 format=3 uid="uid://drb8nk0i3oyyl"]
[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_1eecn"]
[ext_resource type="PackedScene" uid="uid://bmk41n57j7hgx" path="res://scenes/entities/plants/snipach.tscn" id="1_h5ln5"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_u5a4p"]
[sub_resource type="AtlasTexture" id="AtlasTexture_dgfdr"]
atlas = ExtResource("1_1eecn")
region = Rect2(525, 241, 79, 72)
[resource]
script = ExtResource("1_u5a4p")
Layer = 1
DontRegister = false
NameKey = "snipach"
DescriptionKey = "snipach_desc"
Cost = 400.0
Scene = ExtResource("1_h5ln5")
ReloadTime = 7.5
ReloadProgress = 0.0
Preview = SubResource("AtlasTexture_dgfdr")
Order = 11
metadata/_custom_type_script = "uid://cyenlko1knygw"

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://duflq3eexs6m"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_0cpi0"]
[ext_resource type="Texture2D" uid="uid://cu7h8bot6jlug" path="res://assets/sprites/plants/snowpea.tres" id="1_7fyy2"]
[ext_resource type="PackedScene" uid="uid://b7innrovtmf5u" path="res://scenes/entities/plants/snowpea.tscn" id="2_k47h0"]
[resource]
script = ExtResource("1_0cpi0")
Layer = 1
DontRegister = false
NameKey = "snowpea"
DescriptionKey = "snowpea_desc"
Cost = 175.0
Scene = ExtResource("2_k47h0")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = ExtResource("1_7fyy2")
Order = 5

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://cas11tg6chiu4"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_0bymo"]
[ext_resource type="Texture2D" uid="uid://baqfahxkcvfe1" path="res://assets/sprites/plants/Spikeweed.tres" id="1_2ol2i"]
[ext_resource type="PackedScene" uid="uid://bdhod5c6o53ha" path="res://scenes/entities/plants/spikeweed.tscn" id="2_iv8de"]
[resource]
script = ExtResource("1_0bymo")
Layer = 1
DontRegister = false
NameKey = "spikeweed"
DescriptionKey = "spikeweed_desc"
Cost = 100.0
Scene = ExtResource("2_iv8de")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = ExtResource("1_2ol2i")
Order = 4

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://drm42f48urvc4"]
[ext_resource type="Texture2D" uid="uid://iw75j816gbc" path="res://assets/sprites/plants/sunflower.tres" id="1_8rd5i"]
[ext_resource type="PackedScene" uid="uid://bg7lomiorxo2c" path="res://scenes/entities/plants/sunflower.tscn" id="2_gcyr5"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="3_vt4jc"]
[resource]
script = ExtResource("3_vt4jc")
Layer = 1
DontRegister = false
NameKey = "sunflower"
DescriptionKey = "sunflower_desc"
Cost = 50.0
Scene = ExtResource("2_gcyr5")
ReloadTime = 5.0
ReloadProgress = 1.0
Preview = ExtResource("1_8rd5i")
Order = 1

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://bnhwg57euiyf5"]
[ext_resource type="Texture2D" uid="uid://8se1nscal0em" path="res://assets/sprites/plants/threepeater.tres" id="1_hinp6"]
[ext_resource type="PackedScene" uid="uid://eegv1qihfv2q" path="res://scenes/entities/plants/threepeater.tscn" id="2_uqpu0"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="3_3lugi"]
[resource]
script = ExtResource("3_3lugi")
Layer = 1
DontRegister = false
NameKey = "threepeater"
DescriptionKey = "threepeater_desc"
Cost = 275.0
Scene = ExtResource("2_uqpu0")
ReloadTime = 5.0
ReloadProgress = 0.0
Preview = ExtResource("1_hinp6")
Order = 9

View file

@ -1,18 +0,0 @@
[gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://c2e2yj7rgoswi"]
[ext_resource type="Texture2D" uid="uid://g2oppl54efja" path="res://assets/sprites/plants/Wallnut.tres" id="1_2akap"]
[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/entities/PlantResource.cs" id="1_27l0t"]
[ext_resource type="PackedScene" uid="uid://bq7imkpr2yqyr" path="res://scenes/entities/plants/wallnut.tscn" id="2_rkn3h"]
[resource]
script = ExtResource("1_27l0t")
Layer = 1
DontRegister = false
NameKey = "wallnut"
DescriptionKey = "wallnut_desc"
Cost = 50.0
Scene = ExtResource("2_rkn3h")
ReloadTime = 20.0
ReloadProgress = 0.0
Preview = ExtResource("1_2akap")
Order = 2

View file

@ -1,13 +0,0 @@
[gd_resource type="Resource" script_class="PlantReward" load_steps=4 format=3 uid="uid://co53dl5pxc0nr"]
[ext_resource type="Resource" uid="uid://bf7vjtufjc8kt" path="res://assets/plants/Aloe.tres" id="1_v5yns"]
[ext_resource type="PackedScene" uid="uid://myjhi5m0eaap" path="res://scenes/templates/plant_reward.tscn" id="2_6fujh"]
[ext_resource type="Script" uid="uid://c8e40t5nbo83r" path="res://scripts/resources/PlantReward.cs" id="3_0ahmi"]
[resource]
script = ExtResource("3_0ahmi")
Plant = ExtResource("1_v5yns")
Scene = ExtResource("2_6fujh")
Name = "aloe"
Description = "rwd_aloe"
metadata/_custom_type_script = "uid://c8e40t5nbo83r"

View file

@ -1,13 +0,0 @@
[gd_resource type="Resource" script_class="PlantReward" load_steps=4 format=3 uid="uid://b7jjqhhb6cv7i"]
[ext_resource type="PackedScene" uid="uid://myjhi5m0eaap" path="res://scenes/templates/plant_reward.tscn" id="1_nwe4k"]
[ext_resource type="Resource" uid="uid://ciewunnfalrbb" path="res://assets/plants/Cucumber.tres" id="1_y7bpw"]
[ext_resource type="Script" uid="uid://c8e40t5nbo83r" path="res://scripts/resources/PlantReward.cs" id="2_y7bpw"]
[resource]
script = ExtResource("2_y7bpw")
Plant = ExtResource("1_y7bpw")
Scene = ExtResource("1_nwe4k")
Name = "cucumber"
Description = "rwd_cucumber"
metadata/_custom_type_script = "uid://c8e40t5nbo83r"

Some files were not shown because too many files have changed in this diff Show more