aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-24 17:44:50 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-25 11:26:26 +0200
commit13e6c04d5524a136658a97e0b58dd6284e0481d9 (patch)
treedee8f7c6866c18a96175d3e10c60070cc15effea
parent9c82978ac09a89e13973913b424822140ad3b4c3 (diff)
downloadhurrycurry-13e6c04d5524a136658a97e0b58dd6284e0481d9.tar
hurrycurry-13e6c04d5524a136658a97e0b58dd6284e0481d9.tar.bz2
hurrycurry-13e6c04d5524a136658a97e0b58dd6284e0481d9.tar.zst
add black holes
-rw-r--r--client/map/tile_factory.gd8
-rw-r--r--client/map/tiles/item_portal.gd23
-rw-r--r--client/map/tiles/player_portal.gd23
-rw-r--r--client/map/tiles/portal.gd22
-rw-r--r--client/map/tiles/portal.tscn22
-rw-r--r--data/maps/debug.yaml44
6 files changed, 124 insertions, 18 deletions
diff --git a/client/map/tile_factory.gd b/client/map/tile_factory.gd
index 8b9e2157..b43a568a 100644
--- a/client/map/tile_factory.gd
+++ b/client/map/tile_factory.gd
@@ -66,6 +66,14 @@ static func produce(tile_name: String, node_name: String, neighbors: Array) -> T
return Book.new(node_name, neighbors)
"conveyor":
return Conveyor.new(node_name, neighbors)
+ "item-portal-in":
+ return ItemPortal.new(node_name, neighbors, false)
+ "item-portal-out":
+ return ItemPortal.new(node_name, neighbors, true)
+ "player-portal-in":
+ return PlayerPortal.new(node_name, neighbors, false)
+ "player-portal-out":
+ return PlayerPortal.new(node_name, neighbors, true)
var t:
push_warning("tile %s unknown" % t)
return GenericTile.new(node_name, neighbors, t)
diff --git a/client/map/tiles/item_portal.gd b/client/map/tiles/item_portal.gd
new file mode 100644
index 00000000..c4762ae2
--- /dev/null
+++ b/client/map/tiles/item_portal.gd
@@ -0,0 +1,23 @@
+# Hurry Curry! - a game about cooking
+# Copyright 2024 metamuffin
+#
+# 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 ItemPortal
+extends CounterBase
+
+var model: PortalModel = load("res://map/tiles/portal.tscn").instantiate()
+func _init(rename: String, neighbors: Array, type: bool):
+ super(rename, neighbors)
+ model.configure(0.2, type)
+ base.add_child(model)
diff --git a/client/map/tiles/player_portal.gd b/client/map/tiles/player_portal.gd
new file mode 100644
index 00000000..637f2c78
--- /dev/null
+++ b/client/map/tiles/player_portal.gd
@@ -0,0 +1,23 @@
+# Hurry Curry! - a game about cooking
+# Copyright 2024 metamuffin
+#
+# 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 PlayerPortal
+extends Floor
+
+var model: PortalModel = load("res://map/tiles/portal.tscn").instantiate()
+func _init(rename: String, neighbors: Array, type: bool):
+ super(rename, neighbors)
+ model.configure(0.4, type)
+ base.add_child(model)
diff --git a/client/map/tiles/portal.gd b/client/map/tiles/portal.gd
new file mode 100644
index 00000000..9dc94c2d
--- /dev/null
+++ b/client/map/tiles/portal.gd
@@ -0,0 +1,22 @@
+# Hurry Curry! - a game about cooking
+# Copyright 2024 metamuffin
+#
+# 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 PortalModel
+extends Node3D
+
+func configure(size: float, type: bool):
+ var mat: ShaderMaterial = $Mesh.get_active_material(0)
+ mat.set_shader_parameter("size", size)
+ mat.set_shader_parameter("type", 1. if type else -1.)
diff --git a/client/map/tiles/portal.tscn b/client/map/tiles/portal.tscn
new file mode 100644
index 00000000..2144b45f
--- /dev/null
+++ b/client/map/tiles/portal.tscn
@@ -0,0 +1,22 @@
+[gd_scene load_steps=5 format=3 uid="uid://cc5ubao3ln3r6"]
+
+[ext_resource type="Shader" path="res://map/tiles/portal.gdshader" id="1_aiexk"]
+[ext_resource type="Script" path="res://map/tiles/portal.gd" id="1_h7xlp"]
+
+[sub_resource type="QuadMesh" id="QuadMesh_us4em"]
+size = Vector2(3, 3)
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_hvgsb"]
+resource_local_to_scene = true
+render_priority = 0
+shader = ExtResource("1_aiexk")
+shader_parameter/type = 4.75e-08
+shader_parameter/size = 0.2
+
+[node name="Portal" type="Node3D"]
+script = ExtResource("1_h7xlp")
+
+[node name="Mesh" type="MeshInstance3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0)
+mesh = SubResource("QuadMesh_us4em")
+surface_material_override/0 = SubResource("ShaderMaterial_hvgsb")
diff --git a/data/maps/debug.yaml b/data/maps/debug.yaml
index c6d60d42..8be2bda4 100644
--- a/data/maps/debug.yaml
+++ b/data/maps/debug.yaml
@@ -1,5 +1,6 @@
# Hurry Curry! - a game about cooking
# Copyright 2024 metamuffin
+# Copyright 2024 nokoe
#
# 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
@@ -15,22 +16,22 @@
#
score_baseline: 100000
map:
- - "............."
- - "............."
- - "..X01234567.."
- - "............."
- - "..⌷ffC.SSoo.."
- - "..s⌷⌷⌷.⌷⌷⌷⌷.."
- - "............."
- - "..ppppbpppp.."
- - "..cccc.cccc.."
- - "............."
- - ".26.........."
- - ".>>>}o>>>>..."
- - ".°>>>>v......"
- - ".+>>]öü>>>..."
- - ".L>>>^......."
- - "3............"
+ - "................"
+ - "................"
+ - "............⁴..."
+ - "..X01234567....."
+ - "..............¹."
+ - "..⌷ffC.SSoo...⌷."
+ - "..s⌷⌷⌷.⌷⌷⌷⌷...²."
+ - "................"
+ - "..ppppbpppp.³..."
+ - "..cccc.cccc....."
+ - "................"
+ - "6.>>>}o>>>>....."
+ - "p.°>>>>v........"
+ - "2.+>>]öü>>>....."
+ - "3.L>>>^........."
+ - "................"
tiles:
"⌷": counter
@@ -53,6 +54,10 @@ tiles:
"7": fish-crate
"X": trash
+ "¹": item-portal-in
+ "²": item-portal-out
+ "³": player-portal-in
+ "⁴": player-portal-out
"c": chair
"~": floor
".": floor
@@ -85,7 +90,8 @@ items:
entities:
- !customers
- - !player_portal { to: [1.5, 2.5], from: [1.5, 8.5] }
+ - !player_portal { from: [12.5, 8.5], to: [12.5, 2.5] }
+ - !item_portal { from: [14, 4], to: [14, 6] }
tile_entities:
"}": !conveyor { dir: [1, 0], filter: dough-foodprocessor }
@@ -97,7 +103,7 @@ tile_entities:
"°": !conveyor { dir: [1, 0], filter: plate }
"+": !conveyor { dir: [1, 0], filter: tomato }
"L": !conveyor { dir: [1, 0], filter: leek }
- "ö": !conveyor { dir: [1, 0], filter: tomato-soup-pot}
+ "ö": !conveyor { dir: [1, 0], filter: tomato-soup-pot }
"ü": !conveyor { dir: [1, 0], filter: tomato-soup-plate }
chef_spawn: "~"
@@ -109,6 +115,8 @@ walkable:
- chair
- grass
- path
+ - player-portal-in
+ - player-portal-out
collider:
- wall