aboutsummaryrefslogtreecommitdiff
path: root/client/map
diff options
context:
space:
mode:
Diffstat (limited to 'client/map')
-rw-r--r--client/map/auto_setup/environment_setup.gd2
-rw-r--r--client/map/auto_setup/light_setup.gd2
-rw-r--r--client/map/auto_setup/sky_light_setup.gd2
-rw-r--r--client/map/effects/angry/angry.gd (renamed from client/map/tiles/counter_base.gd)25
-rw-r--r--client/map/effects/angry/angry.gd.uid1
-rw-r--r--client/map/effects/angry/angry.tscn63
-rw-r--r--client/map/effects/angry/angry.webpbin0 -> 5022 bytes
-rw-r--r--client/map/effects/angry/angry.webp.import40
-rw-r--r--client/map/effects/effect.gd22
-rw-r--r--client/map/effects/effect.gd.uid1
-rw-r--r--client/map/effects/effect_factory.gd34
-rw-r--r--client/map/effects/effect_factory.gd.uid1
-rw-r--r--client/map/effects/points/points.gd30
-rw-r--r--client/map/effects/points/points.gd.uid1
-rw-r--r--client/map/effects/points/points.tscn90
-rw-r--r--client/map/effects/satisfied/satisfied.gd24
-rw-r--r--client/map/effects/satisfied/satisfied.gd.uid1
-rw-r--r--client/map/effects/satisfied/satisfied.tscn50
-rw-r--r--client/map/effects/satisfied/star.webpbin0 -> 5818 bytes
-rw-r--r--client/map/effects/satisfied/star.webp.import40
-rw-r--r--client/map/item_factory.gd2
-rw-r--r--client/map/items/basket.gd2
-rw-r--r--client/map/items/bun.gd2
-rw-r--r--client/map/items/burned.gd2
-rw-r--r--client/map/items/cuttable.gd2
-rw-r--r--client/map/items/food_processor.gd2
-rw-r--r--client/map/items/food_processor_fill.gd2
-rw-r--r--client/map/items/generic_item.gd2
-rw-r--r--client/map/items/glass.gd2
-rw-r--r--client/map/items/glass_fill.gd2
-rw-r--r--client/map/items/glass_items.gd2
-rw-r--r--client/map/items/icecream.gd2
-rw-r--r--client/map/items/item.gd2
-rw-r--r--client/map/items/mochi.gd2
-rw-r--r--client/map/items/pan.gd2
-rw-r--r--client/map/items/pizza.gd2
-rw-r--r--client/map/items/plate.gd2
-rw-r--r--client/map/items/plate_fill.gd2
-rw-r--r--client/map/items/pot.gd2
-rw-r--r--client/map/items/pot_fill.gd2
-rw-r--r--client/map/items/pot_fill_transparent.gd2
-rw-r--r--client/map/items/rolled_dough.gd2
-rw-r--r--client/map/items/unknown_item.gd2
-rw-r--r--client/map/kitchen_background.gd2
-rw-r--r--client/map/map.gd22
-rw-r--r--client/map/particles/checkmark/checkmark.gd19
-rw-r--r--client/map/particles/checkmark/checkmark.gd.uid1
-rw-r--r--client/map/particles/checkmark/checkmark.svg1
-rw-r--r--client/map/particles/checkmark/checkmark.svg.import45
-rw-r--r--client/map/particles/checkmark/checkmark.tscn45
-rw-r--r--client/map/progress/progress.gd2
-rw-r--r--client/map/progress/progress.gdshader2
-rw-r--r--client/map/tile_factory.gd34
-rw-r--r--client/map/tiles/active_interact_counter.gd2
-rw-r--r--client/map/tiles/button/button.gd2
-rw-r--r--client/map/tiles/button/button_model.gd2
-rw-r--r--client/map/tiles/button_base.gd2
-rw-r--r--client/map/tiles/chair.gd2
-rw-r--r--client/map/tiles/conveyor.gd2
-rw-r--r--client/map/tiles/conveyor_direction.gdshader2
-rw-r--r--client/map/tiles/conveyor_model.gd2
-rw-r--r--client/map/tiles/counter.gd71
-rw-r--r--client/map/tiles/counter.gd.uid2
-rw-r--r--client/map/tiles/counter_base.gd.uid1
-rw-r--r--client/map/tiles/counter_like.gd80
-rw-r--r--client/map/tiles/counter_like.gd.uid1
-rw-r--r--client/map/tiles/counter_window.gd2
-rw-r--r--client/map/tiles/counter_window_conveyor.gd2
-rw-r--r--client/map/tiles/crate.gd4
-rw-r--r--client/map/tiles/cutting_board.gd2
-rw-r--r--client/map/tiles/deep_fryer.gd2
-rw-r--r--client/map/tiles/door.gd2
-rw-r--r--client/map/tiles/exterior_tree.gd2
-rw-r--r--client/map/tiles/fence.gd2
-rw-r--r--client/map/tiles/floor.gd2
-rw-r--r--client/map/tiles/floor.gdshader2
-rw-r--r--client/map/tiles/floor_like.gd2
-rw-r--r--client/map/tiles/floor_mesher.gd2
-rw-r--r--client/map/tiles/freezer.gd4
-rw-r--r--client/map/tiles/freezer_model.gd2
-rw-r--r--client/map/tiles/generic_tile.gd2
-rw-r--r--client/map/tiles/grass.gd9
-rw-r--r--client/map/tiles/grass_mesher.gd17
-rw-r--r--client/map/tiles/house_balcony.gd2
-rw-r--r--client/map/tiles/house_door.gd2
-rw-r--r--client/map/tiles/house_oriel.gd2
-rw-r--r--client/map/tiles/house_roof.gd2
-rw-r--r--client/map/tiles/house_roof_chimney.gd2
-rw-r--r--client/map/tiles/house_side.gd2
-rw-r--r--client/map/tiles/house_tile.gd2
-rw-r--r--client/map/tiles/house_wall.gd2
-rw-r--r--client/map/tiles/item_portal.gd7
-rw-r--r--client/map/tiles/lamp.gd2
-rw-r--r--client/map/tiles/light_tile.gd2
-rw-r--r--client/map/tiles/oven.gd4
-rw-r--r--client/map/tiles/oven_model.gd2
-rw-r--r--client/map/tiles/path.gd2
-rw-r--r--client/map/tiles/player_portal.gd2
-rw-r--r--client/map/tiles/portal.gd7
-rw-r--r--client/map/tiles/portal.gdshader2
-rw-r--r--client/map/tiles/rolling_board.gd2
-rw-r--r--client/map/tiles/screen/screen.gd2
-rw-r--r--client/map/tiles/screen/screen_model.gd2
-rw-r--r--client/map/tiles/sink.gd4
-rw-r--r--client/map/tiles/sink_particles.gd2
-rw-r--r--client/map/tiles/stove.gd4
-rw-r--r--client/map/tiles/street.gd2
-rw-r--r--client/map/tiles/table.gd2
-rw-r--r--client/map/tiles/tile.gd3
-rw-r--r--client/map/tiles/trash.gd4
-rw-r--r--client/map/tiles/unknown_tile.gd2
-rw-r--r--client/map/tiles/wall.gd2
-rw-r--r--client/map/tiles/wall_tile.gd2
-rw-r--r--client/map/tiles/window.gd2
114 files changed, 765 insertions, 195 deletions
diff --git a/client/map/auto_setup/environment_setup.gd b/client/map/auto_setup/environment_setup.gd
index 2dc5ea36..25d75b35 100644
--- a/client/map/auto_setup/environment_setup.gd
+++ b/client/map/auto_setup/environment_setup.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/auto_setup/light_setup.gd b/client/map/auto_setup/light_setup.gd
index e63a6ab9..3056998e 100644
--- a/client/map/auto_setup/light_setup.gd
+++ b/client/map/auto_setup/light_setup.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/auto_setup/sky_light_setup.gd b/client/map/auto_setup/sky_light_setup.gd
index cb59fbf1..f888f79d 100644
--- a/client/map/auto_setup/sky_light_setup.gd
+++ b/client/map/auto_setup/sky_light_setup.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/counter_base.gd b/client/map/effects/angry/angry.gd
index d29953ad..151507cd 100644
--- a/client/map/tiles/counter_base.gd
+++ b/client/map/effects/angry/angry.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -13,17 +13,14 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
-class_name CounterBase
-extends Counter
+extends Effect
-func _init(ctx: TileFactory.TileCC, top):
- super(ctx)
- match kind:
- CounterKind.OUTER_CORNER:
- base.add_child(load("res://map/tiles/counter_outer_corner.tscn").instantiate())
- CounterKind.STRAIGHT:
- base.add_child(load("res://map/tiles/counter_straight.tscn").instantiate())
- CounterKind.STRAIGHT_BACKSPLASH:
- base.add_child(load("res://map/tiles/counter_straight_backsplash.tscn").instantiate())
- if top is PackedScene:
- base.add_child(top.instantiate())
+@onready var failure = $Failure
+@onready var angry_grunt: PlayRandom = $AngryGrunt
+@onready var particles = $Particles
+
+func _ready() -> void:
+ delete_timer(5)
+ particles.emitting = true
+ angry_grunt.play_random()
+ failure.play()
diff --git a/client/map/effects/angry/angry.gd.uid b/client/map/effects/angry/angry.gd.uid
new file mode 100644
index 00000000..642ef1f2
--- /dev/null
+++ b/client/map/effects/angry/angry.gd.uid
@@ -0,0 +1 @@
+uid://dxiq14ilf5bk
diff --git a/client/map/effects/angry/angry.tscn b/client/map/effects/angry/angry.tscn
new file mode 100644
index 00000000..94c6473d
--- /dev/null
+++ b/client/map/effects/angry/angry.tscn
@@ -0,0 +1,63 @@
+[gd_scene format=3 uid="uid://cvty1rwt52anq"]
+
+[ext_resource type="Texture2D" uid="uid://unjbxplj845n" path="res://map/effects/angry/angry.webp" id="1_5op6v"]
+[ext_resource type="Script" uid="uid://dxiq14ilf5bk" path="res://map/effects/angry/angry.gd" id="1_m21dl"]
+[ext_resource type="AudioStream" uid="uid://cv4isy6po6pqd" path="res://gui/resources/sounds/failure.ogg" id="2_vlpct"]
+[ext_resource type="Script" uid="uid://n4jwod1jfuiv" path="res://audio/play_random.gd" id="3_o0kjt"]
+[ext_resource type="AudioStream" uid="uid://c3gatgrsb0npf" path="res://player/sounds/angry1.ogg" id="4_wfdot"]
+[ext_resource type="AudioStream" uid="uid://cty282m6ckt62" path="res://player/sounds/angry2.ogg" id="5_ym83o"]
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ysmnk"]
+transparency = 1
+no_depth_test = true
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = ExtResource("1_5op6v")
+billboard_mode = 3
+billboard_keep_scale = true
+particles_anim_h_frames = 1
+particles_anim_v_frames = 1
+particles_anim_loop = false
+
+[sub_resource type="QuadMesh" id="QuadMesh_5nim7"]
+material = SubResource("StandardMaterial3D_ysmnk")
+
+[sub_resource type="Curve" id="Curve_0rju1"]
+_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.51927, 1), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="Gradient" id="Gradient_lmymu"]
+offsets = PackedFloat32Array(0, 0.711828, 1)
+colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
+
+[node name="Angry" type="Node3D" unique_id=1448163105]
+script = ExtResource("1_m21dl")
+
+[node name="Particles" type="CPUParticles3D" parent="." unique_id=691382738]
+emitting = false
+amount = 5
+lifetime = 2.0
+one_shot = true
+explosiveness = 1.0
+mesh = SubResource("QuadMesh_5nim7")
+direction = Vector3(0, 1, 0)
+spread = 30.0
+gravity = Vector3(0, 0, 0)
+initial_velocity_min = 1.0
+initial_velocity_max = 1.5
+scale_amount_curve = SubResource("Curve_0rju1")
+color_ramp = SubResource("Gradient_lmymu")
+
+[node name="Failure" type="AudioStreamPlayer" parent="." unique_id=1310258100]
+stream = ExtResource("2_vlpct")
+volume_db = -8.0
+
+[node name="AngryGrunt" type="Node3D" parent="." unique_id=681036661]
+script = ExtResource("3_o0kjt")
+volume_db = -8.0
+
+[node name="Angry1" type="AudioStreamPlayer3D" parent="AngryGrunt" unique_id=278427723]
+stream = ExtResource("4_wfdot")
+
+[node name="Angry2" type="AudioStreamPlayer3D" parent="AngryGrunt" unique_id=1539145236]
+stream = ExtResource("5_ym83o")
diff --git a/client/map/effects/angry/angry.webp b/client/map/effects/angry/angry.webp
new file mode 100644
index 00000000..866ba92c
--- /dev/null
+++ b/client/map/effects/angry/angry.webp
Binary files differ
diff --git a/client/map/effects/angry/angry.webp.import b/client/map/effects/angry/angry.webp.import
new file mode 100644
index 00000000..eac70392
--- /dev/null
+++ b/client/map/effects/angry/angry.webp.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://unjbxplj845n"
+path="res://.godot/imported/angry.webp-fd51236e60c2d6e246b04296d67f5f19.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://map/effects/angry/angry.webp"
+dest_files=["res://.godot/imported/angry.webp-fd51236e60c2d6e246b04296d67f5f19.ctex"]
+
+[params]
+
+compress/mode=1
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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=0
diff --git a/client/map/effects/effect.gd b/client/map/effects/effect.gd
new file mode 100644
index 00000000..a7b08bae
--- /dev/null
+++ b/client/map/effects/effect.gd
@@ -0,0 +1,22 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+class_name Effect
+extends Node3D
+
+var data: Variant
+func delete_timer(delay: float):
+ await get_tree().create_timer(delay).timeout
+ queue_free()
diff --git a/client/map/effects/effect.gd.uid b/client/map/effects/effect.gd.uid
new file mode 100644
index 00000000..b9ddd1ee
--- /dev/null
+++ b/client/map/effects/effect.gd.uid
@@ -0,0 +1 @@
+uid://ecsoi03822i5
diff --git a/client/map/effects/effect_factory.gd b/client/map/effects/effect_factory.gd
new file mode 100644
index 00000000..246aca1f
--- /dev/null
+++ b/client/map/effects/effect_factory.gd
@@ -0,0 +1,34 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+class_name EffectFactory
+extends Object
+
+const ANGRY = preload("res://map/effects/angry/angry.tscn")
+const SATISFIED = preload("res://map/effects/satisfied/satisfied.tscn")
+const POINTS = preload("res://map/effects/points/points.tscn")
+
+static func create_effect(p: Dictionary):
+ match p["effect"]:
+ "angry": return ANGRY.instantiate()
+ "satisfied": return SATISFIED.instantiate()
+ "points":
+ var points = POINTS.instantiate()
+ points.amount = p["amount"]
+ return points
+ _: push_error("unknown effect " + p["effect"])
+
+static func play_effect(target: Node3D, p: Dictionary):
+ target.add_child(create_effect(p))
diff --git a/client/map/effects/effect_factory.gd.uid b/client/map/effects/effect_factory.gd.uid
new file mode 100644
index 00000000..8a154ad0
--- /dev/null
+++ b/client/map/effects/effect_factory.gd.uid
@@ -0,0 +1 @@
+uid://w2l71qjjoshv
diff --git a/client/map/effects/points/points.gd b/client/map/effects/points/points.gd
new file mode 100644
index 00000000..35894902
--- /dev/null
+++ b/client/map/effects/points/points.gd
@@ -0,0 +1,30 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+extends Effect
+
+var amount: int
+
+@onready var points: CPUParticles3D = $Points
+@onready var amount_label: Label = $SubViewport/Control/AmountLabel
+
+func _ready():
+ delete_timer(5)
+ var num_string: String = str(amount)
+ if amount >= 0:
+ num_string = "+" + num_string
+ points.color = Color(.1,.6,.1) if amount >= 0 else Color(.6,.1,.1)
+ amount_label.text = num_string
+ points.emitting = true
diff --git a/client/map/effects/points/points.gd.uid b/client/map/effects/points/points.gd.uid
new file mode 100644
index 00000000..2bf5b594
--- /dev/null
+++ b/client/map/effects/points/points.gd.uid
@@ -0,0 +1 @@
+uid://528xphnsg62u
diff --git a/client/map/effects/points/points.tscn b/client/map/effects/points/points.tscn
new file mode 100644
index 00000000..57e11ddf
--- /dev/null
+++ b/client/map/effects/points/points.tscn
@@ -0,0 +1,90 @@
+[gd_scene format=3 uid="uid://x00adyx4umft"]
+
+[ext_resource type="Script" uid="uid://528xphnsg62u" path="res://map/effects/points/points.gd" id="1_wveft"]
+[ext_resource type="AudioStream" uid="uid://camy77x26mmpv" path="res://gui/resources/sounds/success.ogg" id="2_ixmsm"]
+[ext_resource type="FontFile" uid="uid://bo4vh5xkpvrh1" path="res://gui/resources/fonts/font-sansita-swashed.woff2" id="3_op1cb"]
+
+[sub_resource type="FontVariation" id="FontVariation_u8wnh"]
+base_font = ExtResource("3_op1cb")
+variation_opentype = {
+2003265652: 600
+}
+
+[sub_resource type="ViewportTexture" id="ViewportTexture_7hygc"]
+viewport_path = NodePath("SubViewport")
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uepl5"]
+resource_local_to_scene = true
+render_priority = 1
+transparency = 1
+no_depth_test = true
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = SubResource("ViewportTexture_7hygc")
+billboard_mode = 3
+billboard_keep_scale = true
+particles_anim_h_frames = 1
+particles_anim_v_frames = 1
+particles_anim_loop = false
+
+[sub_resource type="QuadMesh" id="QuadMesh_u8wnh"]
+resource_local_to_scene = true
+material = SubResource("StandardMaterial3D_uepl5")
+
+[sub_resource type="Curve" id="Curve_0rju1"]
+_data = [Vector2(0, 0), 0.0, 5.0, 0, 0, Vector2(0.49840245, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -5.0, 0.0, 0, 0]
+point_count = 3
+
+[sub_resource type="Gradient" id="Gradient_uepl5"]
+offsets = PackedFloat32Array(0, 0.26672226, 0.4904026, 1)
+colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
+
+[node name="Points" type="Node3D" unique_id=1800089616]
+script = ExtResource("1_wveft")
+
+[node name="Success" type="AudioStreamPlayer" parent="." unique_id=710129954]
+stream = ExtResource("2_ixmsm")
+
+[node name="SubViewport" type="SubViewport" parent="." unique_id=2117836549]
+transparent_bg = true
+size = Vector2i(256, 256)
+
+[node name="Control" type="Control" parent="SubViewport" unique_id=1691084866]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="AmountLabel" type="Label" parent="SubViewport/Control" unique_id=358131106]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+theme_override_colors/font_outline_color = Color(0.1254902, 0.1254902, 0.1254902, 1)
+theme_override_constants/outline_size = 48
+theme_override_fonts/font = SubResource("FontVariation_u8wnh")
+theme_override_font_sizes/font_size = 165
+text = "+5"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="Points" type="CPUParticles3D" parent="." unique_id=1697923795]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
+emitting = false
+amount = 1
+one_shot = true
+explosiveness = 1.0
+mesh = SubResource("QuadMesh_u8wnh")
+direction = Vector3(0, -1, 0)
+spread = 0.0
+gravity = Vector3(0, 0, 0)
+initial_velocity_min = 0.01
+initial_velocity_max = 0.01
+scale_amount_min = 0.65
+scale_amount_max = 0.65
+scale_amount_curve = SubResource("Curve_0rju1")
+color_ramp = SubResource("Gradient_uepl5")
diff --git a/client/map/effects/satisfied/satisfied.gd b/client/map/effects/satisfied/satisfied.gd
new file mode 100644
index 00000000..67cbb4d2
--- /dev/null
+++ b/client/map/effects/satisfied/satisfied.gd
@@ -0,0 +1,24 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+extends Effect
+
+@onready var success = $Success
+@onready var stars = $Stars
+
+func _ready():
+ delete_timer(5)
+ stars.emitting = true
+ success.play()
diff --git a/client/map/effects/satisfied/satisfied.gd.uid b/client/map/effects/satisfied/satisfied.gd.uid
new file mode 100644
index 00000000..904996ad
--- /dev/null
+++ b/client/map/effects/satisfied/satisfied.gd.uid
@@ -0,0 +1 @@
+uid://dsepgasa5ki43
diff --git a/client/map/effects/satisfied/satisfied.tscn b/client/map/effects/satisfied/satisfied.tscn
new file mode 100644
index 00000000..bbd337c4
--- /dev/null
+++ b/client/map/effects/satisfied/satisfied.tscn
@@ -0,0 +1,50 @@
+[gd_scene format=3 uid="uid://yaed1vnhd0aa"]
+
+[ext_resource type="AudioStream" uid="uid://camy77x26mmpv" path="res://gui/resources/sounds/success.ogg" id="1_rxp1p"]
+[ext_resource type="Script" uid="uid://dsepgasa5ki43" path="res://map/effects/satisfied/satisfied.gd" id="1_sujye"]
+[ext_resource type="Texture2D" uid="uid://b10goh4dsa3b0" path="res://map/effects/satisfied/star.webp" id="1_v8q3r"]
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d8uy0"]
+transparency = 1
+no_depth_test = true
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = ExtResource("1_v8q3r")
+billboard_mode = 3
+billboard_keep_scale = true
+particles_anim_h_frames = 1
+particles_anim_v_frames = 1
+particles_anim_loop = false
+
+[sub_resource type="QuadMesh" id="QuadMesh_d0lru"]
+material = SubResource("StandardMaterial3D_d8uy0")
+
+[sub_resource type="Curve" id="Curve_0rju1"]
+_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.51927, 1), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="Gradient" id="Gradient_lmymu"]
+offsets = PackedFloat32Array(0, 0.711828, 1)
+colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
+
+[node name="Satisfied" type="Node3D" unique_id=1800089616]
+script = ExtResource("1_sujye")
+
+[node name="Success" type="AudioStreamPlayer" parent="." unique_id=710129954]
+stream = ExtResource("1_rxp1p")
+
+[node name="Stars" type="CPUParticles3D" parent="." unique_id=1697923795]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
+emitting = false
+amount = 5
+lifetime = 2.0
+one_shot = true
+explosiveness = 1.0
+mesh = SubResource("QuadMesh_d0lru")
+direction = Vector3(0, 1, 0)
+spread = 30.0
+gravity = Vector3(0, 0, 0)
+initial_velocity_min = 1.0
+initial_velocity_max = 1.5
+scale_amount_curve = SubResource("Curve_0rju1")
+color_ramp = SubResource("Gradient_lmymu")
diff --git a/client/map/effects/satisfied/star.webp b/client/map/effects/satisfied/star.webp
new file mode 100644
index 00000000..c1d2e8ff
--- /dev/null
+++ b/client/map/effects/satisfied/star.webp
Binary files differ
diff --git a/client/map/effects/satisfied/star.webp.import b/client/map/effects/satisfied/star.webp.import
new file mode 100644
index 00000000..2ac435b7
--- /dev/null
+++ b/client/map/effects/satisfied/star.webp.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b10goh4dsa3b0"
+path="res://.godot/imported/star.webp-74beadf67879cd7f7736819dd8ef7e05.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://map/effects/satisfied/star.webp"
+dest_files=["res://.godot/imported/star.webp-74beadf67879cd7f7736819dd8ef7e05.ctex"]
+
+[params]
+
+compress/mode=1
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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=0
diff --git a/client/map/item_factory.gd b/client/map/item_factory.gd
index 66753a17..5fccb526 100644
--- a/client/map/item_factory.gd
+++ b/client/map/item_factory.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/basket.gd b/client/map/items/basket.gd
index 8b19243a..4da74aca 100644
--- a/client/map/items/basket.gd
+++ b/client/map/items/basket.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/bun.gd b/client/map/items/bun.gd
index 38fd582d..0423d7e6 100644
--- a/client/map/items/bun.gd
+++ b/client/map/items/bun.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/burned.gd b/client/map/items/burned.gd
index 2646a551..2ed456a6 100644
--- a/client/map/items/burned.gd
+++ b/client/map/items/burned.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/cuttable.gd b/client/map/items/cuttable.gd
index e106a96d..4eb48e19 100644
--- a/client/map/items/cuttable.gd
+++ b/client/map/items/cuttable.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/food_processor.gd b/client/map/items/food_processor.gd
index 6aabf11d..fab8bd48 100644
--- a/client/map/items/food_processor.gd
+++ b/client/map/items/food_processor.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/food_processor_fill.gd b/client/map/items/food_processor_fill.gd
index 25d634da..ed695a99 100644
--- a/client/map/items/food_processor_fill.gd
+++ b/client/map/items/food_processor_fill.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/generic_item.gd b/client/map/items/generic_item.gd
index 5f101646..e20385ef 100644
--- a/client/map/items/generic_item.gd
+++ b/client/map/items/generic_item.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/glass.gd b/client/map/items/glass.gd
index b9582a3a..8b0208e1 100644
--- a/client/map/items/glass.gd
+++ b/client/map/items/glass.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/glass_fill.gd b/client/map/items/glass_fill.gd
index 27cceb1f..4331965d 100644
--- a/client/map/items/glass_fill.gd
+++ b/client/map/items/glass_fill.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/glass_items.gd b/client/map/items/glass_items.gd
index 970b25d1..b3a5542b 100644
--- a/client/map/items/glass_items.gd
+++ b/client/map/items/glass_items.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/icecream.gd b/client/map/items/icecream.gd
index 19e3c91d..c29f6ef3 100644
--- a/client/map/items/icecream.gd
+++ b/client/map/items/icecream.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
index d3e84e06..bad9c7cf 100644
--- a/client/map/items/item.gd
+++ b/client/map/items/item.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/mochi.gd b/client/map/items/mochi.gd
index 9ec98658..dc3a860d 100644
--- a/client/map/items/mochi.gd
+++ b/client/map/items/mochi.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/pan.gd b/client/map/items/pan.gd
index 95d6433a..99be1805 100644
--- a/client/map/items/pan.gd
+++ b/client/map/items/pan.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/pizza.gd b/client/map/items/pizza.gd
index fefd4fbc..a6c1a2ee 100644
--- a/client/map/items/pizza.gd
+++ b/client/map/items/pizza.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/plate.gd b/client/map/items/plate.gd
index f517d79a..e71b7d0a 100644
--- a/client/map/items/plate.gd
+++ b/client/map/items/plate.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/plate_fill.gd b/client/map/items/plate_fill.gd
index 057fc11f..fc2a3310 100644
--- a/client/map/items/plate_fill.gd
+++ b/client/map/items/plate_fill.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/pot.gd b/client/map/items/pot.gd
index c5039bd7..06b63f58 100644
--- a/client/map/items/pot.gd
+++ b/client/map/items/pot.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/pot_fill.gd b/client/map/items/pot_fill.gd
index 0a59038d..e8dfaa1e 100644
--- a/client/map/items/pot_fill.gd
+++ b/client/map/items/pot_fill.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/pot_fill_transparent.gd b/client/map/items/pot_fill_transparent.gd
index 77848cb6..f8585733 100644
--- a/client/map/items/pot_fill_transparent.gd
+++ b/client/map/items/pot_fill_transparent.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/rolled_dough.gd b/client/map/items/rolled_dough.gd
index 86c12062..3d0b5d25 100644
--- a/client/map/items/rolled_dough.gd
+++ b/client/map/items/rolled_dough.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/items/unknown_item.gd b/client/map/items/unknown_item.gd
index ec6cab1a..da43eb08 100644
--- a/client/map/items/unknown_item.gd
+++ b/client/map/items/unknown_item.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/kitchen_background.gd b/client/map/kitchen_background.gd
index a638ad5f..456aa598 100644
--- a/client/map/kitchen_background.gd
+++ b/client/map/kitchen_background.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/map.gd b/client/map/map.gd
index 51359359..00f0f7b3 100644
--- a/client/map/map.gd
+++ b/client/map/map.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -26,9 +26,6 @@ class TileInfo:
var interact_tile: Tile
const NEIGHBOR_OFFSETS: Array[Vector2i] = [Vector2i.UP, Vector2i.LEFT, Vector2i.DOWN, Vector2i.RIGHT]
-const TILE_COMBINATOR: Dictionary[Array, Array] = {
- ["counter", "sink"]: ["sink"]
- } # : Dictionary[Array[String], Array[String]]
var tile_by_pos: Dictionary[Vector2i, TileInfo] = {}
var autoflush = false
@@ -65,12 +62,6 @@ func set_tiles(pos: Vector2i, tiles: Array = [], pending_changes: Dictionary[Vec
if autoflush: flush()
func _add_tiles(pos: Vector2i, tiles: Array, pending_changes: Dictionary[Vector2i, Array], srv: Game.ServerContext) -> void:
- # Combinate tiles
- for k in TILE_COMBINATOR:
- if G.has_all(tiles, k):
- for item: String in k: tiles.erase(item)
- tiles.append_array(TILE_COMBINATOR[k])
-
# Find neighbor tile names
var neighbors: Array[Array] = [] # Array[Array[String]]
for offset: Vector2i in NEIGHBOR_OFFSETS:
@@ -80,17 +71,12 @@ func _add_tiles(pos: Vector2i, tiles: Array, pending_changes: Dictionary[Vector2
elif tile_by_pos.has(neighbor_pos):
neighbors.append(tile_by_pos[neighbor_pos])
else: neighbors.append([])
-
+
var tiles_parent = Node3D.new()
tiles_parent.name = str(pos)
- add_child(tiles_parent)
- var tile_instances: Array[Tile] = []
- for tile_name: String in tiles:
- var tile := tile_factory.produce(tile_name, pos, neighbors, tile_instances, srv)
- tile_instances.append(tile)
- tile.position = Vector3(pos.x, 0, pos.y)
- tiles_parent.add_child(tile)
+ var tile_instances = tile_factory.produce(tiles_parent, tiles, pos, neighbors, srv)
tile_by_pos[pos] = TileInfo.new(pos, tiles, tile_instances, tiles_parent)
+ add_child(tiles_parent)
func _remove_tile(pos: Vector2i):
var tile_info = tile_by_pos.get(pos)
diff --git a/client/map/particles/checkmark/checkmark.gd b/client/map/particles/checkmark/checkmark.gd
new file mode 100644
index 00000000..8a5cc248
--- /dev/null
+++ b/client/map/particles/checkmark/checkmark.gd
@@ -0,0 +1,19 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+extends CPUParticles3D
+
+func _on_finished() -> void:
+ queue_free()
diff --git a/client/map/particles/checkmark/checkmark.gd.uid b/client/map/particles/checkmark/checkmark.gd.uid
new file mode 100644
index 00000000..913fb945
--- /dev/null
+++ b/client/map/particles/checkmark/checkmark.gd.uid
@@ -0,0 +1 @@
+uid://bj1h0r3qvy6vm
diff --git a/client/map/particles/checkmark/checkmark.svg b/client/map/particles/checkmark/checkmark.svg
new file mode 100644
index 00000000..f8a31e29
--- /dev/null
+++ b/client/map/particles/checkmark/checkmark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="256px" viewBox="0 -960 960 960" width="256px" fill="#FFFFFF"><path d="m419-283 294-294-66-66-228 228-111-111-65 66 176 177Zm61.14 228Q392-55 314.51-88.08q-77.48-33.09-135.41-91.02-57.93-57.93-91.02-135.27Q55-391.72 55-479.86 55-569 88.08-646.49q33.09-77.48 90.86-134.97 57.77-57.48 135.19-91.01Q391.56-906 479.78-906q89.22 0 166.83 33.45 77.6 33.46 135.01 90.81t90.89 134.87Q906-569.34 906-480q0 88.28-33.53 165.75t-91.01 135.28q-57.49 57.8-134.83 90.89Q569.28-55 480.14-55Z"/></svg> \ No newline at end of file
diff --git a/client/map/particles/checkmark/checkmark.svg.import b/client/map/particles/checkmark/checkmark.svg.import
new file mode 100644
index 00000000..4011e4f8
--- /dev/null
+++ b/client/map/particles/checkmark/checkmark.svg.import
@@ -0,0 +1,45 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c10wjga8ni7eq"
+path.s3tc="res://.godot/imported/checkmark.svg-6dd7b104b667f47666846eb9f77215a8.s3tc.ctex"
+path.etc2="res://.godot/imported/checkmark.svg-6dd7b104b667f47666846eb9f77215a8.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://map/particles/checkmark/checkmark.svg"
+dest_files=["res://.godot/imported/checkmark.svg-6dd7b104b667f47666846eb9f77215a8.s3tc.ctex", "res://.godot/imported/checkmark.svg-6dd7b104b667f47666846eb9f77215a8.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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=0
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/client/map/particles/checkmark/checkmark.tscn b/client/map/particles/checkmark/checkmark.tscn
new file mode 100644
index 00000000..25e3d606
--- /dev/null
+++ b/client/map/particles/checkmark/checkmark.tscn
@@ -0,0 +1,45 @@
+[gd_scene format=3 uid="uid://bdbw8whs3data"]
+
+[ext_resource type="Texture2D" uid="uid://c10wjga8ni7eq" path="res://map/particles/checkmark/checkmark.svg" id="1_co83x"]
+[ext_resource type="Script" uid="uid://bj1h0r3qvy6vm" path="res://map/particles/checkmark/checkmark.gd" id="2_ru6ov"]
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ru6ov"]
+transparency = 1
+no_depth_test = true
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = ExtResource("1_co83x")
+billboard_mode = 3
+billboard_keep_scale = true
+particles_anim_h_frames = 1
+particles_anim_v_frames = 1
+particles_anim_loop = false
+
+[sub_resource type="QuadMesh" id="QuadMesh_4d8iq"]
+material = SubResource("StandardMaterial3D_ru6ov")
+
+[sub_resource type="Curve" id="Curve_co83x"]
+_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.25675318, 1), 0.0, 0.0, 0, 0, Vector2(0.9931608, 1), 0.0, 0.0, 0, 0]
+point_count = 3
+
+[sub_resource type="Gradient" id="Gradient_gh7p3"]
+offsets = PackedFloat32Array(0, 0.26672226, 0.4904026, 1)
+colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
+
+[node name="Checkmark" type="CPUParticles3D" unique_id=56025052]
+emitting = false
+amount = 1
+one_shot = true
+explosiveness = 1.0
+mesh = SubResource("QuadMesh_4d8iq")
+direction = Vector3(0, 0, 0)
+spread = 0.0
+gravity = Vector3(0, 0, 0)
+scale_amount_min = 0.3
+scale_amount_max = 0.3
+scale_amount_curve = SubResource("Curve_co83x")
+color = Color(0, 1, 0, 1)
+color_ramp = SubResource("Gradient_gh7p3")
+script = ExtResource("2_ru6ov")
+
+[connection signal="finished" from="." to="." method="_on_finished"]
diff --git a/client/map/progress/progress.gd b/client/map/progress/progress.gd
index d8d714ba..be8de5ae 100644
--- a/client/map/progress/progress.gd
+++ b/client/map/progress/progress.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/progress/progress.gdshader b/client/map/progress/progress.gdshader
index 3c3557cd..cbf1a3d2 100644
--- a/client/map/progress/progress.gdshader
+++ b/client/map/progress/progress.gdshader
@@ -1,6 +1,6 @@
/*
Hurry Curry! - a game about cooking
- Copyright (C) 2025 Hurry Curry! Contributors
+ Copyright (C) 2026 Hurry Curry! Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd
index 80f0df5e..d3d1ca8d 100644
--- a/client/map/tile_factory.gd
+++ b/client/map/tile_factory.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -33,6 +33,7 @@ class TileCC:
var floor_meshers: Dictionary[String, FloorMesher]
var server_context: Game.ServerContext
var below_tile_instances: Array[Tile]
+ var above_tile_names: Array[String]
var floor_meshers: Dictionary[String, FloorMesher] = {
"floor": FloorMesher.new(Floor.floor_mesh()),
@@ -41,7 +42,31 @@ var floor_meshers: Dictionary[String, FloorMesher] = {
"street": FloorMesher.new(Street.floor_mesh())
}
-func produce(raw_name: String, position: Vector2i, neighbors: Array, below_tile_instances: Array[Tile] = [], server_context: Game.ServerContext = null) -> Tile:
+const TILE_COMBINATOR: Dictionary[Array, Array] = { # : Dictionary[Array[String], Array[String]]
+ ["counter", "sink"]: ["sink"]
+}
+
+func produce(parent: Node3D, tile_names: Array, position: Vector2i, neighbors: Array, server_context: Game.ServerContext = null) -> Array[Tile]:
+ # Combinate tiles
+ tile_names = tile_names.duplicate()
+ for k in TILE_COMBINATOR:
+ if G.has_all(tile_names, k):
+ for item: String in k: tile_names.erase(item)
+ tile_names.append_array(TILE_COMBINATOR[k])
+
+ var tile_instances: Array[Tile] = []
+ for i in range(tile_names.size()):
+ var tile_name: String = tile_names[i]
+ var above_tile_names: Array[String] = []
+ above_tile_names.append_array(tile_names.slice(i+1, tile_names.size()))
+ var tile := produce_part(tile_name, position, neighbors, tile_instances, above_tile_names, server_context)
+ tile_instances.append(tile)
+ tile.position = Vector3(position.x, 0, position.y)
+ parent.add_child(tile)
+
+ return tile_instances
+
+func produce_part(raw_name: String, position: Vector2i, neighbors: Array, below_tile_instances: Array[Tile] = [], above_tile_names: Array[String] = [], server_context: Game.ServerContext = null) -> Tile:
var tile_name = TileName.new(raw_name)
var ctx := TileCC.new()
@@ -55,9 +80,10 @@ func produce(raw_name: String, position: Vector2i, neighbors: Array, below_tile_
ctx.floor_meshers = floor_meshers
ctx.server_context = server_context
ctx.below_tile_instances = below_tile_instances
+ ctx.above_tile_names = above_tile_names
match tile_name.name:
- "book": return CounterBase.new(ctx, preload("res://map/tiles/book.tscn"))
+ "book": return GenericTile.new(ctx, preload("res://map/tiles/book.tscn"))
"button": return Button_.new(ctx)
"button-base": return ButtonBase.new(ctx)
"ceiling-lamp": return GenericTile.new(ctx, preload("res://map/tiles/ceiling_lamp.tscn"))
@@ -66,7 +92,7 @@ func produce(raw_name: String, position: Vector2i, neighbors: Array, below_tile_
"conveyor": return Conveyor.new(ctx)
"counter-window": return CounterWindow.new(ctx)
"counter-window-conveyor": return CounterWindowConveyor.new(ctx)
- "counter": return CounterBase.new(ctx, null)
+ "counter": return Counter.new(ctx)
"cutting-board": return CuttingBoard.new(ctx)
"door": return Door.new(ctx)
"fence": return Fence.new(ctx)
diff --git a/client/map/tiles/active_interact_counter.gd b/client/map/tiles/active_interact_counter.gd
index fef23bba..b44c862a 100644
--- a/client/map/tiles/active_interact_counter.gd
+++ b/client/map/tiles/active_interact_counter.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/button/button.gd b/client/map/tiles/button/button.gd
index 16359d23..f47eba2d 100644
--- a/client/map/tiles/button/button.gd
+++ b/client/map/tiles/button/button.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/button/button_model.gd b/client/map/tiles/button/button_model.gd
index f571d599..41a4674f 100644
--- a/client/map/tiles/button/button_model.gd
+++ b/client/map/tiles/button/button_model.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/button_base.gd b/client/map/tiles/button_base.gd
index 8f6597e9..1ceee5e2 100644
--- a/client/map/tiles/button_base.gd
+++ b/client/map/tiles/button_base.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/chair.gd b/client/map/tiles/chair.gd
index 4cd28cf7..d5669dca 100644
--- a/client/map/tiles/chair.gd
+++ b/client/map/tiles/chair.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/conveyor.gd b/client/map/tiles/conveyor.gd
index 421bc411..e5e908b4 100644
--- a/client/map/tiles/conveyor.gd
+++ b/client/map/tiles/conveyor.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/conveyor_direction.gdshader b/client/map/tiles/conveyor_direction.gdshader
index d59fcd2d..7adef653 100644
--- a/client/map/tiles/conveyor_direction.gdshader
+++ b/client/map/tiles/conveyor_direction.gdshader
@@ -1,6 +1,6 @@
/*
Hurry Curry! - a game about cooking
- Copyright (C) 2025 Hurry Curry! Contributors
+ Copyright (C) 2026 Hurry Curry! Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/conveyor_model.gd b/client/map/tiles/conveyor_model.gd
index 81ba1ecd..fcf36675 100644
--- a/client/map/tiles/conveyor_model.gd
+++ b/client/map/tiles/conveyor_model.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/counter.gd b/client/map/tiles/counter.gd
index f91c5cbc..b8e7531a 100644
--- a/client/map/tiles/counter.gd
+++ b/client/map/tiles/counter.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,67 +14,14 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Counter
-extends Tile
-
-const COUNTERS: Array = [
- "counter",
- "pan",
- "sink",
- "oven",
-]
-
-const FLOORS: Array = [
- "floor",
- "chandelier",
- "ceiling-lamp",
- "grass",
- "table",
- "chair"
-]
-
-enum CounterKind {
- OUTER_CORNER,
- STRAIGHT,
- STRAIGHT_BACKSPLASH
-}
-
-var kind: CounterKind = CounterKind.STRAIGHT
-
-static func interact_target(): # -> Vector3?
- return Vector3(0, 0.5, 0)
+extends CounterLike
func _init(ctx: TileFactory.TileCC):
super(ctx)
-
- var facing: int = 0
- var max_series: int = 0
- var max_idx: int = 0
- for start in range(4):
- var series = 0
- for i in range(4):
- if not is_attachable(ctx.neighbors[(start + i) % 4]):
- series += 1
- else:
- break
- if series > max_series:
- max_series = series
- max_idx = start
-
- # we can neither find out whether it is an inner corner nor an outer corner
- # backsplash
- facing = max_idx
- if max_series == 1:
- if G.has_one(WallTile.WALLS, ctx.neighbors[(max_idx + 2) % 4]):
- kind = CounterKind.STRAIGHT_BACKSPLASH
- else:
- kind = CounterKind.STRAIGHT
- elif max_series == 2:
- kind = CounterKind.OUTER_CORNER
-
- turn_facing(facing)
-
-static func is_attachable(neighbor: Array) -> bool:
- for tile: String in neighbor:
- if tile.ends_with("crate"): return true
- if COUNTERS.has(tile): return true
- return false
+ match kind:
+ CounterKind.OUTER_CORNER:
+ base.add_child(load("res://map/tiles/counter_outer_corner.tscn").instantiate())
+ CounterKind.STRAIGHT:
+ base.add_child(load("res://map/tiles/counter_straight.tscn").instantiate())
+ CounterKind.STRAIGHT_BACKSPLASH:
+ base.add_child(load("res://map/tiles/counter_straight_backsplash.tscn").instantiate())
diff --git a/client/map/tiles/counter.gd.uid b/client/map/tiles/counter.gd.uid
index 0fd45b66..395db459 100644
--- a/client/map/tiles/counter.gd.uid
+++ b/client/map/tiles/counter.gd.uid
@@ -1 +1 @@
-uid://bs61uem0427k6
+uid://bj8o06q70sek2
diff --git a/client/map/tiles/counter_base.gd.uid b/client/map/tiles/counter_base.gd.uid
deleted file mode 100644
index f46c79fa..00000000
--- a/client/map/tiles/counter_base.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://dx116e5ebg1p4
diff --git a/client/map/tiles/counter_like.gd b/client/map/tiles/counter_like.gd
new file mode 100644
index 00000000..ebecbbfa
--- /dev/null
+++ b/client/map/tiles/counter_like.gd
@@ -0,0 +1,80 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2026 Hurry Curry! Contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+class_name CounterLike
+extends Tile
+
+const COUNTERS: Array = [
+ "counter",
+ "pan",
+ "sink",
+ "oven",
+]
+
+const FLOORS: Array = [
+ "floor",
+ "chandelier",
+ "ceiling-lamp",
+ "grass",
+ "table",
+ "chair"
+]
+
+enum CounterKind {
+ OUTER_CORNER,
+ STRAIGHT,
+ STRAIGHT_BACKSPLASH
+}
+
+var kind: CounterKind = CounterKind.STRAIGHT
+
+static func interact_target(): # -> Vector3?
+ return Vector3(0, 0.5, 0)
+
+func _init(ctx: TileFactory.TileCC):
+ super(ctx)
+
+ var facing: int = 0
+ var max_series: int = 0
+ var max_idx: int = 0
+ for start in range(4):
+ var series = 0
+ for i in range(4):
+ if not is_attachable(ctx.neighbors[(start + i) % 4]):
+ series += 1
+ else:
+ break
+ if series > max_series:
+ max_series = series
+ max_idx = start
+
+ # we can neither find out whether it is an inner corner nor an outer corner
+ # backsplash
+ facing = max_idx
+ if max_series == 1:
+ if G.has_one(WallTile.WALLS, ctx.neighbors[(max_idx + 2) % 4]):
+ kind = CounterKind.STRAIGHT_BACKSPLASH
+ else:
+ kind = CounterKind.STRAIGHT
+ elif max_series == 2:
+ kind = CounterKind.OUTER_CORNER
+
+ turn_facing(facing)
+
+static func is_attachable(neighbor: Array) -> bool:
+ for tile: String in neighbor:
+ if tile.ends_with("crate"): return true
+ if COUNTERS.has(tile): return true
+ return false
diff --git a/client/map/tiles/counter_like.gd.uid b/client/map/tiles/counter_like.gd.uid
new file mode 100644
index 00000000..0fd45b66
--- /dev/null
+++ b/client/map/tiles/counter_like.gd.uid
@@ -0,0 +1 @@
+uid://bs61uem0427k6
diff --git a/client/map/tiles/counter_window.gd b/client/map/tiles/counter_window.gd
index 8b01979d..d9cf6d24 100644
--- a/client/map/tiles/counter_window.gd
+++ b/client/map/tiles/counter_window.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/counter_window_conveyor.gd b/client/map/tiles/counter_window_conveyor.gd
index cd661298..e34dd2fd 100644
--- a/client/map/tiles/counter_window_conveyor.gd
+++ b/client/map/tiles/counter_window_conveyor.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/crate.gd b/client/map/tiles/crate.gd
index 24dada3c..bb96b919 100644
--- a/client/map/tiles/crate.gd
+++ b/client/map/tiles/crate.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Crate
-extends Counter
+extends CounterLike
static func interact_target(): # -> Vector3?
return Vector3(0, 0.25, 0)
diff --git a/client/map/tiles/cutting_board.gd b/client/map/tiles/cutting_board.gd
index 65487417..d9f95911 100644
--- a/client/map/tiles/cutting_board.gd
+++ b/client/map/tiles/cutting_board.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/deep_fryer.gd b/client/map/tiles/deep_fryer.gd
index 5318cd62..d730207f 100644
--- a/client/map/tiles/deep_fryer.gd
+++ b/client/map/tiles/deep_fryer.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/door.gd b/client/map/tiles/door.gd
index 0473c337..37dd012f 100644
--- a/client/map/tiles/door.gd
+++ b/client/map/tiles/door.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/exterior_tree.gd b/client/map/tiles/exterior_tree.gd
index faaede1c..82c457e2 100644
--- a/client/map/tiles/exterior_tree.gd
+++ b/client/map/tiles/exterior_tree.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/fence.gd b/client/map/tiles/fence.gd
index 328e115c..5d2dfdd8 100644
--- a/client/map/tiles/fence.gd
+++ b/client/map/tiles/fence.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/floor.gd b/client/map/tiles/floor.gd
index e0959708..6baae392 100644
--- a/client/map/tiles/floor.gd
+++ b/client/map/tiles/floor.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/floor.gdshader b/client/map/tiles/floor.gdshader
index a1567189..dd6f277f 100644
--- a/client/map/tiles/floor.gdshader
+++ b/client/map/tiles/floor.gdshader
@@ -1,6 +1,6 @@
/*
Hurry Curry! - a game about cooking
- Copyright (C) 2025 Hurry Curry! Contributors
+ Copyright (C) 2026 Hurry Curry! Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/floor_like.gd b/client/map/tiles/floor_like.gd
index 228a95e9..fc9be052 100644
--- a/client/map/tiles/floor_like.gd
+++ b/client/map/tiles/floor_like.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/floor_mesher.gd b/client/map/tiles/floor_mesher.gd
index cb89cc0b..addd23d2 100644
--- a/client/map/tiles/floor_mesher.gd
+++ b/client/map/tiles/floor_mesher.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/freezer.gd b/client/map/tiles/freezer.gd
index 47ab89a9..72aa4660 100644
--- a/client/map/tiles/freezer.gd
+++ b/client/map/tiles/freezer.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Freezer
-extends Counter
+extends CounterLike
var freezer: FreezerModel = load("res://map/tiles/freezer.tscn").instantiate()
diff --git a/client/map/tiles/freezer_model.gd b/client/map/tiles/freezer_model.gd
index 4defda9c..b05c6959 100644
--- a/client/map/tiles/freezer_model.gd
+++ b/client/map/tiles/freezer_model.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/generic_tile.gd b/client/map/tiles/generic_tile.gd
index 33c01cdb..73ac3fac 100644
--- a/client/map/tiles/generic_tile.gd
+++ b/client/map/tiles/generic_tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/grass.gd b/client/map/tiles/grass.gd
index d9ebce7c..bc555b93 100644
--- a/client/map/tiles/grass.gd
+++ b/client/map/tiles/grass.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -16,6 +16,13 @@
class_name Grass
extends FloorLike
+func _init(ctx: TileFactory.TileCC):
+ super(ctx)
+ if not base_mesh:
+ var grass_mesher: GrassMesher = ctx.floor_meshers[fm_id()]
+ var use_no_grass: bool = ctx.above_tile_names.any(func (s): return s == "chair" or s == "table" or s == "conveyor")
+ grass_mesher.add_tile(ctx.position, use_no_grass)
+
static func fm_id() -> String:
return "grass"
diff --git a/client/map/tiles/grass_mesher.gd b/client/map/tiles/grass_mesher.gd
index 466c3c1e..f157c84c 100644
--- a/client/map/tiles/grass_mesher.gd
+++ b/client/map/tiles/grass_mesher.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -19,10 +19,21 @@ extends FloorMesher
const GRASS_MESH: Mesh = preload("res://map/tiles/grass_side.tres")
var multimesh_instance := MultiMeshInstance3D.new()
+var no_grass_tiles: Dictionary[String, Vector2i] = {}
+
func _init(mesh: MeshInstance3D) -> void:
super(mesh)
mesh_instance.add_child(multimesh_instance)
+func add_tile(pos: Vector2i, use_no_grass: bool = false):
+ super(pos)
+ if use_no_grass:
+ no_grass_tiles[str(pos)] = pos
+
+func remove_tile(pos: Vector2i):
+ super(pos)
+ no_grass_tiles.erase(str(pos))
+
func flush() -> void:
super()
var random = RandomNumberGenerator.new()
@@ -33,8 +44,10 @@ func flush() -> void:
multimesh.transform_format = MultiMesh.TRANSFORM_3D
multimesh.instance_count = tiles.size() * Settings.read("graphics.grass_amount")
var t := tiles.values()
+ var no_grass := no_grass_tiles.values()
for i in multimesh.instance_count:
- var p = t[i / Settings.read("graphics.grass_amount")]
+ var p: Vector2i = t[i / Settings.read("graphics.grass_amount")]
+ if p in no_grass: continue
var origin := Vector3(random.randf_range(-.5, .5), 0.25, random.randf_range(-.5, .5)) + Vector3(p.x + 0.5, 0.0, p.y + 0.5)
var basis_ := (Basis(Vector3(0, 1, 0), random.randf_range(0, PI)) * Basis(Vector3(1, 0, 0), PI/2)).scaled(Vector3(0.75, 0.5, 0.75))
multimesh.set_instance_transform(i, Transform3D(basis_, origin))
diff --git a/client/map/tiles/house_balcony.gd b/client/map/tiles/house_balcony.gd
index 98fc63ac..210faaa5 100644
--- a/client/map/tiles/house_balcony.gd
+++ b/client/map/tiles/house_balcony.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_door.gd b/client/map/tiles/house_door.gd
index bcd35254..96c14459 100644
--- a/client/map/tiles/house_door.gd
+++ b/client/map/tiles/house_door.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_oriel.gd b/client/map/tiles/house_oriel.gd
index a659267b..828663f7 100644
--- a/client/map/tiles/house_oriel.gd
+++ b/client/map/tiles/house_oriel.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_roof.gd b/client/map/tiles/house_roof.gd
index 9e3e7b5c..30dfb517 100644
--- a/client/map/tiles/house_roof.gd
+++ b/client/map/tiles/house_roof.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_roof_chimney.gd b/client/map/tiles/house_roof_chimney.gd
index d46686d5..4d178788 100644
--- a/client/map/tiles/house_roof_chimney.gd
+++ b/client/map/tiles/house_roof_chimney.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_side.gd b/client/map/tiles/house_side.gd
index bca0317a..3fbaae9d 100644
--- a/client/map/tiles/house_side.gd
+++ b/client/map/tiles/house_side.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_tile.gd b/client/map/tiles/house_tile.gd
index cd0ff6c3..aba81f80 100644
--- a/client/map/tiles/house_tile.gd
+++ b/client/map/tiles/house_tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/house_wall.gd b/client/map/tiles/house_wall.gd
index fea2515d..e01fda08 100644
--- a/client/map/tiles/house_wall.gd
+++ b/client/map/tiles/house_wall.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/item_portal.gd b/client/map/tiles/item_portal.gd
index 6d292bde..23e14caf 100644
--- a/client/map/tiles/item_portal.gd
+++ b/client/map/tiles/item_portal.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,9 +14,10 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name ItemPortal
-extends CounterBase
+extends Tile
var model := preload("res://map/tiles/portal.tscn")
func _init(ctx: TileFactory.TileCC, type: float):
- super(ctx, model)
+ super(ctx)
+ base.add_child(model.instantiate())
model.configure(0.2, type)
diff --git a/client/map/tiles/lamp.gd b/client/map/tiles/lamp.gd
index d315f737..d99949ee 100644
--- a/client/map/tiles/lamp.gd
+++ b/client/map/tiles/lamp.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/light_tile.gd b/client/map/tiles/light_tile.gd
index 2476d8eb..2187ec6f 100644
--- a/client/map/tiles/light_tile.gd
+++ b/client/map/tiles/light_tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/oven.gd b/client/map/tiles/oven.gd
index ef47047f..14ff0758 100644
--- a/client/map/tiles/oven.gd
+++ b/client/map/tiles/oven.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Oven
-extends Counter
+extends CounterLike
var oven: OvenModel = load("res://map/tiles/oven.tscn").instantiate()
diff --git a/client/map/tiles/oven_model.gd b/client/map/tiles/oven_model.gd
index 9ad66bd6..644213ff 100644
--- a/client/map/tiles/oven_model.gd
+++ b/client/map/tiles/oven_model.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/path.gd b/client/map/tiles/path.gd
index 1127c0bf..cfb598ca 100644
--- a/client/map/tiles/path.gd
+++ b/client/map/tiles/path.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/player_portal.gd b/client/map/tiles/player_portal.gd
index c78bcf0a..a9bd7fa0 100644
--- a/client/map/tiles/player_portal.gd
+++ b/client/map/tiles/player_portal.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/portal.gd b/client/map/tiles/portal.gd
index dbb882c5..dc7d8700 100644
--- a/client/map/tiles/portal.gd
+++ b/client/map/tiles/portal.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,3 +30,8 @@ func _process(delta: float) -> void:
if abs(target_size - current_size) > 0.01:
current_size = G.interpolate(current_size, target_size, delta * 5.)
mat.set_shader_parameter("size", current_size)
+
+func configure(size: float, type: bool):
+ mat = $Mesh.get_active_material(0)
+ target_type = 1. if type else -1.
+ target_size = size
diff --git a/client/map/tiles/portal.gdshader b/client/map/tiles/portal.gdshader
index c5bc0be4..e3093b07 100644
--- a/client/map/tiles/portal.gdshader
+++ b/client/map/tiles/portal.gdshader
@@ -1,6 +1,6 @@
/*
Hurry Curry! - a game about cooking
- Copyright (C) 2025 Hurry Curry! Contributors
+ Copyright (C) 2026 Hurry Curry! Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/rolling_board.gd b/client/map/tiles/rolling_board.gd
index 00c28ba1..93db2989 100644
--- a/client/map/tiles/rolling_board.gd
+++ b/client/map/tiles/rolling_board.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/screen/screen.gd b/client/map/tiles/screen/screen.gd
index 3e059fc1..41667830 100644
--- a/client/map/tiles/screen/screen.gd
+++ b/client/map/tiles/screen/screen.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/screen/screen_model.gd b/client/map/tiles/screen/screen_model.gd
index 2a495dae..9f63fc3f 100644
--- a/client/map/tiles/screen/screen_model.gd
+++ b/client/map/tiles/screen/screen_model.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/sink.gd b/client/map/tiles/sink.gd
index 055cc353..4f9fffdf 100644
--- a/client/map/tiles/sink.gd
+++ b/client/map/tiles/sink.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Sink
-extends Counter
+extends CounterLike
var particles: SinkParticles = preload("res://map/tiles/sink_particles.tscn").instantiate()
var running: AudioStreamPlayer3D = AudioStreamPlayer3D.new()
diff --git a/client/map/tiles/sink_particles.gd b/client/map/tiles/sink_particles.gd
index 415b1d64..6674c21d 100644
--- a/client/map/tiles/sink_particles.gd
+++ b/client/map/tiles/sink_particles.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/stove.gd b/client/map/tiles/stove.gd
index 3adb6c91..13ae2c7e 100644
--- a/client/map/tiles/stove.gd
+++ b/client/map/tiles/stove.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Stove
-extends Counter
+extends CounterLike
func _init(ctx: TileFactory.TileCC):
super(ctx)
diff --git a/client/map/tiles/street.gd b/client/map/tiles/street.gd
index 38fb61f4..1ed21111 100644
--- a/client/map/tiles/street.gd
+++ b/client/map/tiles/street.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/table.gd b/client/map/tiles/table.gd
index 72352dac..4fe10323 100644
--- a/client/map/tiles/table.gd
+++ b/client/map/tiles/table.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/tile.gd b/client/map/tiles/tile.gd
index cd41ecc9..df7aa38d 100644
--- a/client/map/tiles/tile.gd
+++ b/client/map/tiles/tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -94,7 +94,6 @@ func set_item(i: Item):
item.remove()
item = i
if i != null:
- printt("I am", self, "and item", i, "now has item target", item_base.global_position)
i.owned_by = item_base
i.position_target = item_base.global_position
diff --git a/client/map/tiles/trash.gd b/client/map/tiles/trash.gd
index 36918b52..68e7f7d1 100644
--- a/client/map/tiles/trash.gd
+++ b/client/map/tiles/trash.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Trash
-extends Counter
+extends CounterLike
func _init(ctx: TileFactory.TileCC):
super(ctx)
diff --git a/client/map/tiles/unknown_tile.gd b/client/map/tiles/unknown_tile.gd
index f3524834..aa6eee79 100644
--- a/client/map/tiles/unknown_tile.gd
+++ b/client/map/tiles/unknown_tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/wall.gd b/client/map/tiles/wall.gd
index 25289635..1c14de11 100644
--- a/client/map/tiles/wall.gd
+++ b/client/map/tiles/wall.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/wall_tile.gd b/client/map/tiles/wall_tile.gd
index 244b2294..01522609 100644
--- a/client/map/tiles/wall_tile.gd
+++ b/client/map/tiles/wall_tile.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/client/map/tiles/window.gd b/client/map/tiles/window.gd
index f8444fff..9f8670a7 100644
--- a/client/map/tiles/window.gd
+++ b/client/map/tiles/window.gd
@@ -1,5 +1,5 @@
# Hurry Curry! - a game about cooking
-# Copyright (C) 2025 Hurry Curry! contributors
+# Copyright (C) 2026 Hurry Curry! Contributors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by