diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/game.gd | 1 | ||||
| -rw-r--r-- | client/global.gd | 6 | ||||
| -rw-r--r-- | client/menu/credits_menu.gd | 11 | ||||
| -rw-r--r-- | client/menu/menu_manager.gd | 16 | ||||
| -rw-r--r-- | client/menu/menu_manager.tscn | 10 | ||||
| -rw-r--r-- | client/menu/settings_menu.gd | 8 | ||||
| -rw-r--r-- | client/menu/sounds/click.ogg | bin | 0 -> 24573 bytes | |||
| -rw-r--r-- | client/menu/sounds/click.ogg.import | 19 | ||||
| -rw-r--r-- | client/menu/sounds/hover.ogg | bin | 0 -> 15692 bytes | |||
| -rw-r--r-- | client/menu/sounds/hover.ogg.import | 19 | ||||
| -rw-r--r-- | client/player/player.gd | 1 | ||||
| -rw-r--r-- | client/po/de.po | 137 | ||||
| -rw-r--r-- | client/project.godot | 2 | 
13 files changed, 219 insertions, 11 deletions
| diff --git a/client/game.gd b/client/game.gd index a2893cc8..37dc4e99 100644 --- a/client/game.gd +++ b/client/game.gd @@ -104,6 +104,7 @@ func _ready():  	mp.set_tile_item.connect(func(tile: Vector2i, item: int):  		var t: Tile = map.get_tile_instance(tile)  		var i = ItemFactory.produce(item_names[item], t.item_base) +		i.position = t.item_base.global_position  		add_child(i)  		i.name = item_names[item]  		t.set_item(i) diff --git a/client/global.gd b/client/global.gd index 427809be..b9f35b6b 100644 --- a/client/global.gd +++ b/client/global.gd @@ -21,10 +21,10 @@ extends Node  # "type": The type of the setting. Can be "toggle", "line", "range", "dropdown", or "dropdown_preset"  # "value": The value of the setting. When using "dropdown", this contains an int  #	as the index for the respecitve element in the "options" array. -# "apply": Only for type "dropdown_preset": A dictionary to override all other settings. -# "min" and "max": Only for type "range": The min and max values. +# (Optional: Only when type "dropdown_preset") "apply": A dictionary to override all other settings. +# (Optional: Only when type "range") "min" and "max": The min and max values.  # "description": The setting name displayed in the settings menu. -# (Optional: Only when type = "dropdown") "options": An array which contains all +# (Optional: Only when type "dropdown") "options": An array which contains all  # 	possible values.  const DEFAULT_PROFILE := { diff --git a/client/menu/credits_menu.gd b/client/menu/credits_menu.gd index ece061ec..e8abedb5 100644 --- a/client/menu/credits_menu.gd +++ b/client/menu/credits_menu.gd @@ -20,6 +20,9 @@ var cc_0 := ["kenney.nl", "Kay Lousberg"]  var cc_by_3 := {  	"Glasses": "Jeremy Edelblut"  } +var cc_by_4 := { +	"Universal UI/Menu Soundpack": "Ellr" +}  @onready var menu_manager: MenuManager = get_parent()  @onready var label = $MarginContainer/Panel/MarginContainer/VBoxContainer/RichTextLabel @@ -36,10 +39,16 @@ func prepare():  	for k in cc_by_3.keys():  		var v = cc_by_3[k] -		label.text += "[b]\"%s\" %s[/b]\n" % [k, v] +		label.text += "[b]\"%s\" by %s[/b]\n" % [k, v]  		label.text += tr("Licensed under Creative Commons: By Attribution 3.0 License")  		label.text += "\nhttps://creativecommons.org/licenses/by/3.0/\n\n" +	for k in cc_by_4.keys(): +		var v = cc_by_4[k] +		label.text += "[b]\"%s\" by %s[/b]\n" % [k, v] +		label.text += tr("Licensed under Creative Commons: By Attribution 4.0 License") +		label.text += "\nhttps://creativecommons.org/licenses/by/4.0/\n\n" +	  	label.text += "[b]"  	label.text += tr("Additional CC0 assets by:")  	label.text += "[/b]\n" diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd index 907f23e7..c15f181f 100644 --- a/client/menu/menu_manager.gd +++ b/client/menu/menu_manager.gd @@ -8,17 +8,25 @@ class_name MenuManager  }  @onready var transition = $SceneTransition +@onready var hover_sound = $Hover +@onready var click_sound = $Click +  var menu_stack = ["main"] +  func _ready():  	Global.focus_first_button(menus[menu_stack.back()]) +	for m in menus.values(): +		connect_button_sounds(m) +	  	if Global.fade_next:  		Global.fade_next = false  		transition.fade_in()  func _input(_event):  	if Input.is_action_just_pressed("ui_cancel") && menu_stack.size() > 1: +		play_click()  		go_back()  func goto(menu_name: String): @@ -45,3 +53,11 @@ func show_menu(menu_name: String):  			menus[k].hide()  	await transition.fade_in() +func connect_button_sounds(node: Node): +	if node is Button: +		node.pressed.connect(play_click) +	for c in node.get_children(): +		connect_button_sounds(c) + +func play_click(): +	click_sound.play() diff --git a/client/menu/menu_manager.tscn b/client/menu/menu_manager.tscn index 56cc6442..c6959407 100644 --- a/client/menu/menu_manager.tscn +++ b/client/menu/menu_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=3 uid="uid://cd52sr1cmo8oj"] +[gd_scene load_steps=9 format=3 uid="uid://cd52sr1cmo8oj"]  [ext_resource type="Script" path="res://menu/menu_manager.gd" id="1_c0rjm"]  [ext_resource type="PackedScene" uid="uid://l4vm07dtda4j" path="res://menu/menu_background.tscn" id="2_nf7b6"] @@ -6,6 +6,8 @@  [ext_resource type="PackedScene" uid="uid://7mqbxa054bjv" path="res://menu/credits_menu.tscn" id="4_xhcd8"]  [ext_resource type="PackedScene" uid="uid://8ic77jmadadj" path="res://menu/settings_menu.tscn" id="5_lifj8"]  [ext_resource type="PackedScene" uid="uid://bg2d78ycorcqk" path="res://menu/scene_transition.tscn" id="6_p4u45"] +[ext_resource type="AudioStream" uid="uid://dtr1khfyqr56o" path="res://menu/sounds/hover.ogg" id="7_82cmi"] +[ext_resource type="AudioStream" uid="uid://cpyn511c5mtni" path="res://menu/sounds/click.ogg" id="8_qwknj"]  [node name="MenuManager" type="Control"]  layout_mode = 3 @@ -32,3 +34,9 @@ layout_mode = 1  [node name="SceneTransition" parent="." instance=ExtResource("6_p4u45")]  visible = false  layout_mode = 1 + +[node name="Hover" type="AudioStreamPlayer" parent="."] +stream = ExtResource("7_82cmi") + +[node name="Click" type="AudioStreamPlayer" parent="."] +stream = ExtResource("8_qwknj") diff --git a/client/menu/settings_menu.gd b/client/menu/settings_menu.gd index 4c14a459..68f3f2fc 100644 --- a/client/menu/settings_menu.gd +++ b/client/menu/settings_menu.gd @@ -32,7 +32,7 @@ func _ready():  func show_graphis():  	menu_manager.goto("settings_graphics") -func update_rows(): +func update_rows(fix_focus = false):  	for c in options.get_children():  		c.queue_free() @@ -43,6 +43,10 @@ func update_rows():  		row.connect("apply_preset", apply_preset)  		options.add_child(row)  		settings[k] = row +	 +	if fix_focus: +		await get_tree().process_frame +		Global.focus_first_button(self)  func apply_preset(preset: Dictionary):  	for k in settings.keys(): @@ -51,4 +55,4 @@ func apply_preset(preset: Dictionary):  	for k in preset.keys():  		Global.settings[k]["value"] = preset[k] -	update_rows() +	update_rows(true) diff --git a/client/menu/sounds/click.ogg b/client/menu/sounds/click.oggBinary files differ new file mode 100644 index 00000000..db4aaf4e --- /dev/null +++ b/client/menu/sounds/click.ogg diff --git a/client/menu/sounds/click.ogg.import b/client/menu/sounds/click.ogg.import new file mode 100644 index 00000000..965b171a --- /dev/null +++ b/client/menu/sounds/click.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cpyn511c5mtni" +path="res://.godot/imported/click.ogg-e2bf88f5afe364b816ac9ff7e76a0967.oggvorbisstr" + +[deps] + +source_file="res://menu/sounds/click.ogg" +dest_files=["res://.godot/imported/click.ogg-e2bf88f5afe364b816ac9ff7e76a0967.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/menu/sounds/hover.ogg b/client/menu/sounds/hover.oggBinary files differ new file mode 100644 index 00000000..17d414ca --- /dev/null +++ b/client/menu/sounds/hover.ogg diff --git a/client/menu/sounds/hover.ogg.import b/client/menu/sounds/hover.ogg.import new file mode 100644 index 00000000..b83eab9d --- /dev/null +++ b/client/menu/sounds/hover.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dtr1khfyqr56o" +path="res://.godot/imported/hover.ogg-45eb1351c35b416453fb2a6674b9d0f1.oggvorbisstr" + +[deps] + +source_file="res://menu/sounds/hover.ogg" +dest_files=["res://.godot/imported/hover.ogg-45eb1351c35b416453fb2a6674b9d0f1.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/player.gd b/client/player/player.gd index 75e3861e..b47216d6 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -45,6 +45,7 @@ const HAND_BASE_POSITION: Vector3 = Vector3(0, .25, .4)  func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new_game: Game):  	add_child(character)  	position_ = pos +	position_anim = pos  	name = new_name  	game = new_game diff --git a/client/po/de.po b/client/po/de.po index 047f24cb..ab44e021 100644 --- a/client/po/de.po +++ b/client/po/de.po @@ -18,6 +18,47 @@ msgstr ""  "X-Generator: Poedit 3.4.4\n"  #: menu/main_menu.tscn +msgid "Stop Server" +msgstr "Server stoppen" + +#: menu/main_menu.tscn +msgid "Server (Testing)" +msgstr "Server (Prüfe)" + +#: menu/main_menu.tscn +msgid "Server is starting..." +msgstr "Server startet..." + +#: menu/main_menu.tscn +msgid "Start Server" +msgstr "Server starten" + +#: menu/main_menu.tscn +msgid "Server (Failed)" +msgstr "Server (Fehlgeschlagen)" + +#: menu/main_menu.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 zu wissen, was " +"genau passiert ist.\n" +"Versuchen Sie, den Server aus der Kommandozeile zu starten." + +#: menu/main_menu.tscn +msgid "Server (Unavailable)" +msgstr "Server (Nicht verfügbar)" + +#: menu/main_menu.tscn +msgid "Server binary was not found. Please install the server seperately." +msgstr "" +"Server wurde nicht gefunden, bitte installieren Sie den Server getrennt." + +#: menu/main_menu.tscn  msgid "Quick Connect"  msgstr "Jetzt verbinden" @@ -34,10 +75,14 @@ msgid "Settings"  msgstr "Einstellungen"  #: menu/main_menu.tscn +msgid "Server" +msgstr "Server" + +#: menu/main_menu.tscn  msgid "Credits"  msgstr "Anerkennung" -#: menu/main_menu.tscn menu/ingame_menu.tscn +#: menu/main_menu.tscn  msgid "Quit"  msgstr "Verlassen" @@ -114,20 +159,106 @@ msgid "Reconnect"  msgstr "Erneut verbinden"  #: menu/ingame_menu.tscn -msgid "Main Menu" +msgid "Main menu"  msgstr "Hauptmenü" +#: menu/ingame_menu.tscn +msgid "Quit game" +msgstr "Verlassen" +  #: global.gd  msgid "Interpolate the camera rotation"  msgstr "Kameradrehung interpolieren"  #: global.gd -msgid "Just a test value" +msgid "Server binary (leave empty to search PATH)" +msgstr "Pfad zum Server (leer lassen, um PATH zu durchsuchen)" + +#: global.gd +msgid "Server data directory (leave empty to auto-detect)" +msgstr "Server Datenverzeichnis (leer lassen, um automatisch zu erkennen)" + +#: global.gd +msgid "Low" +msgstr "Niedrig" + +#: global.gd +msgid "Medium" +msgstr "Mittel" + +#: global.gd +msgid "High" +msgstr "Hoch" + +#: global.gd +msgid "Ultra" +msgstr "Ultra" + +#: global.gd +msgid "Graphics preset" +msgstr "Grafikvoreinstellung" + +#: global.gd +msgid "Use VoxelGI (Blocks the game on map update)" +msgstr "VoxelGI verwenden (blockiert das Spiel, wenn die Map sich verändert)" + +#: global.gd +msgid "Use SDFGI (Doesn't block the game but is more resource-hungry)"  msgstr "" +"SDFGI verwenden  (blockiert das Spiel nicht, ist aber weniger " +"Ressourcenschonend)" + +#: global.gd +msgid "3D grass amount per grass tile" +msgstr "3D-Grasmenge pro Tile"  #: menu/settings_menu.tscn  msgid "Back to Main Menu"  msgstr "Zurück zum Hauptmenü" +#: menu/setup_menu.tscn +msgid "EMPLOYMENT CONTRACT" +msgstr "ARBEITSVERTRAG" + +#: menu/setup_menu.tscn +msgid "1. [b]Name of the Employee[/b]" +msgstr "1. [b]Name der angestellten Person[/b]" + +#: 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/setup_menu.tscn +msgid "Hairstyle 1" +msgstr "Frisur 1" + +#: menu/setup_menu.tscn +msgid "Hairstyle 2" +msgstr "Frisur 2" + +#: menu/setup_menu.tscn +msgid "Hairstyle 3" +msgstr "Frisur 3" + +#: 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" + +#: 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 "This textbox is useless."  #~ msgstr "Diese Textbox ist nutzlos." diff --git a/client/project.godot b/client/project.godot index 59515f71..d595d655 100644 --- a/client/project.godot +++ b/client/project.godot @@ -128,7 +128,7 @@ chat={  [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") +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")  [rendering] |