OverviewFilesCommitsIssuesDocsReleasesPeers

godot-tumble_player_demo / TPS_controller_3.3 / new_player_debugui.gd

53 lines · gd ref:
extends Control

onready var playerNode = get_node("../../../Players/PlayerLocal")
onready var inputValue : Label = $Panel/MarginContainer/GridContainer/Input_Value
onready var velocityValue : Label = $Panel/MarginContainer/GridContainer/Velocity_Value
onready var angularVelocity : Label = $Panel/MarginContainer/GridContainer/AngularVelocity
onready var angularVelocityValue : Label = $Panel/MarginContainer/GridContainer/AngularVelocity_Value
onready var physicsMode : Label = $Panel/MarginContainer/GridContainer/PhysicsMode_Value


func _ready():
	inputValue.text = String(Vector3.ZERO)
	velocityValue.text = String(Vector3.ZERO)
	if(playerNode is KinematicBody):
		angularVelocity.text = "On Floor"
		angularVelocityValue.text = "N/A"
	else:
		angularVelocityValue.text = "N/A"
	physicsMode.text = physicsModeToString(playerNode)


func _process(_delta):
	inputValue.text = String(playerNode.currentDirection)
	if(playerNode is KinematicBody):
		velocityValue.text = String(playerNode.kinematicVelocity)
		if( playerNode.is_on_floor() ):
			angularVelocityValue.text = "Yes"
		else:
			angularVelocityValue.text = "No"
	elif(playerNode is RigidBody):
		velocityValue.text = String(playerNode.linear_velocity)
		angularVelocityValue.text = String(playerNode.angular_velocity)
	
	physicsMode.text = physicsModeToString(playerNode)


func physicsModeToString(physicsNode : Spatial) -> String:
	if(playerNode is KinematicBody):
		return "KinematicBody"
	elif(playerNode is RigidBody):
		if(playerNode.mode == RigidBody.MODE_RIGID):
			return "Rigid"
		elif(playerNode.mode == RigidBody.MODE_STATIC):
			return "Static"
		elif(playerNode.mode == RigidBody.MODE_CHARACTER):
			return "Character"
		elif(playerNode.mode == RigidBody.MODE_KINEMATIC):
			return "Kinematic"
		else:
			return "Unknown"
	else:
		return "Unknown"