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

См. исходные тексты.

Структуры данных

class  TreeEffecterParameters
 

Перечисления

enum  EHarvestType { NORMAL , BARK }
 

Функции

void WoodBase ()
 
void InitMiningValues ()
 
override bool IsWoodBase ()
 
override bool IsCuttable ()
 
int GetPrimaryDropsAmount ()
 
int GetSecondaryDropsAmount ()
 
float GetToolDamage ()
 
float GetCycleTimeOverride ()
 
string GetPrimaryOutput ()
 
string GetSecondaryOutput ()
 
string GetBarkType ()
 
int GetAmountOfDrops (ItemBase item)
 
int GetAmountOfDropsEx (ItemBase item, EHarvestType type)
 
void GetMaterialAndQuantityMap (ItemBase item, out map< string, int > output_map)
 
void GetMaterialAndQuantityMapEx (ItemBase item, out map< string, int > output_map, EHarvestType type)
 
float GetDamageToMiningItemEachDrop (ItemBase item)
 
float GetDamageToMiningItemEachDropEx (ItemBase item, EHarvestType type)
 
override bool CanBeActionTarget ()
 
void TreeEffecter ()
 
override void Init (int id, EffecterParameters parameters)
 
void SetRadius (float radius)
 
override void OnVariablesSynchronized ()
 
void ~TreeEffecter ()
 

Переменные

enum EHarvestType m_IsCuttable
 
static int m_PrimaryDropsAmount = -1
 
static int m_SecondaryDropsAmount = -1
 
static float m_ToolDamage = -1.0
 
static float m_CycleTimeOverride = -1.0
 
static string m_PrimaryOutput = ""
 
static string m_SecondaryOutput = ""
 
static string m_BarkType = ""
 
TreeEffecterParameters m_Plants
 
ref array< EffectParticleGeneralm_Effects = null
 
float m_Radius = -1
 
float m_RadiusSync = -1
 

Перечисления

◆ EHarvestType

Элементы перечислений
NORMAL 
BARK 
2{
3 NORMAL,
4 BARK
5}
@ BARK
Definition WoodBase.c:4
@ NORMAL
Definition WoodBase.c:3

Функции

◆ CanBeActionTarget()

override bool CanBeActionTarget ( )
247 {
248 return super.CanBeActionTarget() && !IsDamageDestroyed();
249 }
Definition EntityAI.c:95

Используется в VicinityObjects::TransformToVicinityObjects().

◆ GetAmountOfDrops()

int GetAmountOfDrops ( ItemBase item)
89 {
90 if ( GetPrimaryDropsAmount() > 0 )
91 {
92 if ( IsTree() && item && ( item.KindOf("Knife") || item.IsInherited(Screwdriver) ) )
93 {
94 return -1;
95 }
96 else
97 {
98 return GetPrimaryDropsAmount();
99 }
100 }
101 else
102 {
103 if ( item && ( item.KindOf("Knife") || item.IsInherited(Screwdriver) ) )
104 {
105 return -1;
106 }
107 else if ( item && item.KindOf("Axe") )
108 {
109 return 3;
110 }
111 else
112 {
113 return 100;
114 }
115 }
116 }
int GetPrimaryDropsAmount()
Definition WoodBase.c:51

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

◆ GetAmountOfDropsEx()

int GetAmountOfDropsEx ( ItemBase item,
EHarvestType type )
119 {
120 if ( GetPrimaryDropsAmount() > 0 )
121 {
122 if ( IsTree() && item && type == EHarvestType.BARK )
123 {
124 return -1;
125 }
126 else
127 {
128 return GetPrimaryDropsAmount();
129 }
130 }
131 else
132 {
133 if ( item && type == EHarvestType.BARK )
134 {
135 return -1;
136 }
137 else if ( item && type == EHarvestType.NORMAL )
138 {
139 return 3;
140 }
141 else
142 {
143 return 100;
144 }
145 }
146 }
EHarvestType
Definition WoodBase.c:2

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

◆ GetBarkType()

string GetBarkType ( )
82 {
83 return ConfigGetString("barkType");
84 }

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

◆ GetCycleTimeOverride()

float GetCycleTimeOverride ( )
67 {
68 return ConfigGetFloat("cycleTimeOverride");
69 }

◆ GetDamageToMiningItemEachDrop()

float GetDamageToMiningItemEachDrop ( ItemBase item)
173 {
174 if (GetToolDamage() > -1)
175 return GetToolDamage();
176
177 if ( IsTree() )
178 {
179 if ( item && item.KindOf("Knife") )
180 {
181 return 20;
182 }
183 else if ( item && item.KindOf("Axe") )
184 {
185 return 20;
186 }
187 else
188 {
189 return 0;
190 }
191 }
192 else
193 {
194 if ( item && item.KindOf("Knife") )
195 {
196 return 30;
197 }
198 else if ( item && item.KindOf("Axe") )
199 {
200 return 30;
201 }
202 else
203 {
204 return 0;
205 }
206 }
207 }
float GetToolDamage()
Definition WoodBase.c:61

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

