OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-godot4-test / game / map_decorations / teleporter.gd

52 lines · gd ref:
extends Node3D

@export var teleportation_destination : String = ""

@onready var mapsNode : Node = get_tree().get_current_scene().get_node("Maps")


# Declare member variables here. Examples:
# var a = 2
# var b = "text"


# Called when the node enters the scene tree for the first time.
func _ready():
	pass # Replace with function body.
	
func _on_Teleporter_gameplay_entered():
	pass


func tryMapChange(mapChangeName : String, sendGossip : bool, playerNode):
	var mapCurrentName = playerNode.currentMap.map_name
	var mapNode = null
	if(mapCurrentName != teleportation_destination):
		if(mapChangeName == "map_cyber"):
			mapNode = mapsNode.get_node("map_cyber")
		elif(mapChangeName == "map_cyber1"):
			mapNode = mapsNode.get_node("map_cyber1")
		else:
			mapNode = mapsNode.get_node("map_test")
		# Find a Respawn Point
		playerNode.currentSpawnLocation = playerNode.getSpawnLocationForMapName(mapChangeName)
		playerNode.currentMap = mapNode
		playerNode.playerWantsToRespawn = true
		playerNode.playerWantsNewWorldEnvironment = true
		
		if(sendGossip):
			var _data : Dictionary = {
			"map": {
				"name": mapChangeName
				}
			}
			#hyperGossip.broadcast_event(EVENT_PLAYER_MAPCHANGE, data)


func _on_CollisionShape_gameplay_entered():
	pass # Replace with function body.

func _on_hitbox_body_entered(body):
	if(body is CharacterBody3D):
		tryMapChange(teleportation_destination, true, body)