From afffc3b983ccef0ba34563dd25e48022a5f00945 Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 14 Feb 2018 19:35:45 -0500 Subject: [PATCH] Add nicknames above players' heads --- scenes/player.tscn | 26 +++++++++++++++++++++++++- scripts/player.gd | 1 + scripts/player_name.gd | 17 +++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 scripts/player_name.gd diff --git a/scenes/player.tscn b/scenes/player.tscn index c783b99..284e99d 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://scripts/player.gd" type="Script" id=1] [ext_resource path="res://scripts/tp_camera.gd" type="Script" id=2] +[ext_resource path="res://scripts/player_name.gd" type="Script" id=3] [sub_resource type="CapsuleShape" id=1] @@ -256,4 +257,27 @@ skeleton = NodePath("..") material/0 = SubResource( 5 ) _sections_unfolded = [ "Transform", "material" ] +[node name="NamePosition" type="Spatial" parent="." index="7"] + +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56117, 0 ) + +[node name="PlayerName" type="Label" parent="." index="8"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 40.0 +margin_bottom = 14.0 +rect_pivot_offset = Vector2( 0, 0 ) +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 4 +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 +script = ExtResource( 3 ) + diff --git a/scripts/player.gd b/scripts/player.gd index bf17578..7c23d0e 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -46,6 +46,7 @@ func _ready(): add_child(preload("res://scenes/ai.tscn").instance()) ai_instanced = true else: + get_node("PlayerName").set_text(player_info.username) # Remove HUD remove_child(get_node(master_only)) diff --git a/scripts/player_name.gd b/scripts/player_name.gd new file mode 100644 index 0000000..36ec2d2 --- /dev/null +++ b/scripts/player_name.gd @@ -0,0 +1,17 @@ +extends Label + +var camera +var pos + +func _ready(): + pos = get_node("../NamePosition") + +func _process(delta): + if not camera: + # This needs to happen here because players are added later + camera = get_node("/root/Level/Players/%d" % get_tree().get_network_unique_id()).get_node("TPCamera/Camera") + var size = get_size() + var offset = Vector2(size.x/2, size.y) # Origin at bottom + var pos3d = pos.get_global_transform().origin + set_position(camera.unproject_position(pos3d) - offset) +