DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс PluginManager

Защищенные члены

void RegisterPlugin (string plugin_class_name, bool reg_on_client, bool reg_on_server, bool reg_on_release=true)
 Register new PluginBase to PluginManager for storing and handling plugin.
 
void RegisterPluginDebug (string plugin_class_name, bool reg_on_client, bool reg_on_server)
 Register new PluginBase to PluginManager for storing and handling plugin.
 
void RegisterPluginDiag (string plugin_class_name, bool reg_on_client, bool reg_on_server)
 
bool UnregisterPlugin (string plugin_class_name)
 

Закрытые члены

void PluginManager ()
 
void ~PluginManager ()
 
void Init ()
 
void PluginsInit ()
 
void MainOnUpdate (float delta_time)
 
PluginBase GetPluginByType (typename plugin_type)
 Returns registred plugin by class type, better is to use global funtion GetPlugin(typename plugin_type)
 

Закрытые данные

ref array< typenamem_PluginRegister
 
ref map< typename, ref PluginBasem_PluginsPtrs
 

Подробное описание

Конструктор(ы)

◆ PluginManager()

void PluginManager ( )
inlineprivate
10 {
13 }
Definition EntityAI.c:95
ref array< typename > m_PluginRegister
Definition PluginManager.c:3
ref map< typename, ref PluginBase > m_PluginsPtrs
Definition PluginManager.c:4

Перекрестные ссылки m_PluginRegister и m_PluginsPtrs.

◆ ~PluginManager()

void ~PluginManager ( )
inlineprivate
19 {
20 int i;
22
23 for ( i = 0; i < m_PluginsPtrs.Count(); ++i)
24 {
25 plugin = m_PluginsPtrs.GetElement(i);
26 if ( plugin != NULL )
27 {
28 plugin.OnDestroy();
29 delete plugin;
30 }
31 }
32
33 GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.MainOnUpdate);
34 }
Definition PluginBase.c:2
void MainOnUpdate(float delta_time)
Definition PluginManager.c:134
proto native CGame GetGame()
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10

Перекрестные ссылки CALL_CATEGORY_GAMEPLAY, GetGame(), m_PluginsPtrs и MainOnUpdate().

Методы

◆ GetPluginByType()

PluginBase GetPluginByType ( typename plugin_type )
inlineprivate

Returns registred plugin by class type, better is to use global funtion GetPlugin(typename plugin_type)

