EquipmentController

Class

Namespace: GGG.Equipment

MonoBehaviour host for an EquipmentLoadout. This component exposes equipment state to scenes and prefabs without introducing inventory, combat, input, or presentation dependencies.

public sealed class EquipmentController : MonoBehaviour, IEquipment

Inheritance

object ← Object ← Component ← Behaviour ← MonoBehaviour ← EquipmentController

Implements

IEquipment

Inherited Members

MonoBehaviour.IsInvoking(), MonoBehaviour.CancelInvoke(), MonoBehaviour.Invoke(string, float), MonoBehaviour.InvokeRepeating(string, float, float), MonoBehaviour.CancelInvoke(string), MonoBehaviour.IsInvoking(string), MonoBehaviour.StartCoroutine(string), MonoBehaviour.StartCoroutine(string, object), MonoBehaviour.StartCoroutine(IEnumerator), MonoBehaviour.StartCoroutine_Auto(IEnumerator), MonoBehaviour.StopCoroutine(IEnumerator), MonoBehaviour.StopCoroutine(Coroutine), MonoBehaviour.StopCoroutine(string), MonoBehaviour.StopAllCoroutines(), MonoBehaviour.print(object), MonoBehaviour.destroyCancellationToken, MonoBehaviour.useGUILayout, MonoBehaviour.didStart, MonoBehaviour.didAwake, MonoBehaviour.runInEditMode, Behaviour.enabled, Behaviour.isActiveAndEnabled, Component.GetComponent(Type), Component.GetComponent<T>(), Component.TryGetComponent(Type, out Component), Component.TryGetComponent<T>(out T), Component.GetComponent(string), Component.GetComponentInChildren(Type, bool), Component.GetComponentInChildren(Type), Component.GetComponentInChildren<T>(bool), Component.GetComponentInChildren<T>(), Component.GetComponentsInChildren(Type, bool), Component.GetComponentsInChildren(Type), Component.GetComponentsInChildren<T>(bool), Component.GetComponentsInChildren<T>(bool, List<T>), Component.GetComponentsInChildren<T>(), Component.GetComponentsInChildren<T>(List<T>), Component.GetComponentInParent(Type, bool), Component.GetComponentInParent(Type), Component.GetComponentInParent<T>(bool), Component.GetComponentInParent<T>(), Component.GetComponentsInParent(Type, bool), Component.GetComponentsInParent(Type), Component.GetComponentsInParent<T>(bool), Component.GetComponentsInParent<T>(bool, List<T>), Component.GetComponentsInParent<T>(), Component.GetComponents(Type), Component.GetComponents(Type, List<Component>), Component.GetComponents<T>(List<T>), Component.GetComponents<T>(), Component.GetComponentIndex(), Component.CompareTag(string), Component.CompareTag(TagHandle), Component.SendMessageUpwards(string, object, SendMessageOptions), Component.SendMessageUpwards(string, object), Component.SendMessageUpwards(string), Component.SendMessageUpwards(string, SendMessageOptions), Component.SendMessage(string, object), Component.SendMessage(string), Component.SendMessage(string, object, SendMessageOptions), Component.SendMessage(string, SendMessageOptions), Component.BroadcastMessage(string, object, SendMessageOptions), Component.BroadcastMessage(string, object), Component.BroadcastMessage(string), Component.BroadcastMessage(string, SendMessageOptions), Component.transform, Component.transformHandle, Component.gameObject, Component.tag, Object.GetEntityId(), Object.GetInstanceID(), Object.GetHashCode(), Object.Equals(object), Object.InstantiateAsync<T>(T), Object.InstantiateAsync<T>(T, Transform), Object.InstantiateAsync<T>(T, Vector3, Quaternion), Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion), Object.InstantiateAsync<T>(T, int), Object.InstantiateAsync<T>(T, int, Transform), Object.InstantiateAsync<T>(T, int, Vector3, Quaternion), Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>), Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion), Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken), Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>), Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken), Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken), Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken), Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken), Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken), Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken), Object.Instantiate(Object, Vector3, Quaternion), Object.Instantiate(Object, Vector3, Quaternion, Transform), Object.Instantiate(Object), Object.Instantiate(Object, Scene), Object.Instantiate<T>(T, InstantiateParameters), Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters), Object.Instantiate(Object, Transform), Object.Instantiate(Object, Transform, bool), Object.Instantiate<T>(T), Object.Instantiate<T>(T, Vector3, Quaternion), Object.Instantiate<T>(T, Vector3, Quaternion, Transform), Object.Instantiate<T>(T, Transform), Object.Instantiate<T>(T, Transform, bool), Object.Destroy(Object, float), Object.Destroy(Object), Object.DestroyImmediate(Object, bool), Object.DestroyImmediate(Object), Object.FindObjectsOfType(Type), Object.FindObjectsOfType(Type, bool), Object.FindObjectsByType(Type, FindObjectsSortMode), Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode), Object.FindObjectsByType(Type), Object.FindObjectsByType(Type, FindObjectsInactive), Object.DontDestroyOnLoad(Object), Object.DestroyObject(Object, float), Object.DestroyObject(Object), Object.FindSceneObjectsOfType(Type), Object.FindObjectsOfTypeIncludingAssets(Type), Object.FindObjectsOfType<T>(), Object.FindObjectsByType<T>(FindObjectsSortMode), Object.FindObjectsOfType<T>(bool), Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode), Object.FindObjectOfType<T>(), Object.FindObjectOfType<T>(bool), Object.FindFirstObjectByType<T>(), Object.FindAnyObjectByType<T>(), Object.FindFirstObjectByType<T>(FindObjectsInactive), Object.FindAnyObjectByType<T>(FindObjectsInactive), Object.FindObjectsByType<T>(), Object.FindObjectsByType<T>(FindObjectsInactive), Object.FindObjectsOfTypeAll(Type), Object.FindObjectOfType(Type), Object.FindFirstObjectByType(Type), Object.FindAnyObjectByType(Type), Object.FindObjectOfType(Type, bool), Object.FindFirstObjectByType(Type, FindObjectsInactive), Object.FindAnyObjectByType(Type, FindObjectsInactive), Object.ToString(), Object.name, Object.hideFlags, object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()

