assets/coin.png
assets/coin.png
This is a binary file and will not be displayed.
+34
assets/coin.png.import
+34
assets/coin.png.import
···
1
+
[remap]
2
+
3
+
importer="texture"
4
+
type="CompressedTexture2D"
5
+
uid="uid://b82673exscqgp"
6
+
path="res://.godot/imported/coin.png-f04b9cd408b88aba3ab0966b4da32df0.ctex"
7
+
metadata={
8
+
"vram_texture": false
9
+
}
10
+
11
+
[deps]
12
+
13
+
source_file="res://assets/coin.png"
14
+
dest_files=["res://.godot/imported/coin.png-f04b9cd408b88aba3ab0966b4da32df0.ctex"]
15
+
16
+
[params]
17
+
18
+
compress/mode=0
19
+
compress/high_quality=false
20
+
compress/lossy_quality=0.7
21
+
compress/hdr_compression=1
22
+
compress/normal_map=0
23
+
compress/channel_pack=0
24
+
mipmaps/generate=false
25
+
mipmaps/limit=-1
26
+
roughness/mode=0
27
+
roughness/src_normal=""
28
+
process/fix_alpha_border=true
29
+
process/premult_alpha=false
30
+
process/normal_map_invert_y=false
31
+
process/hdr_as_srgb=false
32
+
process/hdr_clamp_exposure=false
33
+
process/size_limit=0
34
+
detect_3d/compress_to=1
+5
project.godot
+5
project.godot
+19
scenes/dish_indicator.tscn
+19
scenes/dish_indicator.tscn
···
1
+
[gd_scene load_steps=2 format=3 uid="uid://6bxmmdbnxyq5"]
2
+
3
+
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q8vbr"]
4
+
bg_color = Color(0, 1, 0.392157, 1)
5
+
6
+
[node name="VBoxContainer" type="VBoxContainer"]
7
+
offset_right = 40.0
8
+
offset_bottom = 40.0
9
+
10
+
[node name="TextureRect" type="TextureRect" parent="."]
11
+
custom_minimum_size = Vector2(32, 32)
12
+
layout_mode = 2
13
+
stretch_mode = 4
14
+
15
+
[node name="ProgressBar" type="ProgressBar" parent="."]
16
+
layout_mode = 2
17
+
theme_override_styles/fill = SubResource("StyleBoxFlat_q8vbr")
18
+
value = 100.0
19
+
show_percentage = false
+29
-28
scenes/main.tscn
+29
-28
scenes/main.tscn
···
1
-
[gd_scene load_steps=11 format=4 uid="uid://bdhboi1mq3tq7"]
1
+
[gd_scene load_steps=12 format=4 uid="uid://bdhboi1mq3tq7"]
2
2
3
3
[ext_resource type="PackedScene" uid="uid://6xfwu8h4qqvr" path="res://scenes/player.tscn" id="1_gnn8a"]
4
4
[ext_resource type="Script" uid="uid://ccbpbehroxfe5" path="res://scripts/world.gd" id="1_jyhfs"]
···
6
6
[ext_resource type="Texture2D" uid="uid://b2trsp635igg3" path="res://assets/conveyor.png" id="2_0wfyh"]
7
7
[ext_resource type="Script" uid="uid://bikq5kiguh2h" path="res://scripts/dish.gd" id="2_tefeu"]
8
8
[ext_resource type="Resource" uid="uid://dhyh31elxvwu5" path="res://dishes/apple.tres" id="3_o6xl0"]
9
+
[ext_resource type="Texture2D" uid="uid://b82673exscqgp" path="res://assets/coin.png" id="7_tipki"]
9
10
10
11
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jyhfs"]
11
12
texture = ExtResource("1_sugp2")
12
13
texture_region_size = Vector2i(64, 64)
13
14
0:0/0 = 0
14
-
1:0/0 = 0
15
-
2:0/0 = 0
16
-
3:0/0 = 0
17
-
0:1/0 = 0
18
-
1:1/0 = 0
19
-
2:1/0 = 0
20
-
3:1/0 = 0
21
-
0:2/0 = 0
22
-
1:2/0 = 0
23
-
2:2/0 = 0
24
-
3:2/0 = 0
25
-
0:3/0 = 0
26
-
1:3/0 = 0
27
-
2:3/0 = 0
28
-
3:3/0 = 0
29
15
30
16
[sub_resource type="TileSet" id="TileSet_tbgi4"]
31
17
tile_size = Vector2i(64, 64)
···
81
67
possible_dishes = Array[ExtResource("2_tefeu")]([ExtResource("3_o6xl0")])
82
68
83
69
[node name="Floor" type="TileMapLayer" parent="."]
84
-
tile_map_data = PackedByteArray("AAABAAEAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAABAAQAAAAAAAAAAAABAAUAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAABAAgAAAAAAAAAAAACAAEAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAACAAQAAAAAAAAAAAACAAUAAAAAAAAAAAACAAYAAAAAAAAAAAACAAcAAAAAAAAAAAACAAgAAAAAAAAAAAADAAEAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAADAAQAAAAAAAAAAAADAAUAAAAAAAAAAAADAAYAAAAAAAAAAAADAAcAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAMAAAAAAAAAAAAEAAQAAAAAAAAAAAAEAAUAAAAAAAAAAAAEAAYAAAAAAAAAAAAEAAcAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAIAAAAAAAAAAAAFAAMAAAAAAAAAAAAFAAQAAAAAAAAAAAAFAAUAAAAAAAAAAAAFAAYAAAAAAAAAAAAFAAcAAAAAAAAAAAAFAAgAAAAAAAAAAAAGAAEAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAAGAAQAAAAAAAAAAAAGAAUAAAAAAAAAAAAGAAYAAAAAAAAAAAAGAAcAAAAAAAAAAAAGAAgAAAAAAAAAAAAHAAEAAAAAAAAAAAAHAAIAAAAAAAAAAAAHAAMAAAAAAAAAAAAHAAQAAAAAAAAAAAAHAAUAAAAAAAAAAAAHAAYAAAAAAAAAAAAHAAcAAAAAAAAAAAAHAAgAAAAAAAAAAAAIAAEAAAAAAAAAAAAIAAIAAAAAAAAAAAAIAAMAAAAAAAAAAAAIAAQAAAAAAAAAAAAIAAUAAAAAAAAAAAAIAAYAAAAAAAAAAAAIAAcAAAAAAAAAAAAIAAgAAAAAAAAAAAAJAAEAAAAAAAAAAAAJAAIAAAAAAAAAAAAJAAMAAAAAAAAAAAAJAAQAAAAAAAAAAAAJAAUAAAAAAAAAAAAJAAYAAAAAAAAAAAAJAAcAAAAAAAAAAAAJAAgAAAAAAAAAAAAKAAEAAAAAAAAAAAAKAAIAAAAAAAAAAAAKAAMAAAAAAAAAAAAKAAQAAAAAAAAAAAAKAAUAAAAAAAAAAAAKAAYAAAAAAAAAAAAKAAcAAAAAAAAAAAAKAAgAAAAAAAAAAAALAAEAAAAAAAAAAAALAAIAAAAAAAAAAAALAAMAAAAAAAAAAAALAAQAAAAAAAAAAAALAAUAAAAAAAAAAAALAAYAAAAAAAAAAAALAAcAAAAAAAAAAAALAAgAAAAAAAAAAAAMAAEAAAAAAAAAAAAMAAIAAAAAAAAAAAAMAAMAAAAAAAAAAAAMAAQAAAAAAAAAAAAMAAUAAAAAAAAAAAAMAAYAAAAAAAAAAAAMAAcAAAAAAAAAAAAMAAgAAAAAAAAAAAANAAEAAAAAAAAAAAANAAIAAAAAAAAAAAANAAMAAAAAAAAAAAANAAQAAAAAAAAAAAANAAUAAAAAAAAAAAANAAYAAAAAAAAAAAANAAcAAAAAAAAAAAANAAgAAAAAAAAAAAAOAAEAAAAAAAAAAAAOAAIAAAAAAAAAAAAOAAMAAAAAAAAAAAAOAAQAAAAAAAAAAAAOAAUAAAAAAAAAAAAOAAYAAAAAAAAAAAAOAAcAAAAAAAAAAAAOAAgAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAMAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAgAAAAAAAAAAAAQAAEAAAAAAAAAAAAQAAIAAAAAAAAAAAAQAAMAAAAAAAAAAAAQAAQAAAAAAAAAAAAQAAUAAAAAAAAAAAAQAAYAAAAAAAAAAAAQAAcAAAAAAAAAAAAQAAgAAAAAAAAAAAA=")
70
+
tile_map_data = PackedByteArray("AAABAAEAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAABAAQAAAAAAAAAAAABAAUAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAABAAgAAAAAAAAAAAACAAEAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAACAAQAAAAAAAAAAAACAAUAAAAAAAAAAAACAAYAAAAAAAAAAAACAAcAAAAAAAAAAAACAAgAAAAAAAAAAAADAAEAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAADAAQAAAAAAAAAAAADAAUAAAAAAAAAAAADAAYAAAAAAAAAAAADAAcAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAMAAAAAAAAAAAAEAAQAAAAAAAAAAAAEAAUAAAAAAAAAAAAEAAYAAAAAAAAAAAAEAAcAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAIAAAAAAAAAAAAFAAMAAAAAAAAAAAAFAAQAAAAAAAAAAAAFAAUAAAAAAAAAAAAFAAYAAAAAAAAAAAAFAAcAAAAAAAAAAAAFAAgAAAAAAAAAAAAGAAEAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAAGAAQAAAAAAAAAAAAGAAUAAAAAAAAAAAAGAAYAAAAAAAAAAAAGAAcAAAAAAAAAAAAGAAgAAAAAAAAAAAAHAAEAAAAAAAAAAAAHAAIAAAAAAAAAAAAHAAMAAAAAAAAAAAAHAAQAAAAAAAAAAAAHAAUAAAAAAAAAAAAHAAYAAAAAAAAAAAAHAAcAAAAAAAAAAAAHAAgAAAAAAAAAAAAIAAEAAAAAAAAAAAAIAAIAAAAAAAAAAAAIAAMAAAAAAAAAAAAIAAQAAAAAAAAAAAAIAAUAAAAAAAAAAAAIAAYAAAAAAAAAAAAIAAcAAAAAAAAAAAAIAAgAAAAAAAAAAAAJAAEAAAAAAAAAAAAJAAIAAAAAAAAAAAAJAAMAAAAAAAAAAAAJAAQAAAAAAAAAAAAJAAUAAAAAAAAAAAAJAAYAAAAAAAAAAAAJAAcAAAAAAAAAAAAJAAgAAAAAAAAAAAAKAAEAAAAAAAAAAAAKAAIAAAAAAAAAAAAKAAMAAAAAAAAAAAAKAAQAAAAAAAAAAAAKAAUAAAAAAAAAAAAKAAYAAAAAAAAAAAAKAAcAAAAAAAAAAAAKAAgAAAAAAAAAAAALAAEAAAAAAAAAAAALAAIAAAAAAAAAAAALAAMAAAAAAAAAAAALAAQAAAAAAAAAAAALAAUAAAAAAAAAAAALAAYAAAAAAAAAAAALAAcAAAAAAAAAAAALAAgAAAAAAAAAAAAMAAEAAAAAAAAAAAAMAAIAAAAAAAAAAAAMAAMAAAAAAAAAAAAMAAQAAAAAAAAAAAAMAAUAAAAAAAAAAAAMAAYAAAAAAAAAAAAMAAcAAAAAAAAAAAAMAAgAAAAAAAAAAAANAAEAAAAAAAAAAAANAAIAAAAAAAAAAAANAAMAAAAAAAAAAAANAAQAAAAAAAAAAAANAAUAAAAAAAAAAAANAAYAAAAAAAAAAAANAAcAAAAAAAAAAAANAAgAAAAAAAAAAAAOAAEAAAAAAAAAAAAOAAIAAAAAAAAAAAAOAAMAAAAAAAAAAAAOAAQAAAAAAAAAAAAOAAUAAAAAAAAAAAAOAAYAAAAAAAAAAAAOAAcAAAAAAAAAAAAOAAgAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAMAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAgAAAAAAAAAAAAQAAEAAAAAAAAAAAAQAAIAAAAAAAAAAAAQAAMAAAAAAAAAAAAQAAQAAAAAAAAAAAAQAAUAAAAAAAAAAAAQAAYAAAAAAAAAAAAQAAcAAAAAAAAAAAAQAAgAAAAAAAAAAAASAAAAAAAAAAAAAAASAAEAAAAAAAAAAAASAAIAAAAAAAAAAAASAAMAAAAAAAAAAAASAAQAAAAAAAAAAAASAAUAAAAAAAAAAAASAAYAAAAAAAAAAAASAAcAAAAAAAAAAAASAAgAAAAAAAAAAAASAAkAAAAAAAAAAAA=")
85
71
tile_set = SubResource("TileSet_tbgi4")
86
72
metadata/_edit_lock_ = true
87
73
···
93
79
z_index = 1
94
80
position = Vector2(531, 221)
95
81
96
-
[node name="Coins" type="Label" parent="."]
97
-
offset_right = 192.0
98
-
offset_bottom = 100.0
82
+
[node name="CanvasLayer" type="CanvasLayer" parent="."]
83
+
84
+
[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer"]
85
+
anchors_preset = 1
86
+
anchor_left = 1.0
87
+
anchor_right = 1.0
88
+
offset_left = -63.0
89
+
offset_right = 1.0
90
+
offset_bottom = 34.0
91
+
grow_horizontal = 0
92
+
93
+
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/PanelContainer"]
94
+
layout_mode = 2
95
+
96
+
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/PanelContainer/VBoxContainer"]
97
+
layout_mode = 2
98
+
99
+
[node name="Coins" type="Label" parent="CanvasLayer/PanelContainer/VBoxContainer/HBoxContainer"]
100
+
layout_mode = 2
99
101
theme_override_font_sizes/font_size = 24
100
-
text = "Coins: 0"
102
+
text = "0"
101
103
102
-
[node name="Dishes" type="Label" parent="."]
103
-
offset_left = 1051.0
104
-
offset_top = -1.0
105
-
offset_right = 1154.0
106
-
offset_bottom = 33.0
107
-
theme_override_font_sizes/font_size = 24
108
-
text = "Dishes: 0"
104
+
[node name="CoinIcon" type="TextureRect" parent="CanvasLayer/PanelContainer/VBoxContainer/HBoxContainer"]
105
+
layout_mode = 2
106
+
size_flags_horizontal = 3
107
+
texture = ExtResource("7_tipki")
108
+
expand_mode = 1
109
+
stretch_mode = 4
+22
-10
scripts/world.gd
+22
-10
scripts/world.gd
···
2
2
class_name World
3
3
4
4
const width = 18
5
-
const height = 11
5
+
const height = 10
6
6
const TILE_SIZE = 64
7
7
8
8
@onready var tilemap: TileMapLayer = $Appliances
9
9
var items: Array[ItemEntity] = []
10
10
11
+
class ActiveDish:
12
+
var dish: Dish
13
+
var node: Node
14
+
11
15
var item_queue: Array[Item] = []
12
-
var dishes: Array[Dish] = []
16
+
var dishes: Array[ActiveDish] = []
13
17
@export var possible_dishes: Array[Dish]
14
18
15
19
const DISH_TIMEOUT = 30
···
17
21
18
22
enum Direction { None, Left, Up, Right, Down }
19
23
20
-
func _ready():
24
+
@onready var ui_vertical = $CanvasLayer/PanelContainer/VBoxContainer
25
+
@onready var coins_label: Label = ui_vertical.get_node("HBoxContainer/Coins")
26
+
27
+
func _ready():
21
28
for i in range(width * height):
22
29
items.append(null)
23
30
24
31
var item_entity = preload("res://scenes/item_entity.tscn")
32
+
var dish_indicator = preload("res://scenes/dish_indicator.tscn")
25
33
var coins = 0
26
34
27
35
func _physics_process(delta):
···
36
44
if !dishes.is_empty():
37
45
for i in range(dishes.size()):
38
46
var dish = dishes[i]
39
-
if items[0] != null and items[0].item == dish.required_item:
47
+
if items[0] != null and items[0].item == dish.dish.required_item:
40
48
var entity = items[0]
41
49
remove_item(entity.position)
42
50
entity.queue_free()
43
-
coins += dish.cost
44
-
$Coins.text = "Coins: " + str(coins)
51
+
dish.node.queue_free()
52
+
coins += dish.dish.cost
53
+
coins_label.text = str(coins)
45
54
dishes.remove_at(i)
46
-
$Dishes.text = "Dishes: " + str(dishes.size())
47
55
break
48
56
49
57
time_until_next_dish -= delta
50
58
if time_until_next_dish <= 0:
51
-
var dish: Dish = possible_dishes.pick_random()
52
-
item_queue.append_array(dish.ingredients)
59
+
var dish: ActiveDish = ActiveDish.new()
60
+
dish.dish = possible_dishes.pick_random()
61
+
var indicator = dish_indicator.instantiate()
62
+
indicator.get_node("TextureRect").texture = dish.dish.required_item.texture
63
+
dish.node = indicator
64
+
ui_vertical.add_child(indicator)
65
+
item_queue.append_array(dish.dish.ingredients)
53
66
dishes.append(dish)
54
-
$Dishes.text = "Dishes: " + str(dishes.size())
55
67
time_until_next_dish = DISH_TIMEOUT
56
68
57
69
func tile_data(position: Vector2) -> TileData: