Added simple day-night system and regrowing gatherables
parent
e5b39e4bf5
commit
7e03a236fa
|
|
@ -0,0 +1,14 @@
|
|||
extends Node
|
||||
|
||||
@export var day_sprite: CanvasItem
|
||||
@export var night_sprite: CanvasItem
|
||||
|
||||
func on_day_start():
|
||||
show_sprite(true)
|
||||
|
||||
func on_day_end():
|
||||
show_sprite(false)
|
||||
|
||||
func show_sprite(is_day: bool):
|
||||
day_sprite.visible = is_day
|
||||
night_sprite.visible = !is_day
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cguia25bxah4j
|
||||
|
|
@ -1,17 +1,18 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://drs6h7ks4r2ta"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://drs6h7ks4r2ta"]
|
||||
|
||||
[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://sxo578w2yds2" path="res://prefabs/player/player_input.gd" id="2_rdx4y"]
|
||||
[ext_resource type="Script" uid="uid://swwas6oe75sc" path="res://nodes/mover_sprite_flipper.gd" id="3_klv5p"]
|
||||
[ext_resource type="Inventory" uid="uid://dm71wjetr4e52" path="res://prefabs/player/player_inventory.tres" id="4_binfn"]
|
||||
[ext_resource type="Script" uid="uid://cguia25bxah4j" path="res://nodes/sprite_daytime_toggler.gd" id="4_iylwk"]
|
||||
|
||||
[node name="Player" type="GridPosition" node_paths=PackedStringArray("gatherer", "entity_inventory")]
|
||||
script = ExtResource("1_wv1mm")
|
||||
gatherer = NodePath("Gatherer")
|
||||
entity_inventory = NodePath("EntityInventory")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." node_paths=PackedStringArray("mover")]
|
||||
[node name="Day Sprite" type="Sprite2D" parent="." node_paths=PackedStringArray("mover")]
|
||||
texture = ExtResource("1_72ieh")
|
||||
hframes = 8
|
||||
vframes = 8
|
||||
|
|
@ -19,12 +20,23 @@ frame = 1
|
|||
script = ExtResource("3_klv5p")
|
||||
mover = NodePath("../Mover")
|
||||
|
||||
[node name="Night Sprite" type="Sprite2D" parent="." node_paths=PackedStringArray("day_sprite", "night_sprite")]
|
||||
visible = false
|
||||
texture = ExtResource("1_72ieh")
|
||||
hframes = 8
|
||||
vframes = 8
|
||||
frame = 2
|
||||
script = ExtResource("4_iylwk")
|
||||
day_sprite = NodePath("../Day Sprite")
|
||||
night_sprite = NodePath(".")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
zoom = Vector2(2, 2)
|
||||
|
||||
[node name="Gatherer" type="Gatherer" parent="."]
|
||||
|
||||
[node name="Mover" type="Mover" parent="."]
|
||||
movement_speed = 20.0
|
||||
|
||||
[node name="TurnActor" type="TurnActor" parent="."]
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ func _input(event: InputEvent) -> void:
|
|||
if event.is_pressed():
|
||||
match event.keycode:
|
||||
KEY_SPACE:
|
||||
print("skip turn!")
|
||||
if try_perform(SkipAction.new()):
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
extends Node
|
||||
|
||||
@export var gatherable: Gatherable
|
||||
@export var days_to_grow = 1
|
||||
|
||||
var days_grown = 0
|
||||
|
||||
func on_day_start():
|
||||
if gatherable.get_is_picked():
|
||||
days_grown += 1
|
||||
if days_grown >= days_to_grow:
|
||||
gatherable.set_is_picked(false)
|
||||
days_grown = 0
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://u5cupgv1dx71
|
||||
|
|
@ -1,14 +1,11 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://8xuvjmyjkpeo"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://8xuvjmyjkpeo"]
|
||||
|
||||
[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"]
|
||||
[ext_resource type="Script" uid="uid://u5cupgv1dx71" path="res://prefabs/tiles/berry_grower.gd" id="4_17ku8"]
|
||||
|
||||
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||
script = ExtResource("1_jqgth")
|
||||
gatherable = NodePath("Gatherable")
|
||||
picked = NodePath("Picked")
|
||||
not_picked = NodePath("Not Picked")
|
||||
[node name="Blueberry" type="GridPosition"]
|
||||
|
||||
[node name="Not Picked" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_c8jpc")
|
||||
|
|
@ -19,3 +16,13 @@ texture = ExtResource("3_c8jpc")
|
|||
|
||||
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
||||
grid = NodePath("..")
|
||||
|
||||
[node name="Sprite Swapper" type="Node" parent="." node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||
script = ExtResource("1_jqgth")
|
||||
gatherable = NodePath("../Gatherable")
|
||||
picked = NodePath("../Picked")
|
||||
not_picked = NodePath("../Not Picked")
|
||||
|
||||
[node name="Grow" type="Node" parent="." node_paths=PackedStringArray("gatherable")]
|
||||
script = ExtResource("4_17ku8")
|
||||
gatherable = NodePath("../Gatherable")
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://l72f05nek0y4"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://l72f05nek0y4"]
|
||||
|
||||
[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="Texture2D" uid="uid://1udkm2j25i8o" path="res://sprites/generic_picked.png" id="3_ihdej"]
|
||||
[ext_resource type="Script" uid="uid://u5cupgv1dx71" path="res://prefabs/tiles/berry_grower.gd" id="4_y3wpw"]
|
||||
|
||||
[node name="Blueberry" type="GridPosition" node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||
script = ExtResource("2_kod7n")
|
||||
gatherable = NodePath("Gatherable")
|
||||
picked = NodePath("Picked")
|
||||
not_picked = NodePath("Not Picked")
|
||||
[node name="Blueberry" type="GridPosition"]
|
||||
|
||||
[node name="Not Picked" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_ihdej")
|
||||
|
|
@ -20,3 +17,13 @@ texture = ExtResource("3_ihdej")
|
|||
[node name="Gatherable" type="Gatherable" parent="." node_paths=PackedStringArray("grid")]
|
||||
grid = NodePath("..")
|
||||
item = "Cowberry"
|
||||
|
||||
[node name="Sprite Swapper" type="Node" parent="." node_paths=PackedStringArray("gatherable", "picked", "not_picked")]
|
||||
script = ExtResource("2_kod7n")
|
||||
gatherable = NodePath("../Gatherable")
|
||||
picked = NodePath("../Picked")
|
||||
not_picked = NodePath("../Not Picked")
|
||||
|
||||
[node name="Grow" type="Node" parent="." node_paths=PackedStringArray("gatherable")]
|
||||
script = ExtResource("4_y3wpw")
|
||||
gatherable = NodePath("../Gatherable")
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://ct5u214yridak" path="res://sprites/clock_hand.png" id="6_lntee"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mbf2n"]
|
||||
bg_color = Color(0.192157, 0.121569, 0.0313726, 0.231373)
|
||||
bg_color = Color(0.199373, 0.219407, 0.233619, 0.85098)
|
||||
|
||||
[node name="UI" type="Control"]
|
||||
layout_mode = 3
|
||||
|
|
@ -42,6 +42,10 @@ texture = ExtResource("2_htiv7")
|
|||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[node name="Padding" type="Control" parent="PanelContainer/Inventory/Blueberry"]
|
||||
custom_minimum_size = Vector2(8, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Cowberry" type="HBoxContainer" parent="PanelContainer/Inventory"]
|
||||
layout_mode = 2
|
||||
|
||||
|
|
@ -53,6 +57,10 @@ texture = ExtResource("3_gxjsb")
|
|||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[node name="Padding" type="Control" parent="PanelContainer/Inventory/Cowberry"]
|
||||
custom_minimum_size = Vector2(8, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Time" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
|
|
|
|||
|
|
@ -9,20 +9,25 @@
|
|||
_time_manager = NodePath("TimeManager")
|
||||
_turn_manager = NodePath("TurnManager")
|
||||
|
||||
[node name="TimeManager" type="TimeManager" parent="."]
|
||||
[node name="TimeManager" type="TimeManager" parent="." node_paths=PackedStringArray("night_timer")]
|
||||
night_timer = NodePath("Night Timer")
|
||||
|
||||
[node name="TurnManager" type="TurnManager" parent="."]
|
||||
[node name="Night Timer" type="Timer" parent="TimeManager"]
|
||||
one_shot = true
|
||||
|
||||
[node name="TurnManager" type="TurnManager" parent="." node_paths=PackedStringArray("time_manager")]
|
||||
time_manager = NodePath("../TimeManager")
|
||||
|
||||
[node name="World" type="Level" parent="." node_paths=PackedStringArray("background", "foreground")]
|
||||
background = NodePath("Background")
|
||||
foreground = NodePath("Foreground")
|
||||
|
||||
[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//z/AQAAAAQAAAD6//3/AQAAAAQAAAD6//7/AQAAAAQAAAD6////AQAAAAQAAAD6/wAAAQAAAAQAAAD6/wEAAQAAAAQAAAD6/wIAAQAAAAQAAAD6/wMAAQAAAAQAAAD7//z/AQAAAAQAAAD7//3/AQAAAAQAAAD7//7/AQAAAAQAAAD7////AQAAAAQAAAD7/wAAAQAAAAQAAAD7/wEAAQAAAAQAAAD7/wIAAQAAAAQAAAD7/wMAAQAAAAQAAAD7/wQAAQAAAAQAAAD8//v/AQAAAAQAAAD8/wQAAQAAAAQAAAD9//v/AQAAAAQAAAD9/wQAAQAAAAQAAAD9/wUAAQAAAAQAAAD+//v/AQAAAAQAAAD+/wQAAQAAAAQAAAD+/wUAAQAAAAQAAAD///v/AQAAAAQAAAD//wQAAQAAAAQAAAD//wUAAQAAAAQAAAAAAPv/AQAAAAQAAAAAAAQAAQAAAAQAAAAAAAUAAQAAAAQAAAABAPv/AQAAAAQAAAABAAQAAQAAAAQAAAABAAUAAQAAAAQAAAACAPv/AQAAAAQAAAACAAQAAQAAAAQAAAACAAUAAQAAAAQAAAADAPr/AQABAAQAAAADAPv/AQAAAAQAAAADAAQAAQAAAAQAAAAEAPr/AQABAAQAAAAEAPv/AQABAAQAAAAEAPz/AQABAAQAAAAEAP3/AQABAAQAAAAEAP7/AQAAAAQAAAAEAP//AQAAAAQAAAAEAAAAAQAAAAQAAAAEAAEAAQAAAAQAAAAEAAIAAQAAAAQAAAAEAAMAAQAAAAQAAAAEAAQAAQAAAAQAAAAFAPr/AQABAAQAAAAFAPv/AQABAAQAAAAFAPz/AQABAAQAAAAFAP3/AQABAAQAAAAFAP7/AQAAAAQAAAAFAP//AQAAAAQAAAAFAAAAAQAAAAQAAAAFAAEAAQAAAAQAAAAFAAIAAQAAAAQAAAAFAAMAAQAAAAQAAAAFAAQAAQAAAAQAAAAGAPj/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/AQABAAQAAAD4//3/AQAAAAQAAAD4//7/AQAAAAQAAAD4////AQAAAAQAAAD4/wAAAQAAAAQAAAD5//3/AQAAAAQAAAD5//7/AQAAAAQAAAD5////AQAAAAQAAAD5/wAAAQAAAAQAAAD5/wEAAQAAAAQAAAD5/wIAAQAAAAQAAAD5/wMAAQAAAAQAAAD5/wQAAQAAAAQAAAAGAP//AQAAAAQAAAAGAAAAAQAAAAQAAAAGAAEAAQAAAAQAAAAGAAIAAQAAAAQAAAAGAAMAAQAAAAQAAAAHAP//AQAAAAQAAAAHAAAAAQAAAAQAAAAHAAEAAQAAAAQAAAAIAP//AQAAAAQAAAAIAAAAAQAAAAQAAAAJAP//AQAAAAQAAAAJAP7/AQABAAQAAAAGAP7/AQABAAQAAAD6/wQAAQAAAAQAAAD4/wEAAQAAAAQAAAD4/wIAAQAAAAQAAAD4/wMAAQAAAAQAAAD4/wQAAQAAAAQAAAD5/wUAAQAAAAQAAAD6/wUAAQAAAAQAAAD4/wUAAQAAAAQAAAD7/wUAAQAAAAQAAAD7/wYAAQAAAAQAAAD8/wYAAQAAAAQAAAD8/wUAAQAAAAQAAAD3/wIAAQAAAAQAAAD3/wEAAQAAAAQAAAD3/wAAAQAAAAQAAAD3////AQAAAAQAAAD3//7/AQAAAAQAAAD3//3/AQAAAAQAAAD3//z/AQAAAAQAAAD4//z/AQAAAAQAAAD5//z/AQAAAAQAAAD5//v/AQAAAAQAAAD4//v/AQAAAAQAAAD6//v/AQAAAAQAAAD7//v/AQAAAAQAAAD9/wYAAQAAAAQAAAD+/wYAAQAAAAQAAAD//wYAAQAAAAQAAAD7//r/AQAAAAQAAAD8//r/AQAAAAQAAAD9//r/AQAAAAQAAAD+//r/AQAAAAQAAAD///r/AQAAAAQAAAAAAPr/AQAAAAQAAAABAPr/AQAAAAQAAAACAPr/AQAAAAQAAAD+//n/AQAAAAQAAAD///n/AQAAAAQAAAAAAPn/AQAAAAQAAAABAPn/AQAAAAQAAAACAPn/AQAAAAQAAAADAPn/AQAAAAQAAAA=")
|
||||
tile_set = ExtResource("1_m1b5j")
|
||||
|
||||
[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/wMAAAAAAAAAAgAEAAEAAAAAAAAAAQADAAEAAAAAAAAAAQADAAIAAAAAAAAAAQADAAMAAAAAAAAAAQACAAMAAAAAAAAAAQAEAAMAAAAAAAAAAQAFAAMAAAAAAAAAAQAFAAIAAAAAAAAAAQAFAAEAAAAAAAAAAQAEAAIAAAAAAAAAAwD7//7/AAAAAAAAAwA=")
|
||||
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/AQACAAMAAAD7/wEAAQABAAMAAAD7//3/AQABAAMAAAD6//3/AQABAAMAAAD6/wEAAQABAAMAAAD6//7/AQABAAMAAAD6/wAAAQABAAMAAAD6/wQAAAAAAAAAAgD5/wQAAAAAAAAAAgD5/wMAAAAAAAAAAgAEAAEAAAAAAAAAAQD7//7/AAAAAAAAAwD3//z/AQABAAMAAAD3//3/AQABAAMAAAD3//7/AQABAAMAAAD3////AQABAAMAAAD3/wAAAQABAAMAAAD3/wEAAQABAAMAAAD3/wIAAQABAAMAAAD4/wIAAQABAAMAAAD4/wMAAQABAAMAAAD4/wQAAQABAAMAAAD4/wUAAQABAAMAAAD5/wUAAQABAAMAAAD6/wUAAQABAAMAAAD7/wUAAQABAAMAAAD7/wYAAQABAAMAAAD8/wYAAQABAAMAAAD9/wYAAQABAAMAAAD+/wYAAQABAAMAAAD//wYAAQABAAMAAAD//wUAAQABAAMAAAAAAAUAAQABAAMAAAABAAUAAQABAAMAAAACAAUAAQABAAMAAAACAAQAAQABAAMAAAADAAQAAQABAAMAAAAEAAQAAQABAAMAAAAFAAQAAQABAAMAAAAFAAMAAQABAAMAAAAGAAMAAQABAAMAAAAGAAEAAQABAAMAAAAGAAIAAQABAAMAAAAHAAAAAQABAAMAAAAHAAEAAQABAAMAAAAIAP//AQABAAMAAAAIAAAAAQABAAMAAAAJAP//AQABAAMAAAD4//v/AQABAAMAAAD4//z/AQABAAMAAAD5//v/AQABAAMAAAD6//v/AQABAAMAAAD7//v/AQABAAMAAAD7//r/AQABAAMAAAD8//r/AQABAAMAAAD9//r/AQABAAMAAAD+//r/AQABAAMAAAD+//n/AQABAAMAAAD///n/AQABAAMAAAAAAPn/AQABAAMAAAABAPn/AQABAAMAAAACAPn/AQABAAMAAAADAPn/AQABAAMAAAACAPr/AQABAAMAAAACAPv/AQABAAMAAAADAPv/AQABAAMAAAAFAP//AQABAAMAAAAGAP//AQABAAMAAAAHAP//AQABAAMAAAAGAAAAAQABAAMAAAAFAP7/AQABAAMAAAAFAAEAAAAAAAAAAQAFAAIAAAAAAAAAAQAEAAIAAAAAAAAAAQAEAAMAAAAAAAAAAQAEAPn/AQACAAMAAAAEAPj/AQACAAMAAAAEAPf/AQACAAMAAAAFAPf/AQACAAMAAAAGAPf/AQACAAMAAAAHAPf/AQACAAMAAAAIAPf/AQACAAMAAAAJAPf/AQACAAMAAAAKAPf/AQACAAMAAAAKAPj/AQACAAMAAAAKAPn/AQACAAMAAAALAPn/AQACAAMAAAALAPr/AQACAAMAAAALAPv/AQACAAMAAAAKAP3/AQACAAMAAAAJAP3/AQACAAMAAAAGAP7/AQACAAMAAAA=")
|
||||
tile_set = ExtResource("2_u2ss0")
|
||||
|
||||
[node name="Player" parent="World" instance=ExtResource("3_u2ss0")]
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.4 KiB |
|
|
@ -52,6 +52,8 @@ pub struct TimeManager {
|
|||
#[export]
|
||||
#[init(val = 40)]
|
||||
day_length: i32,
|
||||
#[export]
|
||||
night_timer: Option<Gd<Timer>>,
|
||||
|
||||
#[var(get, set = set_time_of_day)]
|
||||
#[init(val = -1)]
|
||||
|
|
@ -64,7 +66,17 @@ pub struct TimeManager {
|
|||
}
|
||||
|
||||
#[godot_api]
|
||||
impl INode for TimeManager {}
|
||||
impl INode for TimeManager {
|
||||
fn ready(&mut self) {
|
||||
self.night_timer
|
||||
.clone()
|
||||
.unwrap()
|
||||
.signals()
|
||||
.timeout()
|
||||
.connect_other(self, Self::start_new_day);
|
||||
self.start_new_day();
|
||||
}
|
||||
}
|
||||
|
||||
#[godot_api]
|
||||
impl TimeManager {
|
||||
|
|
@ -92,6 +104,7 @@ impl TimeManager {
|
|||
self.set_time_of_day(self.time_of_day + amount);
|
||||
if self.is_day_over() {
|
||||
GameManager::get(self.to_gd()).propagate_call(calls::ON_DAY_END);
|
||||
self.night_timer.as_mut().unwrap().start();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ use crate::prelude::*;
|
|||
#[derive(Debug, GodotClass)]
|
||||
#[class(init, base=Node)]
|
||||
pub struct TurnManager {
|
||||
#[export]
|
||||
time_manager: Option<Gd<TimeManager>>,
|
||||
|
||||
registered_actors: HashSet<Gd<TurnActor>>,
|
||||
round_queue: Array<Gd<TurnActor>>,
|
||||
current_actor: Option<Gd<TurnActor>>,
|
||||
|
|
@ -25,7 +28,7 @@ impl INode for TurnManager {
|
|||
self.start_next_turn();
|
||||
}
|
||||
}
|
||||
if self.current_actor.is_none() && self.round_queue.is_empty() {
|
||||
if self.can_start_round() && self.current_actor.is_none() && self.round_queue.is_empty() {
|
||||
self.start_round();
|
||||
}
|
||||
}
|
||||
|
|
@ -46,6 +49,15 @@ impl TurnManager {
|
|||
.retain(|actor| actor.is_instance_valid() && !actor.is_queued_for_deletion());
|
||||
}
|
||||
|
||||
fn can_start_round(&self) -> bool {
|
||||
!self
|
||||
.time_manager
|
||||
.clone()
|
||||
.expect("Getting TimeManager for TurnManager")
|
||||
.bind()
|
||||
.is_day_over()
|
||||
}
|
||||
|
||||
fn new_round(&self) -> Array<Gd<TurnActor>> {
|
||||
let mut actors: Array<Gd<TurnActor>> = self.registered_actors.iter().cloned().collect();
|
||||
actors.sort_unstable_by(|a, b| a.instance_id().cmp(&b.instance_id()));
|
||||
|
|
|
|||
Loading…
Reference in New Issue