BNM 2.4.0
 
Loading...
Searching...
No Matches
BNM::EventBase Struct Reference

Class base for working with il2cpp events. More...

#include <EventBase.hpp>

Public Member Functions

constexpr EventBase () noexcept=default
 Create empty event base.
 
 EventBase (const EventBase &other)=default
 Copy event.
 
 EventBase (const IL2CPP::EventInfo *info)
 Create event from il2cpp event.
 
EventBaseSetInstance (IL2CPP::Il2CppObject *instance)
 Set event instance if it's non-static.
 
EventBaseoperator[] (void *instance)
 Operator for setting instance.
 
EventBaseoperator[] (IL2CPP::Il2CppObject *instance)
 Operator for setting instance.
 
EventBaseoperator[] (UnityEngine::Object *instance)
 Operator for setting instance.
 
bool IsValid () const noexcept
 Check if event is valid.
 
std::string str () const
 Get full event name.
 
template<typename NewRet, typename ... NewParameters>
Event< NewRet, NewParameters... > & cast () const
 Cast event to be able to add, remove and raise it.
 

Public Attributes

IL2CPP::EventInfo * _data {}
 
MethodBase _add {}
 
MethodBase _remove {}
 
MethodBase _raise {}
 
uint8_t _hasAdd: 1 = false
 
uint8_t _hasRemove: 1 = false
 
uint8_t _hasRaise: 1 = false
 

Detailed Description

Class base for working with il2cpp events.

This class provides fields and some basic functions to allow call, add and remove methods in event.

Constructor & Destructor Documentation

◆ EventBase() [1/2]

BNM::EventBase::EventBase ( const EventBase & other)
inlinedefault

Copy event.

Parameters
otherOther event

◆ EventBase() [2/2]

BNM::EventBase::EventBase ( const IL2CPP::EventInfo * info)

Create event from il2cpp event.

Parameters
infoIl2cpp event

Member Function Documentation

◆ IsValid()

bool BNM::EventBase::IsValid ( ) const
inlinenodiscardnoexcept

Check if event is valid.

Returns
State of event

◆ operator[]() [1/3]

EventBase & BNM::EventBase::operator[] ( IL2CPP::Il2CppObject * instance)
inline

Operator for setting instance.

Parameters
instanceInstance
Returns
Reference to current EventBase

◆ operator[]() [2/3]

EventBase & BNM::EventBase::operator[] ( UnityEngine::Object * instance)
inline

Operator for setting instance.

Parameters
instanceInstance
Returns
Reference to current EventBase

◆ operator[]() [3/3]

EventBase & BNM::EventBase::operator[] ( void * instance)
inline

Operator for setting instance.

Parameters
instanceInstance
Returns
Reference to current EventBase

◆ SetInstance()

EventBase & BNM::EventBase::SetInstance ( IL2CPP::Il2CppObject * instance)

Set event instance if it's non-static.

Parameters
instanceInstance
Returns
Reference to current EventBase

◆ str()

std::string BNM::EventBase::str ( ) const
inlinenodiscard

Get full event name.

Returns string with full event name: ClassFullName.(event name){add method: exists/not exist, remove method: exists/not exist, raise method: exists/not exist} (static)/nothing

Returns
Event's full name or "Dead event".