◆ GetDamageToMiningItemEachDropEx()

float GetDamageToMiningItemEachDropEx ( ItemBase item,
EHarvestType type )
210 {
211 if (GetToolDamage() > -1)
212 return GetToolDamage();
213
214 if ( IsTree() )
215 {
216 if ( item && type == EHarvestType.BARK )
217 {
218 return 20;
219 }
220 else if ( item && type == EHarvestType.NORMAL )
221 {
222 return 20;
223 }
224 else
225 {
226 return 0;
227 }
228 }
229 else
230 {
231 if ( item && type == EHarvestType.BARK )
232 {
233 return 30;
234 }
235 else if ( item && type == EHarvestType.NORMAL )
236 {
237 return 30;
238 }
239 else
240 {
241 return 0;
242 }
243 }
244 }

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

◆ GetMaterialAndQuantityMap()

void GetMaterialAndQuantityMap ( ItemBase item,
out map< string, int > output_map )
149 {
150 if ( IsTree() && item && ( item.KindOf("Knife") || item.IsInherited(Screwdriver) ) && GetBarkType() != "" )
151 {
152 output_map.Insert(GetBarkType(),1);
153 }
154 else
155 {
156 output_map.Insert(GetPrimaryOutput(),1);
157 }
158 }
string GetBarkType()
Definition WoodBase.c:81
string GetPrimaryOutput()
Definition WoodBase.c:71

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

◆ GetMaterialAndQuantityMapEx()

void GetMaterialAndQuantityMapEx ( ItemBase item,
out map< string, int > output_map,
EHarvestType type )
161 {
162 if ( IsTree() && item && type == EHarvestType.BARK && GetBarkType() != "" )
163 {
164 output_map.Insert(GetBarkType(),1);
165 }
166 else
167 {
168 output_map.Insert(GetPrimaryOutput(),1);
169 }
170 }

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

◆ GetPrimaryDropsAmount()

int GetPrimaryDropsAmount ( )
52 {
53 return ConfigGetInt("primaryDropsAmount");
54 }

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

◆ GetPrimaryOutput()

string GetPrimaryOutput ( )
72 {
73 return ConfigGetString("primaryOutput");
74 }

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

◆ GetSecondaryDropsAmount()

int GetSecondaryDropsAmount ( )
57 {
58 return ConfigGetInt("secondaryDropsAmount");
59 }

◆ GetSecondaryOutput()

string GetSecondaryOutput ( )
77 {
78 return ConfigGetString("secondaryOutput");
79 }

◆ GetToolDamage()

float GetToolDamage ( )
62 {
63 return ConfigGetFloat("toolDamage");
64 }

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

◆ Init()

override void Init ( int id,
EffecterParameters parameters )
private
281 {
282 super.Init(id, parameters);
284 SetRadius(par.m_Radius);
285 }
void SetRadius(float radius)
Definition WoodBase.c:287
Definition WoodBase.c:253

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

◆ InitMiningValues()

void InitMiningValues ( )
37 {
38 //m_IsCuttable = false;
39 };

◆ IsCuttable()

override bool IsCuttable ( )
47 {
48 return ConfigGetBool("isCuttable");
49 }

◆ IsWoodBase()

override bool IsWoodBase ( )
42 {
43 return true;
44 }

◆ OnVariablesSynchronized()

