From b928e67fb178596bd858c314bfc7d57c0b655bdd Mon Sep 17 00:00:00 2001 From: Lurkars Date: Wed, 7 Aug 2019 20:29:46 +0200 Subject: [PATCH] late Sunday update: netcode changes, bot improvements, bot development --- assets/blender/loop.blend | Bin 468016 -> 432944 bytes assets/blender/loop.blend1 | Bin 465024 -> 432944 bytes assets/road/roadLoop.obj | 137356 +-------------------- ext/server.py | 13 +- project.godot | 14 +- resources/ui/i18n.csv | 11 +- scenes/menus/DirectHostMenu.tscn | 73 +- scenes/menus/DirectJoinMenu.tscn | 2 +- scenes/menus/LocalGameMenu.tscn | 44 +- scenes/menus/MainMenu.tscn | 29 +- scenes/menus/ServerCreateGameMenu.tscn | 25 +- scenes/menus/SettingsControlsMenu.tscn | 2 +- scenes/menus/SettingsGameMenu.tscn | 53 + scenes/menus/SettingsGraphicsMenu.tscn | 44 + scenes/menus/SettingsMenu.tscn | 196 +- scenes/menus/SettingsPlayerMenu.tscn | 1 - scenes/menus/SettingsSystemMenu.tscn | 31 +- scenes/player/BotPlayer.tscn | 7 +- scenes/player/HumanPlayer.tscn | 62 +- scripts/game/config.gd | 3 +- scripts/game/config_apply.gd | 5 +- scripts/game/game.gd | 16 +- scripts/game/gamestate.gd | 13 +- scripts/game/route.gd | 22 +- scripts/menus/direct_host_menu.gd | 12 +- scripts/menus/ingame_menu.gd | 6 +- scripts/menus/lobby_menu.gd | 2 +- scripts/menus/local_game.gd | 10 +- scripts/menus/main_menu.gd | 7 +- scripts/menus/server_create_menu.gd | 10 +- scripts/menus/server_menu.gd | 4 +- scripts/menus/settings_controls_menu.gd | 4 + scripts/menus/settings_game_menu.gd | 17 + scripts/menus/settings_graphics_menu.gd | 24 + scripts/menus/settings_menu.gd | 94 +- scripts/menus/settings_system_menu.gd | 55 + scripts/networking/server.gd | 35 +- scripts/player/base_inventory.gd | 42 +- scripts/player/bot_controls.gd | 50 +- scripts/player/bot_inventory.gd | 3 +- scripts/player/human_controls.gd | 16 +- scripts/player/human_inventory.gd | 6 +- scripts/player/inventory_preview.gd | 4 +- scripts/player/player.gd | 48 +- scripts/screen_capture.gd | 53 + scripts/{Util.gd => util.gd} | 0 46 files changed, 3128 insertions(+), 135396 deletions(-) create mode 100644 scenes/menus/SettingsGameMenu.tscn create mode 100644 scenes/menus/SettingsGraphicsMenu.tscn create mode 100644 scripts/menus/settings_game_menu.gd create mode 100644 scripts/menus/settings_graphics_menu.gd create mode 100644 scripts/menus/settings_system_menu.gd create mode 100644 scripts/screen_capture.gd rename scripts/{Util.gd => util.gd} (100%) diff --git a/assets/blender/loop.blend b/assets/blender/loop.blend index e9f44308f33972bcaaa024f6472868d7e84ac8de..81f9ad37fdd29f3f24f82a2933ada5fd84c3387c 100644 GIT binary patch delta 41979 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 literal 468016 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
    xGn-&S_Pn57Am_t2ZJbs7HfE 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 delta 77856 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 X6*ZsdPyN%ZTc2$Rl4l!^Te0we>= 0 && new_bot_difficulty <= 1: + bot_difficulty = new_bot_difficulty + + func quit_game(): if game != null: game.queue_free() diff --git a/scripts/game/route.gd b/scripts/game/route.gd index 627a0c5..9f2e59b 100644 --- a/scripts/game/route.gd +++ b/scripts/game/route.gd @@ -14,13 +14,24 @@ func get_last_road(): func get_road(road_index): - if get_child_count() > road_index: + if road_index >= 0 && get_child_count() > road_index: return get_child(road_index) else: return null -remotesync func add_road(type, creator): +master func add_road(type): + if is_network_master(): + var sender_id = get_tree().get_rpc_sender_id() + if sender_id == 0: + sender_id = 1 + var creator = gamestate.game.get_player_by_network_id(sender_id) + if creator != null && creator.is_in_group("first"): + set_road(type,creator.get_name()) + rpc("set_road", type, creator.get_name()) + + +puppet func set_road(type, creator): var transform = get_global_transform() var last_road = get_last_road() if last_road != null: @@ -35,10 +46,9 @@ remotesync func add_road(type, creator): new_road.set_preview(false) new_road.set_creator(creator) - if creator > 0: - var player = gamestate.game.get_node(str(creator)) - if player != null: - new_road.set_color(player.get_player_color()) + var player = gamestate.game.get_player(str(creator)) + if player != null: + new_road.set_color(player.get_player_color()) add_child(new_road) diff --git a/scripts/menus/direct_host_menu.gd b/scripts/menus/direct_host_menu.gd index e97dbb3..b9805ed 100644 --- a/scripts/menus/direct_host_menu.gd +++ b/scripts/menus/direct_host_menu.gd @@ -5,6 +5,9 @@ var LobbyMenu = preload("res://scenes/menus/LobbyMenu.tscn") func _ready(): find_node("bots").set_pressed(config.get_value("game","bots", true)) + find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY)) + find_node("bot_difficulty").set_editable(find_node("bots").is_pressed()) + find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY")) func _draw(): @@ -14,7 +17,8 @@ func _draw(): 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) + var bot_difficulty = find_node("bot_difficulty").get_value() + var err = server.host_game(int(port), bots, bot_difficulty) if err == OK: var lobby_menu = LobbyMenu.instance() @@ -30,4 +34,8 @@ func _on_host_pressed(): func _on_back_pressed(): queue_free() - get_tree().get_root().get_node("multiplayer_menu").show() \ No newline at end of file + get_tree().get_root().get_node("multiplayer_menu").show() + + +func _on_bots_toggled(button_pressed): + find_node("bot_difficulty").set_editable(button_pressed) \ No newline at end of file diff --git a/scripts/menus/ingame_menu.gd b/scripts/menus/ingame_menu.gd index 5acad31..faf405f 100644 --- a/scripts/menus/ingame_menu.gd +++ b/scripts/menus/ingame_menu.gd @@ -1,5 +1,7 @@ extends Control +var SettingsMenu = preload("res://scenes/menus/SettingsMenu.tscn") + func _draw(): find_node("resume").grab_focus() @@ -10,7 +12,9 @@ func _on_resume_pressed(): func _on_settings_pressed(): - pass + var settings_menu = SettingsMenu.instance() + get_parent().add_child(settings_menu) + hide() func _on_end_pressed(): diff --git a/scripts/menus/lobby_menu.gd b/scripts/menus/lobby_menu.gd index a228450..0605e7a 100644 --- a/scripts/menus/lobby_menu.gd +++ b/scripts/menus/lobby_menu.gd @@ -33,7 +33,7 @@ func _draw(): find_node("ready").grab_focus() -func _physics_process(delta): +func _process(delta): if not countdown_timer.is_stopped(): get_node("countdown").text = str(int(countdown_timer.get_time_left()) + 1) diff --git a/scripts/menus/local_game.gd b/scripts/menus/local_game.gd index fa5b4d6..c3fe0fa 100644 --- a/scripts/menus/local_game.gd +++ b/scripts/menus/local_game.gd @@ -5,6 +5,9 @@ onready var player_settings = find_node("player_settings") func _ready(): find_node("bots").set_pressed(config.get_value("game","bots", true)) + find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY)) + find_node("bot_difficulty").set_editable(find_node("bots").is_pressed()) + find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY")) func _draw(): @@ -15,10 +18,15 @@ 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() + var bot_difficulty = find_node("bot_difficulty").get_value() queue_free() - server.local_game(name,color,bots) + server.local_game(name,color,bots,bot_difficulty) func _on_back_pressed(): queue_free() get_tree().get_root().get_node("main_menu").show() + + +func _on_bots_toggled(button_pressed): + find_node("bot_difficulty").set_editable(button_pressed) diff --git a/scripts/menus/main_menu.gd b/scripts/menus/main_menu.gd index b565cd1..4434da6 100644 --- a/scripts/menus/main_menu.gd +++ b/scripts/menus/main_menu.gd @@ -42,4 +42,9 @@ func _server_disconnected(): func show_error_dialog(text:String): var dialog = get_node("error_dialog") dialog.set_text(text) - dialog.popup_centered() \ No newline at end of file + dialog.popup_centered() + + +func _on_info_pressed(): + var dialog = get_node("info_popup") + dialog.popup_centered() diff --git a/scripts/menus/server_create_menu.gd b/scripts/menus/server_create_menu.gd index 6c836e4..ea03da6 100644 --- a/scripts/menus/server_create_menu.gd +++ b/scripts/menus/server_create_menu.gd @@ -8,6 +8,9 @@ func _ready(): game_title += " by " + player_name find_node("name").set_text(game_title) find_node("bots").set_pressed(config.get_value("game","bots", true)) + find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY)) + find_node("bot_difficulty").set_editable(find_node("bots").is_pressed()) + find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY")) func _draw(): @@ -21,7 +24,8 @@ func _on_create_pressed(): var bots = 0 if find_node("bots").is_pressed(): bots = 1 - req.post_request('client/game/create', to_json({'name' : server_name, 'bots' : bots})) + var bot_difficulty = find_node("bot_difficulty").get_value() + req.post_request('client/game/create', to_json({'name' : server_name, 'bots' : bots, 'bot_difficulty' : bot_difficulty})) func _on_game_created(result, response_code, headers, body): @@ -44,3 +48,7 @@ func _on_name_text_changed(new_text): func _on_back_pressed(): queue_free() get_tree().get_root().get_node("multiplayer_menu").show() + + +func _on_bots_toggled(button_pressed): + find_node("bot_difficulty").set_editable(button_pressed) diff --git a/scripts/menus/server_menu.gd b/scripts/menus/server_menu.gd index ae0d9e9..1766d6a 100644 --- a/scripts/menus/server_menu.gd +++ b/scripts/menus/server_menu.gd @@ -77,7 +77,7 @@ func get_games(only_open:bool): if only_open: req.get_request('client/games?open') else: - req.get_request('client/games') + req.get_request('client/games') func _on_get_games(result, response_code, headers, body): @@ -94,7 +94,7 @@ func _on_get_games(result, response_code, headers, body): name += "/4)" if game.bots: name += " [with Bots]" - games_list.add_item(name) + 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: diff --git a/scripts/menus/settings_controls_menu.gd b/scripts/menus/settings_controls_menu.gd index 6f883f0..c14812f 100644 --- a/scripts/menus/settings_controls_menu.gd +++ b/scripts/menus/settings_controls_menu.gd @@ -16,6 +16,10 @@ func _ready(): init_mapping() +func apply(): + config.set_value("controls","mapping",new_inputs) + + func init_mapping(): new_inputs = {} for action in config.CONTROL_ACTIONS: diff --git a/scripts/menus/settings_game_menu.gd b/scripts/menus/settings_game_menu.gd new file mode 100644 index 0000000..9a94a43 --- /dev/null +++ b/scripts/menus/settings_game_menu.gd @@ -0,0 +1,17 @@ +extends Tabs + +onready var player_settings = find_node("settings_player") + + +func _ready(): + # game + find_node("bots").set_pressed(config.get_value("game","bots", true)) + find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY)) + find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY")) + + +func apply(): + 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()) + config.set_value("game","bot_difficulty",find_node("bot_difficulty").get_value()) \ No newline at end of file diff --git a/scripts/menus/settings_graphics_menu.gd b/scripts/menus/settings_graphics_menu.gd new file mode 100644 index 0000000..a21fcb5 --- /dev/null +++ b/scripts/menus/settings_graphics_menu.gd @@ -0,0 +1,24 @@ +extends Tabs + + +func _ready(): + 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]))) + + +func apply(): + 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()) + + +func _on_light_toggled(button_pressed): + find_node("shadows").set_disabled(not button_pressed) \ No newline at end of file diff --git a/scripts/menus/settings_menu.gd b/scripts/menus/settings_menu.gd index 0981f27..218b103 100644 --- a/scripts/menus/settings_menu.gd +++ b/scripts/menus/settings_menu.gd @@ -1,35 +1,14 @@ 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() + system_tab.connect("locale_changed", self, "on_locale_changed") func _draw(): @@ -38,79 +17,30 @@ func _draw(): func _on_back_pressed(): queue_free() - get_tree().get_root().get_node("main_menu").show() + if get_parent().has_node("ingame_menu"): + get_parent().get_node("ingame_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() -func _on_locales_item_selected(index): - match index: - 0: - locale = "en" - 1: - locale = "de" - _: - locale = "en" - TranslationServer.set_locale(locale) +func on_locale_changed(): 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) + game_tab.apply() + graphics_tab.apply() + controls_tab.apply() + system_tab.apply() config.save() - - config_apply.apply_settings() - - -func _on_light_toggled(button_pressed): - find_node("shadows").set_disabled(not button_pressed) \ No newline at end of file + config_apply.apply_settings() \ No newline at end of file diff --git a/scripts/menus/settings_system_menu.gd b/scripts/menus/settings_system_menu.gd new file mode 100644 index 0000000..46aaee9 --- /dev/null +++ b/scripts/menus/settings_system_menu.gd @@ -0,0 +1,55 @@ +extends Tabs + +var locale + +signal locale_changed() + + +func _ready(): + 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 apply(): + 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) + + +func _on_locales_item_selected(index): + match index: + 0: + locale = "en" + 1: + locale = "de" + _: + locale = "en" + TranslationServer.set_locale(locale) + emit_signal("locale_changed") + + +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_system_settings_menu_tree_exiting(): + config_apply.apply_locale() diff --git a/scripts/networking/server.gd b/scripts/networking/server.gd index a547b8a..22d216a 100644 --- a/scripts/networking/server.gd +++ b/scripts/networking/server.gd @@ -26,11 +26,13 @@ func _ready(): server_secret=argument.split("=")[1] if argument.split("=")[0] == "--bots": gamestate.set_bots(bool(int(argument.split("=")[1]))) + if argument.split("=")[0] == "--bot-difficulty": + gamestate.set_bot_difficulty(float(argument.split("=")[1])) if argument.split("=")[0] == "--server-addr": game_server.set_server_addr(str(argument.split("=")[1])) if argument.split("=")[0] == "--api-addr": game_server.set_api_addr(str(argument.split("=")[1])) - + if dedicated_server: var err = host_game(port) if err == OK: @@ -44,21 +46,24 @@ func _ready(): quit_server() -func host_game(port:int, set_bots:bool = false): +func host_game(port:int, set_bots:bool = false, bot_difficulty:float = gamestate.DEFAULT_BOT_DIFFICULTY): var host = NetworkedMultiplayerENet.new() var err = host.create_server(port, MAX_PEERS) get_tree().set_network_peer(host) - + get_tree().connect("network_peer_connected", self, "_client_connected") get_tree().connect("network_peer_disconnected", self,"_client_disconnected") - + gamestate.connect("players_changed",self,"_players_changed") gamestate.connect("game_ready",self,"_game_ready") gamestate.connect("game_ended",self,"_game_ended") - + if set_bots: gamestate.bots = true - + + if set_bots && bot_difficulty != gamestate.DEFAULT_BOT_DIFFICULTY: + gamestate.bot_difficulty = bot_difficulty + if timer == null: timer = Timer.new() timer.set_name("timer") @@ -66,18 +71,19 @@ func host_game(port:int, set_bots:bool = false): timer.set_one_shot(true) timer.set_autostart(false) add_child(timer) - - if err != OK: + + if err != OK: emit_signal("server_error", "HOST", err) - + return err -func local_game(name:String, color:Color, bots:bool): +func local_game(name:String, color:Color, bots:bool, bot_difficulty:float): var localhost = NetworkedMultiplayerENet.new() localhost.create_server(0, 0) get_tree().set_network_peer(localhost) gamestate.bots = bots + gamestate.bot_difficulty = bot_difficulty gamestate.set_player(get_tree().get_network_unique_id(), name, color) gamestate.prepare_game() gamestate.post_start_game() @@ -96,6 +102,7 @@ func _client_connected(id): if dedicated_server: print(server_id + "peer connected: " + str(id)) gamestate.rpc_id(id, "set_bots" ,gamestate.bots) + gamestate.rpc_id(id, "bot_difficulty" ,gamestate.bot_difficulty) if not timer.is_stopped(): timer.disconnect("timeout",self,"quit_server") timer.stop() @@ -108,11 +115,11 @@ func _client_disconnected(id): if gamestate.game_running: emit_signal("server_error", "DISCONNECTED", [id]) gamestate.rpc("remove_player" ,id) - else: + else: gamestate.rpc("remove_player" ,id) -func _players_changed(players): +func _players_changed(players): if get_tree().is_network_server(): if dedicated_server: update_server_data() @@ -161,10 +168,10 @@ func _game_ready(all_ready): func _game_ended(): get_tree().disconnect("network_peer_connected", self, "_client_connected") get_tree().disconnect("network_peer_disconnected", self,"_client_disconnected") - + gamestate.disconnect("players_changed",self,"_players_changed") gamestate.disconnect("game_ready",self,"_game_ready") gamestate.disconnect("game_ended",self,"_game_ended") - + get_tree().set_refuse_new_network_connections(false) get_tree().set_network_peer(null) \ No newline at end of file diff --git a/scripts/player/base_inventory.gd b/scripts/player/base_inventory.gd index abe571a..f2e4345 100644 --- a/scripts/player/base_inventory.gd +++ b/scripts/player/base_inventory.gd @@ -3,39 +3,39 @@ extends Spatial class_name BaseInventory var road_straights = [ - roads_factory.BUMP, - roads_factory.BUMP_SMALL, - roads_factory.STRAIGHT, - roads_factory.STRAIGHT_SMALL, + roads_factory.BUMP, + roads_factory.BUMP_SMALL, + roads_factory.STRAIGHT, + roads_factory.STRAIGHT_SMALL, ] var roads_right = [ - roads_factory.CURVE_RIGHT, - roads_factory.CURVE_LARGE_RIGHT, - roads_factory.CURVE_SMALL_RIGHT, - roads_factory.SKEW_RIGHT, + roads_factory.CURVE_RIGHT, + roads_factory.CURVE_LARGE_RIGHT, + roads_factory.CURVE_SMALL_RIGHT, + roads_factory.SKEW_RIGHT, roads_factory.CURVED_RIGHT, ] var roads_left = [ - roads_factory.CURVE_LEFT, - roads_factory.CURVE_LARGE_LEFT, - roads_factory.CURVE_SMALL_LEFT, - roads_factory.SKEW_LEFT, - roads_factory.CURVED_LEFT, + roads_factory.CURVE_LEFT, + roads_factory.CURVE_LARGE_LEFT, + roads_factory.CURVE_SMALL_LEFT, + roads_factory.SKEW_LEFT, + roads_factory.CURVED_LEFT, ] var roads_up = [ - roads_factory.RAMP_UP, - roads_factory.RAMP_CURVED_UP, - roads_factory.RAMP_SMALL_UP, -] + roads_factory.RAMP_UP, + roads_factory.RAMP_CURVED_UP, + roads_factory.RAMP_SMALL_UP, +] var roads_down = [ roads_factory.RAMP_DOWN, roads_factory.RAMP_CURVED_DOWN, roads_factory.RAMP_SMALL_DOWN, -] +] var roads_special = [ roads_factory.LOOP, @@ -65,10 +65,10 @@ func set_item(): if item: item.free() item = roads_factory.get_road_instance(roads[type][index]) - + if player != null: item.set_color(player.get_player_color()) - + item.rotate_y(PI/2) - + emit_signal("item_changed", roads[type][index], player) \ No newline at end of file diff --git a/scripts/player/bot_controls.gd b/scripts/player/bot_controls.gd index 050a066..81695d0 100644 --- a/scripts/player/bot_controls.gd +++ b/scripts/player/bot_controls.gd @@ -1,52 +1,62 @@ extends Spatial +class_name BotPlayer + var player:Player const MAX_OFFSET = 8.0 -const OFFSET_STEPS = 0.01 +const OFFSET_STEPS = 0.1 +const PRE_BREAK_DISTANCE = 3.0 var break_constrain = 0.0 +var break_distance = 0.0 +var thrust_distance = 0.0 -export var overspeed_rate:float = 0.3 -export var underspeed_rate:float = 0.1 +export var difficulty:float = 0.0 +var rate = 0.0 -func _physics_process(delta): +func _process(delta): if is_network_master() && player != null: - if player.is_out: + if player.is_out(): if player.is_resetable: player.reset() else: if player.get_road() != null: var road = player.get_road() - var rate = util.randf() var speed = player.current_speed var offset = 0 - var distance = player.follow.get_offset() - var tmp_break_constrain = 0.0 + var distance = player.follow.get_offset() - OFFSET_STEPS + var tmp_constrain = 0.0 break_constrain = 0.0 + break_distance = 0.0 + thrust_distance = 0.0 - while tmp_break_constrain == 0.0 and offset < MAX_OFFSET && road != null: + while offset <= MAX_OFFSET && road != null: var constrain_index = road.get_constrain_index(distance) var road_length = road.get_lane_curve(player.lane).get_baked_length() if constrain_index >= 0: - tmp_break_constrain = road.speed_constrains[constrain_index].z - if tmp_break_constrain > break_constrain: - break_constrain = tmp_break_constrain + tmp_constrain = road.speed_constrains[constrain_index].z + if tmp_constrain > 0 && (break_constrain == 0.0 || tmp_constrain < break_constrain): + break_constrain = tmp_constrain + if break_distance == 0: + break_distance = offset + if tmp_constrain < 0 && thrust_distance == 0: + thrust_distance = offset distance += OFFSET_STEPS offset += OFFSET_STEPS - if distance >= road_length: + if distance >= road_length && gamestate.game != null: distance = 0 road = gamestate.game.route.get_road(road.get_index()+1) - if break_constrain > 0 && speed > break_constrain - 0.04 && rate > overspeed_rate: + if break_constrain > 0 && speed > break_constrain - 0.005 && break_distance < thrust_distance + PRE_BREAK_DISTANCE && rate < difficulty: player.thrust = -1 - elif speed - 0.08 < break_constrain && rate > underspeed_rate: + elif speed - 0.01 < break_constrain: player.thrust = 1 - elif break_constrain == 0 && rate > underspeed_rate: + elif break_constrain == 0.0 && rate < difficulty || speed < 0.02: player.thrust = 1 else: player.thrust = 0 @@ -57,9 +67,9 @@ func set_player(path:String): get_node("inventory").set_player(player) -func set_overspeed_rate(new_overspeed_rate:float): - overspeed_rate = new_overspeed_rate +func set_difficulty(new_difficulty:float): + difficulty = new_difficulty -func set_underspeed_rate(new_underspeed_rate:float): - underspeed_rate = new_underspeed_rate \ No newline at end of file +func _on_rate_timer_timeout(): + rate = util.randf() diff --git a/scripts/player/bot_inventory.gd b/scripts/player/bot_inventory.gd index 915aa1c..0b79e0c 100644 --- a/scripts/player/bot_inventory.gd +++ b/scripts/player/bot_inventory.gd @@ -14,7 +14,8 @@ func _on_raceCar_road_entered(road): if route.get_last_road().get_index() <= (road.get_index() +2): type = rand.randi_range(0,roads.size() -2) # TODO: remove special, loop need fixes! index = rand.randi_range(0, roads[type].size() -1) - route.rpc("add_road", roads[type][index], player.get_index()) + route.set_road(roads[type][index], -1) + route.rpc("set_road", roads[type][index], -1) func set_player(new_player:Player): diff --git a/scripts/player/human_controls.gd b/scripts/player/human_controls.gd index 95d6ee6..9f8c552 100644 --- a/scripts/player/human_controls.gd +++ b/scripts/player/human_controls.gd @@ -5,27 +5,27 @@ onready var camera:InterpolatedCamera = get_node("camera") onready var ingame_menu:Spatial = find_node("ingame_menu") -func _physics_process(delta): +func _process(delta): if is_network_master() && player != null: if Input.is_action_just_pressed("controls_menu"): ingame_menu.set_visible(not ingame_menu.is_visible_in_tree()) - if player.is_out: + if player.is_out(): camera.set_speed(0.1) if player.timer.get_time_left() > 0: get_node("hud/reset").set_text(str(int(player.timer.get_time_left()) + 1)) else: get_node("hud/reset").set_text(tr("RESET")) if Input.is_action_pressed("controls_reset"): - if player.reset(): - camera.set_speed(10) - get_node("hud/reset").set_text("") + player.rpc("reset") elif not ingame_menu.is_visible_in_tree(): + camera.set_speed(10) + get_node("hud/reset").set_text("") if Input.is_action_pressed("controls_thrust"): - player.thrust = 1 + player.rpc_unreliable("set_thrust",1) elif Input.is_action_pressed("controls_break"): - player.thrust = -1 + player.rpc_unreliable("set_thrust",-1) else: - player.thrust = 0 + player.rpc_unreliable("set_thrust",0) get_node("hud/speed_slider").set_value(player.current_speed * 1000) diff --git a/scripts/player/human_inventory.gd b/scripts/player/human_inventory.gd index ed9483e..340ed59 100644 --- a/scripts/player/human_inventory.gd +++ b/scripts/player/human_inventory.gd @@ -13,17 +13,17 @@ func _ready(): connect("item_changed",preview,"_on_inventory_item_changed") -func _physics_process(delta): +func _process(delta): if is_network_master(): if player != null: - if not player.is_out && player.is_in_group("first"): + if not player.is_out() && player.is_in_group("first"): get_node("../hud/inventory").show() if item == null: set_item() if preview.item: preview.item.show() if Input.is_action_just_pressed("controls_add_road"): - route.rpc("add_road", roads[type][index], player.get_index()) + route.rpc("add_road", roads[type][index]) if Input.is_action_just_pressed("controls_prev_road_type"): type -= 1 if type < 0: diff --git a/scripts/player/inventory_preview.gd b/scripts/player/inventory_preview.gd index 81d08b8..69b979d 100644 --- a/scripts/player/inventory_preview.gd +++ b/scripts/player/inventory_preview.gd @@ -6,12 +6,12 @@ var player:Player var item:Road -func _ready(): +func _ready(): gamestate.game.route.connect("road_added",self,"_on_route_road_added") func _on_route_road_added(road): - if is_network_master() && item: + if is_network_master() && item && road: var transform = road.get_global_transform(); var curve = road.get_curve() transform = transform.translated(curve.get_point_position(curve.get_point_count() -1)) diff --git a/scripts/player/player.gd b/scripts/player/player.gd index c6a40da..d2ccc25 100644 --- a/scripts/player/player.gd +++ b/scripts/player/player.gd @@ -109,9 +109,7 @@ func _physics_process(delta): torque_penalty = road.get_torque_penalty(penalty_index) force_penalty = road.get_force_penalty(penalty_index) path_penalty = road.get_path_penalty(penalty_index) - is_out = true - is_resetable = false - timer.start() + rpc("set_out") check_position() else: @@ -173,11 +171,27 @@ func set_player_color(new_color): race_car.get_node("body").set_surface_material(1,material) +func is_out(): + return is_out + + +remotesync func set_out(): + is_out = true + is_resetable = false + timer.start() + + +remotesync func set_in(): + is_out = false + is_resetable = false + + remotesync func set_first(is_first:bool): - if is_first: - add_to_group("first") - else: - remove_from_group("first") + if get_tree().get_rpc_sender_id() == 0 || get_tree().get_rpc_sender_id() == get_network_master(): + if is_first: + add_to_group("first") + else: + remove_from_group("first") master func check_position(): @@ -185,16 +199,24 @@ master func check_position(): rset("slave_position", position) +master func set_thrust(new_thrust:int): + var sender_id = get_tree().get_rpc_sender_id() + if is_network_master() || gamestate.game.get_player_by_network_id(sender_id) == self && [-1,0,1].has(new_thrust): + thrust = new_thrust + + master func reset(): - if is_resetable: + var sender_id = get_tree().get_rpc_sender_id() + if (is_network_master() || gamestate.game.get_player_by_network_id(sender_id) == self) && is_resetable: has_next = false current_speed = 0 var road = race_car.road road.body.set_collision_layer_bit(get_index(),1) - while road.reset_index != 0: - road = route.get_road(road.get_index() - road.reset_index) + var reset_index = road.reset_index + for i in range(reset_index): + road = route.get_road(road.get_index() - 1) road.body.set_collision_layer_bit(get_index(),1) path.curve.clear_points() @@ -213,11 +235,7 @@ master func reset(): follow.set_transform(road.get_transform()) - is_out = false - is_resetable = false - return true - else: - return false + rpc("set_in") func set_start(new_lane:int): diff --git a/scripts/screen_capture.gd b/scripts/screen_capture.gd new file mode 100644 index 0000000..aca1b0b --- /dev/null +++ b/scripts/screen_capture.gd @@ -0,0 +1,53 @@ +extends Node + +export(float) var frames_per_second = 5.0 + +var is_active:bool = false +var is_saving:bool = false + +var _frametick = 1.0/frames_per_second +var _thread:Thread + +var images = [] + + +func _ready(): + _thread = Thread.new() + + +func _process(delta): + if Input.is_action_just_pressed("controls_capture") && not is_saving: + is_active = not is_active + find_node("recording").set_visible(is_active) + if not is_active: + is_saving = true + find_node("saving").set_visible(true) + _thread.start(self, "save_images") + if is_active: + _frametick += delta + if (_frametick > 1.0/frames_per_second): + get_viewport().set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME) + var img = get_viewport().get_texture().get_data() + img.flip_y() + images.append(img) + + +func save_images(userdata): + var dir = Directory.new() + var timestamp = OS.get_unix_time() + if dir.open("user://capture/") != OK: + dir.open("user://") + dir.make_dir("capture") + + dir.open("user://capture/") + dir.make_dir(str(timestamp)) + + for img in images: + img.save_png("user://capture/" + str(timestamp) + "/" + str(img) + ".png") + + images = [] + is_saving = false + find_node("saving").set_visible(false) + + if(_thread.is_active()): + _thread.wait_to_finish() \ No newline at end of file diff --git a/scripts/Util.gd b/scripts/util.gd similarity index 100% rename from scripts/Util.gd rename to scripts/util.gd