Sunday Update: graphic and bots improvements, ConfigFile, menu settings
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
extends Control
|
||||
|
||||
var LobbyMenu = preload("res://scenes/menus/LobbyMenu.tscn")
|
||||
|
||||
|
||||
func _ready():
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("host").grab_focus()
|
||||
|
||||
|
||||
func _on_host_pressed():
|
||||
var port = find_node("port").get_value()
|
||||
var bots = find_node("bots").is_pressed()
|
||||
var err = server.host_game(int(port), bots)
|
||||
|
||||
if err == OK:
|
||||
var lobby_menu = LobbyMenu.instance()
|
||||
get_tree().get_root().add_child(lobby_menu)
|
||||
|
||||
gamestate.set_player(get_tree().get_network_unique_id())
|
||||
|
||||
queue_free()
|
||||
else:
|
||||
_on_back_pressed()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show_error_dialog(tr("ERROR_SERVER_CREATION"))
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
@@ -0,0 +1,16 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("join").grab_focus()
|
||||
|
||||
|
||||
func _on_join_pressed():
|
||||
var ip = find_node("ip").text
|
||||
var port = find_node("port").get_value()
|
||||
client.join_game(ip, int(port))
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
@@ -0,0 +1,17 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("resume").grab_focus()
|
||||
|
||||
|
||||
func _on_resume_pressed():
|
||||
hide()
|
||||
|
||||
|
||||
func _on_settings_pressed():
|
||||
pass
|
||||
|
||||
|
||||
func _on_end_pressed():
|
||||
gamestate.quit_game()
|
||||
@@ -0,0 +1,101 @@
|
||||
extends Control
|
||||
|
||||
onready var countdown_timer = get_node("countdown_timer")
|
||||
onready var player_settings = find_node("player_settings")
|
||||
onready var player_list = find_node("players")
|
||||
|
||||
|
||||
func _ready():
|
||||
if get_tree().get_root().has_node("multiplayer_menu"):
|
||||
get_tree().get_root().get_node("multiplayer_menu").hide()
|
||||
if get_tree().get_root().has_node("main_menu"):
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
|
||||
get_node("menu/back").connect("pressed",self,"_on_back_pressed")
|
||||
|
||||
gamestate.connect("players_changed", self, "_players_changed")
|
||||
gamestate.connect("game_ready", self, "_game_ready")
|
||||
gamestate.connect("game_started", self, "_game_started")
|
||||
client.connect("server_disconnected", self, "_server_disconnected")
|
||||
|
||||
player_settings.get_name_node().connect("text_changed",self,"_on_name_text_changed")
|
||||
player_settings.get_color_node().connect("color_changed",self,"_on_color_color_changed")
|
||||
player_settings.get_color_node().connect("draw",self,"_on_player_changed")
|
||||
|
||||
countdown_timer.set_wait_time(server.LOBBY_READY_WAIT_TIME)
|
||||
|
||||
if gamestate.game_name:
|
||||
find_node("server_name").set_text(gamestate.game_name)
|
||||
find_node("server_name").set_tooltip(gamestate.game_name)
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("ready").grab_focus()
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
if not countdown_timer.is_stopped():
|
||||
get_node("countdown").text = str(int(countdown_timer.get_time_left()) + 1)
|
||||
|
||||
|
||||
func _players_changed(players):
|
||||
player_list.clear()
|
||||
for p_id in players:
|
||||
var player = players[p_id]
|
||||
if p_id == get_tree().get_network_unique_id():
|
||||
player_list.add_item(player.name + " (You)")
|
||||
else:
|
||||
player_list.add_item(player.name)
|
||||
player_list.set_item_custom_bg_color(player_list.get_item_count()-1, player.color)
|
||||
if player.ready:
|
||||
player_list.set_item_icon(player_list.get_item_count()-1, player_list.get_node("ready_icon").get_button_icon())
|
||||
else:
|
||||
player_list.set_item_icon(player_list.get_item_count()-1, player_list.get_node("not_ready_icon").get_button_icon())
|
||||
find_node("server_bots").set_pressed(gamestate.bots)
|
||||
|
||||
|
||||
func _game_ready(all_ready):
|
||||
if all_ready:
|
||||
get_node("countdown").show()
|
||||
countdown_timer.start()
|
||||
else:
|
||||
countdown_timer.stop()
|
||||
get_node("countdown").hide()
|
||||
|
||||
func _game_started():
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_name_text_changed(new_text):
|
||||
_on_player_changed()
|
||||
|
||||
|
||||
func _on_color_color_changed(color):
|
||||
_on_player_changed()
|
||||
|
||||
|
||||
func _on_ready_toggled(button_pressed):
|
||||
_on_player_changed()
|
||||
player_settings.get_name_node().set_editable(not button_pressed)
|
||||
player_settings.get_color_node().set_disabled(button_pressed)
|
||||
|
||||
|
||||
func _on_player_changed():
|
||||
var name = player_settings.get_name_node().text
|
||||
var color = player_settings.get_color_node().color
|
||||
var ready = find_node("ready").pressed
|
||||
gamestate.update_player(name,color,ready)
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
gamestate.quit_game()
|
||||
if get_tree().get_root().has_node("multiplayer_menu"):
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
elif get_tree().get_root().has_node("main_menu"):
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _server_disconnected():
|
||||
_on_back_pressed()
|
||||
@@ -0,0 +1,24 @@
|
||||
extends Control
|
||||
|
||||
onready var player_settings = find_node("player_settings")
|
||||
|
||||
|
||||
func _ready():
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("start").grab_focus()
|
||||
|
||||
|
||||
func _on_start_pressed():
|
||||
var name = player_settings.get_name_node().text
|
||||
var color = player_settings.get_color_node().color
|
||||
var bots = find_node("bots").is_pressed()
|
||||
queue_free()
|
||||
server.local_game(name,color,bots)
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
@@ -0,0 +1,45 @@
|
||||
extends Control
|
||||
|
||||
var MultiplayerMenu = preload("res://scenes/menus/MultiplayerMenu.tscn")
|
||||
var LocalGameMenu = preload("res://scenes/menus/LocalGameMenu.tscn")
|
||||
var SettingsMenu = preload("res://scenes/menus/SettingsMenu.tscn")
|
||||
|
||||
|
||||
func _ready():
|
||||
gamestate.connect("server_disconnected", self, "_server_disconnected")
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("multiplayer").grab_focus()
|
||||
|
||||
|
||||
func _on_multiplayer_pressed():
|
||||
var multiplayer_menu = MultiplayerMenu.instance()
|
||||
get_tree().get_root().add_child(multiplayer_menu)
|
||||
hide()
|
||||
|
||||
|
||||
func _on_practice_pressed():
|
||||
var local_game_menu = LocalGameMenu.instance()
|
||||
get_tree().get_root().add_child(local_game_menu)
|
||||
hide()
|
||||
|
||||
|
||||
func _on_settings_pressed():
|
||||
var settings_menu = SettingsMenu.instance()
|
||||
get_tree().get_root().add_child(settings_menu)
|
||||
hide()
|
||||
|
||||
|
||||
func _on_quit_pressed():
|
||||
get_tree().quit()
|
||||
|
||||
|
||||
func _server_disconnected():
|
||||
show_error_dialog(tr("SERVER_DISCONNECTED"))
|
||||
|
||||
|
||||
func show_error_dialog(text:String):
|
||||
var dialog = get_node("error_dialog")
|
||||
dialog.set_text(text)
|
||||
dialog.popup_centered()
|
||||
@@ -0,0 +1,46 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _ready():
|
||||
var player_name = config.get_value("game","player_name", false)
|
||||
var game_title = "New Game"
|
||||
if player_name:
|
||||
game_title += " by " + player_name
|
||||
find_node("name").set_text(game_title)
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("create").grab_focus()
|
||||
|
||||
|
||||
func _on_create_pressed():
|
||||
var req = game_server.http()
|
||||
req.connect_http(self,"_on_game_created")
|
||||
var server_name = find_node("name").text
|
||||
var bots = 0
|
||||
if find_node("bots").is_pressed():
|
||||
bots = 1
|
||||
req.post_request('client/game/create', to_json({'name' : server_name, 'bots' : bots}))
|
||||
|
||||
|
||||
func _on_game_created(result, response_code, headers, body):
|
||||
if result == OK && response_code == HTTPClient.RESPONSE_OK:
|
||||
var json = JSON.parse(body.get_string_from_utf8())
|
||||
gamestate.game_name = json.result['name']
|
||||
client.join_game(game_server.get_server_addr(), int(json.result['port']))
|
||||
else:
|
||||
get_tree().get_root().get_node("multiplayer_menu").show_error_dialog(tr("ERROR_GAME_CREATION"))
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_name_text_changed(new_text):
|
||||
if new_text:
|
||||
find_node("create").set_disabled(false)
|
||||
else:
|
||||
find_node("create").set_disabled(true)
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
@@ -0,0 +1,141 @@
|
||||
extends Control
|
||||
|
||||
var ServerCreateGameMenu = preload("res://scenes/menus/ServerCreateGameMenu.tscn")
|
||||
var LobbyMenu = preload("res://scenes/menus/LobbyMenu.tscn")
|
||||
var DirectHostMenu = preload("res://scenes/menus/DirectHostMenu.tscn")
|
||||
var DirectJoinMenu = preload("res://scenes/menus/DirectJoinMenu.tscn")
|
||||
|
||||
onready var games_list = get_node("menu/games")
|
||||
var games = []
|
||||
var selected_game = {}
|
||||
|
||||
|
||||
func _ready():
|
||||
get_node("menu/back").connect("pressed",self,"_on_back_pressed")
|
||||
client.connect("connection_succeeded", self, "_connection_succeeded")
|
||||
client.connect("connection_failed", self, "_connection_failed")
|
||||
client.connect("server_disconnected", self, "_server_disconnected")
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("refresh").grab_focus()
|
||||
|
||||
|
||||
func _on_multiplayer_menu_draw():
|
||||
get_games(find_node("open").is_pressed())
|
||||
get_node("refresh_timer").start()
|
||||
|
||||
|
||||
func _on_multiplayer_menu_hide():
|
||||
get_node("refresh_timer").stop()
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
|
||||
|
||||
func _on_direct_host_pressed():
|
||||
var direct_host_menu = DirectHostMenu.instance()
|
||||
get_tree().get_root().add_child(direct_host_menu)
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
|
||||
|
||||
func _on_direct_join_pressed():
|
||||
var direct_join_menu = DirectJoinMenu.instance()
|
||||
get_tree().get_root().add_child(direct_join_menu)
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
|
||||
|
||||
func _on_open_toggled(button_pressed):
|
||||
get_games(button_pressed)
|
||||
|
||||
|
||||
func _on_refresh_pressed():
|
||||
if get_node("refresh_timer").is_stopped():
|
||||
get_node("refresh_timer").start()
|
||||
get_games(find_node("open").is_pressed())
|
||||
|
||||
|
||||
func _on_refresh_timer_timeout():
|
||||
get_games(find_node("open").is_pressed())
|
||||
|
||||
|
||||
func _server_disconnected():
|
||||
show_error_dialog(tr("SERVER_DISCONNECTED"))
|
||||
|
||||
|
||||
func show_error_dialog(text:String):
|
||||
var dialog = get_node("error_dialog")
|
||||
dialog.set_text(text)
|
||||
dialog.popup_centered()
|
||||
|
||||
|
||||
func get_games(only_open:bool):
|
||||
var req = game_server.http()
|
||||
req.connect_http(self,"_on_get_games")
|
||||
if only_open:
|
||||
req.get_request('client/games?open')
|
||||
else:
|
||||
req.get_request('client/games')
|
||||
|
||||
|
||||
func _on_get_games(result, response_code, headers, body):
|
||||
if result == OK && response_code == HTTPClient.RESPONSE_OK:
|
||||
find_node("create").set_disabled(false)
|
||||
find_node("open").set_disabled(false)
|
||||
var json = JSON.parse(body.get_string_from_utf8())
|
||||
games_list.clear()
|
||||
games = json.result
|
||||
for game in games:
|
||||
var name = game.name
|
||||
name += " ("
|
||||
name += str(game.player_count)
|
||||
name += "/4)"
|
||||
if game.bots:
|
||||
name += " [with Bots]"
|
||||
games_list.add_item(name)
|
||||
if game.running:
|
||||
games_list.set_item_icon(games_list.get_item_count()-1, games_list.get_node("running_icon").get_button_icon())
|
||||
elif game.has('private') && game.private:
|
||||
games_list.set_item_icon(games_list.get_item_count()-1, games_list.get_node("private_icon").get_button_icon())
|
||||
else:
|
||||
games_list.set_item_icon(games_list.get_item_count()-1, games_list.get_node("open_icon").get_button_icon())
|
||||
else:
|
||||
find_node("create").set_disabled(true)
|
||||
find_node("join").set_disabled(true)
|
||||
find_node("open").set_disabled(true)
|
||||
show_error_dialog(tr("SERVER_NO_CONNECTION"))
|
||||
get_node("refresh_timer").stop()
|
||||
|
||||
|
||||
func _on_create_pressed():
|
||||
var server_create_game_menu = ServerCreateGameMenu.instance()
|
||||
get_tree().get_root().add_child(server_create_game_menu)
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
|
||||
|
||||
func _on_join_pressed():
|
||||
client.join_game(game_server.get_server_addr(), int(selected_game['port']))
|
||||
|
||||
|
||||
func _connection_succeeded():
|
||||
var lobby_menu = LobbyMenu.instance()
|
||||
if selected_game && selected_game.has('name'):
|
||||
gamestate.game_name = selected_game.name
|
||||
get_tree().get_root().add_child(lobby_menu)
|
||||
get_node("refresh_timer").stop()
|
||||
hide()
|
||||
|
||||
|
||||
func _connection_failed():
|
||||
show_error_dialog(tr("CONNECTION_FAILED"))
|
||||
|
||||
|
||||
func _on_games_item_selected(index):
|
||||
selected_game = games[index]
|
||||
find_node("join").set_disabled(false)
|
||||
|
||||
|
||||
func _on_games_nothing_selected():
|
||||
find_node("join").set_disabled(true)
|
||||
@@ -0,0 +1,124 @@
|
||||
extends Control
|
||||
|
||||
onready var grid = find_node("grid")
|
||||
onready var key_dialog = get_node("key_dialog")
|
||||
|
||||
const INPUT_TYPE_KEY = 0
|
||||
const INPUT_TYPE_JOYPAD = 1
|
||||
|
||||
var last_action:String
|
||||
var last_event:InputEvent
|
||||
|
||||
var new_inputs = {}
|
||||
|
||||
|
||||
func _ready():
|
||||
init_mapping()
|
||||
|
||||
|
||||
func init_mapping():
|
||||
new_inputs = {}
|
||||
for action in config.CONTROL_ACTIONS:
|
||||
var action_label = Label.new()
|
||||
action_label.set_name(action + "_label")
|
||||
action_label.set_text(action)
|
||||
grid.add_child(action_label)
|
||||
|
||||
var key_action_button = Button.new()
|
||||
key_action_button.set_h_size_flags(SIZE_SHRINK_CENTER)
|
||||
key_action_button.set_flat(true)
|
||||
key_action_button.set_meta("action",action)
|
||||
key_action_button.set_button_icon(get_node("icons/key").get_button_icon())
|
||||
|
||||
var joypad_action_button = Button.new()
|
||||
joypad_action_button.set_h_size_flags(SIZE_SHRINK_CENTER)
|
||||
joypad_action_button.set_flat(true)
|
||||
joypad_action_button.set_meta("action",action)
|
||||
|
||||
for event in InputMap.get_action_list(action):
|
||||
if event is InputEventKey:
|
||||
key_action_button.set_text(event.as_text())
|
||||
key_action_button.set_tooltip(event.as_text())
|
||||
elif event is InputEventJoypadButton:
|
||||
joypad_action_button.set_tooltip(str(event.button_index))
|
||||
if has_node("icons/joypad/" + str(event.button_index)):
|
||||
joypad_action_button.set_button_icon(get_node("icons/joypad/" + str(event.button_index)).get_button_icon())
|
||||
else:
|
||||
joypad_action_button.set_button_icon(get_node("icons/joypad/other").get_button_icon())
|
||||
joypad_action_button.set_text(str(event.button_index))
|
||||
|
||||
grid.add_child(key_action_button)
|
||||
key_action_button.connect("pressed",self,"_on_button_pressed",[key_action_button, INPUT_TYPE_KEY])
|
||||
|
||||
grid.add_child(joypad_action_button)
|
||||
joypad_action_button.connect("pressed",self,"_on_button_pressed",[joypad_action_button, INPUT_TYPE_JOYPAD])
|
||||
|
||||
|
||||
func _unhandled_input(event):
|
||||
if key_dialog.is_visible_in_tree():
|
||||
var action_button = key_dialog.find_node("action_button")
|
||||
var check_usage = false
|
||||
if key_dialog.get_meta("type") == INPUT_TYPE_KEY && event is InputEventKey:
|
||||
check_usage = true
|
||||
last_event = event
|
||||
action_button.set_button_icon(get_node("icons/key").get_button_icon())
|
||||
action_button.set_text(event.as_text())
|
||||
action_button.set_tooltip(event.as_text())
|
||||
elif key_dialog.get_meta("type") == INPUT_TYPE_JOYPAD && event is InputEventJoypadButton:
|
||||
check_usage = true
|
||||
last_event = event
|
||||
action_button.set_tooltip(str(event.button_index))
|
||||
if has_node("icons/joypad/" + str(event.button_index)):
|
||||
action_button.set_text("")
|
||||
action_button.set_button_icon(get_node("icons/joypad/" + str(event.button_index)).get_button_icon())
|
||||
else:
|
||||
action_button.set_button_icon(get_node("icons/joypad/other").get_button_icon())
|
||||
action_button.set_text(str(event.button_index))
|
||||
|
||||
if check_usage:
|
||||
var has_event = ""
|
||||
for action in config.CONTROL_ACTIONS:
|
||||
if InputMap.event_is_action(event, action):
|
||||
has_event = action
|
||||
|
||||
if not has_event == "" && not has_event == last_action:
|
||||
key_dialog.set_text(tr("KEY_ALREADY_TAKEN") + '\n\'' + tr(has_event) + '\'')
|
||||
key_dialog.get_ok().set_disabled(true)
|
||||
else:
|
||||
key_dialog.set_text(tr("PRESS_KEY"))
|
||||
key_dialog.get_ok().set_disabled(false)
|
||||
|
||||
|
||||
func _on_button_pressed(button, type):
|
||||
last_action = button.get_meta("action")
|
||||
last_event = null
|
||||
|
||||
var action_button = key_dialog.find_node("action_button")
|
||||
action_button.set_text("")
|
||||
action_button.set_button_icon(null)
|
||||
key_dialog.set_text(tr("PRESS_KEY"))
|
||||
key_dialog.set_meta("type", type)
|
||||
key_dialog.connect("confirmed",self,"_on_dialog_confirmed",[button])
|
||||
key_dialog.get_ok().set_disabled(true)
|
||||
key_dialog.get_label().set_align(HALIGN_CENTER)
|
||||
key_dialog.popup_centered()
|
||||
|
||||
|
||||
func _on_dialog_confirmed(button):
|
||||
if not new_inputs.has(last_action):
|
||||
new_inputs[last_action] = {}
|
||||
match key_dialog.get_meta("type"):
|
||||
INPUT_TYPE_KEY:
|
||||
if last_event is InputEventKey:
|
||||
new_inputs[last_action]["key"] = OS.get_scancode_string(last_event.scancode)
|
||||
button.set_text(last_event.as_text())
|
||||
button.set_tooltip(last_event.as_text())
|
||||
INPUT_TYPE_JOYPAD:
|
||||
if last_event is InputEventJoypadButton:
|
||||
new_inputs[last_action]["joypad"] = last_event.button_index
|
||||
button.set_tooltip(str(last_event.button_index))
|
||||
if has_node("icons/joypad/" + str(last_event.button_index)):
|
||||
button.set_button_icon(get_node("icons/joypad/" + str(last_event.button_index)).get_button_icon())
|
||||
else:
|
||||
button.set_button_icon(get_node("icons/joypad/other").get_button_icon())
|
||||
button.set_text(str(last_event.button_index))
|
||||
@@ -0,0 +1,116 @@
|
||||
extends Control
|
||||
|
||||
onready var player_settings = find_node("settings_player")
|
||||
onready var game_tab = find_node("game")
|
||||
onready var controls_tab = find_node("controls")
|
||||
onready var graphics_tab = find_node("graphics")
|
||||
onready var system_tab = find_node("system")
|
||||
|
||||
var locale
|
||||
|
||||
|
||||
func _ready():
|
||||
get_node("menu/back").connect("pressed",self,"_on_back_pressed")
|
||||
|
||||
# game
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
|
||||
# graphics
|
||||
find_node("fullscreen").set_pressed(config.get_value("graphics","fullscreen", true))
|
||||
find_node("light").set_pressed(config.get_value("graphics","light", false))
|
||||
find_node("shadows").set_pressed(config.get_value("graphics","shadows", false))
|
||||
find_node("shadows").set_disabled(not find_node("light").is_pressed())
|
||||
|
||||
for resolution in config.RESOLUTIONS:
|
||||
find_node("resolution").add_item(str(resolution.x) + " * " + str(resolution.y))
|
||||
|
||||
find_node("resolution").select(config.RESOLUTIONS.find(config.get_value("graphics","resolution", config.RESOLUTIONS[0])))
|
||||
|
||||
# system
|
||||
find_node("server_addr").set_text(game_server.get_server_addr())
|
||||
find_node("api_addr").set_text(game_server.get_api_addr())
|
||||
_init_locales()
|
||||
|
||||
|
||||
func _draw():
|
||||
game_tab.grab_focus()
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
|
||||
|
||||
func _on_locales_item_selected(index):
|
||||
match index:
|
||||
0:
|
||||
locale = "en"
|
||||
1:
|
||||
locale = "de"
|
||||
_:
|
||||
locale = "en"
|
||||
TranslationServer.set_locale(locale)
|
||||
game_tab.set_name(tr("GAME"))
|
||||
controls_tab.set_name(tr("CONTROLS"))
|
||||
graphics_tab.set_name(tr("GRAPHICS"))
|
||||
system_tab.set_name(tr("SYSTEM"))
|
||||
|
||||
|
||||
func _init_locales():
|
||||
var locales = find_node("locales")
|
||||
locales.clear()
|
||||
locales.add_item(tr("LOCALE_EN"))
|
||||
locales.add_item(tr("LOCALE_DE"))
|
||||
locale = config.get_value("system","locale","en")
|
||||
match locale:
|
||||
"en":
|
||||
locales.select(0)
|
||||
_on_locales_item_selected(0)
|
||||
"de":
|
||||
locales.select(1)
|
||||
_on_locales_item_selected(1)
|
||||
|
||||
|
||||
func _on_locales_tree_exiting():
|
||||
config_apply.apply_locale()
|
||||
|
||||
|
||||
func _on_save_pressed():
|
||||
_on_apply_pressed()
|
||||
_on_back_pressed()
|
||||
|
||||
|
||||
func _on_apply_pressed():
|
||||
# game
|
||||
config.set_value("game","player_name",player_settings.get_name_node().get_text())
|
||||
config.set_value("game","player_color",player_settings.get_color_node().color)
|
||||
config.set_value("game","bots",find_node("bots").is_pressed())
|
||||
|
||||
# graphics
|
||||
config.set_value("graphics","resolution",config.RESOLUTIONS[find_node("resolution").get_selected()])
|
||||
config.set_value("graphics","fullscreen",find_node("fullscreen").is_pressed())
|
||||
config.set_value("graphics","light",find_node("light").is_pressed())
|
||||
config.set_value("graphics","shadows",find_node("shadows").is_pressed())
|
||||
|
||||
# controls
|
||||
config.set_value("controls","mapping",find_node("settings_controls").new_inputs)
|
||||
|
||||
# system
|
||||
config.set_value("system","locale",locale)
|
||||
var server_addr = find_node("server_addr").get_text()
|
||||
if server_addr.empty():
|
||||
server_addr = game_server.SERVER_ADDR
|
||||
config.set_value("system","server_addr",server_addr)
|
||||
|
||||
var api_addr = find_node("api_addr").get_text()
|
||||
if api_addr.empty():
|
||||
api_addr = game_server.API_ADDR
|
||||
config.set_value("system","api_addr",api_addr)
|
||||
|
||||
config.save()
|
||||
|
||||
config_apply.apply_settings()
|
||||
|
||||
|
||||
func _on_light_toggled(button_pressed):
|
||||
find_node("shadows").set_disabled(not button_pressed)
|
||||
@@ -0,0 +1,14 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _ready():
|
||||
get_name_node().set_text(config.get_value("game","player_name", "Player"))
|
||||
get_color_node().set_pick_color(config.get_value("game","player_color", Color.black))
|
||||
|
||||
|
||||
func get_name_node():
|
||||
return find_node("name")
|
||||
|
||||
|
||||
func get_color_node():
|
||||
return find_node("color")
|
||||
Reference in New Issue
Block a user