From be7dbb08b6add2629890fa7646b598e1e36d6b30 Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sun, 5 Jan 2020 16:16:07 +0100 Subject: [PATCH] adding loader msg.xml and correct message when login/register error are detected --- .gitignore | 6 + addons/ui_window/ui_window.gd | 157 +- assets/Scripts/Definition/msg.gd | 21 +- assets/Scripts/Models/nel_register.gd | 2 +- assets/Scripts/Network/net_low_level.gd | 33 +- export_presets.cfg | 2 +- gui_scene/GUI/HUD/HUD.gd | 2 +- gui_scene/GUI/MusicControls/Music.gd | 12 +- .../GUI/MusicControls/MusicControls.tscn | 1 - gui_scene/GUI/login/login_menu.gd | 75 +- gui_scene/GUI/login/login_menu.tscn | 1 - gui_scene/GUI/login/register_menu.gd | 27 +- gui_scene/GUI/login/register_menu.tscn | 2 - login_scene/character_selection_menu.gd | 78 +- scenes/GUI/Settings/Settings.gd | 16 +- scenes/GUI/Settings/Settings.tscn | 1267 ++--------------- 16 files changed, 361 insertions(+), 1341 deletions(-) diff --git a/.gitignore b/.gitignore index 59e1c5b..06e419a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,9 @@ export_presets.cfg # Ignore binary & package *.bin *.pck + +# Ignore lib gdnaive +libgdnative.*.so + +# Ignore temp +temp/ diff --git a/addons/ui_window/ui_window.gd b/addons/ui_window/ui_window.gd index 3b039d2..f89168b 100644 --- a/addons/ui_window/ui_window.gd +++ b/addons/ui_window/ui_window.gd @@ -32,16 +32,16 @@ func add_child_to_content( node): # else: # .add_child( node ) # prints(self.get_name()+" just fathered", node.get_name()) - + func add_window_part( node ): add_child( node ) - + func set_mouse_pass_to_children( node ): for child in node.get_children(): set_mouse_pass_to_children( child ) if node is Control: node.mouse_filter = MOUSE_FILTER_PASS - + #func _ready(): func _enter_tree(): ######## @@ -49,7 +49,7 @@ func _enter_tree(): # The interal elements structure is: # self - MarginContainer # background - NinePatchRect - # parts - VBoxContainer + # parts - VBoxContainer # header_box - MarginContainer # header - HBoxContainer # quit - TextureButton @@ -68,13 +68,13 @@ func _enter_tree(): # self self.size_flags_horizontal = SIZE_EXPAND self.size_flags_vertical = SIZE_EXPAND - + self.set( "custom_constants/margin_right", 0) self.set( "custom_constants/margin_top", 0) self.set( "custom_constants/margin_left", 0) self.set( "custom_constants/margin_bottom", 0) - - + + self.connect ( "gui_input", self, "_on_window_gui_input" ) ### ### @@ -85,30 +85,34 @@ func _enter_tree(): background.name = "background" if not background_texture: var background_image = Image.new() - if not background_image.load( "res://addons/ui_window/background_default.jpg" ) == OK : + var stream_texture = load('res://addons/ui_window/background_default.jpg') + if not stream_texture : print("Erreur lors du chargement de l'image: "+str("res://addons/ui_window/background_default.jpg") ) + else: + background_image = stream_texture.get_data() background.texture = ImageTexture.new() background.texture.create_from_image( background_image ) else: background.texture = background_texture - + background.texture.flags = Texture.FLAG_FILTER | Texture.FLAG_REPEAT background.axis_stretch_horizontal = NinePatchRect.AXIS_STRETCH_MODE_TILE background.axis_stretch_vertical = NinePatchRect.AXIS_STRETCH_MODE_TILE - + background.size_flags_horizontal = SIZE_EXPAND_FILL background.size_flags_vertical = SIZE_EXPAND_FILL - + background.region_rect = Rect2( 0, 0, 0, 0 ) background.patch_margin_left = 4 background.patch_margin_top = 32 background.patch_margin_right = 4 background.patch_margin_bottom = 4 - + background.self_modulate = background_color - + self.add_window_part( background ) -# background.set_owner( self ) + print("[ui_window:3]") +# background.set_owner( self ) ### ### # parts @@ -119,7 +123,7 @@ func _enter_tree(): parts.size_flags_horizontal = SIZE_EXPAND_FILL parts.size_flags_vertical = SIZE_EXPAND_FILL self.add_window_part( parts ) -# parts.set_owner( self ) +# parts.set_owner( self ) ### ### # header_box @@ -129,18 +133,18 @@ func _enter_tree(): header_box.name = "header_box" header_box.size_flags_horizontal = SIZE_EXPAND_FILL header_box.size_flags_vertical = SIZE_SHRINK_CENTER - + header_box.set( "custom_constants/margin_right", 4) header_box.set( "custom_constants/margin_top", 4) header_box.set( "custom_constants/margin_left", 4) header_box.set( "custom_constants/margin_bottom", 4) - + if is_movable: header_box.mouse_default_cursor_shape = CURSOR_MOVE parts.add_child( header_box ) -# header_box.set_owner( parts ) +# header_box.set_owner( parts ) header_box.connect ( "gui_input", self, "_on_Header_gui_input" ) - ### + ### ### # header var header @@ -152,7 +156,7 @@ func _enter_tree(): if is_movable: header.mouse_default_cursor_shape = CURSOR_MOVE header_box.add_child( header ) -# header.set_owner( header_box ) +# header.set_owner( header_box ) ### ### # quit @@ -162,15 +166,16 @@ func _enter_tree(): quit_button.name = "quit" quit_button.size_flags_horizontal = SIZE_SHRINK_END quit_button.size_flags_vertical = SIZE_SHRINK_CENTER - + var tex_quit = ImageTexture.new() var img_quit = Image.new() - img_quit.load( "res://assets/GUI/images/button_quit.png" ) + var stream_texture = load( "res://assets/GUI/images/button_quit.png") + img_quit = stream_texture.get_data() tex_quit.create_from_image( img_quit ) quit_button.texture_normal = tex_quit - + header.add_child( quit_button ) -# quit_button.set_owner( header ) +# quit_button.set_owner( header ) quit_button.connect ( "pressed", self, "_on_Quit_pressed" ) ### # close @@ -180,15 +185,16 @@ func _enter_tree(): close_button.name = "close" close_button.size_flags_horizontal = SIZE_SHRINK_END close_button.size_flags_vertical = SIZE_SHRINK_CENTER - + var tex_close = ImageTexture.new() var img_close = Image.new() - img_close.load( "res://assets/GUI/images/button_close.png" ) + var stream_texture = load("res://assets/GUI/images/button_close.png") + img_close = stream_texture.get_data() tex_close.create_from_image( img_close ) close_button.texture_normal = tex_close - + header.add_child( close_button ) -# close_button.set_owner( header ) +# close_button.set_owner( header ) close_button.connect ( "pressed", self, "_on_Close_pressed" ) ### # open @@ -198,15 +204,16 @@ func _enter_tree(): open_button.name = "open" open_button.size_flags_horizontal = SIZE_SHRINK_END open_button.size_flags_vertical = SIZE_SHRINK_CENTER - + var tex_open = ImageTexture.new() var img_open = Image.new() - img_open.load( "res://assets/GUI/images/button_open.png" ) + var stream_texture = load("res://assets/GUI/images/button_open.png") + img_open = stream_texture.get_data() tex_open.create_from_image( img_open ) open_button.texture_normal = tex_open open_button.visible = false header.add_child( open_button ) -# open_button.set_owner( header ) +# open_button.set_owner( header ) open_button.connect ( "pressed", self, "_on_Open_pressed" ) ### ### @@ -221,7 +228,7 @@ func _enter_tree(): if is_movable: title_label.mouse_default_cursor_shape = CURSOR_MOVE header.add_child( title_label ) -# title_label.set_owner( header ) +# title_label.set_owner( header ) ### ### # Content @@ -236,8 +243,8 @@ func _enter_tree(): content_box.set( "custom_constants/margin_left", 8) content_box.set( "custom_constants/margin_bottom", 8) parts.add_child( content_box ) -# content_box.set_owner( parts ) - ### +# content_box.set_owner( parts ) + ### ### # content_box/scroll_container var content_scroll_container @@ -248,7 +255,7 @@ func _enter_tree(): content_scroll_container.size_flags_vertical = SIZE_FILL content_scroll_container.scroll_deadzone = 0 content_box.add_child( content_scroll_container ) -# content_scroll_container.set_owner( content_box ) +# content_scroll_container.set_owner( content_box ) ### ### # content @@ -259,10 +266,10 @@ func _enter_tree(): content.size_flags_horizontal = SIZE_EXPAND_FILL content.size_flags_vertical = SIZE_EXPAND_FILL content_scroll_container.add_child( content ) -# content.set_owner( content_scroll_container ) - ### - - +# content.set_owner( content_scroll_container ) + ### + + ### # Footer var footer_box @@ -276,8 +283,8 @@ func _enter_tree(): footer_box.set( "custom_constants/margin_left", content_margin.position.x) footer_box.set( "custom_constants/margin_bottom", content_margin.size.y) parts.add_child( footer_box ) -# footer_box.set_owner( parts ) - ### +# footer_box.set_owner( parts ) + ### ### # footer_box/footer var footer @@ -287,7 +294,7 @@ func _enter_tree(): footer.size_flags_horizontal = SIZE_EXPAND_FILL footer.size_flags_vertical = SIZE_EXPAND_FILL footer_box.add_child( footer ) -# footer.set_owner( footer_box ) +# footer.set_owner( footer_box ) ### ### # footer_label @@ -308,27 +315,28 @@ func _enter_tree(): resize_button.name = "resize" resize_button.size_flags_horizontal = SIZE_FILL | SIZE_SHRINK_END resize_button.size_flags_vertical = SIZE_SHRINK_END - + var tex_resize = ImageTexture.new() var img_resize = Image.new() - img_resize.load( "res://assets/GUI/images/button_resize.png" ) + var stream_texture = load("res://assets/GUI/images/button_resize.png") + img_resize = stream_texture.get_data() tex_resize.create_from_image( img_resize ) resize_button.texture_normal = tex_resize resize_button.mouse_default_cursor_shape = CURSOR_FDIAGSIZE - resize_button.action_mode = Button.ACTION_MODE_BUTTON_PRESS + resize_button.action_mode = Button.ACTION_MODE_BUTTON_PRESS footer.add_child( resize_button ) -# resize_button.set_owner( footer ) +# resize_button.set_owner( footer ) resize_button.connect ( "pressed", self, "_on_Resize_pressed" ) - ###er_label.set_owner( footer ) + ###er_label.set_owner( footer ) ### - + current_rect_size = self.rect_min_size - + if is_borderless: $background.region_rect = Rect2( $background.patch_margin_left-1 , $background.patch_margin_top-1 , 256-($background.patch_margin_left+$background.patch_margin_right)+2 - , 256-($background.patch_margin_top+$background.patch_margin_bottom)+2 ) + , 256-($background.patch_margin_top+$background.patch_margin_bottom)+2 ) $background.patch_margin_left = 1 $background.patch_margin_top = 1 $background.patch_margin_right = 1 @@ -338,10 +346,10 @@ func _enter_tree(): open_button.visible = false quit_button.visible = false title_label.visible = false - - - - + + + + if not is_resizable: if not has_footer: footer_box.visible = false @@ -355,21 +363,21 @@ func _ready(): if child.name.begins_with( "footer_" ): if footer_box.get_node("footer").has_node("footer_label"): footer_box.get_node("footer").remove_child( footer_box.get_node("footer").get_node("footer_label") ) - + self.remove_child( child ) get_footer().add_child( child ) get_footer().move_child( child, 0 ) else: self.remove_child( child ) get_content().add_child( child ) - + set_mouse_pass_to_children( self ) - + func _process(delta): if size_changed: self.rect_size = Vector2( clamp( self.rect_size.x, min_size.x, self.rect_size.x ), clamp( self.rect_size.y, min_size.y, self.rect_size.y ) ) size_changed = false - + func _on_Window_mouse_entered(): print("mouse_entered") @@ -403,8 +411,8 @@ func close(): footer_box.visible = false current_rect_size = self.rect_size self.rect_size = Vector2( 0, 0 ) - - + + func _on_Close_pressed(): close() @@ -421,7 +429,7 @@ func open(): content_box.visible = true footer_box.visible = true self.rect_size = current_rect_size - + func _on_Open_pressed(): open() @@ -429,34 +437,34 @@ func _on_Resize_pressed(): is_resizing = true func _input( event ): - if is_resizable: + if is_resizable: if is_resizing and event is InputEventMouseButton and not event.pressed: is_resizing = false if event is InputEventMouseMotion and is_resizing: var delta = event.relative self.rect_size += delta size_changed = true - + func check_if_clicked( event ): if not is_moving and event is InputEventMouseButton and event.is_pressed() and not event.is_echo() and event.button_index == 1 : emit_signal( "window_clicked", self ) - + func _on_Header_gui_input( event ): - + check_if_clicked( event ) - - if is_movable: + + if is_movable: if is_moving and event is InputEventMouseButton and not event.pressed: - is_moving = false + is_moving = false elif not is_moving and event is InputEventMouseButton and event.pressed: - is_moving = true + is_moving = true if event is InputEventMouseMotion and is_moving: var delta = event.relative self.rect_position += delta func _on_window_gui_input( event ): check_if_clicked( event ) - + func load_from_file( config_file ): if config_file.has_section( self.name ): self.rect_position = config_file.get_value( self.name, "position" ) @@ -471,20 +479,19 @@ func load_from_file( config_file ): func save_to_file( config_file ): - + var is_open = content_box.visible config_file.set_value(self.name, "position", self.rect_position) - + if not is_open: config_file.set_value(self.name, "size", current_rect_size) else: config_file.set_value(self.name, "size", self.rect_size) - + if is_open: config_file.set_value(self.name, "opened", true) else: config_file.set_value(self.name, "opened", false) - + config_file.set_value(self.name, "borderless", is_borderless) - \ No newline at end of file diff --git a/assets/Scripts/Definition/msg.gd b/assets/Scripts/Definition/msg.gd index f8a008d..2bce062 100644 --- a/assets/Scripts/Definition/msg.gd +++ b/assets/Scripts/Definition/msg.gd @@ -6,6 +6,7 @@ extends Node var _msg_xml = XMLParser.new() var _msg_md5sum +var _msg_data = {} func open_message_xml(): var file = File.new() @@ -31,28 +32,40 @@ func read_all_node(): #while i < _msg_xml.get_attribute_count(): # print(" -- Attribut Name:" + _msg_xml.get_attribute_name(i) + " Value:" + _msg_xml.get_attribute_value(i)) # i += 1 + if _msg_xml.get_node_type() != XMLParser.NODE_ELEMENT: + ret = _msg_xml.read() + continue + match _msg_xml.get_node_name(): "branch": i = 0 while i < _msg_xml.get_attribute_count() and _msg_xml.get_attribute_name(i) != "name": i += 1 if i < _msg_xml.get_attribute_count(): - print(_msg_xml.get_attribute_value(i)) branch = _msg_xml.get_attribute_value(i) + #print(branch + " " + str(_msg_xml.get_node_type())) + _msg_data[branch] = [] "leaf": i = 0 while i < _msg_xml.get_attribute_count() and _msg_xml.get_attribute_name(i) != "name": i += 1 if i < _msg_xml.get_attribute_count(): - print(branch + ":" + _msg_xml.get_attribute_value(i)) - - + leaf = _msg_xml.get_attribute_value(i) + #print(branch + ":" + leaf + str(_msg_xml.get_node_type())) + _msg_data[branch].append(leaf) ret = _msg_xml.read() + print("Branch:" + str(_msg_data.size())) + for key in _msg_data: + print(" " + key + ":" + str(_msg_data[key].size())) + for leaf in _msg_data[key]: + print(" " + key + ":" + leaf) + # Called when the node enters the scene tree for the first time. func _ready(): open_message_xml() read_all_node() + print("[msg] ready") # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): diff --git a/assets/Scripts/Models/nel_register.gd b/assets/Scripts/Models/nel_register.gd index 0ec8bf0..0e05c7d 100644 --- a/assets/Scripts/Models/nel_register.gd +++ b/assets/Scripts/Models/nel_register.gd @@ -29,7 +29,7 @@ class nel_register: self._confirmed = confirmed self._email = email self._tac = tac - self._url_encoding = load("res://assets/Scripts/Tools/url_encoding.gd").url_encoding.new() + self._url_encoding = preload("res://assets/Scripts/Tools/url_encoding.gd").url_encoding.new() func get_request(): return "/ams/index.php?page=register" diff --git a/assets/Scripts/Network/net_low_level.gd b/assets/Scripts/Network/net_low_level.gd index 855a5ea..6a36314 100644 --- a/assets/Scripts/Network/net_low_level.gd +++ b/assets/Scripts/Network/net_low_level.gd @@ -76,6 +76,9 @@ var _queue_message_system var _khaganat_host = "localhost" var _khaganat_port = "47851" +onready var BitStream = preload("res://bitstream.gdns") +onready var BitSet = preload("res://bitset.gdns") + func _ready(): _current_received_number = 0 _last_received_number = 0 @@ -85,7 +88,7 @@ func _ready(): _connection_state = TCONNECTIONSTATE.NOTINITIALISED _socketUDP = PacketPeerUDP.new() _queue_message_system = Array() - _long_ack_bit_field = preload("res://bitset.gdns").new() + _long_ack_bit_field = BitSet.new() _long_ack_bit_field.resize(512) _last_ack_in_long_ack = 0 _latest_sync = 0 @@ -96,7 +99,7 @@ func _ready(): _quit_id = 0 func send_system_login(user_addr, user_key, user_id, lang): - var msgout = preload("res://bitstream.gdns").new() + var msgout = BitStream.new() msgout.put_sint32(_current_received_number) msgout.put_bool(true) msgout.put_uint8(CLFECOMMON.SYSTEM_LOGIN_CODE) @@ -113,7 +116,7 @@ func send_system_login(user_addr, user_key, user_id, lang): _connection_state = TCONNECTIONSTATE.CONNECTED func send_system_sync(): - var msgout = preload("res://bitstream.gdns").new() + var msgout = BitStream.new() msgout.put_sint32(_current_received_number) msgout.put_bool(true) msgout.put_uint8(CLFECOMMON.SYSTEM_ACK_SYNC_CODE) @@ -124,7 +127,7 @@ func send_system_sync(): _queue_message_system.append(msgout) func send_system_ack_probe(): - var msgout = preload("res://bitstream.gdns").new() + var msgout = BitStream.new() msgout.put_sint32(_current_received_number) msgout.put_bool(true) msgout.put_uint8(CLFECOMMON.SYSTEM_ACK_PROBE_CODE) @@ -140,7 +143,7 @@ func send_system_ack_probe(): func send_system_quit(): # TODO - check why we send quit_id - var msgout = preload("res://bitstream.gdns").new() + var msgout = BitStream.new() _quit_id += 1 msgout.put_sint32(_current_received_number) msgout.put_bool(true) @@ -154,7 +157,7 @@ func send_system_quit(): return func send_systemm_disconnect(): - var msgout = preload("res://bitstream.gdns").new() + var msgout = BitStream.new() msgout.put_sint32(_current_received_number) msgout.put_bool(true) msgout.put_uint8(CLFECOMMON.SYSTEM_DISCONNECTION_CODE) @@ -166,10 +169,11 @@ func send_systemm_disconnect(): func disconnect_server(): print("[net_low_level:disconnect_server] Disconnect") - if _socketUDP: + if typeof(_socketUDP) != TYPE_NIL: send_systemm_disconnect() print("[net_low_level:disconnect_server] Send disconnect to server") _socketUDP.close() + _socketUDP = null func set_khaganat_server(host, port): _khaganat_host = host @@ -179,6 +183,8 @@ func connect_to_server(user_addr, user_key, user_id): var connexion = load("res://assets/Scripts/Config/connexion.gd").connexion.new() var lang = connexion.get_language() print("[net_low_level:connect_to_server] prepare:" + str(_khaganat_host) + ":" + str(_khaganat_port)) + if typeof(_socketUDP) == TYPE_NIL: + _socketUDP = PacketPeerUDP.new() _socketUDP.set_dest_address(_khaganat_host, _khaganat_port) send_system_login(user_addr, user_key, user_id, lang) @@ -189,7 +195,7 @@ func decode_system_message(msgin): CLFECOMMON.SYSTEM_LOGIN_CODE: pass CLFECOMMON.SYSTEM_SYNC_CODE: - var hexa = load("res://assets/Scripts/Tools/hexa.gd").new() + var hexa = preload("res://assets/Scripts/Tools/hexa.gd").new() var synchronize = msgin.get_uint32() var stime = msgin.get_sint64() _latest_sync = msgin.get_uint32() @@ -229,11 +235,12 @@ func decode_normal_message(msgin): func analyze_message_received(msgbytes): # khanat-opennel-code/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp:769 void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) _update_time = OS.get_ticks_msec() - var msgin = preload("res://bitstream.gdns").new() + var msgin = BitStream.new() msgin.put_data(msgbytes) _current_received_number = msgin.get_sint32() var system_mode = msgin.get_bool() - print("[net_low_level:analyze_message_received] Tick:" + str(_current_received_number) + ", Mode:" + str(system_mode) + ", Size:" + str(msgin.size())) + if ProjectSettings.get_setting("khaganat/debug_mode"): + print("[net_low_level:analyze_message_received] Tick:" + str(_current_received_number) + ", Mode:" + str(system_mode) + ", Size:" + str(msgin.size())) if system_mode: print("[net_low_level:analyze_message_received] System Mode") if _current_received_number > _last_received_number + 1: @@ -277,6 +284,8 @@ func analyze_message_received(msgbytes): decode_normal_message(msgin) func _process(delta): + if typeof(_socketUDP) == TYPE_NIL: + return var max_read = 10 if _connection_state == TCONNECTIONSTATE.NOTINITIALISED: return @@ -286,7 +295,8 @@ func _process(delta): return if _queue_message_system.size() > 0: var msgout = _queue_message_system.pop_front() - print("[net_low_level:_process] Send data system (" + str(msgout.size()) + ", " + msgout.show() + ")" ) + if ProjectSettings.get_setting("khaganat/debug_mode"): + print("[net_low_level:_process] Send data system (" + str(msgout.size()) + ", " + msgout.show() + ")" ) _socketUDP.put_packet(msgout.get_data()) if _latest_probes.size() > 0: @@ -298,4 +308,5 @@ func _process(delta): analyze_message_received(msgbytes) func _exit_tree(): + print("[net_low_level] End") disconnect_server() \ No newline at end of file diff --git a/export_presets.cfg b/export_presets.cfg index 8645d72..527a032 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -27,7 +27,7 @@ custom_template/debug="" name="khaganat.linux.32" platform="Linux/X11" -runnable=true +runnable=false custom_features="" export_filter="all_resources" include_filter="" diff --git a/gui_scene/GUI/HUD/HUD.gd b/gui_scene/GUI/HUD/HUD.gd index fbcb60a..efb666d 100644 --- a/gui_scene/GUI/HUD/HUD.gd +++ b/gui_scene/GUI/HUD/HUD.gd @@ -15,7 +15,7 @@ func _ready(): func _input( event ): if event.is_action_pressed( "ui_music_controls" ): $Windows/Music.visible = not $Windows/Music.visible - + func _on_SaveHUD_pressed(): var config_file = ConfigFile.new() diff --git a/gui_scene/GUI/MusicControls/Music.gd b/gui_scene/GUI/MusicControls/Music.gd index fc12fc9..70e6603 100644 --- a/gui_scene/GUI/MusicControls/Music.gd +++ b/gui_scene/GUI/MusicControls/Music.gd @@ -5,12 +5,12 @@ var current_song = "" var current_position = 0.0 var popup -func _ready(): - for song in $Songs.get_children(): +func _ready(): + for song in $Songs.get_children(): songs_list.append( song.name ) if $Songs.get_child_count() > 0: current_song = songs_list[0] - + popup = $SongsSelector.get_popup() for song in songs_list: @@ -30,7 +30,7 @@ func set_pause(): get_node( "Songs" ).get_node( current_song ).stop() else: current_position = 0.0 - + $Buttons/Pause.text = "Play" $Title.text = "Musiques (Paused):" @@ -41,7 +41,7 @@ func set_stop(): $Buttons/Pause.pressed = false $Buttons/Pause.text = "Play" $Title.text = "Musiques (Stopped):" - + func _on_Pause_toggled(button_pressed): if button_pressed: set_play() @@ -56,7 +56,7 @@ func _on_SongsSelector_item_selected(ID): if not current_song == new_song: set_stop() current_song = popup.get_item_text(ID) - + func _on_song_finished(): print("test") set_stop() \ No newline at end of file diff --git a/gui_scene/GUI/MusicControls/MusicControls.tscn b/gui_scene/GUI/MusicControls/MusicControls.tscn index d7a6311..8f1ba63 100644 --- a/gui_scene/GUI/MusicControls/MusicControls.tscn +++ b/gui_scene/GUI/MusicControls/MusicControls.tscn @@ -64,7 +64,6 @@ custom_colors/font_color = Color( 0.494118, 0.411765, 0.658824, 1 ) custom_colors/font_color_hover = Color( 0.863051, 0.203209, 1, 1 ) custom_colors/font_color_pressed = Color( 0.673295, 0.508021, 1, 1 ) text = "Stop" - [connection signal="item_selected" from="SongsSelector" to="." method="_on_SongsSelector_item_selected"] [connection signal="toggled" from="Buttons/Pause" to="." method="_on_Pause_toggled"] [connection signal="pressed" from="Buttons/Stop" to="." method="_on_Stop_pressed"] diff --git a/gui_scene/GUI/login/login_menu.gd b/gui_scene/GUI/login/login_menu.gd index ba3acf0..dbe7b65 100644 --- a/gui_scene/GUI/login/login_menu.gd +++ b/gui_scene/GUI/login/login_menu.gd @@ -11,8 +11,8 @@ func _on_login_button_pressed(): func _on_play_button_pressed(): - var username = get_node("h_box_container/v_box_container/margin_container/login_box/email_box/email_edit").get_text(); - var password = get_node("h_box_container/v_box_container/margin_container/login_box/password_box/password_edit").get_text(); + var username = $h_box_container/v_box_container/margin_container/login_box/email_box/email_edit.get_text(); + var password = $h_box_container/v_box_container/margin_container/login_box/password_box/password_edit.get_text(); if username != null and username != "" and password != null and password != "": do_request_salt(username, password) @@ -24,11 +24,11 @@ func _on_play_without_connexion_pressed(): func do_request_salt(username, password): #var message = load("res://assets/Scripts/Models/nel_login_message.gd") - var connexion = load("res://assets/Scripts/Config/connexion.gd").connexion.new() + var connexion = preload("res://assets/Scripts/Config/connexion.gd").connexion.new() #if message: _username = username _password = password - var message = load("res://assets/Scripts/Models/nel_login_message.gd").nel_login_message.new("https-login", _username, _password, "Lirria", "2", "en") + var message = preload("res://assets/Scripts/Models/nel_login_message.gd").nel_login_message.new("https-login", _username, _password, "Lirria", "2", "en") #message = message.nel_login_message.new("https-login", _username, _password, "Lirria", "2", "en") var url_login = connexion.get_url_login(); $HTTPSalt.request(url_login + "?" + message.get_request_salt()); @@ -37,28 +37,41 @@ func do_request_salt(username, password): func _on_HTTPSalt_request_completed(result, response_code, headers, body): - if response_code != 200 || ProjectSettings.get_setting("kaghanat/debug_mode"): - emit_signal( "login_button_pressed" ) + print("[login_menu:_on_HTTPSalt_request_completed] response_code:" + str(response_code)) + if response_code != 200: # || ProjectSettings.get_setting("khaganat/debug_mode"): + print("[login_menu:_on_HTTPSalt_request_completed] Impossible to connect") + #emit_signal( "login_button_pressed" ) + $error_dialog/v_box_container/label.text = "Impossible to connect" + $error_dialog.popup_centered() else: var text = str2var(body.get_string_from_utf8()) var s = body.get_string_from_utf8().split(":") print("[login_menu:_on_HTTPSalt_request_completed] return:'" + str(text) + "'") if(s[0] == "1"): print("[login_menu] salt:'" + str(s[1]) + "'") - var message = load("res://assets/Scripts/Models/nel_login_message.gd").nel_login_message.new("https-login", _username, _password, "Lirria", "2", "en") - var connexion = load("res://assets/Scripts/Config/connexion.gd").connexion.new() + var message = preload("res://assets/Scripts/Models/nel_login_message.gd").nel_login_message.new("https-login", _username, _password, "Lirria", "2", "en") + var connexion = preload("res://assets/Scripts/Config/connexion.gd").connexion.new() var url_login = connexion.get_url_login(); print("[login_menu] URL:" + url_login + "?" + message.get_request_string(str(s[1]))); $HTTPRequest.request(url_login + "?" + message.get_request_string(str(s[1]))); else: - get_node("error_dialog/v_box_container/label").text = "Impossible de se connecter" - get_node("error_dialog").popup_centered() + print("[login_menu:_on_HTTPSalt_request_completed] error to connect") + var regex = RegEx.new() + regex.compile("^(\\d+)[:](?.+)$") + var search = regex.search(s[0]) + if search: + $error_dialog/v_box_container/label.text = "Impossible to connect\n" + search.get_string("comment") + $error_dialog.popup_centered() + else: + $error_dialog/v_box_container/label.text = "Impossible to connect\n" + str(s[0]) + $error_dialog.popup_centered() + return # Step Login func do_request(username, password): - var message = load("res://assets/Scripts/Models/nel_login_message.gd") - var connexion = load("res://assets/Scripts/Config/connexion.gd").connexion.new() + var message = preload("res://assets/Scripts/Models/nel_login_message.gd") + var connexion = preload("res://assets/Scripts/Config/connexion.gd").connexion.new() if message: var url_login message = message.nel_login_message.new("https-login", username, password, "Lirria", "2", "en") @@ -68,35 +81,46 @@ func do_request(username, password): func _on_HTTPRequest_request_completed(result, response_code, headers, body): - if response_code != 200 || ProjectSettings.get_setting("kaghanat/debug_mode"): - emit_signal( "login_button_pressed" ) + print("[login_menu:_on_HTTPRequest_request_completed] response_code:" + str(response_code)) + if response_code != 200: # || ProjectSettings.get_setting("khaganat/debug_mode"): + # emit_signal( "login_button_pressed" ) + print("[login_menu:_on_HTTPRequest_request_completed] Impossible to connect") + $error_dialog/v_box_container/label.text = "Impossible to connect" + $error_dialog.popup_centered() else: var text = str2var(body.get_string_from_utf8()) var lines = body.get_string_from_utf8().split("\n") if lines.size() != 2: print("[login_menu] Impossible to connect (bad return)") - get_node("error_dialog/v_box_container/label").text = "Impossible to connect (bad return)" - get_node("error_dialog").popup_centered() + $error_dialog/v_box_container/label.text = "Impossible to connect (bad return)" + $error_dialog.popup_centered() return var line1 = lines[0].split("#") var line2 = lines[1].split("#") #print("[login_menu:_on_HTTPRequest_request_completed] return:'" + str(text) + "'" + str(lines.size()) + "'" + str(line1.size()) + "'" + str(line2.size())) if line1[0] != "1": print("[login_menu] Impossible to connect (return" + line1[0] + ")") - get_node("error_dialog/v_box_container/label").text = "Impossible to connect (return :" + str(line1[0]) + ")" - get_node("error_dialog").popup_centered() + var regex = RegEx.new() + regex.compile("^(\\d+)[:](?.+)$") + var search = regex.search(line1[0]) + if search: + $error_dialog/v_box_container/label.text = "Impossible to connect\n" + search.get_string("comment") + $error_dialog.popup_centered() + else: + $error_dialog/v_box_container/label.text = "Impossible to connect\n" + str(line1[0]) + $error_dialog.popup_centered() return if line1.size() < 5: print("[login_menu] Impossible to connect (bad return 1st line, size:" + str(line1.size()) + ")") - get_node("error_dialog/v_box_container/label").text = "Impossible to connect (bad return 1st line, size:" + str(line1.size()) + ")" - get_node("error_dialog").popup_centered() + $error_dialog/v_box_container/label.text = "Impossible to connect (bad return 1st line, size:" + str(line1.size()) + ")" + $error_dialog.popup_centered() return if line2.size() != 3: print("[login_menu] Impossible to connect (bad return 2nd line, size:" + str(line2.size()) + ")") - get_node("error_dialog/v_box_container/label").text = "Impossible to connect (bad return 2nd line, size:" + str(line2.size()) + ")" - get_node("error_dialog").popup_centered() + $error_dialog/v_box_container/label.text = "Impossible to connect (bad return 2nd line, size:" + str(line2.size()) + ")" + $error_dialog.popup_centered() return - var server_info_script = load("res://assets/Scripts/Models/nel_server_info.gd"); + var server_info_script = preload("res://assets/Scripts/Models/nel_server_info.gd"); print("[login_menu] " + str(body.get_string_from_utf8())) var state = line1[0] var cookie = line1[1] @@ -115,8 +139,8 @@ func _on_HTTPRequest_request_completed(result, response_code, headers, body): var cookieSplit = cookie.split("|") if cookieSplit.size() != 3: - get_node("error_dialog/v_box_container/label").text = "Impossible de se connecter (bad cookies size:" + str(cookieSplit.size()) + ")" - get_node("error_dialog").popup_centered() + $error_dialog/v_box_container/label.text = "Impossible de se connecter (bad cookies size:" + str(cookieSplit.size()) + ")" + $error_dialog.popup_centered() return var UserAddr = cookieSplit[0] var UserKey = cookieSplit[1] @@ -129,6 +153,7 @@ func _on_HTTPRequest_request_completed(result, response_code, headers, body): emit_signal( "login_button_pressed" ) + func _make_post_request(url, data_to_send, use_ssl): # Convert data to json string: var query = JSON.print(data_to_send) diff --git a/gui_scene/GUI/login/login_menu.tscn b/gui_scene/GUI/login/login_menu.tscn index f308541..2d53a01 100644 --- a/gui_scene/GUI/login/login_menu.tscn +++ b/gui_scene/GUI/login/login_menu.tscn @@ -215,7 +215,6 @@ margin_bottom = 33.0 size_flags_horizontal = 4 size_flags_vertical = 4 text = "Ok" - [connection signal="request_completed" from="HTTPSalt" to="." method="_on_HTTPSalt_request_completed"] [connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"] [connection signal="pressed" from="h_box_container/v_box_container/margin_container/login_box/email_box/email_label_box/register_button" to="." method="_on_register_button_pressed"] diff --git a/gui_scene/GUI/login/register_menu.gd b/gui_scene/GUI/login/register_menu.gd index 302babb..32c514c 100644 --- a/gui_scene/GUI/login/register_menu.gd +++ b/gui_scene/GUI/login/register_menu.gd @@ -53,12 +53,12 @@ func do_enable_register_button(): func _on_play_button_pressed(): - var username = get_node("h_box_container/v_box_container/center_container/register_box/login_box/login_edit").get_text(); - var password = get_node("h_box_container/v_box_container/center_container/register_box/password_box/password_edit").get_text(); - var confirmed = get_node("h_box_container/v_box_container/center_container/register_box/password_confirm_box/password_edit").get_text(); - var email = get_node("h_box_container/v_box_container/center_container/register_box/email_box/email_edit").get_text(); - var cur_state = get_node('h_box_container/v_box_container/center_container/register_box/license_box/check_box').is_pressed() - var enregister = get_node('h_box_container/v_box_container/center_container/register_box/h_box_container/register_button2') + var username = $h_box_container/v_box_container/center_container/register_box/login_box/login_edit.get_text(); + var password = $h_box_container/v_box_container/center_container/register_box/password_box/password_edit.get_text(); + var confirmed = $h_box_container/v_box_container/center_container/register_box/password_confirm_box/password_edit.get_text(); + var email = $h_box_container/v_box_container/center_container/register_box/email_box/email_edit.get_text(); + var cur_state = $h_box_container/v_box_container/center_container/register_box/license_box/check_box.is_pressed() + var enregister = $h_box_container/v_box_container/center_container/register_box/h_box_container/register_button2 var tac = "off"; if cur_state == true: tac = "on"; @@ -102,12 +102,12 @@ func do_request(username, password, confirmed, email, tac): func _on_HTTPRequest_request_completed( result, response_code, headers, body ): var pos var search - var enregister = get_node('h_box_container/v_box_container/center_container/register_box/h_box_container/register_button2') - var comment_last = get_node('h_box_container/v_box_container/center_container/register_box/comment_last') - var comment_username = get_node('h_box_container/v_box_container/center_container/register_box/login_box/comment') - var comment_password = get_node('h_box_container/v_box_container/center_container/register_box/password_box/comment') - var comment_confirm_password = get_node('h_box_container/v_box_container/center_container/register_box/password_confirm_box/comment') - var comment_email = get_node('h_box_container/v_box_container/center_container/register_box/email_box/comment') + var enregister = $h_box_container/v_box_container/center_container/register_box/h_box_container/register_button2 + var comment_last = $h_box_container/v_box_container/center_container/register_box/comment_last + var comment_username = $h_box_container/v_box_container/center_container/register_box/login_box/comment + var comment_password = $h_box_container/v_box_container/center_container/register_box/password_box/comment + var comment_confirm_password = $h_box_container/v_box_container/center_container/register_box/password_confirm_box/comment + var comment_email = $h_box_container/v_box_container/center_container/register_box/email_box/comment var regex = RegEx.new() comment_username.text = "" @@ -135,7 +135,7 @@ func _on_HTTPRequest_request_completed( result, response_code, headers, body ): get_node("wait_dialog").hide() var text = str2var(body.get_string_from_utf8()) - regex.compile("(\\d+)") + regex.compile("^(\\d+)[:]") var tab = text.split(":", true,2) if tab.size() > 1 : if regex.search(tab[0]): @@ -145,6 +145,7 @@ func _on_HTTPRequest_request_completed( result, response_code, headers, body ): get_node("wait_dialog").hide() get_node("error_dialog/v_box_container/label").text = "Serveur a renvoyé une erreur\nCode retour:" + str(tab[0]) + "\nMessage:" + tab[1] get_node("error_dialog").popup_centered() + print("[Register] Failed to register (Code retour:" + str(tab[0]) + ", message:" + tab[1] +")") return tab = text.rsplit("\n") diff --git a/gui_scene/GUI/login/register_menu.tscn b/gui_scene/GUI/login/register_menu.tscn index 09d4712..10165b8 100644 --- a/gui_scene/GUI/login/register_menu.tscn +++ b/gui_scene/GUI/login/register_menu.tscn @@ -28,7 +28,6 @@ expand = true stretch_mode = 7 [node name="h_box_container" type="HBoxContainer" parent="."] -editor/display_folded = true anchor_right = 1.0 anchor_bottom = 1.0 @@ -342,7 +341,6 @@ margin_bottom = 114.0 size_flags_horizontal = 4 size_flags_vertical = 4 text = "Ok" - [connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"] [connection signal="text_changed" from="h_box_container/v_box_container/center_container/register_box/login_box/login_edit" to="." method="_on_login_edit_text_changed"] [connection signal="text_changed" from="h_box_container/v_box_container/center_container/register_box/password_box/password_edit" to="." method="_on_password_edit_text_changed"] diff --git a/login_scene/character_selection_menu.gd b/login_scene/character_selection_menu.gd index 066af9f..92cbcba 100644 --- a/login_scene/character_selection_menu.gd +++ b/login_scene/character_selection_menu.gd @@ -17,15 +17,15 @@ var zoom_direction = null func _ready(): - + # $viewport/character/face_camera.make_current() - - + + self.character_preview = $viewport/character self.character_preview.set_default_values() # self.character_preview.get_node( "Camera_rotation_helper/face_camera" ).make_current() self.character_preview.get_node( "face_camera" ).make_current() - + self.character_mesh = $viewport/character.get_node("suzanne/mesh") # self.character_face_camera = $viewport/character/Camera_rotation_helper/face_camera self.character_box = $margin_container/character_box @@ -37,25 +37,25 @@ func _ready(): update_character_slots() - + func update_character_slots(): var config_file = ConfigFile.new() var err = config_file.load( "user://player.cfg" ) if err: print("Error code when loading player config file: ", err) - + var useds_slot = [] var last_slot = 0 for section in config_file.get_sections(): useds_slot.append( int(section) ) if not self.character_box.has_node( "character_slots/slots_box/slot_box_"+section ): last_slot = int(section) - + var character_name = config_file.get_value( section, "name" ) if not character_name: character_name = "NameNotFound" - + var slot_box = HBoxContainer.new() slot_box.name = "slot_box_"+section slot_box.size_flags_horizontal = SIZE_FILL @@ -63,29 +63,29 @@ func update_character_slots(): slot_box.set( "custom_constants/separation", 8) self.character_box.get_node( "character_slots/slots_box/" ).add_child( slot_box ) slot_box.connect( "mouse_entered", self, "_on_name_mouse_entered_pressed", [int(section)] ) - + var label_name = Label.new() label_name.text = character_name label_name.size_flags_horizontal = SIZE_EXPAND slot_box.add_child( label_name ) - + var choose_button = Button.new() choose_button.text = "Choisir" slot_box.add_child( choose_button ) choose_button.connect( "pressed", self, "_on_choose_pressed", [int(section)] ) choose_button.connect( "mouse_entered", self, "_on_name_mouse_entered_pressed", [int(section)] ) - + var delete_button = Button.new() delete_button.text = "Supprimer" slot_box.add_child( delete_button ) delete_button.connect( "pressed", self, "_on_delete_pressed", [int(section), slot_box] ) delete_button.connect( "mouse_entered", self, "_on_name_mouse_entered_pressed", [int(section)] ) - + if self.character_box.has_node( "character_slots/creation_button" ): self.character_box.get_node( "character_slots/creation_button" ).free() - - var index = 0 + + var index = 0 while index in useds_slot: index += 1 var next_slot = index @@ -101,49 +101,49 @@ func _on_create_pressed( slot ): self.character_box.get_node( "character_slots" ).hide() self.character_box.get_node( "character_creation_box" ).show() self.character_preview.update() - + func _on_choose_pressed( slot ): emit_signal( "character_selected", slot ) - - -func _on_delete_pressed( slot, node_to_delete ): + + +func _on_delete_pressed( slot, node_to_delete ): var config_file = ConfigFile.new() var err = config_file.load( "user://player.cfg" ) if err: print("Error code when loading player config file: ", err) config_file.erase_section( str(slot) ) config_file.save( "user://player.cfg" ) - + var parent = node_to_delete.get_parent() parent.remove_child( node_to_delete ) - + update_character_slots() - - + + func _on_name_mouse_entered_pressed( slot ): $viewport/character.show() preview_slot = slot update_preview() - + func update_preview(): var slot = preview_slot - + var config_file = ConfigFile.new() var err = config_file.load( "user://player.cfg" ) if err: print("Error code when loading player config file: ", err) if config_file.has_section( str(slot) ): - + self.character_preview.slot = slot - + # name var pseudo = config_file.get_value( str(slot), "name", "Player" ) self.character_preview.pseudo = pseudo - + # gender var gender = config_file.get_value( str(slot), "gender", 1 ) self.character_preview.gender = gender - + # Color var color = config_file.get_value( str(slot), "color", Color( 1, 0.25, 0.25, 1 ) ) self.character_preview.color = color @@ -151,21 +151,21 @@ func update_preview(): # Size var size = config_file.get_value( str(slot), "size", 1.0 ) self.character_preview.size = size - + # Ears size var ears_size = config_file.get_value( str(slot), "ears_size", 0.0 ) self.character_preview.ears_size = ears_size - + # Eyes color var eyes_color = config_file.get_value( str(slot), "eyes_color", Color( 0.0, 1.0, 0.0, 1.0 ) ) self.character_preview.eyes_color = eyes_color - + self.character_preview.update() func _on_character_slots_return_button_pressed(): emit_signal( "return_button_pressed" ) - + func _on_character_creation_box_return_button_pressed(): self.character_box.get_node( "character_slots" ).show() self.character_box.get_node( "character_creation_box" ).hide() @@ -186,9 +186,9 @@ func _on_character_creation_box_creation_button_pressed(): config_file.set_value( str(self.character_preview.slot), "size", self.character_preview.size) config_file.set_value( str(self.character_preview.slot), "ears_size", self.character_preview.ears_size) config_file.set_value( str(self.character_preview.slot), "eyes_color", self.character_preview.eyes_color) - + config_file.save( "user://player.cfg" ) - + self.character_box.get_node( "character_slots" ).show() self.character_box.get_node( "character_creation_box" ).hide() update_character_slots() @@ -225,10 +225,10 @@ func _on_character_creation_box_ears_size_bar_changed( value ): func _on_character_creation_box_eyes_color_changed(value): self.character_preview.eyes_color = value - self.character_preview.update() - + self.character_preview.update() + func _process( delta ): - + if turn_direction == "left": self.character_mesh.rotation.y -= delta elif turn_direction == "right": @@ -238,7 +238,7 @@ func _process( delta ): $viewport/character/face_camera.size += delta elif zoom_direction == "back": $viewport/character/face_camera.size -= delta - + func _on_turn_left_button_down(): turn_direction = "left" func _on_turn_left_button_up(): @@ -271,6 +271,6 @@ func _on_lights_toggled(button_pressed): $viewport/character/face_lights.show() else: $viewport/character/face_lights.hide() - + func _on_character_preview_image_resized(): $viewport.size = $margin_container/character_box/v_box_container/character_preview_image.rect_size diff --git a/scenes/GUI/Settings/Settings.gd b/scenes/GUI/Settings/Settings.gd index 0f0818f..8f0a0bc 100644 --- a/scenes/GUI/Settings/Settings.gd +++ b/scenes/GUI/Settings/Settings.gd @@ -10,7 +10,7 @@ func _ready(): $Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen/SpinBox.value = OS.current_screen load_settings() - + func _on_font_size_bar_value_changed(value): $Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size/font_size_value.text = str( value ) @@ -27,17 +27,17 @@ func load_settings(): config_file.save( "user://settings.cfg" ) elif not err == OK: print("Error code when loading config file: ", err) - + global.font_size = config_file.get_value( "theme", "font_size" ) if $Menus.get_theme(): $Menus.get_theme().default_font.size = global.font_size $Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size_bar.value = global.font_size $Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size/font_size_value.text = str( global.font_size ) - + func _on_ReturnButton_pressed(): - + var config_file = ConfigFile.new() var err = config_file.load( "user://settings.cfg" ) if err: @@ -53,7 +53,7 @@ func _on_ReturnButton_pressed(): func _on_Title_text_changed(new_text): # ---------------------------------- # Changing windows title - var new_title = "Khanat" + var new_title = "Khanat" new_text = new_text.strip_edges() if not new_text == "": new_title = new_text @@ -65,7 +65,7 @@ func _on_Fullscreen_toggled(button_pressed): if ProjectSettings.has_setting( "display/window/size/fullscreen" ): ProjectSettings.set_setting("display/window/size/fullscreen", button_pressed) OS.window_fullscreen = ProjectSettings.get_setting("display/window/size/fullscreen") - + func _on_Borderless_toggled(button_pressed): if ProjectSettings.has_setting( "display/window/size/borderless" ): ProjectSettings.set_setting("display/window/size/borderless", button_pressed) @@ -84,3 +84,7 @@ func _on_AlwaysOnTop_toggled(button_pressed): func _on_SpinBox_value_changed(value): OS.current_screen = value + + +func _on_FluteButton_pressed(): + pass # Replace with function body. diff --git a/scenes/GUI/Settings/Settings.tscn b/scenes/GUI/Settings/Settings.tscn index 4a83e13..c9c0a0a 100644 --- a/scenes/GUI/Settings/Settings.tscn +++ b/scenes/GUI/Settings/Settings.tscn @@ -8,664 +8,222 @@ [ext_resource path="res://scenes/GUI/MusicControls/MusicControls.tscn" type="PackedScene" id=6] [sub_resource type="DynamicFont" id=1] - size = 14 -use_mipmaps = false -use_filter = false extra_spacing_top = 8 extra_spacing_bottom = 8 font_data = ExtResource( 2 ) -_sections_unfolded = [ "Extra Spacing", "Font", "Font/fallback", "Resource", "Settings" ] [sub_resource type="Theme" id=2] - default_font = SubResource( 1 ) -_sections_unfolded = [ "Resource" ] [sub_resource type="DynamicFont" id=3] - size = 42 -use_mipmaps = false -use_filter = false font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [sub_resource type="StyleBoxFlat" id=4] - content_margin_left = 8.0 content_margin_right = 8.0 content_margin_top = 8.0 content_margin_bottom = 8.0 bg_color = Color( 0.247059, 0.235294, 0.278431, 0.752941 ) -draw_center = true -border_width_left = 0 -border_width_top = 0 -border_width_right = 0 -border_width_bottom = 0 -border_color = Color( 0.8, 0.8, 0.8, 1 ) -border_blend = false corner_radius_top_left = 8 corner_radius_top_right = 8 -corner_radius_bottom_right = 0 -corner_radius_bottom_left = 0 -corner_detail = 8 -expand_margin_left = 0.0 -expand_margin_right = 0.0 -expand_margin_top = 0.0 -expand_margin_bottom = 0.0 -shadow_color = Color( 0, 0, 0, 0.6 ) -shadow_size = 0 -anti_aliasing = true -anti_aliasing_size = 1 -_sections_unfolded = [ "Anti Aliasing", "Border Width", "Content Margin", "Corner Radius", "Shadow" ] [sub_resource type="StyleBoxFlat" id=5] - content_margin_left = 8.0 content_margin_right = 8.0 content_margin_top = 8.0 content_margin_bottom = 8.0 bg_color = Color( 0.172549, 0.164706, 0.196078, 0.752941 ) -draw_center = true -border_width_left = 0 -border_width_top = 0 -border_width_right = 0 -border_width_bottom = 0 -border_color = Color( 0.8, 0.8, 0.8, 1 ) -border_blend = false corner_radius_top_left = 8 corner_radius_top_right = 8 -corner_radius_bottom_right = 0 -corner_radius_bottom_left = 0 -corner_detail = 8 -expand_margin_left = 0.0 -expand_margin_right = 0.0 -expand_margin_top = 0.0 -expand_margin_bottom = 0.0 -shadow_color = Color( 0, 0, 0, 0.6 ) -shadow_size = 0 -anti_aliasing = true -anti_aliasing_size = 1 -_sections_unfolded = [ "Content Margin", "Corner Radius" ] [sub_resource type="StyleBoxFlat" id=6] - -content_margin_left = -1.0 -content_margin_right = -1.0 -content_margin_top = -1.0 -content_margin_bottom = -1.0 bg_color = Color( 0.258824, 0.25098, 0.282353, 0.752941 ) -draw_center = true -border_width_left = 0 -border_width_top = 0 -border_width_right = 0 -border_width_bottom = 0 -border_color = Color( 0.8, 0.8, 0.8, 1 ) -border_blend = false corner_radius_top_left = 8 corner_radius_top_right = 8 corner_radius_bottom_right = 8 corner_radius_bottom_left = 8 -corner_detail = 8 -expand_margin_left = 0.0 -expand_margin_right = 0.0 -expand_margin_top = 0.0 -expand_margin_bottom = 0.0 -shadow_color = Color( 0, 0, 0, 0.6 ) -shadow_size = 0 -anti_aliasing = true -anti_aliasing_size = 1 -_sections_unfolded = [ "Corner Radius", "Expand Margin" ] [sub_resource type="StyleBoxLine" id=7] -content_margin_left = -1.0 -content_margin_right = -1.0 -content_margin_top = -1.0 -content_margin_bottom = -1.0 -color = Color( 0, 0, 0, 1 ) -grow = 1.0 -thickness = 1 -vertical = false - [sub_resource type="StyleBoxLine" id=8] - -content_margin_left = -1.0 -content_margin_right = -1.0 -content_margin_top = -1.0 -content_margin_bottom = -1.0 -color = Color( 0, 0, 0, 1 ) -grow = 1.0 thickness = 2 vertical = true -_sections_unfolded = [ "Content Margin" ] [sub_resource type="DynamicFont" id=9] - size = 32 -use_mipmaps = false -use_filter = false font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [node name="Settings" type="MarginContainer"] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 custom_constants/margin_right = 0 custom_constants/margin_top = 0 custom_constants/margin_left = 0 custom_constants/margin_bottom = 0 script = ExtResource( 1 ) -_sections_unfolded = [ "Size Flags", "Theme", "custom_constants" ] -[node name="Menus" type="VBoxContainer" parent="." index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_right = 1024.0 -margin_bottom = 600.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 +[node name="Menus" type="VBoxContainer" parent="."] +margin_right = 1280.0 +margin_bottom = 720.0 theme = SubResource( 2 ) -alignment = 0 -_sections_unfolded = [ "Material", "Size Flags", "Theme", "Visibility" ] -[node name="MenuTitle" type="Label" parent="Menus" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_right = 1024.0 +[node name="MenuTitle" type="Label" parent="Menus"] +margin_right = 1280.0 margin_bottom = 49.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 size_flags_vertical = 1 custom_fonts/font = SubResource( 3 ) text = "Settings" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags", "custom_constants", "custom_fonts" ] -[node name="TabContainer" type="TabContainer" parent="Menus" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TabContainer" type="TabContainer" parent="Menus"] margin_top = 53.0 -margin_right = 1024.0 -margin_bottom = 552.0 +margin_right = 1280.0 +margin_bottom = 672.0 rect_min_size = Vector2( 0, 64 ) -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 size_flags_vertical = 3 custom_styles/tab_fg = SubResource( 4 ) custom_styles/tab_bg = SubResource( 5 ) custom_styles/panel = SubResource( 6 ) -tab_align = 1 -tabs_visible = true -_sections_unfolded = [ "Hint", "Rect", "Size Flags", "Theme", "Visibility", "custom_colors", "custom_constants", "custom_icons", "custom_styles" ] - -[node name="Display" type="MarginContainer" parent="Menus/TabContainer" index="0"] +[node name="Display" type="MarginContainer" parent="Menus/TabContainer"] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 49.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 custom_constants/margin_right = 42 custom_constants/margin_top = 42 custom_constants/margin_left = 42 custom_constants/margin_bottom = 42 -_sections_unfolded = [ "Theme", "Visibility", "custom_constants" ] -[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Display" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Display"] margin_left = 42.0 margin_top = 42.0 -margin_right = 982.0 -margin_bottom = 408.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = true -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -scroll_horizontal_enabled = true -scroll_horizontal = 0 -scroll_vertical_enabled = true -scroll_vertical = 0 -scroll_deadzone = 0 -_sections_unfolded = [ "Grow Direction", "Material", "Rect", "Scroll", "Size Flags", "Visibility" ] +margin_right = 1238.0 +margin_bottom = 528.0 -[node name="VBoxContainer" type="VBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_right = 940.0 +[node name="VBoxContainer" type="VBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer"] +margin_right = 1196.0 margin_bottom = 239.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 size_flags_horizontal = 7 size_flags_vertical = 2 custom_constants/separation = 8 -alignment = 0 -_sections_unfolded = [ "Size Flags", "custom_constants" ] - -[node name="Fullscreen" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer" index="0"] +[node name="Fullscreen" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer"] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_right = 940.0 +margin_right = 1196.0 margin_bottom = 41.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Fullscreen" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 395.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Fullscreen"] +margin_left = 523.0 margin_top = 4.0 -margin_right = 468.0 +margin_right = 596.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "Fullscreen" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Fullscreen" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 472.0 -margin_right = 496.0 +[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Fullscreen"] +margin_left = 600.0 +margin_right = 624.0 margin_bottom = 41.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 2 -size_flags_vertical = 1 -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Borderless" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="Borderless" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer"] margin_top = 49.0 -margin_right = 940.0 +margin_right = 1196.0 margin_bottom = 90.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Borderless" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 392.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Borderless"] +margin_left = 520.0 margin_top = 4.0 -margin_right = 468.0 +margin_right = 596.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "Borderless" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Borderless" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 472.0 -margin_right = 496.0 +[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Borderless"] +margin_left = 600.0 +margin_right = 624.0 margin_bottom = 41.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 2 -size_flags_vertical = 1 -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -_sections_unfolded = [ "Size Flags" ] - -[node name="Resizable" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer" index="2"] +[node name="Resizable" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer"] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_top = 98.0 -margin_right = 940.0 +margin_right = 1196.0 margin_bottom = 139.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Resizable" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 400.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Resizable"] +margin_left = 528.0 margin_top = 4.0 -margin_right = 468.0 +margin_right = 596.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "Resizable" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Resizable" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 472.0 -margin_right = 496.0 +[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Resizable"] +margin_left = 600.0 +margin_right = 624.0 margin_bottom = 41.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 2 -size_flags_vertical = 1 -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="AlwaysOnTop" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer" index="3"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="AlwaysOnTop" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer"] margin_top = 147.0 -margin_right = 940.0 +margin_right = 1196.0 margin_bottom = 188.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/AlwaysOnTop" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 366.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/AlwaysOnTop"] +margin_left = 494.0 margin_top = 4.0 -margin_right = 468.0 +margin_right = 596.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "Always on top." -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/AlwaysOnTop" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 472.0 -margin_right = 496.0 +[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/AlwaysOnTop"] +margin_left = 600.0 +margin_right = 624.0 margin_bottom = 41.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 2 -size_flags_vertical = 1 disabled = true -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -_sections_unfolded = [ "Size Flags", "custom_constants" ] -[node name="CurrentScreen" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer" index="4"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="CurrentScreen" type="HBoxContainer" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer"] margin_top = 196.0 -margin_right = 940.0 +margin_right = 1196.0 margin_bottom = 239.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 358.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen"] +margin_left = 486.0 margin_top = 5.0 -margin_right = 468.0 +margin_right = 596.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "Current screen." -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="SpinBox" type="SpinBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 472.0 -margin_right = 546.0 +[node name="SpinBox" type="SpinBox" parent="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen"] +margin_left = 600.0 +margin_right = 674.0 margin_bottom = 43.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 2 -size_flags_vertical = 1 -min_value = 0.0 -max_value = 100.0 -step = 1.0 -page = 0.0 -value = 0.0 -exp_edit = false -rounded = false -editable = true -prefix = "" -suffix = "" -_sections_unfolded = [ "Size Flags" ] - -[node name="Controles" type="VBoxContainer" parent="Menus/TabContainer" index="1"] +[node name="Controles" type="VBoxContainer" parent="Menus/TabContainer"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 49.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Hint", "custom_constants" ] -[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Controles" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Controles"] margin_right = 1024.0 margin_bottom = 450.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = true -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 size_flags_vertical = 3 -scroll_horizontal_enabled = true -scroll_horizontal = 0 -scroll_vertical_enabled = true -scroll_vertical = 0 -scroll_deadzone = 0 -_sections_unfolded = [ "Hint", "Size Flags" ] -[node name="TabContainer" type="TabContainer" parent="Menus/TabContainer/Controles/ScrollContainer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TabContainer" type="TabContainer" parent="Menus/TabContainer/Controles/ScrollContainer"] margin_right = 1024.0 margin_bottom = 450.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 size_flags_vertical = 3 custom_styles/tab_fg = SubResource( 4 ) @@ -673,43 +231,18 @@ custom_styles/tab_bg = SubResource( 5 ) custom_styles/panel = SubResource( 7 ) custom_constants/top_margin = 0 custom_constants/side_margin = 0 -tab_align = 1 -tabs_visible = true -_sections_unfolded = [ "Hint", "Size Flags", "custom_colors", "custom_constants", "custom_fonts", "custom_styles" ] -[node name="Jeu" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 +[node name="Jeu" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer"] anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 1.0 margin_top = 50.0 margin_right = -1.0 margin_bottom = -1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -[node name="game_flashlight" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Jeu" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="game_flashlight" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Jeu"] margin_right = 1022.0 margin_bottom = 39.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -720,22 +253,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="hide_char" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Jeu" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="hide_char" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Jeu"] margin_top = 43.0 margin_right = 1022.0 margin_bottom = 82.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -746,127 +267,49 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="Interface" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer" index="1"] - +[node name="Interface" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 1.0 margin_top = 50.0 margin_right = -1.0 margin_bottom = -1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false hint_tooltip = "Interface." -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Hint", "Size Flags", "custom_constants" ] - -[node name="Header" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="0"] +[node name="Header" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 1022.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -[node name="TitleDescription" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleDescription" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header"] margin_right = 338.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 text = "Description" align = 2 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags", "Theme", "custom_constants", "custom_styles" ] -[node name="TitleKeyboard" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleKeyboard" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header"] margin_left = 342.0 margin_right = 680.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 text = "Clavier" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags", "Theme", "custom_constants", "custom_styles" ] -[node name="TitleJoypad" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header" index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleJoypad" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface/Header"] margin_left = 684.0 margin_right = 1022.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 text = "Joypad" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="ui_test" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ui_test" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] margin_top = 42.0 margin_right = 1022.0 margin_bottom = 86.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) -_sections_unfolded = [ "Focus" ] __meta__ = { "_editor_icon": ExtResource( 4 ) } @@ -876,22 +319,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="ui_pause" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ui_pause" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] margin_top = 90.0 margin_right = 1022.0 margin_bottom = 134.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -902,22 +333,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="ui_reload" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="3"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ui_reload" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] margin_top = 138.0 margin_right = 1022.0 margin_bottom = 182.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -928,22 +347,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="ui_free_cursor" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="4"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ui_free_cursor" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] margin_top = 186.0 margin_right = 1022.0 margin_bottom = 230.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -954,22 +361,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="ui_quit" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface" index="5"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ui_quit" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Interface"] margin_top = 234.0 margin_right = 1022.0 margin_bottom = 278.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -980,127 +375,50 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="Deplacement" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer" index="2"] - +[node name="Deplacement" type="VBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 1.0 margin_top = 50.0 margin_right = -1.0 margin_bottom = -1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -_sections_unfolded = [ "Size Flags", "Theme" ] - -[node name="Header" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="0"] +[node name="Header" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 1022.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -[node name="TitleDescription" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleDescription" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header"] margin_right = 338.0 margin_bottom = 37.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 custom_styles/normal = SubResource( 8 ) text = "Description" align = 2 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags", "Theme", "custom_constants", "custom_styles" ] -[node name="TitleKeyboard" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleKeyboard" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header"] margin_left = 342.0 margin_top = 2.0 margin_right = 680.0 margin_bottom = 35.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 text = "Clavier" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="TitleJoypad" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header" index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleJoypad" type="Label" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement/Header"] margin_left = 684.0 margin_top = 2.0 margin_right = 1022.0 margin_bottom = 35.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 4 text = "Joypad" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="move_up" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="move_up" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 41.0 margin_right = 1022.0 margin_bottom = 80.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1111,22 +429,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="move_down" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="move_down" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 84.0 margin_right = 1022.0 margin_bottom = 123.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1137,22 +443,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="move_left" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="3"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="move_left" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 127.0 margin_right = 1022.0 margin_bottom = 166.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1163,22 +457,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="move_right" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="4"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="move_right" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 170.0 margin_right = 1022.0 margin_bottom = 209.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1189,22 +471,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="fly_up" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="5"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="fly_up" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 213.0 margin_right = 1022.0 margin_bottom = 252.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1215,22 +485,10 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="fly_down" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement" index="6"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="fly_down" type="HBoxContainer" parent="Menus/TabContainer/Controles/ScrollContainer/TabContainer/Deplacement"] margin_top = 256.0 margin_right = 1022.0 margin_bottom = 295.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 script = ExtResource( 3 ) __meta__ = { "_editor_icon": ExtResource( 4 ) @@ -1241,455 +499,154 @@ default_keyboard = null default_keyboard_alt = null default_joypad = null -[node name="ResetButton" type="Button" parent="Menus/TabContainer/Controles" index="1"] - +[node name="ResetButton" type="Button" parent="Menus/TabContainer/Controles"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = 346.0 margin_top = 359.0 margin_right = 678.0 margin_bottom = 403.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 4 size_flags_vertical = 8 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null text = "Restorer les paramêtres par défaut." -flat = false -align = 1 -_sections_unfolded = [ "Size Flags", "custom_constants" ] - -[node name="contextual_help" type="Label" parent="Menus/TabContainer/Controles" index="2"] +[node name="contextual_help" type="Label" parent="Menus/TabContainer/Controles"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_top = 407.0 margin_right = 1024.0 margin_bottom = 445.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 size_flags_vertical = 8 text = "Cliquer sur un bouton pour modifier la touche assigné à l'action correspondante." align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] - -[node name="Test" type="MarginContainer" parent="Menus/TabContainer" index="2"] +[node name="Test" type="MarginContainer" parent="Menus/TabContainer"] visible = false -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 49.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 custom_constants/margin_right = 42 custom_constants/margin_top = 42 custom_constants/margin_left = 42 custom_constants/margin_bottom = 42 -_sections_unfolded = [ "Visibility", "custom_constants" ] -[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Test" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ScrollContainer" type="ScrollContainer" parent="Menus/TabContainer/Test"] margin_left = 42.0 margin_top = 42.0 -margin_right = 982.0 -margin_bottom = 408.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = true -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -scroll_horizontal_enabled = true -scroll_horizontal = 0 -scroll_vertical_enabled = true -scroll_vertical = 0 -scroll_deadzone = 0 -_sections_unfolded = [ "Rect", "Scroll", "Size Flags" ] +margin_right = 1238.0 +margin_bottom = 528.0 -[node name="VBoxContainer" type="VBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 342.0 -margin_right = 598.0 -margin_bottom = 446.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 +[node name="VBoxContainer" type="VBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer"] +margin_left = 470.0 +margin_right = 726.0 +margin_bottom = 486.0 size_flags_horizontal = 6 size_flags_vertical = 3 -alignment = 0 -_sections_unfolded = [ "Size Flags" ] -[node name="font_size" type="HBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="font_size" type="HBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_right = 256.0 margin_bottom = 33.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -[node name="font_size_label" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="font_size_label" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size"] margin_right = 67.0 margin_bottom = 33.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 text = "Font size:" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -[node name="font_size_value" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="font_size_value" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size"] margin_left = 238.0 margin_right = 256.0 margin_bottom = 33.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 size_flags_horizontal = 10 -size_flags_vertical = 4 text = "14" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Size Flags" ] -[node name="font_size_bar" type="HScrollBar" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="font_size_bar" type="HScrollBar" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 37.0 margin_right = 256.0 margin_bottom = 49.0 rect_min_size = Vector2( 256, 0 ) -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 0 min_value = 8.0 max_value = 22.0 step = 2.0 -page = 0.0 value = 14.0 -exp_edit = false -rounded = false -custom_step = -1.0 -_sections_unfolded = [ "Rect" ] -[node name="SpinBox" type="SpinBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="SpinBox" type="SpinBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 53.0 margin_right = 256.0 margin_bottom = 96.0 rect_min_size = Vector2( 256, 0 ) -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 7 size_flags_vertical = 0 -min_value = 0.0 -max_value = 100.0 -step = 1.0 -page = 0.0 -value = 0.0 -exp_edit = false -rounded = false -editable = true prefix = "test" suffix = "tset" -_sections_unfolded = [ "Rect", "Size Flags" ] -[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="3"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="CheckBox" type="CheckBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 100.0 margin_right = 256.0 margin_bottom = 141.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false hint_tooltip = "Test de CheckBox" -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 1 -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null text = "Checkbox" -flat = false -align = 0 -_sections_unfolded = [ "Focus", "Hint", "Mouse", "Size Flags", "Theme" ] -[node name="CheckBox2" type="CheckBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="4"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="CheckBox2" type="CheckBox" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 145.0 margin_right = 256.0 margin_bottom = 186.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 3 -size_flags_vertical = 1 -toggle_mode = true -enabled_focus_mode = 2 -shortcut = null -group = null text = " Label un peu plus grand" -flat = false -align = 0 -_sections_unfolded = [ "Size Flags", "Theme" ] -[node name="TitleBox" type="HBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="5"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="TitleBox" type="HBoxContainer" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 190.0 margin_right = 256.0 margin_bottom = 233.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 -[node name="Label" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="Label" type="Label" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox"] margin_top = 5.0 margin_right = 40.0 margin_bottom = 38.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 text = "Title: " -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -[node name="Title" type="LineEdit" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox" index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="Title" type="LineEdit" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox"] margin_left = 44.0 margin_right = 256.0 margin_bottom = 43.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false hint_tooltip = "Enter main window's title here." -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 1 size_flags_horizontal = 3 -size_flags_vertical = 1 -focus_mode = 2 -context_menu_enabled = true -placeholder_alpha = 0.6 caret_blink = true -caret_blink_speed = 0.65 -caret_position = 0 -_sections_unfolded = [ "Hint", "Size Flags" ] -[node name="MenuButton" type="MenuButton" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="6"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="MenuButton" type="MenuButton" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 237.0 margin_right = 256.0 margin_bottom = 276.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -toggle_mode = false -action_mode = 0 -enabled_focus_mode = 0 -shortcut = null -group = null text = "options" flat = false -align = 1 -items = [ ] script = ExtResource( 5 ) -_sections_unfolded = [ "custom_constants" ] -[node name="ColorPickerButton" type="ColorPickerButton" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="7"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ColorPickerButton" type="ColorPickerButton" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer"] margin_top = 280.0 margin_right = 256.0 margin_bottom = 319.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 1 color = Color( 1, 1, 1, 1 ) -edit_alpha = true - -[node name="Music" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" index="8" instance=ExtResource( 6 )] +[node name="Music" parent="Menus/TabContainer/Test/ScrollContainer/VBoxContainer" instance=ExtResource( 6 )] margin_top = 323.0 margin_bottom = 446.0 -[node name="Footer" type="HBoxContainer" parent="Menus" index="2"] +[node name="Footer" type="HBoxContainer" parent="Menus"] +margin_top = 676.0 +margin_right = 1280.0 +margin_bottom = 720.0 -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_top = 556.0 -margin_right = 1024.0 -margin_bottom = 600.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 -alignment = 0 - -[node name="ReturnButton" type="Button" parent="Menus/Footer" index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_right = 120.0 +[node name="FluteButton" type="Button" parent="Menus/Footer"] +margin_right = 92.0 margin_bottom = 44.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 size_flags_horizontal = 0 size_flags_vertical = 8 custom_fonts/font = SubResource( 9 ) -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -text = "Return" -flat = false -align = 1 -_sections_unfolded = [ "Size Flags", "custom_fonts" ] - +text = "Flute" [connection signal="toggled" from="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Fullscreen/CheckBox" to="." method="_on_Fullscreen_toggled"] - [connection signal="toggled" from="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Borderless/CheckBox" to="." method="_on_Borderless_toggled"] - [connection signal="toggled" from="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/Resizable/CheckBox" to="." method="_on_Resizable_toggled"] - [connection signal="toggled" from="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/AlwaysOnTop/CheckBox" to="." method="_on_AlwaysOnTop_toggled"] - [connection signal="value_changed" from="Menus/TabContainer/Display/ScrollContainer/VBoxContainer/CurrentScreen/SpinBox" to="." method="_on_SpinBox_value_changed"] - [connection signal="pressed" from="Menus/TabContainer/Controles/ResetButton" to="Menus/TabContainer/Controles" method="_on_ResetButton_pressed"] - [connection signal="value_changed" from="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/font_size_bar" to="." method="_on_font_size_bar_value_changed"] - [connection signal="text_changed" from="Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox/Title" to="." method="_on_Title_text_changed"] - -[connection signal="pressed" from="Menus/Footer/ReturnButton" to="." method="_on_ReturnButton_pressed"] - - +[connection signal="pressed" from="Menus/Footer/FluteButton" to="." method="_on_FluteButton_pressed"]