30 lines
766 B
GDScript
30 lines
766 B
GDScript
extends Node2D
|
|
signal room_event
|
|
|
|
var bodies = []
|
|
func room_entered(body):
|
|
print("entered " + name)
|
|
if body.name == "master":
|
|
world.current_room = self
|
|
bodies.push_back(body)
|
|
|
|
func room_exited(body):
|
|
print("exited " + name)
|
|
if body.name == "master":
|
|
if world.current_room == self:
|
|
world.current_room = null
|
|
bodies.erase(body)
|
|
func room_event(event):
|
|
print("room: ", name, "room_event: ", event)
|
|
emit_signal("room_event", name, event)
|
|
func point_in_room(p: Vector2) -> bool:
|
|
var shape:CollisionShape2D = $Area2D/CollisionShape2D
|
|
|
|
|
|
return false
|
|
func _ready():
|
|
$Area2D.connect("body_entered", self, "room_entered")
|
|
$Area2D.connect("body_exited", self, "room_exited")
|
|
world.register_room_event(self, "action1", "room_event")
|
|
add_to_group("rooms")
|