|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
Extends PartList<TickableComponent> with order-aware sorting. More...
#include <TickableList.h>
Public Member Functions | |
| TickableList & | Sort () |
| Sorts the list by each component's composite order value. | |
Public Member Functions inherited from Ship::PartList< TickableComponent, std::shared_ptr< TickableComponent > > | |
| PartList (const size_t initialAllocation=0) | |
| Constructs a PartList, optionally pre-allocating storage. | |
| virtual | ~PartList ()=default |
| bool | Has (std::shared_ptr< TickableComponent > part) const |
| Checks whether a specific Part is in the list. | |
| bool | Has () const |
| Checks whether any Part of type T is in the list. | |
| bool | Has (const uint64_t id) const |
| Checks whether a Part with the given ID is in the list. | |
| bool | Has () const |
| Checks whether the list contains any Parts at all. | |
| size_t | GetCount () const |
| Returns the number of currently live Parts in the list. | |
| uint64_t | GetMutationVersion () const |
| Returns a monotonically increasing counter that increments on every add or remove. | |
| std::shared_ptr< TickableComponent > | Get (const uint64_t id) const |
| Retrieves a Part by its unique ID. | |
| std::shared_ptr< std::vector< std::shared_ptr< TickableComponent > > > | Get () const |
| Returns a snapshot (copy) of all currently live Parts in the list. | |
| std::shared_ptr< std::vector< std::shared_ptr< T > > > | Get () const |
| Returns all Parts that can be dynamic_cast to type T. | |
| std::shared_ptr< std::vector< std::shared_ptr< TickableComponent > > > | Get (const std::vector< uint64_t > &ids) const |
| Returns all Parts whose IDs appear in the given vector. | |
| std::shared_ptr< T > | GetFirst () const |
| Returns the first Part that can be dynamic_cast to T. | |
| ListReturnCode | Add (std::shared_ptr< TickableComponent > part, const bool force=false) |
| Adds a Part to the list if not already present. | |
| ListReturnCode | Add (const std::vector< std::shared_ptr< TickableComponent > > &parts, const bool force=false) |
| Adds multiple Parts to the list. | |
| ListReturnCode | Remove (std::shared_ptr< TickableComponent > part, const bool force=false) |
| Removes a specific Part from the list. | |
| ListReturnCode | Remove (const uint64_t id, const bool force=false) |
| Removes a Part by its unique ID. | |
| ListReturnCode | Remove (const bool force=false) |
| Removes all Parts from the list. | |
| ListReturnCode | Remove (const std::vector< std::shared_ptr< TickableComponent > > &parts, const bool force=false) |
| Removes multiple Parts from the list. | |
| ListReturnCode | Remove (const bool force=false) |
| Removes all Parts that can be dynamic_cast to type T. | |
| ListReturnCode | Remove (const std::vector< uint64_t > &ids, const bool force=false) |
| Removes all Parts whose IDs appear in the given vector. | |
Public Member Functions inherited from Ship::Part | |
| Part () | |
| Constructs a Part and assigns it a unique ID. | |
| Part (std::shared_ptr< Context > context) | |
| Constructs a Part with an explicit Context reference and unique ID. | |
| virtual | ~Part ()=default |
| uint64_t | GetId () const |
| Returns the unique identifier for this Part. | |
| bool | operator== (const Part &other) const |
| Compares two Parts for equality by their unique IDs. | |
| std::shared_ptr< Context > | GetContext () const |
| Returns the Context this Part belongs to, or nullptr if unset. | |
| void | SetContext (std::shared_ptr< Context > ctx) |
| Sets the Context this Part belongs to. | |
Protected Member Functions | |
| void | Added (std::shared_ptr< TickableComponent > part, const bool forced) override |
| Re-sorts the list after a component is added so that TickGroup / TickPriority ordering is honored during iteration. | |
Protected Member Functions inherited from Ship::PartList< TickableComponent, std::shared_ptr< TickableComponent > > | |
| std::enable_if< std::is_same< P, std::shared_ptr< TickableComponent > >::value, std::vector< P > & >::type | GetList () |
| Direct access to the underlying vector for strong-storage lists. | |
| std::enable_if< std::is_same< P, std::shared_ptr< TickableComponent > >::value, conststd::vector< P > & >::type | GetList () const |
| Direct const access to the underlying vector for strong-storage lists. | |
| std::recursive_mutex & | GetMutex () const |
| Returns the internal recursive mutex used to guard list access. | |
| virtual bool | CanAdd (std::shared_ptr< TickableComponent > part) |
| Permission hook called before adding a Part. Override to deny. | |
| virtual bool | CanRemove (std::shared_ptr< TickableComponent > part) |
| Permission hook called before removing a Part. Override to deny. | |
| virtual void | Added (std::shared_ptr< TickableComponent > part, const bool forced) |
| Notification hook called after a Part has been added. | |
| virtual void | Removed (std::shared_ptr< TickableComponent > part, const bool forced) |
| Notification hook called after a Part has been removed. | |
Protected Member Functions inherited from Ship::Part | |
| virtual void | OnAdded (bool forced) |
| Called after this Part has been added to a PartList. | |
| virtual void | OnRemoved (bool forced) |
| Called after this Part has been removed from a PartList. | |
Extends PartList<TickableComponent> with order-aware sorting.
Maintains a sorted list of TickableComponents by their composite order (TickGroup + TickPriority). Call Sort() after order changes to re-establish the correct execution sequence.
|
inlineoverrideprotected |
Re-sorts the list after a component is added so that TickGroup / TickPriority ordering is honored during iteration.
|
inline |
Sorts the list by each component's composite order value.