48 return ConfigGetBool(
"isCuttable");
63 return ConfigGetInt(
"primaryDropsAmount");
68 return ConfigGetInt(
"secondaryDropsAmount");
73 return ConfigGetFloat(
"toolDamage");
78 return ConfigGetFloat(
"cycleTimeOverride");
83 return ConfigGetString(
"primaryOutput");
88 return ConfigGetString(
"secondaryOutput");
93 return ConfigGetString(
"barkType");
102 if ( IsTree() && item && ( item.KindOf(
"Knife") || item.IsInherited(Screwdriver) ) )
113 if ( item && ( item.KindOf(
"Knife") || item.IsInherited(Screwdriver) ) )
117 else if ( item && item.KindOf(
"Axe") )
160 if ( IsTree() && item && ( item.KindOf(
"Knife") || item.IsInherited(Screwdriver) ) &&
GetBarkType() !=
"" )
189 if ( item && item.KindOf(
"Knife") )
193 else if ( item && item.KindOf(
"Axe") )
204 if ( item && item.KindOf(
"Knife") )
208 else if ( item && item.KindOf(
"Axe") )
258 return super.CanBeActionTarget() && !IsDamageDestroyed();
285 RegisterNetSyncVariableFloat(
"m_RadiusSync");
290 super.Init(
id, parameters);
318 for (
int i = 0; i < objects.Count(); i++)
325 string configPath =
"CfgNonAIVehicles " + plant.GetType() +
" FxFallingParticleEffect particle";
343 newEffect.SetParticle(particleID);
350 selectionPos = ModelToWorld(selectionPos);
365 case EffecterCommands.START:
366 if (effect && !effect.IsPlaying())
368 effect.SetParticle(effect.m_LastParticleID);
373 case EffecterCommands.STOP:
374 if (effect && effect.IsPlaying())
380 case EffecterCommands.REACTIVATE0:
381 case EffecterCommands.REACTIVATE1:
384 effect.SetParticle(effect.m_LastParticleID);
386 if (!effect.IsPlaying())
override void OnVariablesSynchronized()
void EffecterParameters(string type, float lifespan)
void EffectParticleGeneral()
static int m_SecondaryDropsAmount
static string m_SecondaryOutput
string GetSecondaryOutput()
void SetRadius(float radius)
float GetDamageToMiningItemEachDrop(ItemBase item)
int GetAmountOfDropsEx(ItemBase item, EHarvestType type)
void GetMaterialAndQuantityMapEx(ItemBase item, out map< string, int > output_map, EHarvestType type)
override bool IsCuttable()
void GetMaterialAndQuantityMap(ItemBase item, out map< string, int > output_map)
bool HasPlayerCollisionParticle()
static int m_PrimaryDropsAmount
float GetDamageToMiningItemEachDropEx(ItemBase item, EHarvestType type)
static float m_ToolDamage
TreeEffecterParameters m_Effects
string GetPrimaryOutput()
override bool IsWoodBase()
bool HasPlayerCollisionSound()
int GetPrimaryDropsAmount()
enum EHarvestType m_IsCuttable
override bool CanBeActionTarget()
static float m_CycleTimeOverride
static string m_PrimaryOutput
int GetSecondaryDropsAmount()
float GetCycleTimeOverride()
int GetAmountOfDrops(ItemBase item)
proto native void GetObjectsAtPosition(vector pos, float radius, out array< Object > objects, out array< CargoBase > proxyCargos)
Returns list of all objects in circle "radius" around position "pos".
proto bool ConfigGetText(string path, out string value)
Get string value from config on path.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
Wrapper class for managing sound through SEffectManager.
Selection GetSelectionByName(string name)
static const string NAME_MEMORY
static int RegisterParticle(string file_name)
static EffectSound PlaySoundEnviroment(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound, updating environment variables.
static int PlayInWorld(notnull Effect eff, vector pos)
Play an Effect.
static void DestroyEffect(Effect effect)
Unregisters, stops and frees the Effect.
Manager class for managing Effect (EffectParticle, EffectSound)
vector GetVertexPosition(LOD lod, int index)
proto native int GetVertexCount()
void TreeEffecterParameters(string type, float lifespan, int radius)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()