This is in preparation for being able to more finely control the NPC, both from the specific NPC implementation and the PathNavigator (which was renamed accordingly)
33 lines
816 B
GDScript
33 lines
816 B
GDScript
extends NPC
|
|
|
|
|
|
export(NodePath) var _visibility_path: NodePath
|
|
|
|
var _visibility: Area
|
|
|
|
|
|
func _ready():
|
|
Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
|
|
_visibility = get_node(_visibility_path) as Area
|
|
|
|
if _visibility:
|
|
_visibility.connect("body_entered", self, "_on_body_entered_visibility")
|
|
_visibility.connect("body_exited", self, "_on_body_exited_visibility")
|
|
|
|
|
|
func _on_body_entered_visibility(body: Node):
|
|
Logger.trace("Meldewesen seeing %s" % [body])
|
|
|
|
if body.is_in_group("Player"):
|
|
Logger.info("Seeing player!")
|
|
# TODO: Check if the Player is in an area where they shouldn't be
|
|
|
|
# TODO: Follow the Player
|
|
|
|
|
|
func _on_body_exited_visibility(body: Node):
|
|
if body.is_in_group("Player"):
|
|
print("Stopped seeing player!")
|
|
Logger.info("Stopped seeing player!")
|
|
# TODO: Stop following the Player
|