feat: Implement core Player character with networking, movement, and character selection logic, along with a new pointer shader.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
shader_type spatial;
|
||||
render_mode unshaded, blend_mix, depth_draw_opaque;
|
||||
|
||||
uniform vec4 pointer_color : source_color = vec4(0.0, 1.0, 0.0, 1.0);
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = pointer_color.rgb;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://kadpokx0uoai
|
||||
+13
-4
@@ -219,13 +219,22 @@ func _ready():
|
||||
$Name.text = display_name
|
||||
|
||||
# Character Pointer Visibility
|
||||
# Show only for our local player (not bots, not other players)
|
||||
# Visible to all human players. Green for local player, Red for others.
|
||||
var pointer = get_node_or_null("CharacterPointer")
|
||||
if pointer:
|
||||
if is_bot or is_in_group("Bots"):
|
||||
pointer.visible = false
|
||||
pointer.visible = true
|
||||
|
||||
var pointer_shader = load("res://assets/shaders/character_pointer.gdshader")
|
||||
var mat = ShaderMaterial.new()
|
||||
mat.shader = pointer_shader
|
||||
|
||||
if is_multiplayer_authority():
|
||||
mat.set_shader_parameter("pointer_color", Color(0.0, 1.0, 0.0, 1.0)) # Green
|
||||
else:
|
||||
pointer.visible = is_multiplayer_authority()
|
||||
mat.set_shader_parameter("pointer_color", Color(1.0, 0.0, 0.0, 1.0)) # Red
|
||||
|
||||
if pointer is MeshInstance3D:
|
||||
pointer.material_override = mat
|
||||
|
||||
# Sync name to other peers if this is our local player or a bot we own
|
||||
if is_multiplayer_authority() and can_rpc():
|
||||
|
||||
Reference in New Issue
Block a user