Аргументы
module_tpyetypename class type of plugin
Возвращает
PluginBase
PluginManager GetPluginManager()
Returns registred plugin by class type, better is to use global funtion GetPlugin(typename plugin_typ...
Definition PluginManager.c:274
PluginBase GetPluginByType(typename plugin_type)
Returns registred plugin by class type, better is to use global funtion GetPlugin(typename plugin_typ...
Definition PluginManager.c:157
158 {
159 if ( m_PluginsPtrs.Contains( plugin_type ) )
160 {
161 return m_PluginsPtrs.Get( plugin_type );
162 }
163
164 return null;
165 }

Перекрестные ссылки m_PluginsPtrs.

Используется в GetPlugin() и PluginsInit().

◆ Init()

void Init ( )
inlineprivate
40 {
41 //----------------------------------------------------------------------
42 // Register modules
43 //----------------------------------------------------------------------
44 // Module Class Name Client Server
45 //----------------------------------------------------------------------
46 RegisterPlugin( "PluginHorticulture", true, true );
47 RegisterPlugin( "PluginRepairing", true, true );
48 RegisterPlugin( "PluginPlayerStatus", true, true );
49 RegisterPlugin( "PluginMessageManager", true, true );
50 RegisterPlugin( "PluginLifespan", true, true );
51 RegisterPlugin( "PluginVariables", true, true );
52 RegisterPlugin( "PluginObjectsInteractionManager", false, true );
53 RegisterPlugin( "PluginRecipesManager", true, true );
54 RegisterPlugin( "PluginTransmissionAgents", true, true );
55 RegisterPlugin( "PluginConfigEmotesProfile", true, true );
56 RegisterPlugin( "PluginPresenceNotifier", true, false );
57 RegisterPlugin( "PluginAdminLog", false, true );
58
59 // Developer + Diag
60 RegisterPluginDiag( "PluginKeyBinding", true, false );
61 RegisterPluginDiag( "PluginDeveloper", true, true );
62 RegisterPluginDiag( "PluginDeveloperSync", true, true );
63 RegisterPluginDiag( "PluginDiagMenuClient", true, false );
64 RegisterPluginDiag( "PluginDiagMenuServer", false, true );
65 RegisterPluginDiag( "PluginPermanentCrossHair", true, false );
66 RegisterPluginDiag( "PluginRemotePlayerDebugClient", true, false );
67 RegisterPluginDiag( "PluginRemotePlayerDebugServer", false, true );
68 RegisterPluginDiag( "PluginUniversalTemperatureSourceClient", true, false );
69 RegisterPluginDiag( "PluginUniversalTemperatureSourceServer", false, true );
70 RegisterPluginDiag( "PluginTargetTemperature", true, false );
71 RegisterPluginDiag( "PluginDrawCheckerboard", true, false );
72 RegisterPluginDiag( "PluginItemDiagnostic", true, true );
73 RegisterPluginDiag( "PluginDayZCreatureAIDebug", true, true );
74
75 // Only In Debug / Internal
76 RegisterPluginDebug( "PluginConfigViewer", true, true );
77 RegisterPluginDebug( "PluginLocalEnscriptHistory", true, true );
78 RegisterPluginDebug( "PluginLocalEnscriptHistoryServer", true, true );
79
80 RegisterPluginDebug( "PluginSceneManager", true, true );
81 RegisterPluginDebug( "PluginConfigScene", true, true );
82 RegisterPluginDebug( "PluginMissionConfig", true, true );
83 RegisterPluginDebug( "PluginConfigEmotesProfile", true, true );
84 RegisterPluginDebug( "PluginConfigDebugProfile", true, true );
85 RegisterPluginDebug( "PluginConfigDebugProfileFixed", true, true );
86
87 RegisterPluginDebug( "PluginDayzPlayerDebug", true, true );
88 RegisterPluginDebug( "PluginDayZInfectedDebug", true, true );
89 RegisterPluginDebug( "PluginDoorRuler", true, false );
90 RegisterPluginDebug( "PluginCharPlacement", true, false );
91 //RegisterPluginDebug( "PluginSoundDebug", false, false );
92 RegisterPluginDebug( "PluginCameraTools", true, true );
93 RegisterPluginDebug( "PluginNutritionDumper", true, false );
94
95 GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY).Insert(MainOnUpdate);
96 }
void RegisterPlugin(string plugin_class_name, bool reg_on_client, bool reg_on_server, bool reg_on_release=true)
Register new PluginBase to PluginManager for storing and handling plugin.
Definition PluginManager.c:183
void RegisterPluginDiag(string plugin_class_name, bool reg_on_client, bool reg_on_server)
Definition PluginManager.c:238
void RegisterPluginDebug(string plugin_class_name, bool reg_on_client, bool reg_on_server)
Register new PluginBase to PluginManager for storing and handling plugin.
Definition PluginManager.c:231

Перекрестные ссылки CALL_CATEGORY_GAMEPLAY, GetGame(), MainOnUpdate(), RegisterPlugin(), RegisterPluginDebug() и RegisterPluginDiag().

◆ MainOnUpdate()

void MainOnUpdate ( float delta_time)
inlineprivate
135 {
136 for ( int i = 0; i < m_PluginsPtrs.Count(); ++i)
137 {
138 PluginBase plugin = m_PluginsPtrs.GetElement(i);
139 if ( plugin != NULL )
140 {
141 plugin.OnUpdate(delta_time);
142 }
143 }
144 }

Перекрестные ссылки m_PluginsPtrs.

Используется в Init() и ~PluginManager().

◆ PluginsInit()

void PluginsInit ( )
inlineprivate
102 {
103 int i = 0;
104 int regCount = m_PluginRegister.Count();
105
107 pluginPtrs.Reserve(regCount);
108
109 foreach (typename pluginType : m_PluginRegister)
110 {
112 if ( moduleExist )
113 {
114 m_PluginsPtrs.Remove( pluginType );
115 }
116
119 pluginPtrs.Insert(moduleNew);
120 }
121
122 foreach (PluginBase plugin : pluginPtrs)
123 {
124 if ( plugin )
125 {
126 plugin.OnInit();
127 }
128 }
129 }

Перекрестные ссылки GetPluginByType(), m_PluginRegister и m_PluginsPtrs.

◆ RegisterPlugin()

void RegisterPlugin ( string plugin_class_name,
bool reg_on_client,
bool reg_on_server,
bool reg_on_release = true )
inlineprotected

Register new PluginBase to PluginManager for storing and handling plugin.

Аргументы
module_tpyetypename class type of plugin
Возвращает
void
184 {
185 if ( !reg_on_client )
186 {
187 if ( GetGame().IsMultiplayer() && GetGame().IsClient() )
188 {
189 return;
190 }
191 }
192
193 if ( !reg_on_server )
194 {
195 if ( GetGame().IsMultiplayer() )
196 {
197 if ( GetGame().IsServer() )
198 {
199 return;
200 }
201 }
202 }
203
204 if ( !reg_on_release )
205 {
206 if ( !GetGame().IsDebug() )
207 {
208 return;
209 }
210 }
211
212 m_PluginRegister.Insert( plugin_class_name.ToType() );
213 }

Перекрестные ссылки GetGame() и m_PluginRegister.

Используется в Init(), RegisterPluginDebug() и RegisterPluginDiag().

◆ RegisterPluginDebug()

void RegisterPluginDebug ( string plugin_class_name,
bool reg_on_client,
bool reg_on_server )
inlineprotected

Register new PluginBase to PluginManager for storing and handling plugin.

Аргументы
module_tpyetypename class type of plugin
Возвращает
void

Перекрестные ссылки RegisterPlugin().

Используется в Init().

◆ RegisterPluginDiag()

void RegisterPluginDiag ( string plugin_class_name,
bool reg_on_client,
bool reg_on_server )
inlineprotected
239 {
240 #ifdef DIAG_DEVELOPER
242 #else
243 return;
244 #endif
245 }

Перекрестные ссылки RegisterPlugin().

Используется в Init().

◆ UnregisterPlugin()

bool UnregisterPlugin ( string plugin_class_name)
inlineprotected
251 {
252 typename plugin_type = plugin_class_name.ToType();
253
254 if ( m_PluginRegister.Find( plugin_type ) != -1 )
255 {
256 m_PluginRegister.RemoveItem( plugin_type );
257 return true;
258 }
259
260 return false;
261 }

Перекрестные ссылки m_PluginRegister.

Поля

◆ m_PluginRegister

ref array<typename> m_PluginRegister
private

◆ m_PluginsPtrs

ref map<typename, ref PluginBase> m_PluginsPtrs
private

Объявления и описания членов класса находятся в файле: