refonte de la partie création de personnage et ajout de la taille.

This commit is contained in:
osquallo 2018-08-22 17:00:33 +02:00
parent b744799d34
commit 9770d7f402
10 changed files with 348 additions and 140 deletions

View file

@ -5,12 +5,13 @@ const WINDOW_TITLE_INPUT = "GUI/Settings/Menus/TabContainer/Test/ScrollContainer
#### Environment
var time_scale = 0.1
#### Character
var character_name = "player"
var character_color = null
var character_gender = null
var character_slot = null
#
##### Character
#var character_name = "player"
#var character_color = null
#var character_gender = null
#var character_scale = 1
#var character_slot = null
#### BG loader
onready var progress_texture = $background_loader/center_container/texture_progress
@ -178,8 +179,9 @@ func _on_login_scene_character_creation_finished():
if err:
print("Error code when loading config file: ", err)
config_file.set_value(str(self.character_slot), "name", self.character_name)
config_file.set_value(str(self.character_slot), "color", self.character_color)
config_file.set_value(str(character.slot), "name", character.pseudo)
config_file.set_value(str(character.slot), "color", character.color)
config_file.set_value(str(character.size), "size", character.size)
config_file.save( "user://player.cfg" )
self.change_level( "game", "res://game_scene/game_scene.tscn", null, get_tree().get_root().get_node("login_scene") )

View file

@ -4,7 +4,7 @@
[ext_resource path="res://background_loader_scene/background_loader.tscn" type="PackedScene" id=2]
[ext_resource path="res://scenes/GUI/GUI.tscn" type="PackedScene" id=3]
[node name="global" type="Node"]
[node name="global" type="Node" index="0"]
pause_mode = 2
script = ExtResource( 1 )

View file

@ -1,17 +1,21 @@
extends MarginContainer
signal gender_value_changed( value )
#signal character_changed
signal sex_bar_changed( value )
signal size_bar_changed( value )
signal return_button_pressed
signal creation_button_pressed
var m_first_name_list = [ "testm1", "testm2", "testm3" ]
var f_first_name_list = [ "testf1", "testf2", "testf3" ]
var name_list = [ "machin", "truc", "bidule", "chose" ]
########
#### Name generator.
var syllabes_culno = [ "Cmachin", "Ctruc", "Cbidule", "Cchose" ]
var syllabes_culno_trad = [ "TradCmachin", "TradCtruc", "TradCbidule", "TradCchose" ]
var syllabes_khanat = [ "Kmachin", "Ktruc", "Kbidule", "Kchose" ]
var syllabes_khanat_trad = [ "TradKmachin", "TradKtruc", "TradKbidule", "TradKchose" ]
func _on_h_scroll_bar_value_changed( value ):
emit_signal( "gender_value_changed", value )
var syllabes_tcara = [ "Tmachin", "Ttruc", "Tbidule", "Tchose" ]
var syllabes_tcara_trad = [ "TradTmachin", "TradTtruc", "TradTbidule", "TradTchose" ]
func _on_return_button_pressed():
@ -21,29 +25,65 @@ func _on_return_button_pressed():
func _on_valid_button_pressed():
emit_signal( "creation_button_pressed" )
func show_error( string ):
$margin_container/v_box_container/error_label.set( "custom_colors/font_color", Color( 1, 0, 0, 1 ))
$margin_container/v_box_container/error_label.text = string
func show_help( string ):
$margin_container/v_box_container/error_label.set( "custom_colors/font_color", Color( 0, 1, 0, 1 ))
$margin_container/v_box_container/error_label.text = string
func _on_generate_name_pressed():
var sex_slider = $margin_container/v_box_container/sexe_box/h_box_container/h_scroll_bar
var name = "player"
if sex_slider.value == 0:
var name_index = randi()%len(m_first_name_list)
name = m_first_name_list[ name_index ]
else:
var name_index = randi()%len(f_first_name_list)
name = f_first_name_list[ name_index ]
var nb_syllabes = $margin_container/v_box_container/generate_name_box/nb_syllabe.value
var nb_noms = $margin_container/v_box_container/generate_name_box/nb_nom.value
var region = $margin_container/v_box_container/generate_name_box/region_menu.text
print("region: "+str(region) )
var name = ""
var trad = ""
for nom_index in range( 0, nb_noms ):
for syllabe_index in range( 0, nb_syllabes ):
if region == "Culno":
print("Culno")
var index = randi()%len(syllabes_culno)
name += syllabes_culno[ index ]
trad += syllabes_culno_trad[ index ]
elif region == "Tcara":
print("Tcara")
var index = randi()%len(syllabes_tcara)
name += syllabes_tcara[ index ]
trad += syllabes_tcara_trad[ index ]
else:
print("Khanat")
var index = randi()%len(syllabes_khanat)
name += syllabes_khanat[ index ]
trad += syllabes_khanat_trad[ index ]
if nom_index+1 < nb_noms:
name += " "
trad += " / "
name += " "
name += name_list[ randi()%len(name_list) ]
$margin_container/v_box_container/name_box/line_edit.text = name
self.show_help( trad )
func _ready():
var popup_node = $margin_container/v_box_container/generate_name_box/region_menu
var popup = popup_node.get_popup()
popup.add_item( "Culno" )
popup.add_item( "Khanat" )
popup.add_item( "Culno" )
popup.add_item( "Tcara" )
popup_node.selected = 0
popup_node.selected = 1
func _on_sex_bar_value_changed( value ):
# if value == 0:
# character.gender = 0
# character.color = Color( 0.0, 0.0, 1.0, 1.0 )
# else:
# character.gender = 1
# character.color = Color( 1.0, 0.25, 0.25, 1.0 )
emit_signal( "sex_bar_changed", value )
func _on_size_bar_value_changed( value ):
# character.size = value
emit_signal( "size_bar_changed", value )

View file

@ -22,7 +22,7 @@ use_filter = true
font_data = ExtResource( 2 )
_sections_unfolded = [ "Extra Spacing", "Font", "Settings" ]
[node name="character_creation_box" type="MarginContainer" index="0"]
[node name="character_creation_box" type="MarginContainer"]
anchor_left = 0.0
anchor_top = 0.0
@ -54,7 +54,7 @@ anchor_bottom = 0.0
margin_left = 8.0
margin_top = 8.0
margin_right = 1016.0
margin_bottom = 184.0
margin_bottom = 210.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 2
@ -73,7 +73,7 @@ anchor_bottom = 0.0
margin_left = 8.0
margin_top = 8.0
margin_right = 1016.0
margin_bottom = 184.0
margin_bottom = 210.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 0
@ -95,7 +95,7 @@ anchor_bottom = 0.0
margin_left = 8.0
margin_top = 8.0
margin_right = 1000.0
margin_bottom = 168.0
margin_bottom = 194.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 1
@ -105,14 +105,31 @@ size_flags_vertical = 6
alignment = 0
_sections_unfolded = [ "Size Flags", "Theme", "custom_constants" ]
[node name="name_box" type="HBoxContainer" parent="margin_container/v_box_container" index="0"]
[node name="h_separator" type="HSeparator" parent="margin_container/v_box_container" index="0"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_right = 992.0
margin_bottom = 24.0
margin_bottom = 4.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
[node name="name_box" type="HBoxContainer" parent="margin_container/v_box_container" index="1"]
editor/display_folded = true
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 8.0
margin_right = 992.0
margin_bottom = 32.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 1
@ -169,16 +186,16 @@ caret_blink_speed = 0.65
caret_position = 0
_sections_unfolded = [ "Placeholder", "Size Flags" ]
[node name="generate_name_box" type="HBoxContainer" parent="margin_container/v_box_container" index="1"]
[node name="generate_name_box" type="HBoxContainer" parent="margin_container/v_box_container" index="2"]
editor/display_folded = true
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 28.0
margin_top = 36.0
margin_right = 992.0
margin_bottom = 52.0
margin_bottom = 60.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 1
@ -269,11 +286,11 @@ mouse_filter = 0
mouse_default_cursor_shape = 0
size_flags_horizontal = 1
size_flags_vertical = 1
min_value = 0.0
min_value = 1.0
max_value = 100.0
step = 1.0
page = 0.0
value = 0.0
value = 1.0
exp_edit = false
rounded = false
editable = true
@ -316,11 +333,11 @@ mouse_filter = 0
mouse_default_cursor_shape = 0
size_flags_horizontal = 1
size_flags_vertical = 1
min_value = 0.0
min_value = 1.0
max_value = 100.0
step = 1.0
page = 0.0
value = 0.0
value = 1.0
exp_edit = false
rounded = false
editable = true
@ -352,23 +369,7 @@ flat = false
align = 1
_sections_unfolded = [ "Focus", "Size Flags", "Theme" ]
[node name="h_separator" type="HSeparator" parent="margin_container/v_box_container" index="2"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 56.0
margin_right = 992.0
margin_bottom = 60.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
[node name="sexe_box" type="HBoxContainer" parent="margin_container/v_box_container" index="3"]
[node name="h_separator2" type="HSeparator" parent="margin_container/v_box_container" index="3"]
anchor_left = 0.0
anchor_top = 0.0
@ -376,7 +377,23 @@ anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 64.0
margin_right = 992.0
margin_bottom = 78.0
margin_bottom = 68.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
[node name="sexe_box" type="HBoxContainer" parent="margin_container/v_box_container" index="4"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 72.0
margin_right = 992.0
margin_bottom = 86.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 1
@ -443,7 +460,7 @@ percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="h_scroll_bar" type="HScrollBar" parent="margin_container/v_box_container/sexe_box/h_box_container" index="1"]
[node name="sex_bar" type="HScrollBar" parent="margin_container/v_box_container/sexe_box/h_box_container" index="1"]
anchor_left = 0.0
anchor_top = 0.0
@ -488,23 +505,7 @@ percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="h_separator2" type="HSeparator" parent="margin_container/v_box_container" index="4"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 82.0
margin_right = 992.0
margin_bottom = 86.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
[node name="error_label" type="Label" parent="margin_container/v_box_container" index="5"]
[node name="size_box" type="HBoxContainer" parent="margin_container/v_box_container" index="5"]
anchor_left = 0.0
anchor_top = 0.0
@ -512,9 +513,145 @@ anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 90.0
margin_right = 992.0
margin_bottom = 104.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="margin_container/v_box_container/size_box" index="0"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_right = 494.0
margin_bottom = 14.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 = "Size:"
align = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
_sections_unfolded = [ "Size Flags" ]
[node name="h_box_container" type="HBoxContainer" parent="margin_container/v_box_container/size_box" index="1"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 498.0
margin_right = 992.0
margin_bottom = 14.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 1
mouse_default_cursor_shape = 0
size_flags_horizontal = 3
size_flags_vertical = 1
alignment = 0
_sections_unfolded = [ "Size Flags" ]
[node name="petit" type="Label" parent="margin_container/v_box_container/size_box/h_box_container" index="0"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_right = 30.0
margin_bottom = 14.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 = "Petit"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="size_bar" type="HScrollBar" parent="margin_container/v_box_container/size_box/h_box_container" index="1"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 34.0
margin_right = 452.0
margin_bottom = 12.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 = 0
min_value = 0.5
max_value = 1.5
step = 0.5
page = 0.0
value = 1.0
exp_edit = false
rounded = false
custom_step = -1.0
_sections_unfolded = [ "Size Flags", "custom_icons" ]
[node name="grand" type="Label" parent="margin_container/v_box_container/size_box/h_box_container" index="2"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 456.0
margin_right = 494.0
margin_bottom = 14.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 = "Grand"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="h_separator3" type="HSeparator" parent="margin_container/v_box_container" index="6"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 108.0
margin_right = 992.0
margin_bottom = 112.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
[node name="error_label" type="Label" parent="margin_container/v_box_container" index="7"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 116.0
margin_right = 992.0
margin_bottom = 138.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
mouse_filter = 2
mouse_default_cursor_shape = 0
size_flags_horizontal = 1
@ -528,15 +665,15 @@ lines_skipped = 0
max_lines_visible = -1
_sections_unfolded = [ "custom_colors", "custom_fonts", "custom_styles" ]
[node name="valid_button" type="Button" parent="margin_container/v_box_container" index="6"]
[node name="valid_button" type="Button" parent="margin_container/v_box_container" index="8"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 116.0
margin_top = 142.0
margin_right = 992.0
margin_bottom = 136.0
margin_bottom = 162.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
focus_mode = 2
@ -552,15 +689,15 @@ text = "Valider"
flat = false
align = 1
[node name="return_button" type="Button" parent="margin_container/v_box_container" index="7"]
[node name="return_button" type="Button" parent="margin_container/v_box_container" index="9"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 140.0
margin_top = 166.0
margin_right = 992.0
margin_bottom = 160.0
margin_bottom = 186.0
rect_pivot_offset = Vector2( 0, 0 )
rect_clip_content = false
focus_mode = 2
@ -578,7 +715,9 @@ align = 1
[connection signal="pressed" from="margin_container/v_box_container/generate_name_box/generate_name" to="." method="_on_generate_name_pressed"]
[connection signal="value_changed" from="margin_container/v_box_container/sexe_box/h_box_container/h_scroll_bar" to="." method="_on_h_scroll_bar_value_changed"]
[connection signal="value_changed" from="margin_container/v_box_container/sexe_box/h_box_container/sex_bar" to="." method="_on_sex_bar_value_changed"]
[connection signal="value_changed" from="margin_container/v_box_container/size_box/h_box_container/size_bar" to="." method="_on_size_bar_value_changed"]
[connection signal="pressed" from="margin_container/v_box_container/valid_button" to="." method="_on_valid_button_pressed"]

View file

@ -5,9 +5,9 @@ signal return_button_pressed
var preview_slot = 0
var character_preview = null
var character_mesh = null
var name_input = null
onready var error_label = $h_box_container/character_creation_box/margin_container/v_box_container/error_label
func update_character_slots():
@ -22,8 +22,11 @@ func update_character_slots():
useds_slot.append( int(section) )
if not has_node( "h_box_container/character_slots/slot_box_"+section ):
last_slot = int(section)
var character_name = config_file.get_value( section, "name" )
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
@ -72,8 +75,15 @@ func update_character_slots():
create_new_characer_button.connect( "pressed", self, "_on_create_pressed", [next_slot] )
func _ready():
character_mesh = character.get_node("MeshInstance")
name_input = $h_box_container/character_creation_box/margin_container/v_box_container/name_box/line_edit
self.character_preview = $viewport/character
self.character_mesh = $viewport/character.get_node("MeshInstance")
self.name_input = $h_box_container/character_creation_box/margin_container/v_box_container/name_box/line_edit
self.character_preview.update()
# var parent = character.get_parent()
# parent.remove_child( character )
# $viewport.add_child( character )
update_character_slots()
@ -81,11 +91,11 @@ func _on_character_slots_return_button_pressed():
emit_signal( "return_button_pressed" )
func _on_create_pressed( slot ):
global.character_slot = slot
self.character_preview.slot = slot
$h_box_container/character_slots.hide()
$h_box_container/character_creation_box.show()
_on_character_creation_box_gender_value_changed( $h_box_container/character_creation_box/margin_container/v_box_container/sexe_box/h_box_container/h_scroll_bar.value )
self.character_preview.update()
func _on_choose_pressed( slot ):
emit_signal( "character_selected", slot )
@ -116,16 +126,18 @@ func update_preview():
if err:
print("Error code when loading player config file: ", err)
if config_file.has_section( str(slot) ):
$viewport/character_preview/MeshInstance.get_surface_material(0).set_shader_param("albedo", config_file.get_value( str(slot), "color" ) )
# Color
var color = config_file.get_value( str(slot), "color" )
if not color:
color = Color( 1, 0.25, 0.25, 1 )
character_mesh.get_surface_material(0).set_shader_param("albedo", color )
func _on_character_creation_box_gender_value_changed(value):
if value == 1:
global.character_gender = 1
character_mesh.get_surface_material(0).set_shader_param("albedo", Color( 1.0, 0.25, 0.25, 1.0 ) )
else:
global.character_gender = 0
character_mesh.get_surface_material(0).set_shader_param("albedo", Color( 0.0, 0.0, 1.0, 1.0 ) )
# Size
var size = config_file.get_value( str(slot), "size" )
if not size:
size = 1
character_preview.scale = Vector3( size, size, size )
@ -135,24 +147,39 @@ func _on_character_creation_box_return_button_pressed():
$h_box_container/character_creation_box.hide()
func _on_character_creation_box_creation_button_pressed():
if not name_input.text or name_input.text == "":
error_label.text = "You need to choose a character's name."
if not self.name_input.text or self.name_input.text == "":
$h_box_container/character_creation_box.show_error( "You need to choose a character's name." )
return
global.character_name = name_input.text
global.character_color = character_mesh.get_surface_material(0).get_shader_param("albedo")
character_preview.pseudo = self.name_input.text
# character.color = character_mesh.get_surface_material(0).get_shader_param("albedo")
# character.size = character_mesh.scale.x
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.set_value( str(global.character_slot), "name", global.character_name)
config_file.set_value( str(global.character_slot), "color", global.character_color)
config_file.set_value( str(character.slot), "name", character.pseudo)
config_file.set_value( str(character.slot), "color", character.color)
config_file.set_value( str(character.slot), "size", character.size)
config_file.save( "user://player.cfg" )
$h_box_container/character_slots.show()
$h_box_container/character_creation_box.hide()
update_character_slots()
func _on_character_creation_box_character_changed():
self.character_preview.update()
func _on_character_creation_box_sex_bar_changed( value ):
if value == 0:
self.character_preview.gender = 0
self.character_preview.color = Color( 0.0, 0.0, 1.0, 1.0 )
else:
self.character_preview.gender = 1
self.character_preview.color = Color( 1.0, 0.25, 0.25, 1.0 )
self.character_preview.update()
func _on_character_creation_box_size_bar_changed( value ):
self.character_preview.size = value
self.character_preview.update()

View file

@ -12,7 +12,7 @@ resource_local_to_scene = true
flags = 0
viewport_path = NodePath("viewport")
[node name="character_selection_menu" type="Control"]
[node name="character_selection_menu" type="Control" index="0"]
anchor_left = 0.0
anchor_top = 0.0
@ -33,7 +33,7 @@ size = Vector2( 256, 256 )
own_world = false
world = null
transparent_bg = false
msaa = 0
msaa = 2
hdr = true
disable_3d = false
usage = 2
@ -53,7 +53,7 @@ shadow_atlas_quad_2 = 3
shadow_atlas_quad_3 = 4
_sections_unfolded = [ "Render Target", "Rendering" ]
[node name="character_preview" parent="viewport" index="0" instance=ExtResource( 2 )]
[node name="character" parent="viewport" index="0" instance=ExtResource( 2 )]
[node name="texture_rect" type="TextureRect" parent="." index="1"]
@ -93,9 +93,9 @@ _sections_unfolded = [ "Size Flags", "custom_constants" ]
visible = false
margin_left = 58.0
margin_top = 226.0
margin_right = 539.0
margin_bottom = 374.0
margin_top = 191.0
margin_right = 600.0
margin_bottom = 409.0
[node name="nine_patch_rect" type="NinePatchRect" parent="h_box_container" index="2"]
@ -121,8 +121,10 @@ _sections_unfolded = [ "Axis Stretch", "Margin", "Rect", "Size Flags" ]
[connection signal="creation_button_pressed" from="h_box_container/character_creation_box" to="." method="_on_character_creation_box_creation_button_pressed"]
[connection signal="gender_value_changed" from="h_box_container/character_creation_box" to="." method="_on_character_creation_box_gender_value_changed"]
[connection signal="return_button_pressed" from="h_box_container/character_creation_box" to="." method="_on_character_creation_box_return_button_pressed"]
[connection signal="sex_bar_changed" from="h_box_container/character_creation_box" to="." method="_on_character_creation_box_sex_bar_changed"]
[connection signal="size_bar_changed" from="h_box_container/character_creation_box" to="." method="_on_character_creation_box_size_bar_changed"]

View file

@ -21,9 +21,9 @@ func _on_character_selection_menu_character_selected(slot):
var err = config_file.load( "user://player.cfg" )
if err:
print("Error code when loading player config file: ", err)
global.character_slot = slot
global.character_name = config_file.get_value( str(slot), "name", "player")
global.character_color = config_file.get_value( str(slot), "color", Color(1.0, 63.0, 63.0, 1.0) )
character.slot = slot
character.pseudo = config_file.get_value( str(slot), "name", "player")
character.color = config_file.get_value( str(slot), "color", Color(1.0, 63.0, 63.0, 1.0) )
emit_signal( "character_creation_finished" )

View file

@ -5,18 +5,6 @@ func _ready():
for child in self.get_children():
child.connect( "window_clicked", self, "_on_window_clicked" )
# var new_label = Label.new()
# new_label.set_name( "azerty" )
# new_label.set_text( "azertyuiop sdfghjklm wxcvbn" )
# new_label.set_autowrap( true )
# $ui_window.add_child( new_label )
# new_label = Label.new()
# new_label.set_name( "azerty2" )
# new_label.set_text( "2azertyuiop2 2sdfghjklm2 wxcvbn2" )
# new_label.set_autowrap( true )
# $ui_window.add_child( new_label )
func _on_window_clicked( window ):
var index = 0
for child in self.get_children():

View file

@ -1,5 +1,13 @@
extends KinematicBody
########
#### Caracteristic
var pseudo = ""
var color = Color( 1.0, 0.25, 0.25, 1.0 )
var gender = 1
var size = 1
var slot = 0
var dir = Vector3()
const GRAVITY = -24.8
var vel = Vector3()
@ -10,7 +18,6 @@ const FLY_SPEED = 7
const DEACCEL= 16
const MAX_SLOPE_ANGLE = 40
var MOUSE_SENSITIVITY = 0.05
onready var camera_rotation = $Camera_rotation_helper
@ -26,7 +33,7 @@ var oubli = 0
func set_info_billboard_position():
var above_head = $infos_spatial
player_infos_billboard.get_node("label").text = global.character_name
player_infos_billboard.get_node("label").text = self.pseudo
var offset = Vector2(-(player_infos_billboard.get_size().x/2), 0)
var unprojected_translation = camera.unproject_position(above_head.global_transform.xform(Vector3(0,0,0)))
player_infos_billboard.rect_position = (unprojected_translation + offset)
@ -35,17 +42,20 @@ func _ready():
# camera.make_current()
show_face_camera()
set_info_billboard_position()
self.update()
#func _enter_tree():
# print("qsdfghjklkjhgfdsqsdfghj")
# if self.get_parent().has_node( "start_position" ):
# self.translation = self.get_parent().get_node( "start_position" ).translation
func update( start_position ):
func update( start_position = null ):
if start_position:
self.translation = start_position.translation
self.rotation = start_position.rotation
$MeshInstance.get_surface_material(0).set_shader_param( "albedo", global.character_color )
self.scale = Vector3( self.size, self.size, self.size )
$MeshInstance.get_surface_material(0).set_shader_param( "albedo", self.color )
func _process(delta):
process_input(delta)

View file

@ -67,7 +67,7 @@ _sections_unfolded = [ "shader_param" ]
radius = 0.520354
[node name="Character" type="KinematicBody" index="0"]
[node name="Character" type="KinematicBody"]
transform = Transform( 0.371345, 0, 0, 0, 0.218854, 0, 0, 0, 0.371345, -0.00167466, -0.475751, 6.02408 )
input_ray_pickable = true
@ -93,7 +93,7 @@ script = ExtResource( 2 )
visible = false
mouse_default_cursor_shape = 2
_sections_unfolded = [ "Mouse", "Rect", "Size Flags", "Visibility" ]
_sections_unfolded = [ "Focus", "Mouse", "Rect", "Size Flags", "Visibility" ]
[node name="Camera_rotation_helper" type="Spatial" parent="." index="1"]
@ -116,17 +116,17 @@ _sections_unfolded = [ "Transform" ]
[node name="face_camera" type="Camera" parent="Camera_rotation_helper" index="1"]
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 0, 4.27531, -0.805639 )
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 0, 4.27532, -2.96733 )
keep_aspect = 1
cull_mask = 1048575
environment = null
h_offset = 0.0
v_offset = 0.0
doppler_tracking = 0
projection = 0
projection = 1
current = false
fov = 70.0
size = 1.0
size = 2.0
near = 0.05
far = 100.0
_sections_unfolded = [ "Transform" ]