aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/audio/sound.gd4
-rw-r--r--client/game.gd7
-rw-r--r--client/game.tscn5
-rw-r--r--client/global.gd4
-rw-r--r--client/map/items/food_processor.gd3
-rw-r--r--client/map/tiles/door.gd7
-rw-r--r--client/map/tiles/tile.gd2
-rw-r--r--client/menu/server_message.gd28
-rw-r--r--client/menu/server_message.tscn60
-rw-r--r--client/po/de.po446
-rw-r--r--client/project.godot2
-rw-r--r--data/index.yaml9
-rw-r--r--data/maps/bbq.yaml63
-rw-r--r--data/maps/depot.yaml6
-rw-r--r--data/maps/junior.yaml (renamed from data/maps/small.yaml)0
-rw-r--r--data/maps/rivalry.yaml8
-rw-r--r--data/maps/senior.yaml (renamed from data/maps/big.yaml)0
-rw-r--r--data/maps/smallest.yaml57
-rw-r--r--data/maps/sophomore.yaml (renamed from data/maps/tiny.yaml)0
-rw-r--r--data/maps/station.yaml72
-rw-r--r--data/maps/test.yaml6
-rw-r--r--data/maps/village.yaml12
-rw-r--r--data/maps/zigzag.yaml6
23 files changed, 637 insertions, 170 deletions
diff --git a/client/audio/sound.gd b/client/audio/sound.gd
index c4ef0ad2..f0100756 100644
--- a/client/audio/sound.gd
+++ b/client/audio/sound.gd
@@ -18,15 +18,17 @@ func play_hover_maybe(element):
return
play_hover()
-func item_progress(item: Item, running: AudioStream, stopping: AudioStream) -> int:
+func item_progress(item: Item, running: AudioStream, stopping: AudioStream, volume=0.) -> int:
item_id += 1
var running_player: AudioStreamPlayer3D = AudioStreamPlayer3D.new()
running_player.stream = running
running_player.name = "Running%d" % item_id
+ running_player.volume_db = volume
add_child(running_player)
var stopping_player: AudioStreamPlayer3D = AudioStreamPlayer3D.new()
stopping_player.stream = stopping
stopping_player.name = "Stopping%d" % item_id
+ stopping_player.volume_db = volume
running_player.play()
add_child(stopping_player)
item_sounds[item_id] = [item, running_player, stopping_player, false]
diff --git a/client/game.gd b/client/game.gd
index 671f328f..ac0fff9e 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -43,6 +43,7 @@ var players := {}
@onready var debug_label = $Debug
@onready var overlay = $Overlay
@onready var lobby = $"../Lobby"
+@onready var server_message: ServerMessage = $ServerMessage
func _ready():
if !Global.on_vulkan():
@@ -220,7 +221,11 @@ func _ready():
await get_parent().menu_anim_exit()
)
- mp.server_message.connect(func(text): print(text))
+ mp.server_message.connect(
+ func(text):
+ print(text)
+ server_message.display_popup(text)
+ )
mp.score.connect(overlay.update)
mp.hide_score.connect(overlay.reset)
diff --git a/client/game.tscn b/client/game.tscn
index 1d78793c..618ab195 100644
--- a/client/game.tscn
+++ b/client/game.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=12 format=3 uid="uid://c6krh36hoqfg8"]
+[gd_scene load_steps=13 format=3 uid="uid://c6krh36hoqfg8"]
[ext_resource type="Script" path="res://game.gd" id="1_sftfn"]
[ext_resource type="PackedScene" uid="uid://b31mlnao6ybt8" path="res://player/follow_camera.tscn" id="2_s8y6o"]
@@ -8,6 +8,7 @@
[ext_resource type="Script" path="res://multiplayer.gd" id="6_fbxu8"]
[ext_resource type="PackedScene" uid="uid://b4gone8fu53r7" path="res://map/map.tscn" id="6_prg6t"]
[ext_resource type="PackedScene" uid="uid://bpikve6wlsjfl" path="res://menu/overlay.tscn" id="7_7xrr6"]
+[ext_resource type="PackedScene" uid="uid://b21nrnkygiyjt" path="res://menu/server_message.tscn" id="9_l5d71"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_py7px"]
ground_bottom_color = Color(0.0826605, 0.065772, 0.0461518, 1)
@@ -63,3 +64,5 @@ grow_vertical = 2
mouse_filter = 2
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 5
+
+[node name="ServerMessage" parent="." instance=ExtResource("9_l5d71")]
diff --git a/client/global.gd b/client/global.gd
index d50788ba..2ee08c6b 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -35,8 +35,8 @@ var default_settings := {
"interpolate_camera_rotation": ToggleSetting.new(tr("Interpolate the camera rotation"), true),
"invert_camera": ToggleSetting.new(tr("Invert camera movement"), false),
"usernames": ToggleSetting.new(tr("Show username tags"), false),
- "server_binary": TextSetting.new(tr("Server binary (leave empty to search PATH)"), "", "Enter path"),
- "server_data": TextSetting.new(tr("Server data directory (leave empty to auto-detect)"), "", "Enter path"),
+ "server_binary": TextSetting.new(tr("Server binary (leave empty to search PATH)"), "", tr("Enter path")),
+ "server_data": TextSetting.new(tr("Server data directory (leave empty to auto-detect)"), "", tr("Enter path")),
"aa": DropdownSetting.new(tr("Anti-aliasing"), 2, [tr("Disabled"), "FXAA", "MSAA 2x", "MSAA 4x"]),
"ssao": ToggleSetting.new(tr("Ambient occlusion"), true),
"taa": ToggleSetting.new(tr("Temporal Anti-Aliasing"), false),
diff --git a/client/map/items/food_processor.gd b/client/map/items/food_processor.gd
index 588777ff..6a04da00 100644
--- a/client/map/items/food_processor.gd
+++ b/client/map/items/food_processor.gd
@@ -32,7 +32,8 @@ func progress(p: float, warn: bool):
sound_id = Sound.item_progress(
self,
preload("res://map/items/sounds/food_processor_running.ogg"),
- preload("res://map/items/sounds/food_processor_stopping.ogg")
+ preload("res://map/items/sounds/food_processor_stopping.ogg"),
+ -10.
)
func finish(warn: bool):
diff --git a/client/map/tiles/door.gd b/client/map/tiles/door.gd
index 5d86c000..ab778158 100644
--- a/client/map/tiles/door.gd
+++ b/client/map/tiles/door.gd
@@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
class_name Door
-extends Floor
+extends WallTile
func _init(rename: String, neighbors: Array):
super(rename, neighbors)
@@ -22,6 +22,7 @@ func _init(rename: String, neighbors: Array):
var facing = 0
for i in range(4):
if neighbors[i] == "door":
- facing = i % 4
+ facing = i
+ turn_facing(facing)
base.add_child(load("res://map/tiles/door.tscn").instantiate())
- turn_facing(facing)
+
diff --git a/client/map/tiles/tile.gd b/client/map/tiles/tile.gd
index 220a4395..6a73c596 100644
--- a/client/map/tiles/tile.gd
+++ b/client/map/tiles/tile.gd
@@ -41,7 +41,7 @@ func _init(rename: String, _neighbors: Array):
item_base = item_base_
func turn_facing(facing: Facing):
- base.rotate_y(facing * 0.5 * PI + PI)
+ base.rotation.y = facing * 0.5 * PI + PI
# defines where items go when interacting
static func interact_target() -> Vector3:
diff --git a/client/menu/server_message.gd b/client/menu/server_message.gd
new file mode 100644
index 00000000..ffd7887b
--- /dev/null
+++ b/client/menu/server_message.gd
@@ -0,0 +1,28 @@
+# Undercooked - a game about cooking
+# Copyright 2024 tpart
+#
+# 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 MarginContainer
+class_name ServerMessage
+
+@onready var popup_timer = $PopupTimer
+@onready var popup_label = $VBoxContainer/ServerMessage/Label
+
+func display_popup(msg: String):
+ popup_label.text = msg
+ show()
+ popup_timer.start()
+
+func _on_popup_timer_timeout():
+ hide()
diff --git a/client/menu/server_message.tscn b/client/menu/server_message.tscn
new file mode 100644
index 00000000..06193d4a
--- /dev/null
+++ b/client/menu/server_message.tscn
@@ -0,0 +1,60 @@
+[gd_scene load_steps=7 format=3 uid="uid://b21nrnkygiyjt"]
+
+[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_p0jm7"]
+[ext_resource type="Shader" path="res://menu/blur_mix.gdshader" id="2_e1f4e"]
+[ext_resource type="Script" path="res://menu/server_message.gd" id="2_j4xya"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_k0m35"]
+shader = ExtResource("2_e1f4e")
+shader_parameter/blur_amount = 3.5
+shader_parameter/mix_amount = 0.85
+shader_parameter/color_over = Color(1, 1, 1, 1)
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vq4dg"]
+bg_color = Color(1, 1, 1, 0.878431)
+corner_radius_top_left = 16
+corner_radius_top_right = 16
+corner_radius_bottom_right = 16
+corner_radius_bottom_left = 16
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3rgop"]
+content_margin_left = 32.0
+content_margin_top = 8.0
+content_margin_right = 32.0
+content_margin_bottom = 8.0
+
+[node name="ServerMessage" type="MarginContainer"]
+visible = false
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+mouse_filter = 2
+theme = ExtResource("1_p0jm7")
+script = ExtResource("2_j4xya")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+layout_mode = 2
+mouse_filter = 2
+
+[node name="ServerMessage" type="PanelContainer" parent="VBoxContainer"]
+material = SubResource("ShaderMaterial_k0m35")
+layout_mode = 2
+size_flags_horizontal = 4
+size_flags_vertical = 0
+mouse_filter = 2
+theme_override_styles/panel = SubResource("StyleBoxFlat_vq4dg")
+
+[node name="Label" type="Label" parent="VBoxContainer/ServerMessage"]
+layout_mode = 2
+theme_override_colors/font_color = Color(0, 0, 0, 1)
+theme_override_styles/normal = SubResource("StyleBoxEmpty_3rgop")
+text = "Server message"
+horizontal_alignment = 1
+
+[node name="PopupTimer" type="Timer" parent="."]
+wait_time = 3.0
+one_shot = true
+
+[connection signal="timeout" from="PopupTimer" to="." method="_on_popup_timer_timeout"]
diff --git a/client/po/de.po b/client/po/de.po
index ab44e021..5923ca44 100644
--- a/client/po/de.po
+++ b/client/po/de.po
@@ -17,248 +17,408 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.4\n"
-#: menu/main_menu.tscn
-msgid "Stop Server"
-msgstr "Server stoppen"
+#: global.gd
+msgid "System default"
+msgstr "Systemstandard"
-#: menu/main_menu.tscn
-msgid "Server (Testing)"
-msgstr "Server (Prüfe)"
+#: global.gd
+msgid "Language"
+msgstr "Sprache"
-#: menu/main_menu.tscn
-msgid "Server is starting..."
-msgstr "Server startet..."
+#: global.gd
+msgid "Fullscreen"
+msgstr "Vollbild"
-#: menu/main_menu.tscn
-msgid "Start Server"
-msgstr "Server starten"
+#: global.gd
+msgid "Keep"
+msgstr "Beibehalten"
-#: menu/main_menu.tscn
-msgid "Server (Failed)"
-msgstr "Server (Fehlgeschlagen)"
+#: global.gd
+msgid "Always"
+msgstr "Immer"
+
+#: global.gd
+msgid "Never"
+msgstr "Nie"
+
+#: global.gd
+msgid "Enable touch screen conrols"
+msgstr "Touchsteuerelemente aktivieren"
+
+#: global.gd
+msgid "Interpolate the camera rotation"
+msgstr "Kameradrehung interpolieren"
+
+#: global.gd
+msgid "Invert camera movement"
+msgstr "Kamerabewegung invertieren"
+
+#: global.gd
+msgid "Show username tags"
+msgstr "Benutzernamen anzeigen"
+
+#: global.gd
+msgid "Server binary (leave empty to search PATH)"
+msgstr "Pfad zum Server (leer lassen, um PATH zu durchsuchen)"
+
+#: global.gd
+msgid "Enter path"
+msgstr "Pfad eingeben"
+
+#: global.gd
+msgid "Server data directory (leave empty to auto-detect)"
+msgstr "Server Datenverzeichnis (leer lassen, um automatisch zu erkennen)"
+
+#: global.gd
+msgid "Anti-aliasing"
+msgstr "Kantenglättung"
+
+#: global.gd
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+#: global.gd
+msgid "Ambient occlusion"
+msgstr "Umgebungsverdeckung"
+
+#: global.gd
+msgid "Temporal Anti-Aliasing"
+msgstr "Zeitliche Kantenglättung"
+
+#: global.gd
+msgid "Use VoxelGI (Blocks the game on map update but is more accurate)"
+msgstr "VoxelGI verwenden (Blockiert das Spiel, wenn sich die Karte verändert)"
+
+#: global.gd
+msgid "Use SDFGI (Doesn't block the game but produces more artifacts)"
+msgstr ""
+"SDFGI verwenden (Blockiert das Spiel nicht, ist aber weniger "
+"Ressourcenschonend)"
+
+#: global.gd
+msgid "Enable shadows"
+msgstr "Schatten aktivieren"
+
+#: global.gd
+msgid "Display debug info (Framerate, etc.)"
+msgstr "Diagnosedaten anzeigen (Bildrate, etc.)"
-#: menu/main_menu.tscn
+#: global.gd
+msgid "3D grass amount per grass tile"
+msgstr "3D-Grasmenge pro Tile"
+
+#: global.gd
+msgid "Initial setup complete. (Uncheck and restart to reenter)"
+msgstr ""
+"Ersteinrichtung abgeschlossen (Deaktivieren und Spiel neu starten zum "
+"Neueinrichten)"
+
+#: global.gd
+msgid "Always extend boost to maximum duration"
+msgstr "Schub immer bis zum Anschlag verlängern"
+
+#: menu/overlay.tscn
+msgid "Completed"
+msgstr "Abgeschlossen"
+
+#: menu/overlay.tscn
+msgid "Failed"
+msgstr "Verfehlt"
+
+#: menu/overlay.tscn
+msgid "Points"
+msgstr "Punkte"
+
+#: menu/setup.tscn
+msgid "EMPLOYMENT CONTRACT"
+msgstr "ARBEITSVERTRAG"
+
+#: menu/setup.tscn
msgid ""
-"The server crashed or exited in some way or another.\n"
-"Godot's APIs are so bad however, that we really can't know why that "
-"happend.\n"
-"You should try starting the server from the command-line."
+"This is a binding contract between you (the employee) and Musterfoods Ltd. "
+"(the employer) for working as a chef or waiter."
msgstr ""
-"Der Server ist abgestürzt oder hat sich beendet\n"
-"Godots Programmierschnittstellen sind jedoch zu unpräzise, um zu wissen, was "
-"genau passiert ist.\n"
-"Versuchen Sie, den Server aus der Kommandozeile zu starten."
+"Dies ist ein verbindlicher Vertrag zwischen Ihnen (der/die Angestelte) und "
+"Musterfoods GmbH. Sie verpflichten sich, Ihren Aufgaben als Koch/Köchin bzw. "
+"Bedienung nachzugehen."
-#: menu/main_menu.tscn
-msgid "Server (Unavailable)"
-msgstr "Server (Nicht verfügbar)"
+#: menu/setup.tscn
+msgid "1. [b]Name of the Employee[/b]"
+msgstr "1. [b]Name der angestellten Person[/b]"
-#: menu/main_menu.tscn
-msgid "Server binary was not found. Please install the server seperately."
+#: menu/setup.tscn
+msgid "2. [b]Employment Position[/b]"
+msgstr "2. [b]Arbeitsstelle[/b]"
+
+#: menu/setup.tscn
+msgid ""
+"3. [b]Working Uniform.[/b] You must always have one of the following "
+"hairstyles."
msgstr ""
-"Server wurde nicht gefunden, bitte installieren Sie den Server getrennt."
+"2. [b]Arbeitsuniform.[/b] Sie müssen immer eine der folgenden Frisuren "
+"tragen."
-#: menu/main_menu.tscn
-msgid "Quick Connect"
-msgstr "Jetzt verbinden"
+#: menu/setup.tscn
+msgid "Hairstyle 1"
+msgstr "Frisur 1"
-#: menu/main_menu.tscn
-msgid "Connect"
-msgstr "Verbinden"
+#: menu/setup.tscn
+msgid "Hairstyle 2"
+msgstr "Frisur 2"
-#: menu/main_menu.tscn
-msgid "My Chef"
-msgstr "Mein Koch"
+#: menu/setup.tscn
+msgid "Hairstyle 3"
+msgstr "Frisur 3"
-#: menu/main_menu.tscn menu/settings_menu.tscn
-msgid "Settings"
-msgstr "Einstellungen"
+#: menu/setup.tscn
+msgid ""
+"4. [b]Duties.[/b] It is your duty to serve customers the meal or item that "
+"they request.\n"
+msgstr ""
+"2. [b]Pflichten.[/b] Es ist Ihre Pflicht, die bestellten Mahlzeiten zu "
+"servieren.\n"
-#: menu/main_menu.tscn
-msgid "Server"
-msgstr "Server"
+#: menu/setup.tscn
+msgid ""
+"5. [b]Additional Terms.[/b] You shall not duplicate plates. (That is [u]NOT[/"
+"u] possible!)\n"
+msgstr ""
+"3. [b]Zusätzliche Richtlinien.[/b] Sie dürfen keine Teller duplizieren. (Das "
+"ist [u]NICHT[/u] möglich!)\n"
-#: menu/main_menu.tscn
-msgid "Credits"
-msgstr "Anerkennung"
+#: menu/setup.tscn
+msgid "4. [b]Compensation.[/b] You will be compensated monthly for your work."
+msgstr "4. [b]Arbeitsvergütung.[/b] Die Gehaltsauszahlung erfolgt monatlich."
-#: menu/main_menu.tscn
-msgid "Quit"
-msgstr "Verlassen"
+#: menu/setup.tscn
+msgid "The salary is"
+msgstr "Das Gehalt beträgt"
+
+#: menu/setup.tscn
+msgid "per month"
+msgstr "pro Monat"
+
+#: menu/setup.tscn
+msgid ""
+"Signature of the Employer:\n"
+"Musterfoods Ltd.\n"
+"Frank Miller, Head of HR"
+msgstr ""
+"Unterschrift der Führungskraft:\n"
+"Musterfoods GmbH.\n"
+"Frank Müller, Leiter der Personalabteilung"
+
+#: menu/setup.tscn
+msgid "F.Miller"
+msgstr "F.Müller"
+
+#: menu/setup.tscn
+msgid ""
+"Signature of the Employee:\n"
+"\n"
+"\n"
+msgstr ""
+"Unterschrift der angestellten Person:\n"
+"\n"
+"\n"
-#: menu/character_menu.tscn
+#: menu/setup.tscn
+msgid "Click to sign"
+msgstr "Zum Unterschreiben klicken"
+
+#: menu/character.tscn
msgid "Username"
msgstr "Benutzername"
-#: menu/character_menu.tscn menu/credits_menu.tscn
+#: menu/character.tscn menu/credits.tscn
msgid "Back"
msgstr "Zurück"
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid "undercooked - a game about cooking"
msgstr "undercooked - ein Spiel rund ums Kochen"
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid "developed by"
msgstr "entwickelt von"
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid "Licensed under Creative Commons: By Attribution 3.0 License"
msgstr "Lizensiert unter Creative Commons: By Attribution 3.0 License"
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
+msgid "Licensed under Creative Commons: By Attribution 4.0 License"
+msgstr "Lizensiert unter Creative Commons: By Attribution 4.0 License"
+
+#: menu/credits.tscn
msgid "Additional CC0 assets by:"
msgstr "Zusätzliche CC0 Assets von:"
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid "[center][b]"
msgstr ""
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid ""
"[/b]\n"
"\n"
msgstr ""
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid ""
"\n"
"\n"
"[b]"
msgstr ""
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid ""
"\n"
"https://creativecommons.org/licenses/by/3.0/\n"
"\n"
msgstr ""
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
+msgid ""
+"\n"
+"https://creativecommons.org/licenses/by/4.0/\n"
+"\n"
+msgstr ""
+
+#: menu/credits.tscn
msgid "[b]"
msgstr ""
-#: menu/credits_menu.tscn menu/credits_menu.gd
+#: menu/credits.tscn
msgid "[/b]\n"
msgstr ""
-#: menu/error_menu.tscn
+#: menu/error.tscn
msgid "Error"
msgstr "Fehler"
-#: menu/error_menu.tscn
+#: menu/error.tscn
msgid "This should be the error message."
msgstr "Dies sollte die Fehlernachricht sein."
-#: menu/error_menu.tscn
+#: menu/error.tscn
msgid "Return to Main Menu"
msgstr "Zurück zum Hauptmenü"
-#: menu/ingame_menu.tscn
+#: menu/ingame.tscn
+msgid "Resume"
+msgstr "Fortsetzen"
+
+#: menu/ingame.tscn
+msgid "Cancel game"
+msgstr "Spiel abbrechen"
+
+#: menu/ingame.tscn
msgid "Reconnect"
msgstr "Erneut verbinden"
-#: menu/ingame_menu.tscn
+#: menu/ingame.tscn menu/main.tscn menu/settings.tscn
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: menu/ingame.tscn
msgid "Main menu"
msgstr "Hauptmenü"
-#: menu/ingame_menu.tscn
+#: menu/ingame.tscn
msgid "Quit game"
msgstr "Verlassen"
-#: global.gd
-msgid "Interpolate the camera rotation"
-msgstr "Kameradrehung interpolieren"
-
-#: global.gd
-msgid "Server binary (leave empty to search PATH)"
-msgstr "Pfad zum Server (leer lassen, um PATH zu durchsuchen)"
+#: menu/lobby.tscn
+msgid "Map"
+msgstr "Karte"
-#: global.gd
-msgid "Server data directory (leave empty to auto-detect)"
-msgstr "Server Datenverzeichnis (leer lassen, um automatisch zu erkennen)"
+#: menu/main.tscn
+msgid "Stop Server"
+msgstr "Server stoppen"
-#: global.gd
-msgid "Low"
-msgstr "Niedrig"
+#: menu/main.tscn
+msgid "Server (Testing)"
+msgstr "Server (Prüfe)"
-#: global.gd
-msgid "Medium"
-msgstr "Mittel"
+#: menu/main.tscn
+msgid "Server is starting..."
+msgstr "Server startet..."
-#: global.gd
-msgid "High"
-msgstr "Hoch"
+#: menu/main.tscn
+msgid "Start Server"
+msgstr "Server starten"
-#: global.gd
-msgid "Ultra"
-msgstr "Ultra"
+#: menu/main.tscn
+msgid "Server (Failed)"
+msgstr "Server (Fehlgeschlagen)"
-#: global.gd
-msgid "Graphics preset"
-msgstr "Grafikvoreinstellung"
+#: menu/main.tscn
+msgid ""
+"The server crashed or exited in some way or another.\n"
+"Godot's APIs are so bad however, that we really can't know why that "
+"happend.\n"
+"You should try starting the server from the command-line."
+msgstr ""
+"Der Server ist abgestürzt oder hat sich beendet.\n"
+"Godots Programmierschnittstellen sind jedoch zu unpräzise, um festzustellen, "
+"was genau passiert ist.\n"
+"Versuchen Sie, den Server aus der Kommandozeile zu starten."
-#: global.gd
-msgid "Use VoxelGI (Blocks the game on map update)"
-msgstr "VoxelGI verwenden (blockiert das Spiel, wenn die Map sich verändert)"
+#: menu/main.tscn
+msgid "Server (Unavailable)"
+msgstr "Server (Nicht verfügbar)"
-#: global.gd
-msgid "Use SDFGI (Doesn't block the game but is more resource-hungry)"
+#: menu/main.tscn
+msgid "Server binary was not found. Please install the server seperately."
msgstr ""
-"SDFGI verwenden (blockiert das Spiel nicht, ist aber weniger "
-"Ressourcenschonend)"
+"Server wurde nicht gefunden. Bitte installieren Sie den Server separat."
-#: global.gd
-msgid "3D grass amount per grass tile"
-msgstr "3D-Grasmenge pro Tile"
+#: menu/main.tscn
+msgid "Quick Connect"
+msgstr "Jetzt verbinden"
-#: menu/settings_menu.tscn
-msgid "Back to Main Menu"
-msgstr "Zurück zum Hauptmenü"
+#: menu/main.tscn
+msgid "Connect"
+msgstr "Verbinden"
-#: menu/setup_menu.tscn
-msgid "EMPLOYMENT CONTRACT"
-msgstr "ARBEITSVERTRAG"
+#: menu/main.tscn
+msgid "My Chef"
+msgstr "Mein Koch"
-#: menu/setup_menu.tscn
-msgid "1. [b]Name of the Employee[/b]"
-msgstr "1. [b]Name der angestellten Person[/b]"
+#: menu/main.tscn
+msgid "Server"
+msgstr "Server"
-#: menu/setup_menu.tscn
-msgid ""
-"2. [b]Working Uniform.[/b] You must always have one of the following "
-"hairstyles."
-msgstr ""
-"2. [b]Arbeitsuniform.[/b] Sie müssen immer eine der folgenden Frisuren "
-"tragen."
+#: menu/main.tscn
+msgid "Credits"
+msgstr "Anerkennung"
-#: menu/setup_menu.tscn
-msgid "Hairstyle 1"
-msgstr "Frisur 1"
+#: menu/main.tscn
+msgid "Quit"
+msgstr "Verlassen"
-#: menu/setup_menu.tscn
-msgid "Hairstyle 2"
-msgstr "Frisur 2"
+#: menu/settings.tscn
+msgid "Save & Apply"
+msgstr "Speichern & Anwenden"
-#: menu/setup_menu.tscn
-msgid "Hairstyle 3"
-msgstr "Frisur 3"
+#~ msgid "Low"
+#~ msgstr "Niedrig"
-#: menu/setup_menu.tscn
-msgid ""
-"2. [b]Duties.[/b] It is your duty to serve customers the meal or item that "
-"they request.\n"
-msgstr ""
-"2. [b]Pflichten.[/b] Es ist ihre Pflicht, die bestellten Mahlzeiten zu "
-"servieren.\n"
+#~ msgid "Medium"
+#~ msgstr "Mittel"
-#: menu/setup_menu.tscn
-msgid ""
-"3. [b]Additional Terms.[/b] You shall not duplicate plates. (That is [u]NOT[/"
-"u] possible!)\n"
-msgstr ""
-"3. [b]Zusätzliche Richtlinien.[/b] Sie dürfen keine Teller duplizieren. (Das "
-"ist [u]NICHT[/u] möglich!)\n"
+#~ msgid "High"
+#~ msgstr "Hoch"
+
+#~ msgid "Ultra"
+#~ msgstr "Ultra"
+
+#~ msgid "Graphics preset"
+#~ msgstr "Grafikvoreinstellung"
+
+#~ msgid "Back to Main Menu"
+#~ msgstr "Zurück zum Hauptmenü"
#~ msgid "This textbox is useless."
#~ msgstr "Diese Textbox ist nutzlos."
diff --git a/client/project.godot b/client/project.godot
index c8456e23..d9267dc9 100644
--- a/client/project.godot
+++ b/client/project.godot
@@ -170,7 +170,7 @@ start_game={
[internationalization]
locale/translations=PackedStringArray("res://po/de.po")
-locale/translations_pot_files=PackedStringArray("res://menu/main_menu.tscn", "res://menu/character_menu.tscn", "res://menu/credits_menu.tscn", "res://menu/error_menu.tscn", "res://menu/ingame_menu.tscn", "res://global.gd", "res://menu/settings_menu.tscn", "res://menu/credits_menu.gd", "res://menu/setup_menu.tscn")
+locale/translations_pot_files=PackedStringArray("res://global.gd", "res://menu/overlay.tscn", "res://menu/setup.tscn", "res://menu/character.tscn", "res://menu/credits.tscn", "res://menu/error.tscn", "res://menu/ingame.tscn", "res://menu/lobby.tscn", "res://menu/main.tscn", "res://menu/settings.tscn")
[rendering]
diff --git a/data/index.yaml b/data/index.yaml
index 6f07e834..cacc6e60 100644
--- a/data/index.yaml
+++ b/data/index.yaml
@@ -4,9 +4,9 @@ demands:
maps:
- lobby
- - tiny
- - small
- - big
+ - sophomore
+ - junior
+ - senior
- test
- 5star
- depot
@@ -16,6 +16,9 @@ maps:
- rivalry
- village
- zigzag
+ - bbq
+ - station
+ - smallest
recipes:
- none
diff --git a/data/maps/bbq.yaml b/data/maps/bbq.yaml
new file mode 100644
index 00000000..5f648e32
--- /dev/null
+++ b/data/maps/bbq.yaml
@@ -0,0 +1,63 @@
+map:
+ - "''''''''''''''''"
+ - "''LL'TT''RR'FF''"
+ - "'██████████████'"
+ - "'ppSSfCCfoopssp'"
+ - "''''''''''''''''"
+ - "''cccc'__'cccc''"
+ - "'Xtttt'__'ttttX'"
+ - "''cccc'__'cccc''"
+ - "'''''''__'''''''"
+ - "'''''''!~X''''''"
+ - "'''''''__'''''''"
+
+tiles:
+ "#": counter
+ "<": counter
+ ">": counter
+ "v": counter
+ "^": counter
+ "f": counter
+ "p": counter
+ "t": table
+ "w": counter-window
+ "s": sink
+ "o": oven
+ "S": stove
+ "C": cuttingboard
+ "R": raw-steak-crate
+ "T": tomato-crate
+ "F": flour-crate
+ "L": leek-crate
+ "X": trash
+
+ "c": chair
+ ".": floor
+ "'": grass
+ "*": tree
+ "~": path
+ "!": path
+ "_": path
+ "d": door
+ "█": wall
+ "▒": wall-window
+
+items:
+ "S": pot
+ "w": plate
+ "p": plate
+ "f": foodprocessor
+
+chef_spawn: "~"
+customer_spawn: "!"
+
+walkable:
+ - door
+ - floor
+ - chair
+ - grass
+ - path
+
+collider:
+ - wall
+ - tree
diff --git a/data/maps/depot.yaml b/data/maps/depot.yaml
index 5291180d..499966f6 100644
--- a/data/maps/depot.yaml
+++ b/data/maps/depot.yaml
@@ -56,6 +56,12 @@ tiles:
"█": wall
"▒": wall-window
+tile_entities:
+ ">": !conveyor { dir: [1, 0] }
+ "<": !conveyor { dir: [-1, 0] }
+ "v": !conveyor { dir: [0, 1] }
+ "^": !conveyor { dir: [0, -1] }
+
items:
"S": pot
"w": plate
diff --git a/data/maps/small.yaml b/data/maps/junior.yaml
index 768793a3..768793a3 100644
--- a/data/maps/small.yaml
+++ b/data/maps/junior.yaml
diff --git a/data/maps/rivalry.yaml b/data/maps/rivalry.yaml
index 016aa154..e331b4b9 100644
--- a/data/maps/rivalry.yaml
+++ b/data/maps/rivalry.yaml
@@ -3,10 +3,10 @@ map:
- "'''''''''''______''''''''''''''"
- "''███████c'______'c'c'c'█████''"
- "''█SSSos█t'______'t't't'█ppf█''"
- - "''█'''''█c'______'c'c'c'█...█''"
- - "''█CC#''d''______'''''''█C.F█''"
- - "''█'''''█t'______'███dd██C.R█''"
- - "''█LRFT'█c'______'█.........█''"
+ - "''█.....█c'______'c'c'c'█...█''"
+ - "''█CC#..d''______'''''''█C.F█''"
+ - "''█.....█t'______'███dd██C.R█''"
+ - "''█LRFT.█c'______'█.........█''"
- "''███████t'______'█T#ss#SooL█''"
- "'''pppff'''______'███████████''"
- "'''''''''''______''''''''''''''"
diff --git a/data/maps/big.yaml b/data/maps/senior.yaml
index 88a1726c..88a1726c 100644
--- a/data/maps/big.yaml
+++ b/data/maps/senior.yaml
diff --git a/data/maps/smallest.yaml b/data/maps/smallest.yaml
new file mode 100644
index 00000000..296cf3c6
--- /dev/null
+++ b/data/maps/smallest.yaml
@@ -0,0 +1,57 @@
+map:
+ - "████████'"
+ - "█oSC.tc█X"
+ - "█......d_"
+ - "█LTFRpf█~"
+ - "████████!"
+
+
+tiles:
+ "#": counter
+ "<": counter
+ ">": counter
+ "v": counter
+ "^": counter
+ "f": counter
+ "p": counter
+ "t": table
+ "w": counter-window
+ "s": sink
+ "o": oven
+ "S": stove
+ "C": cuttingboard
+ "R": raw-steak-crate
+ "T": tomato-crate
+ "F": flour-crate
+ "L": leek-crate
+ "X": trash
+
+ "c": chair
+ ".": floor
+ "'": grass
+ "*": tree
+ "~": path
+ "!": path
+ "_": path
+ "d": door
+ "█": wall
+ "▒": wall-window
+
+items:
+ "S": pot
+ "p": plate
+ "f": foodprocessor
+
+chef_spawn: "~"
+customer_spawn: "!"
+
+walkable:
+ - door
+ - floor
+ - chair
+ - grass
+ - path
+
+collider:
+ - wall
+ - tree
diff --git a/data/maps/tiny.yaml b/data/maps/sophomore.yaml
index 7917fb05..7917fb05 100644
--- a/data/maps/tiny.yaml
+++ b/data/maps/sophomore.yaml
diff --git a/data/maps/station.yaml b/data/maps/station.yaml
new file mode 100644
index 00000000..70d76157
--- /dev/null
+++ b/data/maps/station.yaml
@@ -0,0 +1,72 @@
+map:
+ - "''''''''''''''''''''''''"
+ - "''''███████████████'''''"
+ - "_~__d.ct.w.ss█#ff#█'''''"
+ - "_!__d.ct.w...d...o█X_'''"
+ - "''X'█.ct.█████.p.o█X_'''"
+ - "''''█.ct.....w.p.o█X_'''"
+ - "''''█.ct.....w.p..d__'''"
+ - "''''█.ct.....w.p.S██d██'"
+ - "''''█.ct.....█.p.S█L.T█'"
+ - "''''█.ct.....d...S█R.F█'"
+ - "''''█........█#CC#█ppp█'"
+ - "''''███████████████████'"
+ - "''''''''''''''''''''''''"
+ - "________________________"
+ - "________________________"
+ - "________________________"
+ - "________________________"
+ - "________________________"
+ - "________________________"
+ - "''''''''''''''''''''''''"
+
+
+tiles:
+ "#": counter
+ "<": counter
+ ">": counter
+ "v": counter
+ "^": counter
+ "f": counter
+ "p": counter
+ "t": table
+ "w": counter-window
+ "s": sink
+ "o": oven
+ "S": stove
+ "C": cuttingboard
+ "R": raw-steak-crate
+ "T": tomato-crate
+ "F": flour-crate
+ "L": leek-crate
+ "X": trash
+
+ "c": chair
+ ".": floor
+ "'": grass
+ "*": tree
+ "~": path
+ "!": path
+ "_": path
+ "d": door
+ "█": wall
+ "▒": wall-window
+
+items:
+ "S": pot
+ "p": plate
+ "f": foodprocessor
+
+chef_spawn: "~"
+customer_spawn: "!"
+
+walkable:
+ - door
+ - floor
+ - chair
+ - grass
+ - path
+
+collider:
+ - wall
+ - tree
diff --git a/data/maps/test.yaml b/data/maps/test.yaml
index bb6137e5..ac43bb1d 100644
--- a/data/maps/test.yaml
+++ b/data/maps/test.yaml
@@ -16,9 +16,9 @@
map:
- "*''''*'''*'''''*'''*'''*'''*''*'"
- "'''*''''*'*'**'''*''**''**''*'''"
- - "''██▒██▒██▒███▒███▒████▒██▒███*'"
- - "''█ctc.ctc.ctc.ctc.ctc█s....#█**"
- - "''█.....c.............█s.~..⌷█''"
+ - "''██▒██▒██▒███████▒████▒██▒███*'"
+ - "''█ctc.ctc.ctcdctc.ctc█s....#█**"
+ - "''█.....c.....d.......█s.~..⌷█''"
- "'*▒c...c...████www██d██⌷⌷.⌷.⌷█*'"
- "*'█tc.ctc..█#.....CC.>>>>.⌷.L█''"
- "''▒c...c...w..⌷⌷.....<<<<...R█'*"
diff --git a/data/maps/village.yaml b/data/maps/village.yaml
index 762d4faf..2319f3ee 100644
--- a/data/maps/village.yaml
+++ b/data/maps/village.yaml
@@ -10,14 +10,14 @@ map:
- "'''█..d_d..█__█..d_d.p█'''"
- "'''█LR█'█FT█__█ss█'█pp█'''"
- "'''████'████__████'████'''"
- - "''''ctc'ctc.__.ctc'ctc''''"
- - "''''ctc'ctc.__.ctc'ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
- "'''''________________'''''"
- - "''''ctc.ctc.__.ctc.ctc''''"
- - "''''ctc.ctc.__.ctc.ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
- "'''''________________'''''"
- - "''''ctc.ctc'__'ctc.ctc''''"
- - "''''ctc.ctc'__'ctc.ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
+ - "''''ctc'ctc'__'ctc'ctc''''"
- "''''''''''''__''''''''''''"
- "''''''''''''_!''''''''''''"
diff --git a/data/maps/zigzag.yaml b/data/maps/zigzag.yaml
index 2a1d749e..56d974b3 100644
--- a/data/maps/zigzag.yaml
+++ b/data/maps/zigzag.yaml
@@ -50,6 +50,12 @@ tiles:
"█": wall
"▒": wall-window
+tile_entities:
+ ">": !conveyor { dir: [1, 0] }
+ "<": !conveyor { dir: [-1, 0] }
+ "v": !conveyor { dir: [0, 1] }
+ "^": !conveyor { dir: [0, -1] }
+
items:
"S": pot
"w": plate