diff options
-rw-r--r-- | client/audio/sound.gd | 4 | ||||
-rw-r--r-- | client/game.gd | 7 | ||||
-rw-r--r-- | client/game.tscn | 5 | ||||
-rw-r--r-- | client/global.gd | 4 | ||||
-rw-r--r-- | client/map/items/food_processor.gd | 3 | ||||
-rw-r--r-- | client/map/tiles/door.gd | 7 | ||||
-rw-r--r-- | client/map/tiles/tile.gd | 2 | ||||
-rw-r--r-- | client/menu/server_message.gd | 28 | ||||
-rw-r--r-- | client/menu/server_message.tscn | 60 | ||||
-rw-r--r-- | client/po/de.po | 446 | ||||
-rw-r--r-- | client/project.godot | 2 | ||||
-rw-r--r-- | data/index.yaml | 9 | ||||
-rw-r--r-- | data/maps/bbq.yaml | 63 | ||||
-rw-r--r-- | data/maps/depot.yaml | 6 | ||||
-rw-r--r-- | data/maps/junior.yaml (renamed from data/maps/small.yaml) | 0 | ||||
-rw-r--r-- | data/maps/rivalry.yaml | 8 | ||||
-rw-r--r-- | data/maps/senior.yaml (renamed from data/maps/big.yaml) | 0 | ||||
-rw-r--r-- | data/maps/smallest.yaml | 57 | ||||
-rw-r--r-- | data/maps/sophomore.yaml (renamed from data/maps/tiny.yaml) | 0 | ||||
-rw-r--r-- | data/maps/station.yaml | 72 | ||||
-rw-r--r-- | data/maps/test.yaml | 6 | ||||
-rw-r--r-- | data/maps/village.yaml | 12 | ||||
-rw-r--r-- | data/maps/zigzag.yaml | 6 |
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 |