OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-godot4-test / game / player / player_core_local_debugui.gd

77 lines · gd ref:
extends Control

@onready var playerNode = get_tree().get_current_scene().get_node("Players").get_node("PlayerCoreLocal")

@onready var currentmapValue : Label = $Panel/MarginContainer/GridContainer/Current_Map_Value
@onready var inputValue : Label = $Panel/MarginContainer/GridContainer/Input_Value
@onready var velocityValue : Label = $Panel/MarginContainer/GridContainer/Velocity_Value
@onready var speedValue : Label = $Panel/MarginContainer/GridContainer/Speed_Value
@onready var onfloorValue : Label = $Panel/MarginContainer/GridContainer/OnFloor_Value


const EVENT_PLAYER_MAPCHANGE = 'player_mapchange'

var actualMapNode : Node
var hyperGossip : HyperGossip


func _ready():
	inputValue.text = str(Vector3.ZERO)
	velocityValue.text = str(Vector3.ZERO)
	onfloorValue.text = "N/A"
	
	# Update Actual Map Node
	actualMapNode = playerNode.currentMap
	
	# Get HyperGossip
	hyperGossip = get_tree().get_current_scene().get_node("HyperGodot").get_node("HyperGossip")

func _process(_delta):
	currentmapValue.text = str(playerNode.currentMap.map_name)
	inputValue.text = str(playerNode.currentDirection)
	velocityValue.text = str(playerNode.velocity)
	speedValue.text = str(playerNode.currentSpeed)
	if( playerNode.is_on_floor() ):
		onfloorValue.text = "Yes"
	else:
		onfloorValue.text = "No"

func _on_map_test_button_up():
	$Panel2/MarginContainer/GridContainer/map_test.release_focus()
	tryMapChange("map_test", true)

func _on_map_cyber_button_up():
	$Panel2/MarginContainer/GridContainer/map_cyber.release_focus()
	tryMapChange("map_cyber", true)
	
func _on_map_cyber1_button_up():
	$Panel2/MarginContainer/GridContainer/map_cyber1.release_focus()
	tryMapChange("map_cyber1", true)
	
func tryMapChange(mapChangeName : String, sendGossip : bool):
	var mapCurrentName = actualMapNode.name
	var _mapNode = null
	if(mapCurrentName != mapChangeName):
		actualMapNode.queue_free()
		if(mapChangeName == "map_test"):
			_mapNode = get_tree().get_current_scene().map_test
		elif(mapChangeName == "map_cyber"):
			_mapNode = get_tree().get_current_scene().map_cyber
		elif(mapChangeName == "map_cyber1"):
			_mapNode = get_tree().get_current_scene().map_cyber1
		# Update Current Map
		playerNode.currentMap = get_tree().get_current_scene().get_node("CurrentMap").get_child(1)
		# Update Actual Map
		actualMapNode = playerNode.currentMap
		# Find a Respawn Point
		playerNode.currentSpawnLocation = playerNode.getSpawnLocation()
		playerNode.playerWantsToRespawn = true
		
		if(sendGossip):
			var data : Dictionary = {
			"map": {
				"name": mapChangeName
				}
			}
			hyperGossip.broadcast_event(EVENT_PLAYER_MAPCHANGE, data)