Properties

IsInitialized

Gets whether the controller has initialized its runtime state.

public bool IsInitialized { get; }

Property Value

bool

LoadoutDefinition

Gets the loadout definition used by this component.

public EquipmentLoadoutDefinition LoadoutDefinition { get; }

Property Value

EquipmentLoadoutDefinition

Slots

Gets the runtime slots in their configured order.

public IReadOnlyList<EquipmentSlot> Slots { get; }

Property Value

IReadOnlyList<EquipmentSlot>

Methods

CanEquip(ItemInstance, EquipmentSlotDefinition)

Determines whether the item can occupy the specified equipment slot.

public bool CanEquip(ItemInstance item, EquipmentSlotDefinition slotDefinition)

Parameters

item ItemInstance

The runtime item instance to inspect or modify.

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

Returns

bool

Whether the specified condition is satisfied.

Clear()

Clears the contents displayed or stored by this component.

public void Clear()

ContainsSlot(EquipmentSlotDefinition)

Determines whether the loadout contains the requested slot definition.

public bool ContainsSlot(EquipmentSlotDefinition slotDefinition)

Parameters

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

Returns

bool

Whether the specified condition is satisfied.

Initialize()

Initializes the component runtime state if it has not been initialized.

public void Initialize()

IsEquipped(ItemInstance)

Determines whether the specified item is currently equipped.

public bool IsEquipped(ItemInstance item)

Parameters

item ItemInstance

The runtime item instance to inspect or modify.

Returns

bool

Whether the specified condition is satisfied.

TryClear(out IReadOnlyList<ItemInstance>)

Attempts to clear all occupied slots, returning removed items.

public bool TryClear(out IReadOnlyList<ItemInstance> unequippedItems)

Parameters

unequippedItems IReadOnlyList<ItemInstance>

Receives items unequipped by the operation.

Returns

bool

Whether the operation succeeded.

TryEquip(ItemInstance, EquipmentSlotDefinition, out ItemInstance)

Attempts to equip an item in the specified slot.

public bool TryEquip(ItemInstance item, EquipmentSlotDefinition slotDefinition, out ItemInstance replacedItem)

Parameters

item ItemInstance

The runtime item instance to inspect or modify.

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

replacedItem ItemInstance

Receives an item displaced from the equipment slot, if any.

Returns

bool

Whether the operation succeeded.

TryEquip(ItemInstance, EquipmentSlotDefinition)

Attempts to equip an item in the specified slot.

public bool TryEquip(ItemInstance item, EquipmentSlotDefinition slotDefinition)

Parameters

item ItemInstance

The runtime item instance to inspect or modify.

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

Returns

bool

Whether the operation succeeded.

TryGetEquippedItem(EquipmentSlotDefinition, out ItemInstance)

Attempts to find the item equipped in the specified slot.

public bool TryGetEquippedItem(EquipmentSlotDefinition slotDefinition, out ItemInstance item)

Parameters

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

item ItemInstance

Receives the resulting item when successful.

Returns

bool

Whether the operation succeeded.

TryGetSlot(EquipmentSlotDefinition, out EquipmentSlot)

Attempts to find the specified runtime slot.

public bool TryGetSlot(EquipmentSlotDefinition slotDefinition, out EquipmentSlot slot)

Parameters

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

slot EquipmentSlot

Receives the matching runtime slot when found.

Returns

bool

Whether the operation succeeded.

TryGetSlot(string, out EquipmentSlot)

Attempts to find the specified runtime slot.

public bool TryGetSlot(string slotId, out EquipmentSlot slot)

Parameters

slotId string

The identifier of the equipment slot.

slot EquipmentSlot

Receives the matching runtime slot when found.

Returns

bool

Whether the operation succeeded.

TryUnequip(EquipmentSlotDefinition, out ItemInstance)

Attempts to remove the equipped item from the specified slot.

public bool TryUnequip(EquipmentSlotDefinition slotDefinition, out ItemInstance unequippedItem)

Parameters

slotDefinition EquipmentSlotDefinition

The equipment slot definition to inspect or use.

unequippedItem ItemInstance

Receives the previously equipped item when successful.

Returns

bool

Whether the operation succeeded.

Changed

Raised when the underlying runtime state changes.

public event Action<EquipmentChange> Changed

Event Type

Action<EquipmentChange>