From 5652895e759e22a21419ffdeca53a47700c50b2d Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 14 Feb 2018 17:50:20 -0500 Subject: [PATCH] Display teams: Friendly blue, enemy red --- scenes/player.tscn | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++---- scripts/lobby.gd | 12 ++++++++--- scripts/player.gd | 17 ++++++++++++++++ 3 files changed, 82 insertions(+), 7 deletions(-) diff --git a/scenes/player.tscn b/scenes/player.tscn index 1f281bf..c783b99 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -29,6 +29,58 @@ radial_segments = 64 rings = 8 _sections_unfolded = [ "Resource" ] +[sub_resource type="SpatialMaterial" id=5] + +render_priority = 0 +flags_transparent = false +flags_unshaded = false +flags_vertex_lighting = false +flags_no_depth_test = false +flags_use_point_size = false +flags_world_triplanar = false +flags_fixed_size = false +flags_albedo_tex_force_srgb = false +vertex_color_use_as_albedo = false +vertex_color_is_srgb = false +params_diffuse_mode = 0 +params_specular_mode = 0 +params_blend_mode = 0 +params_cull_mode = 0 +params_depth_draw_mode = 0 +params_line_width = 1.0 +params_point_size = 1.0 +params_billboard_mode = 0 +params_grow = false +params_use_alpha_scissor = false +albedo_color = Color( 1, 1, 1, 1 ) +metallic = 0.0 +metallic_specular = 0.5 +metallic_texture_channel = 0 +roughness = 0.0 +roughness_texture_channel = 0 +emission_enabled = false +normal_enabled = false +rim_enabled = false +clearcoat_enabled = false +anisotropy_enabled = false +ao_enabled = false +depth_enabled = false +subsurf_scatter_enabled = false +transmission_enabled = false +refraction_enabled = false +detail_enabled = false +uv1_scale = Vector3( 1, 1, 1 ) +uv1_offset = Vector3( 0, 0, 0 ) +uv1_triplanar = false +uv1_triplanar_sharpness = 1.0 +uv2_scale = Vector3( 1, 1, 1 ) +uv2_offset = Vector3( 0, 0, 0 ) +uv2_triplanar = false +uv2_triplanar_sharpness = 1.0 +proximity_fade_enable = false +distance_fade_enable = false +_sections_unfolded = [ "Albedo", "Flags", "Parameters", "Vertex Color" ] + [node name="RigidBody" type="RigidBody" index="0" groups=[ "player", ]] @@ -93,7 +145,7 @@ _sections_unfolded = [ "Transform" ] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.19053, 0 ) _sections_unfolded = [ "Transform" ] -[node name="MeshInstance" type="MeshInstance" parent="Yaw/Pitch" index="0"] +[node name="RotatedHead" type="MeshInstance" parent="Yaw/Pitch" index="0"] transform = Transform( 2.65431e-14, -1.62921e-07, 1, -1, -1.62921e-07, 0, 1.62921e-07, -1, -1.62921e-07, 0, -0.0649133, -0.103671 ) layers = 1 @@ -187,7 +239,7 @@ cast_to = Vector3( 0, 0, -100 ) collision_mask = 1 _sections_unfolded = [ "Transform" ] -[node name="MeshInstance" type="MeshInstance" parent="." index="6"] +[node name="MainMesh" type="MeshInstance" parent="." index="6"] transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0.567933, 0 ) layers = 1 @@ -201,7 +253,7 @@ lod_max_distance = 0.0 lod_max_hysteresis = 0.0 mesh = SubResource( 4 ) skeleton = NodePath("..") -material/0 = null -_sections_unfolded = [ "Transform" ] +material/0 = SubResource( 5 ) +_sections_unfolded = [ "Transform", "material" ] diff --git a/scripts/lobby.gd b/scripts/lobby.gd index ce6bc3c..869bfdd 100644 --- a/scripts/lobby.gd +++ b/scripts/lobby.gd @@ -193,10 +193,11 @@ sync func start_game(): rpc("pre_configure_game", level) var players_done = [] -remote func done_preconfiguring(who): +sync func done_preconfiguring(who): players_done.append(who) - if (players_done.size() == player_info.size()): - rpc("post_configure_game") + if players_done.size() == player_info.size(): + # We call deferred in case singleplayer has placing the player in queue still + call_deferred("rpc", "post_configure_game") sync func spawn_player(p): var hero = player_info[p].hero @@ -224,6 +225,11 @@ sync func pre_configure_game(level): rpc_id(1, "done_preconfiguring", self_peer_id) +sync func post_configure_game(): + # Begin all players (including self) + for p in player_info: + get_node("/root/Level/Players/%d" % p).begin() + #func _process(delta): # # Called every frame. Delta is time since last frame. # # Update game logic here. diff --git a/scripts/player.gd b/scripts/player.gd index fe4a61d..bf17578 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -31,6 +31,8 @@ slave var slave_ang_v = Vector3() var tp_camera = "TPCamera" var master_only = "MasterOnly" +var master_player + var ai_instanced = false func _ready(): @@ -44,6 +46,7 @@ func _ready(): add_child(preload("res://scenes/ai.tscn").instance()) ai_instanced = true else: + # Remove HUD remove_child(get_node(master_only)) func spawn(): @@ -91,6 +94,19 @@ func _input(event): if "record" in player_info: recording.events.append([recording.time, event_to_obj(event)]) +func begin(): + master_player = get_node("/root/Level/Players/%d" % get_tree().get_network_unique_id()) + # Set color to blue (teammate) or red (enemy) + var color + if master_player.player_info.is_right_team == player_info.is_right_team: + color = Color(0,0,1) # Blue for friendly + else: + color = Color(1,0,0) # Red for enemy + var mesh = get_node("MainMesh") + var mat = SpatialMaterial.new() + mat.albedo_color = color + mesh.set_surface_material(0, mat) + func toggle_mouse_capture(): if (Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED): Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) @@ -256,3 +272,4 @@ func write_recording(): # Quits the game: func quit(): get_tree().quit() +