OverviewFilesCommitsIssuesDocsReleasesPeers

godot-tumble_player_demo / TPS_controller_3.3 / new_player_collisionui.gd

45 lines · gd ref:
extends Control

onready var itemList : ItemList = $Panel/MarginContainer/ItemList


func _ready():
	itemList.add_item("Active Collisions", null, false)
	itemList.add_item("", null, false)


func _process(_delta):
	pass

		
func populateItemList(collisions : Dictionary) -> void:
	itemList.clear()
	itemList.add_item("Active Collisions", null, false)
	itemList.add_item("", null, false)
	for i in collisions:
		itemList.add_item(collisions[i], null, false)
		itemList.add_item( String(i), null, false)
		
func zebraNode(child : Node, zebra : bool) -> void:
	var parent = child.get_parent()
	if(parent is MeshInstance):
		if(zebra):
			var material : SpatialMaterial = SpatialMaterial.new()
			material.albedo_color = Color(188, 0, 0)
			parent.material_override = material
		else:
			parent.material_override = null


func onNewCollision(body : Node, collisions : Dictionary):
	collisions[body.get_instance_id()] = body.name
	populateItemList(collisions)
	zebraNode(body, true)
		


func onRemovedCollision(body : Node, collisions : Dictionary):
	collisions.erase(body.get_instance_id())
	populateItemList(collisions)
	zebraNode(body, false)