27 lines
1.4 KiB
GDScript
27 lines
1.4 KiB
GDScript
extends Node
|
|
|
|
func get_marker_data() -> Array:
|
|
var out: Array = []
|
|
for p in get_tree().get_nodes_in_group("player"):
|
|
if not (p is Node3D):
|
|
continue
|
|
out.append({"pos": (p as Node3D).global_position, "color": Color(0.3, 0.6, 1.0), "label": Net.player_names.get(p.peer_id if p.has_method("get") else 1, "P")})
|
|
for e in get_tree().get_nodes_in_group("enemies"):
|
|
if e is Node3D:
|
|
out.append({"pos": (e as Node3D).global_position, "color": Color(0.9, 0.2, 0.2), "label": ""})
|
|
for g in get_tree().get_nodes_in_group("gates"):
|
|
if g is Node3D:
|
|
var c: Color = Color(0.95, 0.2, 0.15) if g.is_in_group("red_gate") else Color(0.85, 0.55, 0.2)
|
|
out.append({"pos": (g as Node3D).global_position, "color": c, "label": "Gate"})
|
|
for portal in get_tree().get_nodes_in_group("portals"):
|
|
if portal is Node3D:
|
|
var c2: Color = Color(0.95, 0.2, 0.15) if portal.is_in_group("red_portal") else Color(0.3, 0.6, 1.0)
|
|
out.append({"pos": (portal as Node3D).global_position, "color": c2, "label": "Portal"})
|
|
for n in get_tree().get_nodes_in_group("npc"):
|
|
if n is Node3D:
|
|
out.append({"pos": (n as Node3D).global_position, "color": Color(0.9, 0.85, 0.5), "label": ""})
|
|
for v in get_tree().get_nodes_in_group("village"):
|
|
if v is Node3D:
|
|
out.append({"pos": (v as Node3D).global_position, "color": Color(0.4, 0.85, 0.4), "label": "Village"})
|
|
return out
|