override void OnVariablesSynchronized ( )
private
294 {
295 if (m_RadiusSync != m_Radius)
296 {
300
302 {
304 }
305
306 m_Effects.Clear();
307 m_Plants.Clear();
308
309 GetGame().GetObjectsAtPosition(GetWorldPosition(), m_RadiusSync, objects, proxies);
310
311 for (int i = 0; i < objects.Count(); i++)
312 {
314 if (plant)
315 {
316 string particle;
317 int particleID;
318 string configPath = "CfgNonAIVehicles " + plant.GetType() + " FxFallingParticleEffect particle";
319 GetGame().ConfigGetText(configPath, particle);
320
321 if (particle != "")
322 {
324 }
325 else
326 {
328 }
329
330 LOD lod = plant.GetLODByName(LOD.NAME_MEMORY);
331 Selection selection = lod.GetSelectionByName("ptcFalling");
332 if (selection)
333 {
335 for (int j = 0; j < selection.GetVertexCount(); j++)
336 {
338 newEffect.SetParticle(particleID);
339 selectionPos = selection.GetVertexPosition(lod, j);
341 m_Effects.Insert(newEffect);
342 }
343 }
344 else
345 {
347 newEffect.SetParticle(particleID);
349 m_Effects.Insert(newEffect);
350 }
351
352 m_Plants.Insert(plant);
353 }
354 }
355 }
356
358 {
360 {
361 switch (m_CommandSync)
362 {
363 case EffecterCommands.START:
364 if (effect && !effect.IsPlaying())
365 {
366 effect.SetParticle(effect.m_LastParticleID);
367 effect.Start();
368 }
369 break;
370
371 case EffecterCommands.STOP:
372 if (effect && effect.IsPlaying())
373 {
374 effect.Stop();
375 }
376 break;
377
378 case EffecterCommands.REACTIVATE0:
379 case EffecterCommands.REACTIVATE1:
380 if (effect)
381 {
382 effect.SetParticle(effect.m_LastParticleID);
383 }
384 if (!effect.IsPlaying())
385 {
386 effect.Start();
387 }
388 break;
389
390 default:
391 break;
392 }
393 }
395 }
396 }
void EffectParticleGeneral()
Definition EffectManager.c:852
int m_Command
Definition EffectManager.c:687
int m_CommandSync
Definition EffectManager.c:688
TreeEffecterParameters m_Plants
float m_RadiusSync
Definition WoodBase.c:267
ref array< EffectParticleGeneral > m_Effects
Definition WoodBase.c:265
void WoodBase()
Definition WoodBase.c:30
float m_Radius
Definition WoodBase.c:266
LOD class.
Definition gameplay.c:203
static const string NAME_MEMORY
Definition gameplay.c:208
Definition ParticleList.c:12
static const int TREE_FALLING_LEAF
Definition ParticleList.c:353
static int RegisterParticle(string file_name)
Definition ParticleList.c:357
Manager class for managing Effect (EffectParticle, EffectSound)
Definition EffectManager.c:6
static int PlayInWorld(notnull Effect eff, vector pos)
Play an Effect.
Definition EffectManager.c:47
static void DestroyEffect(Effect effect)
Unregisters, stops and frees the Effect.
Definition EffectManager.c:271
Selection class.
Definition gameplay.c:179
proto native int GetVertexCount()
vector GetVertexPosition(LOD lod, int index)
Definition gameplay.c:187
Definition EnConvert.c:106
proto native CGame GetGame()

Перекрестные ссылки SEffectManager::DestroyEffect(), EffectParticleGeneral(), GetGame(), Selection::GetVertexCount(), Selection::GetVertexPosition(), m_Command, m_CommandSync, m_Effects, m_Plants, m_Radius, m_RadiusSync, LOD::NAME_MEMORY, SEffectManager::PlayInWorld(), ParticleList::RegisterParticle(), ParticleList::TREE_FALLING_LEAF и WoodBase().

◆ SetRadius()

void SetRadius ( float radius)
private
288 {
289 m_RadiusSync = radius;
290 Process();
291 }
void Process()
Definition EffectManager.c:743

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

Используется в EntityLightSource::EOnFrame(), EntityLightSource::HandleRadiusFadeing(), Init() и EntityLightSource::SetRadiusTo().

◆ TreeEffecter()

void TreeEffecter ( )
private
270 {
271 if (!GetGame().IsServer() || !GetGame().IsMultiplayer())
272 {
275 }
276
277 RegisterNetSyncVariableFloat("m_RadiusSync");
278 }

Перекрестные ссылки GetGame(), m_Effects и m_Plants.

◆ WoodBase()

void WoodBase ( )

◆ ~TreeEffecter()

void ~TreeEffecter ( )
private
399 {
400 if (m_Effects)
401 {
403 {
405 }
406 }
407 }

Перекрестные ссылки SEffectManager::DestroyEffect(), EffectParticleGeneral() и m_Effects.

Переменные

◆ m_BarkType

string m_BarkType = ""
static

◆ m_CycleTimeOverride

float m_CycleTimeOverride = -1.0
static

◆ m_Effects

ref array<EffectParticleGeneral> m_Effects = null
protected

Используется в OnVariablesSynchronized(), TreeEffecter() и ~TreeEffecter().

◆ m_IsCuttable

enum EHarvestType m_IsCuttable

◆ m_Plants

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

◆ m_PrimaryDropsAmount

int m_PrimaryDropsAmount = -1
static

◆ m_PrimaryOutput

string m_PrimaryOutput = ""
static

◆ m_Radius

float m_Radius = -1
private

◆ m_RadiusSync

float m_RadiusSync = -1
private

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

◆ m_SecondaryDropsAmount

int m_SecondaryDropsAmount = -1
static

◆ m_SecondaryOutput

string m_SecondaryOutput = ""
static

◆ m_ToolDamage

float m_ToolDamage = -1.0
static