diff options
Diffstat (limited to 'client/map')
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 Binary files differnew file mode 100644 index 00000000..866ba92c --- /dev/null +++ b/client/map/effects/angry/angry.webp 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 Binary files differnew file mode 100644 index 00000000..c1d2e8ff --- /dev/null +++ b/client/map/effects/satisfied/star.webp 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 |