From 0d1019614eeca836936119ad0bfb458ef24f7dee Mon Sep 17 00:00:00 2001 From: osquallo Date: Tue, 21 Aug 2018 11:40:29 +0200 Subject: [PATCH] wip: ajout du choix de la position d'arriver du portail. --- dispensaire_gridmap/dispensaire_gridmap.tscn | 4 +- dispensaire_scenes/dispensaire_scenes.tscn | 122 +++---------------- game_scene/game_scene.gd | 2 +- game_scene/game_scene.tscn | 2 +- global.gd | 17 ++- portail.gd | 11 +- scenes/Game/Character/Character.tscn | 2 +- scenes/Game/Game.tscn | 10 +- scenes/Game/portail/portail.tscn | 15 +-- 9 files changed, 52 insertions(+), 133 deletions(-) diff --git a/dispensaire_gridmap/dispensaire_gridmap.tscn b/dispensaire_gridmap/dispensaire_gridmap.tscn index 9f48634..7dc7d90 100644 --- a/dispensaire_gridmap/dispensaire_gridmap.tscn +++ b/dispensaire_gridmap/dispensaire_gridmap.tscn @@ -23,7 +23,7 @@ cell_scale = 1.0 collision_layer = 1 collision_mask = 1 data = { -"cells": PoolIntArray( 3, 0, 655361, 5, 0, -1073086463, 65535, 0, -1609564157, 2, 65534, -1073741823, 4, 65534, -1610612735, 0, 65535, 1441797, 1, 65535, 1441797, 2, 65535, 1441798, 3, 65535, 1048582, 4, 65535, -2146041850, 5, 65535, 1048582, 6, 65535, -1072300031, 65535, 65535, 1611661314 ) +"cells": PoolIntArray( 3, 0, 655361, 5, 0, 655361, 65535, 0, 1074790403, 2, 65534, 1, 4, 65534, 1, 0, 65535, 1441797, 1, 65535, 1441797, 2, 65535, 1441798, 3, 65535, 1048582, 4, 65535, 1441798, 5, 65535, 1048582, 6, 65535, 1441793, 65535, 65535, 1048578 ) } _sections_unfolded = [ "Cell" ] __meta__ = { @@ -33,6 +33,6 @@ __meta__ = { [node name="portail" parent="world" index="1" instance=ExtResource( 2 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.65801, 0, 3.40425 ) -scene_path = "res://game_scene/game_scene.tscn" +scene_path = NodePath("res://scenes/Game/Game.tscn") diff --git a/dispensaire_scenes/dispensaire_scenes.tscn b/dispensaire_scenes/dispensaire_scenes.tscn index 14731e7..77e7c00 100644 --- a/dispensaire_scenes/dispensaire_scenes.tscn +++ b/dispensaire_scenes/dispensaire_scenes.tscn @@ -1,144 +1,58 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor1wDoLRAA01.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/Game/basekits/dispensaire_mesh_sources/DisCor1wDoLRAA01.mesh" type="ArrayMesh" id=2] -[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor2wDoLAA01.tscn" type="PackedScene" id=3] -[ext_resource path="res://assets/Game/basekits/dispensaire_mesh_sources/DisCor2wDoLAA01.mesh" type="ArrayMesh" id=4] -[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor1wAA01.tscn" type="PackedScene" id=5] -[ext_resource path="res://assets/Game/basekits/dispensaire_mesh_sources/DisCor1wAA01.mesh" type="ArrayMesh" id=6] -[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor2wDoLRAA01.tscn" type="PackedScene" id=7] -[ext_resource path="res://assets/Game/basekits/dispensaire_mesh_sources/DisCor2wDoLRAA01.mesh" type="ArrayMesh" id=8] -[ext_resource path="res://scenes/Game/portail/portail.tscn" type="PackedScene" id=9] +[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor2wDoLAA01.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor1wAA01.tscn" type="PackedScene" id=3] +[ext_resource path="res://assets/Game/basekits/dispensaire_scenes/DisCor2wDoLRAA01.tscn" type="PackedScene" id=4] +[ext_resource path="res://scenes/Game/portail/portail.tscn" type="PackedScene" id=5] -[node name="dispensaire_scenes" type="Node" index="0"] +[node name="dispensaire_scenes" type="Node"] [node name="world" type="Spatial" parent="." index="0"] editor/display_folded = true -[node name="DisCor1wDoLRAA01" type="MeshInstance" parent="world" index="0" instance=ExtResource( 1 )] +[node name="DisCor1wDoLRAA01" parent="world" index="0" instance=ExtResource( 1 )] transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, -1, 0, 0 ) -layers = 1 -material_override = null -cast_shadow = 1 -extra_cull_margin = 0.0 -use_in_baked_light = false -lod_min_distance = 0.0 -lod_min_hysteresis = 0.0 -lod_max_distance = 0.0 -lod_max_hysteresis = 0.0 -mesh = ExtResource( 2 ) -skeleton = NodePath("..") -material/0 = null -material/1 = null -material/2 = null -material/3 = null -material/4 = null -material/5 = null -material/6 = null -[node name="DisCor2wDoLAA01" type="MeshInstance" parent="world/DisCor1wDoLRAA01" index="1" instance=ExtResource( 3 )] +[node name="DisCor2wDoLAA01" parent="world/DisCor1wDoLRAA01" index="1" instance=ExtResource( 2 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.49329, -2.38419e-007, 3.49498 ) -layers = 1 -material_override = null -cast_shadow = 1 -extra_cull_margin = 0.0 -use_in_baked_light = false -lod_min_distance = 0.0 -lod_min_hysteresis = 0.0 -lod_max_distance = 0.0 -lod_max_hysteresis = 0.0 -mesh = ExtResource( 4 ) -skeleton = NodePath("..") -material/0 = null -material/1 = null -material/2 = null -material/3 = null -material/4 = null -[node name="DisCor1wAA01" type="MeshInstance" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA01" index="1" instance=ExtResource( 5 )] +[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA01" index="1" instance=ExtResource( 3 )] transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -3.50318, -9.72748e-005, -0.00448728 ) -layers = 1 -material_override = null -cast_shadow = 1 -extra_cull_margin = 0.0 -use_in_baked_light = false -lod_min_distance = 0.0 -lod_min_hysteresis = 0.0 -lod_max_distance = 0.0 -lod_max_hysteresis = 0.0 -mesh = ExtResource( 6 ) -skeleton = NodePath("..") -material/0 = null -material/1 = null -material/2 = null -material/3 = null -material/4 = null -[node name="DisCor2wDoLAA02" parent="world/DisCor1wDoLRAA01" index="2" instance=ExtResource( 3 )] +[node name="DisCor2wDoLAA02" parent="world/DisCor1wDoLRAA01" index="2" instance=ExtResource( 2 )] transform = Transform( -1, 0, -1.50996e-007, 0, 1, 0, 1.50996e-007, 0, -1, 3.49329, -2.38419e-007, 6.98099 ) -[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA02" index="1" instance=ExtResource( 5 )] +[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA02" index="1" instance=ExtResource( 3 )] transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -3.50318, -9.72748e-005, -0.00448728 ) -[node name="DisCor2wDoLAA03" parent="world/DisCor1wDoLRAA01" index="3" instance=ExtResource( 3 )] +[node name="DisCor2wDoLAA03" parent="world/DisCor1wDoLRAA01" index="3" instance=ExtResource( 2 )] transform = Transform( 1, 0, 2.38419e-007, 0, 1, 0, -2.38419e-007, 0, 1, 3.49329, -2.38419e-007, 10.4804 ) -[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA03" index="1" instance=ExtResource( 5 )] +[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA03" index="1" instance=ExtResource( 3 )] transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -3.50318, -9.72748e-005, -0.00448728 ) -[node name="DisCor1wAA01" type="MeshInstance" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA03/DisCor1wAA01" index="1" instance=ExtResource( 5 )] +[node name="DisCor1wAA01" parent="world/DisCor1wDoLRAA01/DisCor2wDoLAA03/DisCor1wAA01" index="1" instance=ExtResource( 3 )] transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -3.48495, 9.75132e-005, 3.50005 ) -layers = 1 -material_override = null -cast_shadow = 1 -extra_cull_margin = 0.0 -use_in_baked_light = false -lod_min_distance = 0.0 -lod_min_hysteresis = 0.0 -lod_max_distance = 0.0 -lod_max_hysteresis = 0.0 -mesh = ExtResource( 6 ) -skeleton = NodePath("..") -material/0 = null -material/1 = null -material/2 = null -material/3 = null -material/4 = null -[node name="DisCor2wDoLRAA01" type="MeshInstance" parent="world" index="1" instance=ExtResource( 7 )] +[node name="DisCor2wDoLRAA01" parent="world" index="1" instance=ExtResource( 4 )] transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, -4.48443, 0, 0.0136418 ) -layers = 1 -material_override = null -cast_shadow = 1 -extra_cull_margin = 0.0 -use_in_baked_light = false -lod_min_distance = 0.0 -lod_min_hysteresis = 0.0 -lod_max_distance = 0.0 -lod_max_hysteresis = 0.0 -mesh = ExtResource( 8 ) -skeleton = NodePath("..") -material/0 = null -material/1 = null -material/2 = null -material/3 = null -material/4 = null -material/5 = null -[node name="portail" parent="." index="1" instance=ExtResource( 9 )] +[node name="portail" parent="." index="1" instance=ExtResource( 5 )] transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 0.679648, -1, 2.97083e-008 ) -scene_path = "res://game_scene/game_scene.tscn" +scene_path = NodePath("res://scenes/Game/Game.tscn") +start_position_path = NodePath("World/portail_scenes/start_position") [node name="start_position" type="Spatial" parent="." index="2"] diff --git a/game_scene/game_scene.gd b/game_scene/game_scene.gd index f3db048..ffc8d44 100644 --- a/game_scene/game_scene.gd +++ b/game_scene/game_scene.gd @@ -5,7 +5,7 @@ signal logout_button_pressed const WINDOW_TITLE_INPUT = "GUI/Settings/Menus/TabContainer/Test/ScrollContainer/VBoxContainer/TitleBox/Title" func _ready(): - change_title() +# change_title() get_tree().get_root().connect("size_changed", self, "on_window_size_changed") # character.get_node( "MeshInstance" ).get_surface_material(0).set_shader_param( "albedo", global.character_color ) diff --git a/game_scene/game_scene.tscn b/game_scene/game_scene.tscn index fbbf44d..0b56b19 100644 --- a/game_scene/game_scene.tscn +++ b/game_scene/game_scene.tscn @@ -12,6 +12,6 @@ _sections_unfolded = [ "Pause" ] [node name="start_position" type="Spatial" parent="." index="1"] -transform = Transform( -0.750826, 0, -0.660501, 0, 1, 0, 0.660501, 0, -0.750826, 0.290986, 0, -15.5888 ) +transform = Transform( -0.750826, 0, -0.660501, 0, 1, 0, 0.660501, 0, -0.750826, -3.30032, 0, -21.351 ) diff --git a/global.gd b/global.gd index 71f84e9..d9f1049 100644 --- a/global.gd +++ b/global.gd @@ -21,7 +21,8 @@ var current_scene = null var old_scene = null var parent_scene = null var current_map = null - +var current_start_position = "start_position" + var current_state = "login" var font_size= 14 @@ -67,7 +68,7 @@ func load_scene( scene_path ): return false return true -func change_level( p_next_state, p_next_scene_path, p_parent_next_scene = null, p_old_scene = null ): +func change_level( p_next_state, p_next_scene_path, p_parent_next_scene = null, p_old_scene = null, p_start_position = "start_position" ): character.hide() get_node("background_loader").show() @@ -79,7 +80,9 @@ func change_level( p_next_state, p_next_scene_path, p_parent_next_scene = null, # if p_parent_next_scene: # print( " on "+ str(p_parent_next_scene.name) ) # print() - + + self.current_start_position = p_start_position + if not load_scene( p_next_scene_path ): show_error() return @@ -157,8 +160,12 @@ func set_new_scene( scene_resource ): else: get_tree().get_root().add_child(scene) - if scene.has_node("start_position"): - character.update( scene.get_node("start_position") ) + print( "scene: "+str(scene.name) ) + print( "start position: " + str(self.current_start_position ) ) + if scene.has_node( self.current_start_position ): + print( "OK" ) + character.update( scene.get_node( self.current_start_position ) ) + current_map = scene get_node("background_loader").hide() diff --git a/portail.gd b/portail.gd index 2e45f86..4d49f1f 100644 --- a/portail.gd +++ b/portail.gd @@ -1,15 +1,10 @@ extends Spatial -export( String ) var scene_path = "" +export( NodePath ) var scene_path = "" +export( NodePath ) var start_position_path = "start_position" func _on_area_body_shape_entered(body_id, body, body_shape, area_shape): - print( "PORTAIL AREA BODY SHAPE ENTERED !!!!!" ) - print( "body_id: "+str(body_id) ) - print( "body: "+str(body) ) - print( "body_shape: "+str(body_shape) ) - print( "area_shape: "+str(area_shape) ) if body == character and not scene_path == "": -# global.change_level( "game", "res://test_scene/test_scene.tscn", null, global.current_map ) - global.change_level( "game", scene_path, null, global.current_map ) + global.change_level( "game", scene_path, null, global.current_map, start_position_path ) diff --git a/scenes/Game/Character/Character.tscn b/scenes/Game/Character/Character.tscn index b7bac4e..848ca16 100644 --- a/scenes/Game/Character/Character.tscn +++ b/scenes/Game/Character/Character.tscn @@ -67,7 +67,7 @@ _sections_unfolded = [ "shader_param" ] radius = 0.520354 -[node name="Character" type="KinematicBody"] +[node name="Character" type="KinematicBody" index="0"] transform = Transform( 0.371345, 0, 0, 0, 0.218854, 0, 0, 0, 0.371345, -0.00167466, -0.475751, 6.02408 ) input_ray_pickable = true diff --git a/scenes/Game/Game.tscn b/scenes/Game/Game.tscn index fafc06a..19ea419 100644 --- a/scenes/Game/Game.tscn +++ b/scenes/Game/Game.tscn @@ -1337,12 +1337,18 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.67816, 0.00211585, 0 ) [node name="portail_scenes" parent="World" index="9" instance=ExtResource( 14 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 12.1976 ) -scene_path = "res://dispensaire_scenes/dispensaire_scenes.tscn" +_sections_unfolded = [ "Transform", "Visibility" ] +scene_path = NodePath("res://dispensaire_scenes/dispensaire_scenes.tscn") + +[node name="start_position" type="Spatial" parent="World/portail_scenes" index="1"] + +transform = Transform( -1, 0, -1.50996e-007, 0, 1, 0, 1.50996e-007, 0, -1, 0.282988, 2.34225, -2.47697 ) +_sections_unfolded = [ "Transform" ] [node name="portail_gridmap" parent="World" index="10" instance=ExtResource( 14 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.01158, 0, 12.1976 ) -scene_path = "res://dispensaire_gridmap/dispensaire_gridmap.tscn" +scene_path = NodePath("res://dispensaire_gridmap/dispensaire_gridmap.tscn") [connection signal="sleeping_state_changed" from="World/Box" to="World/Box" method="_on_Box_sleeping_state_changed"] diff --git a/scenes/Game/portail/portail.tscn b/scenes/Game/portail/portail.tscn index c4ba466..cd8f8a0 100644 --- a/scenes/Game/portail/portail.tscn +++ b/scenes/Game/portail/portail.tscn @@ -10,7 +10,7 @@ subdivide_width = 0 subdivide_height = 0 subdivide_depth = 0 -[sub_resource type="SpatialMaterial" id=3] +[sub_resource type="SpatialMaterial" id=2] render_priority = 0 flags_transparent = false @@ -62,7 +62,7 @@ proximity_fade_enable = false distance_fade_enable = false _sections_unfolded = [ "Albedo", "Metallic", "Roughness" ] -[sub_resource type="ConvexPolygonShape" id=2] +[sub_resource type="ConvexPolygonShape" id=3] points = PoolVector3Array( -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1 ) @@ -70,6 +70,7 @@ points = PoolVector3Array( -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, script = ExtResource( 1 ) scene_path = "" +start_position_path = "start_position" [node name="mesh_instance" type="MeshInstance" parent="." index="0"] @@ -85,7 +86,7 @@ lod_max_distance = 0.0 lod_max_hysteresis = 0.0 mesh = SubResource( 1 ) skeleton = NodePath("..") -material/0 = SubResource( 3 ) +material/0 = SubResource( 2 ) _sections_unfolded = [ "material" ] [node name="static_body" type="StaticBody" parent="mesh_instance" index="0"] @@ -101,7 +102,7 @@ constant_angular_velocity = Vector3( 0, 0, 0 ) [node name="collision_shape" type="CollisionShape" parent="mesh_instance/static_body" index="0"] -shape = SubResource( 2 ) +shape = SubResource( 3 ) disabled = false [node name="area" type="Area" parent="mesh_instance" index="1"] @@ -130,13 +131,9 @@ reverb_bus_uniformity = 0.0 [node name="collision_shape2" type="CollisionShape" parent="mesh_instance/area" index="0"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 9.40695, 0, 0, 0 ) -shape = SubResource( 2 ) +shape = SubResource( 3 ) disabled = false -[connection signal="area_entered" from="mesh_instance/area" to="." method="_on_area_area_entered"] - -[connection signal="body_entered" from="mesh_instance/area" to="." method="_on_area_body_entered"] - [connection signal="body_shape_entered" from="mesh_instance/area" to="." method="_on_area_body_shape_entered"]