diff --git a/addons/SignalVisualizer/Clear.svg b/addons/SignalVisualizer/Clear.svg
new file mode 100644
index 0000000..289c24b
--- /dev/null
+++ b/addons/SignalVisualizer/Clear.svg
@@ -0,0 +1 @@
+
diff --git a/addons/SignalVisualizer/Clear.svg.import b/addons/SignalVisualizer/Clear.svg.import
new file mode 100644
index 0000000..080f675
--- /dev/null
+++ b/addons/SignalVisualizer/Clear.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bmnff63evbdhv"
+path="res://.godot/imported/Clear.svg-d661617e27b91e3580171e3447fde514.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/SignalVisualizer/Clear.svg"
+dest_files=["res://.godot/imported/Clear.svg-d661617e27b91e3580171e3447fde514.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/addons/SignalVisualizer/Common/signal_connection.gd b/addons/SignalVisualizer/Common/signal_connection.gd
new file mode 100644
index 0000000..9104e71
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_connection.gd
@@ -0,0 +1,58 @@
+class_name SignalConnection extends Object
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var signal_id: int
+var source_node_name: String
+var destination_node_name: String
+var method_signature: String
+
+var description: String :
+ get:
+ return "ID: {signal_id} Source: {source_node_name} Destination: {destination_node_name} Method: {method_signature}".format({
+ "signal_id": signal_id,
+ "source_node_name": source_node_name,
+ "destination_node_name": destination_node_name,
+ "method_signature": method_signature,
+ })
+
+var dictionary_key: String :
+ get:
+ return "{signal_id}__{source_node_name}__{destination_node_name}__{method_signature}".format({ "signal_id": signal_id, "source_node_name": source_node_name, "destination_node_name": destination_node_name, "method_signature": method_signature.replace("::", "_") })
+
+var dictionary_representation: Dictionary :
+ get:
+ return {
+ "signal_id": signal_id,
+ "source_node_name": source_node_name,
+ "destination_node_name": destination_node_name,
+ "method_signature": method_signature,
+ }
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _init(signal_id: int, source_node_name: String, destination_node_name: String, method_signature: String):
+ self.signal_id = signal_id
+ self.source_node_name = source_node_name
+ self.destination_node_name = destination_node_name
+ self.method_signature = method_signature
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+
diff --git a/addons/SignalVisualizer/Common/signal_connection.gd.uid b/addons/SignalVisualizer/Common/signal_connection.gd.uid
new file mode 100644
index 0000000..bd2142d
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_connection.gd.uid
@@ -0,0 +1 @@
+uid://dm613ct57qfwa
diff --git a/addons/SignalVisualizer/Common/signal_description.gd b/addons/SignalVisualizer/Common/signal_description.gd
new file mode 100644
index 0000000..66dddb0
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_description.gd
@@ -0,0 +1,56 @@
+class_name SignalDescription extends Object
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var id: int:
+ get:
+ if _source_id != null:
+ return _source_id
+ return get_instance_id()
+
+var node_name: String
+var signal_name: String
+
+var description: String :
+ get:
+ return "ID: {id} Node: {node_name} Signal: {signal_name}".format({
+ "id": id,
+ "node_name": node_name,
+ "signal_name": signal_name,
+ })
+
+var dictionary_representation: Dictionary :
+ get:
+ return {
+ "id": id,
+ "node_name": node_name,
+ "signal_name": signal_name,
+ }
+
+var _source_id = null
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _init(node_name: String, signal_name: String):
+ self.node_name = node_name
+ self.signal_name = signal_name
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+
diff --git a/addons/SignalVisualizer/Common/signal_description.gd.uid b/addons/SignalVisualizer/Common/signal_description.gd.uid
new file mode 100644
index 0000000..1c41304
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_description.gd.uid
@@ -0,0 +1 @@
+uid://dvgsocxisw3ae
diff --git a/addons/SignalVisualizer/Common/signal_graph.gd b/addons/SignalVisualizer/Common/signal_graph.gd
new file mode 100644
index 0000000..731d8a5
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_graph.gd
@@ -0,0 +1,53 @@
+class_name SignalGraph extends Object
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var name: String
+var signals: Array[SignalDescription]
+var edges: Array[SignalConnection]
+
+var description: String :
+ get:
+ return "Signals: {signals}\nEdges: {edges}".format({
+ "signals": signals.map(func (item): return item.description),
+ "edges": edges.map(func (item): return item.description),
+ })
+
+var dictionary_representation: Dictionary :
+ get:
+ return {
+ "name": name,
+ "signals": signals.map(func (element): return element.dictionary_representation),
+ "edges": edges.map(func (element): return element.dictionary_representation),
+ }
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _init(name: String, signals: Array[SignalDescription] = [], edges: Array[SignalConnection] = []):
+ self.name = name
+ self.signals = signals
+ self.edges = edges
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func get_source_signal_for_edge(edge: SignalConnection) -> SignalDescription:
+ var result = signals.filter(func (item): return item.id == edge.signal_id)
+ if result.size() > 0:
+ return result[0]
+ return null
diff --git a/addons/SignalVisualizer/Common/signal_graph.gd.uid b/addons/SignalVisualizer/Common/signal_graph.gd.uid
new file mode 100644
index 0000000..8e72ce2
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_graph.gd.uid
@@ -0,0 +1 @@
+uid://2qj81iy1le0a
diff --git a/addons/SignalVisualizer/Common/signal_graph_utility.gd b/addons/SignalVisualizer/Common/signal_graph_utility.gd
new file mode 100644
index 0000000..0a2cd22
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_graph_utility.gd
@@ -0,0 +1,170 @@
+@tool
+class_name SignalGraphUtility
+
+static var SignalGraphNode = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node.tscn")
+static var GraphNodeItem = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn")
+
+const SOURCE_COLOR: Color = Color.SKY_BLUE
+const DESTINATION_COLOR: Color = Color.CORAL
+const CONNECTION_TYPE: int = 0
+
+#region Methods
+
+static func create_signal_graph(name: String, signals: Array, edges: Array) -> SignalGraph:
+ var signal_graph = SignalGraph.new(name)
+
+ for signal_item in signals:
+ var new_signal_description = SignalDescription.new(signal_item.node_name, signal_item.signal_name)
+ new_signal_description._source_id = signal_item.id
+ signal_graph.signals.append(new_signal_description)
+
+ for connection in edges:
+ var new_edge = SignalConnection.new(connection.signal_id, connection.source_node_name, connection.destination_node_name, connection.method_signature)
+ signal_graph.edges.append(new_edge)
+
+ return signal_graph
+
+static func create_signal_graph_from_node(root_node: Node, is_persistent_only: bool = false):
+ var signal_graph = SignalGraph.new(root_node.scene_file_path)
+ var all_nodes: Array[Node] = _gather_nodes_from_node(root_node)
+ var signals: Array[SignalDescription] = []
+ var edges: Array[SignalConnection] = []
+
+ for node in all_nodes:
+ for signal_item in node.get_signal_list():
+ var existing_signals = []
+ var connection_list = node.get_signal_connection_list(signal_item["name"] as String)
+ if connection_list.size() > 0:
+ for connection in connection_list:
+ var enabled_flags = connection["flags"] == CONNECT_PERSIST if is_persistent_only else true
+ var should_display_connection = "name" in connection["callable"].get_object() and not connection["callable"].get_object().name.begins_with("@") and enabled_flags
+ if should_display_connection:
+ var signal_description: SignalDescription
+ var filtered_signals = existing_signals.filter(func (element): return element.signal_name == signal_item.name and element.node_name == node.name)
+ if filtered_signals.size() == 1:
+ signal_description = filtered_signals[0]
+ else:
+ signal_description = SignalDescription.new(node.name, signal_item.name)
+ existing_signals.append(signal_description)
+ signals.append(signal_description)
+
+ var signal_edge = SignalConnection.new(signal_description.id, signal_description.node_name, connection["callable"].get_object().name, connection["callable"].get_method())
+ if not signal_graph.edges.any(func (element): return element.signal_id == signal_description.id):
+ edges.append(signal_edge)
+
+ var temp_signals = {}
+ for item in signals:
+ temp_signals[item.id] = item
+
+ var temp_edges = {}
+ for item in edges:
+ temp_edges[item.dictionary_key] = item
+
+ signal_graph.signals.assign(temp_signals.keys().map(func (key): return temp_signals[key]))
+ signal_graph.edges.assign(temp_edges.keys().map(func (key): return temp_edges[key]))
+
+ return signal_graph
+
+static func generate_signal_graph_nodes(signal_graph: SignalGraph, graph_node: GraphEdit, open_script_callable: Callable):
+ var graph_nodes: Dictionary = {}
+
+ for signal_item in signal_graph.signals:
+ var current_graph_node: SignalGraphNode
+ if graph_nodes.has(signal_item.node_name):
+ current_graph_node = graph_nodes[signal_item.node_name]
+ if not current_graph_node:
+ current_graph_node = SignalGraphNode.instantiate()
+ current_graph_node.title = signal_item.node_name
+ current_graph_node.name = _get_graph_node_name(signal_item.node_name)
+ graph_node.add_child(current_graph_node)
+ graph_nodes[signal_item.node_name] = current_graph_node
+
+ for edge in signal_graph.edges:
+ var destination_graph_node: SignalGraphNode
+ if graph_nodes.has(edge.destination_node_name):
+ destination_graph_node = graph_nodes[edge.destination_node_name]
+ else:
+ destination_graph_node = SignalGraphNode.instantiate()
+ destination_graph_node.title = edge.destination_node_name
+ destination_graph_node.name = _get_graph_node_name(edge.destination_node_name)
+ graph_node.add_child(destination_graph_node)
+ graph_nodes[edge.destination_node_name] = destination_graph_node
+
+ var source_signal = signal_graph.get_source_signal_for_edge(edge)
+ if source_signal != null:
+ var source_graph_node: SignalGraphNode = graph_nodes[edge.source_node_name] as SignalGraphNode
+
+ if not source_graph_node.has_source_signal_description(source_signal.signal_name, edge.destination_node_name):
+ var source_signal_label = Label.new()
+ source_signal_label.text = source_signal.signal_name
+ source_signal_label.name = "source_" + source_signal.signal_name + "_" + edge.destination_node_name
+ source_graph_node.add_child(source_signal_label)
+
+ var destination_signal_name = "destination_" + source_signal.signal_name + "_" + edge.method_signature.replace("::", "__")
+ var has_destination = destination_graph_node.has_destination_signal_description(source_signal.signal_name, edge.method_signature)
+ if not has_destination:
+ var destination_signal_item = GraphNodeItem.instantiate()
+ destination_signal_item.signal_data = SignalGraphNodeItem.Metadata.new(source_signal.signal_name, edge.method_signature, edge.destination_node_name)
+ destination_signal_item.text = edge.method_signature
+ destination_signal_item.name = destination_signal_name
+ destination_signal_item.open_script.connect(open_script_callable)
+ destination_graph_node.add_child(destination_signal_item)
+
+ for edge in signal_graph.edges:
+ var source_signal = signal_graph.get_source_signal_for_edge(edge)
+ if source_signal != null:
+ var source_graph_node: SignalGraphNode = graph_nodes[edge.source_node_name] as SignalGraphNode
+ var destination_graph_node: SignalGraphNode = graph_nodes[edge.destination_node_name] as SignalGraphNode
+
+ var from_port = source_graph_node.get_source_slot(source_signal.signal_name, edge.destination_node_name)
+ var to_port = destination_graph_node.get_destination_slot(source_signal.signal_name, edge.method_signature)
+
+ source_graph_node.set_slot(from_port, false, CONNECTION_TYPE, Color.BLACK, true, CONNECTION_TYPE, SOURCE_COLOR)
+ destination_graph_node.set_slot(to_port, true, CONNECTION_TYPE, DESTINATION_COLOR, false, CONNECTION_TYPE, Color.BLACK)
+
+ var from_slot_index = source_graph_node.get_next_source_slot(source_signal.signal_name, edge.destination_node_name)
+ var to_slot_index = destination_graph_node.get_next_destination_slot(source_signal.signal_name, edge.method_signature)
+
+ if from_port >= 0 and to_port >= 0:
+ graph_node.connect_node(source_graph_node.name, from_slot_index, destination_graph_node.name, to_slot_index)
+ else:
+ print(">>> Invalid Connection Request")
+
+static func generate_signal_graph_tree(signal_graph: SignalGraph, tree_node: Tree):
+ var root = tree_node.create_item()
+ root.set_text(0, signal_graph.name)
+
+ var tree_items: Dictionary = {}
+
+ for signal_item in signal_graph.signals:
+ var node_tree_item: TreeItem
+ if tree_items.has(signal_item.node_name):
+ node_tree_item = tree_items[signal_item.node_name] as TreeItem
+ else:
+ node_tree_item = tree_node.create_item(root)
+ node_tree_item.set_text(0, signal_item.node_name)
+ tree_items[signal_item.node_name] = node_tree_item
+
+ var signal_tree_item = tree_node.create_item(node_tree_item)
+ signal_tree_item.set_text(0, signal_item.signal_name)
+
+ for edge in signal_graph.edges.filter(func (item): return item.signal_id == signal_item.id):
+ var signal_connection_tree_item = tree_node.create_item(signal_tree_item)
+ signal_connection_tree_item.set_text(0, edge.destination_node_name + "::" + edge.method_signature)
+
+static func _get_graph_node_name(name: String) -> String:
+ return "{node_name}_graph_node".format({ "node_name": name })
+
+static func _gather_nodes_from_node(root_node: Node) -> Array[Node]:
+ var node_list: Array[Node] = [root_node]
+ return node_list + __gather_nodes_from_node(root_node)
+
+static func __gather_nodes_from_node(node: Node) -> Array[Node]:
+ var nodes: Array[Node] = []
+ for child in node.get_children(false):
+ nodes.append(child)
+ nodes += __gather_nodes_from_node(child)
+
+ return nodes
+
+#endregion
diff --git a/addons/SignalVisualizer/Common/signal_graph_utility.gd.uid b/addons/SignalVisualizer/Common/signal_graph_utility.gd.uid
new file mode 100644
index 0000000..3055a04
--- /dev/null
+++ b/addons/SignalVisualizer/Common/signal_graph_utility.gd.uid
@@ -0,0 +1 @@
+uid://csw8uccbs0vuk
diff --git a/addons/SignalVisualizer/Debugger/SignalDebugger.gd b/addons/SignalVisualizer/Debugger/SignalDebugger.gd
new file mode 100644
index 0000000..2f8a712
--- /dev/null
+++ b/addons/SignalVisualizer/Debugger/SignalDebugger.gd
@@ -0,0 +1,146 @@
+extends Node
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var _signal_graph: SignalGraph
+var _lambda_map: Dictionary = {}
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _ready():
+ if OS.is_debug_build():
+ EngineDebugger.register_message_capture("signal_debugger", _on_signal_debugger_message_capture)
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_signal_debugger_message_capture(message: String, data: Array) -> bool:
+ if message == "start":
+ _signal_graph = generate_signal_graph()
+ for signal_item in _signal_graph.signals:
+ _connect_to_signal(signal_item)
+ EngineDebugger.send_message(
+ "signal_debugger:generated_graph",
+ [[_signal_graph.signals.map(func (item): return item.dictionary_representation), _signal_graph.edges.map(func (item): return item.dictionary_representation)]]
+ )
+ if message == "stop" and _signal_graph:
+ for signal_item in _signal_graph.signals:
+ _disconnect_from_signal(signal_item)
+
+ if message == "invoke_signal" and data.size() == 2:
+ var node_name = data[0]
+ var signal_name = data[1]
+
+ var root_node = get_tree().current_scene
+ var node = root_node if root_node.name == node_name else root_node.find_child(node_name)
+ if node:
+ var connection_list = node.get_signal_connection_list(signal_name)
+ for connection in connection_list:
+ var callable = connection["callable"]
+ var bound_args = callable.get_bound_arguments()
+ var bound_args_count = callable.get_bound_arguments_count()
+ var method = callable.get_method()
+ callable.callv([node])
+
+ return true
+
+func _on_signal_execution(signal_name: String, node_name: String, args):
+ EngineDebugger.send_message(
+ "signal_debugger:signal_executed",
+ [Time.get_datetime_string_from_system(), node_name, signal_name]
+ )
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func generate_signal_graph() -> SignalGraph:
+ var graph = SignalGraphUtility.create_signal_graph_from_node(get_tree().current_scene)
+ return graph
+ #var signal_graph = SignalGraph.new(get_tree().current_scene.name)
+ #var all_nodes: Array[Node] = _gather_nodes_in_scene()
+ #var signals: Array[SignalDescription] = []
+ #var edges: Array[SignalConnection] = []
+ #
+ #for node in all_nodes:
+ #for signal_item in node.get_signal_list():
+ #var existing_signals = []
+ #var connection_list = node.get_signal_connection_list(signal_item["name"] as String)
+ #if connection_list.size() > 0:
+ #for connection in connection_list:
+ #var should_display_connection = "name" in connection["callable"].get_object() and not connection["callable"].get_object().name.begins_with("@")
+ #if should_display_connection:
+ #var signal_description: SignalDescription
+ #var filtered_signals = existing_signals.filter(func (element): return element.signal_name == signal_item.name and element.node_name == node.name)
+ #if filtered_signals.size() == 1:
+ #signal_description = filtered_signals[0]
+ #else:
+ #signal_description = SignalDescription.new(node.name, signal_item.name)
+ #existing_signals.append(signal_description)
+ #signals.append(signal_description)
+ #
+ #var signal_edge = SignalConnection.new(signal_description.id, signal_description.node_name, connection["callable"].get_object().name, connection["callable"].get_method())
+ #if not signal_graph.edges.any(func (element): return element.signal_id == signal_description.id):
+ #edges.append(signal_edge)
+ #
+ #var temp_signals = {}
+ #for item in signals:
+ #temp_signals[item.id] = item
+ #
+ #var temp_edges = {}
+ #for item in edges:
+ #temp_edges[item.dictionary_key] = item
+ #
+ #signal_graph.signals.assign(temp_signals.keys().map(func (key): return temp_signals[key]))
+ #signal_graph.edges.assign(temp_edges.keys().map(func (key): return temp_edges[key]))
+ #
+ #return signal_graph
+
+#func _gather_nodes_in_scene() -> Array[Node]:
+ #var scene_root = get_tree().current_scene
+ #var node_list: Array[Node] = [scene_root]
+ #return node_list + _gather_nodes_from_node(scene_root)
+#
+#func _gather_nodes_from_node(node: Node) -> Array[Node]:
+ #var nodes: Array[Node] = []
+ #for child in node.get_children(false):
+ #nodes.append(child)
+ #nodes += _gather_nodes_from_node(child)
+ #
+ #return nodes
+
+func _connect_to_signal(signal_item: SignalDescription):
+ var root_node = get_tree().current_scene
+ var _execute: Callable = func (args = []): _on_signal_execution(signal_item.signal_name, signal_item.node_name, args)
+ if root_node.name == signal_item.node_name:
+ root_node.connect(signal_item.signal_name, _execute)
+ _lambda_map[signal_item] = _execute
+ else:
+ var child = root_node.find_child(signal_item.node_name)
+ if child:
+ child.connect(signal_item.signal_name, _execute)
+ _lambda_map[signal_item] = _execute
+
+func _disconnect_from_signal(signal_item: SignalDescription):
+ var root_node = get_tree().current_scene
+ if root_node.name == signal_item.node_name:
+ var callable = _lambda_map[signal_item]
+ if callable:
+ root_node.disconnect(signal_item.signal_name, callable)
+ _lambda_map.erase(signal_item)
+ else:
+ var child = root_node.find_child(signal_item.node_name)
+ if child:
+ var callable = _lambda_map[signal_item]
+ if callable:
+ child.disconnect(signal_item.signal_name, callable)
+ _lambda_map.erase(signal_item)
diff --git a/addons/SignalVisualizer/Debugger/SignalDebugger.gd.uid b/addons/SignalVisualizer/Debugger/SignalDebugger.gd.uid
new file mode 100644
index 0000000..cafedea
--- /dev/null
+++ b/addons/SignalVisualizer/Debugger/SignalDebugger.gd.uid
@@ -0,0 +1 @@
+uid://bmsqdh2cnmgw8
diff --git a/addons/SignalVisualizer/Debugger/SignalDebugger.tscn b/addons/SignalVisualizer/Debugger/SignalDebugger.tscn
new file mode 100644
index 0000000..12760a0
--- /dev/null
+++ b/addons/SignalVisualizer/Debugger/SignalDebugger.tscn
@@ -0,0 +1,97 @@
+[gd_scene load_steps=5 format=3 uid="uid://cbsmvov8u78q"]
+
+[ext_resource type="Script" path="res://addons/SignalVisualizer/Debugger/signal_debugger_panel.gd" id="1_66cpc"]
+[ext_resource type="Texture2D" uid="uid://be3nwoioa311t" path="res://addons/SignalVisualizer/Play.svg" id="2_2wkuv"]
+[ext_resource type="Texture2D" uid="uid://oo1oq2colx5b" path="res://addons/SignalVisualizer/Stop.svg" id="3_bg5eu"]
+[ext_resource type="Texture2D" uid="uid://bmnff63evbdhv" path="res://addons/SignalVisualizer/Clear.svg" id="4_vg63r"]
+
+[node name="SignalDebugger" type="Control"]
+clip_contents = true
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_66cpc")
+start_icon = ExtResource("2_2wkuv")
+stop_icon = ExtResource("3_bg5eu")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+clip_contents = true
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
+custom_minimum_size = Vector2(2.08165e-12, 50)
+layout_mode = 2
+theme_override_constants/separation = 8
+
+[node name="ActionButton" type="Button" parent="VBoxContainer/HBoxContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+disabled = true
+text = "Start"
+icon = ExtResource("2_2wkuv")
+
+[node name="ClearAllButton" type="Button" parent="VBoxContainer/HBoxContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+text = "Clear All"
+icon = ExtResource("4_vg63r")
+
+[node name="Spacer" type="Control" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="ClearLogsButton" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+text = "Clear Logs"
+icon = ExtResource("4_vg63r")
+
+[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+
+[node name="SignalTree" type="Tree" parent="VBoxContainer/HSplitContainer"]
+unique_name_in_owner = true
+custom_minimum_size = Vector2(250, 2.08165e-12)
+layout_mode = 2
+columns = 2
+allow_reselect = true
+allow_rmb_select = true
+hide_root = true
+
+[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HSplitContainer"]
+layout_mode = 2
+
+[node name="TabBar" type="TabBar" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
+layout_mode = 2
+tab_count = 2
+tab_0/title = "Signal Log"
+tab_1/title = "Signal Graph"
+
+[node name="LogLabel" type="RichTextLabel" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_vertical = 3
+theme_override_colors/default_color = Color(0.690196, 0.690196, 0.690196, 1)
+bbcode_enabled = true
+scroll_following = true
+
+[node name="Graph" type="GraphEdit" parent="VBoxContainer/HSplitContainer/VBoxContainer"]
+unique_name_in_owner = true
+visible = false
+layout_mode = 2
+size_flags_vertical = 3
+
+[connection signal="pressed" from="VBoxContainer/HBoxContainer/ActionButton" to="." method="_on_action_button_pressed"]
+[connection signal="pressed" from="VBoxContainer/HBoxContainer/ClearAllButton" to="." method="_on_clear_all_button_pressed"]
+[connection signal="pressed" from="VBoxContainer/HBoxContainer/ClearLogsButton" to="." method="_on_clear_logs_button_pressed"]
+[connection signal="item_selected" from="VBoxContainer/HSplitContainer/SignalTree" to="." method="_on_signal_tree_item_selected"]
+[connection signal="tab_changed" from="VBoxContainer/HSplitContainer/VBoxContainer/TabBar" to="." method="_on_tab_bar_tab_changed"]
diff --git a/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd b/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd
new file mode 100644
index 0000000..9cf51de
--- /dev/null
+++ b/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd
@@ -0,0 +1,192 @@
+@tool
+class_name SignalDebuggerPanel extends Control
+
+signal open_script(node_name: String, method_signature: String)
+
+signal start_signal_debugging
+signal stop_signal_debugging
+
+var SignalGraphNode = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node.tscn")
+var GraphNodeItem = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn")
+
+const SOURCE_COLOR: Color = Color.SKY_BLUE
+const DESTINATION_COLOR: Color = Color.CORAL
+const CONNECTION_TYPE: int = 0
+
+enum Tabs {
+ LOG,
+ GRAPH
+}
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+@export var start_icon: Texture2D
+@export var stop_icon: Texture2D
+
+@onready var action_button: Button = %ActionButton
+@onready var clear_all_button: Button = %ClearAllButton
+@onready var signal_tree: Tree = %SignalTree
+@onready var log_label: RichTextLabel = %LogLabel
+@onready var graph_node: GraphEdit = %Graph
+
+var is_started: bool = false :
+ get: return is_started
+ set(new_value):
+ is_started = new_value
+ _update_action_button()
+
+var _signals: Array = []
+var _signal_filter: Array = []
+var _is_stack_trace_enabled: bool = false
+var _debugger_tab_state: Tabs = Tabs.LOG
+var _graph: SignalGraph
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _ready():
+ disable()
+ _handle_tab_update(0)
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_action_button_pressed():
+ if is_started:
+ stop()
+ else:
+ start()
+
+func _on_clear_all_button_pressed():
+ log_label.clear()
+ signal_tree.clear()
+ graph_node.clear_connections()
+ for child in graph_node.get_children():
+ if child is SignalGraphNode:
+ child.queue_free()
+
+func _on_clear_logs_button_pressed():
+ log_label.clear()
+
+func _on_signal_tree_item_selected():
+ # Updates the checkmark button
+ var selected_item = signal_tree.get_selected()
+ var is_checked = selected_item.is_checked(1)
+ selected_item.set_checked(1, (not is_checked))
+
+ # Add / Remove signal from filters
+ var selected_signal = _signals.filter(func (element): return element.signal_name == selected_item.get_text(0))[0]
+ if _signal_filter.has(selected_signal.signal_name):
+ var selected_index = _signal_filter.find(selected_signal.signal_name)
+ _signal_filter.remove_at(selected_index)
+ else:
+ _signal_filter.append(selected_signal.signal_name)
+
+func _on_tab_bar_tab_changed(tab: int):
+ _handle_tab_update(tab)
+
+func _on_stack_trace_button_pressed():
+ _is_stack_trace_enabled = not _is_stack_trace_enabled
+
+func _on_open_signal_in_script(data: SignalGraphNodeItem.Metadata):
+ open_script.emit(data.node_name, data.method_signature)
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func enable():
+ action_button.disabled = false
+
+func disable():
+ action_button.disabled = true
+
+func start():
+ if not is_started:
+ is_started = true
+ action_button.icon = stop_icon
+ start_signal_debugging.emit()
+ log_label.append_text("[color=#B0B0B0]Signal Debugging Started...[/color]")
+ log_label.newline()
+ log_label.newline()
+
+func stop():
+ if is_started:
+ is_started = false
+ action_button.icon = start_icon
+ stop_signal_debugging.emit()
+ log_label.newline()
+ log_label.append_text("[color=#B0B0B0]Signal Debugging Stopped[/color]")
+ log_label.newline()
+ log_label.newline()
+
+func create_tree_from_signals(signals: Array):
+ _signals = signals
+ var root = signal_tree.create_item()
+ root.set_text(0, "Signals")
+
+ var tree_items: Dictionary = {}
+
+ for signal_item in signals:
+ var node_tree_item: TreeItem
+ if tree_items.has(signal_item.node_name):
+ node_tree_item = tree_items[signal_item.node_name] as TreeItem
+ else:
+ node_tree_item = signal_tree.create_item(root)
+ node_tree_item.set_text(0, signal_item.node_name)
+ node_tree_item.set_selectable(0, false)
+ node_tree_item.set_selectable(1, false)
+ tree_items[signal_item.node_name] = node_tree_item
+
+ var signal_tree_item = signal_tree.create_item(node_tree_item)
+ signal_tree_item.set_text(0, signal_item.signal_name)
+ signal_tree_item.set_cell_mode(1, TreeItem.CELL_MODE_CHECK)
+ signal_tree_item.set_checked(1, true)
+ signal_tree_item.set_selectable(0, false)
+ signal_tree_item.set_selectable(1, true)
+
+func create_signal_graph(signals: Array, edges: Array):
+ _graph = SignalGraphUtility.create_signal_graph(get_tree().edited_scene_root.scene_file_path, signals, edges)
+ SignalGraphUtility.generate_signal_graph_nodes(_graph, graph_node, _on_open_signal_in_script)
+
+func log_signal_execution(time: String, node_name: String, signal_name: String):
+ if _signal_filter != null and _signal_filter.has(signal_name):
+ return
+
+ if not log_label.text.is_empty():
+ log_label.newline()
+ log_label.append_text(
+ "[color=#FFCC00]{time}[/color]\t\t{node_name}\t\t{signal_name}".format({ "time": time, "node_name": node_name, "signal_name": signal_name })
+ )
+ log_label.newline()
+
+func _handle_tab_update(selected_tab_index: int):
+ match selected_tab_index:
+ 1:
+ _debugger_tab_state = Tabs.GRAPH
+ _:
+ _debugger_tab_state = Tabs.LOG
+
+ match _debugger_tab_state:
+ Tabs.LOG:
+ log_label.show()
+ graph_node.hide()
+ Tabs.GRAPH:
+ log_label.hide()
+ graph_node.show()
+
+func _update_action_button():
+ if is_started:
+ action_button.text = "Stop"
+ action_button.modulate = Color("#ff3b30")
+ else:
+ action_button.text = "Start"
+ action_button.modulate = Color.WHITE
diff --git a/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd.uid b/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd.uid
new file mode 100644
index 0000000..45d1550
--- /dev/null
+++ b/addons/SignalVisualizer/Debugger/signal_debugger_panel.gd.uid
@@ -0,0 +1 @@
+uid://yg8cqm6f1prd
diff --git a/addons/SignalVisualizer/GraphEdit.svg b/addons/SignalVisualizer/GraphEdit.svg
new file mode 100644
index 0000000..b53e264
--- /dev/null
+++ b/addons/SignalVisualizer/GraphEdit.svg
@@ -0,0 +1 @@
+
diff --git a/addons/SignalVisualizer/GraphEdit.svg.import b/addons/SignalVisualizer/GraphEdit.svg.import
new file mode 100644
index 0000000..30d83d6
--- /dev/null
+++ b/addons/SignalVisualizer/GraphEdit.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bxj8ep08wbnm6"
+path="res://.godot/imported/GraphEdit.svg-90dae61e8e0b157ab8eff95fe4b91e53.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/SignalVisualizer/GraphEdit.svg"
+dest_files=["res://.godot/imported/GraphEdit.svg-90dae61e8e0b157ab8eff95fe4b91e53.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/addons/SignalVisualizer/Play.svg b/addons/SignalVisualizer/Play.svg
new file mode 100644
index 0000000..7da41c1
--- /dev/null
+++ b/addons/SignalVisualizer/Play.svg
@@ -0,0 +1 @@
+
diff --git a/addons/SignalVisualizer/Play.svg.import b/addons/SignalVisualizer/Play.svg.import
new file mode 100644
index 0000000..e580485
--- /dev/null
+++ b/addons/SignalVisualizer/Play.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://be3nwoioa311t"
+path="res://.godot/imported/Play.svg-a446691ffcef211028bb160b5a2d6ff1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/SignalVisualizer/Play.svg"
+dest_files=["res://.godot/imported/Play.svg-a446691ffcef211028bb160b5a2d6ff1.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/addons/SignalVisualizer/SignalVisualizer.gd b/addons/SignalVisualizer/SignalVisualizer.gd
new file mode 100644
index 0000000..7701613
--- /dev/null
+++ b/addons/SignalVisualizer/SignalVisualizer.gd
@@ -0,0 +1,162 @@
+@tool
+extends EditorPlugin
+
+class SignalDebuggerPlugin extends EditorDebuggerPlugin:
+ var SignalDebuggerPanelScene = preload("res://addons/SignalVisualizer/Debugger/SignalDebugger.tscn")
+
+ signal open_script
+ signal start_signal_debugging
+ signal stop_signal_debugging
+
+ var debugger_panel
+
+ func _has_capture(prefix) -> bool:
+ return prefix == "signal_debugger"
+
+ func _capture(message, data, session_id) -> bool:
+ if message == "signal_debugger:signal_executed":
+ if data.size() == 3:
+ var time = data[0]
+ var node_name = data[1]
+ var signal_name = data[2]
+ debugger_panel.log_signal_execution(time, node_name, signal_name)
+ return true
+
+ if message == "signal_debugger:generated_graph":
+ if data.size() == 1:
+ var signals = data[0][0] as Array
+ var edges = data[0][1] as Array
+ debugger_panel.create_tree_from_signals(signals)
+ debugger_panel.create_signal_graph(signals, edges)
+ return true
+
+ return false
+
+ func _setup_session(session_id):
+ debugger_panel = SignalDebuggerPanelScene.instantiate()
+ var session = get_session(session_id)
+
+ debugger_panel.name = "Signal Debugger"
+ debugger_panel.open_script.connect(func (arg1, arg2): open_script.emit(arg1, arg2))
+ debugger_panel.start_signal_debugging.connect(func (): start_signal_debugging.emit())
+ debugger_panel.stop_signal_debugging.connect(func (): stop_signal_debugging.emit())
+
+ session.started.connect(
+ func ():
+ debugger_panel.enable()
+ )
+ session.stopped.connect(
+ func ():
+ debugger_panel.stop()
+ debugger_panel.disable()
+ stop_signal_debugging.emit()
+ )
+
+ session.add_session_tab(debugger_panel)
+
+var SignalVisualizerDockScene = preload("res://addons/SignalVisualizer/Visualizer/signal_visualizer_dock.tscn")
+
+class ScriptMethodReference:
+ var script_reference: Script
+ var line_number: int
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var dock: Control
+var debugger: SignalDebuggerPlugin
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _enter_tree():
+ dock = SignalVisualizerDockScene.instantiate()
+ debugger = SignalDebuggerPlugin.new()
+
+ dock.open_script.connect(_on_open_signal_in_script)
+ add_control_to_bottom_panel(dock, "Signal Visualizer")
+
+ debugger.start_signal_debugging.connect(_on_debugger_start_signal_debugging)
+ debugger.stop_signal_debugging.connect(_on_debugger_stop_signal_debugging)
+ debugger.open_script.connect(_on_open_signal_in_script)
+ add_debugger_plugin(debugger)
+
+ if not ProjectSettings.has_setting("autoload/Signal_Debugger"):
+ add_autoload_singleton("Signal_Debugger", "res://addons/SignalVisualizer/Debugger/SignalDebugger.gd")
+
+func _exit_tree():
+ remove_control_from_bottom_panel(dock)
+ dock.free()
+
+ remove_debugger_plugin(debugger)
+ remove_autoload_singleton("Signal_Debugger")
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_open_signal_in_script(node_name: String, method_signature: String):
+ var node: Node
+ if get_tree().edited_scene_root.name == node_name:
+ node = get_tree().edited_scene_root
+ else:
+ node = get_tree().edited_scene_root.find_child(node_name)
+
+ if node != null:
+ var script: Script = node.get_script()
+ if script != null:
+ var editor = get_editor_interface()
+ var method_reference = _find_method_reference_in_script(script, method_signature)
+
+ if method_reference != null:
+ editor.edit_script(method_reference.script_reference, method_reference.line_number, 0)
+ editor.set_main_screen_editor("Script")
+ else:
+ push_warning("Requested method in script ({script}) for node ({name}) is not available.".format({ "name": node_name, "script": script.name }))
+ else:
+ push_warning("Requested script for node ({name}) is not available.".format({ "name": node_name }))
+ else:
+ push_warning("Requested script for node ({name}) is not available.".format({ "name": node_name }))
+
+func _on_debugger_start_signal_debugging():
+ for session in debugger.get_sessions():
+ session.send_message("signal_debugger:start", [])
+
+func _on_debugger_stop_signal_debugging():
+ for session in debugger.get_sessions():
+ session.send_message("signal_debugger:stop", [])
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _find_method_reference_in_script(script: Script, method_signature: String) -> ScriptMethodReference:
+ var line_number = __find_method_line_number_in_script(script, method_signature)
+
+ if line_number == -1:
+ var base_script = script.get_base_script()
+ if base_script:
+ return _find_method_reference_in_script(base_script, method_signature)
+
+ var reference = ScriptMethodReference.new()
+ reference.script_reference = script
+ reference.line_number = line_number
+
+ return reference
+
+func __find_method_line_number_in_script(script: Script, method_signature: String) -> int:
+ var line_number = 0
+ var found = false
+ for line in script.source_code.split("\n", true):
+ line_number += 1
+ if line.contains(method_signature):
+ found = true
+ return line_number
+
+ return -1
diff --git a/addons/SignalVisualizer/SignalVisualizer.gd.uid b/addons/SignalVisualizer/SignalVisualizer.gd.uid
new file mode 100644
index 0000000..3cb5af2
--- /dev/null
+++ b/addons/SignalVisualizer/SignalVisualizer.gd.uid
@@ -0,0 +1 @@
+uid://43lcsn3nt3ri
diff --git a/addons/SignalVisualizer/Stop.svg b/addons/SignalVisualizer/Stop.svg
new file mode 100644
index 0000000..4c79ea1
--- /dev/null
+++ b/addons/SignalVisualizer/Stop.svg
@@ -0,0 +1 @@
+
diff --git a/addons/SignalVisualizer/Stop.svg.import b/addons/SignalVisualizer/Stop.svg.import
new file mode 100644
index 0000000..5e92938
--- /dev/null
+++ b/addons/SignalVisualizer/Stop.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://oo1oq2colx5b"
+path="res://.godot/imported/Stop.svg-e085086fb31c334bc2f02ca2bffba522.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/SignalVisualizer/Stop.svg"
+dest_files=["res://.godot/imported/Stop.svg-e085086fb31c334bc2f02ca2bffba522.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/addons/SignalVisualizer/Visualizer/resizable_label.gd b/addons/SignalVisualizer/Visualizer/resizable_label.gd
new file mode 100644
index 0000000..1c09297
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/resizable_label.gd
@@ -0,0 +1,31 @@
+@tool
+extends Label
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func get_text_size() -> Vector2:
+ return get_theme_default_font().get_string_size(text)
diff --git a/addons/SignalVisualizer/Visualizer/resizable_label.gd.uid b/addons/SignalVisualizer/Visualizer/resizable_label.gd.uid
new file mode 100644
index 0000000..b87c32a
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/resizable_label.gd.uid
@@ -0,0 +1 @@
+uid://d3lyqancfvwup
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node.gd b/addons/SignalVisualizer/Visualizer/signal_graph_node.gd
new file mode 100644
index 0000000..1b3fa5e
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node.gd
@@ -0,0 +1,94 @@
+@tool
+class_name SignalGraphNode extends GraphNode
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+var connections: Array = [] :
+ get: return connections
+ set(new_value):
+ connections = new_value
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _ready():
+ selectable = true
+ resizable = true
+ draggable = true
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_resize_request(new_minsize):
+ size = new_minsize
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func has_source_signal_description(signal_name: String, destination_node_name: String) -> bool:
+ for child in get_children():
+ if child.name == "source_" + signal_name + "_" + destination_node_name:
+ return true
+
+ return false
+
+func get_source_slot(signal_name: String, destination_node_name: String) -> int:
+ var index = 0
+ for child in get_children():
+ if child.name == "source_" + signal_name + "_" + destination_node_name:
+ return index
+
+ index += 1
+
+ return -1
+
+func get_next_source_slot(signal_name: String, destination_node_name: String) -> int:
+ var index = 0
+ for child in get_children():
+ if child.name.begins_with("source_"):
+ if child.name == "source_" + signal_name + "_" + destination_node_name:
+ return index
+
+ index += 1
+
+ return -1
+
+func has_destination_signal_description(signal_name: String, method_signature: String) -> bool:
+ for child in get_children():
+ if child.name == "destination_" + signal_name + "_" + _sanitize_method_signature(method_signature):
+ return true
+
+ return false
+
+func get_destination_slot(signal_name: String, method_signature: String) -> int:
+ var index = 0
+ for child in get_children():
+ if child.name == "destination_" + signal_name + "_" + _sanitize_method_signature(method_signature):
+ return index
+
+ index += 1
+
+ return -1
+
+func get_next_destination_slot(signal_name: String, method_signature: String) -> int:
+ var index = 0
+ for child in get_children():
+ if child.name.begins_with("destination_"):
+ if child.name == "destination_" + signal_name + "_" + _sanitize_method_signature(method_signature):
+ return index
+
+ index += 1
+
+ return -1
+
+func _sanitize_method_signature(signature: String) -> String:
+ return signature.replace("::", "__")
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node.gd.uid b/addons/SignalVisualizer/Visualizer/signal_graph_node.gd.uid
new file mode 100644
index 0000000..fd4bbdb
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node.gd.uid
@@ -0,0 +1 @@
+uid://bdwkkgkhgfrtk
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node.tscn b/addons/SignalVisualizer/Visualizer/signal_graph_node.tscn
new file mode 100644
index 0000000..b28fdda
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node.tscn
@@ -0,0 +1,12 @@
+[gd_scene load_steps=2 format=3 uid="uid://cq10iaub18e54"]
+
+[ext_resource type="Script" path="res://addons/SignalVisualizer/Visualizer/signal_graph_node.gd" id="1_ovklj"]
+
+[node name="SignalGraphNode" type="GraphNode"]
+custom_minimum_size = Vector2(100, 50)
+offset_right = 232.0
+offset_bottom = 54.0
+resizable = true
+script = ExtResource("1_ovklj")
+
+[connection signal="resize_request" from="." to="." method="_on_resize_request"]
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd
new file mode 100644
index 0000000..60f7df5
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd
@@ -0,0 +1,57 @@
+@tool
+class_name SignalGraphNodeItem extends Control
+
+signal open_script(metadata: SignalGraphNodeItem.Metadata)
+
+class Metadata:
+ var signal_name: String
+ var method_signature: String
+ var node_name: String
+
+ func _init(signal_name: String, method_signature: String, node_name: String):
+ self.signal_name = signal_name
+ self.method_signature = method_signature
+ self.node_name = node_name
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+@onready var label: Label = %DescriptionLabel
+
+var signal_data: Metadata = null
+
+var text: String = "" :
+ get: return text
+ set(new_value):
+ text = new_value
+ if label:
+ label.text = text
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _ready():
+ _update()
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_open_signal_in_script_button_pressed():
+ open_script.emit(signal_data)
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _update():
+ label.text = text
+
+ var text_size = label.get_text_size()
+ custom_minimum_size = Vector2((text_size.x * 2) + 50, text_size.y * 3)
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd.uid b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd.uid
new file mode 100644
index 0000000..f506749
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd.uid
@@ -0,0 +1 @@
+uid://c0n3sifmbiih0
diff --git a/addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn
new file mode 100644
index 0000000..788ba36
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn
@@ -0,0 +1,43 @@
+[gd_scene load_steps=3 format=3 uid="uid://b2lwtwp6kpwtb"]
+
+[ext_resource type="Script" path="res://addons/SignalVisualizer/Visualizer/signal_graph_node_item.gd" id="1_jrd34"]
+[ext_resource type="Script" path="res://addons/SignalVisualizer/Visualizer/resizable_label.gd" id="2_4wwd5"]
+
+[node name="SignalItem" type="Control"]
+clip_contents = true
+custom_minimum_size = Vector2(51, 23)
+layout_mode = 3
+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
+script = ExtResource("1_jrd34")
+
+[node name="HBoxContainer" type="HBoxContainer" parent="."]
+custom_minimum_size = Vector2(100, 50)
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="DescriptionLabel" type="Label" parent="HBoxContainer"]
+unique_name_in_owner = true
+custom_minimum_size = Vector2(100, 50)
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_vertical = 1
+vertical_alignment = 1
+clip_text = true
+script = ExtResource("2_4wwd5")
+
+[node name="OpenSignalInScriptButton" type="Button" parent="HBoxContainer"]
+layout_mode = 2
+text = "Open"
+flat = true
+
+[connection signal="pressed" from="HBoxContainer/OpenSignalInScriptButton" to="." method="_on_open_signal_in_script_button_pressed"]
diff --git a/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd
new file mode 100644
index 0000000..b3f6539
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd
@@ -0,0 +1,67 @@
+@tool
+extends Control
+
+signal open_script(node_name: String, method_signature: String)
+
+var SignalGraphNode = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node.tscn")
+var GraphNodeItem = preload("res://addons/SignalVisualizer/Visualizer/signal_graph_node_item.tscn")
+
+# Properties
+# |===================================|
+# |===================================|
+# |===================================|
+
+const SOURCE_COLOR: Color = Color.SKY_BLUE
+const DESTINATION_COLOR: Color = Color.CORAL
+const CONNECTION_TYPE: int = 0
+
+@onready var arrange_nodes_checkbox: CheckBox = %ArrangeNodesCheckBox
+@onready var signal_details_checkbox: CheckBox = %SignalDetailsCheckBox
+@onready var signal_tree: Tree = %SignalTree
+@onready var graph: GraphEdit = %Graph
+
+# Lifecycle
+# |===================================|
+# |===================================|
+# |===================================|
+
+
+
+# Signals
+# |===================================|
+# |===================================|
+# |===================================|
+
+func _on_clear_graph_button_pressed():
+ clear()
+
+func _on_generate_graph_button_pressed():
+ clear()
+
+ var scene_signal_graph = SignalGraphUtility.create_signal_graph_from_node(get_tree().edited_scene_root, true)
+ SignalGraphUtility.generate_signal_graph_nodes(scene_signal_graph, graph, _on_open_signal_in_script)
+ SignalGraphUtility.generate_signal_graph_tree(scene_signal_graph, signal_tree)
+
+ if arrange_nodes_checkbox.button_pressed:
+ graph.arrange_nodes()
+
+func _on_open_signal_in_script(data: SignalGraphNodeItem.Metadata):
+ open_script.emit(data.node_name, data.method_signature)
+
+# Methods
+# |===================================|
+# |===================================|
+# |===================================|
+
+func clear():
+ _clear_graph_nodes()
+ _clear_tree()
+
+func _clear_graph_nodes():
+ graph.clear_connections()
+ for child in graph.get_children():
+ if child is SignalGraphNode:
+ child.queue_free()
+
+func _clear_tree():
+ signal_tree.clear()
diff --git a/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd.uid b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd.uid
new file mode 100644
index 0000000..ccd3b7e
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd.uid
@@ -0,0 +1 @@
+uid://bbd48wbihmuos
diff --git a/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.tscn b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.tscn
new file mode 100644
index 0000000..c94817d
--- /dev/null
+++ b/addons/SignalVisualizer/Visualizer/signal_visualizer_dock.tscn
@@ -0,0 +1,78 @@
+[gd_scene load_steps=5 format=3 uid="uid://dppfamjc0ji40"]
+
+[ext_resource type="Script" path="res://addons/SignalVisualizer/Visualizer/signal_visualizer_dock.gd" id="1_akar5"]
+[ext_resource type="Texture2D" uid="uid://bmnff63evbdhv" path="res://addons/SignalVisualizer/Clear.svg" id="2_m8bsv"]
+[ext_resource type="Texture2D" uid="uid://bxj8ep08wbnm6" path="res://addons/SignalVisualizer/GraphEdit.svg" id="3_dtmqs"]
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ae0jg"]
+
+[node name="SignalVisualizerDock" type="Control"]
+clip_contents = true
+custom_minimum_size = Vector2(2.08165e-12, 200)
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_akar5")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+clip_contents = true
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+size_flags_horizontal = 3
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
+clip_contents = true
+custom_minimum_size = Vector2(2.08165e-12, 50)
+layout_mode = 2
+theme_override_constants/separation = 8
+alignment = 2
+
+[node name="ArrangeNodesCheckBox" type="CheckBox" parent="VBoxContainer/HBoxContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+text = "Arrange Nodes"
+
+[node name="SignalDetailsCheckBox" type="CheckBox" parent="VBoxContainer/HBoxContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+text = "Signal Details"
+
+[node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+theme_override_styles/panel = SubResource("StyleBoxEmpty_ae0jg")
+
+[node name="ClearGraphButton" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+text = "Clear Graph"
+icon = ExtResource("2_m8bsv")
+
+[node name="GenerateGraphButton" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+text = "Generate Graph"
+icon = ExtResource("3_dtmqs")
+
+[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+
+[node name="SignalTree" type="Tree" parent="VBoxContainer/HSplitContainer"]
+unique_name_in_owner = true
+custom_minimum_size = Vector2(200, 2.08165e-12)
+layout_mode = 2
+column_titles_visible = true
+
+[node name="Graph" type="GraphEdit" parent="VBoxContainer/HSplitContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+size_flags_vertical = 3
+
+[connection signal="pressed" from="VBoxContainer/HBoxContainer/ClearGraphButton" to="." method="_on_clear_graph_button_pressed"]
+[connection signal="pressed" from="VBoxContainer/HBoxContainer/GenerateGraphButton" to="." method="_on_generate_graph_button_pressed"]
diff --git a/addons/SignalVisualizer/plugin.cfg b/addons/SignalVisualizer/plugin.cfg
new file mode 100644
index 0000000..1b02071
--- /dev/null
+++ b/addons/SignalVisualizer/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="SignalVisualizer"
+description="Visual the current scene's signal connections as a graph. Debug the current running scene's signals with automatic logging in a new debugger panel."
+author="MiniGameDev"
+version="1.7.0"
+script="SignalVisualizer.gd"
diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn b/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn
index 177596b..7c07a3e 100644
--- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn
+++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn
@@ -21,5 +21,5 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
-color = Color(1, 1, 1, 0)
+color = Color(0, 0, 0, 0.658824)
script = ExtResource("2_ghan2")
diff --git a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres
index 07489b4..a255140 100644
--- a/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres
+++ b/addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres
@@ -10,3 +10,4 @@ corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
+shadow_color = Color(0, 0, 0, 0.772549)
diff --git a/art/farm/Babushka_house_01.png b/art/farm/Babushka_house_01.png
new file mode 100644
index 0000000..f6d2589
Binary files /dev/null and b/art/farm/Babushka_house_01.png differ
diff --git a/art/farm/Babushka_house_01.png.import b/art/farm/Babushka_house_01.png.import
new file mode 100644
index 0000000..a0f95c6
--- /dev/null
+++ b/art/farm/Babushka_house_01.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://65e44yde224q"
+path="res://.godot/imported/Babushka_house_01.png-2abdaa4b7145961a1de62ba9271ec19d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/farm/Babushka_house_01.png"
+dest_files=["res://.godot/imported/Babushka_house_01.png-2abdaa4b7145961a1de62ba9271ec19d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/farm/Babushka_house_01.png~ b/art/farm/Babushka_house_01.png~
new file mode 100644
index 0000000..6cf13ac
Binary files /dev/null and b/art/farm/Babushka_house_01.png~ differ
diff --git a/art/indoor/room export/Room_01_walls.png b/art/indoor/room export/Room_01_walls.png
index 2d1d7c0..ca488d9 100644
Binary files a/art/indoor/room export/Room_01_walls.png and b/art/indoor/room export/Room_01_walls.png differ
diff --git a/art/indoor/room export/Room_01_walls.png~ b/art/indoor/room export/Room_01_walls.png~
new file mode 100644
index 0000000..2d1d7c0
Binary files /dev/null and b/art/indoor/room export/Room_01_walls.png~ differ
diff --git a/art/mockups/Jelena 2d/jelena_mockup_bg01.png b/art/mockups/Jelena 2d/jelena_mockup_bg01.png
index d822521..0e230bc 100644
Binary files a/art/mockups/Jelena 2d/jelena_mockup_bg01.png and b/art/mockups/Jelena 2d/jelena_mockup_bg01.png differ
diff --git a/art/mockups/Jelena 2d/jelena_mockup_bg01.png~ b/art/mockups/Jelena 2d/jelena_mockup_bg01.png~
new file mode 100644
index 0000000..d822521
Binary files /dev/null and b/art/mockups/Jelena 2d/jelena_mockup_bg01.png~ differ
diff --git a/art/mockups/Jelena 2d/jelena_mockup_bg_02.png b/art/mockups/Jelena 2d/jelena_mockup_bg_02.png
index 6014c1f..aa48b08 100644
Binary files a/art/mockups/Jelena 2d/jelena_mockup_bg_02.png and b/art/mockups/Jelena 2d/jelena_mockup_bg_02.png differ
diff --git a/art/mockups/Jelena 2d/jelena_mockup_bg_02.png~ b/art/mockups/Jelena 2d/jelena_mockup_bg_02.png~
new file mode 100644
index 0000000..6014c1f
Binary files /dev/null and b/art/mockups/Jelena 2d/jelena_mockup_bg_02.png~ differ
diff --git a/art/nature/baum märz 2025/gräser und büsche.png b/art/nature/baum märz 2025/gräser und büsche.png
index f34be01..6f19cf3 100644
Binary files a/art/nature/baum märz 2025/gräser und büsche.png and b/art/nature/baum märz 2025/gräser und büsche.png differ
diff --git a/art/nature/baum märz 2025/gräser und büsche.png~ b/art/nature/baum märz 2025/gräser und büsche.png~
new file mode 100644
index 0000000..f34be01
Binary files /dev/null and b/art/nature/baum märz 2025/gräser und büsche.png~ differ
diff --git a/art/ui/UI/UI_bag_export_01.png b/art/ui/UI/UI_bag_export_01.png
index 7feb88c..c235ec0 100644
Binary files a/art/ui/UI/UI_bag_export_01.png and b/art/ui/UI/UI_bag_export_01.png differ
diff --git a/art/ui/UI/UI_bag_export_01.png~ b/art/ui/UI/UI_bag_export_01.png~
new file mode 100644
index 0000000..7feb88c
Binary files /dev/null and b/art/ui/UI/UI_bag_export_01.png~ differ
diff --git a/art/ui/UI/UI_bag_export_02.png b/art/ui/UI/UI_bag_export_02.png
index 2b7173c..d13fd2e 100644
Binary files a/art/ui/UI/UI_bag_export_02.png and b/art/ui/UI/UI_bag_export_02.png differ
diff --git a/art/ui/UI/UI_bag_export_02.png~ b/art/ui/UI/UI_bag_export_02.png~
new file mode 100644
index 0000000..2b7173c
Binary files /dev/null and b/art/ui/UI/UI_bag_export_02.png~ differ
diff --git a/art/ui/UI/UI_bag_export_highlight_01.png b/art/ui/UI/UI_bag_export_highlight_01.png
new file mode 100644
index 0000000..fa731f5
Binary files /dev/null and b/art/ui/UI/UI_bag_export_highlight_01.png differ
diff --git a/art/ui/UI/UI_bag_export_highlight_01.png.import b/art/ui/UI/UI_bag_export_highlight_01.png.import
new file mode 100644
index 0000000..afe1fe0
--- /dev/null
+++ b/art/ui/UI/UI_bag_export_highlight_01.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://u0dku75l17re"
+path="res://.godot/imported/UI_bag_export_highlight_01.png-75e9e14d3080a5afb41b921dc593da52.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/UI_bag_export_highlight_01.png"
+dest_files=["res://.godot/imported/UI_bag_export_highlight_01.png-75e9e14d3080a5afb41b921dc593da52.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/UI_bag_export_highlight_02.png b/art/ui/UI/UI_bag_export_highlight_02.png
new file mode 100644
index 0000000..ca9e6ad
Binary files /dev/null and b/art/ui/UI/UI_bag_export_highlight_02.png differ
diff --git a/art/ui/UI/UI_bag_export_highlight_02.png.import b/art/ui/UI/UI_bag_export_highlight_02.png.import
new file mode 100644
index 0000000..a5d8b75
--- /dev/null
+++ b/art/ui/UI/UI_bag_export_highlight_02.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bag1xalfh731d"
+path="res://.godot/imported/UI_bag_export_highlight_02.png-3c40cc6d764913cde7bcc1bd97f1eb6d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/UI_bag_export_highlight_02.png"
+dest_files=["res://.godot/imported/UI_bag_export_highlight_02.png-3c40cc6d764913cde7bcc1bd97f1eb6d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/UI_bag_export_highlight_03.png b/art/ui/UI/UI_bag_export_highlight_03.png
new file mode 100644
index 0000000..c221274
Binary files /dev/null and b/art/ui/UI/UI_bag_export_highlight_03.png differ
diff --git a/art/ui/UI/UI_bag_export_highlight_03.png.import b/art/ui/UI/UI_bag_export_highlight_03.png.import
new file mode 100644
index 0000000..026852c
--- /dev/null
+++ b/art/ui/UI/UI_bag_export_highlight_03.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cxptule8n38ph"
+path="res://.godot/imported/UI_bag_export_highlight_03.png-d901f8d53fc4b996a469e8098ea5900b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/UI_bag_export_highlight_03.png"
+dest_files=["res://.godot/imported/UI_bag_export_highlight_03.png-d901f8d53fc4b996a469e8098ea5900b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-1.png b/art/ui/UI/Watercan-ui/Tropfen-ui-1.png
new file mode 100644
index 0000000..aaa41d5
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-1.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-1.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-1.png.import
new file mode 100644
index 0000000..577bd6c
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-1.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://l0k3vh3kdprp"
+path="res://.godot/imported/Tropfen-ui-1.png-ffd2adc2dec240ddecc1432b18c1c0f0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-1.png"
+dest_files=["res://.godot/imported/Tropfen-ui-1.png-ffd2adc2dec240ddecc1432b18c1c0f0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-2.png b/art/ui/UI/Watercan-ui/Tropfen-ui-2.png
new file mode 100644
index 0000000..4bdb07b
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-2.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-2.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-2.png.import
new file mode 100644
index 0000000..265f288
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-2.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://t4w7axbof7bq"
+path="res://.godot/imported/Tropfen-ui-2.png-f4fdc398383d494823a9c23512b5d46c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-2.png"
+dest_files=["res://.godot/imported/Tropfen-ui-2.png-f4fdc398383d494823a9c23512b5d46c.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-3.png b/art/ui/UI/Watercan-ui/Tropfen-ui-3.png
new file mode 100644
index 0000000..a7f53ad
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-3.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-3.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-3.png.import
new file mode 100644
index 0000000..e37d168
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-3.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://di2npqkvvst6x"
+path="res://.godot/imported/Tropfen-ui-3.png-3b58039a60642d36367527f2d94654fa.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-3.png"
+dest_files=["res://.godot/imported/Tropfen-ui-3.png-3b58039a60642d36367527f2d94654fa.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-4.png b/art/ui/UI/Watercan-ui/Tropfen-ui-4.png
new file mode 100644
index 0000000..248fada
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-4.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-4.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-4.png.import
new file mode 100644
index 0000000..1bc33c5
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-4.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://clti3basli30"
+path="res://.godot/imported/Tropfen-ui-4.png-e2c1542b620809f430977af3bdacd86f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-4.png"
+dest_files=["res://.godot/imported/Tropfen-ui-4.png-e2c1542b620809f430977af3bdacd86f.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-5.png b/art/ui/UI/Watercan-ui/Tropfen-ui-5.png
new file mode 100644
index 0000000..615f622
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-5.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-5.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-5.png.import
new file mode 100644
index 0000000..cb5ab16
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-5.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://n1v4hgd467wp"
+path="res://.godot/imported/Tropfen-ui-5.png-ee46a9fd4d81820f6fec9c30046a3b47.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-5.png"
+dest_files=["res://.godot/imported/Tropfen-ui-5.png-ee46a9fd4d81820f6fec9c30046a3b47.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-6.png b/art/ui/UI/Watercan-ui/Tropfen-ui-6.png
new file mode 100644
index 0000000..0ff2c5d
Binary files /dev/null and b/art/ui/UI/Watercan-ui/Tropfen-ui-6.png differ
diff --git a/art/ui/UI/Watercan-ui/Tropfen-ui-6.png.import b/art/ui/UI/Watercan-ui/Tropfen-ui-6.png.import
new file mode 100644
index 0000000..dedad38
--- /dev/null
+++ b/art/ui/UI/Watercan-ui/Tropfen-ui-6.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://l5ym7gi82l1b"
+path="res://.godot/imported/Tropfen-ui-6.png-2fee37aa3fbbde454a4d1b4f8ee350e6.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png"
+dest_files=["res://.godot/imported/Tropfen-ui-6.png-2fee37aa3fbbde454a4d1b4f8ee350e6.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ui/UI/inventory_active.png b/art/ui/UI/inventory_active.png
index 1e123f2..d1129d0 100644
Binary files a/art/ui/UI/inventory_active.png and b/art/ui/UI/inventory_active.png differ
diff --git a/audio/default_bus_layout.tres b/audio/default_bus_layout.tres
new file mode 100644
index 0000000..7fe0d48
--- /dev/null
+++ b/audio/default_bus_layout.tres
@@ -0,0 +1,16 @@
+[gd_resource type="AudioBusLayout" format=3 uid="uid://b6dwkmkyb0axk"]
+
+[resource]
+bus/0/volume_db = -5.93075
+bus/1/name = &"Music"
+bus/1/solo = false
+bus/1/mute = false
+bus/1/bypass_fx = false
+bus/1/volume_db = -17.6573
+bus/1/send = &"Master"
+bus/2/name = &"SFX"
+bus/2/solo = false
+bus/2/mute = false
+bus/2/bypass_fx = false
+bus/2/volume_db = 0.0
+bus/2/send = &"Master"
diff --git a/dialog/NPC_narrative.tres b/dialog/NPC_narrative.tres
index 7c85383..5b3302d 100644
--- a/dialog/NPC_narrative.tres
+++ b/dialog/NPC_narrative.tres
@@ -1,4 +1,4 @@
-[gd_resource type="Resource" script_class="DialogicStyle" load_steps=20 format=3 uid="uid://f7q6jac5tsk8"]
+[gd_resource type="Resource" script_class="DialogicStyle" load_steps=21 format=3 uid="uid://f7q6jac5tsk8"]
[ext_resource type="Script" uid="uid://dfx2htp24tuvm" path="res://addons/dialogic/Resources/dialogic_style_layer.gd" id="1_0jwhi"]
[ext_resource type="PackedScene" uid="uid://c1k5m0w3r40xf" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn" id="2_8wrfq"]
@@ -40,6 +40,7 @@ scene = ExtResource("5_reo2u")
overrides = {
"box_animation_in": "1",
"box_animation_out": "1",
+"box_panel": "\"vn_textbox_default_panel.tres\"",
"name_label_alignment": "2",
"name_label_box_modulate": "Color(1, 1, 1, 1)",
"name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"",
@@ -70,10 +71,15 @@ script = ExtResource("1_0jwhi")
scene = ExtResource("9_4c2uo")
overrides = {}
+[sub_resource type="Resource" id="Resource_0jwhi"]
+script = ExtResource("1_0jwhi")
+scene = ExtResource("6_i6h15")
+overrides = {}
+
[resource]
script = ExtResource("10_e3ue2")
name = "NPC_narrative"
-layer_list = Array[String](["10", "11", "12", "13", "14", "15", "16", "17"])
+layer_list = Array[String](["10", "11", "12", "13", "14", "15", "16", "17", "18"])
layer_info = {
"": SubResource("Resource_wg0yj"),
"10": SubResource("Resource_uxnk3"),
@@ -83,8 +89,9 @@ layer_info = {
"14": SubResource("Resource_clhbu"),
"15": SubResource("Resource_umvdi"),
"16": SubResource("Resource_ci2ul"),
-"17": SubResource("Resource_sadu5")
+"17": SubResource("Resource_sadu5"),
+"18": SubResource("Resource_0jwhi")
}
base_overrides = {}
layers = Array[ExtResource("1_0jwhi")]([])
-metadata/_latest_layer = ""
+metadata/_latest_layer = "14"
diff --git a/prefabs/UI/Inventory/Inventory.tscn b/prefabs/UI/Inventory/Inventory.tscn
index fba388b..61c9286 100644
--- a/prefabs/UI/Inventory/Inventory.tscn
+++ b/prefabs/UI/Inventory/Inventory.tscn
@@ -1,11 +1,13 @@
-[gd_scene load_steps=7 format=3 uid="uid://cgjc4wurbgimy"]
+[gd_scene load_steps=9 format=3 uid="uid://cgjc4wurbgimy"]
[ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"]
[ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"]
-[ext_resource type="Texture2D" uid="uid://dcidjcsqk12p1" path="res://art/ui/UI/UI_bag_export_02.png" id="4_df8i8"]
-[ext_resource type="Texture2D" uid="uid://c7wqla0mbu3np" path="res://art/ui/babushka_ui_tmp_inventory_select.png" id="4_tiss4"]
+[ext_resource type="Texture2D" uid="uid://u0dku75l17re" path="res://art/ui/UI/UI_bag_export_highlight_01.png" id="5_df8i8"]
[ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="6_n5apg"]
+[ext_resource type="Texture2D" uid="uid://bag1xalfh731d" path="res://art/ui/UI/UI_bag_export_highlight_02.png" id="6_u7kje"]
+[ext_resource type="Texture2D" uid="uid://cxptule8n38ph" path="res://art/ui/UI/UI_bag_export_highlight_03.png" id="7_l3npx"]
+[ext_resource type="Texture2D" uid="uid://qwia360i1ir1" path="res://art/ui/UI/inventory_active.png" id="8_df8i8"]
[node name="CanvasLayer" type="CanvasLayer"]
layer = 90
@@ -16,52 +18,36 @@ scale = Vector2(0.7, 0.7)
script = ExtResource("6_n5apg")
itemToToggle = NodePath("../Inventory")
-[node name="Inventory" type="Control" parent="."]
+[node name="Inventory" type="Control" parent="." node_paths=PackedStringArray("_slotsParent", "_slotsMover", "_headerSlots", "_slotSelect")]
layout_mode = 3
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
+anchors_preset = 8
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.7, 0.7)
+size_flags_vertical = 8
script = ExtResource("1_6wusm")
-metadata/_edit_use_anchors_ = true
+_slotsParent = NodePath("SlotsContainer/SlotsMover/Slots")
+_slotsMover = NodePath("SlotsContainer/SlotsMover")
+_headerSlots = [NodePath("SlotsContainer/SlotsMover/Slots/Slot"), NodePath("SlotsContainer/SlotsMover/Slots/Slot2"), NodePath("SlotsContainer/SlotsMover/Slots/Slot3"), NodePath("SlotsContainer/SlotsMover/Slots/Slot4"), NodePath("SlotsContainer/SlotsMover/Slots/Slot5"), NodePath("SlotsContainer/SlotsMover/Slots/Slot6"), NodePath("SlotsContainer/SlotsMover/Slots/Slot7"), NodePath("SlotsContainer/SlotsMover/Slots/Slot8"), NodePath("SlotsContainer/SlotsMover/Slots/Slot9")]
+_slotSelect = NodePath("SlotsContainer/SlotsMover/SlotSelectContainer/Selector")
[node name="SlotsContainer" type="Control" parent="Inventory"]
custom_minimum_size = Vector2(500, 0)
layout_mode = 1
-anchors_preset = 13
+anchors_preset = 8
anchor_left = 0.5
+anchor_top = 0.5
anchor_right = 0.5
-anchor_bottom = 1.0
+anchor_bottom = 0.5
+offset_left = -250.0
+offset_right = 250.0
grow_horizontal = 2
grow_vertical = 2
-[node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer"]
-custom_minimum_size = Vector2(900, 100)
-layout_mode = 1
-anchors_preset = 7
-anchor_left = 0.5
-anchor_top = 1.0
-anchor_right = 0.5
-anchor_bottom = 1.0
-offset_left = -450.0
-offset_top = -115.0
-offset_right = 450.0
-offset_bottom = -15.0
-grow_horizontal = 2
-grow_vertical = 0
-
-[node name="Selector" type="TextureRect" parent="Inventory/SlotsContainer/SlotSelectContainer"]
-z_index = 10
-custom_minimum_size = Vector2(100, 100)
-layout_mode = 0
-offset_left = 1.0
-offset_right = 101.0
-offset_bottom = 100.0
-texture = ExtResource("4_tiss4")
-expand_mode = 1
-
[node name="SlotsMover" type="Control" parent="Inventory/SlotsContainer"]
custom_minimum_size = Vector2(900, 610)
layout_mode = 1
@@ -75,6 +61,7 @@ offset_right = 200.0
offset_bottom = -1.0
grow_horizontal = 2
grow_vertical = 0
+mouse_filter = 2
[node name="BackgroundContainer" type="Control" parent="Inventory/SlotsContainer/SlotsMover"]
layout_mode = 1
@@ -90,8 +77,9 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
-offset_left = -305.0
-offset_right = 303.0
+offset_left = 435.0
+offset_right = 339.0
+offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
@@ -103,6 +91,9 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
+offset_left = -356.0
+offset_right = -452.0
+offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
@@ -115,11 +106,53 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
+offset_left = -142.429
+offset_top = 1.85717
+offset_right = -808.428
+offset_bottom = -774.143
grow_horizontal = 2
grow_vertical = 2
+scale = Vector2(1.7, 1.7)
mouse_filter = 2
-texture = ExtResource("4_df8i8")
-expand_mode = 3
+texture = ExtResource("5_df8i8")
+expand_mode = 1
+stretch_mode = 3
+flip_h = true
+
+[node name="TextureRect4" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/BackgroundContainer"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = 303.286
+offset_top = 209.0
+offset_right = -362.714
+offset_bottom = -567.0
+grow_horizontal = 2
+grow_vertical = 2
+scale = Vector2(1.7, 1.7)
+mouse_filter = 2
+texture = ExtResource("6_u7kje")
+expand_mode = 1
+stretch_mode = 3
+flip_h = true
+
+[node name="TextureRect5" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/BackgroundContainer"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = 474.714
+offset_top = 754.714
+offset_right = -191.286
+offset_bottom = -21.2858
+grow_horizontal = 2
+grow_vertical = 2
+scale = Vector2(1.7, 1.7)
+mouse_filter = 2
+texture = ExtResource("7_l3npx")
+expand_mode = 1
+stretch_mode = 3
flip_h = true
[node name="Slots" type="Control" parent="Inventory/SlotsContainer/SlotsMover"]
@@ -128,53 +161,75 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
-offset_top = 496.0
-offset_bottom = 496.0
+offset_left = -48.5714
+offset_top = 501.0
+offset_right = -48.5714
+offset_bottom = 501.0
grow_horizontal = 2
grow_vertical = 2
[node name="Slot" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
+offset_left = 2.85714
+offset_top = -54.2857
+offset_right = 102.857
+offset_bottom = 45.7143
[node name="Slot2" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 100.0
-offset_right = 200.0
+offset_left = 102.857
+offset_top = -54.2857
+offset_right = 202.857
+offset_bottom = 45.7143
[node name="Slot3" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 201.0
-offset_right = 301.0
+offset_left = 203.857
+offset_top = -54.2857
+offset_right = 303.857
+offset_bottom = 45.7143
[node name="Slot4" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 301.0
-offset_right = 401.0
+offset_left = 303.857
+offset_top = -54.2857
+offset_right = 403.857
+offset_bottom = 45.7143
[node name="Slot5" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 401.0
-offset_right = 501.0
+offset_left = 403.857
+offset_top = -54.2857
+offset_right = 503.857
+offset_bottom = 45.7143
[node name="Slot6" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 501.0
-offset_right = 601.0
+offset_left = 503.857
+offset_top = -54.2857
+offset_right = 603.857
+offset_bottom = 45.7143
[node name="Slot7" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 601.0
-offset_right = 701.0
+offset_left = 603.857
+offset_top = -54.2857
+offset_right = 703.857
+offset_bottom = 45.7143
[node name="Slot8" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 702.0
-offset_right = 802.0
+offset_left = 704.857
+offset_top = -54.2857
+offset_right = 804.857
+offset_bottom = 45.7143
[node name="Slot9" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
-offset_left = 802.0
-offset_right = 902.0
+offset_left = 804.857
+offset_top = -54.2857
+offset_right = 904.857
+offset_bottom = 45.7143
[node name="Slot10" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
@@ -371,3 +426,27 @@ offset_left = 703.0
offset_top = 512.0
offset_right = 803.0
offset_bottom = 612.0
+
+[node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer/SlotsMover"]
+custom_minimum_size = Vector2(900, 100)
+layout_mode = 1
+anchors_preset = 7
+anchor_left = 0.5
+anchor_top = 1.0
+anchor_right = 0.5
+anchor_bottom = 1.0
+offset_left = -497.0
+offset_top = -164.0
+offset_right = 403.0
+offset_bottom = -64.0
+grow_horizontal = 2
+grow_vertical = 0
+
+[node name="Selector" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/SlotSelectContainer"]
+z_index = 10
+custom_minimum_size = Vector2(100, 100)
+layout_mode = 0
+offset_right = 100.0
+offset_bottom = 100.0
+texture = ExtResource("8_df8i8")
+expand_mode = 1
diff --git a/prefabs/characters/Player2D.tscn b/prefabs/characters/Player2D.tscn
index 072d0dd..d321b3e 100644
--- a/prefabs/characters/Player2D.tscn
+++ b/prefabs/characters/Player2D.tscn
@@ -1,114 +1,64 @@
-[gd_scene load_steps=822 format=3 uid="uid://c25udixd5m6l0"]
+[gd_scene load_steps=476 format=3 uid="uid://c25udixd5m6l0"]
[ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"]
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/Player2D.cs" id="2_1vqmv"]
[ext_resource type="Texture2D" uid="uid://7jrac5ii3ah3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0001.png" id="3_tb2wl"]
[ext_resource type="Texture2D" uid="uid://c06b551t2qlo6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0002.png" id="4_dy5kt"]
-[ext_resource type="Texture2D" uid="uid://d0dqhq2cbwyus" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0003.png" id="5_ooryh"]
[ext_resource type="Texture2D" uid="uid://bj2ssu0ixr0p1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0004.png" id="6_3sina"]
-[ext_resource type="Texture2D" uid="uid://baho1jt70dj6u" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0005.png" id="7_bjd5b"]
[ext_resource type="Texture2D" uid="uid://c4kq6oyxchwae" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0006.png" id="8_f7dmn"]
-[ext_resource type="Texture2D" uid="uid://b5by425y8hgtx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0007.png" id="9_51g6i"]
[ext_resource type="Texture2D" uid="uid://yw8ood8ve3wj" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0008.png" id="10_fftrp"]
-[ext_resource type="Texture2D" uid="uid://cw3q23y6dx0sw" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0009.png" id="11_ct2ci"]
[ext_resource type="Texture2D" uid="uid://c7kddep6y8ncb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0010.png" id="12_3b8my"]
-[ext_resource type="Texture2D" uid="uid://dtw2oldmvbjmm" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0011.png" id="13_uyop1"]
[ext_resource type="Texture2D" uid="uid://djto85rs7jva6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0012.png" id="14_dbxha"]
-[ext_resource type="Texture2D" uid="uid://x58jwci33ciq" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0013.png" id="15_myc1w"]
[ext_resource type="Texture2D" uid="uid://b1fgjvh5rq5ma" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0014.png" id="16_g5k82"]
-[ext_resource type="Texture2D" uid="uid://toccb6la5idk" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0015.png" id="17_g8eyg"]
[ext_resource type="Texture2D" uid="uid://bo72c20b1qlfe" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0016.png" id="18_uluck"]
-[ext_resource type="Texture2D" uid="uid://ejvukeofnhyb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0017.png" id="19_jm67u"]
[ext_resource type="Texture2D" uid="uid://bwdm43a3v8tve" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0018.png" id="20_7auft"]
-[ext_resource type="Texture2D" uid="uid://cout06kqdrkyo" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0019.png" id="21_idwqi"]
[ext_resource type="Texture2D" uid="uid://cblm40bllo6yo" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0020.png" id="22_wfdgo"]
[ext_resource type="Texture2D" uid="uid://ddseayrsfgsx3" path="res://art/animation/vesna/Back/B01-Idle/0001.png" id="23_lbuvx"]
[ext_resource type="Texture2D" uid="uid://dcudwf7uydow4" path="res://art/animation/vesna/Back/B01-Idle/0002.png" id="24_tb8a3"]
-[ext_resource type="Texture2D" uid="uid://j1g1utrqshni" path="res://art/animation/vesna/Back/B01-Idle/0003.png" id="25_3algh"]
[ext_resource type="Texture2D" uid="uid://wfwv4ov0braf" path="res://art/animation/vesna/Back/B01-Idle/0004.png" id="26_hvbdn"]
-[ext_resource type="Texture2D" uid="uid://dp3u7hdc1rkig" path="res://art/animation/vesna/Back/B01-Idle/0005.png" id="27_bkxju"]
[ext_resource type="Texture2D" uid="uid://coovp0d0od40p" path="res://art/animation/vesna/Back/B01-Idle/0006.png" id="28_7klc7"]
-[ext_resource type="Texture2D" uid="uid://bck4wvhsmoxb5" path="res://art/animation/vesna/Back/B01-Idle/0007.png" id="29_g8yjr"]
[ext_resource type="Texture2D" uid="uid://duwqidqblvvj8" path="res://art/animation/vesna/Back/B01-Idle/0008.png" id="30_4sjqa"]
-[ext_resource type="Texture2D" uid="uid://xy0eqmcxx5y3" path="res://art/animation/vesna/Back/B01-Idle/0009.png" id="31_j5gdy"]
[ext_resource type="Texture2D" uid="uid://bsff7wlu0fiya" path="res://art/animation/vesna/Back/B01-Idle/0010.png" id="32_srg3p"]
-[ext_resource type="Texture2D" uid="uid://cmf8amo3ig3eo" path="res://art/animation/vesna/Back/B01-Idle/0011.png" id="33_s0f6c"]
[ext_resource type="Texture2D" uid="uid://ofesaa3vsotc" path="res://art/animation/vesna/Back/B01-Idle/0012.png" id="34_cnsul"]
-[ext_resource type="Texture2D" uid="uid://duiv3m53i1oie" path="res://art/animation/vesna/Back/B01-Idle/0013.png" id="35_30y07"]
[ext_resource type="Texture2D" uid="uid://cw8febmpuuihg" path="res://art/animation/vesna/Back/B01-Idle/0014.png" id="36_n7dk1"]
-[ext_resource type="Texture2D" uid="uid://bn6qhqerncfvw" path="res://art/animation/vesna/Back/B01-Idle/0015.png" id="37_aw564"]
[ext_resource type="Texture2D" uid="uid://clr4662lpf12y" path="res://art/animation/vesna/Back/B01-Idle/0016.png" id="38_y5m8n"]
-[ext_resource type="Texture2D" uid="uid://hnpveciwch8i" path="res://art/animation/vesna/Back/B01-Idle/0017.png" id="39_4rb1e"]
[ext_resource type="Texture2D" uid="uid://bdqk2nr4i5sy" path="res://art/animation/vesna/Back/B01-Idle/0018.png" id="40_lkrss"]
-[ext_resource type="Texture2D" uid="uid://lvknst2wyk8k" path="res://art/animation/vesna/Back/B01-Idle/0019.png" id="41_5yc38"]
[ext_resource type="Texture2D" uid="uid://ctaiqt8gbpvuu" path="res://art/animation/vesna/Back/B01-Idle/0020.png" id="42_oq7bk"]
-[ext_resource type="Texture2D" uid="uid://8ffedddjju0o" path="res://art/animation/vesna/Back/B01-Idle/0021.png" id="43_06tv4"]
[ext_resource type="Texture2D" uid="uid://co6v8dsf1pscm" path="res://art/animation/vesna/Back/B01-Idle/0022.png" id="44_oi8d4"]
-[ext_resource type="Texture2D" uid="uid://blnqecpxtpjsi" path="res://art/animation/vesna/Back/B01-Idle/0023.png" id="45_qmmd3"]
[ext_resource type="Texture2D" uid="uid://wnqyetonkdf3" path="res://art/animation/vesna/Back/B01-Idle/0024.png" id="46_g8hfs"]
-[ext_resource type="Texture2D" uid="uid://cixw17dp5n1jq" path="res://art/animation/vesna/Back/B01-Idle/0025.png" id="47_b1kaj"]
[ext_resource type="Texture2D" uid="uid://b41e1bfnb8pql" path="res://art/animation/vesna/Back/B01-Idle/0026.png" id="48_trb4q"]
-[ext_resource type="Texture2D" uid="uid://cawmf2oxe3awf" path="res://art/animation/vesna/Back/B01-Idle/0027.png" id="49_ln0lw"]
[ext_resource type="Texture2D" uid="uid://wwrctt8v8sm3" path="res://art/animation/vesna/Back/B01-Idle/0028.png" id="50_m3e1x"]
-[ext_resource type="Texture2D" uid="uid://c20wkbu520dxt" path="res://art/animation/vesna/Back/B01-Idle/0029.png" id="51_dnl6u"]
[ext_resource type="Texture2D" uid="uid://b06f0web7033e" path="res://art/animation/vesna/Back/B01-Idle/0030.png" id="52_kgncu"]
-[ext_resource type="Texture2D" uid="uid://bl421n5emu21n" path="res://art/animation/vesna/Back/B01-Idle/0031.png" id="53_r7rcw"]
[ext_resource type="Texture2D" uid="uid://dptn0ewhksogi" path="res://art/animation/vesna/Back/B01-Idle/0032.png" id="54_hvusu"]
-[ext_resource type="Texture2D" uid="uid://db65yywxdynqj" path="res://art/animation/vesna/Back/B01-Idle/0033.png" id="55_s7u3f"]
[ext_resource type="Texture2D" uid="uid://djb3ppgoui6h6" path="res://art/animation/vesna/Back/B01-Idle/0034.png" id="56_33shn"]
-[ext_resource type="Texture2D" uid="uid://c5pmcdopfactx" path="res://art/animation/vesna/Back/B01-Idle/0035.png" id="57_vtw6e"]
[ext_resource type="Texture2D" uid="uid://cx68afqq4io3k" path="res://art/animation/vesna/Back/B01-Idle/0036.png" id="58_tm4g7"]
-[ext_resource type="Texture2D" uid="uid://cqnq6exjs5xpb" path="res://art/animation/vesna/Back/B01-Idle/0037.png" id="59_nwsu2"]
[ext_resource type="Texture2D" uid="uid://cngptl8ojv0kn" path="res://art/animation/vesna/Back/B01-Idle/0038.png" id="60_5iaia"]
-[ext_resource type="Texture2D" uid="uid://cbdaffwt6jiy3" path="res://art/animation/vesna/Back/B01-Idle/0039.png" id="61_jtnjo"]
[ext_resource type="Texture2D" uid="uid://cbsg5d8nddxcp" path="res://art/animation/vesna/Back/B01-Idle/0040.png" id="62_gqhbm"]
-[ext_resource type="Texture2D" uid="uid://cqkm3m5vtt2ec" path="res://art/animation/vesna/Back/B01-Idle/0041.png" id="63_ywdkx"]
[ext_resource type="Texture2D" uid="uid://cepjhr0v86e21" path="res://art/animation/vesna/Back/B01-Idle/0042.png" id="64_tpynu"]
-[ext_resource type="Texture2D" uid="uid://drndvrpyx3aqm" path="res://art/animation/vesna/Back/B01-Idle/0043.png" id="65_i4fg5"]
[ext_resource type="Texture2D" uid="uid://brokoyln03mb7" path="res://art/animation/vesna/Back/B01-Idle/0044.png" id="66_73ci5"]
-[ext_resource type="Texture2D" uid="uid://dpp2w67j4lp6h" path="res://art/animation/vesna/Back/B01-Idle/0045.png" id="67_plvxc"]
[ext_resource type="Texture2D" uid="uid://dhiwmld14vguu" path="res://art/animation/vesna/Back/B01-Idle/0046.png" id="68_6xgay"]
-[ext_resource type="Texture2D" uid="uid://d1utxoyolyq5j" path="res://art/animation/vesna/Back/B01-Idle/0047.png" id="69_g5ryt"]
[ext_resource type="Texture2D" uid="uid://7dxbumnnq36g" path="res://art/animation/vesna/Back/B01-Idle/0048.png" id="70_uh3u2"]
[ext_resource type="Texture2D" uid="uid://dsshwwrdqpvnw" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0001.png" id="71_dsfaw"]
[ext_resource type="Texture2D" uid="uid://dtg2xbb2sypbs" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0002.png" id="72_krjt8"]
-[ext_resource type="Texture2D" uid="uid://ugfsmioyhj2v" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0003.png" id="73_fc507"]
[ext_resource type="Texture2D" uid="uid://cf2ldiut2wlgn" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0004.png" id="74_8o5vf"]
-[ext_resource type="Texture2D" uid="uid://dchukvc5ahkp3" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0005.png" id="75_5g28e"]
[ext_resource type="Texture2D" uid="uid://dwvjsbigpsl7l" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0006.png" id="76_5m4eb"]
-[ext_resource type="Texture2D" uid="uid://os58b3fc2uw" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0007.png" id="77_0e45w"]
[ext_resource type="Texture2D" uid="uid://d0rxcyh3d4r26" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0008.png" id="78_ea0ih"]
-[ext_resource type="Texture2D" uid="uid://c24s7c1rctnjw" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0009.png" id="79_8guwf"]
[ext_resource type="Texture2D" uid="uid://dl4gibopy05xb" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0010.png" id="80_nthv1"]
-[ext_resource type="Texture2D" uid="uid://pnpbaskie7ln" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0011.png" id="81_ll850"]
[ext_resource type="Texture2D" uid="uid://cg2n44j88t4fu" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0012.png" id="82_srvcl"]
-[ext_resource type="Texture2D" uid="uid://5qtmnjkj314b" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0013.png" id="83_8b7sp"]
[ext_resource type="Texture2D" uid="uid://6hxwloli4g07" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0014.png" id="84_gbgxl"]
-[ext_resource type="Texture2D" uid="uid://bd8smhc7jf3rm" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0015.png" id="85_gso82"]
[ext_resource type="Texture2D" uid="uid://coop7751xrik6" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0016.png" id="86_vdw06"]
-[ext_resource type="Texture2D" uid="uid://b17kxk4j0elwb" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0017.png" id="87_hqqwf"]
[ext_resource type="Texture2D" uid="uid://djrpb2i8s73uv" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0018.png" id="88_rplna"]
-[ext_resource type="Texture2D" uid="uid://de34d81lpgn2s" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0019.png" id="89_c4fmc"]
[ext_resource type="Texture2D" uid="uid://c8n72xqn40iy2" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0020.png" id="90_ktgpd"]
[ext_resource type="Texture2D" uid="uid://drrro4jyywnoo" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0001.png" id="91_t3bcs"]
[ext_resource type="Texture2D" uid="uid://fncpo7yklhdb" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0002.png" id="92_r247x"]
-[ext_resource type="Texture2D" uid="uid://cecxpvtb8jys1" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0003.png" id="93_ubpl1"]
[ext_resource type="Texture2D" uid="uid://cxb2nw03fxv5c" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0004.png" id="94_gakvy"]
-[ext_resource type="Texture2D" uid="uid://cdbgx22301kjs" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0005.png" id="95_pse5n"]
[ext_resource type="Texture2D" uid="uid://bmyg88l0kl0ou" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0006.png" id="96_in860"]
-[ext_resource type="Texture2D" uid="uid://c2delmldrigif" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0007.png" id="97_gsmph"]
[ext_resource type="Texture2D" uid="uid://ioe3mqsmkkj6" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0008.png" id="98_qfbag"]
-[ext_resource type="Texture2D" uid="uid://cdl5p1gguf74c" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0009.png" id="99_uc1kl"]
[ext_resource type="Texture2D" uid="uid://ddwsvepfged62" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0010.png" id="100_24v4s"]
-[ext_resource type="Texture2D" uid="uid://14jwd808d7q" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0011.png" id="101_5jfin"]
[ext_resource type="Texture2D" uid="uid://btw1kx5q35hx6" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0012.png" id="102_0swag"]
-[ext_resource type="Texture2D" uid="uid://b10h0aorp1xv0" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0013.png" id="103_kan7k"]
[ext_resource type="Texture2D" uid="uid://vbg7ecm6hfpw" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0014.png" id="104_elbbc"]
-[ext_resource type="Texture2D" uid="uid://b4pqj2r8eg8bf" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0015.png" id="105_e08lw"]
[ext_resource type="Texture2D" uid="uid://clm05egjmvy1y" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0016.png" id="106_q2no2"]
-[ext_resource type="Texture2D" uid="uid://dmydgctyhanwv" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0017.png" id="107_7u8lk"]
[ext_resource type="Texture2D" uid="uid://cqonl6n8rurh3" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0018.png" id="108_m0omi"]
-[ext_resource type="Texture2D" uid="uid://cdc4m8vgfd8y8" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0019.png" id="109_glh2j"]
[ext_resource type="Texture2D" uid="uid://c806q0yf13ykp" path="res://art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0020.png" id="110_lcssq"]
[ext_resource type="Texture2D" uid="uid://bgr18gr5llndj" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B03-Interact/0001.png" id="111_yv8b4"]
[ext_resource type="Texture2D" uid="uid://c6numa054fpiy" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B03-Interact/0002.png" id="112_43gwt"]
@@ -122,111 +72,61 @@
[ext_resource type="Texture2D" uid="uid://dcadeimwb2eoy" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B03-Interact/0010.png" id="120_3a5yw"]
[ext_resource type="Texture2D" uid="uid://cqoi6k3hjfgpl" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0001.png" id="121_2chl3"]
[ext_resource type="Texture2D" uid="uid://uy84anap6qed" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0002.png" id="122_cxvrh"]
-[ext_resource type="Texture2D" uid="uid://c3hqrf3514o1i" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0003.png" id="123_54tjs"]
[ext_resource type="Texture2D" uid="uid://ok3ug04l7u2a" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0004.png" id="124_mn60e"]
-[ext_resource type="Texture2D" uid="uid://bj2g3txdc8kff" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0005.png" id="125_4uvde"]
[ext_resource type="Texture2D" uid="uid://05yfumefb31t" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0006.png" id="126_hgnnd"]
-[ext_resource type="Texture2D" uid="uid://dequojwesw4id" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0007.png" id="127_7uog1"]
[ext_resource type="Texture2D" uid="uid://ckw4cnhpj5tey" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0008.png" id="128_jtga8"]
-[ext_resource type="Texture2D" uid="uid://bbj87e52o5ix0" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0009.png" id="129_lxme3"]
[ext_resource type="Texture2D" uid="uid://dxdlihqw1jxdr" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0010.png" id="130_ygmj0"]
-[ext_resource type="Texture2D" uid="uid://ckwnp7fekds1o" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0011.png" id="131_hcgb3"]
[ext_resource type="Texture2D" uid="uid://bpq83qt8a3261" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0012.png" id="132_uinys"]
-[ext_resource type="Texture2D" uid="uid://b3nwi6jdmmbcq" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0013.png" id="133_q5j2s"]
[ext_resource type="Texture2D" uid="uid://vb2avhob7kjp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0014.png" id="134_bu26w"]
-[ext_resource type="Texture2D" uid="uid://byyx7simr7qr2" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0015.png" id="135_13e2b"]
[ext_resource type="Texture2D" uid="uid://h3t6vmncseim" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0016.png" id="136_vnx5q"]
-[ext_resource type="Texture2D" uid="uid://ds5vy2e2n4d7s" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0017.png" id="137_21peu"]
[ext_resource type="Texture2D" uid="uid://cvtkhaewrdhrj" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0018.png" id="138_4hhqw"]
-[ext_resource type="Texture2D" uid="uid://bgypvf11ntxwp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0019.png" id="139_trklr"]
[ext_resource type="Texture2D" uid="uid://r2sdov8x5kfa" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B02-Walk/0020.png" id="140_ikvge"]
[ext_resource type="Texture2D" uid="uid://ckivuklh4qhya" path="res://art/animation/vesna/Back/B02-Walk/0001.png" id="141_lr5oy"]
[ext_resource type="Texture2D" uid="uid://c4fkayumeccfo" path="res://art/animation/vesna/Back/B02-Walk/0002.png" id="142_1kv2c"]
-[ext_resource type="Texture2D" uid="uid://buijs4bnx7maf" path="res://art/animation/vesna/Back/B02-Walk/0003.png" id="143_v0vcu"]
[ext_resource type="Texture2D" uid="uid://bsm7ut41ip7ig" path="res://art/animation/vesna/Back/B02-Walk/0004.png" id="144_lcakx"]
-[ext_resource type="Texture2D" uid="uid://3nm7c4wswb7e" path="res://art/animation/vesna/Back/B02-Walk/0005.png" id="145_2yoii"]
[ext_resource type="Texture2D" uid="uid://6gh02sauxaex" path="res://art/animation/vesna/Back/B02-Walk/0006.png" id="146_jcr6r"]
-[ext_resource type="Texture2D" uid="uid://dbgntiu78j5ec" path="res://art/animation/vesna/Back/B02-Walk/0007.png" id="147_vwfko"]
[ext_resource type="Texture2D" uid="uid://cx8apsg1051hp" path="res://art/animation/vesna/Back/B02-Walk/0008.png" id="148_060nq"]
-[ext_resource type="Texture2D" uid="uid://b6eugr0f2c2jr" path="res://art/animation/vesna/Back/B02-Walk/0009.png" id="149_smj2x"]
[ext_resource type="Texture2D" uid="uid://b3jqiwe1n0chv" path="res://art/animation/vesna/Back/B02-Walk/0010.png" id="150_8u7ah"]
-[ext_resource type="Texture2D" uid="uid://bj23ksgu8qqi1" path="res://art/animation/vesna/Back/B02-Walk/0011.png" id="151_0dx2o"]
[ext_resource type="Texture2D" uid="uid://6r2073ug0nr1" path="res://art/animation/vesna/Back/B02-Walk/0012.png" id="152_yw3l0"]
-[ext_resource type="Texture2D" uid="uid://dw2ylkuw5qmti" path="res://art/animation/vesna/Back/B02-Walk/0013.png" id="153_nd5dk"]
[ext_resource type="Texture2D" uid="uid://iip4ctkxqknp" path="res://art/animation/vesna/Back/B02-Walk/0014.png" id="154_6qloc"]
-[ext_resource type="Texture2D" uid="uid://v2kkhbalmuvn" path="res://art/animation/vesna/Back/B02-Walk/0015.png" id="155_13eiv"]
[ext_resource type="Texture2D" uid="uid://cpc8jkevjt01r" path="res://art/animation/vesna/Back/B02-Walk/0016.png" id="156_kglr5"]
-[ext_resource type="Texture2D" uid="uid://dxdc70e22jvwg" path="res://art/animation/vesna/Back/B02-Walk/0017.png" id="157_hgbgw"]
[ext_resource type="Texture2D" uid="uid://b2h2xmpknxjm3" path="res://art/animation/vesna/Back/B02-Walk/0018.png" id="158_s71l2"]
-[ext_resource type="Texture2D" uid="uid://d0ftu6fd8tx2k" path="res://art/animation/vesna/Back/B02-Walk/0019.png" id="159_7lm3j"]
[ext_resource type="Texture2D" uid="uid://banv0fn0hvqbu" path="res://art/animation/vesna/Back/B02-Walk/0020.png" id="160_sjrvp"]
-[ext_resource type="Texture2D" uid="uid://g3er846hkqyk" path="res://art/animation/vesna/Back/B02-Walk/0021.png" id="161_t363w"]
[ext_resource type="Texture2D" uid="uid://46ecx6326vr2" path="res://art/animation/vesna/Back/B02-Walk/0022.png" id="162_dvpnv"]
-[ext_resource type="Texture2D" uid="uid://dyojtdxaamtbc" path="res://art/animation/vesna/Back/B02-Walk/0023.png" id="163_wftmg"]
[ext_resource type="Texture2D" uid="uid://c8ecgh85euufm" path="res://art/animation/vesna/Back/B02-Walk/0024.png" id="164_6fxu6"]
-[ext_resource type="Texture2D" uid="uid://bp8jy26xcqoyw" path="res://art/animation/vesna/Back/B02-Walk/0025.png" id="165_hkal4"]
[ext_resource type="Texture2D" uid="uid://cqbrf2fey4mi5" path="res://art/animation/vesna/Back/B02-Walk/0026.png" id="166_nqquh"]
-[ext_resource type="Texture2D" uid="uid://b72dho73ag7hv" path="res://art/animation/vesna/Back/B02-Walk/0027.png" id="167_ekhdj"]
[ext_resource type="Texture2D" uid="uid://bwv8ar3ql621w" path="res://art/animation/vesna/Back/B02-Walk/0028.png" id="168_wl1fv"]
-[ext_resource type="Texture2D" uid="uid://ds41s42vx5b3w" path="res://art/animation/vesna/Back/B02-Walk/0029.png" id="169_ii55e"]
[ext_resource type="Texture2D" uid="uid://co7gkc6v1307b" path="res://art/animation/vesna/Back/B02-Walk/0030.png" id="170_dvtvo"]
-[ext_resource type="Texture2D" uid="uid://cuq55acr20luj" path="res://art/animation/vesna/Back/B02-Walk/0031.png" id="171_7c80y"]
[ext_resource type="Texture2D" uid="uid://c6625qc5my8aa" path="res://art/animation/vesna/Back/B02-Walk/0032.png" id="172_o6pqr"]
-[ext_resource type="Texture2D" uid="uid://c877yq644kodi" path="res://art/animation/vesna/Back/B02-Walk/0033.png" id="173_c5yps"]
[ext_resource type="Texture2D" uid="uid://7jul8qgkmppd" path="res://art/animation/vesna/Back/B02-Walk/0034.png" id="174_kihv4"]
-[ext_resource type="Texture2D" uid="uid://emj0166lqj3" path="res://art/animation/vesna/Back/B02-Walk/0035.png" id="175_5khq4"]
[ext_resource type="Texture2D" uid="uid://ig7flnq26khd" path="res://art/animation/vesna/Back/B02-Walk/0036.png" id="176_7eupn"]
-[ext_resource type="Texture2D" uid="uid://cdvh56eke46o3" path="res://art/animation/vesna/Back/B02-Walk/0037.png" id="177_vfawh"]
[ext_resource type="Texture2D" uid="uid://c67abbv4nkawu" path="res://art/animation/vesna/Back/B02-Walk/0038.png" id="178_f6f2d"]
-[ext_resource type="Texture2D" uid="uid://ca2vqn3k30dm7" path="res://art/animation/vesna/Back/B02-Walk/0039.png" id="179_qph5u"]
[ext_resource type="Texture2D" uid="uid://bhv5jn16h6krw" path="res://art/animation/vesna/Back/B02-Walk/0040.png" id="180_lu7eo"]
-[ext_resource type="Texture2D" uid="uid://51lciutu87ao" path="res://art/animation/vesna/Back/B02-Walk/0041.png" id="181_vh87k"]
[ext_resource type="Texture2D" uid="uid://bc37fsnli01wy" path="res://art/animation/vesna/Back/B02-Walk/0042.png" id="182_pn5mg"]
-[ext_resource type="Texture2D" uid="uid://j4mb1261cx0s" path="res://art/animation/vesna/Back/B02-Walk/0043.png" id="183_klu6v"]
[ext_resource type="Texture2D" uid="uid://cj4aaeif3xnpw" path="res://art/animation/vesna/Back/B02-Walk/0044.png" id="184_ys15e"]
-[ext_resource type="Texture2D" uid="uid://djeqa5o26lcvj" path="res://art/animation/vesna/Back/B02-Walk/0045.png" id="185_afhyr"]
[ext_resource type="Texture2D" uid="uid://c0nhh610veynv" path="res://art/animation/vesna/Back/B02-Walk/0046.png" id="186_qtrjy"]
-[ext_resource type="Texture2D" uid="uid://b206kb5kggejq" path="res://art/animation/vesna/Back/B02-Walk/0047.png" id="187_i253v"]
[ext_resource type="Texture2D" uid="uid://ci7uer5wecm2a" path="res://art/animation/vesna/Back/B02-Walk/0048.png" id="188_bpice"]
[ext_resource type="Texture2D" uid="uid://b5scjrsad12q4" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0001.png" id="189_bul27"]
[ext_resource type="Texture2D" uid="uid://dpbaemg351012" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0002.png" id="190_q1o7y"]
-[ext_resource type="Texture2D" uid="uid://c8mrf7wom7pj2" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0003.png" id="191_dgrcv"]
[ext_resource type="Texture2D" uid="uid://cqe05m8wknlw6" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0004.png" id="192_cagdb"]
-[ext_resource type="Texture2D" uid="uid://4hj34rue5qyh" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0005.png" id="193_7uqc6"]
[ext_resource type="Texture2D" uid="uid://dtqoat75ccsee" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0006.png" id="194_j84th"]
-[ext_resource type="Texture2D" uid="uid://bmmjgjvn5t3xf" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0007.png" id="195_biaa4"]
[ext_resource type="Texture2D" uid="uid://dw0gys4bejifq" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0008.png" id="196_byym0"]
-[ext_resource type="Texture2D" uid="uid://c8wbt200eua3q" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0009.png" id="197_ruvn3"]
[ext_resource type="Texture2D" uid="uid://cmr75bx66i0jp" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0010.png" id="198_mqj3d"]
-[ext_resource type="Texture2D" uid="uid://cgsm61yijjyup" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0011.png" id="199_6sg07"]
[ext_resource type="Texture2D" uid="uid://kdw433c3kjqd" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0012.png" id="200_nquvr"]
-[ext_resource type="Texture2D" uid="uid://bp3xwy0lica8f" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0013.png" id="201_orc6w"]
[ext_resource type="Texture2D" uid="uid://c0l1bq5vjhjuq" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0014.png" id="202_jyw6b"]
-[ext_resource type="Texture2D" uid="uid://c21rrvn4dv0w5" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0015.png" id="203_1tdqy"]
[ext_resource type="Texture2D" uid="uid://dtq7t5jcut4ww" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0016.png" id="204_xpi67"]
-[ext_resource type="Texture2D" uid="uid://c51w0fq7rku7p" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0017.png" id="205_2stfx"]
[ext_resource type="Texture2D" uid="uid://dt5spwnq4al8h" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0018.png" id="206_bsgc5"]
-[ext_resource type="Texture2D" uid="uid://c0r1qlh3elsgc" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0019.png" id="207_rfav7"]
[ext_resource type="Texture2D" uid="uid://dri0svis0h7n4" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0020.png" id="208_ct716"]
[ext_resource type="Texture2D" uid="uid://boothx5m2ewlp" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0001.png" id="209_7hol8"]
[ext_resource type="Texture2D" uid="uid://c75i3h547yt5r" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0002.png" id="210_vkget"]
-[ext_resource type="Texture2D" uid="uid://owi8l2844mcc" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0003.png" id="211_4ejo6"]
[ext_resource type="Texture2D" uid="uid://bediov8jrwtlo" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0004.png" id="212_qwtqh"]
-[ext_resource type="Texture2D" uid="uid://ul688u4krnbq" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0005.png" id="213_tom53"]
[ext_resource type="Texture2D" uid="uid://kbqedk57aau3" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0006.png" id="214_posuh"]
-[ext_resource type="Texture2D" uid="uid://ca7ru866o28tc" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0007.png" id="215_8rehj"]
[ext_resource type="Texture2D" uid="uid://go8unh7legof" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0008.png" id="216_6ctoe"]
-[ext_resource type="Texture2D" uid="uid://dvootr0r1d8if" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0009.png" id="217_mya32"]
[ext_resource type="Texture2D" uid="uid://b655ye830ggrh" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0010.png" id="218_qmjxl"]
-[ext_resource type="Texture2D" uid="uid://24c0e0o4qqsr" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0011.png" id="219_arja3"]
[ext_resource type="Texture2D" uid="uid://dn61c7ccourfj" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0012.png" id="220_yiria"]
-[ext_resource type="Texture2D" uid="uid://dw8rvc2k8d04d" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0013.png" id="221_v6rrd"]
[ext_resource type="Texture2D" uid="uid://dbqo63ivpe70" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0014.png" id="222_vna73"]
-[ext_resource type="Texture2D" uid="uid://mvhdc05i0le2" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0015.png" id="223_ovybi"]
[ext_resource type="Texture2D" uid="uid://c3eovowba3o75" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0016.png" id="224_mogb5"]
-[ext_resource type="Texture2D" uid="uid://wseia0klwgxu" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0017.png" id="225_ewhm7"]
[ext_resource type="Texture2D" uid="uid://bjexugf0yoy7t" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0018.png" id="226_swf68"]
-[ext_resource type="Texture2D" uid="uid://bns16shnp8e1x" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0019.png" id="227_tvjrw"]
[ext_resource type="Texture2D" uid="uid://b8i7ivioar4s4" path="res://art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0020.png" id="228_0vxgv"]
[ext_resource type="Texture2D" uid="uid://crnef86drjaph" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D03-Farming/0001.png" id="229_pmnwl"]
[ext_resource type="Texture2D" uid="uid://cx6v3d0p2jd8m" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D03-Farming/0002.png" id="230_5bf5a"]
@@ -250,447 +150,251 @@
[ext_resource type="Texture2D" uid="uid://bg8vhxi6a6mf" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D06-Harvesting/0010.png" id="248_amllb"]
[ext_resource type="Texture2D" uid="uid://b65eekouoodxb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0001.png" id="249_jdmex"]
[ext_resource type="Texture2D" uid="uid://5ympv77kkafi" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0002.png" id="250_oen1t"]
-[ext_resource type="Texture2D" uid="uid://bgx4sua0605a2" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0003.png" id="251_0jqke"]
[ext_resource type="Texture2D" uid="uid://oyqr5qd00wl3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0004.png" id="252_r0pcu"]
-[ext_resource type="Texture2D" uid="uid://firp25dwbuag" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0005.png" id="253_vljsd"]
[ext_resource type="Texture2D" uid="uid://blu3oxng1fvfu" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0006.png" id="254_psw4s"]
-[ext_resource type="Texture2D" uid="uid://dvx04bqdtns0k" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0007.png" id="255_7s0f6"]
[ext_resource type="Texture2D" uid="uid://yv3647j12j1r" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0008.png" id="256_sp4ui"]
-[ext_resource type="Texture2D" uid="uid://ca30lideqdq7y" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0009.png" id="257_afi7i"]
[ext_resource type="Texture2D" uid="uid://8hsle05jsbj" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0010.png" id="258_lb23i"]
-[ext_resource type="Texture2D" uid="uid://0pjhs1gx58px" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0011.png" id="259_0bigc"]
[ext_resource type="Texture2D" uid="uid://b7jnr68qpttxk" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0012.png" id="260_je6v5"]
-[ext_resource type="Texture2D" uid="uid://8ltfkn0hv0j5" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0013.png" id="261_4yvls"]
[ext_resource type="Texture2D" uid="uid://c15tbe3swmxwh" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0014.png" id="262_5b60r"]
-[ext_resource type="Texture2D" uid="uid://b43k3tmng2o05" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0015.png" id="263_w4uhd"]
[ext_resource type="Texture2D" uid="uid://d00k5a06ledgm" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0016.png" id="264_eip6u"]
-[ext_resource type="Texture2D" uid="uid://c5yyh6p4duvwh" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0017.png" id="265_enj1o"]
[ext_resource type="Texture2D" uid="uid://dycsloodg1t48" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0018.png" id="266_0udiy"]
-[ext_resource type="Texture2D" uid="uid://jnvc4igo1x62" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0019.png" id="267_d2pv8"]
[ext_resource type="Texture2D" uid="uid://c6rr71iu4oktn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D01-Idle/0020.png" id="268_6tcma"]
[ext_resource type="Texture2D" uid="uid://cmuc63m3tl87e" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0001.png" id="269_54g8u"]
[ext_resource type="Texture2D" uid="uid://ccoatscn40d2" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0002.png" id="270_70su0"]
-[ext_resource type="Texture2D" uid="uid://cc4ia2he41m20" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0003.png" id="271_eu3ff"]
[ext_resource type="Texture2D" uid="uid://jisrle5dkrjc" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0004.png" id="272_pxgu8"]
-[ext_resource type="Texture2D" uid="uid://c02wlcvmd18xn" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0005.png" id="273_m2pd7"]
[ext_resource type="Texture2D" uid="uid://bd2m1nu27lda3" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0006.png" id="274_b2pqd"]
-[ext_resource type="Texture2D" uid="uid://db80xvfcik3k6" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0007.png" id="275_hnmss"]
[ext_resource type="Texture2D" uid="uid://duxtedwuusua2" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0008.png" id="276_qpuf0"]
-[ext_resource type="Texture2D" uid="uid://b0klh2f6th67p" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0009.png" id="277_l3idq"]
[ext_resource type="Texture2D" uid="uid://c2o2v33c1u3mq" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0010.png" id="278_4j61t"]
-[ext_resource type="Texture2D" uid="uid://b8dfwyiarjha3" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0011.png" id="279_0u33n"]
[ext_resource type="Texture2D" uid="uid://dweut6q766oef" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0012.png" id="280_5cfs0"]
-[ext_resource type="Texture2D" uid="uid://bey1tk7lgiodg" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0013.png" id="281_0fe6s"]
[ext_resource type="Texture2D" uid="uid://skk5o8bwvoh3" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0014.png" id="282_ooo1i"]
-[ext_resource type="Texture2D" uid="uid://el4qxvir0wh4" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0015.png" id="283_l44m2"]
[ext_resource type="Texture2D" uid="uid://btavwmodnvrxg" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0016.png" id="284_0qemg"]
-[ext_resource type="Texture2D" uid="uid://c6fklv6mnmj80" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0017.png" id="285_lgxh3"]
[ext_resource type="Texture2D" uid="uid://1qw2nk1agnf2" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0018.png" id="286_4plxa"]
-[ext_resource type="Texture2D" uid="uid://c6g8pejfpuaqs" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0019.png" id="287_ocb1q"]
[ext_resource type="Texture2D" uid="uid://c8b3gj1w7srgm" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0020.png" id="288_7n4ms"]
[ext_resource type="Texture2D" uid="uid://crxdyp65dfp2t" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0001.png" id="289_ugtu6"]
[ext_resource type="Texture2D" uid="uid://yryct86ynwgj" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0002.png" id="290_4svr2"]
-[ext_resource type="Texture2D" uid="uid://cuavdkcmmgdop" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0003.png" id="291_uq464"]
[ext_resource type="Texture2D" uid="uid://dmwofg5hm2xex" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0004.png" id="292_36rlr"]
-[ext_resource type="Texture2D" uid="uid://cknmktqvxr3fb" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0005.png" id="293_q1pcj"]
[ext_resource type="Texture2D" uid="uid://ctvi2x8ojo68n" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0006.png" id="294_245qu"]
-[ext_resource type="Texture2D" uid="uid://dl0sf60jnln2" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0007.png" id="295_6hjd7"]
[ext_resource type="Texture2D" uid="uid://cnxj38difdk04" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0008.png" id="296_6xx1k"]
-[ext_resource type="Texture2D" uid="uid://blv161r4el7hv" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0009.png" id="297_2ahco"]
[ext_resource type="Texture2D" uid="uid://27486660viuq" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0010.png" id="298_50dpy"]
-[ext_resource type="Texture2D" uid="uid://nm12rhi3x5lk" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0011.png" id="299_34fky"]
[ext_resource type="Texture2D" uid="uid://cwyhs5w2n2l24" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0012.png" id="300_iwb4e"]
-[ext_resource type="Texture2D" uid="uid://b35klan6wqasx" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0013.png" id="301_6nmxi"]
[ext_resource type="Texture2D" uid="uid://bu5k4ecgwt3lx" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0014.png" id="302_utrda"]
-[ext_resource type="Texture2D" uid="uid://dderxwqmnh4dg" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0015.png" id="303_w3qpx"]
[ext_resource type="Texture2D" uid="uid://gav711umfrv2" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0016.png" id="304_1vyc7"]
-[ext_resource type="Texture2D" uid="uid://de8h0tmylmlol" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0017.png" id="305_ljwfd"]
[ext_resource type="Texture2D" uid="uid://ctw7qgl5qvrvi" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0018.png" id="306_ckff6"]
-[ext_resource type="Texture2D" uid="uid://bdeobrft6d6gt" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0019.png" id="307_jw5ap"]
[ext_resource type="Texture2D" uid="uid://5owkgubxroks" path="res://art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0020.png" id="308_ve1ef"]
[ext_resource type="Texture2D" uid="uid://b103j03ancfyy" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0001.png" id="309_yht8o"]
[ext_resource type="Texture2D" uid="uid://oko6pwxrv3x2" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0002.png" id="310_uunj5"]
-[ext_resource type="Texture2D" uid="uid://2f4e2ijx2ua0" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0003.png" id="311_15hr6"]
[ext_resource type="Texture2D" uid="uid://b3deqqgbojq3w" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0004.png" id="312_ptmn2"]
-[ext_resource type="Texture2D" uid="uid://ch42v8bs3hi3s" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0005.png" id="313_c7v0a"]
[ext_resource type="Texture2D" uid="uid://gv61g18j1528" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0006.png" id="314_gqt4r"]
-[ext_resource type="Texture2D" uid="uid://g42b16asxhnc" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0007.png" id="315_l264e"]
[ext_resource type="Texture2D" uid="uid://cavhvbl32oqsa" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0008.png" id="316_es1q6"]
-[ext_resource type="Texture2D" uid="uid://ct02r4rt25uct" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0009.png" id="317_8oer6"]
[ext_resource type="Texture2D" uid="uid://7jtoyq301fy6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0010.png" id="318_pa783"]
-[ext_resource type="Texture2D" uid="uid://cci08dtmjpwid" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0011.png" id="319_o2c84"]
[ext_resource type="Texture2D" uid="uid://cym1jfqg0eyg5" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0012.png" id="320_xpcbu"]
-[ext_resource type="Texture2D" uid="uid://l6m7w6sfkipl" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0013.png" id="321_qjopn"]
[ext_resource type="Texture2D" uid="uid://dw7qgkawxdjlu" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0014.png" id="322_sjy8g"]
-[ext_resource type="Texture2D" uid="uid://q54ulgrvvrf4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0015.png" id="323_ngntu"]
[ext_resource type="Texture2D" uid="uid://ddie80jxvmy5f" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0016.png" id="324_qblpa"]
-[ext_resource type="Texture2D" uid="uid://cswewdawtxfth" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0017.png" id="325_k6al3"]
[ext_resource type="Texture2D" uid="uid://ba5funuelsn4u" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0018.png" id="326_hyut3"]
-[ext_resource type="Texture2D" uid="uid://brhb4fvqofqfw" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0019.png" id="327_0m744"]
[ext_resource type="Texture2D" uid="uid://bijy3gjn7pawx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D11-Item/0020.png" id="328_sch8a"]
[ext_resource type="Texture2D" uid="uid://0h6lc1gj8f03" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0001.png" id="329_6rfjn"]
[ext_resource type="Texture2D" uid="uid://dhpfdtrdhihtb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0002.png" id="330_hsw7b"]
-[ext_resource type="Texture2D" uid="uid://cc2sj260u1dfh" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0003.png" id="331_gcahn"]
[ext_resource type="Texture2D" uid="uid://dvoi3wovyxj2j" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0004.png" id="332_re6e1"]
-[ext_resource type="Texture2D" uid="uid://djwrpq3n46vms" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0005.png" id="333_spiee"]
[ext_resource type="Texture2D" uid="uid://cjtqhn8h635h1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0006.png" id="334_x3shw"]
-[ext_resource type="Texture2D" uid="uid://bhu703s6vac8i" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0007.png" id="335_qh3js"]
[ext_resource type="Texture2D" uid="uid://cevedhkrxlhom" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0008.png" id="336_mascw"]
-[ext_resource type="Texture2D" uid="uid://cgu22ny23cffa" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0009.png" id="337_lwe0m"]
[ext_resource type="Texture2D" uid="uid://cq5ut1vcxwoee" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0010.png" id="338_fdcf2"]
-[ext_resource type="Texture2D" uid="uid://bf564donmiifi" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0011.png" id="339_npar6"]
[ext_resource type="Texture2D" uid="uid://dej0qb7oiy7jc" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0012.png" id="340_67swc"]
-[ext_resource type="Texture2D" uid="uid://cns5j4t1d3j1r" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0013.png" id="341_xvb8t"]
[ext_resource type="Texture2D" uid="uid://bn0huce4t056a" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0014.png" id="342_u85oh"]
-[ext_resource type="Texture2D" uid="uid://b78try8gg5yds" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0015.png" id="343_ci6ne"]
[ext_resource type="Texture2D" uid="uid://4ximx63tqe0p" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0016.png" id="344_rfucn"]
-[ext_resource type="Texture2D" uid="uid://wkk4qua0862d" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0017.png" id="345_5l6yn"]
[ext_resource type="Texture2D" uid="uid://c82xel2dsyomt" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0018.png" id="346_a532r"]
-[ext_resource type="Texture2D" uid="uid://bp1yfawa2iejv" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0019.png" id="347_21i80"]
[ext_resource type="Texture2D" uid="uid://58a0dvy0n0in" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D05-Talk/0020.png" id="348_ay7cy"]
[ext_resource type="Texture2D" uid="uid://dlkqja0yx4im8" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0001.png" id="349_xexvc"]
[ext_resource type="Texture2D" uid="uid://b7t266mvqyfmf" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0002.png" id="350_0nscs"]
-[ext_resource type="Texture2D" uid="uid://b181quxvj4iix" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0003.png" id="351_084cq"]
[ext_resource type="Texture2D" uid="uid://c8unnufabwbwr" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0004.png" id="352_nq8ef"]
-[ext_resource type="Texture2D" uid="uid://c6u7gs36msh30" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0005.png" id="353_a3lgg"]
[ext_resource type="Texture2D" uid="uid://bn831n4ip3kq0" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0006.png" id="354_njctl"]
-[ext_resource type="Texture2D" uid="uid://db0uxeuxipft7" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0007.png" id="355_jsh87"]
[ext_resource type="Texture2D" uid="uid://bqdw674714yt7" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0008.png" id="356_h2ttx"]
-[ext_resource type="Texture2D" uid="uid://b7l5rrq66f8ic" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0009.png" id="357_s13a4"]
[ext_resource type="Texture2D" uid="uid://dj5v0iic4waoi" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0010.png" id="358_itni2"]
-[ext_resource type="Texture2D" uid="uid://dd3ohe6cfkba4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0011.png" id="359_lvae6"]
[ext_resource type="Texture2D" uid="uid://b3posc2llvlp1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0012.png" id="360_gpc8b"]
-[ext_resource type="Texture2D" uid="uid://b8fd6nb8end72" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0013.png" id="361_wcsqp"]
[ext_resource type="Texture2D" uid="uid://dkqt3c2jmgm8l" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0014.png" id="362_g3tnl"]
-[ext_resource type="Texture2D" uid="uid://c77nsu5f6ug0a" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0015.png" id="363_5pjs1"]
[ext_resource type="Texture2D" uid="uid://blm1ekgiv46je" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0016.png" id="364_ry8vj"]
-[ext_resource type="Texture2D" uid="uid://dewpigwcscskw" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0017.png" id="365_n4wdc"]
[ext_resource type="Texture2D" uid="uid://6r8c0gcm771g" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0018.png" id="366_ebc3m"]
-[ext_resource type="Texture2D" uid="uid://bp6ow32ru65s0" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0019.png" id="367_co6wt"]
[ext_resource type="Texture2D" uid="uid://hkyrwakpje76" path="res://art/animation/Vesna2D/Vesna Anims Sequences/D10-Watercan/0020.png" id="368_k3vs2"]
[ext_resource type="Texture2D" uid="uid://bhput7cf71gsn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0001.png" id="369_sy3jn"]
[ext_resource type="Texture2D" uid="uid://7me1qicg01wt" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0002.png" id="370_itiyy"]
-[ext_resource type="Texture2D" uid="uid://bdp5mtpcc0qih" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0003.png" id="371_5xcne"]
[ext_resource type="Texture2D" uid="uid://b30i6oddlsvxh" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0004.png" id="372_d1ikf"]
-[ext_resource type="Texture2D" uid="uid://c8ac6qniltlmf" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0005.png" id="373_jvfxt"]
[ext_resource type="Texture2D" uid="uid://b3s0ddml0xd38" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0006.png" id="374_gnhre"]
-[ext_resource type="Texture2D" uid="uid://cdvmyddggkrqn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0007.png" id="375_cfi8a"]
[ext_resource type="Texture2D" uid="uid://dv5l0yqmtac5h" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0008.png" id="376_x786h"]
-[ext_resource type="Texture2D" uid="uid://mufq0lfsxbt6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0009.png" id="377_d0qpy"]
[ext_resource type="Texture2D" uid="uid://c1us4s5uyj7v8" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0010.png" id="378_dddmw"]
-[ext_resource type="Texture2D" uid="uid://t6le4hx3s1yu" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0011.png" id="379_2hc63"]
[ext_resource type="Texture2D" uid="uid://dt4l0cijtyvfb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0012.png" id="380_feb73"]
-[ext_resource type="Texture2D" uid="uid://cn01d7ts3oden" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0013.png" id="381_kknvl"]
[ext_resource type="Texture2D" uid="uid://b4556vsbxq4jn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0014.png" id="382_xh53a"]
-[ext_resource type="Texture2D" uid="uid://cq2wcyw51gk71" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0015.png" id="383_4rhaa"]
[ext_resource type="Texture2D" uid="uid://v5d3v64klgjx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0016.png" id="384_w8ka8"]
-[ext_resource type="Texture2D" uid="uid://cacxxck8o6b0y" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0017.png" id="385_8e62m"]
[ext_resource type="Texture2D" uid="uid://c500av7jn4llt" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0018.png" id="386_53jhd"]
-[ext_resource type="Texture2D" uid="uid://bdyqlsvb1jc0r" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0019.png" id="387_0ai3x"]
[ext_resource type="Texture2D" uid="uid://csrke8b6kw7r5" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F01-Idle/0020.png" id="388_koymh"]
[ext_resource type="Texture2D" uid="uid://dygkh117flcou" path="res://art/animation/vesna/Front/F01-Idle/0001.png" id="389_scyk5"]
[ext_resource type="Texture2D" uid="uid://rwqptk0hk53" path="res://art/animation/vesna/Front/F01-Idle/0002.png" id="390_tk8qh"]
-[ext_resource type="Texture2D" uid="uid://c5om11bu7mtvh" path="res://art/animation/vesna/Front/F01-Idle/0003.png" id="391_t0kq4"]
[ext_resource type="Texture2D" uid="uid://dwma5btqs2uy3" path="res://art/animation/vesna/Front/F01-Idle/0004.png" id="392_y35a5"]
-[ext_resource type="Texture2D" uid="uid://dfyny0twpg14k" path="res://art/animation/vesna/Front/F01-Idle/0005.png" id="393_2cb1c"]
[ext_resource type="Texture2D" uid="uid://cqi3ncjs6paut" path="res://art/animation/vesna/Front/F01-Idle/0006.png" id="394_cok4e"]
-[ext_resource type="Texture2D" uid="uid://bajv3di18puw3" path="res://art/animation/vesna/Front/F01-Idle/0007.png" id="395_wnp4a"]
[ext_resource type="Texture2D" uid="uid://dpp6m2mkd0xua" path="res://art/animation/vesna/Front/F01-Idle/0008.png" id="396_yoylm"]
-[ext_resource type="Texture2D" uid="uid://eflkom1ar3ho" path="res://art/animation/vesna/Front/F01-Idle/0009.png" id="397_1asry"]
[ext_resource type="Texture2D" uid="uid://d33j2i3b2pkk4" path="res://art/animation/vesna/Front/F01-Idle/0010.png" id="398_jj5fl"]
-[ext_resource type="Texture2D" uid="uid://dhbhnu36g6281" path="res://art/animation/vesna/Front/F01-Idle/0011.png" id="399_5eewt"]
[ext_resource type="Texture2D" uid="uid://v4nwls33bkkl" path="res://art/animation/vesna/Front/F01-Idle/0012.png" id="400_yu75q"]
-[ext_resource type="Texture2D" uid="uid://cvggdji135cjs" path="res://art/animation/vesna/Front/F01-Idle/0013.png" id="401_bllxk"]
[ext_resource type="Texture2D" uid="uid://cmo4x5h28ikf7" path="res://art/animation/vesna/Front/F01-Idle/0014.png" id="402_q0e3h"]
-[ext_resource type="Texture2D" uid="uid://diedmh5rtxf3i" path="res://art/animation/vesna/Front/F01-Idle/0015.png" id="403_cx4n8"]
[ext_resource type="Texture2D" uid="uid://btcts8s3beik7" path="res://art/animation/vesna/Front/F01-Idle/0016.png" id="404_cvgn6"]
-[ext_resource type="Texture2D" uid="uid://dnd2p4pw63mxg" path="res://art/animation/vesna/Front/F01-Idle/0017.png" id="405_fb3rg"]
[ext_resource type="Texture2D" uid="uid://bctaos4woe16j" path="res://art/animation/vesna/Front/F01-Idle/0018.png" id="406_ahbdu"]
-[ext_resource type="Texture2D" uid="uid://b1oepweesd8rv" path="res://art/animation/vesna/Front/F01-Idle/0019.png" id="407_xpdqt"]
[ext_resource type="Texture2D" uid="uid://df2uy52nowiv7" path="res://art/animation/vesna/Front/F01-Idle/0020.png" id="408_d82fx"]
-[ext_resource type="Texture2D" uid="uid://csqjb65s0evy5" path="res://art/animation/vesna/Front/F01-Idle/0021.png" id="409_wus31"]
[ext_resource type="Texture2D" uid="uid://byga4mwbr61xu" path="res://art/animation/vesna/Front/F01-Idle/0022.png" id="410_s7wqi"]
-[ext_resource type="Texture2D" uid="uid://gyib1bem1fdf" path="res://art/animation/vesna/Front/F01-Idle/0023.png" id="411_yefb7"]
[ext_resource type="Texture2D" uid="uid://b33ge37wsb48d" path="res://art/animation/vesna/Front/F01-Idle/0024.png" id="412_1mefy"]
-[ext_resource type="Texture2D" uid="uid://chtdvgljm261p" path="res://art/animation/vesna/Front/F01-Idle/0025.png" id="413_opxon"]
[ext_resource type="Texture2D" uid="uid://gtemoxthr3dn" path="res://art/animation/vesna/Front/F01-Idle/0026.png" id="414_phpds"]
-[ext_resource type="Texture2D" uid="uid://0a6exv7jrguj" path="res://art/animation/vesna/Front/F01-Idle/0027.png" id="415_egnqi"]
[ext_resource type="Texture2D" uid="uid://0nfaqqu61h2v" path="res://art/animation/vesna/Front/F01-Idle/0028.png" id="416_oup86"]
-[ext_resource type="Texture2D" uid="uid://bcj1yrf2jcg5s" path="res://art/animation/vesna/Front/F01-Idle/0029.png" id="417_454oj"]
[ext_resource type="Texture2D" uid="uid://csiffnh05dj4m" path="res://art/animation/vesna/Front/F01-Idle/0030.png" id="418_dfvyj"]
-[ext_resource type="Texture2D" uid="uid://duveatgt4lsxu" path="res://art/animation/vesna/Front/F01-Idle/0031.png" id="419_7jpwm"]
[ext_resource type="Texture2D" uid="uid://2a6v2ljqasoh" path="res://art/animation/vesna/Front/F01-Idle/0032.png" id="420_reknm"]
-[ext_resource type="Texture2D" uid="uid://bbjntge7tj0tw" path="res://art/animation/vesna/Front/F01-Idle/0033.png" id="421_m5538"]
[ext_resource type="Texture2D" uid="uid://bnm65uhbly3f6" path="res://art/animation/vesna/Front/F01-Idle/0034.png" id="422_5iyfg"]
-[ext_resource type="Texture2D" uid="uid://g5beiwsshrxv" path="res://art/animation/vesna/Front/F01-Idle/0035.png" id="423_76mcj"]
[ext_resource type="Texture2D" uid="uid://rkf2r5dhsbqa" path="res://art/animation/vesna/Front/F01-Idle/0036.png" id="424_42jwc"]
-[ext_resource type="Texture2D" uid="uid://ckkk6iru88sit" path="res://art/animation/vesna/Front/F01-Idle/0037.png" id="425_47xdr"]
[ext_resource type="Texture2D" uid="uid://der772wlrlt2r" path="res://art/animation/vesna/Front/F01-Idle/0038.png" id="426_j7yl5"]
-[ext_resource type="Texture2D" uid="uid://dawuluwe7qjj7" path="res://art/animation/vesna/Front/F01-Idle/0039.png" id="427_7utu1"]
[ext_resource type="Texture2D" uid="uid://bbmtx0k1bv7wf" path="res://art/animation/vesna/Front/F01-Idle/0040.png" id="428_itvbl"]
-[ext_resource type="Texture2D" uid="uid://dhwfeuehtiwys" path="res://art/animation/vesna/Front/F01-Idle/0041.png" id="429_1q8fq"]
[ext_resource type="Texture2D" uid="uid://dqcr8wtxrfqay" path="res://art/animation/vesna/Front/F01-Idle/0042.png" id="430_5qcny"]
-[ext_resource type="Texture2D" uid="uid://bv6a3q75jd2m3" path="res://art/animation/vesna/Front/F01-Idle/0043.png" id="431_1fkuv"]
[ext_resource type="Texture2D" uid="uid://7qhvkauqxyba" path="res://art/animation/vesna/Front/F01-Idle/0044.png" id="432_7gq0s"]
-[ext_resource type="Texture2D" uid="uid://cijmyjgpfc1ld" path="res://art/animation/vesna/Front/F01-Idle/0045.png" id="433_u2g1t"]
[ext_resource type="Texture2D" uid="uid://cwlkmcu8odht0" path="res://art/animation/vesna/Front/F01-Idle/0046.png" id="434_j611n"]
-[ext_resource type="Texture2D" uid="uid://kec6w70xrc4v" path="res://art/animation/vesna/Front/F01-Idle/0047.png" id="435_1iael"]
[ext_resource type="Texture2D" uid="uid://bkpdyw3cmgmrb" path="res://art/animation/vesna/Front/F01-Idle/0048.png" id="436_armfy"]
[ext_resource type="Texture2D" uid="uid://bn1lc1r75fr5r" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0001.png" id="437_buk8h"]
[ext_resource type="Texture2D" uid="uid://di7pbg8h1bcum" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0002.png" id="438_cqepc"]
-[ext_resource type="Texture2D" uid="uid://bxmbql0qwc0ky" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0003.png" id="439_djotj"]
[ext_resource type="Texture2D" uid="uid://dvdvene2ee6jb" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0004.png" id="440_pej03"]
-[ext_resource type="Texture2D" uid="uid://2a1srfqr37x6" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0005.png" id="441_8qhd5"]
[ext_resource type="Texture2D" uid="uid://c7eqi8dkbj0qy" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0006.png" id="442_r5lkt"]
-[ext_resource type="Texture2D" uid="uid://d20eaf6iga1q4" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0007.png" id="443_3lece"]
[ext_resource type="Texture2D" uid="uid://fmsejppsimsq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0008.png" id="444_ny2p1"]
-[ext_resource type="Texture2D" uid="uid://375dlakijr1c" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0009.png" id="445_k0f2x"]
[ext_resource type="Texture2D" uid="uid://4hqvdwqukg8g" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0010.png" id="446_vtwy4"]
-[ext_resource type="Texture2D" uid="uid://djitxb8qcxqcw" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0011.png" id="447_7kv3k"]
[ext_resource type="Texture2D" uid="uid://d2xgu7ug2o5fk" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0012.png" id="448_4hgl1"]
-[ext_resource type="Texture2D" uid="uid://cl515xu61jw42" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0013.png" id="449_jpjbe"]
[ext_resource type="Texture2D" uid="uid://bet1mnj33rfqt" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0014.png" id="450_0q8vj"]
[ext_resource type="Texture2D" uid="uid://bwhmf7ymok016" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0015.png" id="451_5k1rr"]
[ext_resource type="Texture2D" uid="uid://plw18ir73yvj" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0016.png" id="452_fdymn"]
-[ext_resource type="Texture2D" uid="uid://cupa4gnlef368" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0017.png" id="453_t08dx"]
[ext_resource type="Texture2D" uid="uid://blt5oytpcntl2" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0018.png" id="454_mdjx6"]
-[ext_resource type="Texture2D" uid="uid://dxymheost3jg8" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0019.png" id="455_7okl3"]
[ext_resource type="Texture2D" uid="uid://cxkb05c3kxdhb" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0020.png" id="456_ruc3g"]
[ext_resource type="Texture2D" uid="uid://d1v1kkphh3w53" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0001.png" id="457_tsu1x"]
[ext_resource type="Texture2D" uid="uid://cicp47ibjt526" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0002.png" id="458_3ddjs"]
-[ext_resource type="Texture2D" uid="uid://6qgllokjeng7" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0003.png" id="459_x6it6"]
[ext_resource type="Texture2D" uid="uid://cw68t2kbcvlen" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0004.png" id="460_6b7gh"]
-[ext_resource type="Texture2D" uid="uid://bqliyyxtxhbvs" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0005.png" id="461_cvvib"]
[ext_resource type="Texture2D" uid="uid://dh3cfbcqm0fs4" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0006.png" id="462_6yyoj"]
-[ext_resource type="Texture2D" uid="uid://b223y313sflni" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0007.png" id="463_pkshe"]
[ext_resource type="Texture2D" uid="uid://vahac0df0dhj" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0008.png" id="464_pbc3r"]
-[ext_resource type="Texture2D" uid="uid://bo51i2jkxhyqg" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0009.png" id="465_lr12j"]
[ext_resource type="Texture2D" uid="uid://b37lpqrsjjuc0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png" id="466_pw1ip"]
-[ext_resource type="Texture2D" uid="uid://c6brq58x3g4bt" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0011.png" id="467_no4vd"]
+[ext_resource type="Script" uid="uid://er03dkj8axlr" path="res://scripts/CSharp/Common/UI/WateringCanUi.cs" id="467_j4m0f"]
[ext_resource type="Texture2D" uid="uid://oi11ax6tml6j" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png" id="468_08021"]
-[ext_resource type="Texture2D" uid="uid://oyyjcos1u8u3" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0013.png" id="469_ory5o"]
+[ext_resource type="Texture2D" uid="uid://l0k3vh3kdprp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-1.png" id="468_f6xmn"]
+[ext_resource type="Texture2D" uid="uid://t4w7axbof7bq" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-2.png" id="469_nxglm"]
+[ext_resource type="Texture2D" uid="uid://di2npqkvvst6x" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-3.png" id="470_8fyd7"]
[ext_resource type="Texture2D" uid="uid://dsjj23763pej5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png" id="470_bmmei"]
-[ext_resource type="Texture2D" uid="uid://bhgdbt3poomff" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0015.png" id="471_fi56f"]
+[ext_resource type="Texture2D" uid="uid://clti3basli30" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-4.png" id="471_dnm27"]
+[ext_resource type="Texture2D" uid="uid://n1v4hgd467wp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-5.png" id="472_e04c3"]
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
-[ext_resource type="Texture2D" uid="uid://qr3xju3t1obd" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0017.png" id="473_0rglf"]
+[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="473_g32y8"]
[ext_resource type="Texture2D" uid="uid://3t1m2xi4ks75" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png" id="474_tu801"]
-[ext_resource type="Texture2D" uid="uid://cybr8susqmgp6" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0019.png" id="475_ivtia"]
[ext_resource type="Texture2D" uid="uid://drtgi1qyq7fji" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0020.png" id="476_g4jjd"]
[ext_resource type="Texture2D" uid="uid://d3rdsclnqbx7" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0001.png" id="477_qko58"]
[ext_resource type="Texture2D" uid="uid://dqubvx1a08kn4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0002.png" id="478_5myrm"]
-[ext_resource type="Texture2D" uid="uid://cpbpacc7cdsoi" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0003.png" id="479_t7bl3"]
[ext_resource type="Texture2D" uid="uid://dystt4hyqad74" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0004.png" id="480_wnay3"]
-[ext_resource type="Texture2D" uid="uid://b0aiqq6w30kvn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0005.png" id="481_1q611"]
[ext_resource type="Texture2D" uid="uid://bopxv06co1osl" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0006.png" id="482_wfdif"]
-[ext_resource type="Texture2D" uid="uid://db03d5ni2hfld" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0007.png" id="483_x4ny3"]
[ext_resource type="Texture2D" uid="uid://coyggdfwgkeru" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0008.png" id="484_32thn"]
-[ext_resource type="Texture2D" uid="uid://devhwksnljxh8" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0009.png" id="485_2xd7q"]
[ext_resource type="Texture2D" uid="uid://du6x1h42smp6m" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0010.png" id="486_kobao"]
-[ext_resource type="Texture2D" uid="uid://dueluilccsse6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0011.png" id="487_aqei0"]
[ext_resource type="Texture2D" uid="uid://bras5gn8ov27l" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0012.png" id="488_ygjj5"]
-[ext_resource type="Texture2D" uid="uid://bfrj113onig3k" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0013.png" id="489_ebusu"]
[ext_resource type="Texture2D" uid="uid://rjmsht4g8dvp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0014.png" id="490_6603x"]
-[ext_resource type="Texture2D" uid="uid://lr1avqq12yao" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0015.png" id="491_1b1vm"]
[ext_resource type="Texture2D" uid="uid://diqnv8ut7lffx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0016.png" id="492_0tmn6"]
-[ext_resource type="Texture2D" uid="uid://b3voy62ape62n" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0017.png" id="493_laqyq"]
[ext_resource type="Texture2D" uid="uid://r4hv24417xpp" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0018.png" id="494_6j13p"]
-[ext_resource type="Texture2D" uid="uid://g4u3om1u77c6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0019.png" id="495_45oh6"]
[ext_resource type="Texture2D" uid="uid://b2mspl1vrjqbm" path="res://art/animation/Vesna2D/Vesna Anims Sequences/F02-Walk/0020.png" id="496_svyx0"]
[ext_resource type="Texture2D" uid="uid://b4hhktk00bbqc" path="res://art/animation/vesna/Front/F02-Walk/0001.png" id="497_n4dnj"]
[ext_resource type="Texture2D" uid="uid://d7wxdukk7xid" path="res://art/animation/vesna/Front/F02-Walk/0002.png" id="498_yjt3v"]
-[ext_resource type="Texture2D" uid="uid://ca7x57cqvffcb" path="res://art/animation/vesna/Front/F02-Walk/0003.png" id="499_rpb3x"]
[ext_resource type="Texture2D" uid="uid://d0v70fu37f0fh" path="res://art/animation/vesna/Front/F02-Walk/0004.png" id="500_vsiwk"]
-[ext_resource type="Texture2D" uid="uid://1ioispbfo753" path="res://art/animation/vesna/Front/F02-Walk/0005.png" id="501_0xl7o"]
[ext_resource type="Texture2D" uid="uid://110cauhmveo8" path="res://art/animation/vesna/Front/F02-Walk/0006.png" id="502_vkc8f"]
-[ext_resource type="Texture2D" uid="uid://x8f8ryjq8wvt" path="res://art/animation/vesna/Front/F02-Walk/0007.png" id="503_q88c4"]
[ext_resource type="Texture2D" uid="uid://kvt4ev4rsrg6" path="res://art/animation/vesna/Front/F02-Walk/0008.png" id="504_i8wsp"]
-[ext_resource type="Texture2D" uid="uid://c7nj18fn1sva8" path="res://art/animation/vesna/Front/F02-Walk/0009.png" id="505_jswdb"]
[ext_resource type="Texture2D" uid="uid://cvn23xxxxvlxk" path="res://art/animation/vesna/Front/F02-Walk/0010.png" id="506_3gngl"]
-[ext_resource type="Texture2D" uid="uid://bkm8ly5p7f8vj" path="res://art/animation/vesna/Front/F02-Walk/0011.png" id="507_4jn6c"]
[ext_resource type="Texture2D" uid="uid://dxhemjn1tr0kc" path="res://art/animation/vesna/Front/F02-Walk/0012.png" id="508_33ok2"]
-[ext_resource type="Texture2D" uid="uid://c8ydwasn62av0" path="res://art/animation/vesna/Front/F02-Walk/0013.png" id="509_cdril"]
[ext_resource type="Texture2D" uid="uid://botrs5iedo1eb" path="res://art/animation/vesna/Front/F02-Walk/0014.png" id="510_iik0a"]
-[ext_resource type="Texture2D" uid="uid://duote4c2u2ebh" path="res://art/animation/vesna/Front/F02-Walk/0015.png" id="511_m7t7h"]
[ext_resource type="Texture2D" uid="uid://d1k85w7o1ruqj" path="res://art/animation/vesna/Front/F02-Walk/0016.png" id="512_ognpj"]
-[ext_resource type="Texture2D" uid="uid://c0sg7wtpfg4o3" path="res://art/animation/vesna/Front/F02-Walk/0017.png" id="513_b17kc"]
[ext_resource type="Texture2D" uid="uid://8q0x0epa03s3" path="res://art/animation/vesna/Front/F02-Walk/0018.png" id="514_1uw6m"]
-[ext_resource type="Texture2D" uid="uid://drs6rt5pbu8kf" path="res://art/animation/vesna/Front/F02-Walk/0019.png" id="515_3n8w1"]
[ext_resource type="Texture2D" uid="uid://bvx2b584yayfx" path="res://art/animation/vesna/Front/F02-Walk/0020.png" id="516_b3h5k"]
-[ext_resource type="Texture2D" uid="uid://cvkx40u5kmwce" path="res://art/animation/vesna/Front/F02-Walk/0021.png" id="517_s5w14"]
[ext_resource type="Texture2D" uid="uid://cu7ygp8ubtsk" path="res://art/animation/vesna/Front/F02-Walk/0022.png" id="518_jgj7y"]
-[ext_resource type="Texture2D" uid="uid://dtbq7ablcqid4" path="res://art/animation/vesna/Front/F02-Walk/0023.png" id="519_0ww3y"]
[ext_resource type="Texture2D" uid="uid://btcs5yd0x3u3e" path="res://art/animation/vesna/Front/F02-Walk/0024.png" id="520_g7ywp"]
-[ext_resource type="Texture2D" uid="uid://vuuy4gn00g2g" path="res://art/animation/vesna/Front/F02-Walk/0025.png" id="521_176d2"]
[ext_resource type="Texture2D" uid="uid://cq41bmnctsmgv" path="res://art/animation/vesna/Front/F02-Walk/0026.png" id="522_iutes"]
-[ext_resource type="Texture2D" uid="uid://b5e6rj54673i0" path="res://art/animation/vesna/Front/F02-Walk/0027.png" id="523_mv43l"]
[ext_resource type="Texture2D" uid="uid://bmwbom8yqlusu" path="res://art/animation/vesna/Front/F02-Walk/0028.png" id="524_kqwdc"]
-[ext_resource type="Texture2D" uid="uid://20llxig7ur6" path="res://art/animation/vesna/Front/F02-Walk/0029.png" id="525_pjbfp"]
[ext_resource type="Texture2D" uid="uid://c00arg43pq8lb" path="res://art/animation/vesna/Front/F02-Walk/0030.png" id="526_s12im"]
-[ext_resource type="Texture2D" uid="uid://ccrpnu21ikipw" path="res://art/animation/vesna/Front/F02-Walk/0031.png" id="527_m3twh"]
[ext_resource type="Texture2D" uid="uid://csj3qojq53a3" path="res://art/animation/vesna/Front/F02-Walk/0032.png" id="528_l6jhg"]
-[ext_resource type="Texture2D" uid="uid://chdwu52fc7ogj" path="res://art/animation/vesna/Front/F02-Walk/0033.png" id="529_wfhlo"]
[ext_resource type="Texture2D" uid="uid://c0kcyujhyql2x" path="res://art/animation/vesna/Front/F02-Walk/0034.png" id="530_qjcs6"]
-[ext_resource type="Texture2D" uid="uid://b6b13s0idl4id" path="res://art/animation/vesna/Front/F02-Walk/0035.png" id="531_hawsb"]
[ext_resource type="Texture2D" uid="uid://ccodf2thfn5co" path="res://art/animation/vesna/Front/F02-Walk/0036.png" id="532_2ko7a"]
-[ext_resource type="Texture2D" uid="uid://dahwtbgkjei0y" path="res://art/animation/vesna/Front/F02-Walk/0037.png" id="533_rcmwo"]
[ext_resource type="Texture2D" uid="uid://cyxisoyf10wyj" path="res://art/animation/vesna/Front/F02-Walk/0038.png" id="534_tn6m1"]
-[ext_resource type="Texture2D" uid="uid://h1ac48iuvyjb" path="res://art/animation/vesna/Front/F02-Walk/0039.png" id="535_ktdxm"]
[ext_resource type="Texture2D" uid="uid://bauhrxofvjh1h" path="res://art/animation/vesna/Front/F02-Walk/0040.png" id="536_k760p"]
-[ext_resource type="Texture2D" uid="uid://b4tjl0id46mst" path="res://art/animation/vesna/Front/F02-Walk/0041.png" id="537_ghb0e"]
[ext_resource type="Texture2D" uid="uid://diy78nj3m8baa" path="res://art/animation/vesna/Front/F02-Walk/0042.png" id="538_ffkgb"]
-[ext_resource type="Texture2D" uid="uid://bt4djbvv0qhyd" path="res://art/animation/vesna/Front/F02-Walk/0043.png" id="539_qkrg3"]
[ext_resource type="Texture2D" uid="uid://cs5goc51slttq" path="res://art/animation/vesna/Front/F02-Walk/0044.png" id="540_00apb"]
-[ext_resource type="Texture2D" uid="uid://b2xlq03lubcw7" path="res://art/animation/vesna/Front/F02-Walk/0045.png" id="541_ebo8g"]
[ext_resource type="Texture2D" uid="uid://b66rx3t7qf5n1" path="res://art/animation/vesna/Front/F02-Walk/0046.png" id="542_562cu"]
-[ext_resource type="Texture2D" uid="uid://b2qutc2vjvsup" path="res://art/animation/vesna/Front/F02-Walk/0047.png" id="543_ah3ul"]
[ext_resource type="Texture2D" uid="uid://dt65s8qcmh08j" path="res://art/animation/vesna/Front/F02-Walk/0048.png" id="544_203a3"]
[ext_resource type="Texture2D" uid="uid://dihktwgykpaux" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0001.png" id="545_2k5bd"]
[ext_resource type="Texture2D" uid="uid://gg5807j8g780" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0002.png" id="546_i84pd"]
-[ext_resource type="Texture2D" uid="uid://bldn11wgjaqle" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0003.png" id="547_r28y4"]
[ext_resource type="Texture2D" uid="uid://gqr146yrc4jo" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0004.png" id="548_v4uwm"]
-[ext_resource type="Texture2D" uid="uid://ciymfjoqfqsbu" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0005.png" id="549_wlukx"]
[ext_resource type="Texture2D" uid="uid://dbpgdxlkb7lf0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0006.png" id="550_y5333"]
-[ext_resource type="Texture2D" uid="uid://dgfp8arrvvqhr" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0007.png" id="551_rjbr8"]
[ext_resource type="Texture2D" uid="uid://brjo51e4stp7t" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0008.png" id="552_sbj83"]
-[ext_resource type="Texture2D" uid="uid://2y6yvku8dva8" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0009.png" id="553_a8tcf"]
[ext_resource type="Texture2D" uid="uid://bsmgh2vmmsvb4" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0010.png" id="554_7pxht"]
-[ext_resource type="Texture2D" uid="uid://c6xhst5y1cpmk" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0011.png" id="555_ern7x"]
[ext_resource type="Texture2D" uid="uid://doe3vcfgrsav8" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0012.png" id="556_67q52"]
-[ext_resource type="Texture2D" uid="uid://bupckmoekk347" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0013.png" id="557_mynrt"]
[ext_resource type="Texture2D" uid="uid://8dfj1nq2sfog" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0014.png" id="558_q5tla"]
-[ext_resource type="Texture2D" uid="uid://bd18jpwlhf5ke" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0015.png" id="559_y5a67"]
[ext_resource type="Texture2D" uid="uid://djkkrs31wjj55" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0016.png" id="560_h0jaa"]
-[ext_resource type="Texture2D" uid="uid://lyi0kv61ublk" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0017.png" id="561_7dos6"]
[ext_resource type="Texture2D" uid="uid://ksimo2r5w2qb" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0018.png" id="562_0v72r"]
-[ext_resource type="Texture2D" uid="uid://ctuhwa5hboaoa" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0019.png" id="563_1el36"]
[ext_resource type="Texture2D" uid="uid://hrdutg4w7w42" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0020.png" id="564_8r86j"]
[ext_resource type="Texture2D" uid="uid://b7qnpnmr760qk" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0001.png" id="565_lrt82"]
[ext_resource type="Texture2D" uid="uid://daou4rbcpedbe" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0002.png" id="566_ei2yw"]
-[ext_resource type="Texture2D" uid="uid://b7vxusqjli60y" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0003.png" id="567_xlxen"]
[ext_resource type="Texture2D" uid="uid://d3vipx5kcun8" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0004.png" id="568_0475c"]
-[ext_resource type="Texture2D" uid="uid://dam0wpsipt4oy" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0005.png" id="569_a6rtw"]
[ext_resource type="Texture2D" uid="uid://cjaqbq8rqjw25" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0006.png" id="570_vwcij"]
-[ext_resource type="Texture2D" uid="uid://c1tsougejh8fn" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0007.png" id="571_p5500"]
[ext_resource type="Texture2D" uid="uid://c0tsxnclpg60f" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0008.png" id="572_2r4hx"]
-[ext_resource type="Texture2D" uid="uid://b2vnrhhxpn61c" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0009.png" id="573_26tt0"]
[ext_resource type="Texture2D" uid="uid://bqlukfu2wd3yf" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0010.png" id="574_my0kq"]
-[ext_resource type="Texture2D" uid="uid://d135j3jvkkrxi" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0011.png" id="575_rxqlw"]
[ext_resource type="Texture2D" uid="uid://vcoontx40fk5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0012.png" id="576_pi3ln"]
-[ext_resource type="Texture2D" uid="uid://6yox4k4te47a" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0013.png" id="577_gxxpd"]
[ext_resource type="Texture2D" uid="uid://cg1rfbwvt61gf" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0014.png" id="578_x5qma"]
-[ext_resource type="Texture2D" uid="uid://dl7urlgfacp5l" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0015.png" id="579_1c3al"]
[ext_resource type="Texture2D" uid="uid://cq4gwvai4siyq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0016.png" id="580_7f7yj"]
-[ext_resource type="Texture2D" uid="uid://hg5cadudhvks" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0017.png" id="581_ehwxa"]
[ext_resource type="Texture2D" uid="uid://bu2ctlhxy5paw" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0018.png" id="582_4h62b"]
-[ext_resource type="Texture2D" uid="uid://vog7t8snaw2d" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0019.png" id="583_1hmje"]
[ext_resource type="Texture2D" uid="uid://6sqfbej2sr2b" path="res://art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0020.png" id="584_vv7re"]
[ext_resource type="Texture2D" uid="uid://om2axn1vfa5o" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0001.png" id="585_0hjp1"]
[ext_resource type="Texture2D" uid="uid://2kan4a2kgd67" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0002.png" id="586_pmq4n"]
-[ext_resource type="Texture2D" uid="uid://bpiyjt6l15dsb" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0003.png" id="587_g53rd"]
[ext_resource type="Texture2D" uid="uid://drt72cgdujyyw" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0004.png" id="588_afimt"]
-[ext_resource type="Texture2D" uid="uid://dwt0fvah6d8tx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0005.png" id="589_1qnwy"]
[ext_resource type="Texture2D" uid="uid://bprel8ljvtbxm" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0006.png" id="590_cf7hp"]
-[ext_resource type="Texture2D" uid="uid://yubqf1n3e6lq" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0007.png" id="591_5bi84"]
[ext_resource type="Texture2D" uid="uid://c77shxrvhlxk6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0008.png" id="592_73i6g"]
-[ext_resource type="Texture2D" uid="uid://b33tsq8bb4aof" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0009.png" id="593_7u500"]
[ext_resource type="Texture2D" uid="uid://lq7ib25udrhc" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0010.png" id="594_ex0sg"]
-[ext_resource type="Texture2D" uid="uid://d1cbj7vg0dkmc" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0011.png" id="595_cokyk"]
[ext_resource type="Texture2D" uid="uid://bfhpoouf4p42x" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0012.png" id="596_gwcp1"]
-[ext_resource type="Texture2D" uid="uid://b4cqjun55my0f" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0013.png" id="597_h1qcq"]
[ext_resource type="Texture2D" uid="uid://bcvlpnqvbt1v4" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0014.png" id="598_6vr1t"]
-[ext_resource type="Texture2D" uid="uid://car2a6ng8dkox" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0015.png" id="599_j3t5q"]
[ext_resource type="Texture2D" uid="uid://k8bwpkyhdisd" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0016.png" id="600_0mubi"]
-[ext_resource type="Texture2D" uid="uid://pgbaa5s2623r" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0017.png" id="601_3px4h"]
[ext_resource type="Texture2D" uid="uid://fai21q76ntk8" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0018.png" id="602_rf6e2"]
-[ext_resource type="Texture2D" uid="uid://b5iaf6xgoxs4h" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0019.png" id="603_vrgxu"]
[ext_resource type="Texture2D" uid="uid://dkcgax7qivrgd" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S01-Idle/0020.png" id="604_v3yvu"]
[ext_resource type="Texture2D" uid="uid://f7htcxiwvuup" path="res://art/animation/vesna/Side/S01-Idle/0001.png" id="605_6tbh7"]
[ext_resource type="Texture2D" uid="uid://dogtalawnjbsm" path="res://art/animation/vesna/Side/S01-Idle/0002.png" id="606_0gmsg"]
-[ext_resource type="Texture2D" uid="uid://dy8q1argyr42y" path="res://art/animation/vesna/Side/S01-Idle/0003.png" id="607_w55e0"]
[ext_resource type="Texture2D" uid="uid://bjkuxovwfoh2g" path="res://art/animation/vesna/Side/S01-Idle/0004.png" id="608_m7alr"]
-[ext_resource type="Texture2D" uid="uid://bnbgkqalf3ob7" path="res://art/animation/vesna/Side/S01-Idle/0005.png" id="609_ex8wj"]
[ext_resource type="Texture2D" uid="uid://dp528g7vl2o1t" path="res://art/animation/vesna/Side/S01-Idle/0006.png" id="610_7eb8p"]
-[ext_resource type="Texture2D" uid="uid://c63ntcisk7ul3" path="res://art/animation/vesna/Side/S01-Idle/0007.png" id="611_g612e"]
[ext_resource type="Texture2D" uid="uid://wgk8gl42xhrv" path="res://art/animation/vesna/Side/S01-Idle/0008.png" id="612_kugcx"]
-[ext_resource type="Texture2D" uid="uid://blx8nrbahftm1" path="res://art/animation/vesna/Side/S01-Idle/0009.png" id="613_5wcc4"]
[ext_resource type="Texture2D" uid="uid://byiw0g04fh3fl" path="res://art/animation/vesna/Side/S01-Idle/0010.png" id="614_dnd3n"]
-[ext_resource type="Texture2D" uid="uid://bwrolxnbgouf5" path="res://art/animation/vesna/Side/S01-Idle/0011.png" id="615_jh127"]
[ext_resource type="Texture2D" uid="uid://6b1ujlfiynog" path="res://art/animation/vesna/Side/S01-Idle/0012.png" id="616_exnt1"]
-[ext_resource type="Texture2D" uid="uid://dp3js8exvbq8d" path="res://art/animation/vesna/Side/S01-Idle/0013.png" id="617_l11ns"]
[ext_resource type="Texture2D" uid="uid://2ynt3lurauh0" path="res://art/animation/vesna/Side/S01-Idle/0014.png" id="618_sws0p"]
-[ext_resource type="Texture2D" uid="uid://p0br6ngk2lt7" path="res://art/animation/vesna/Side/S01-Idle/0015.png" id="619_mpliu"]
[ext_resource type="Texture2D" uid="uid://dkdqpu38eglvt" path="res://art/animation/vesna/Side/S01-Idle/0016.png" id="620_ikq1g"]
-[ext_resource type="Texture2D" uid="uid://tu0ocxvudhso" path="res://art/animation/vesna/Side/S01-Idle/0017.png" id="621_2l6la"]
[ext_resource type="Texture2D" uid="uid://w2w8s4fll8fl" path="res://art/animation/vesna/Side/S01-Idle/0018.png" id="622_kum8w"]
-[ext_resource type="Texture2D" uid="uid://m6cltq0bcejg" path="res://art/animation/vesna/Side/S01-Idle/0019.png" id="623_puki8"]
[ext_resource type="Texture2D" uid="uid://bbd36en7jnhrx" path="res://art/animation/vesna/Side/S01-Idle/0020.png" id="624_ax3c1"]
-[ext_resource type="Texture2D" uid="uid://b8bv6d2rt8h8v" path="res://art/animation/vesna/Side/S01-Idle/0021.png" id="625_k7myn"]
[ext_resource type="Texture2D" uid="uid://bxhengbbqgho1" path="res://art/animation/vesna/Side/S01-Idle/0022.png" id="626_ehncs"]
-[ext_resource type="Texture2D" uid="uid://bycvvq3vmbcss" path="res://art/animation/vesna/Side/S01-Idle/0023.png" id="627_gw36k"]
[ext_resource type="Texture2D" uid="uid://oi44ce2uea6f" path="res://art/animation/vesna/Side/S01-Idle/0024.png" id="628_tlvlq"]
-[ext_resource type="Texture2D" uid="uid://bkv341734rnim" path="res://art/animation/vesna/Side/S01-Idle/0025.png" id="629_sh8q0"]
[ext_resource type="Texture2D" uid="uid://yhtoba2kt5a" path="res://art/animation/vesna/Side/S01-Idle/0026.png" id="630_3p107"]
-[ext_resource type="Texture2D" uid="uid://bo165178craxh" path="res://art/animation/vesna/Side/S01-Idle/0027.png" id="631_s48mk"]
[ext_resource type="Texture2D" uid="uid://wx260sg538cx" path="res://art/animation/vesna/Side/S01-Idle/0028.png" id="632_k2em2"]
-[ext_resource type="Texture2D" uid="uid://d4mffc4wsp0du" path="res://art/animation/vesna/Side/S01-Idle/0029.png" id="633_cgisl"]
[ext_resource type="Texture2D" uid="uid://dxh3gvtr7g41o" path="res://art/animation/vesna/Side/S01-Idle/0030.png" id="634_8gbgf"]
-[ext_resource type="Texture2D" uid="uid://c2pvha48evpvm" path="res://art/animation/vesna/Side/S01-Idle/0031.png" id="635_af50v"]
[ext_resource type="Texture2D" uid="uid://bx7m2bc3s0vua" path="res://art/animation/vesna/Side/S01-Idle/0032.png" id="636_0o0q8"]
-[ext_resource type="Texture2D" uid="uid://dp2wj86bkw8qd" path="res://art/animation/vesna/Side/S01-Idle/0033.png" id="637_gcqp8"]
[ext_resource type="Texture2D" uid="uid://pkligbymyevi" path="res://art/animation/vesna/Side/S01-Idle/0034.png" id="638_x8puo"]
-[ext_resource type="Texture2D" uid="uid://u80eiwbk7e00" path="res://art/animation/vesna/Side/S01-Idle/0035.png" id="639_2kr0c"]
[ext_resource type="Texture2D" uid="uid://bvfsbnwi5p8e3" path="res://art/animation/vesna/Side/S01-Idle/0036.png" id="640_gloiw"]
-[ext_resource type="Texture2D" uid="uid://bjch2sgjq8bbw" path="res://art/animation/vesna/Side/S01-Idle/0037.png" id="641_gb3ia"]
[ext_resource type="Texture2D" uid="uid://hhjjdbhgu6uy" path="res://art/animation/vesna/Side/S01-Idle/0038.png" id="642_co1v5"]
-[ext_resource type="Texture2D" uid="uid://cl1d3eagu3e7v" path="res://art/animation/vesna/Side/S01-Idle/0039.png" id="643_u4032"]
[ext_resource type="Texture2D" uid="uid://b3di3vja8bgc6" path="res://art/animation/vesna/Side/S01-Idle/0040.png" id="644_ygw38"]
-[ext_resource type="Texture2D" uid="uid://bqksfi1dnqbv1" path="res://art/animation/vesna/Side/S01-Idle/0041.png" id="645_dufr2"]
[ext_resource type="Texture2D" uid="uid://bshotijvkl5ql" path="res://art/animation/vesna/Side/S01-Idle/0042.png" id="646_k778w"]
-[ext_resource type="Texture2D" uid="uid://cc6t1qdt2d2tx" path="res://art/animation/vesna/Side/S01-Idle/0043.png" id="647_8d5nc"]
[ext_resource type="Texture2D" uid="uid://d2376yy03a4l2" path="res://art/animation/vesna/Side/S01-Idle/0044.png" id="648_ylj23"]
-[ext_resource type="Texture2D" uid="uid://b86kewaxkoi4g" path="res://art/animation/vesna/Side/S01-Idle/0045.png" id="649_y5gfu"]
[ext_resource type="Texture2D" uid="uid://ciwlbi1txx71r" path="res://art/animation/vesna/Side/S01-Idle/0046.png" id="650_2rjx7"]
-[ext_resource type="Texture2D" uid="uid://ffqckan6gwxb" path="res://art/animation/vesna/Side/S01-Idle/0047.png" id="651_hi44u"]
[ext_resource type="Texture2D" uid="uid://cecnohftednrt" path="res://art/animation/vesna/Side/S01-Idle/0048.png" id="652_dyko2"]
[ext_resource type="Texture2D" uid="uid://c6afcstw52b0n" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0001.png" id="653_7l6sq"]
[ext_resource type="Texture2D" uid="uid://dnoj1a0m05hu0" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0002.png" id="654_1th1q"]
-[ext_resource type="Texture2D" uid="uid://cvql4p4kloaon" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0003.png" id="655_kelvf"]
[ext_resource type="Texture2D" uid="uid://hv7dbe0ar40w" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0004.png" id="656_c5w6d"]
-[ext_resource type="Texture2D" uid="uid://ba3grb0t3xv5v" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0005.png" id="657_i3dtq"]
[ext_resource type="Texture2D" uid="uid://cxa8xoufbpxfu" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0006.png" id="658_ipgfv"]
-[ext_resource type="Texture2D" uid="uid://n4rfecampw0u" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0007.png" id="659_544fe"]
[ext_resource type="Texture2D" uid="uid://bfxjniy4grait" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0008.png" id="660_mi1bi"]
-[ext_resource type="Texture2D" uid="uid://b5oqpm13s8mw8" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0009.png" id="661_m1gnf"]
[ext_resource type="Texture2D" uid="uid://bqwy0bfphc1i6" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0010.png" id="662_8pix2"]
-[ext_resource type="Texture2D" uid="uid://br6yfs72sffrc" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0011.png" id="663_d8kbx"]
[ext_resource type="Texture2D" uid="uid://b5nemoibkcd1e" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0012.png" id="664_o457m"]
-[ext_resource type="Texture2D" uid="uid://qiy04scra7bm" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0013.png" id="665_aui43"]
[ext_resource type="Texture2D" uid="uid://chwg1k2dte0n6" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0014.png" id="666_dv0yi"]
-[ext_resource type="Texture2D" uid="uid://cjtpptaeuih5a" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0015.png" id="667_a81gx"]
[ext_resource type="Texture2D" uid="uid://d3e5ctql10n4g" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0016.png" id="668_q4n42"]
-[ext_resource type="Texture2D" uid="uid://befugw72quhs3" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0017.png" id="669_ri708"]
[ext_resource type="Texture2D" uid="uid://b1eyy4drgng7y" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0018.png" id="670_3cjbo"]
-[ext_resource type="Texture2D" uid="uid://c2chhywjnhr7c" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0019.png" id="671_32duw"]
[ext_resource type="Texture2D" uid="uid://dy0axpixp5xha" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0020.png" id="672_oqfoc"]
[ext_resource type="Texture2D" uid="uid://cnn0hi24p550h" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0001.png" id="673_r331b"]
[ext_resource type="Texture2D" uid="uid://htjuv3qgm0l0" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0002.png" id="674_mpxqh"]
-[ext_resource type="Texture2D" uid="uid://b1n0iypk4bsj" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0003.png" id="675_7rldl"]
[ext_resource type="Texture2D" uid="uid://bdjxaa75ygo47" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0004.png" id="676_sotra"]
-[ext_resource type="Texture2D" uid="uid://bqey3yhe127ax" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0005.png" id="677_ph4yb"]
[ext_resource type="Texture2D" uid="uid://cc58qcvhj7y3t" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0006.png" id="678_ilgf3"]
-[ext_resource type="Texture2D" uid="uid://bybxy65fyjfqi" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0007.png" id="679_cohpj"]
[ext_resource type="Texture2D" uid="uid://dhins6sn4odie" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0008.png" id="680_y1eex"]
-[ext_resource type="Texture2D" uid="uid://chobeonoi3n3n" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0009.png" id="681_w54y2"]
[ext_resource type="Texture2D" uid="uid://dw8ic3rkrsyhe" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0010.png" id="682_mqity"]
-[ext_resource type="Texture2D" uid="uid://cue8fxpseoqp1" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0011.png" id="683_kgkc3"]
[ext_resource type="Texture2D" uid="uid://u3qy1lm62mr7" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0012.png" id="684_wmoa1"]
-[ext_resource type="Texture2D" uid="uid://dbq03jwbdd6i6" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0013.png" id="685_r72u6"]
[ext_resource type="Texture2D" uid="uid://3sblj0bhtpkx" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0014.png" id="686_jp80r"]
-[ext_resource type="Texture2D" uid="uid://fgwwxscs0bco" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0015.png" id="687_7ldbi"]
[ext_resource type="Texture2D" uid="uid://di7m1e4e3ipgx" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0016.png" id="688_x7pqr"]
-[ext_resource type="Texture2D" uid="uid://min74btwxtww" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0017.png" id="689_qlvst"]
[ext_resource type="Texture2D" uid="uid://bg2yjuuq3jfmh" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0018.png" id="690_5c5t0"]
-[ext_resource type="Texture2D" uid="uid://cth0puhjpy3yi" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0019.png" id="691_43hn6"]
[ext_resource type="Texture2D" uid="uid://dl3njtguv783c" path="res://art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0020.png" id="692_5ip34"]
[ext_resource type="Texture2D" uid="uid://d4k4gwtfk2j0a" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S03-PickUp/0001.png" id="693_1x2wo"]
[ext_resource type="Texture2D" uid="uid://t8wtpnm0txbh" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S03-PickUp/0002.png" id="694_va07i"]
@@ -708,111 +412,61 @@
[ext_resource type="Texture2D" uid="uid://dmqdkgtbf7ul8" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S03-PickUp/0014.png" id="706_5ha88"]
[ext_resource type="Texture2D" uid="uid://usi0dter8hv4" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0001.png" id="707_766so"]
[ext_resource type="Texture2D" uid="uid://oyfr7kknylll" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0002.png" id="708_yk13s"]
-[ext_resource type="Texture2D" uid="uid://dkrdqolyxlhk0" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0003.png" id="709_yi4ii"]
[ext_resource type="Texture2D" uid="uid://uj53oie7o2k" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0004.png" id="710_f70pr"]
-[ext_resource type="Texture2D" uid="uid://cuxklf54ycxqn" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0005.png" id="711_japqf"]
[ext_resource type="Texture2D" uid="uid://cyp6jcvn8d4ps" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0006.png" id="712_pe5na"]
-[ext_resource type="Texture2D" uid="uid://dru4pttgrs6hp" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0007.png" id="713_eelxk"]
[ext_resource type="Texture2D" uid="uid://b7r1kvjv4a7te" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0008.png" id="714_cslcr"]
-[ext_resource type="Texture2D" uid="uid://ct11egi6oa2vs" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0009.png" id="715_sp0mr"]
[ext_resource type="Texture2D" uid="uid://mhetoe2q2plb" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0010.png" id="716_r5qrg"]
-[ext_resource type="Texture2D" uid="uid://b3p1ive32d5s2" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0011.png" id="717_kux6w"]
[ext_resource type="Texture2D" uid="uid://cbpueiws6uiq" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0012.png" id="718_r28gn"]
-[ext_resource type="Texture2D" uid="uid://cgvgtvha76jbr" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0013.png" id="719_tdrjd"]
[ext_resource type="Texture2D" uid="uid://cqahoeou3vian" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0014.png" id="720_57f4q"]
-[ext_resource type="Texture2D" uid="uid://bdvvlrgvkhb6c" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0015.png" id="721_pg0yo"]
[ext_resource type="Texture2D" uid="uid://b2galfsx6og6h" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0016.png" id="722_1jjes"]
-[ext_resource type="Texture2D" uid="uid://blcu54p61ofrw" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0017.png" id="723_85raq"]
[ext_resource type="Texture2D" uid="uid://ckgdtlo7y51nv" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0018.png" id="724_g6g5u"]
-[ext_resource type="Texture2D" uid="uid://clkklypt7jqdp" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0019.png" id="725_c6woj"]
[ext_resource type="Texture2D" uid="uid://bn3gypn4l3w7u" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0020.png" id="726_0l6t0"]
-[ext_resource type="Texture2D" uid="uid://p0sptnq656d7" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0021.png" id="727_tm5vf"]
[ext_resource type="Texture2D" uid="uid://b11hwfc2wndsf" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0022.png" id="728_o8uff"]
-[ext_resource type="Texture2D" uid="uid://b3ccxlfteb2bq" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0023.png" id="729_uhvkp"]
[ext_resource type="Texture2D" uid="uid://ympx8ykivayj" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0024.png" id="730_wwtbo"]
-[ext_resource type="Texture2D" uid="uid://cri0w2idseceh" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0025.png" id="731_eeefe"]
[ext_resource type="Texture2D" uid="uid://bxi8mt5jvw02o" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0026.png" id="732_n5gfh"]
-[ext_resource type="Texture2D" uid="uid://dn4kafwj7v8ff" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0027.png" id="733_uu8wk"]
[ext_resource type="Texture2D" uid="uid://gh1i43hfsye4" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0028.png" id="734_8ajxp"]
-[ext_resource type="Texture2D" uid="uid://bl10xwoaplrxo" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0029.png" id="735_ymjju"]
[ext_resource type="Texture2D" uid="uid://dc8xd8w5s471v" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0030.png" id="736_xhy85"]
-[ext_resource type="Texture2D" uid="uid://737sllr1wedy" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0031.png" id="737_smkc4"]
[ext_resource type="Texture2D" uid="uid://lohy1gj3imxr" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0032.png" id="738_5a14m"]
-[ext_resource type="Texture2D" uid="uid://dlu3gqttex1g4" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0033.png" id="739_6prg8"]
[ext_resource type="Texture2D" uid="uid://chcqeiw2myv6o" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0034.png" id="740_05soa"]
-[ext_resource type="Texture2D" uid="uid://ygvhk0pvhr1r" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0035.png" id="741_ae4be"]
[ext_resource type="Texture2D" uid="uid://cs8tfg3k061qq" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0036.png" id="742_oupgc"]
-[ext_resource type="Texture2D" uid="uid://diektyeufmk5c" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0037.png" id="743_k6jb1"]
[ext_resource type="Texture2D" uid="uid://csswxbuvvdqew" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0038.png" id="744_0de8g"]
-[ext_resource type="Texture2D" uid="uid://blij5bbab8msa" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0039.png" id="745_6gbkr"]
[ext_resource type="Texture2D" uid="uid://bfasq3jh4csxo" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0040.png" id="746_xpcp8"]
-[ext_resource type="Texture2D" uid="uid://v5ya0ti1jhra" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0041.png" id="747_mqma7"]
[ext_resource type="Texture2D" uid="uid://tvvx0t57m5xr" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0042.png" id="748_8au1c"]
-[ext_resource type="Texture2D" uid="uid://dph1iaub3peww" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0043.png" id="749_pqp20"]
[ext_resource type="Texture2D" uid="uid://brkgk181kqdvo" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0044.png" id="750_pa1th"]
-[ext_resource type="Texture2D" uid="uid://d11jp2d8sdhuq" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0045.png" id="751_j5fds"]
[ext_resource type="Texture2D" uid="uid://cycj0x7r2xnth" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0046.png" id="752_a20ik"]
-[ext_resource type="Texture2D" uid="uid://bptrqdkk7yj5i" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0047.png" id="753_kyl1b"]
[ext_resource type="Texture2D" uid="uid://crjfprs7deaxr" path="res://art/animation/vesna/Side/S02-Walk/S01-Walk0048.png" id="754_kcgp3"]
[ext_resource type="Texture2D" uid="uid://bonwjlkxqqj1e" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0001.png" id="755_mmec4"]
[ext_resource type="Texture2D" uid="uid://brrk1wf4oxyb8" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0002.png" id="756_w17j5"]
-[ext_resource type="Texture2D" uid="uid://maf8gm8c6cod" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0003.png" id="757_ms0qb"]
[ext_resource type="Texture2D" uid="uid://b3emeo4nrwol7" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0004.png" id="758_bobpp"]
-[ext_resource type="Texture2D" uid="uid://q4eo2lxfyolg" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0005.png" id="759_dy6pl"]
[ext_resource type="Texture2D" uid="uid://bol57aw87v3hs" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0006.png" id="760_hjc06"]
-[ext_resource type="Texture2D" uid="uid://drgb374ql1yol" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0007.png" id="761_yo551"]
[ext_resource type="Texture2D" uid="uid://b50f2siaaq5d" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0008.png" id="762_cqmns"]
-[ext_resource type="Texture2D" uid="uid://hww0hsnh4lcl" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0009.png" id="763_kqdld"]
[ext_resource type="Texture2D" uid="uid://d14bn7lahvhoe" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0010.png" id="764_6ag32"]
-[ext_resource type="Texture2D" uid="uid://0scr6nvjj2xd" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0011.png" id="765_5gc0j"]
[ext_resource type="Texture2D" uid="uid://xsvgmlwhwit3" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0012.png" id="766_sdkoa"]
-[ext_resource type="Texture2D" uid="uid://claigp8vjaofp" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0013.png" id="767_j4c88"]
[ext_resource type="Texture2D" uid="uid://cn5nuxicl33nk" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0014.png" id="768_yxmsl"]
-[ext_resource type="Texture2D" uid="uid://be6dswpqlp4tq" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0015.png" id="769_v5kb6"]
[ext_resource type="Texture2D" uid="uid://dqqljcbbbrbfn" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0016.png" id="770_hc1bq"]
-[ext_resource type="Texture2D" uid="uid://cnq82nutmhjni" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0017.png" id="771_emlcs"]
[ext_resource type="Texture2D" uid="uid://b060vbaiysswo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0018.png" id="772_kapjc"]
-[ext_resource type="Texture2D" uid="uid://bufylv0kila1u" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0019.png" id="773_dm2lr"]
[ext_resource type="Texture2D" uid="uid://byrbpximcdrxe" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0020.png" id="774_w1ahn"]
[ext_resource type="Texture2D" uid="uid://ckea4q3eugd2v" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0001.png" id="775_nguuw"]
[ext_resource type="Texture2D" uid="uid://cw6bcmuv6nl3e" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0002.png" id="776_6o0aq"]
-[ext_resource type="Texture2D" uid="uid://c0xjy7uhk6jsy" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0003.png" id="777_gtunp"]
[ext_resource type="Texture2D" uid="uid://0gfsovly6em2" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0004.png" id="778_vh3bl"]
-[ext_resource type="Texture2D" uid="uid://dsl3ihhckmx5k" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0005.png" id="779_1bxhc"]
[ext_resource type="Texture2D" uid="uid://cqinsjvbdcguw" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0006.png" id="780_48qrn"]
-[ext_resource type="Texture2D" uid="uid://64igl0gglnlu" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0007.png" id="781_pjm01"]
[ext_resource type="Texture2D" uid="uid://c711ile1sfj4g" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0008.png" id="782_wvq0m"]
-[ext_resource type="Texture2D" uid="uid://w243620hhvnu" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0009.png" id="783_g30x4"]
[ext_resource type="Texture2D" uid="uid://dgwjvjrj3q8rn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0010.png" id="784_sxoog"]
-[ext_resource type="Texture2D" uid="uid://dm6k336sfq5dn" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0011.png" id="785_0gwlh"]
[ext_resource type="Texture2D" uid="uid://c7rrih2i1cnhx" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0012.png" id="786_5xl80"]
-[ext_resource type="Texture2D" uid="uid://8a3fx82hmjbi" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0013.png" id="787_ausc1"]
[ext_resource type="Texture2D" uid="uid://dfn8318ff4qqg" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0014.png" id="788_gihw5"]
-[ext_resource type="Texture2D" uid="uid://dx1hpkwxgtuuv" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0015.png" id="789_7mbns"]
[ext_resource type="Texture2D" uid="uid://dbuxdbx7lv2uk" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0016.png" id="790_7uqx2"]
-[ext_resource type="Texture2D" uid="uid://cevti27siyiu1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0017.png" id="791_m2fac"]
[ext_resource type="Texture2D" uid="uid://cxcaqeilw6qyv" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0018.png" id="792_uxh10"]
-[ext_resource type="Texture2D" uid="uid://tywawvrx32tv" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0019.png" id="793_jtwhk"]
[ext_resource type="Texture2D" uid="uid://e0act1bcstyj" path="res://art/animation/Vesna2D/Vesna Anims Sequences/S02-Walk/0020.png" id="794_lp5f3"]
[ext_resource type="Texture2D" uid="uid://cloe0etis2lcu" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0001.png" id="795_ok1oc"]
[ext_resource type="Texture2D" uid="uid://b8y3irc1jst1y" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0002.png" id="796_cl6x5"]
-[ext_resource type="Texture2D" uid="uid://5844t784r4uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0003.png" id="797_ngd12"]
[ext_resource type="Texture2D" uid="uid://bhsey7eiobmp0" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0004.png" id="798_26msc"]
-[ext_resource type="Texture2D" uid="uid://bb4cugban5plb" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0005.png" id="799_grxnc"]
[ext_resource type="Texture2D" uid="uid://c3i6fxxq23qde" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0006.png" id="800_frlj0"]
-[ext_resource type="Texture2D" uid="uid://dcacayir1wy2y" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0007.png" id="801_2e27j"]
[ext_resource type="Texture2D" uid="uid://cdtmhexmtrtg3" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0008.png" id="802_r3gkv"]
-[ext_resource type="Texture2D" uid="uid://bqew3u842mh0o" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0009.png" id="803_paxjf"]
[ext_resource type="Texture2D" uid="uid://diu6y1mmyap71" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0010.png" id="804_g2mlb"]
-[ext_resource type="Texture2D" uid="uid://bf05l5nb48yfu" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0011.png" id="805_jia7e"]
[ext_resource type="Texture2D" uid="uid://cvceouc4wu44" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0012.png" id="806_k1kh0"]
-[ext_resource type="Texture2D" uid="uid://d1qa333ensunj" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0013.png" id="807_awkuw"]
[ext_resource type="Texture2D" uid="uid://dnxg2ulkcec8q" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0014.png" id="808_ud6ks"]
-[ext_resource type="Texture2D" uid="uid://bucj3lo01yx7g" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0015.png" id="809_3g83n"]
[ext_resource type="Texture2D" uid="uid://ds2y033vahyi5" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png" id="810_224qh"]
-[ext_resource type="Texture2D" uid="uid://bx58kyxlnupf3" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0017.png" id="811_phn7o"]
[ext_resource type="Texture2D" uid="uid://b0v61all3tsny" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png" id="812_sf8kv"]
-[ext_resource type="Texture2D" uid="uid://0vevm6lhrmes" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0019.png" id="813_ekwc5"]
[ext_resource type="Texture2D" uid="uid://cao7vqax8cblo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png" id="814_3uq4g"]
[ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"]
[ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"]
@@ -833,57 +487,30 @@ animations = [{
"texture": ExtResource("4_dy5kt")
}, {
"duration": 1.0,
-"texture": ExtResource("5_ooryh")
-}, {
-"duration": 1.0,
"texture": ExtResource("6_3sina")
}, {
"duration": 1.0,
-"texture": ExtResource("7_bjd5b")
-}, {
-"duration": 1.0,
"texture": ExtResource("8_f7dmn")
}, {
"duration": 1.0,
-"texture": ExtResource("9_51g6i")
-}, {
-"duration": 1.0,
"texture": ExtResource("10_fftrp")
}, {
"duration": 1.0,
-"texture": ExtResource("11_ct2ci")
-}, {
-"duration": 1.0,
"texture": ExtResource("12_3b8my")
}, {
"duration": 1.0,
-"texture": ExtResource("13_uyop1")
-}, {
-"duration": 1.0,
"texture": ExtResource("14_dbxha")
}, {
"duration": 1.0,
-"texture": ExtResource("15_myc1w")
-}, {
-"duration": 1.0,
"texture": ExtResource("16_g5k82")
}, {
"duration": 1.0,
-"texture": ExtResource("17_g8eyg")
-}, {
-"duration": 1.0,
"texture": ExtResource("18_uluck")
}, {
"duration": 1.0,
-"texture": ExtResource("19_jm67u")
-}, {
-"duration": 1.0,
"texture": ExtResource("20_7auft")
}, {
"duration": 1.0,
-"texture": ExtResource("21_idwqi")
-}, {
-"duration": 1.0,
"texture": ExtResource("22_wfdgo")
}],
"loop": true,
@@ -898,141 +525,72 @@ animations = [{
"texture": ExtResource("24_tb8a3")
}, {
"duration": 1.0,
-"texture": ExtResource("25_3algh")
-}, {
-"duration": 1.0,
"texture": ExtResource("26_hvbdn")
}, {
"duration": 1.0,
-"texture": ExtResource("27_bkxju")
-}, {
-"duration": 1.0,
"texture": ExtResource("28_7klc7")
}, {
"duration": 1.0,
-"texture": ExtResource("29_g8yjr")
-}, {
-"duration": 1.0,
"texture": ExtResource("30_4sjqa")
}, {
"duration": 1.0,
-"texture": ExtResource("31_j5gdy")
-}, {
-"duration": 1.0,
"texture": ExtResource("32_srg3p")
}, {
"duration": 1.0,
-"texture": ExtResource("33_s0f6c")
-}, {
-"duration": 1.0,
"texture": ExtResource("34_cnsul")
}, {
"duration": 1.0,
-"texture": ExtResource("35_30y07")
-}, {
-"duration": 1.0,
"texture": ExtResource("36_n7dk1")
}, {
"duration": 1.0,
-"texture": ExtResource("37_aw564")
-}, {
-"duration": 1.0,
"texture": ExtResource("38_y5m8n")
}, {
"duration": 1.0,
-"texture": ExtResource("39_4rb1e")
-}, {
-"duration": 1.0,
"texture": ExtResource("40_lkrss")
}, {
"duration": 1.0,
-"texture": ExtResource("41_5yc38")
-}, {
-"duration": 1.0,
"texture": ExtResource("42_oq7bk")
}, {
"duration": 1.0,
-"texture": ExtResource("43_06tv4")
-}, {
-"duration": 1.0,
"texture": ExtResource("44_oi8d4")
}, {
"duration": 1.0,
-"texture": ExtResource("45_qmmd3")
-}, {
-"duration": 1.0,
"texture": ExtResource("46_g8hfs")
}, {
"duration": 1.0,
-"texture": ExtResource("47_b1kaj")
-}, {
-"duration": 1.0,
"texture": ExtResource("48_trb4q")
}, {
"duration": 1.0,
-"texture": ExtResource("49_ln0lw")
-}, {
-"duration": 1.0,
"texture": ExtResource("50_m3e1x")
}, {
"duration": 1.0,
-"texture": ExtResource("51_dnl6u")
-}, {
-"duration": 1.0,
"texture": ExtResource("52_kgncu")
}, {
"duration": 1.0,
-"texture": ExtResource("53_r7rcw")
-}, {
-"duration": 1.0,
"texture": ExtResource("54_hvusu")
}, {
"duration": 1.0,
-"texture": ExtResource("55_s7u3f")
-}, {
-"duration": 1.0,
"texture": ExtResource("56_33shn")
}, {
"duration": 1.0,
-"texture": ExtResource("57_vtw6e")
-}, {
-"duration": 1.0,
"texture": ExtResource("58_tm4g7")
}, {
"duration": 1.0,
-"texture": ExtResource("59_nwsu2")
-}, {
-"duration": 1.0,
"texture": ExtResource("60_5iaia")
}, {
"duration": 1.0,
-"texture": ExtResource("61_jtnjo")
-}, {
-"duration": 1.0,
"texture": ExtResource("62_gqhbm")
}, {
"duration": 1.0,
-"texture": ExtResource("63_ywdkx")
-}, {
-"duration": 1.0,
"texture": ExtResource("64_tpynu")
}, {
"duration": 1.0,
-"texture": ExtResource("65_i4fg5")
-}, {
-"duration": 1.0,
"texture": ExtResource("66_73ci5")
}, {
"duration": 1.0,
-"texture": ExtResource("67_plvxc")
-}, {
-"duration": 1.0,
"texture": ExtResource("68_6xgay")
}, {
"duration": 1.0,
-"texture": ExtResource("69_g5ryt")
-}, {
-"duration": 1.0,
"texture": ExtResource("70_uh3u2")
}],
"loop": true,
@@ -1047,57 +605,30 @@ animations = [{
"texture": ExtResource("72_krjt8")
}, {
"duration": 1.0,
-"texture": ExtResource("73_fc507")
-}, {
-"duration": 1.0,
"texture": ExtResource("74_8o5vf")
}, {
"duration": 1.0,
-"texture": ExtResource("75_5g28e")
-}, {
-"duration": 1.0,
"texture": ExtResource("76_5m4eb")
}, {
"duration": 1.0,
-"texture": ExtResource("77_0e45w")
-}, {
-"duration": 1.0,
"texture": ExtResource("78_ea0ih")
}, {
"duration": 1.0,
-"texture": ExtResource("79_8guwf")
-}, {
-"duration": 1.0,
"texture": ExtResource("80_nthv1")
}, {
"duration": 1.0,
-"texture": ExtResource("81_ll850")
-}, {
-"duration": 1.0,
"texture": ExtResource("82_srvcl")
}, {
"duration": 1.0,
-"texture": ExtResource("83_8b7sp")
-}, {
-"duration": 1.0,
"texture": ExtResource("84_gbgxl")
}, {
"duration": 1.0,
-"texture": ExtResource("85_gso82")
-}, {
-"duration": 1.0,
"texture": ExtResource("86_vdw06")
}, {
"duration": 1.0,
-"texture": ExtResource("87_hqqwf")
-}, {
-"duration": 1.0,
"texture": ExtResource("88_rplna")
}, {
"duration": 1.0,
-"texture": ExtResource("89_c4fmc")
-}, {
-"duration": 1.0,
"texture": ExtResource("90_ktgpd")
}],
"loop": true,
@@ -1112,57 +643,30 @@ animations = [{
"texture": ExtResource("92_r247x")
}, {
"duration": 1.0,
-"texture": ExtResource("93_ubpl1")
-}, {
-"duration": 1.0,
"texture": ExtResource("94_gakvy")
}, {
"duration": 1.0,
-"texture": ExtResource("95_pse5n")
-}, {
-"duration": 1.0,
"texture": ExtResource("96_in860")
}, {
"duration": 1.0,
-"texture": ExtResource("97_gsmph")
-}, {
-"duration": 1.0,
"texture": ExtResource("98_qfbag")
}, {
"duration": 1.0,
-"texture": ExtResource("99_uc1kl")
-}, {
-"duration": 1.0,
"texture": ExtResource("100_24v4s")
}, {
"duration": 1.0,
-"texture": ExtResource("101_5jfin")
-}, {
-"duration": 1.0,
"texture": ExtResource("102_0swag")
}, {
"duration": 1.0,
-"texture": ExtResource("103_kan7k")
-}, {
-"duration": 1.0,
"texture": ExtResource("104_elbbc")
}, {
"duration": 1.0,
-"texture": ExtResource("105_e08lw")
-}, {
-"duration": 1.0,
"texture": ExtResource("106_q2no2")
}, {
"duration": 1.0,
-"texture": ExtResource("107_7u8lk")
-}, {
-"duration": 1.0,
"texture": ExtResource("108_m0omi")
}, {
"duration": 1.0,
-"texture": ExtResource("109_glh2j")
-}, {
-"duration": 1.0,
"texture": ExtResource("110_lcssq")
}],
"loop": true,
@@ -1212,57 +716,30 @@ animations = [{
"texture": ExtResource("122_cxvrh")
}, {
"duration": 1.0,
-"texture": ExtResource("123_54tjs")
-}, {
-"duration": 1.0,
"texture": ExtResource("124_mn60e")
}, {
"duration": 1.0,
-"texture": ExtResource("125_4uvde")
-}, {
-"duration": 1.0,
"texture": ExtResource("126_hgnnd")
}, {
"duration": 1.0,
-"texture": ExtResource("127_7uog1")
-}, {
-"duration": 1.0,
"texture": ExtResource("128_jtga8")
}, {
"duration": 1.0,
-"texture": ExtResource("129_lxme3")
-}, {
-"duration": 1.0,
"texture": ExtResource("130_ygmj0")
}, {
"duration": 1.0,
-"texture": ExtResource("131_hcgb3")
-}, {
-"duration": 1.0,
"texture": ExtResource("132_uinys")
}, {
"duration": 1.0,
-"texture": ExtResource("133_q5j2s")
-}, {
-"duration": 1.0,
"texture": ExtResource("134_bu26w")
}, {
"duration": 1.0,
-"texture": ExtResource("135_13e2b")
-}, {
-"duration": 1.0,
"texture": ExtResource("136_vnx5q")
}, {
"duration": 1.0,
-"texture": ExtResource("137_21peu")
-}, {
-"duration": 1.0,
"texture": ExtResource("138_4hhqw")
}, {
"duration": 1.0,
-"texture": ExtResource("139_trklr")
-}, {
-"duration": 1.0,
"texture": ExtResource("140_ikvge")
}],
"loop": true,
@@ -1277,141 +754,72 @@ animations = [{
"texture": ExtResource("142_1kv2c")
}, {
"duration": 1.0,
-"texture": ExtResource("143_v0vcu")
-}, {
-"duration": 1.0,
"texture": ExtResource("144_lcakx")
}, {
"duration": 1.0,
-"texture": ExtResource("145_2yoii")
-}, {
-"duration": 1.0,
"texture": ExtResource("146_jcr6r")
}, {
"duration": 1.0,
-"texture": ExtResource("147_vwfko")
-}, {
-"duration": 1.0,
"texture": ExtResource("148_060nq")
}, {
"duration": 1.0,
-"texture": ExtResource("149_smj2x")
-}, {
-"duration": 1.0,
"texture": ExtResource("150_8u7ah")
}, {
"duration": 1.0,
-"texture": ExtResource("151_0dx2o")
-}, {
-"duration": 1.0,
"texture": ExtResource("152_yw3l0")
}, {
"duration": 1.0,
-"texture": ExtResource("153_nd5dk")
-}, {
-"duration": 1.0,
"texture": ExtResource("154_6qloc")
}, {
"duration": 1.0,
-"texture": ExtResource("155_13eiv")
-}, {
-"duration": 1.0,
"texture": ExtResource("156_kglr5")
}, {
"duration": 1.0,
-"texture": ExtResource("157_hgbgw")
-}, {
-"duration": 1.0,
"texture": ExtResource("158_s71l2")
}, {
"duration": 1.0,
-"texture": ExtResource("159_7lm3j")
-}, {
-"duration": 1.0,
"texture": ExtResource("160_sjrvp")
}, {
"duration": 1.0,
-"texture": ExtResource("161_t363w")
-}, {
-"duration": 1.0,
"texture": ExtResource("162_dvpnv")
}, {
"duration": 1.0,
-"texture": ExtResource("163_wftmg")
-}, {
-"duration": 1.0,
"texture": ExtResource("164_6fxu6")
}, {
"duration": 1.0,
-"texture": ExtResource("165_hkal4")
-}, {
-"duration": 1.0,
"texture": ExtResource("166_nqquh")
}, {
"duration": 1.0,
-"texture": ExtResource("167_ekhdj")
-}, {
-"duration": 1.0,
"texture": ExtResource("168_wl1fv")
}, {
"duration": 1.0,
-"texture": ExtResource("169_ii55e")
-}, {
-"duration": 1.0,
"texture": ExtResource("170_dvtvo")
}, {
"duration": 1.0,
-"texture": ExtResource("171_7c80y")
-}, {
-"duration": 1.0,
"texture": ExtResource("172_o6pqr")
}, {
"duration": 1.0,
-"texture": ExtResource("173_c5yps")
-}, {
-"duration": 1.0,
"texture": ExtResource("174_kihv4")
}, {
"duration": 1.0,
-"texture": ExtResource("175_5khq4")
-}, {
-"duration": 1.0,
"texture": ExtResource("176_7eupn")
}, {
"duration": 1.0,
-"texture": ExtResource("177_vfawh")
-}, {
-"duration": 1.0,
"texture": ExtResource("178_f6f2d")
}, {
"duration": 1.0,
-"texture": ExtResource("179_qph5u")
-}, {
-"duration": 1.0,
"texture": ExtResource("180_lu7eo")
}, {
"duration": 1.0,
-"texture": ExtResource("181_vh87k")
-}, {
-"duration": 1.0,
"texture": ExtResource("182_pn5mg")
}, {
"duration": 1.0,
-"texture": ExtResource("183_klu6v")
-}, {
-"duration": 1.0,
"texture": ExtResource("184_ys15e")
}, {
"duration": 1.0,
-"texture": ExtResource("185_afhyr")
-}, {
-"duration": 1.0,
"texture": ExtResource("186_qtrjy")
}, {
"duration": 1.0,
-"texture": ExtResource("187_i253v")
-}, {
-"duration": 1.0,
"texture": ExtResource("188_bpice")
}],
"loop": true,
@@ -1426,57 +834,30 @@ animations = [{
"texture": ExtResource("190_q1o7y")
}, {
"duration": 1.0,
-"texture": ExtResource("191_dgrcv")
-}, {
-"duration": 1.0,
"texture": ExtResource("192_cagdb")
}, {
"duration": 1.0,
-"texture": ExtResource("193_7uqc6")
-}, {
-"duration": 1.0,
"texture": ExtResource("194_j84th")
}, {
"duration": 1.0,
-"texture": ExtResource("195_biaa4")
-}, {
-"duration": 1.0,
"texture": ExtResource("196_byym0")
}, {
"duration": 1.0,
-"texture": ExtResource("197_ruvn3")
-}, {
-"duration": 1.0,
"texture": ExtResource("198_mqj3d")
}, {
"duration": 1.0,
-"texture": ExtResource("199_6sg07")
-}, {
-"duration": 1.0,
"texture": ExtResource("200_nquvr")
}, {
"duration": 1.0,
-"texture": ExtResource("201_orc6w")
-}, {
-"duration": 1.0,
"texture": ExtResource("202_jyw6b")
}, {
"duration": 1.0,
-"texture": ExtResource("203_1tdqy")
-}, {
-"duration": 1.0,
"texture": ExtResource("204_xpi67")
}, {
"duration": 1.0,
-"texture": ExtResource("205_2stfx")
-}, {
-"duration": 1.0,
"texture": ExtResource("206_bsgc5")
}, {
"duration": 1.0,
-"texture": ExtResource("207_rfav7")
-}, {
-"duration": 1.0,
"texture": ExtResource("208_ct716")
}],
"loop": true,
@@ -1491,57 +872,30 @@ animations = [{
"texture": ExtResource("210_vkget")
}, {
"duration": 1.0,
-"texture": ExtResource("211_4ejo6")
-}, {
-"duration": 1.0,
"texture": ExtResource("212_qwtqh")
}, {
"duration": 1.0,
-"texture": ExtResource("213_tom53")
-}, {
-"duration": 1.0,
"texture": ExtResource("214_posuh")
}, {
"duration": 1.0,
-"texture": ExtResource("215_8rehj")
-}, {
-"duration": 1.0,
"texture": ExtResource("216_6ctoe")
}, {
"duration": 1.0,
-"texture": ExtResource("217_mya32")
-}, {
-"duration": 1.0,
"texture": ExtResource("218_qmjxl")
}, {
"duration": 1.0,
-"texture": ExtResource("219_arja3")
-}, {
-"duration": 1.0,
"texture": ExtResource("220_yiria")
}, {
"duration": 1.0,
-"texture": ExtResource("221_v6rrd")
-}, {
-"duration": 1.0,
"texture": ExtResource("222_vna73")
}, {
"duration": 1.0,
-"texture": ExtResource("223_ovybi")
-}, {
-"duration": 1.0,
"texture": ExtResource("224_mogb5")
}, {
"duration": 1.0,
-"texture": ExtResource("225_ewhm7")
-}, {
-"duration": 1.0,
"texture": ExtResource("226_swf68")
}, {
"duration": 1.0,
-"texture": ExtResource("227_tvjrw")
-}, {
-"duration": 1.0,
"texture": ExtResource("228_0vxgv")
}],
"loop": true,
@@ -1626,57 +980,30 @@ animations = [{
"texture": ExtResource("250_oen1t")
}, {
"duration": 1.0,
-"texture": ExtResource("251_0jqke")
-}, {
-"duration": 1.0,
"texture": ExtResource("252_r0pcu")
}, {
"duration": 1.0,
-"texture": ExtResource("253_vljsd")
-}, {
-"duration": 1.0,
"texture": ExtResource("254_psw4s")
}, {
"duration": 1.0,
-"texture": ExtResource("255_7s0f6")
-}, {
-"duration": 1.0,
"texture": ExtResource("256_sp4ui")
}, {
"duration": 1.0,
-"texture": ExtResource("257_afi7i")
-}, {
-"duration": 1.0,
"texture": ExtResource("258_lb23i")
}, {
"duration": 1.0,
-"texture": ExtResource("259_0bigc")
-}, {
-"duration": 1.0,
"texture": ExtResource("260_je6v5")
}, {
"duration": 1.0,
-"texture": ExtResource("261_4yvls")
-}, {
-"duration": 1.0,
"texture": ExtResource("262_5b60r")
}, {
"duration": 1.0,
-"texture": ExtResource("263_w4uhd")
-}, {
-"duration": 1.0,
"texture": ExtResource("264_eip6u")
}, {
"duration": 1.0,
-"texture": ExtResource("265_enj1o")
-}, {
-"duration": 1.0,
"texture": ExtResource("266_0udiy")
}, {
"duration": 1.0,
-"texture": ExtResource("267_d2pv8")
-}, {
-"duration": 1.0,
"texture": ExtResource("268_6tcma")
}],
"loop": true,
@@ -1691,57 +1018,30 @@ animations = [{
"texture": ExtResource("270_70su0")
}, {
"duration": 1.0,
-"texture": ExtResource("271_eu3ff")
-}, {
-"duration": 1.0,
"texture": ExtResource("272_pxgu8")
}, {
"duration": 1.0,
-"texture": ExtResource("273_m2pd7")
-}, {
-"duration": 1.0,
"texture": ExtResource("274_b2pqd")
}, {
"duration": 1.0,
-"texture": ExtResource("275_hnmss")
-}, {
-"duration": 1.0,
"texture": ExtResource("276_qpuf0")
}, {
"duration": 1.0,
-"texture": ExtResource("277_l3idq")
-}, {
-"duration": 1.0,
"texture": ExtResource("278_4j61t")
}, {
"duration": 1.0,
-"texture": ExtResource("279_0u33n")
-}, {
-"duration": 1.0,
"texture": ExtResource("280_5cfs0")
}, {
"duration": 1.0,
-"texture": ExtResource("281_0fe6s")
-}, {
-"duration": 1.0,
"texture": ExtResource("282_ooo1i")
}, {
"duration": 1.0,
-"texture": ExtResource("283_l44m2")
-}, {
-"duration": 1.0,
"texture": ExtResource("284_0qemg")
}, {
"duration": 1.0,
-"texture": ExtResource("285_lgxh3")
-}, {
-"duration": 1.0,
"texture": ExtResource("286_4plxa")
}, {
"duration": 1.0,
-"texture": ExtResource("287_ocb1q")
-}, {
-"duration": 1.0,
"texture": ExtResource("288_7n4ms")
}],
"loop": true,
@@ -1756,57 +1056,30 @@ animations = [{
"texture": ExtResource("290_4svr2")
}, {
"duration": 1.0,
-"texture": ExtResource("291_uq464")
-}, {
-"duration": 1.0,
"texture": ExtResource("292_36rlr")
}, {
"duration": 1.0,
-"texture": ExtResource("293_q1pcj")
-}, {
-"duration": 1.0,
"texture": ExtResource("294_245qu")
}, {
"duration": 1.0,
-"texture": ExtResource("295_6hjd7")
-}, {
-"duration": 1.0,
"texture": ExtResource("296_6xx1k")
}, {
"duration": 1.0,
-"texture": ExtResource("297_2ahco")
-}, {
-"duration": 1.0,
"texture": ExtResource("298_50dpy")
}, {
"duration": 1.0,
-"texture": ExtResource("299_34fky")
-}, {
-"duration": 1.0,
"texture": ExtResource("300_iwb4e")
}, {
"duration": 1.0,
-"texture": ExtResource("301_6nmxi")
-}, {
-"duration": 1.0,
"texture": ExtResource("302_utrda")
}, {
"duration": 1.0,
-"texture": ExtResource("303_w3qpx")
-}, {
-"duration": 1.0,
"texture": ExtResource("304_1vyc7")
}, {
"duration": 1.0,
-"texture": ExtResource("305_ljwfd")
-}, {
-"duration": 1.0,
"texture": ExtResource("306_ckff6")
}, {
"duration": 1.0,
-"texture": ExtResource("307_jw5ap")
-}, {
-"duration": 1.0,
"texture": ExtResource("308_ve1ef")
}],
"loop": true,
@@ -1821,57 +1094,30 @@ animations = [{
"texture": ExtResource("310_uunj5")
}, {
"duration": 1.0,
-"texture": ExtResource("311_15hr6")
-}, {
-"duration": 1.0,
"texture": ExtResource("312_ptmn2")
}, {
"duration": 1.0,
-"texture": ExtResource("313_c7v0a")
-}, {
-"duration": 1.0,
"texture": ExtResource("314_gqt4r")
}, {
"duration": 1.0,
-"texture": ExtResource("315_l264e")
-}, {
-"duration": 1.0,
"texture": ExtResource("316_es1q6")
}, {
"duration": 1.0,
-"texture": ExtResource("317_8oer6")
-}, {
-"duration": 1.0,
"texture": ExtResource("318_pa783")
}, {
"duration": 1.0,
-"texture": ExtResource("319_o2c84")
-}, {
-"duration": 1.0,
"texture": ExtResource("320_xpcbu")
}, {
"duration": 1.0,
-"texture": ExtResource("321_qjopn")
-}, {
-"duration": 1.0,
"texture": ExtResource("322_sjy8g")
}, {
"duration": 1.0,
-"texture": ExtResource("323_ngntu")
-}, {
-"duration": 1.0,
"texture": ExtResource("324_qblpa")
}, {
"duration": 1.0,
-"texture": ExtResource("325_k6al3")
-}, {
-"duration": 1.0,
"texture": ExtResource("326_hyut3")
}, {
"duration": 1.0,
-"texture": ExtResource("327_0m744")
-}, {
-"duration": 1.0,
"texture": ExtResource("328_sch8a")
}],
"loop": true,
@@ -1886,57 +1132,30 @@ animations = [{
"texture": ExtResource("330_hsw7b")
}, {
"duration": 1.0,
-"texture": ExtResource("331_gcahn")
-}, {
-"duration": 1.0,
"texture": ExtResource("332_re6e1")
}, {
"duration": 1.0,
-"texture": ExtResource("333_spiee")
-}, {
-"duration": 1.0,
"texture": ExtResource("334_x3shw")
}, {
"duration": 1.0,
-"texture": ExtResource("335_qh3js")
-}, {
-"duration": 1.0,
"texture": ExtResource("336_mascw")
}, {
"duration": 1.0,
-"texture": ExtResource("337_lwe0m")
-}, {
-"duration": 1.0,
"texture": ExtResource("338_fdcf2")
}, {
"duration": 1.0,
-"texture": ExtResource("339_npar6")
-}, {
-"duration": 1.0,
"texture": ExtResource("340_67swc")
}, {
"duration": 1.0,
-"texture": ExtResource("341_xvb8t")
-}, {
-"duration": 1.0,
"texture": ExtResource("342_u85oh")
}, {
"duration": 1.0,
-"texture": ExtResource("343_ci6ne")
-}, {
-"duration": 1.0,
"texture": ExtResource("344_rfucn")
}, {
"duration": 1.0,
-"texture": ExtResource("345_5l6yn")
-}, {
-"duration": 1.0,
"texture": ExtResource("346_a532r")
}, {
"duration": 1.0,
-"texture": ExtResource("347_21i80")
-}, {
-"duration": 1.0,
"texture": ExtResource("348_ay7cy")
}],
"loop": true,
@@ -1951,57 +1170,30 @@ animations = [{
"texture": ExtResource("350_0nscs")
}, {
"duration": 1.0,
-"texture": ExtResource("351_084cq")
-}, {
-"duration": 1.0,
"texture": ExtResource("352_nq8ef")
}, {
"duration": 1.0,
-"texture": ExtResource("353_a3lgg")
-}, {
-"duration": 1.0,
"texture": ExtResource("354_njctl")
}, {
"duration": 1.0,
-"texture": ExtResource("355_jsh87")
-}, {
-"duration": 1.0,
"texture": ExtResource("356_h2ttx")
}, {
"duration": 1.0,
-"texture": ExtResource("357_s13a4")
-}, {
-"duration": 1.0,
"texture": ExtResource("358_itni2")
}, {
"duration": 1.0,
-"texture": ExtResource("359_lvae6")
-}, {
-"duration": 1.0,
"texture": ExtResource("360_gpc8b")
}, {
"duration": 1.0,
-"texture": ExtResource("361_wcsqp")
-}, {
-"duration": 1.0,
"texture": ExtResource("362_g3tnl")
}, {
"duration": 1.0,
-"texture": ExtResource("363_5pjs1")
-}, {
-"duration": 1.0,
"texture": ExtResource("364_ry8vj")
}, {
"duration": 1.0,
-"texture": ExtResource("365_n4wdc")
-}, {
-"duration": 1.0,
"texture": ExtResource("366_ebc3m")
}, {
"duration": 1.0,
-"texture": ExtResource("367_co6wt")
-}, {
-"duration": 1.0,
"texture": ExtResource("368_k3vs2")
}],
"loop": true,
@@ -2016,57 +1208,30 @@ animations = [{
"texture": ExtResource("350_0nscs")
}, {
"duration": 1.0,
-"texture": ExtResource("351_084cq")
-}, {
-"duration": 1.0,
"texture": ExtResource("352_nq8ef")
}, {
"duration": 1.0,
-"texture": ExtResource("353_a3lgg")
-}, {
-"duration": 1.0,
"texture": ExtResource("354_njctl")
}, {
"duration": 1.0,
-"texture": ExtResource("355_jsh87")
-}, {
-"duration": 1.0,
"texture": ExtResource("356_h2ttx")
}, {
"duration": 1.0,
-"texture": ExtResource("357_s13a4")
-}, {
-"duration": 1.0,
"texture": ExtResource("358_itni2")
}, {
"duration": 1.0,
-"texture": ExtResource("359_lvae6")
-}, {
-"duration": 1.0,
"texture": ExtResource("360_gpc8b")
}, {
"duration": 1.0,
-"texture": ExtResource("361_wcsqp")
-}, {
-"duration": 1.0,
"texture": ExtResource("362_g3tnl")
}, {
"duration": 1.0,
-"texture": ExtResource("363_5pjs1")
-}, {
-"duration": 1.0,
"texture": ExtResource("364_ry8vj")
}, {
"duration": 1.0,
-"texture": ExtResource("365_n4wdc")
-}, {
-"duration": 1.0,
"texture": ExtResource("366_ebc3m")
}, {
"duration": 1.0,
-"texture": ExtResource("367_co6wt")
-}, {
-"duration": 1.0,
"texture": ExtResource("368_k3vs2")
}],
"loop": true,
@@ -2081,57 +1246,30 @@ animations = [{
"texture": ExtResource("370_itiyy")
}, {
"duration": 1.0,
-"texture": ExtResource("371_5xcne")
-}, {
-"duration": 1.0,
"texture": ExtResource("372_d1ikf")
}, {
"duration": 1.0,
-"texture": ExtResource("373_jvfxt")
-}, {
-"duration": 1.0,
"texture": ExtResource("374_gnhre")
}, {
"duration": 1.0,
-"texture": ExtResource("375_cfi8a")
-}, {
-"duration": 1.0,
"texture": ExtResource("376_x786h")
}, {
"duration": 1.0,
-"texture": ExtResource("377_d0qpy")
-}, {
-"duration": 1.0,
"texture": ExtResource("378_dddmw")
}, {
"duration": 1.0,
-"texture": ExtResource("379_2hc63")
-}, {
-"duration": 1.0,
"texture": ExtResource("380_feb73")
}, {
"duration": 1.0,
-"texture": ExtResource("381_kknvl")
-}, {
-"duration": 1.0,
"texture": ExtResource("382_xh53a")
}, {
"duration": 1.0,
-"texture": ExtResource("383_4rhaa")
-}, {
-"duration": 1.0,
"texture": ExtResource("384_w8ka8")
}, {
"duration": 1.0,
-"texture": ExtResource("385_8e62m")
-}, {
-"duration": 1.0,
"texture": ExtResource("386_53jhd")
}, {
"duration": 1.0,
-"texture": ExtResource("387_0ai3x")
-}, {
-"duration": 1.0,
"texture": ExtResource("388_koymh")
}],
"loop": true,
@@ -2146,141 +1284,72 @@ animations = [{
"texture": ExtResource("390_tk8qh")
}, {
"duration": 1.0,
-"texture": ExtResource("391_t0kq4")
-}, {
-"duration": 1.0,
"texture": ExtResource("392_y35a5")
}, {
"duration": 1.0,
-"texture": ExtResource("393_2cb1c")
-}, {
-"duration": 1.0,
"texture": ExtResource("394_cok4e")
}, {
"duration": 1.0,
-"texture": ExtResource("395_wnp4a")
-}, {
-"duration": 1.0,
"texture": ExtResource("396_yoylm")
}, {
"duration": 1.0,
-"texture": ExtResource("397_1asry")
-}, {
-"duration": 1.0,
"texture": ExtResource("398_jj5fl")
}, {
"duration": 1.0,
-"texture": ExtResource("399_5eewt")
-}, {
-"duration": 1.0,
"texture": ExtResource("400_yu75q")
}, {
"duration": 1.0,
-"texture": ExtResource("401_bllxk")
-}, {
-"duration": 1.0,
"texture": ExtResource("402_q0e3h")
}, {
"duration": 1.0,
-"texture": ExtResource("403_cx4n8")
-}, {
-"duration": 1.0,
"texture": ExtResource("404_cvgn6")
}, {
"duration": 1.0,
-"texture": ExtResource("405_fb3rg")
-}, {
-"duration": 1.0,
"texture": ExtResource("406_ahbdu")
}, {
"duration": 1.0,
-"texture": ExtResource("407_xpdqt")
-}, {
-"duration": 1.0,
"texture": ExtResource("408_d82fx")
}, {
"duration": 1.0,
-"texture": ExtResource("409_wus31")
-}, {
-"duration": 1.0,
"texture": ExtResource("410_s7wqi")
}, {
"duration": 1.0,
-"texture": ExtResource("411_yefb7")
-}, {
-"duration": 1.0,
"texture": ExtResource("412_1mefy")
}, {
"duration": 1.0,
-"texture": ExtResource("413_opxon")
-}, {
-"duration": 1.0,
"texture": ExtResource("414_phpds")
}, {
"duration": 1.0,
-"texture": ExtResource("415_egnqi")
-}, {
-"duration": 1.0,
"texture": ExtResource("416_oup86")
}, {
"duration": 1.0,
-"texture": ExtResource("417_454oj")
-}, {
-"duration": 1.0,
"texture": ExtResource("418_dfvyj")
}, {
"duration": 1.0,
-"texture": ExtResource("419_7jpwm")
-}, {
-"duration": 1.0,
"texture": ExtResource("420_reknm")
}, {
"duration": 1.0,
-"texture": ExtResource("421_m5538")
-}, {
-"duration": 1.0,
"texture": ExtResource("422_5iyfg")
}, {
"duration": 1.0,
-"texture": ExtResource("423_76mcj")
-}, {
-"duration": 1.0,
"texture": ExtResource("424_42jwc")
}, {
"duration": 1.0,
-"texture": ExtResource("425_47xdr")
-}, {
-"duration": 1.0,
"texture": ExtResource("426_j7yl5")
}, {
"duration": 1.0,
-"texture": ExtResource("427_7utu1")
-}, {
-"duration": 1.0,
"texture": ExtResource("428_itvbl")
}, {
"duration": 1.0,
-"texture": ExtResource("429_1q8fq")
-}, {
-"duration": 1.0,
"texture": ExtResource("430_5qcny")
}, {
"duration": 1.0,
-"texture": ExtResource("431_1fkuv")
-}, {
-"duration": 1.0,
"texture": ExtResource("432_7gq0s")
}, {
"duration": 1.0,
-"texture": ExtResource("433_u2g1t")
-}, {
-"duration": 1.0,
"texture": ExtResource("434_j611n")
}, {
"duration": 1.0,
-"texture": ExtResource("435_1iael")
-}, {
-"duration": 1.0,
"texture": ExtResource("436_armfy")
}],
"loop": true,
@@ -2295,39 +1364,21 @@ animations = [{
"texture": ExtResource("438_cqepc")
}, {
"duration": 1.0,
-"texture": ExtResource("439_djotj")
-}, {
-"duration": 1.0,
"texture": ExtResource("440_pej03")
}, {
"duration": 1.0,
-"texture": ExtResource("441_8qhd5")
-}, {
-"duration": 1.0,
"texture": ExtResource("442_r5lkt")
}, {
"duration": 1.0,
-"texture": ExtResource("443_3lece")
-}, {
-"duration": 1.0,
"texture": ExtResource("444_ny2p1")
}, {
"duration": 1.0,
-"texture": ExtResource("445_k0f2x")
-}, {
-"duration": 1.0,
"texture": ExtResource("446_vtwy4")
}, {
"duration": 1.0,
-"texture": ExtResource("447_7kv3k")
-}, {
-"duration": 1.0,
"texture": ExtResource("448_4hgl1")
}, {
"duration": 1.0,
-"texture": ExtResource("449_jpjbe")
-}, {
-"duration": 1.0,
"texture": ExtResource("450_0q8vj")
}, {
"duration": 1.0,
@@ -2337,15 +1388,9 @@ animations = [{
"texture": ExtResource("452_fdymn")
}, {
"duration": 1.0,
-"texture": ExtResource("453_t08dx")
-}, {
-"duration": 1.0,
"texture": ExtResource("454_mdjx6")
}, {
"duration": 1.0,
-"texture": ExtResource("455_7okl3")
-}, {
-"duration": 1.0,
"texture": ExtResource("456_ruc3g")
}],
"loop": true,
@@ -2360,57 +1405,30 @@ animations = [{
"texture": ExtResource("458_3ddjs")
}, {
"duration": 1.0,
-"texture": ExtResource("459_x6it6")
-}, {
-"duration": 1.0,
"texture": ExtResource("460_6b7gh")
}, {
"duration": 1.0,
-"texture": ExtResource("461_cvvib")
-}, {
-"duration": 1.0,
"texture": ExtResource("462_6yyoj")
}, {
"duration": 1.0,
-"texture": ExtResource("463_pkshe")
-}, {
-"duration": 1.0,
"texture": ExtResource("464_pbc3r")
}, {
"duration": 1.0,
-"texture": ExtResource("465_lr12j")
-}, {
-"duration": 1.0,
"texture": ExtResource("466_pw1ip")
}, {
"duration": 1.0,
-"texture": ExtResource("467_no4vd")
-}, {
-"duration": 1.0,
"texture": ExtResource("468_08021")
}, {
"duration": 1.0,
-"texture": ExtResource("469_ory5o")
-}, {
-"duration": 1.0,
"texture": ExtResource("470_bmmei")
}, {
"duration": 1.0,
-"texture": ExtResource("471_fi56f")
-}, {
-"duration": 1.0,
"texture": ExtResource("472_wdxsr")
}, {
"duration": 1.0,
-"texture": ExtResource("473_0rglf")
-}, {
-"duration": 1.0,
"texture": ExtResource("474_tu801")
}, {
"duration": 1.0,
-"texture": ExtResource("475_ivtia")
-}, {
-"duration": 1.0,
"texture": ExtResource("476_g4jjd")
}],
"loop": true,
@@ -2425,57 +1443,30 @@ animations = [{
"texture": ExtResource("478_5myrm")
}, {
"duration": 1.0,
-"texture": ExtResource("479_t7bl3")
-}, {
-"duration": 1.0,
"texture": ExtResource("480_wnay3")
}, {
"duration": 1.0,
-"texture": ExtResource("481_1q611")
-}, {
-"duration": 1.0,
"texture": ExtResource("482_wfdif")
}, {
"duration": 1.0,
-"texture": ExtResource("483_x4ny3")
-}, {
-"duration": 1.0,
"texture": ExtResource("484_32thn")
}, {
"duration": 1.0,
-"texture": ExtResource("485_2xd7q")
-}, {
-"duration": 1.0,
"texture": ExtResource("486_kobao")
}, {
"duration": 1.0,
-"texture": ExtResource("487_aqei0")
-}, {
-"duration": 1.0,
"texture": ExtResource("488_ygjj5")
}, {
"duration": 1.0,
-"texture": ExtResource("489_ebusu")
-}, {
-"duration": 1.0,
"texture": ExtResource("490_6603x")
}, {
"duration": 1.0,
-"texture": ExtResource("491_1b1vm")
-}, {
-"duration": 1.0,
"texture": ExtResource("492_0tmn6")
}, {
"duration": 1.0,
-"texture": ExtResource("493_laqyq")
-}, {
-"duration": 1.0,
"texture": ExtResource("494_6j13p")
}, {
"duration": 1.0,
-"texture": ExtResource("495_45oh6")
-}, {
-"duration": 1.0,
"texture": ExtResource("496_svyx0")
}],
"loop": true,
@@ -2490,141 +1481,72 @@ animations = [{
"texture": ExtResource("498_yjt3v")
}, {
"duration": 1.0,
-"texture": ExtResource("499_rpb3x")
-}, {
-"duration": 1.0,
"texture": ExtResource("500_vsiwk")
}, {
"duration": 1.0,
-"texture": ExtResource("501_0xl7o")
-}, {
-"duration": 1.0,
"texture": ExtResource("502_vkc8f")
}, {
"duration": 1.0,
-"texture": ExtResource("503_q88c4")
-}, {
-"duration": 1.0,
"texture": ExtResource("504_i8wsp")
}, {
"duration": 1.0,
-"texture": ExtResource("505_jswdb")
-}, {
-"duration": 1.0,
"texture": ExtResource("506_3gngl")
}, {
"duration": 1.0,
-"texture": ExtResource("507_4jn6c")
-}, {
-"duration": 1.0,
"texture": ExtResource("508_33ok2")
}, {
"duration": 1.0,
-"texture": ExtResource("509_cdril")
-}, {
-"duration": 1.0,
"texture": ExtResource("510_iik0a")
}, {
"duration": 1.0,
-"texture": ExtResource("511_m7t7h")
-}, {
-"duration": 1.0,
"texture": ExtResource("512_ognpj")
}, {
"duration": 1.0,
-"texture": ExtResource("513_b17kc")
-}, {
-"duration": 1.0,
"texture": ExtResource("514_1uw6m")
}, {
"duration": 1.0,
-"texture": ExtResource("515_3n8w1")
-}, {
-"duration": 1.0,
"texture": ExtResource("516_b3h5k")
}, {
"duration": 1.0,
-"texture": ExtResource("517_s5w14")
-}, {
-"duration": 1.0,
"texture": ExtResource("518_jgj7y")
}, {
"duration": 1.0,
-"texture": ExtResource("519_0ww3y")
-}, {
-"duration": 1.0,
"texture": ExtResource("520_g7ywp")
}, {
"duration": 1.0,
-"texture": ExtResource("521_176d2")
-}, {
-"duration": 1.0,
"texture": ExtResource("522_iutes")
}, {
"duration": 1.0,
-"texture": ExtResource("523_mv43l")
-}, {
-"duration": 1.0,
"texture": ExtResource("524_kqwdc")
}, {
"duration": 1.0,
-"texture": ExtResource("525_pjbfp")
-}, {
-"duration": 1.0,
"texture": ExtResource("526_s12im")
}, {
"duration": 1.0,
-"texture": ExtResource("527_m3twh")
-}, {
-"duration": 1.0,
"texture": ExtResource("528_l6jhg")
}, {
"duration": 1.0,
-"texture": ExtResource("529_wfhlo")
-}, {
-"duration": 1.0,
"texture": ExtResource("530_qjcs6")
}, {
"duration": 1.0,
-"texture": ExtResource("531_hawsb")
-}, {
-"duration": 1.0,
"texture": ExtResource("532_2ko7a")
}, {
"duration": 1.0,
-"texture": ExtResource("533_rcmwo")
-}, {
-"duration": 1.0,
"texture": ExtResource("534_tn6m1")
}, {
"duration": 1.0,
-"texture": ExtResource("535_ktdxm")
-}, {
-"duration": 1.0,
"texture": ExtResource("536_k760p")
}, {
"duration": 1.0,
-"texture": ExtResource("537_ghb0e")
-}, {
-"duration": 1.0,
"texture": ExtResource("538_ffkgb")
}, {
"duration": 1.0,
-"texture": ExtResource("539_qkrg3")
-}, {
-"duration": 1.0,
"texture": ExtResource("540_00apb")
}, {
"duration": 1.0,
-"texture": ExtResource("541_ebo8g")
-}, {
-"duration": 1.0,
"texture": ExtResource("542_562cu")
}, {
"duration": 1.0,
-"texture": ExtResource("543_ah3ul")
-}, {
-"duration": 1.0,
"texture": ExtResource("544_203a3")
}],
"loop": true,
@@ -2639,57 +1561,30 @@ animations = [{
"texture": ExtResource("546_i84pd")
}, {
"duration": 1.0,
-"texture": ExtResource("547_r28y4")
-}, {
-"duration": 1.0,
"texture": ExtResource("548_v4uwm")
}, {
"duration": 1.0,
-"texture": ExtResource("549_wlukx")
-}, {
-"duration": 1.0,
"texture": ExtResource("550_y5333")
}, {
"duration": 1.0,
-"texture": ExtResource("551_rjbr8")
-}, {
-"duration": 1.0,
"texture": ExtResource("552_sbj83")
}, {
"duration": 1.0,
-"texture": ExtResource("553_a8tcf")
-}, {
-"duration": 1.0,
"texture": ExtResource("554_7pxht")
}, {
"duration": 1.0,
-"texture": ExtResource("555_ern7x")
-}, {
-"duration": 1.0,
"texture": ExtResource("556_67q52")
}, {
"duration": 1.0,
-"texture": ExtResource("557_mynrt")
-}, {
-"duration": 1.0,
"texture": ExtResource("558_q5tla")
}, {
"duration": 1.0,
-"texture": ExtResource("559_y5a67")
-}, {
-"duration": 1.0,
"texture": ExtResource("560_h0jaa")
}, {
"duration": 1.0,
-"texture": ExtResource("561_7dos6")
-}, {
-"duration": 1.0,
"texture": ExtResource("562_0v72r")
}, {
"duration": 1.0,
-"texture": ExtResource("563_1el36")
-}, {
-"duration": 1.0,
"texture": ExtResource("564_8r86j")
}],
"loop": true,
@@ -2704,57 +1599,30 @@ animations = [{
"texture": ExtResource("566_ei2yw")
}, {
"duration": 1.0,
-"texture": ExtResource("567_xlxen")
-}, {
-"duration": 1.0,
"texture": ExtResource("568_0475c")
}, {
"duration": 1.0,
-"texture": ExtResource("569_a6rtw")
-}, {
-"duration": 1.0,
"texture": ExtResource("570_vwcij")
}, {
"duration": 1.0,
-"texture": ExtResource("571_p5500")
-}, {
-"duration": 1.0,
"texture": ExtResource("572_2r4hx")
}, {
"duration": 1.0,
-"texture": ExtResource("573_26tt0")
-}, {
-"duration": 1.0,
"texture": ExtResource("574_my0kq")
}, {
"duration": 1.0,
-"texture": ExtResource("575_rxqlw")
-}, {
-"duration": 1.0,
"texture": ExtResource("576_pi3ln")
}, {
"duration": 1.0,
-"texture": ExtResource("577_gxxpd")
-}, {
-"duration": 1.0,
"texture": ExtResource("578_x5qma")
}, {
"duration": 1.0,
-"texture": ExtResource("579_1c3al")
-}, {
-"duration": 1.0,
"texture": ExtResource("580_7f7yj")
}, {
"duration": 1.0,
-"texture": ExtResource("581_ehwxa")
-}, {
-"duration": 1.0,
"texture": ExtResource("582_4h62b")
}, {
"duration": 1.0,
-"texture": ExtResource("583_1hmje")
-}, {
-"duration": 1.0,
"texture": ExtResource("584_vv7re")
}],
"loop": true,
@@ -2769,57 +1637,30 @@ animations = [{
"texture": ExtResource("586_pmq4n")
}, {
"duration": 1.0,
-"texture": ExtResource("587_g53rd")
-}, {
-"duration": 1.0,
"texture": ExtResource("588_afimt")
}, {
"duration": 1.0,
-"texture": ExtResource("589_1qnwy")
-}, {
-"duration": 1.0,
"texture": ExtResource("590_cf7hp")
}, {
"duration": 1.0,
-"texture": ExtResource("591_5bi84")
-}, {
-"duration": 1.0,
"texture": ExtResource("592_73i6g")
}, {
"duration": 1.0,
-"texture": ExtResource("593_7u500")
-}, {
-"duration": 1.0,
"texture": ExtResource("594_ex0sg")
}, {
"duration": 1.0,
-"texture": ExtResource("595_cokyk")
-}, {
-"duration": 1.0,
"texture": ExtResource("596_gwcp1")
}, {
"duration": 1.0,
-"texture": ExtResource("597_h1qcq")
-}, {
-"duration": 1.0,
"texture": ExtResource("598_6vr1t")
}, {
"duration": 1.0,
-"texture": ExtResource("599_j3t5q")
-}, {
-"duration": 1.0,
"texture": ExtResource("600_0mubi")
}, {
"duration": 1.0,
-"texture": ExtResource("601_3px4h")
-}, {
-"duration": 1.0,
"texture": ExtResource("602_rf6e2")
}, {
"duration": 1.0,
-"texture": ExtResource("603_vrgxu")
-}, {
-"duration": 1.0,
"texture": ExtResource("604_v3yvu")
}],
"loop": true,
@@ -2834,141 +1675,72 @@ animations = [{
"texture": ExtResource("606_0gmsg")
}, {
"duration": 1.0,
-"texture": ExtResource("607_w55e0")
-}, {
-"duration": 1.0,
"texture": ExtResource("608_m7alr")
}, {
"duration": 1.0,
-"texture": ExtResource("609_ex8wj")
-}, {
-"duration": 1.0,
"texture": ExtResource("610_7eb8p")
}, {
"duration": 1.0,
-"texture": ExtResource("611_g612e")
-}, {
-"duration": 1.0,
"texture": ExtResource("612_kugcx")
}, {
"duration": 1.0,
-"texture": ExtResource("613_5wcc4")
-}, {
-"duration": 1.0,
"texture": ExtResource("614_dnd3n")
}, {
"duration": 1.0,
-"texture": ExtResource("615_jh127")
-}, {
-"duration": 1.0,
"texture": ExtResource("616_exnt1")
}, {
"duration": 1.0,
-"texture": ExtResource("617_l11ns")
-}, {
-"duration": 1.0,
"texture": ExtResource("618_sws0p")
}, {
"duration": 1.0,
-"texture": ExtResource("619_mpliu")
-}, {
-"duration": 1.0,
"texture": ExtResource("620_ikq1g")
}, {
"duration": 1.0,
-"texture": ExtResource("621_2l6la")
-}, {
-"duration": 1.0,
"texture": ExtResource("622_kum8w")
}, {
"duration": 1.0,
-"texture": ExtResource("623_puki8")
-}, {
-"duration": 1.0,
"texture": ExtResource("624_ax3c1")
}, {
"duration": 1.0,
-"texture": ExtResource("625_k7myn")
-}, {
-"duration": 1.0,
"texture": ExtResource("626_ehncs")
}, {
"duration": 1.0,
-"texture": ExtResource("627_gw36k")
-}, {
-"duration": 1.0,
"texture": ExtResource("628_tlvlq")
}, {
"duration": 1.0,
-"texture": ExtResource("629_sh8q0")
-}, {
-"duration": 1.0,
"texture": ExtResource("630_3p107")
}, {
"duration": 1.0,
-"texture": ExtResource("631_s48mk")
-}, {
-"duration": 1.0,
"texture": ExtResource("632_k2em2")
}, {
"duration": 1.0,
-"texture": ExtResource("633_cgisl")
-}, {
-"duration": 1.0,
"texture": ExtResource("634_8gbgf")
}, {
"duration": 1.0,
-"texture": ExtResource("635_af50v")
-}, {
-"duration": 1.0,
"texture": ExtResource("636_0o0q8")
}, {
"duration": 1.0,
-"texture": ExtResource("637_gcqp8")
-}, {
-"duration": 1.0,
"texture": ExtResource("638_x8puo")
}, {
"duration": 1.0,
-"texture": ExtResource("639_2kr0c")
-}, {
-"duration": 1.0,
"texture": ExtResource("640_gloiw")
}, {
"duration": 1.0,
-"texture": ExtResource("641_gb3ia")
-}, {
-"duration": 1.0,
"texture": ExtResource("642_co1v5")
}, {
"duration": 1.0,
-"texture": ExtResource("643_u4032")
-}, {
-"duration": 1.0,
"texture": ExtResource("644_ygw38")
}, {
"duration": 1.0,
-"texture": ExtResource("645_dufr2")
-}, {
-"duration": 1.0,
"texture": ExtResource("646_k778w")
}, {
"duration": 1.0,
-"texture": ExtResource("647_8d5nc")
-}, {
-"duration": 1.0,
"texture": ExtResource("648_ylj23")
}, {
"duration": 1.0,
-"texture": ExtResource("649_y5gfu")
-}, {
-"duration": 1.0,
"texture": ExtResource("650_2rjx7")
}, {
"duration": 1.0,
-"texture": ExtResource("651_hi44u")
-}, {
-"duration": 1.0,
"texture": ExtResource("652_dyko2")
}],
"loop": true,
@@ -2983,57 +1755,30 @@ animations = [{
"texture": ExtResource("654_1th1q")
}, {
"duration": 1.0,
-"texture": ExtResource("655_kelvf")
-}, {
-"duration": 1.0,
"texture": ExtResource("656_c5w6d")
}, {
"duration": 1.0,
-"texture": ExtResource("657_i3dtq")
-}, {
-"duration": 1.0,
"texture": ExtResource("658_ipgfv")
}, {
"duration": 1.0,
-"texture": ExtResource("659_544fe")
-}, {
-"duration": 1.0,
"texture": ExtResource("660_mi1bi")
}, {
"duration": 1.0,
-"texture": ExtResource("661_m1gnf")
-}, {
-"duration": 1.0,
"texture": ExtResource("662_8pix2")
}, {
"duration": 1.0,
-"texture": ExtResource("663_d8kbx")
-}, {
-"duration": 1.0,
"texture": ExtResource("664_o457m")
}, {
"duration": 1.0,
-"texture": ExtResource("665_aui43")
-}, {
-"duration": 1.0,
"texture": ExtResource("666_dv0yi")
}, {
"duration": 1.0,
-"texture": ExtResource("667_a81gx")
-}, {
-"duration": 1.0,
"texture": ExtResource("668_q4n42")
}, {
"duration": 1.0,
-"texture": ExtResource("669_ri708")
-}, {
-"duration": 1.0,
"texture": ExtResource("670_3cjbo")
}, {
"duration": 1.0,
-"texture": ExtResource("671_32duw")
-}, {
-"duration": 1.0,
"texture": ExtResource("672_oqfoc")
}],
"loop": true,
@@ -3048,57 +1793,30 @@ animations = [{
"texture": ExtResource("674_mpxqh")
}, {
"duration": 1.0,
-"texture": ExtResource("675_7rldl")
-}, {
-"duration": 1.0,
"texture": ExtResource("676_sotra")
}, {
"duration": 1.0,
-"texture": ExtResource("677_ph4yb")
-}, {
-"duration": 1.0,
"texture": ExtResource("678_ilgf3")
}, {
"duration": 1.0,
-"texture": ExtResource("679_cohpj")
-}, {
-"duration": 1.0,
"texture": ExtResource("680_y1eex")
}, {
"duration": 1.0,
-"texture": ExtResource("681_w54y2")
-}, {
-"duration": 1.0,
"texture": ExtResource("682_mqity")
}, {
"duration": 1.0,
-"texture": ExtResource("683_kgkc3")
-}, {
-"duration": 1.0,
"texture": ExtResource("684_wmoa1")
}, {
"duration": 1.0,
-"texture": ExtResource("685_r72u6")
-}, {
-"duration": 1.0,
"texture": ExtResource("686_jp80r")
}, {
"duration": 1.0,
-"texture": ExtResource("687_7ldbi")
-}, {
-"duration": 1.0,
"texture": ExtResource("688_x7pqr")
}, {
"duration": 1.0,
-"texture": ExtResource("689_qlvst")
-}, {
-"duration": 1.0,
"texture": ExtResource("690_5c5t0")
}, {
"duration": 1.0,
-"texture": ExtResource("691_43hn6")
-}, {
-"duration": 1.0,
"texture": ExtResource("692_5ip34")
}],
"loop": true,
@@ -3160,141 +1878,72 @@ animations = [{
"texture": ExtResource("708_yk13s")
}, {
"duration": 1.0,
-"texture": ExtResource("709_yi4ii")
-}, {
-"duration": 1.0,
"texture": ExtResource("710_f70pr")
}, {
"duration": 1.0,
-"texture": ExtResource("711_japqf")
-}, {
-"duration": 1.0,
"texture": ExtResource("712_pe5na")
}, {
"duration": 1.0,
-"texture": ExtResource("713_eelxk")
-}, {
-"duration": 1.0,
"texture": ExtResource("714_cslcr")
}, {
"duration": 1.0,
-"texture": ExtResource("715_sp0mr")
-}, {
-"duration": 1.0,
"texture": ExtResource("716_r5qrg")
}, {
"duration": 1.0,
-"texture": ExtResource("717_kux6w")
-}, {
-"duration": 1.0,
"texture": ExtResource("718_r28gn")
}, {
"duration": 1.0,
-"texture": ExtResource("719_tdrjd")
-}, {
-"duration": 1.0,
"texture": ExtResource("720_57f4q")
}, {
"duration": 1.0,
-"texture": ExtResource("721_pg0yo")
-}, {
-"duration": 1.0,
"texture": ExtResource("722_1jjes")
}, {
"duration": 1.0,
-"texture": ExtResource("723_85raq")
-}, {
-"duration": 1.0,
"texture": ExtResource("724_g6g5u")
}, {
"duration": 1.0,
-"texture": ExtResource("725_c6woj")
-}, {
-"duration": 1.0,
"texture": ExtResource("726_0l6t0")
}, {
"duration": 1.0,
-"texture": ExtResource("727_tm5vf")
-}, {
-"duration": 1.0,
"texture": ExtResource("728_o8uff")
}, {
"duration": 1.0,
-"texture": ExtResource("729_uhvkp")
-}, {
-"duration": 1.0,
"texture": ExtResource("730_wwtbo")
}, {
"duration": 1.0,
-"texture": ExtResource("731_eeefe")
-}, {
-"duration": 1.0,
"texture": ExtResource("732_n5gfh")
}, {
"duration": 1.0,
-"texture": ExtResource("733_uu8wk")
-}, {
-"duration": 1.0,
"texture": ExtResource("734_8ajxp")
}, {
"duration": 1.0,
-"texture": ExtResource("735_ymjju")
-}, {
-"duration": 1.0,
"texture": ExtResource("736_xhy85")
}, {
"duration": 1.0,
-"texture": ExtResource("737_smkc4")
-}, {
-"duration": 1.0,
"texture": ExtResource("738_5a14m")
}, {
"duration": 1.0,
-"texture": ExtResource("739_6prg8")
-}, {
-"duration": 1.0,
"texture": ExtResource("740_05soa")
}, {
"duration": 1.0,
-"texture": ExtResource("741_ae4be")
-}, {
-"duration": 1.0,
"texture": ExtResource("742_oupgc")
}, {
"duration": 1.0,
-"texture": ExtResource("743_k6jb1")
-}, {
-"duration": 1.0,
"texture": ExtResource("744_0de8g")
}, {
"duration": 1.0,
-"texture": ExtResource("745_6gbkr")
-}, {
-"duration": 1.0,
"texture": ExtResource("746_xpcp8")
}, {
"duration": 1.0,
-"texture": ExtResource("747_mqma7")
-}, {
-"duration": 1.0,
"texture": ExtResource("748_8au1c")
}, {
"duration": 1.0,
-"texture": ExtResource("749_pqp20")
-}, {
-"duration": 1.0,
"texture": ExtResource("750_pa1th")
}, {
"duration": 1.0,
-"texture": ExtResource("751_j5fds")
-}, {
-"duration": 1.0,
"texture": ExtResource("752_a20ik")
}, {
"duration": 1.0,
-"texture": ExtResource("753_kyl1b")
-}, {
-"duration": 1.0,
"texture": ExtResource("754_kcgp3")
}],
"loop": true,
@@ -3309,57 +1958,30 @@ animations = [{
"texture": ExtResource("756_w17j5")
}, {
"duration": 1.0,
-"texture": ExtResource("757_ms0qb")
-}, {
-"duration": 1.0,
"texture": ExtResource("758_bobpp")
}, {
"duration": 1.0,
-"texture": ExtResource("759_dy6pl")
-}, {
-"duration": 1.0,
"texture": ExtResource("760_hjc06")
}, {
"duration": 1.0,
-"texture": ExtResource("761_yo551")
-}, {
-"duration": 1.0,
"texture": ExtResource("762_cqmns")
}, {
"duration": 1.0,
-"texture": ExtResource("763_kqdld")
-}, {
-"duration": 1.0,
"texture": ExtResource("764_6ag32")
}, {
"duration": 1.0,
-"texture": ExtResource("765_5gc0j")
-}, {
-"duration": 1.0,
"texture": ExtResource("766_sdkoa")
}, {
"duration": 1.0,
-"texture": ExtResource("767_j4c88")
-}, {
-"duration": 1.0,
"texture": ExtResource("768_yxmsl")
}, {
"duration": 1.0,
-"texture": ExtResource("769_v5kb6")
-}, {
-"duration": 1.0,
"texture": ExtResource("770_hc1bq")
}, {
"duration": 1.0,
-"texture": ExtResource("771_emlcs")
-}, {
-"duration": 1.0,
"texture": ExtResource("772_kapjc")
}, {
"duration": 1.0,
-"texture": ExtResource("773_dm2lr")
-}, {
-"duration": 1.0,
"texture": ExtResource("774_w1ahn")
}],
"loop": true,
@@ -3374,57 +1996,30 @@ animations = [{
"texture": ExtResource("776_6o0aq")
}, {
"duration": 1.0,
-"texture": ExtResource("777_gtunp")
-}, {
-"duration": 1.0,
"texture": ExtResource("778_vh3bl")
}, {
"duration": 1.0,
-"texture": ExtResource("779_1bxhc")
-}, {
-"duration": 1.0,
"texture": ExtResource("780_48qrn")
}, {
"duration": 1.0,
-"texture": ExtResource("781_pjm01")
-}, {
-"duration": 1.0,
"texture": ExtResource("782_wvq0m")
}, {
"duration": 1.0,
-"texture": ExtResource("783_g30x4")
-}, {
-"duration": 1.0,
"texture": ExtResource("784_sxoog")
}, {
"duration": 1.0,
-"texture": ExtResource("785_0gwlh")
-}, {
-"duration": 1.0,
"texture": ExtResource("786_5xl80")
}, {
"duration": 1.0,
-"texture": ExtResource("787_ausc1")
-}, {
-"duration": 1.0,
"texture": ExtResource("788_gihw5")
}, {
"duration": 1.0,
-"texture": ExtResource("789_7mbns")
-}, {
-"duration": 1.0,
"texture": ExtResource("790_7uqx2")
}, {
"duration": 1.0,
-"texture": ExtResource("791_m2fac")
-}, {
-"duration": 1.0,
"texture": ExtResource("792_uxh10")
}, {
"duration": 1.0,
-"texture": ExtResource("793_jtwhk")
-}, {
-"duration": 1.0,
"texture": ExtResource("794_lp5f3")
}],
"loop": true,
@@ -3439,62 +2034,35 @@ animations = [{
"texture": ExtResource("796_cl6x5")
}, {
"duration": 1.0,
-"texture": ExtResource("797_ngd12")
-}, {
-"duration": 1.0,
"texture": ExtResource("798_26msc")
}, {
"duration": 1.0,
-"texture": ExtResource("799_grxnc")
-}, {
-"duration": 1.0,
"texture": ExtResource("800_frlj0")
}, {
"duration": 1.0,
-"texture": ExtResource("801_2e27j")
-}, {
-"duration": 1.0,
"texture": ExtResource("802_r3gkv")
}, {
"duration": 1.0,
-"texture": ExtResource("803_paxjf")
-}, {
-"duration": 1.0,
"texture": ExtResource("804_g2mlb")
}, {
"duration": 1.0,
-"texture": ExtResource("805_jia7e")
-}, {
-"duration": 1.0,
"texture": ExtResource("806_k1kh0")
}, {
"duration": 1.0,
-"texture": ExtResource("807_awkuw")
-}, {
-"duration": 1.0,
"texture": ExtResource("808_ud6ks")
}, {
"duration": 1.0,
-"texture": ExtResource("809_3g83n")
-}, {
-"duration": 1.0,
"texture": ExtResource("810_224qh")
}, {
"duration": 1.0,
-"texture": ExtResource("811_phn7o")
-}, {
-"duration": 1.0,
"texture": ExtResource("812_sf8kv")
}, {
"duration": 1.0,
-"texture": ExtResource("813_ekwc5")
-}, {
-"duration": 1.0,
"texture": ExtResource("814_3uq4g")
}],
"loop": true,
"name": &"side walking wateringcan",
-"speed": 15.0
+"speed": 11.0
}]
[node name="Player2d" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d")]
@@ -3503,13 +2071,14 @@ script = ExtResource("1_yd5ep")
_farmingControls = NodePath("FarmingControls")
_player2d = NodePath("CharacterBody2D")
-[node name="CharacterBody2D" type="CharacterBody2D" parent="." node_paths=PackedStringArray("_sprite") groups=["PlantGrowing"]]
+[node name="CharacterBody2D" type="CharacterBody2D" parent="." node_paths=PackedStringArray("_sprite", "_wateringParticles") groups=["PlantGrowing"]]
position = Vector2(0, 374)
collision_layer = 4
collision_mask = 3
script = ExtResource("2_1vqmv")
_speed = 1500.0
_sprite = NodePath("visuals/Animated Sprites")
+_wateringParticles = NodePath("../pouring water vfx")
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
z_index = 1
@@ -3524,8 +2093,7 @@ position = Vector2(0, -374)
[node name="Animated Sprites" type="AnimatedSprite2D" parent="CharacterBody2D/visuals"]
position = Vector2(0, 450)
sprite_frames = SubResource("SpriteFrames_4yiyq")
-animation = &"diagonal farming"
-frame_progress = 0.503028
+animation = &"front walking backpack"
offset = Vector2(0, -450)
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
@@ -3558,17 +2126,83 @@ region_rect = Rect2(-1, 1128, 417, 299)
position = Vector2(26, -469)
zoom = Vector2(0.3, 0.3)
-[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_camera")]
+[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_stages")]
+position = Vector2(0, -929)
+scale = Vector2(2, 2)
+script = ExtResource("467_j4m0f")
+_stages = [NodePath("6"), NodePath("5"), NodePath("4"), NodePath("3"), NodePath("2"), NodePath("1")]
+
+[node name="1" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(1, 0)
+scale = Vector2(1.8, 1.8)
+texture = ExtResource("468_f6xmn")
+
+[node name="2" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(2, 2)
+scale = Vector2(1.6, 1.6)
+texture = ExtResource("469_nxglm")
+
+[node name="3" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(3, 5)
+scale = Vector2(1.4, 1.4)
+texture = ExtResource("470_8fyd7")
+
+[node name="4" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(3, 7)
+scale = Vector2(1.2, 1.2)
+texture = ExtResource("471_dnm27")
+
+[node name="5" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(2, 7)
+scale = Vector2(1.1, 1.1)
+texture = ExtResource("472_e04c3")
+
+[node name="6" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
+visible = false
+position = Vector2(3, 12)
+texture = ExtResource("473_g32y8")
+
+[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_camera", "_wateringParticles")]
script = ExtResource("817_6nrw3")
_fieldPrefab = ExtResource("818_16w6h")
_movingPlayer = NodePath("../CharacterBody2D")
_camera = NodePath("../CharacterBody2D/Camera2D")
+_wateringParticles = NodePath("../pouring water vfx")
+_wateringCanParticlesVerticalOffset = -100.0
-[node name="Node2D" type="Node2D" parent="."]
+[node name="dialogic toggle" type="Node2D" parent="."]
position = Vector2(0, 374)
script = ExtResource("819_4na52")
+[node name="pouring water vfx" type="CPUParticles2D" parent="."]
+position = Vector2(-652, -599)
+rotation = -0.333807
+emitting = false
+amount = 20
+texture = ExtResource("473_g32y8")
+lifetime = 0.5
+randomness = 1.0
+local_coords = true
+draw_order = 1
+emission_shape = 2
+emission_sphere_radius = 128.0
+linear_accel_min = 44.07
+linear_accel_max = 78.81
+scale_amount_min = 0.4
+scale_amount_max = 0.8
+color = Color(0.400601, 0.62444, 0.791217, 1)
+hue_variation_max = 0.4
+
+[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
+[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
+[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D" method="PlayWateringAnimation"]
-[connection signal="timelineEnded" from="Node2D" to="." method="EnableMovement"]
-[connection signal="timelineStarted" from="Node2D" to="." method="DisableMovement"]
+[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"]
+[connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"]
+[connection signal="timelineStarted" from="dialogic toggle" to="." method="DisableMovement"]
diff --git a/prefabs/characters/Yeli.tscn b/prefabs/characters/Yeli.tscn
index f164e7a..1bb8b72 100644
--- a/prefabs/characters/Yeli.tscn
+++ b/prefabs/characters/Yeli.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=47 format=3 uid="uid://dfvgp1my5rydh"]
+[gd_scene load_steps=48 format=3 uid="uid://dfvgp1my5rydh"]
[ext_resource type="Texture2D" uid="uid://c34012j5ukiuf" path="res://art/animation/Yeli2D/F01-Yeli_Idle/0001.png" id="1_03m0b"]
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="1_at1n1"]
@@ -182,10 +182,13 @@ animations = [{
"speed": 15.0
}]
+[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_aqu1t"]
+radius = 202.0
+height = 404.0
+
[node name="Yeli" type="Node2D"]
z_index = 1
y_sort_enabled = true
-position = Vector2(0, 322)
script = ExtResource("1_at1n1")
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")]
@@ -219,6 +222,12 @@ offset = Vector2(0, -450)
[node name="DialogicToggle" type="Node2D" parent="."]
script = ExtResource("44_aqu1t")
+[node name="AnimatableBody2D" type="AnimatableBody2D" parent="."]
+position = Vector2(0, -172)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatableBody2D"]
+shape = SubResource("CapsuleShape2D_aqu1t")
+
[connection signal="Interacted" from="InteractionArea" to="TalkingControl" method="ToggleTalking"]
[connection signal="Talking" from="TalkingControl" to="." method="open"]
[connection signal="timelineEnded" from="DialogicToggle" to="TalkingControl" method="ToggleTalking"]
diff --git a/prefabs/interactions/generic_item_on_ground_2d.tscn b/prefabs/interactions/generic_item_on_ground_2d.tscn
index 249441c..2579b11 100644
--- a/prefabs/interactions/generic_item_on_ground_2d.tscn
+++ b/prefabs/interactions/generic_item_on_ground_2d.tscn
@@ -49,7 +49,6 @@ autowrap_mode = 3
shape = SubResource("CircleShape2D_tlhp6")
[node name="Label" parent="InteractionArea2" index="1"]
-visible = true
z_index = 5
offset_left = -68.0
offset_top = -111.0
diff --git a/project.godot b/project.godot
index 9f11baa..ec9601f 100644
--- a/project.godot
+++ b/project.godot
@@ -13,14 +13,20 @@ config_version=5
config/name="Babushka"
run/main_scene="uid://bopv10dqm1knc"
config/features=PackedStringArray("4.4", "C#", "Forward Plus")
+run/max_fps=120
boot_splash/fullsize=false
boot_splash/image="uid://utam4axkvutc"
config/icon="uid://b2smanpdo1y5e"
+[audio]
+
+buses/default_bus_layout="uid://b6dwkmkyb0axk"
+
[autoload]
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
+Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
[dialogic]
@@ -93,7 +99,7 @@ movie_writer/movie_file="/home/kaddi/Documents/Repos/Godot/Babushka/_clips/clip.
[editor_plugins]
-enabled=PackedStringArray("res://addons/anthonyec.camera_preview/plugin.cfg", "res://addons/dialogic/plugin.cfg")
+enabled=PackedStringArray("res://addons/SignalVisualizer/plugin.cfg", "res://addons/anthonyec.camera_preview/plugin.cfg", "res://addons/dialogic/plugin.cfg")
[file_customization]
@@ -182,6 +188,11 @@ item={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
+ui_inventory_close={
+"deadzone": 0.2,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}
[internationalization]
diff --git a/scenes/Babushka_scene_farm_outside_2d.tscn b/scenes/Babushka_scene_farm_outside_2d.tscn
index 2588aea..bfeb3e0 100644
--- a/scenes/Babushka_scene_farm_outside_2d.tscn
+++ b/scenes/Babushka_scene_farm_outside_2d.tscn
@@ -1,8 +1,8 @@
-[gd_scene load_steps=69 format=3 uid="uid://gigb28qk8t12"]
+[gd_scene load_steps=79 format=3 uid="uid://gigb28qk8t12"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="1_7wfwe"]
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
-[ext_resource type="Texture2D" uid="uid://c7f3t65jskd6v" path="res://art/mockups/house_prototype.png" id="2_lhtpe"]
+[ext_resource type="PackedScene" uid="uid://bm21nqepnwaik" path="res://scenes/IndoorTest2.tscn" id="2_taxvr"]
[ext_resource type="Texture2D" uid="uid://be1nofeo7an0" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud2.png" id="3_r34wi"]
[ext_resource type="Texture2D" uid="uid://o6vnf7n7qp8o" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud6.png" id="4_xh22q"]
[ext_resource type="Texture2D" uid="uid://cc0o84q5u437k" path="res://art/mockups/Kenney_Backgrounds/PNG/cloud7.png" id="5_k3wpj"]
@@ -37,12 +37,19 @@
[ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/scythe.tres" id="29_wtdui"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_2nee2"]
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"]
-[ext_resource type="PackedScene" uid="uid://bm21nqepnwaik" path="res://scenes/IndoorTest2.tscn" id="35_taxvr"]
+[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
+[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="39_di1ed"]
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="40_ceriq"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="40_w3jkj"]
+[ext_resource type="Script" uid="uid://clxb3n668oud3" path="res://scripts/CSharp/Common/Audio/AudioDebugger.cs" id="42_1nkjm"]
+[ext_resource type="AudioStream" uid="uid://vcftvrpi6c7k" path="res://audio/sfx/Farming/SFX_Harke_03_Solo.wav" id="42_wtw65"]
+[ext_resource type="AudioStream" uid="uid://bxh5m04vdo0sr" path="res://audio/sfx/Farming/SFX_Harke_04_Solo.wav" id="43_1nkjm"]
+[ext_resource type="AudioStream" uid="uid://dapsknn486aee" path="res://audio/sfx/Farming/SFX_WateringPlants_01.wav" id="45_lbk0f"]
+[ext_resource type="AudioStream" uid="uid://dnyne8wov50so" path="res://audio/sfx/Farming/SFX_WateringPlants_02.wav" id="46_2rjny"]
+[ext_resource type="AudioStream" uid="uid://c43a6x43jkikl" path="res://audio/sfx/Farming/SFX_GettingWater_Well_01_Reverb.wav" id="49_d77e7"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
shader = ExtResource("13_7p0hq")
@@ -77,9 +84,13 @@ shader_parameter/noise = SubResource("NoiseTexture2D_d53cn")
[sub_resource type="Gradient" id="Gradient_eryax"]
offsets = PackedFloat32Array(0, 0.743902, 1)
-colors = PackedColorArray(0.315758, 0.221537, 0.271709, 1, 0.443137, 0.4, 0.360784, 1, 0.686275, 0.556863, 0.47451, 1)
+colors = PackedColorArray(0.22, 0.1078, 0.16764, 1, 0.443137, 0.4, 0.360784, 1, 0.6, 0.4853, 0.414, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wgikv"]
+frequency = 0.0296
+fractal_octaves = 7
+fractal_gain = 0.795
+domain_warp_enabled = true
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_e5alv"]
seamless = true
@@ -113,14 +124,14 @@ shader_parameter/hue_shift = 0.0
shader_parameter/saturation_mult = 1.0
shader_parameter/value_mult = 1.0
shader_parameter/brightness_add = 0.0
-shader_parameter/contrast_mult = 1.183
+shader_parameter/contrast_mult = 1.128
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0sfl7"]
-size = Vector2(728, 368)
+size = Vector2(1041, 368)
[sub_resource type="CircleShape2D" id="CircleShape2D_p6n74"]
resource_local_to_scene = true
-radius = 600.0
+radius = 371.058
[sub_resource type="CircleShape2D" id="CircleShape2D_2nee2"]
resource_local_to_scene = true
@@ -131,12 +142,18 @@ resource_local_to_scene = true
radius = 300.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lhtpe"]
-shader = ExtResource("13_7p0hq")
-shader_parameter/hue_shift = 0.0
-shader_parameter/saturation_mult = 1.0
-shader_parameter/value_mult = 1.068
-shader_parameter/brightness_add = 0.0
-shader_parameter/contrast_mult = 0.913
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_bcdgk"]
+shader = ExtResource("37_taxvr")
+shader_parameter/speed = 1.0
+shader_parameter/minStrength = 0.05
+shader_parameter/maxStrength = 0.154
+shader_parameter/strengthScale = 100.0
+shader_parameter/interval = 3.5
+shader_parameter/detail = 2.095
+shader_parameter/distortion = 1.0
+shader_parameter/heightOffset = 0.0
+shader_parameter/offset = 1.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2nee2"]
size = Vector2(5905, 1176)
@@ -147,18 +164,28 @@ size = Vector2(7340, 1192)
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ceriq"]
loop = false
-stream_count = 2
+stream_count = 1
stream_0 = ExtResource("37_di1ed")
-stream_1 = ExtResource("37_8ey8m")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ceriq"]
streams_count = 2
+stream_0/stream = ExtResource("42_wtw65")
+stream_1/stream = ExtResource("43_1nkjm")
+
+[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_p4qqi"]
+streams_count = 2
+stream_0/stream = ExtResource("45_lbk0f")
+stream_1/stream = ExtResource("46_2rjny")
+
+[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_618my"]
+streams_count = 3
stream_0/stream = ExtResource("39_di1ed")
stream_1/stream = ExtResource("40_ceriq")
+stream_2/stream = ExtResource("49_d77e7")
[node name="BabushkaSceneFarmOutside2d" type="Node2D"]
script = ExtResource("34_e5b7x")
-_sceneToLoad = ExtResource("35_taxvr")
+_sceneToLoad = ExtResource("2_taxvr")
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
@@ -226,7 +253,7 @@ offset = Vector2(0, -100)
[node name="background layer 3" type="ParallaxLayer" parent="ParallaxBackground"]
position = Vector2(18, -713)
motion_scale = Vector2(0.25, 0.25)
-motion_mirroring = Vector2(7200, 0)
+motion_mirroring = Vector2(5424, 0)
[node name="Kenney assets" type="Node2D" parent="ParallaxBackground/background layer 3"]
position = Vector2(0, -39)
@@ -323,13 +350,13 @@ texture = ExtResource("12_6b2nr")
[node name="JelenaMockupBg01" type="Sprite2D" parent="ParallaxBackground/background layer 3"]
visible = false
position = Vector2(3552, 1296)
-scale = Vector2(1.7404, 1.77563)
+scale = Vector2(3, 3.062)
texture = ExtResource("11_vbdb2")
[node name="background layer 4" type="ParallaxLayer" parent="ParallaxBackground"]
position = Vector2(0, -82)
motion_scale = Vector2(0.5, 0.5)
-motion_mirroring = Vector2(10500, 0)
+motion_mirroring = Vector2(10480, 0)
[node name="Kenney Assets" type="Node2D" parent="ParallaxBackground/background layer 4"]
visible = false
@@ -447,13 +474,13 @@ texture = ExtResource("14_d53cn")
[node name="JelenaMockupBg02" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
material = SubResource("ShaderMaterial_wtdui")
position = Vector2(2668, 726)
-scale = Vector2(1.3, 1.3)
+scale = Vector2(2.75, 2.75)
texture = ExtResource("13_0qu0h")
[node name="JelenaMockupBg03" type="Sprite2D" parent="ParallaxBackground/background layer 4"]
material = SubResource("ShaderMaterial_wtdui")
-position = Vector2(7965, 728)
-scale = Vector2(1.3, 1.3)
+position = Vector2(7923, 727)
+scale = Vector2(2.75, 2.75)
texture = ExtResource("13_0qu0h")
[node name="back back trees layer" type="ParallaxLayer" parent="ParallaxBackground"]
@@ -579,7 +606,7 @@ position = Vector2(1791.5, 1448)
texture = ExtResource("14_mrwmr")
flip_h = true
region_enabled = true
-region_rect = Rect2(149, 15, 464, 478)
+region_rect = Rect2(130, 0, 201, 278)
[node name="bush3" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
material = SubResource("ShaderMaterial_8ey8m")
@@ -587,7 +614,7 @@ position = Vector2(1255.5, 1392)
texture = ExtResource("14_mrwmr")
flip_h = true
region_enabled = true
-region_rect = Rect2(-6, 996, 467, 429)
+region_rect = Rect2(0, 604, 248, 228)
[node name="bush4" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
material = SubResource("ShaderMaterial_8ey8m")
@@ -595,14 +622,14 @@ position = Vector2(5471.5, 1432)
texture = ExtResource("14_mrwmr")
flip_h = true
region_enabled = true
-region_rect = Rect2(2319, 1079, 353, 327)
+region_rect = Rect2(1837, 651, 139, 180)
[node name="bush5" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
material = SubResource("ShaderMaterial_8ey8m")
position = Vector2(5007.5, 1312)
texture = ExtResource("14_mrwmr")
region_enabled = true
-region_rect = Rect2(2489, 707, 269, 224)
+region_rect = Rect2(1368, 673, 186, 136)
[node name="bush6" type="Sprite2D" parent="ParallaxBackground/back back trees layer"]
material = SubResource("ShaderMaterial_8ey8m")
@@ -611,7 +638,7 @@ scale = Vector2(0.575, 0.575)
texture = ExtResource("14_mrwmr")
flip_h = true
region_enabled = true
-region_rect = Rect2(605, 877, 597, 537)
+region_rect = Rect2(358, 523, 345, 289)
[node name="back tree bois layer 5" type="ParallaxLayer" parent="ParallaxBackground"]
visible = false
@@ -832,19 +859,21 @@ material = SubResource("ShaderMaterial_2vojv")
position = Vector2(7237, 3307)
texture = ExtResource("21_ualyd")
offset = Vector2(0, -800)
+region_enabled = true
+region_rect = Rect2(0, 0, 1504, 1686)
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Brünnen"]
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="YSorted/Brünnen/StaticBody2D"]
-position = Vector2(116, -224)
+position = Vector2(145.5, -224)
shape = SubResource("RectangleShape2D_0sfl7")
[node name="InteractionArea" parent="YSorted/Brünnen" instance=ExtResource("27_klb81")]
_id = 1
[node name="CollisionShape3D" parent="YSorted/Brünnen/InteractionArea/Area2D" index="0"]
-position = Vector2(80, -368)
+position = Vector2(146, -130)
shape = SubResource("CircleShape2D_p6n74")
[node name="HoeGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
@@ -863,6 +892,9 @@ position = Vector2(8192, 3507)
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
_blueprint = ExtResource("28_ipqaa")
+[node name="InteractionArea2" parent="YSorted/CanGenericPickup" index="3"]
+position = Vector2(0, -159)
+
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/InteractionArea2/Area2D" index="0"]
shape = SubResource("CircleShape2D_ipqaa")
@@ -902,24 +934,60 @@ position = Vector2(-60, 122)
position = Vector2(-8213, 84)
[node name="House Mockup" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
+y_sort_enabled = true
material = SubResource("ShaderMaterial_lhtpe")
-position = Vector2(5280, 1600)
-scale = Vector2(5, 5)
-texture = ExtResource("2_lhtpe")
+position = Vector2(5986, 1718.25)
+scale = Vector2(4.5, 3.725)
+texture = ExtResource("36_e5b7x")
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Farm visuals/Static/House Mockup"]
collision_layer = 2
collision_mask = 6
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="YSorted/Farm visuals/Static/House Mockup/StaticBody2D"]
-position = Vector2(-257.6, 236.8)
-polygon = PackedVector2Array(232, -4.80005, 0, 0, 0, -96, -262.4, -97.6, -265.6, -260.8, -310.4, -260.8, -235.2, -321.6, -124.8, -323.2, -57.6, -424, 84.8, -436.8, 118.4, -452.8, 136, -436.8, 726.4, -452.8, 817.6, -299.2, 785.6, -291.2, 785.6, -108.8, 241.6, -94.4)
-disabled = true
+position = Vector2(-252.56, 231.32)
+polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.123, -104.329, -55.2797, -154.107, -73.5347, -160.107, -380.38, -175.44, -400.783, -63.44, -512.461, 97.8934, -541.991, 261.671, -599.172, 374.782, -526.421, 502.338, -526.421, 637.893, -396.488, 598.56, -360.783, 596.338, -58.2327, 528.782, -58.2327, 501.449, 45.9283)
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")]
-position = Vector2(7178, 1965)
+position = Vector2(5839, 2349)
scale = Vector2(2.425, 2.425)
+[node name="bush" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
+material = SubResource("ShaderMaterial_bcdgk")
+position = Vector2(4313, 2633)
+scale = Vector2(2, 2)
+texture = ExtResource("14_mrwmr")
+offset = Vector2(0, -237)
+region_enabled = true
+region_rect = Rect2(130, 0, 201, 278)
+
+[node name="bush2" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
+material = SubResource("ShaderMaterial_bcdgk")
+position = Vector2(4590, 2971)
+scale = Vector2(2, 2)
+texture = ExtResource("14_mrwmr")
+offset = Vector2(0, -196)
+region_enabled = true
+region_rect = Rect2(1699, 76, 280, 230)
+
+[node name="bush4" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
+material = SubResource("ShaderMaterial_bcdgk")
+position = Vector2(7300, 2912)
+scale = Vector2(2, 2)
+texture = ExtResource("14_mrwmr")
+offset = Vector2(0, -172)
+region_enabled = true
+region_rect = Rect2(0, 604, 248, 228)
+
+[node name="bush3" type="Sprite2D" parent="YSorted/Farm visuals/Static"]
+material = SubResource("ShaderMaterial_bcdgk")
+position = Vector2(7053, 2891)
+scale = Vector2(2, 2)
+texture = ExtResource("14_mrwmr")
+offset = Vector2(0, -50)
+region_enabled = true
+region_rect = Rect2(1464, 419, 144, 115)
+
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
position = Vector2(53, 20)
scale = Vector2(1, 0.993819)
@@ -944,50 +1012,81 @@ follow_viewport_enabled = false
[node name="Inventory" parent="CanvasLayer" index="1"]
anchors_preset = 7
-anchor_left = 0.5
anchor_top = 1.0
-anchor_right = 0.5
-offset_left = -172.8
-offset_top = -194.4
-offset_right = 172.8
+anchor_bottom = 1.0
+offset_left = -116.0
+offset_top = -53.0
+offset_right = 231.82
+offset_bottom = 141.4
grow_vertical = 0
-size_flags_horizontal = 4
-size_flags_vertical = 8
-_inventoryOpenedOffset = -600.0
+size_flags_horizontal = 6
+size_flags_vertical = 10
+
+[node name="SlotsMover" parent="CanvasLayer/Inventory/SlotsContainer" index="0"]
+anchors_preset = 7
+anchor_left = 0.5
+anchor_right = 0.5
+offset_left = -450.0
+offset_top = -610.0
+offset_right = 450.0
+offset_bottom = 0.0
+
+[node name="TextureRect2" parent="CanvasLayer/Inventory/SlotsContainer/SlotsMover/BackgroundContainer" index="1"]
+offset_left = -360.339
+offset_top = 0.228533
+offset_right = -456.339
+offset_bottom = 30.2285
[node name="Audio" type="Node" parent="."]
-[node name="Background Music" type="AudioStreamPlayer2D" parent="Audio"]
+[node name="Background Music Ramp up" type="AudioStreamPlayer2D" parent="Audio"]
position = Vector2(4002, 2030)
stream = SubResource("AudioStreamPlaylist_ceriq")
-volume_db = -15.0
autoplay = true
max_distance = 1e+06
+bus = &"Music"
+area_mask = 33
+playback_type = 1
+script = ExtResource("42_1nkjm")
+
+[node name="Background Music loop" type="AudioStreamPlayer2D" parent="Audio"]
+position = Vector2(4002, 2030)
+stream = ExtResource("37_8ey8m")
+max_distance = 1e+06
+bus = &"Music"
+area_mask = 33
+playback_type = 1
+script = ExtResource("42_1nkjm")
[node name="SFX" type="Node" parent="Audio"]
[node name="Farming SFX" type="AudioStreamPlayer2D" parent="Audio/SFX"]
stream = SubResource("AudioStreamRandomizer_ceriq")
max_distance = 2e+07
+playback_type = 2
script = ExtResource("40_w3jkj")
[node name="Watering SFX" type="AudioStreamPlayer2D" parent="Audio/SFX"]
-stream = SubResource("AudioStreamRandomizer_ceriq")
+stream = SubResource("AudioStreamRandomizer_p4qqi")
max_distance = 2e+07
+playback_type = 2
script = ExtResource("40_w3jkj")
[node name="FillWater SFX2" type="AudioStreamPlayer2D" parent="Audio/SFX"]
-stream = SubResource("AudioStreamRandomizer_ceriq")
+stream = SubResource("AudioStreamRandomizer_618my")
max_distance = 2e+07
+playback_type = 2
script = ExtResource("40_w3jkj")
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
+[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
+[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
[connection signal="Interacted" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadScene"]
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
-[connection signal="mouse_entered" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseEnteredAllowedArea"]
-[connection signal="mouse_exited" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseExitedAllowedArea"]
+[connection signal="input_event" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Vesna/FarmingControls" method="InputEventPressedOn"]
+[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]
[editable path="YSorted/Vesna"]
[editable path="YSorted/Brünnen/InteractionArea"]
diff --git a/scenes/Babushka_scene_startMenu.tscn b/scenes/Babushka_scene_startMenu.tscn
index 001ef84..0b5c964 100644
--- a/scenes/Babushka_scene_startMenu.tscn
+++ b/scenes/Babushka_scene_startMenu.tscn
@@ -19,13 +19,24 @@ grow_vertical = 2
texture = ExtResource("1_qerdf")
expand_mode = 2
stretch_mode = 6
+metadata/_edit_use_anchors_ = true
[node name="Start" type="Button" parent="CanvasLayer/TextureRect"]
-offset_left = 571.0
-offset_top = 559.0
-offset_right = 617.0
-offset_bottom = 590.0
+custom_minimum_size = Vector2(100, 30)
+layout_mode = 1
+anchors_preset = 7
+anchor_left = 0.5
+anchor_top = 1.0
+anchor_right = 0.5
+anchor_bottom = 1.0
+offset_left = -76.0
+offset_top = -98.0
+offset_right = 24.0
+offset_bottom = -67.0
+grow_horizontal = 2
+grow_vertical = 0
scale = Vector2(2, 2)
text = "Start"
+icon_alignment = 1
[connection signal="pressed" from="CanvasLayer/TextureRect/Start" to="." method="LoadScene"]
diff --git a/scenes/IndoorTest2.tscn b/scenes/IndoorTest2.tscn
index 6a97db4..f4f1641 100644
--- a/scenes/IndoorTest2.tscn
+++ b/scenes/IndoorTest2.tscn
@@ -20,14 +20,14 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
resource_local_to_scene = true
-size = Vector2(7680, 1336)
+size = Vector2(3836, 1086)
[sub_resource type="Animation" id="Animation_j5d18"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
-tracks/0/path = NodePath("Room assets/hand:scale")
+tracks/0/path = NodePath("BackWall/Room assets/hand:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -51,7 +51,7 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = false
-tracks/2/path = NodePath("Room assets/eyes:visible")
+tracks/2/path = NodePath("BackWall/Room assets/eyes:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
@@ -67,7 +67,7 @@ length = 4.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
-tracks/0/path = NodePath("Room assets/hand:scale")
+tracks/0/path = NodePath("BackWall/Room assets/hand:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -91,7 +91,7 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
-tracks/2/path = NodePath("Room assets/eyes:visible")
+tracks/2/path = NodePath("BackWall/Room assets/eyes:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
@@ -115,16 +115,78 @@ radius = 300.0
y_sort_enabled = true
script = ExtResource("1_aivb2")
+[node name="Foreground" type="Node" parent="."]
+
+[node name="Table" type="Sprite2D" parent="Foreground"]
+y_sort_enabled = true
+position = Vector2(-1888, 1112)
+texture = ExtResource("3_je1cl")
+offset = Vector2(0, -200)
+region_enabled = true
+region_rect = Rect2(1012, 1743, 1470, 417)
+
+[node name="Chair" type="Sprite2D" parent="Foreground"]
+y_sort_enabled = true
+position = Vector2(-3032, 2096)
+texture = ExtResource("4_hjjhl")
+offset = Vector2(216, -1064)
+region_enabled = true
+region_rect = Rect2(1534, 1976, 379, 184)
+
+[node name="Chair2" type="Sprite2D" parent="Foreground"]
+y_sort_enabled = true
+position = Vector2(-1064, 2064)
+texture = ExtResource("4_hjjhl")
+offset = Vector2(184, -1056)
+region_enabled = true
+region_rect = Rect2(1534, 1976, 379, 184)
+
+[node name="Samowar" type="Sprite2D" parent="Foreground"]
+z_index = 1
+y_sort_enabled = true
+position = Vector2(-1904, 1192)
+texture = ExtResource("13_j5d18")
+offset = Vector2(0, -800)
+region_enabled = true
+region_rect = Rect2(2093, 49, 421, 630)
+
+[node name="FrontCollider" type="StaticBody2D" parent="Foreground"]
+position = Vector2(-4344, 3056)
+scale = Vector2(2, 2)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="Foreground/FrontCollider"]
+position = Vector2(950, -419)
+shape = SubResource("RectangleShape2D_a2ood")
+
+[node name="SideColliderLeft" type="StaticBody2D" parent="."]
+position = Vector2(-4344, 3056)
+scale = Vector2(2, 2)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderLeft"]
+position = Vector2(-2892, -1168)
+shape = SubResource("RectangleShape2D_a2ood")
+
+[node name="SideColliderRight" type="StaticBody2D" parent="."]
+position = Vector2(10992, 2856)
+scale = Vector2(2, 2)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="SideColliderRight"]
+position = Vector2(-2892, -1168)
+shape = SubResource("RectangleShape2D_a2ood")
+
[node name="BackWall" type="Node" parent="."]
[node name="Room01Walls2" type="Sprite2D" parent="BackWall"]
z_index = -100
-position = Vector2(-1072, -264)
+position = Vector2(4992, -487)
+scale = Vector2(2, 2)
texture = ExtResource("3_a2ood")
offset = Vector2(-2768, 264)
[node name="wall 1" type="Sprite2D" parent="BackWall"]
z_index = -100
+position = Vector2(-4368, 40)
+scale = Vector2(2, 2)
texture = ExtResource("3_a2ood")
flip_h = true
region_rect = Rect2(111, 292, 3323, 2160)
@@ -132,129 +194,124 @@ region_rect = Rect2(111, 292, 3323, 2160)
[node name="StaticBody2D" type="StaticBody2D" parent="BackWall/wall 1"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="BackWall/wall 1/StaticBody2D"]
-position = Vector2(-1912, -396)
+position = Vector2(950, -419)
shape = SubResource("RectangleShape2D_a2ood")
[node name="Room01DorrR" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-744, 16)
+position = Vector2(936, -216)
texture = ExtResource("5_8o6or")
+region_enabled = true
+region_rect = Rect2(3161, 313, 679, 1050)
[node name="Room01DioorL" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-3288, 8)
+position = Vector2(-3296, 48)
texture = ExtResource("8_wuntg")
+region_enabled = true
+region_rect = Rect2(0, 0, 3840, 2160)
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
z_index = -80
-position = Vector2(-752, 0)
+position = Vector2(-224, -392)
texture = ExtResource("9_aivb2")
+region_enabled = true
+region_rect = Rect2(2236, 0, 724, 1392)
[node name="Room01Window2" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-2952, 16)
+position = Vector2(-3192, -344)
texture = ExtResource("6_j5d18")
+region_enabled = true
+region_rect = Rect2(1020, 338, 607, 757)
[node name="Room01Window3" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-944, -8)
+position = Vector2(-1792, -336)
texture = ExtResource("6_j5d18")
+region_enabled = true
+region_rect = Rect2(1020, 338, 607, 757)
[node name="Room01PechkaDoor" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-710, 0)
+position = Vector2(-248, -96)
texture = ExtResource("10_835kg")
+region_enabled = true
+region_rect = Rect2(2360, 864, 356, 251)
[node name="Room01Chugun" type="Sprite2D" parent="BackWall"]
z_index = -40
-position = Vector2(-736, 8)
+position = Vector2(16, -560)
texture = ExtResource("11_atjbs")
+region_enabled = true
+region_rect = Rect2(2469, 459, 247, 131)
[node name="Room01Shelf" type="Sprite2D" parent="BackWall"]
z_index = -50
-position = Vector2(-832, 56)
+position = Vector2(-880, -416)
texture = ExtResource("8_8o6or")
+region_enabled = true
+region_rect = Rect2(1846, 471, 348, 490)
-[node name="Player2d" parent="." instance=ExtResource("2_a2ood")]
-position = Vector2(-1464, 136)
-
-[node name="CharacterBody2D" parent="Player2d" index="0"]
-_speed = 500.0
-
-[node name="Animated Sprites" parent="Player2d/CharacterBody2D/visuals" index="0"]
-z_index = 50
-
-[node name="Room01Table" type="Sprite2D" parent="."]
+[node name="Bench" type="Sprite2D" parent="BackWall"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(-2056, 888)
-texture = ExtResource("3_je1cl")
-offset = Vector2(192, -848)
-
-[node name="Room01Chair" type="Sprite2D" parent="."]
-position = Vector2(-2792, 1096)
-texture = ExtResource("4_hjjhl")
-offset = Vector2(216, -1064)
-
-[node name="Room01Chair2" type="Sprite2D" parent="."]
-position = Vector2(-1304, 1080)
-texture = ExtResource("4_hjjhl")
-offset = Vector2(184, -1056)
-
-[node name="Room01Bench" type="Sprite2D" parent="."]
-position = Vector2(-3280, 24)
+position = Vector2(-3240, 224)
texture = ExtResource("7_ciwvv")
flip_h = true
+region_enabled = true
+region_rect = Rect2(1156, 1185, 940, 189)
-[node name="Room01Bench2" type="Sprite2D" parent="."]
-position = Vector2(-784, 40)
+[node name="Bench2" type="Sprite2D" parent="BackWall"]
+z_index = -10
+position = Vector2(-1824, 224)
texture = ExtResource("7_ciwvv")
-
-[node name="Room assets" type="Node" parent="."]
-
-[node name="Samowar" type="Sprite2D" parent="Room assets"]
-y_sort_enabled = true
-position = Vector2(-2000, 696)
-texture = ExtResource("13_j5d18")
-offset = Vector2(0, -296)
region_enabled = true
-region_rect = Rect2(2085, 40, 446, 654)
+region_rect = Rect2(1156, 1185, 940, 189)
-[node name="wood" type="Sprite2D" parent="Room assets"]
+[node name="Room assets" type="Node" parent="BackWall"]
+
+[node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(-176, 560)
+position = Vector2(-177, 554.5)
texture = ExtResource("13_j5d18")
offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2244, 763, 274, 91)
-[node name="Domovoi" type="Sprite2D" parent="Room assets"]
+[node name="Domovoi" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(336, 480)
+position = Vector2(335, 474.5)
texture = ExtResource("13_j5d18")
offset = Vector2(0, -296)
region_enabled = true
-region_rect = Rect2(3157, 688, 131, 221)
+region_rect = Rect2(3157, 688, 118.519, 221)
-[node name="vase" type="Sprite2D" parent="Room assets"]
+[node name="vase" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(-712, 72)
+position = Vector2(-857, -37.5)
texture = ExtResource("13_j5d18")
offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2748, 432, 174, 191)
-[node name="candle" type="Sprite2D" parent="Room assets"]
+[node name="candle" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(-272, -56)
+position = Vector2(-425, -77.5)
rotation = -0.0663225
texture = ExtResource("13_j5d18")
offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2624, 435, 49, 76)
-[node name="hand" type="Sprite2D" parent="Room assets"]
+[node name="hand" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(48.5969, 11.68)
+position = Vector2(47.5969, 6.18)
rotation = -0.0663225
scale = Vector2(1e-05, 1e-05)
texture = ExtResource("13_j5d18")
@@ -262,23 +319,24 @@ offset = Vector2(43.3898, 128.128)
region_enabled = true
region_rect = Rect2(3362, 139, 101, 269)
-[node name="SpiritAnimation" type="AnimationPlayer" parent="Room assets/hand"]
+[node name="SpiritAnimation" type="AnimationPlayer" parent="BackWall/Room assets/hand"]
active = false
-root_node = NodePath("../../..")
+root_node = NodePath("../../../..")
libraries = {
&"": SubResource("AnimationLibrary_ciwvv")
}
playback_auto_capture = false
-[node name="herbsline" type="Sprite2D" parent="Room assets"]
+[node name="herbsline" type="Sprite2D" parent="BackWall/Room assets"]
+z_index = -10
y_sort_enabled = true
-position = Vector2(440, -168)
+position = Vector2(287, -157.5)
texture = ExtResource("13_j5d18")
offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2964, 137, 321, 213)
-[node name="herb 1" type="Sprite2D" parent="Room assets/herbsline"]
+[node name="herb 1" type="Sprite2D" parent="BackWall/Room assets/herbsline"]
y_sort_enabled = true
position = Vector2(-72, 136)
texture = ExtResource("13_j5d18")
@@ -286,7 +344,7 @@ offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2600, 165, 127, 199)
-[node name="herb 2" type="Sprite2D" parent="Room assets/herbsline"]
+[node name="herb 2" type="Sprite2D" parent="BackWall/Room assets/herbsline"]
y_sort_enabled = true
position = Vector2(64, 80)
texture = ExtResource("13_j5d18")
@@ -294,31 +352,31 @@ offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2761, 161, 135, 199)
-[node name="eyes" type="Sprite2D" parent="Room assets"]
+[node name="eyes" type="Sprite2D" parent="BackWall/Room assets"]
visible = false
+z_index = -10
position = Vector2(32, -72)
scale = Vector2(0.4, 0.4)
texture = ExtResource("14_j5d18")
region_enabled = true
region_rect = Rect2(2647, 15, 286, 183)
-[node name="offerings" type="Node2D" parent="Room assets"]
-visible = false
+[node name="offerings" type="Node2D" parent="BackWall/Room assets"]
-[node name="apple" type="Sprite2D" parent="Room assets/offerings"]
+[node name="apple" type="Sprite2D" parent="BackWall/Room assets/offerings"]
position = Vector2(229.5, 331.5)
texture = ExtResource("13_j5d18")
region_enabled = true
region_rect = Rect2(2822, 764, 93, 87)
-[node name="bread" type="Sprite2D" parent="Room assets/offerings"]
+[node name="bread" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -1
position = Vector2(157.5, 339.5)
texture = ExtResource("13_j5d18")
region_enabled = true
region_rect = Rect2(2951, 783, 155, 78)
-[node name="plate" type="Sprite2D" parent="Room assets/offerings"]
+[node name="plate" type="Sprite2D" parent="BackWall/Room assets/offerings"]
z_index = -20
position = Vector2(189.5, 659.5)
texture = ExtResource("13_j5d18")
@@ -326,21 +384,28 @@ offset = Vector2(0, -296)
region_enabled = true
region_rect = Rect2(2576, 802, 219, 64)
+[node name="Vesna" parent="." instance=ExtResource("2_a2ood")]
+position = Vector2(-1464, 136)
+
[node name="Yeli" parent="." instance=ExtResource("15_ciwvv")]
position = Vector2(-2912, 432)
[node name="CollisionShape3D" parent="Yeli/InteractionArea/Area2D" index="0"]
+position = Vector2(-205.348, 131.907)
shape = SubResource("CircleShape2D_wuntg")
[node name="TalkingControl" parent="Yeli" index="1"]
_timelinesToPlay = PackedStringArray("yeli_intro_05")
+[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
+position = Vector2(-576, 368)
+
[node name="dialogic_toggle" type="Node2D" parent="Yeli"]
script = ExtResource("17_835kg")
metadata/_custom_type_script = "uid://cvkw4qd2hxksi"
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="." method="Quit"]
-[editable path="Player2d"]
+[editable path="Vesna"]
[editable path="Yeli"]
[editable path="Yeli/InteractionArea"]
diff --git a/scripts/CSharp/Common/Audio/AudioDebugger.cs b/scripts/CSharp/Common/Audio/AudioDebugger.cs
new file mode 100644
index 0000000..76e8bd7
--- /dev/null
+++ b/scripts/CSharp/Common/Audio/AudioDebugger.cs
@@ -0,0 +1,15 @@
+using Godot;
+using System;
+
+///
+/// Takes the current contents of a AudioStreamPlayer and offers visualization and control.
+///
+public partial class AudioDebugger : AudioStreamPlayer2D
+{
+ [Export] private float _offset_in_seconds_to_play = 0;
+
+ public void PlayFromOffset()
+ {
+ Play(_offset_in_seconds_to_play);
+ }
+}
diff --git a/scripts/CSharp/Common/Audio/AudioDebugger.cs.uid b/scripts/CSharp/Common/Audio/AudioDebugger.cs.uid
new file mode 100644
index 0000000..9a47557
--- /dev/null
+++ b/scripts/CSharp/Common/Audio/AudioDebugger.cs.uid
@@ -0,0 +1 @@
+uid://clxb3n668oud3
diff --git a/scripts/CSharp/Common/CharacterControls/Player2D.cs b/scripts/CSharp/Common/CharacterControls/Player2D.cs
index bea8f96..0cb236e 100644
--- a/scripts/CSharp/Common/CharacterControls/Player2D.cs
+++ b/scripts/CSharp/Common/CharacterControls/Player2D.cs
@@ -10,6 +10,7 @@ public partial class Player2D : CharacterBody2D
[Export] private float _speed = 100f;
[Export] private AnimatedSprite2D _sprite;
[Export] private SceneTree.GroupCallFlags _fieldFlags;
+ [Export] private CpuParticles2D _wateringParticles;
// -1 means no tool.
private int _toolID = -1;
@@ -43,45 +44,55 @@ public partial class Player2D : CharacterBody2D
if (!_canHandleInput)
return;
-
- if (Input.IsActionPressed("move_right"))
+
+ bool right = Input.IsActionPressed("move_right");
+ bool left = Input.IsActionPressed("move_left");
+ bool up = Input.IsActionPressed("move_up");
+ bool down = Input.IsActionPressed("move_down");
+ bool walkingAnimationPicked = false;
+
+ if (up)
{
- Velocity = new Vector2(_speed, 0);
+ Velocity = new Vector2(0, -_speed);
MoveAndSlide();
- _sprite.FlipH = false;
- _sprite.Animation = "side walking" + _toolString;
+ _sprite.Animation = "back walking" + _toolString;
anyActionPressed = true;
- _lastDirection = Vector2.Right;
+ _lastDirection = Vector2.Up;
+ walkingAnimationPicked = true;
}
- if (Input.IsActionPressed("move_left"))
+ if (down && !walkingAnimationPicked)
{
- Velocity = new Vector2(-_speed, 0);
+ Velocity = new Vector2(0, _speed);
MoveAndSlide();
- _sprite.FlipH = true;
- _sprite.Animation = "side walking" + _toolString;
+ _sprite.Animation = "front walking" + _toolString;
anyActionPressed = true;
- _lastDirection = Vector2.Left;
+ _lastDirection = Vector2.Down;
+ walkingAnimationPicked = true;
}
- if (Input.IsActionPressed("move_up"))
+ if (right && !walkingAnimationPicked)
{
- Velocity = new Vector2(0, -_speed);
+ Velocity = new Vector2(_speed, 0);
MoveAndSlide();
- _sprite.Animation = "back walking" + _toolString;
+ _sprite.FlipH = false;
+ _sprite.Animation = "side walking" + _toolString;
anyActionPressed = true;
- _lastDirection = Vector2.Up;
+ _lastDirection = Vector2.Right;
+ walkingAnimationPicked = true;
}
- if (Input.IsActionPressed("move_down"))
+ if (left && !walkingAnimationPicked)
{
- Velocity = new Vector2(0, _speed);
+ Velocity = new Vector2(-_speed, 0);
MoveAndSlide();
- _sprite.Animation = "front walking" + _toolString;
+ _sprite.FlipH = true;
+ _sprite.Animation = "side walking" + _toolString;
anyActionPressed = true;
- _lastDirection = Vector2.Down;
+ _lastDirection = Vector2.Left;
+ walkingAnimationPicked = true;
}
-
+
if (Input.IsActionPressed("interact2"))
{
_sprite.Animation = "back interact";
@@ -89,12 +100,14 @@ public partial class Player2D : CharacterBody2D
_lastDirection = Vector2.Up;
}
+ /*
if (Input.IsActionPressed("item"))
{
_sprite.Animation = "diagonal item";
anyActionPressed = true;
_lastDirection = Vector2.Right;
}
+ */
if (anyActionPressed)
{
@@ -144,6 +157,7 @@ public partial class Player2D : CharacterBody2D
_sprite.Animation = "diagonal wateringcan";
_sprite.Play();
_canHandleInput = false;
+ _wateringParticles.Emitting = true;
Task.Run(DelayedInputHandlerReset);
}
}
@@ -151,6 +165,7 @@ public partial class Player2D : CharacterBody2D
private async Task DelayedInputHandlerReset()
{
await Task.Delay(1000);
+ _wateringParticles.Emitting = false;
_canHandleInput = true;
}
diff --git a/scripts/CSharp/Common/Farming/FarmingControls2D.cs b/scripts/CSharp/Common/Farming/FarmingControls2D.cs
index 4a999d3..2ee80fa 100644
--- a/scripts/CSharp/Common/Farming/FarmingControls2D.cs
+++ b/scripts/CSharp/Common/Farming/FarmingControls2D.cs
@@ -9,13 +9,14 @@ public partial class FarmingControls2D : Node2D
[Export] private PackedScene _fieldPrefab;
[Export] private Node2D _movingPlayer;
[Export] private Camera2D _camera;
+ [Export] private CpuParticles2D _wateringParticles;
+ [Export] private float _wateringCanParticlesVerticalOffset = 50f;
public FieldService2D FieldService;
private int _toolId = -1;
private bool _wateringCanFilled = false;
- private int _currentWateringCanStep = 0;
- private int _wateringCanCapacity = 3;
+
[Signal] public delegate void WateringFieldEventHandler();
@@ -41,33 +42,80 @@ public partial class FarmingControls2D : Node2D
}
_toolId = activate ? toolId : -1;
+
+ WateringCanState.SetActive(_toolId == WateringCanState.WATERING_CAN_ID);
+
return activate;
}
#endregion
public override void _Input(InputEvent @event)
+ {
+ if (@event.IsActionPressed("click")
+ && _toolId == WateringCanState.WATERING_CAN_ID
+ && WateringCanState.GetFillState() > 0)
+ {
+ Vector2I adjustedPosition = GetAdjustedMousePosition();
+ WaterTheField(adjustedPosition);
+ }
+ }
+
+ private Vector2I GetAdjustedMousePosition()
{
Vector2 mousePosition = _camera.GetGlobalMousePosition();
Vector2I mousePositionInteger = (Vector2I) mousePosition;
Vector2I adjustedPosition = AdjustValue(mousePositionInteger, new Vector2I(735, 651));
+ return adjustedPosition;
+ }
+
+ ///
+ /// Called by the allowed farming area collision area 2d.
+ ///
+ ///
+ ///
+ ///
+ public void InputEventPressedOn(Node node, InputEvent inputEvent, int shapeIndex)
+ {
+ if (!inputEvent.IsPressed())
+ {
+ GD.Print("Input Event is not pressed." );
+ return;
+ }
- if (@event.IsActionPressed("click") && _toolId == 0)
+ if (!inputEvent.IsActionPressed("click"))
+ return;
+
+ if (inputEvent is InputEventMouseButton inputEventMouseButton)
{
- MakeField(adjustedPosition);
+ GD.Print("Input Event is InputEventMouseButton." );
+ if (!inputEventMouseButton.Pressed)
+ {
+ GD.Print("Input Event Mouse Button is not pressed." );
+ return;
+ }
+ }
+ else
+ {
+ GD.Print("Other Input Event registered." );
+ return;
}
- if (@event.IsActionPressed("click") && _toolId == 1 && _wateringCanFilled)
+ GD.Print("Current tool id: " + _toolId );
+ if (_toolId == 0)
{
- WaterTheField(adjustedPosition);
+ GD.Print("Trying to create field." );
+ Vector2I adjustedPosition = GetAdjustedMousePosition();
+ MakeField(adjustedPosition);
}
}
- public void FillWateringCan(bool fillUp)
+ #region WATERING
+ public void FillWateringCan()
{
- if (_toolId == 1 )
+ if (_toolId == WateringCanState.WATERING_CAN_ID)
{
- _wateringCanFilled = fillUp;
+ WateringCanState.Fill();
}
}
@@ -78,29 +126,19 @@ public partial class FarmingControls2D : Node2D
return;
field.Water();
+ _wateringParticles.GlobalPosition = new Vector2(field.GlobalPosition.X, field.GlobalPosition.Y + _wateringCanParticlesVerticalOffset);
+ WateringCanState.Water();
EmitSignal(SignalName.WateringField);
-
- if (_currentWateringCanStep < _wateringCanCapacity)
- {
- _currentWateringCanStep++;
- }
- else
- {
- _currentWateringCanStep = 0;
- FillWateringCan(false);
- }
-
}
+ #endregion
+
+ #region FIELD CREATION
private void MakeField(Vector2I fieldPosition)
{
if(FieldService == null || _fieldPrefab == null)
return;
- // only try to instantiate a field if you're in the allowed area
- if (!FieldService.FieldAllowed())
- return;
-
// only instantiate a field if there isn't one already.
if(FieldService.Get(fieldPosition) == null)
{
@@ -131,4 +169,6 @@ public partial class FarmingControls2D : Node2D
{
return input.Snapped(step);
}
+
+ #endregion
}
\ No newline at end of file
diff --git a/scripts/CSharp/Common/Farming/FieldService2D.cs b/scripts/CSharp/Common/Farming/FieldService2D.cs
index 43536c9..5b36976 100644
--- a/scripts/CSharp/Common/Farming/FieldService2D.cs
+++ b/scripts/CSharp/Common/Farming/FieldService2D.cs
@@ -7,27 +7,24 @@ namespace Babushka.scripts.CSharp.Common.Farming;
public partial class FieldService2D : Node2D
{
[Export] private Dictionary fields = new Dictionary();
-
- private bool _fieldAllowed = false;
+
+ [Export] private Area2D _allowedArea;
[Signal] public delegate void FieldCreatedEventHandler();
-
- //Validate
-
- public void MouseEnteredAllowedArea()
- {
- _fieldAllowed = true;
- }
-
- public void MouseExitedAllowedArea()
- {
- _fieldAllowed = false;
- }
- public bool FieldAllowed()
+ /*
+ public override void _PhysicsProcess(double delta)
{
- return _fieldAllowed;
+ var spaceState = GetWorld2D().DirectSpaceState;
+ // use global coordinates, not local to node
+ var query = PhysicsRayQueryParameters2D.Create(GetGlobalMousePosition(), new Vector3(0,0,-1),
+ CollisionMask, [GetRid()]);
+ var result = spaceState.IntersectRay(query);
+ if (result.Count > 0)
+ GD.Print("Hit at point: ", result["position"]);
}
+ */
+
//Create
public bool TryAddEntry(Vector2I key, FieldBehaviour2D field)
diff --git a/scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs b/scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs
index 118ede5..da3be73 100644
--- a/scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs
+++ b/scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs
@@ -15,6 +15,8 @@ public partial class VesnaBehaviour2D : Node
[Signal] public delegate void PickedUpToolEventHandler(bool success, int toolId);
[Signal] public delegate void FilledWateringCanEventHandler();
+
+ [Signal] public delegate void InventorySelectionChangedEventHandler(int toolId);
private InventoryManager _inventoryManager;
private InventoryInstance _inventoryInstance;
@@ -26,28 +28,39 @@ public partial class VesnaBehaviour2D : Node
_inventoryInstance = _inventoryManager.playerInventory;
_inventoryManager.SlotIndexChanged += HandleInventorySelectedSlotIndexChanged;
}
+
+ ///
+ /// Called when picking up an item.
+ /// Makes sure that item animations are also updated when they are occupying a currently empty spot.
+ ///
+ public void HandlePickUp()
+ {
+ //Calls the same event handler as the inventory to ensure the currently selected item is updated in the animation.
+ HandleInventorySelectedSlotIndexChanged(0);
+ }
- private void HandleInventorySelectedSlotIndexChanged(int newIndex)
+ private void HandleInventorySelectedSlotIndexChanged(int newIndex = 0)
{
InventorySlot currentSlot = InventoryManager.Instance.GetCurrentSelectedSlot();
ItemInstance? currentItem = currentSlot.itemInstance;
if (currentItem == null)
return;
+
+ int toolId = -1;
if (currentItem.blueprint == _hoe)
{
- ActivateTool(0);
- return;
+ toolId = 0;
}
if (currentItem.blueprint == _wateringCan)
{
- ActivateTool(1);
- return;
+ toolId = 1;
}
- ActivateTool(-1);
+ ActivateTool(toolId);
+ EmitSignal(SignalName.InventorySelectionChanged, toolId);
}
@@ -63,7 +76,7 @@ public partial class VesnaBehaviour2D : Node
{
if (toolId == 1)
{
- _farmingControls.FillWateringCan(true);
+ _farmingControls.FillWateringCan();
_player2d.PlayWateringCanFillupAnimation();
EmitSignal(SignalName.FilledWateringCan);
}
diff --git a/scripts/CSharp/Common/Farming/WateringCanState.cs b/scripts/CSharp/Common/Farming/WateringCanState.cs
new file mode 100644
index 0000000..8e4e89c
--- /dev/null
+++ b/scripts/CSharp/Common/Farming/WateringCanState.cs
@@ -0,0 +1,70 @@
+namespace Babushka.scripts.CSharp.Common.Farming;
+
+///
+/// Holds Information about the current state of the watering can.
+/// Since there is only one watering can, we can track this in one central static class.
+///
+public static class WateringCanState
+{
+ private static int _fillstate = 0;
+
+ ///
+ /// How many fields can be watered with one filling of the watering can.
+ ///
+ public const int MAX_FILLSTATE = 6;
+
+ ///
+ /// The Tool ID of the watering can. Used to identify it amongst other pickup items (and things that can be held by Vesna).
+ ///
+ public const int WATERING_CAN_ID = 1;
+
+ ///
+ /// Whether or not the watering can is currently active, i.e. held in hand by Vesna.
+ /// Triggers animations and ui.
+ ///
+ public static bool Active = false;
+
+
+ ///
+ /// Resets the fillstate to the max amount.
+ ///
+ public static void Fill()
+ {
+ _fillstate = MAX_FILLSTATE;
+ }
+
+ ///
+ /// Called when watering a field. Reduces the current fillstate.
+ ///
+ public static void Water()
+ {
+ if(_fillstate > 0)
+ _fillstate--;
+ }
+
+ ///
+ /// Resets the watering can. Equivalent to "Empty" state.
+ ///
+ public static void Reset()
+ {
+ _fillstate = 0;
+ }
+
+ ///
+ /// Returns the current fill state of the watering can.
+ ///
+ ///
+ public static int GetFillState()
+ {
+ return _fillstate;
+ }
+
+ ///
+ /// Sets the Active state of the watering can, i.e. if it is currently in hand and if the ui should be active.
+ ///
+ ///
+ public static void SetActive(bool active)
+ {
+ Active = active;
+ }
+}
\ No newline at end of file
diff --git a/scripts/CSharp/Common/Inventory/InventoryUi.cs b/scripts/CSharp/Common/Inventory/InventoryUi.cs
index 2a64944..f38e8e2 100644
--- a/scripts/CSharp/Common/Inventory/InventoryUi.cs
+++ b/scripts/CSharp/Common/Inventory/InventoryUi.cs
@@ -4,29 +4,22 @@ namespace Babushka.scripts.CSharp.Common.Inventory;
public partial class InventoryUi : Control
{
- private Control _slots;
- private Control _slotsMover;
- private InventoryInstance _playerInventory;
- private Control _slotSelect;
+ [Export] private Control _slotsParent;
+ [Export] private Control _slotsMover;
+ [Export] private Control[] _headerSlots;
+ [Export] private Control _slotSelect;
+ private InventoryInstance _playerInventory;
private int? _slotOnMouse;
-
private bool _inventoryExtended = false;
private Tween? _inventoryExtensionTween;
-
- [Export]
private float _inventoryClosedOffset = 0f;
-
- [Export]
private float _inventoryOpenedOffset = 200f;
public override void _Ready()
{
GD.Print("Ready inventory ui");
- _slots = GetNode("SlotsContainer/SlotsMover/Slots");
- _slotsMover = GetNode("SlotsContainer/SlotsMover");
_playerInventory = InventoryManager.Instance.playerInventory;
- _slotSelect = GetNode("SlotsContainer/SlotSelectContainer/Selector");
//PopulateSlots();
SubscribeSlots();
SetSlotContent();
@@ -44,7 +37,7 @@ public partial class InventoryUi : Control
for (var i = 0; i < _playerInventory.Slots.Count; i++)
{
var inventorySlot = _playerInventory.Slots[i];
- var uiSlot = _slots.GetChild(i) as SlotUi;
+ var uiSlot = _slotsParent.GetChild(i) as SlotUi;
if (inventorySlot.itemInstance != null)
{
@@ -82,7 +75,7 @@ public partial class InventoryUi : Control
private void SetSlotSelectPosition()
{
- _slotSelect.Position = new Vector2(InventoryManager.Instance.CurrentSelectedSlotIndex * 100, 0);
+ _slotSelect.GlobalPosition = _headerSlots[InventoryManager.Instance.CurrentSelectedSlotIndex].GlobalPosition;
}
private void PopulateSlots()
@@ -93,7 +86,7 @@ public partial class InventoryUi : Control
var slotInstance = slotPackedScene.Instantiate();
slotInstance.index = index;
slotInstance.Clicked += SlotClicked;
- _slots.AddChild(slotInstance);
+ _slotsParent.AddChild(slotInstance);
}
}
@@ -101,7 +94,7 @@ public partial class InventoryUi : Control
{
for (var index = 0; index < _playerInventory.Slots.Count; index++)
{
- var slotInstance = _slots.GetChild(index);
+ var slotInstance = _slotsParent.GetChild(index);
slotInstance.index = index;
slotInstance.Clicked += SlotClicked;
}
@@ -111,7 +104,7 @@ public partial class InventoryUi : Control
{
for (var index = 0; index < _playerInventory.Slots.Count; index++)
{
- var slotInstance = _slots.GetChild(index) as SlotUi;
+ var slotInstance = _slotsParent.GetChild(index) as SlotUi;
slotInstance!.Clicked -= SlotClicked;
}
}
@@ -141,8 +134,16 @@ public partial class InventoryUi : Control
{
if (Input.IsActionJustPressed("ui_inventory_open_close"))
{
+ // We adjust the offset value in accordance with the screen height to make sure that the inventory is always in the middle of the screen.
+ _inventoryOpenedOffset = (GetViewportRect().Size.Y / 2 + 400) * (-1);
InputInventoryOpenClose();
}
+
+ if (Input.IsActionJustPressed("ui_inventory_close"))
+ {
+ if(_inventoryExtended)
+ InputInventoryOpenClose();
+ }
if (Input.IsActionJustPressed("ui_inventory_disadvance"))
{
diff --git a/scripts/CSharp/Common/Inventory/ItemOnGround2D.cs b/scripts/CSharp/Common/Inventory/ItemOnGround2D.cs
index 52842d8..bba4bb7 100644
--- a/scripts/CSharp/Common/Inventory/ItemOnGround2D.cs
+++ b/scripts/CSharp/Common/Inventory/ItemOnGround2D.cs
@@ -11,6 +11,8 @@ public partial class ItemOnGround2D : Node
[Export] public bool IsActive = true;
private int pickUpCounter = 0;
+
+ [Signal] public delegate void SuccessfulPickUpEventHandler();
private Label _itemLabel => GetNode