Added inventory UI
parent
f74dcdba2c
commit
cd378a9e82
|
|
@ -2,12 +2,19 @@ class_name Player
|
||||||
extends GridPosition
|
extends GridPosition
|
||||||
|
|
||||||
@export var gatherer: Gatherer
|
@export var gatherer: Gatherer
|
||||||
|
@export var entity_inventory: EntityInventory
|
||||||
|
|
||||||
static func is_player(node: Node) -> bool:
|
static func is_player(node: Node) -> bool:
|
||||||
return node is Player || node.get_parent() is Player
|
return node is Player || node.get_parent() is Player
|
||||||
|
|
||||||
|
func get_inventory() -> Inventory:
|
||||||
|
return entity_inventory.inventory
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
gatherer.gathered.connect(_on_gathered)
|
gatherer.gathered.connect(_on_gathered)
|
||||||
|
|
||||||
func _on_gathered(item: String, count: int):
|
func _on_gathered(item: String, count: int):
|
||||||
print("gathered: ", count, " x ", item)
|
insert_into_inventory(item, count)
|
||||||
|
|
||||||
|
func insert_into_inventory(item: String, count: int):
|
||||||
|
entity_inventory.inventory.insert(item, count)
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://drs6h7ks4r2ta"]
|
[gd_scene load_steps=5 format=3 uid="uid://drs6h7ks4r2ta"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://doscvutq8uqmd" path="res://sprites/sheet.png" id="1_72ieh"]
|
[ext_resource type="Texture2D" uid="uid://doscvutq8uqmd" path="res://sprites/sheet.png" id="1_72ieh"]
|
||||||
[ext_resource type="Script" uid="uid://cvviym6gdlod8" path="res://prefabs/player/player.gd" id="1_wv1mm"]
|
[ext_resource type="Script" uid="uid://cvviym6gdlod8" path="res://prefabs/player/player.gd" id="1_wv1mm"]
|
||||||
[ext_resource type="Script" uid="uid://sxo578w2yds2" path="res://prefabs/player/player_input.gd" id="2_rdx4y"]
|
[ext_resource type="Script" uid="uid://sxo578w2yds2" path="res://prefabs/player/player_input.gd" id="2_rdx4y"]
|
||||||
|
[ext_resource type="Inventory" uid="uid://dm71wjetr4e52" path="res://prefabs/player/player_inventory.tres" id="4_binfn"]
|
||||||
|
|
||||||
[node name="Player" type="GridPosition" node_paths=PackedStringArray("gatherer")]
|
[node name="Player" type="GridPosition" node_paths=PackedStringArray("gatherer", "entity_inventory")]
|
||||||
script = ExtResource("1_wv1mm")
|
script = ExtResource("1_wv1mm")
|
||||||
gatherer = NodePath("Gatherer")
|
gatherer = NodePath("Gatherer")
|
||||||
|
entity_inventory = NodePath("EntityInventory")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
texture = ExtResource("1_72ieh")
|
texture = ExtResource("1_72ieh")
|
||||||
|
|
@ -29,3 +31,6 @@ grid = NodePath("..")
|
||||||
mover = NodePath("../Mover")
|
mover = NodePath("../Mover")
|
||||||
actor = NodePath("../TurnActor")
|
actor = NodePath("../TurnActor")
|
||||||
metadata/_custom_type_script = "uid://okxdlbfuvb1b"
|
metadata/_custom_type_script = "uid://okxdlbfuvb1b"
|
||||||
|
|
||||||
|
[node name="EntityInventory" type="EntityInventory" parent="."]
|
||||||
|
inventory = ExtResource("4_binfn")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
[gd_resource type="Inventory" format=3 uid="uid://dm71wjetr4e52"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://8xuvjmyjkpeo"]
|
[gd_scene load_steps=4 format=3 uid="uid://8xuvjmyjkpeo"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://doscvutq8uqmd" path="res://sprites/sheet.png" id="1_gjkx7"]
|
|
||||||
[ext_resource type="Script" uid="uid://jd6ce3f7e1bh" path="res://prefabs/tiles/gatherable_animation.gd" id="1_jqgth"]
|
[ext_resource type="Script" uid="uid://jd6ce3f7e1bh" path="res://prefabs/tiles/gatherable_animation.gd" id="1_jqgth"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://noksw27wlt1y" path="res://sprites/blueberry_plant.png" id="2_c8jpc"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://1udkm2j25i8o" path="res://sprites/generic_picked.png" id="3_c8jpc"]
|
||||||
|
|
||||||
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||||
script = ExtResource("1_jqgth")
|
script = ExtResource("1_jqgth")
|
||||||
|
|
@ -10,17 +11,11 @@ picked = NodePath("Picked")
|
||||||
not_picked = NodePath("Not Picked")
|
not_picked = NodePath("Not Picked")
|
||||||
|
|
||||||
[node name="Not Picked" type="Sprite2D" parent="."]
|
[node name="Not Picked" type="Sprite2D" parent="."]
|
||||||
texture = ExtResource("1_gjkx7")
|
texture = ExtResource("2_c8jpc")
|
||||||
hframes = 8
|
|
||||||
vframes = 8
|
|
||||||
frame = 16
|
|
||||||
|
|
||||||
[node name="Picked" type="Sprite2D" parent="."]
|
[node name="Picked" type="Sprite2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
texture = ExtResource("1_gjkx7")
|
texture = ExtResource("3_c8jpc")
|
||||||
hframes = 8
|
|
||||||
vframes = 8
|
|
||||||
frame = 17
|
|
||||||
|
|
||||||
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
||||||
grid = NodePath("..")
|
grid = NodePath("..")
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://l72f05nek0y4"]
|
[gd_scene load_steps=4 format=3 uid="uid://l72f05nek0y4"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://doscvutq8uqmd" path="res://sprites/sheet.png" id="1_e3ld6"]
|
[ext_resource type="Texture2D" uid="uid://c3td3bhrbd0kp" path="res://sprites/cowberry_plant.png" id="2_ihdej"]
|
||||||
[ext_resource type="Script" uid="uid://jd6ce3f7e1bh" path="res://prefabs/tiles/gatherable_animation.gd" id="2_kod7n"]
|
[ext_resource type="Script" uid="uid://jd6ce3f7e1bh" path="res://prefabs/tiles/gatherable_animation.gd" id="2_kod7n"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://1udkm2j25i8o" path="res://sprites/generic_picked.png" id="3_ihdej"]
|
||||||
|
|
||||||
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||||
script = ExtResource("2_kod7n")
|
script = ExtResource("2_kod7n")
|
||||||
|
|
@ -10,17 +11,11 @@ picked = NodePath("Picked")
|
||||||
not_picked = NodePath("Not Picked")
|
not_picked = NodePath("Not Picked")
|
||||||
|
|
||||||
[node name="Not Picked" type="Sprite2D" parent="."]
|
[node name="Not Picked" type="Sprite2D" parent="."]
|
||||||
texture = ExtResource("1_e3ld6")
|
texture = ExtResource("2_ihdej")
|
||||||
hframes = 8
|
|
||||||
vframes = 8
|
|
||||||
frame = 20
|
|
||||||
|
|
||||||
[node name="Picked" type="Sprite2D" parent="."]
|
[node name="Picked" type="Sprite2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
texture = ExtResource("1_e3ld6")
|
texture = ExtResource("3_ihdej")
|
||||||
hframes = 8
|
|
||||||
vframes = 8
|
|
||||||
frame = 17
|
|
||||||
|
|
||||||
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
||||||
grid = NodePath("..")
|
grid = NodePath("..")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
class_name InventoryUI
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func update(inventory: Inventory):
|
||||||
|
for item in inventory.items:
|
||||||
|
var count = inventory.get_item_count(item)
|
||||||
|
update_item(item, count)
|
||||||
|
|
||||||
|
func update_item(item: String, count: int):
|
||||||
|
var child = get_node(item)
|
||||||
|
if child == null:
|
||||||
|
return
|
||||||
|
var label = child.get_node("Count") as Label
|
||||||
|
label.text = str(count)
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://djccw7ahn8b47
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
class_name UI
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@export var player: Player
|
||||||
|
|
||||||
|
@onready var inventory_ui: InventoryUI = %Inventory
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
player.entity_inventory.inventory.changed.connect(_on_player_inventory_changed)
|
||||||
|
update_inventory_ui()
|
||||||
|
|
||||||
|
func _on_player_inventory_changed():
|
||||||
|
update_inventory_ui()
|
||||||
|
|
||||||
|
func update_inventory_ui():
|
||||||
|
inventory_ui.update(player.get_inventory())
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://ckalp7icn1f28
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://blutrglw7mycx"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://djccw7ahn8b47" path="res://prefabs/ui/inventory_ui.gd" id="1_4ieor"]
|
||||||
|
[ext_resource type="Script" uid="uid://ckalp7icn1f28" path="res://prefabs/ui/ui.gd" id="1_htiv7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://4rxwcyoye2sa" path="res://sprites/blueberry_item.png" id="2_htiv7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d11rkcho3c38n" path="res://sprites/cowberry_item.png" id="3_gxjsb"]
|
||||||
|
|
||||||
|
[node name="UI" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_htiv7")
|
||||||
|
|
||||||
|
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
||||||
|
[node name="Inventory" type="VBoxContainer" parent="PanelContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
script = ExtResource("1_4ieor")
|
||||||
|
|
||||||
|
[node name="Blueberry" type="HBoxContainer" parent="PanelContainer/Inventory"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Item" type="TextureRect" parent="PanelContainer/Inventory/Blueberry"]
|
||||||
|
layout_mode = 2
|
||||||
|
texture = ExtResource("2_htiv7")
|
||||||
|
|
||||||
|
[node name="Count" type="Label" parent="PanelContainer/Inventory/Blueberry"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "0"
|
||||||
|
|
||||||
|
[node name="Cowberry" type="HBoxContainer" parent="PanelContainer/Inventory"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Item" type="TextureRect" parent="PanelContainer/Inventory/Cowberry"]
|
||||||
|
layout_mode = 2
|
||||||
|
texture = ExtResource("3_gxjsb")
|
||||||
|
|
||||||
|
[node name="Count" type="Label" parent="PanelContainer/Inventory/Cowberry"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "0"
|
||||||
|
|
@ -1,22 +1,28 @@
|
||||||
[gd_scene load_steps=4 format=4 uid="uid://b3odri2wtvke4"]
|
[gd_scene load_steps=5 format=4 uid="uid://b3odri2wtvke4"]
|
||||||
|
|
||||||
[ext_resource type="TileSet" uid="uid://b1ps1ww0rtkop" path="res://tilesets/background_tileset.tres" id="1_m1b5j"]
|
[ext_resource type="TileSet" uid="uid://b1ps1ww0rtkop" path="res://tilesets/background_tileset.tres" id="1_m1b5j"]
|
||||||
[ext_resource type="TileSet" uid="uid://bxwohuw2p43k1" path="res://tilesets/foreground_tileset.tres" id="2_u2ss0"]
|
[ext_resource type="TileSet" uid="uid://bxwohuw2p43k1" path="res://tilesets/foreground_tileset.tres" id="2_u2ss0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://drs6h7ks4r2ta" path="res://prefabs/player/player.tscn" id="3_u2ss0"]
|
[ext_resource type="PackedScene" uid="uid://drs6h7ks4r2ta" path="res://prefabs/player/player.tscn" id="3_u2ss0"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://blutrglw7mycx" path="res://prefabs/ui/ui.tscn" id="4_356oe"]
|
||||||
|
|
||||||
[node name="TurnManager" type="TurnManager"]
|
[node name="TurnManager" type="TurnManager"]
|
||||||
|
|
||||||
[node name="Root" type="Level" parent="." node_paths=PackedStringArray("background", "foreground")]
|
[node name="World" type="Level" parent="." node_paths=PackedStringArray("background", "foreground")]
|
||||||
background = NodePath("Background")
|
background = NodePath("Background")
|
||||||
foreground = NodePath("Foreground")
|
foreground = NodePath("Foreground")
|
||||||
|
|
||||||
[node name="Background" type="TileMapLayer" parent="Root"]
|
[node name="Background" type="TileMapLayer" parent="World"]
|
||||||
tile_map_data = PackedByteArray("AAD8//z/AQAAAAQAAAD8//3/AQAAAAQAAAD8//7/AQAAAAQAAAD8////AQAAAAQAAAD9//z/AQAAAAQAAAD9//3/AQAAAAQAAAD9//7/AQAAAAQAAAD9////AQAAAAQAAAD+//z/AQAAAAQAAAD+//3/AQAAAAQAAAD+//7/AQAAAAQAAAD+////AQAAAAQAAAD///z/AQAAAAQAAAD///3/AQAAAAQAAAD///7/AQAAAAQAAAD/////AQAAAAQAAAD8/wAAAQAAAAQAAAD8/wEAAQAAAAQAAAD8/wIAAQAAAAQAAAD8/wMAAQAAAAQAAAD9/wAAAQAAAAQAAAD9/wEAAQAAAAQAAAD9/wIAAQAAAAQAAAD9/wMAAQAAAAQAAAD+/wAAAQAAAAQAAAD+/wEAAQAAAAQAAAD+/wIAAQAAAAQAAAD+/wMAAQAAAAQAAAD//wAAAQAAAAQAAAD//wEAAQAAAAQAAAD//wIAAQAAAAQAAAD//wMAAQAAAAQAAAAAAPz/AQAAAAQAAAAAAP3/AQAAAAQAAAAAAP7/AQAAAAQAAAAAAP//AQAAAAQAAAAAAAAAAQAAAAQAAAAAAAEAAQAAAAQAAAAAAAIAAQAAAAQAAAAAAAMAAQAAAAQAAAABAPz/AQAAAAQAAAABAP3/AQAAAAQAAAABAP7/AQAAAAQAAAABAP//AQAAAAQAAAABAAAAAQAAAAQAAAABAAEAAQAAAAQAAAABAAIAAQAAAAQAAAABAAMAAQAAAAQAAAACAPz/AQAAAAQAAAACAP3/AQAAAAQAAAACAP7/AQAAAAQAAAACAP//AQAAAAQAAAACAAAAAQAAAAQAAAACAAEAAQAAAAQAAAACAAIAAQAAAAQAAAACAAMAAQAAAAQAAAADAPz/AQAAAAQAAAADAP3/AQAAAAQAAAADAP7/AQAAAAQAAAADAP//AQAAAAQAAAADAAAAAQAAAAQAAAADAAEAAQAAAAQAAAADAAIAAQAAAAQAAAADAAMAAQAAAAQAAAD6//v/AQAAAAQAAAD6//z/AQAAAAQAAAD6//3/AQAAAAQAAAD6//7/AQAAAAQAAAD6////AQAAAAQAAAD6/wAAAQAAAAQAAAD6/wEAAQAAAAQAAAD6/wIAAQAAAAQAAAD6/wMAAQAAAAQAAAD6/wQAAQAAAAQAAAD6/wUAAQAAAAQAAAD7//v/AQAAAAQAAAD7//z/AQAAAAQAAAD7//3/AQAAAAQAAAD7//7/AQAAAAQAAAD7////AQAAAAQAAAD7/wAAAQAAAAQAAAD7/wEAAQAAAAQAAAD7/wIAAQAAAAQAAAD7/wMAAQAAAAQAAAD7/wQAAQAAAAQAAAD7/wUAAQAAAAQAAAD8//v/AQAAAAQAAAD8/wQAAQAAAAQAAAD8/wUAAQAAAAQAAAD9//v/AQAAAAQAAAD9/wQAAQAAAAQAAAD9/wUAAQAAAAQAAAD+//v/AQAAAAQAAAD+/wQAAQAAAAQAAAD+/wUAAQAAAAQAAAD///v/AQAAAAQAAAD//wQAAQAAAAQAAAD//wUAAQAAAAQAAAAAAPv/AQAAAAQAAAAAAAQAAQAAAAQAAAAAAAUAAQAAAAQAAAABAPv/AQAAAAQAAAABAAQAAQAAAAQAAAABAAUAAQAAAAQAAAACAPv/AQAAAAQAAAACAAQAAQAAAAQAAAACAAUAAQAAAAQAAAADAPr/AQABAAQAAAADAPv/AQAAAAQAAAADAAQAAQAAAAQAAAADAAUAAQAAAAQAAAAEAPr/AQABAAQAAAAEAPv/AQABAAQAAAAEAPz/AQABAAQAAAAEAP3/AQABAAQAAAAEAP7/AQAAAAQAAAAEAP//AQAAAAQAAAAEAAAAAQAAAAQAAAAEAAEAAQAAAAQAAAAEAAIAAQAAAAQAAAAEAAMAAQAAAAQAAAAEAAQAAQAAAAQAAAAEAAUAAQAAAAQAAAAFAPr/AQABAAQAAAAFAPv/AQABAAQAAAAFAPz/AQABAAQAAAAFAP3/AQABAAQAAAAFAP7/AQAAAAQAAAAFAP//AQAAAAQAAAAFAAAAAQAAAAQAAAAFAAEAAQAAAAQAAAAFAAIAAQAAAAQAAAAFAAMAAQAAAAQAAAAFAAQAAQAAAAQAAAAFAAUAAQAAAAQAAAAGAPj/AQABAAQAAAAGAPn/AQABAAQAAAAGAPr/AQABAAQAAAAGAPv/AQABAAQAAAAGAPz/AQABAAQAAAAHAPj/AQABAAQAAAAHAPn/AQABAAQAAAAHAPr/AQABAAQAAAAHAPv/AQABAAQAAAAHAPz/AQABAAQAAAAIAPj/AQABAAQAAAAIAPn/AQABAAQAAAAIAPr/AQABAAQAAAAIAPv/AQABAAQAAAAIAPz/AQABAAQAAAAJAPj/AQABAAQAAAAJAPn/AQABAAQAAAAJAPr/AQABAAQAAAAJAPv/AQABAAQAAAAJAPz/AQABAAQAAAAKAPj/AQABAAQAAAAKAPn/AQABAAQAAAAKAPr/AQABAAQAAAAKAPv/AQABAAQAAAAKAPz/AQABAAQAAAAEAPn/AQABAAQAAAAGAP3/AQABAAQAAAAHAP3/AQABAAQAAAAIAP3/AQABAAQAAAAIAP7/AQABAAQAAAAHAP7/AQABAAQAAAAEAPj/AQABAAQAAAAEAPf/AQABAAQAAAAFAPf/AQABAAQAAAAFAPj/AQABAAQAAAAFAPn/AQABAAQAAAAHAPf/AQABAAQAAAAGAPf/AQABAAQAAAAIAPf/AQABAAQAAAAJAPf/AQABAAQAAAAKAPf/AQABAAQAAAALAPn/AQABAAQAAAALAPr/AQABAAQAAAALAPv/AQABAAQAAAAKAP3/AQABAAQAAAAJAP3/AQABAAQAAAD3//v/AQAAAAQAAAD3//z/AQAAAAQAAAD3//3/AQAAAAQAAAD3//7/AQAAAAQAAAD3////AQAAAAQAAAD3/wAAAQAAAAQAAAD3/wEAAQAAAAQAAAD3/wIAAQAAAAQAAAD3/wMAAQAAAAQAAAD3/wQAAQAAAAQAAAD3/wUAAQAAAAQAAAD4//v/AQAAAAQAAAD4//z/AQAAAAQAAAD4//3/AQAAAAQAAAD4//7/AQAAAAQAAAD4////AQAAAAQAAAD4/wAAAQAAAAQAAAD4/wEAAQAAAAQAAAD4/wIAAQAAAAQAAAD4/wMAAQAAAAQAAAD4/wQAAQAAAAQAAAD4/wUAAQAAAAQAAAD5//v/AQAAAAQAAAD5//z/AQAAAAQAAAD5//3/AQAAAAQAAAD5//7/AQAAAAQAAAD5////AQAAAAQAAAD5/wAAAQAAAAQAAAD5/wEAAQAAAAQAAAD5/wIAAQAAAAQAAAD5/wMAAQAAAAQAAAD5/wQAAQAAAAQAAAD5/wUAAQAAAAQAAAAGAP//AQAAAAQAAAAGAAAAAQAAAAQAAAAGAAEAAQAAAAQAAAAGAAIAAQAAAAQAAAAGAAMAAQAAAAQAAAAGAAQAAQAAAAQAAAAGAAUAAQAAAAQAAAAHAP//AQAAAAQAAAAHAAAAAQAAAAQAAAAHAAEAAQAAAAQAAAAHAAIAAQAAAAQAAAAHAAMAAQAAAAQAAAAHAAQAAQAAAAQAAAAHAAUAAQAAAAQAAAAIAP//AQAAAAQAAAAIAAAAAQAAAAQAAAAIAAEAAQAAAAQAAAAIAAIAAQAAAAQAAAAIAAMAAQAAAAQAAAAIAAQAAQAAAAQAAAAIAAUAAQAAAAQAAAAJAP//AQAAAAQAAAAJAAAAAQAAAAQAAAAJAAEAAQAAAAQAAAAJAAIAAQAAAAQAAAAJAAMAAQAAAAQAAAAJAAQAAQAAAAQAAAAJAAUAAQAAAAQAAAAJAP7/AQABAAQAAAAGAP7/AQABAAQAAAA=")
|
tile_map_data = PackedByteArray("AAD8//z/AQAAAAQAAAD8//3/AQAAAAQAAAD8//7/AQAAAAQAAAD8////AQAAAAQAAAD9//z/AQAAAAQAAAD9//3/AQAAAAQAAAD9//7/AQAAAAQAAAD9////AQAAAAQAAAD+//z/AQAAAAQAAAD+//3/AQAAAAQAAAD+//7/AQAAAAQAAAD+////AQAAAAQAAAD///z/AQAAAAQAAAD///3/AQAAAAQAAAD///7/AQAAAAQAAAD/////AQAAAAQAAAD8/wAAAQAAAAQAAAD8/wEAAQAAAAQAAAD8/wIAAQAAAAQAAAD8/wMAAQAAAAQAAAD9/wAAAQAAAAQAAAD9/wEAAQAAAAQAAAD9/wIAAQAAAAQAAAD9/wMAAQAAAAQAAAD+/wAAAQAAAAQAAAD+/wEAAQAAAAQAAAD+/wIAAQAAAAQAAAD+/wMAAQAAAAQAAAD//wAAAQAAAAQAAAD//wEAAQAAAAQAAAD//wIAAQAAAAQAAAD//wMAAQAAAAQAAAAAAPz/AQAAAAQAAAAAAP3/AQAAAAQAAAAAAP7/AQAAAAQAAAAAAP//AQAAAAQAAAAAAAAAAQAAAAQAAAAAAAEAAQAAAAQAAAAAAAIAAQAAAAQAAAAAAAMAAQAAAAQAAAABAPz/AQAAAAQAAAABAP3/AQAAAAQAAAABAP7/AQAAAAQAAAABAP//AQAAAAQAAAABAAAAAQAAAAQAAAABAAEAAQAAAAQAAAABAAIAAQAAAAQAAAABAAMAAQAAAAQAAAACAPz/AQAAAAQAAAACAP3/AQAAAAQAAAACAP7/AQAAAAQAAAACAP//AQAAAAQAAAACAAAAAQAAAAQAAAACAAEAAQAAAAQAAAACAAIAAQAAAAQAAAACAAMAAQAAAAQAAAADAPz/AQAAAAQAAAADAP3/AQAAAAQAAAADAP7/AQAAAAQAAAADAP//AQAAAAQAAAADAAAAAQAAAAQAAAADAAEAAQAAAAQAAAADAAIAAQAAAAQAAAADAAMAAQAAAAQAAAD6//v/AQAAAAQAAAD6//z/AQAAAAQAAAD6//3/AQAAAAQAAAD6//7/AQAAAAQAAAD6////AQAAAAQAAAD6/wAAAQAAAAQAAAD6/wEAAQAAAAQAAAD6/wIAAQAAAAQAAAD6/wMAAQAAAAQAAAD6/wQAAQAAAAQAAAD6/wUAAQAAAAQAAAD7//v/AQAAAAQAAAD7//z/AQAAAAQAAAD7//3/AQAAAAQAAAD7//7/AQAAAAQAAAD7////AQAAAAQAAAD7/wAAAQAAAAQAAAD7/wEAAQAAAAQAAAD7/wIAAQAAAAQAAAD7/wMAAQAAAAQAAAD7/wQAAQAAAAQAAAD7/wUAAQAAAAQAAAD8//v/AQAAAAQAAAD8/wQAAQAAAAQAAAD8/wUAAQAAAAQAAAD9//v/AQAAAAQAAAD9/wQAAQAAAAQAAAD9/wUAAQAAAAQAAAD+//v/AQAAAAQAAAD+/wQAAQAAAAQAAAD+/wUAAQAAAAQAAAD///v/AQAAAAQAAAD//wQAAQAAAAQAAAD//wUAAQAAAAQAAAAAAPv/AQAAAAQAAAAAAAQAAQAAAAQAAAAAAAUAAQAAAAQAAAABAPv/AQAAAAQAAAABAAQAAQAAAAQAAAABAAUAAQAAAAQAAAACAPv/AQAAAAQAAAACAAQAAQAAAAQAAAACAAUAAQAAAAQAAAADAPr/AQABAAQAAAADAPv/AQAAAAQAAAADAAQAAQAAAAQAAAADAAUAAQAAAAQAAAAEAPr/AQABAAQAAAAEAPv/AQABAAQAAAAEAPz/AQABAAQAAAAEAP3/AQABAAQAAAAEAP7/AQAAAAQAAAAEAP//AQAAAAQAAAAEAAAAAQAAAAQAAAAEAAEAAQAAAAQAAAAEAAIAAQAAAAQAAAAEAAMAAQAAAAQAAAAEAAQAAQAAAAQAAAAEAAUAAQAAAAQAAAAFAPr/AQABAAQAAAAFAPv/AQABAAQAAAAFAPz/AQABAAQAAAAFAP3/AQABAAQAAAAFAP7/AQAAAAQAAAAFAP//AQAAAAQAAAAFAAAAAQAAAAQAAAAFAAEAAQAAAAQAAAAFAAIAAQAAAAQAAAAFAAMAAQAAAAQAAAAFAAQAAQAAAAQAAAAFAAUAAQAAAAQAAAAGAPj/AQABAAQAAAAGAPn/AQABAAQAAAAGAPr/AQABAAQAAAAGAPv/AQABAAQAAAAGAPz/AQABAAQAAAAHAPj/AQABAAQAAAAHAPn/AQABAAQAAAAHAPr/AQABAAQAAAAHAPv/AQABAAQAAAAHAPz/AQABAAQAAAAIAPj/AQABAAQAAAAIAPn/AQABAAQAAAAIAPr/AQABAAQAAAAIAPv/AQABAAQAAAAIAPz/AQABAAQAAAAJAPj/AQABAAQAAAAJAPn/AQABAAQAAAAJAPr/AQABAAQAAAAJAPv/AQABAAQAAAAJAPz/AQABAAQAAAAKAPj/AQABAAQAAAAKAPn/AQABAAQAAAAKAPr/AQABAAQAAAAKAPv/AQABAAQAAAAKAPz/AQABAAQAAAAEAPn/AQABAAQAAAAGAP3/AQABAAQAAAAHAP3/AQABAAQAAAAIAP3/AQABAAQAAAAIAP7/AQABAAQAAAAHAP7/AQABAAQAAAAEAPj/AQABAAQAAAAEAPf/AQABAAQAAAAFAPf/AQABAAQAAAAFAPj/AQABAAQAAAAFAPn/AQABAAQAAAAHAPf/AQABAAQAAAAGAPf/AQABAAQAAAAIAPf/AQABAAQAAAAJAPf/AQABAAQAAAAKAPf/AQABAAQAAAALAPn/AQABAAQAAAALAPr/AQABAAQAAAALAPv/AQABAAQAAAAKAP3/AQABAAQAAAAJAP3/AQABAAQAAAD3//v/AQAAAAQAAAD3//z/AQAAAAQAAAD3//3/AQAAAAQAAAD3//7/AQAAAAQAAAD3////AQAAAAQAAAD3/wAAAQAAAAQAAAD3/wEAAQAAAAQAAAD3/wIAAQAAAAQAAAD3/wMAAQAAAAQAAAD3/wQAAQAAAAQAAAD3/wUAAQAAAAQAAAD4//v/AQAAAAQAAAD4//z/AQAAAAQAAAD4//3/AQAAAAQAAAD4//7/AQAAAAQAAAD4////AQAAAAQAAAD4/wAAAQAAAAQAAAD4/wEAAQAAAAQAAAD4/wIAAQAAAAQAAAD4/wMAAQAAAAQAAAD4/wQAAQAAAAQAAAD4/wUAAQAAAAQAAAD5//v/AQAAAAQAAAD5//z/AQAAAAQAAAD5//3/AQAAAAQAAAD5//7/AQAAAAQAAAD5////AQAAAAQAAAD5/wAAAQAAAAQAAAD5/wEAAQAAAAQAAAD5/wIAAQAAAAQAAAD5/wMAAQAAAAQAAAD5/wQAAQAAAAQAAAD5/wUAAQAAAAQAAAAGAP//AQAAAAQAAAAGAAAAAQAAAAQAAAAGAAEAAQAAAAQAAAAGAAIAAQAAAAQAAAAGAAMAAQAAAAQAAAAGAAQAAQAAAAQAAAAGAAUAAQAAAAQAAAAHAP//AQAAAAQAAAAHAAAAAQAAAAQAAAAHAAEAAQAAAAQAAAAHAAIAAQAAAAQAAAAHAAMAAQAAAAQAAAAHAAQAAQAAAAQAAAAHAAUAAQAAAAQAAAAIAP//AQAAAAQAAAAIAAAAAQAAAAQAAAAIAAEAAQAAAAQAAAAIAAIAAQAAAAQAAAAIAAMAAQAAAAQAAAAIAAQAAQAAAAQAAAAIAAUAAQAAAAQAAAAJAP//AQAAAAQAAAAJAAAAAQAAAAQAAAAJAAEAAQAAAAQAAAAJAAIAAQAAAAQAAAAJAAMAAQAAAAQAAAAJAAQAAQAAAAQAAAAJAAUAAQAAAAQAAAAJAP7/AQABAAQAAAAGAP7/AQABAAQAAAA=")
|
||||||
tile_set = ExtResource("1_m1b5j")
|
tile_set = ExtResource("1_m1b5j")
|
||||||
|
|
||||||
[node name="Foreground" type="TileMapLayer" parent="Root"]
|
[node name="Foreground" type="TileMapLayer" parent="World"]
|
||||||
tile_map_data = PackedByteArray("AAD/////AQAAAAMAAAD8//3/AQABAAMAAAD9//3/AQABAAMAAAD9//7/AQABAAMAAAD9/wAAAQABAAMAAAD9/wEAAQABAAMAAAD8/wEAAQABAAMAAAAEAPv/AQACAAMAAAAGAP3/AQACAAMAAAAHAP7/AQACAAMAAAAIAP7/AQACAAMAAAAJAP7/AQACAAMAAAAGAPn/AQACAAMAAAAGAPr/AQACAAMAAAAGAPv/AQACAAMAAAAHAPv/AQACAAMAAAAIAPv/AQACAAMAAAAIAPz/AQACAAMAAAAJAPz/AQACAAMAAAAKAPz/AQACAAMAAAAKAPv/AQACAAMAAAAJAPv/AQACAAMAAAAIAPr/AQACAAMAAAAHAPr/AQACAAMAAAAHAPn/AQACAAMAAAD3//v/AQABAAMAAAD3//z/AQABAAMAAAD3//3/AQABAAMAAAD3//7/AQABAAMAAAD3////AQABAAMAAAD3/wAAAQABAAMAAAD3/wEAAQABAAMAAAD3/wIAAQABAAMAAAD4//v/AQABAAMAAAD4//z/AQABAAMAAAD4//3/AQABAAMAAAD4//7/AQABAAMAAAD4////AQABAAMAAAD4/wAAAQABAAMAAAD4/wEAAQABAAMAAAD4/wIAAQABAAMAAAD3/wMAAQABAAMAAAD3/wQAAQABAAMAAAD3/wUAAQABAAMAAAD4/wMAAQABAAMAAAD4/wQAAQABAAMAAAD4/wUAAQABAAMAAAD5/wUAAQABAAMAAAD6/wUAAQABAAMAAAD7/wUAAQABAAMAAAD8/wUAAQABAAMAAAD9/wUAAQABAAMAAAD+/wUAAQABAAMAAAD//wUAAQABAAMAAAAAAAUAAQABAAMAAAABAAUAAQABAAMAAAACAAUAAQABAAMAAAADAAUAAQABAAMAAAAEAAUAAQABAAMAAAAFAAUAAQABAAMAAAAGAAUAAQABAAMAAAAHAAUAAQABAAMAAAAIAAUAAQABAAMAAAAJAAUAAQABAAMAAAD5//v/AQABAAMAAAD6//v/AQABAAMAAAD7//v/AQABAAMAAAD8//v/AQABAAMAAAD9//v/AQABAAMAAAD+//v/AQABAAMAAAD///v/AQABAAMAAAAAAPv/AQABAAMAAAABAPv/AQABAAMAAAACAPv/AQABAAMAAAADAPv/AQABAAMAAAAJAP//AQABAAMAAAAJAAAAAQABAAMAAAAJAAEAAQABAAMAAAAJAAIAAQABAAMAAAAJAAMAAQABAAMAAAAJAAQAAQABAAMAAAD7/wEAAQABAAMAAAD7//3/AQABAAMAAAD6//3/AQABAAMAAAD6/wEAAQABAAMAAAD6//7/AQABAAMAAAD6/wAAAQABAAMAAAD6/wQAAAAAAAAAAgD5/wQAAAAAAAAAAgD5/wMAAAAAAAAAAgAEAAEAAAAAAAAAAQADAAEAAAAAAAAAAQADAAIAAAAAAAAAAQADAAMAAAAAAAAAAQACAAMAAAAAAAAAAQA=")
|
tile_map_data = PackedByteArray("AAD/////AQAAAAMAAAD8//3/AQABAAMAAAD9//3/AQABAAMAAAD9//7/AQABAAMAAAD9/wAAAQABAAMAAAD9/wEAAQABAAMAAAD8/wEAAQABAAMAAAAEAPv/AQACAAMAAAAGAP3/AQACAAMAAAAHAP7/AQACAAMAAAAIAP7/AQACAAMAAAAJAP7/AQACAAMAAAAGAPn/AQACAAMAAAAGAPr/AQACAAMAAAAGAPv/AQACAAMAAAAHAPv/AQACAAMAAAAIAPv/AQACAAMAAAAIAPz/AQACAAMAAAAJAPz/AQACAAMAAAAKAPz/AQACAAMAAAAKAPv/AQACAAMAAAAJAPv/AQACAAMAAAAIAPr/AQACAAMAAAAHAPr/AQACAAMAAAAHAPn/AQACAAMAAAD3//v/AQABAAMAAAD3//z/AQABAAMAAAD3//3/AQABAAMAAAD3//7/AQABAAMAAAD3////AQABAAMAAAD3/wAAAQABAAMAAAD3/wEAAQABAAMAAAD3/wIAAQABAAMAAAD4//v/AQABAAMAAAD4//z/AQABAAMAAAD4//3/AQABAAMAAAD4//7/AQABAAMAAAD4////AQABAAMAAAD4/wAAAQABAAMAAAD4/wEAAQABAAMAAAD4/wIAAQABAAMAAAD3/wMAAQABAAMAAAD3/wQAAQABAAMAAAD3/wUAAQABAAMAAAD4/wMAAQABAAMAAAD4/wQAAQABAAMAAAD4/wUAAQABAAMAAAD5/wUAAQABAAMAAAD6/wUAAQABAAMAAAD7/wUAAQABAAMAAAD8/wUAAQABAAMAAAD9/wUAAQABAAMAAAD+/wUAAQABAAMAAAD//wUAAQABAAMAAAAAAAUAAQABAAMAAAABAAUAAQABAAMAAAACAAUAAQABAAMAAAADAAUAAQABAAMAAAAEAAUAAQABAAMAAAAFAAUAAQABAAMAAAAGAAUAAQABAAMAAAAHAAUAAQABAAMAAAAIAAUAAQABAAMAAAAJAAUAAQABAAMAAAD5//v/AQABAAMAAAD6//v/AQABAAMAAAD7//v/AQABAAMAAAD8//v/AQABAAMAAAD9//v/AQABAAMAAAD+//v/AQABAAMAAAD///v/AQABAAMAAAAAAPv/AQABAAMAAAABAPv/AQABAAMAAAACAPv/AQABAAMAAAADAPv/AQABAAMAAAAJAP//AQABAAMAAAAJAAAAAQABAAMAAAAJAAEAAQABAAMAAAAJAAIAAQABAAMAAAAJAAMAAQABAAMAAAAJAAQAAQABAAMAAAD7/wEAAQABAAMAAAD7//3/AQABAAMAAAD6//3/AQABAAMAAAD6/wEAAQABAAMAAAD6//7/AQABAAMAAAD6/wAAAQABAAMAAAD6/wQAAAAAAAAAAgD5/wQAAAAAAAAAAgD5/wMAAAAAAAAAAgAEAAEAAAAAAAAAAQADAAEAAAAAAAAAAQADAAIAAAAAAAAAAQADAAMAAAAAAAAAAQACAAMAAAAAAAAAAQA=")
|
||||||
tile_set = ExtResource("2_u2ss0")
|
tile_set = ExtResource("2_u2ss0")
|
||||||
|
|
||||||
[node name="Player" parent="Root" instance=ExtResource("3_u2ss0")]
|
[node name="Player" parent="World" instance=ExtResource("3_u2ss0")]
|
||||||
position = Vector2(16, 16)
|
position = Vector2(16, 16)
|
||||||
|
|
||||||
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="UI" parent="CanvasLayer" node_paths=PackedStringArray("player") instance=ExtResource("4_356oe")]
|
||||||
|
player = NodePath("../../World/Player")
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 319 B |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://4rxwcyoye2sa"
|
||||||
|
path="res://.godot/imported/blueberry_item.png-0fb3d1a37e74bfb84616e04c6183a597.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/blueberry_item.png"
|
||||||
|
dest_files=["res://.godot/imported/blueberry_item.png-0fb3d1a37e74bfb84616e04c6183a597.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 426 B |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://noksw27wlt1y"
|
||||||
|
path="res://.godot/imported/blueberry_plant.png-4986df59aeb9b01dddc5281f264ea4c6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/blueberry_plant.png"
|
||||||
|
dest_files=["res://.godot/imported/blueberry_plant.png-4986df59aeb9b01dddc5281f264ea4c6.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 317 B |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d11rkcho3c38n"
|
||||||
|
path="res://.godot/imported/cowberry_item.png-1081d5db15f7b049712ccab0622ef23b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/cowberry_item.png"
|
||||||
|
dest_files=["res://.godot/imported/cowberry_item.png-1081d5db15f7b049712ccab0622ef23b.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 424 B |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c3td3bhrbd0kp"
|
||||||
|
path="res://.godot/imported/cowberry_plant.png-efaa77d811316cc5b452b7c01a67aefd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/cowberry_plant.png"
|
||||||
|
dest_files=["res://.godot/imported/cowberry_plant.png-efaa77d811316cc5b452b7c01a67aefd.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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 288 B |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://1udkm2j25i8o"
|
||||||
|
path="res://.godot/imported/generic_picked.png-ef06719c1fc035896cd7963ba5e40a37.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/generic_picked.png"
|
||||||
|
dest_files=["res://.godot/imported/generic_picked.png-ef06719c1fc035896cd7963ba5e40a37.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
|
||||||
|
|
@ -1,18 +1,6 @@
|
||||||
use godot::{classes::*, obj::WithUserSignals, prelude::*};
|
use godot::{classes::*, prelude::*};
|
||||||
|
|
||||||
use crate::{
|
use crate::prelude::*;
|
||||||
grid::*,
|
|
||||||
turn::*,
|
|
||||||
utils::{find_by_type_in_children, find_in_parents},
|
|
||||||
};
|
|
||||||
|
|
||||||
#[derive(GodotConvert, Var, Export, Clone, Copy, Default, Debug, PartialEq, Eq)]
|
|
||||||
#[godot(via = GString)]
|
|
||||||
pub enum ItemKind {
|
|
||||||
#[default]
|
|
||||||
Blueberry,
|
|
||||||
Cowberry,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, GodotClass)]
|
#[derive(Debug, GodotClass)]
|
||||||
#[class(init, base=Node)]
|
#[class(init, base=Node)]
|
||||||
|
|
@ -50,7 +38,7 @@ pub struct Gatherable {
|
||||||
count: i32,
|
count: i32,
|
||||||
#[export]
|
#[export]
|
||||||
#[init(val = true)]
|
#[init(val = true)]
|
||||||
pick_automatically: bool,
|
remove_automatically: bool,
|
||||||
|
|
||||||
#[var(get = get_is_picked, set = set_is_picked)]
|
#[var(get = get_is_picked, set = set_is_picked)]
|
||||||
_is_picked: bool,
|
_is_picked: bool,
|
||||||
|
|
@ -58,9 +46,6 @@ pub struct Gatherable {
|
||||||
base: Base<Node>,
|
base: Base<Node>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[godot_api]
|
|
||||||
impl INode for Gatherable {}
|
|
||||||
|
|
||||||
#[godot_api]
|
#[godot_api]
|
||||||
impl Gatherable {
|
impl Gatherable {
|
||||||
#[func]
|
#[func]
|
||||||
|
|
@ -110,7 +95,7 @@ impl Gatherable {
|
||||||
gatherer.bind_mut().gather(self.item, self.count);
|
gatherer.bind_mut().gather(self.item, self.count);
|
||||||
let item = self.item.to_godot().clone();
|
let item = self.item.to_godot().clone();
|
||||||
let count = self.count;
|
let count = self.count;
|
||||||
if self.pick_automatically {
|
if self.remove_automatically {
|
||||||
self.set_is_picked(true);
|
self.set_is_picked(true);
|
||||||
}
|
}
|
||||||
self.signals().gathered().emit(&item, count);
|
self.signals().gathered().emit(&item, count);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use godot::{classes::*, obj::WithUserSignals, prelude::*};
|
use godot::{classes::*, prelude::*};
|
||||||
|
|
||||||
use crate::utils::find_in_parents;
|
use crate::prelude::*;
|
||||||
|
|
||||||
#[derive(Debug, GodotClass)]
|
#[derive(Debug, GodotClass)]
|
||||||
#[class(init, base=Node)]
|
#[class(init, base=Node)]
|
||||||
|
|
@ -231,3 +231,40 @@ impl Mover {
|
||||||
#[signal]
|
#[signal]
|
||||||
fn finished_moving(coords: Vector2i);
|
fn finished_moving(coords: Vector2i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #[derive(Debug, GodotClass)]
|
||||||
|
// #[class(init, base=Node)]
|
||||||
|
// pub struct EnterTrigger {
|
||||||
|
// #[export]
|
||||||
|
// grid: Option<Gd<GridPosition>>,
|
||||||
|
|
||||||
|
// base: Base<Node>,
|
||||||
|
// }
|
||||||
|
|
||||||
|
// #[godot_api]
|
||||||
|
// impl EnterTrigger {
|
||||||
|
// #[func]
|
||||||
|
// fn on_turn_end(&mut self, actor: Option<Gd<TurnActor>>, _action: GString) {
|
||||||
|
// let actor = match actor {
|
||||||
|
// Some(actor) => actor,
|
||||||
|
// None => return,
|
||||||
|
// };
|
||||||
|
// let actor_grid = match find_in_parents::<GridPosition, TurnActor>(actor.clone()) {
|
||||||
|
// Some(grid) => grid,
|
||||||
|
// None => return,
|
||||||
|
// };
|
||||||
|
// let my_coords = self
|
||||||
|
// .grid
|
||||||
|
// .as_ref()
|
||||||
|
// .expect("Getting Grid from EnterTrigger")
|
||||||
|
// .bind()
|
||||||
|
// .get_coords();
|
||||||
|
// let coords = actor_grid.bind().get_coords();
|
||||||
|
// if my_coords == coords {
|
||||||
|
// self.signals().is_inside().emit(&actor_grid, &actor)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// #[signal]
|
||||||
|
// fn is_inside(grid: Gd<GridPosition>, actor: Gd<TurnActor>);
|
||||||
|
// }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use godot::{classes::*, prelude::*};
|
||||||
|
|
||||||
|
type InventoryMap = HashMap<ItemKind, i32>;
|
||||||
|
|
||||||
|
#[derive(GodotConvert, Var, Export, Clone, Copy, Default, Debug, PartialEq, Eq, Hash)]
|
||||||
|
#[godot(via = GString)]
|
||||||
|
pub enum ItemKind {
|
||||||
|
#[default]
|
||||||
|
Blueberry,
|
||||||
|
Cowberry,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(GodotClass)]
|
||||||
|
#[class(init, base=Resource)]
|
||||||
|
pub struct Inventory {
|
||||||
|
#[export]
|
||||||
|
items: Dictionary,
|
||||||
|
|
||||||
|
base: Base<Resource>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[godot_api]
|
||||||
|
impl Inventory {
|
||||||
|
pub fn cleanup(&mut self) {
|
||||||
|
self.items_from_map(self.items_as_map());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[func]
|
||||||
|
pub fn get_item_count(&self, item: ItemKind) -> i32 {
|
||||||
|
self.items
|
||||||
|
.get_or_nil(item.to_godot())
|
||||||
|
.try_to::<i32>()
|
||||||
|
.unwrap_or_default()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[func]
|
||||||
|
pub fn insert(&mut self, item: ItemKind, count: i32) {
|
||||||
|
let mut items = self.items_as_map();
|
||||||
|
items
|
||||||
|
.entry(item)
|
||||||
|
.and_modify(|amount| *amount += count)
|
||||||
|
.or_insert(count);
|
||||||
|
self.items_from_map(items);
|
||||||
|
self.base_mut().emit_changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn items_as_map(&self) -> InventoryMap {
|
||||||
|
let mut result = InventoryMap::new();
|
||||||
|
for (key, value) in self.items.iter_shared() {
|
||||||
|
let item = match key
|
||||||
|
.try_to::<GString>()
|
||||||
|
.and_then(ItemKind::try_from_godot)
|
||||||
|
.ok()
|
||||||
|
{
|
||||||
|
Some(item) => item,
|
||||||
|
None => continue,
|
||||||
|
};
|
||||||
|
let count = value.try_to::<i32>().unwrap_or_default();
|
||||||
|
result.insert(item, count);
|
||||||
|
}
|
||||||
|
result
|
||||||
|
}
|
||||||
|
|
||||||
|
fn items_from_map(&mut self, items: InventoryMap) {
|
||||||
|
let mut item_dict = Dictionary::new();
|
||||||
|
for (item, count) in items.iter() {
|
||||||
|
item_dict.set(item.to_godot(), *count);
|
||||||
|
}
|
||||||
|
self.items = item_dict;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(GodotClass)]
|
||||||
|
#[class(init, base=Node)]
|
||||||
|
pub struct EntityInventory {
|
||||||
|
#[export]
|
||||||
|
inventory: Option<Gd<Inventory>>,
|
||||||
|
|
||||||
|
base: Base<Node>,
|
||||||
|
}
|
||||||
|
|
@ -4,8 +4,17 @@ pub struct VelhoExtension;
|
||||||
|
|
||||||
mod gathering;
|
mod gathering;
|
||||||
mod grid;
|
mod grid;
|
||||||
|
mod inventory;
|
||||||
mod turn;
|
mod turn;
|
||||||
mod utils;
|
mod utils;
|
||||||
|
|
||||||
|
pub mod prelude {
|
||||||
|
pub use super::gathering::*;
|
||||||
|
pub use super::grid::*;
|
||||||
|
pub use super::inventory::*;
|
||||||
|
pub use super::turn::*;
|
||||||
|
pub use super::utils::*;
|
||||||
|
}
|
||||||
|
|
||||||
#[gdextension]
|
#[gdextension]
|
||||||
unsafe impl ExtensionLibrary for VelhoExtension {}
|
unsafe impl ExtensionLibrary for VelhoExtension {}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ use godot::{
|
||||||
prelude::*,
|
prelude::*,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::utils::find_in_parents;
|
use crate::prelude::*;
|
||||||
|
|
||||||
#[derive(Debug, GodotClass)]
|
#[derive(Debug, GodotClass)]
|
||||||
#[class(init, base=Node)]
|
#[class(init, base=Node)]
|
||||||
|
|
@ -66,7 +66,6 @@ impl TurnManager {
|
||||||
self.current_actor = self.round_queue.pop();
|
self.current_actor = self.round_queue.pop();
|
||||||
if let Some(mut actor) = self.current_actor.clone() {
|
if let Some(mut actor) = self.current_actor.clone() {
|
||||||
if actor.is_instance_valid() && !actor.is_queued_for_deletion() {
|
if actor.is_instance_valid() && !actor.is_queued_for_deletion() {
|
||||||
godot_print!("Next up: \"{}\" {:?}", actor.get_path(), actor);
|
|
||||||
actor
|
actor
|
||||||
.signals()
|
.signals()
|
||||||
.turn_ended()
|
.turn_ended()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue