extends Spatial onready var character = $character var is_over_ui = false func _ready(): $creature_creation_menu._on_race_id_pressed( 0 ) $creature_creation_menu._on_sex_id_pressed( 0 ) if Globals.creatures_editor_mode == Globals.CREATURES_EDITOR_MODE.player: $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/race.hide() elif Globals.creatures_editor_mode == Globals.CREATURES_EDITOR_MODE.npc: $creature_creation_menu.max_caracteristiques_points = 999 $creature_creation_menu/margin_box/window_box/tools_box/buttons_box/choose.hide() func _input( event ): if event is InputEventMouseMotion and Input.is_mouse_button_pressed( 1 ): if self.character and not self.is_over_ui: self.character.rotate_y( event.relative.x *0.01 ) if event is InputEventMouseMotion and Input.is_mouse_button_pressed( 3 ): if not self.is_over_ui: if $camera.current: $camera.translation.x -= event.relative.x *0.001 $camera.translation.y += event.relative.y *0.001 elif $camera_head.current: $camera_head.translation.x -= event.relative.x *0.001 $camera_head.translation.y += event.relative.y *0.001 if event.is_action_pressed( "camera_zoom_in" ) and not self.is_over_ui: if $camera.current: $camera.size -= 0.1 elif $camera_head.current: $camera_head.size -= 0.1 elif event.is_action_pressed( "camera_zoom_out" ) and not self.is_over_ui: if $camera.current: $camera.size += 0.1 elif $camera_head.current: $camera_head.size += 0.1 func _on_creature_creation_menu_updated(value_name, value): var need_model_change = false if value_name == "race": need_model_change = true elif value_name == "sex": need_model_change = true var need_creature_update =false if self.character: self.character.get_node( "creature" ).creature.set_data( value_name, value ) need_creature_update = true if need_model_change: var old_creature_datas = null if self.character: old_creature_datas = self.character.get_node( "creature" ).creature var race = old_creature_datas.get_data( "race" ) var sex = old_creature_datas.get_data( "sex" ) if race == Globals.RACE.human and sex == Globals.SEX.female: self.character.show() self.character.change_creature( "res://scenes/creatures/human/human_female.tscn" ) need_creature_update = true elif race == Globals.RACE.human and sex == Globals.SEX.male: self.character.show() self.character.change_creature( "res://scenes/creatures/human/human_male.tscn" ) need_creature_update = true if self.character and old_creature_datas: self.character.get_node( "creature" ).creature = old_creature_datas if need_creature_update: if self.character: self.character.get_node( "creature" ).update() func save_creature(): if self.character: var emplacement = "pc" if Globals.creatures_editor_mode == Globals.CREATURES_EDITOR_MODE.npc: emplacement = "res" self.character.get_node( "creature" ).creature.save( emplacement ) $creature_creation_menu/margin_box/window_box/tooltips.text = "Créature enregistrée." $creature_creation_menu/margin_box/window_box/tooltips.set( "custom_colors/font_color", Color.green ) func load_creature( p_name = null ): var creature = null var race = Globals.get_race_id( $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/race/value.text ) if race == Globals.RACE.human: creature = Datas.Human.new() else: creature = Datas.Creature.new() var filename = $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/name/value/first_name.text + "_" + $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/name/value/last_name.text+".creature" if p_name: filename = p_name + ".creature" if Globals.creatures_editor_mode == Globals.CREATURES_EDITOR_MODE.npc: creature.load( "res://ressources/files/creatures/"+filename ) else: creature.load( "user://saves/save_temp/ressources/files/creatures/pc/"+filename ) if creature.get_filename() == "unknow.creature": $creature_creation_menu/margin_box/window_box/tooltips.text = "Echec du chargement de la créature." $creature_creation_menu/margin_box/window_box/tooltips.set( "custom_colors/font_color", Color.red ) else: $creature_creation_menu/margin_box/window_box/tooltips.text = "Créature chargée avec succès." $creature_creation_menu/margin_box/window_box/tooltips.set( "custom_colors/font_color", Color.green ) $creature_creation_menu.update_sliders( creature ) func _on_creature_creation_menu_mouse_entered_ui(): self.is_over_ui = true func _on_creature_creation_menu_mouse_exited_ui(): self.is_over_ui = false func _on_creature_creation_menu_load_pressed(): self.load_creature() func _on_creature_creation_menu_save_pressed(): self.save_creature() func _on_creature_creation_menu_choose_pressed(): self.save_creature() Globals.player_name = $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/name/value/first_name.text + "_" + $creature_creation_menu/margin_box/window_box/content_box/tabs_box/definition/name/value/last_name.text Globals.goto_scene( "res://scenes/game/game.tscn" ) func _on_creature_creation_menu_quit_pressed(): Globals.goto_scene( "res://scenes/main/main.tscn" ) func _on_creature_creation_menu_cloths_button_toggled(button_pressed): if $character/creature.creature.get_data( "sex" ) == Globals.SEX.female: if button_pressed: $character/creature/cloths/mh_human_female_tshirt.show() $character/creature/cloths/mh_human_female_pant.show() $character/creature/cloths/mh_human_female_shoes.show() else: $character/creature/cloths/mh_human_female_tshirt.hide() $character/creature/cloths/mh_human_female_pant.hide() $character/creature/cloths/mh_human_female_shoes.hide() elif $character/creature.creature.get_data( "sex" ) == Globals.SEX.male: if button_pressed: $character/creature/cloths/mh_human_male_tshirt.show() $character/creature/cloths/mh_human_male_pant.show() $character/creature/cloths/mh_human_male_shoes.show() else: $character/creature/cloths/mh_human_male_tshirt.hide() $character/creature/cloths/mh_human_male_pant.hide() $character/creature/cloths/mh_human_male_shoes.hide() func _on_creature_creation_menu_underwear_button_toggled(button_pressed): pass # if button_pressed: # $character/creature/cloths/mh_human_female_underwear_top.show() # $character/creature/cloths/mh_human_female_underwear_bottom.show() # else: # $character/creature/cloths/mh_human_female_underwear_top.hide() # $character/creature/cloths/mh_human_female_underwear_bottom.hide() func _on_creature_creation_menu_zoom_head_button_toggled(button_pressed): if button_pressed: $camera_head.make_current() else: $camera.make_current()