/* * SPDX-License-Identifier: AGPL-3.0-or-later * Copyright (C) 2025 Sergej Görzen * This file is part of OmiLAXR. */ using System.Reflection; namespace OmiLAXR.TrackingBehaviours { /// /// Core interface for tracking behavior components that monitor user interactions and system events. /// Provides methods for accessing event fields and associated actors/instructors in the tracking pipeline. /// public interface ITrackingBehaviour { /// /// Retrieves all tracking behavior event fields through reflection. /// Used for dynamically discovering and binding to available events within the tracking behavior. /// /// Array of FieldInfo objects representing all TrackingBehaviourEvent fields FieldInfo[] GetTrackingBehaviourEvents(); /// /// Gets the Actor component associated with this tracking behavior. /// The Actor represents the entity being tracked (e.g., user, NPC, system). /// /// The Actor component in the tracking pipeline Actor GetActor(); /// /// Gets the Instructor component that manages this tracking behavior. /// The Instructor coordinates tracking behaviors and handles their lifecycle. /// /// The Instructor component managing this tracking behavior Instructor GetInstructor(); } }