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

◆ CanTransformIntoStick()

override bool GetBurningMaterial::CanTransformIntoStick ( )

См. определение в файле Broom.c строка 171

172{
173 override void Init()
174 {
175 super.Init();
176 m_DecraftResult = "LongWoodenStick";
177 m_ParticleLocalPos = Vector(0, 1.2, 0);
178 }
179
180 override void SetActions()
181 {
182 super.SetActions();
183
186 }
187
188 override bool CanReceiveUpgrade()
189 {
190 return false;
191 }
192
193 override void OnWorkStart()
194 {
195 super.OnWorkStart();
197 }
198
199 override void ApplyResultModifications(ItemBase result)
200 {
201 result.SetHealth(result.GetHealthLevelValue(2,""));
202 result.SetQuantity(1);
203 }
204
205 override bool CanTransformIntoStick()
206 {
207 if ( GetGame().IsServer() && !IsIgnited() && GetEnergy() < 1 && !IsSetForDeletion())
208 return true;
209 else
210 return false;
211 }
212
213
214 override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
215 {
216 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
217
218 GetCompEM().SetEnergy0To1(GetHealth01("",""));
219 }
220
221
222 override void CalculateQuantity()
223 {
224 if (GetGame().IsServer())
225 {
226 float currentHealth01 = GetHealth01();
227 float currentEnergy01 = GetCompEM().GetEnergy0To1();
228
229 //Health needs to copy internal energy, but only if that means it will be going down from its current value(the item can't heal itself after obtaining damage just because it has full internal energy)
230 SetHealth01("","",Math.Min(currentHealth01,currentEnergy01));
231 //Energy needs to copy health, but only if it is higher(in 01 terms) than health, that means if an item with full energy gets damaged and lit, the internal energy needs to be adjusted to follow the health. Situations where internal energy is lower than health are handled on the line above
232 GetCompEM().SetEnergy0To1(GetHealth01());
233 }
234 }
235
236 override void UpdateParticle()
237 {
238 float normalizedQuant = GetQuantity() / GetQuantityMax();
239
240 if (!m_FireParticle)
241 {
242 m_FireParticle = ParticleManager.GetInstance().PlayOnObject(ParticleList.BROOM_TORCH_T1, this, m_ParticleLocalPos);
243 }
244 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY, 1.0);
245 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY_RND, 1.0);
246 if (m_FireParticle)
247 {
248 float scale = Math.Max(normalizedQuant * 2.4, 0.4);
249
250 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.SIZE, scale);
251 }
252 }
253
254 // DEBUG BELLOW
255 void DebugSetHealthAndEnergy(float time)
256 {
257 float max_energy = GetCompEM().GetEnergyMaxPristine();
258 float health01 = Math.InverseLerp(0, max_energy, time);
259 SetHealth01("","", health01);
260 GetCompEM().SetEnergy( time );
261 }
262
263 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
264 {
265 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_VERY_SHORT, "SetBurnTimeTo15Secs", FadeColors.LIGHT_GREY));
266 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_SHORT, "SetBurnTimeTo1Min", FadeColors.LIGHT_GREY));
267 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_MEDIUM, "SetBurnTimeTo10Min", FadeColors.LIGHT_GREY));
268 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_LONG, "SetBurnTimeToMax", FadeColors.LIGHT_GREY));
269 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
270
271 super.GetDebugActions(outputList);
272 }
273
274 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
275 {
276 if (super.OnAction(action_id, player, ctx))
277 return true;
278 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
279 {
280 if (action_id == EActions.BROOM_BURN_VERY_SHORT)
281 {
283 OnIgnitedThis(null);
284 }
285 else if (action_id == EActions.BROOM_BURN_SHORT)
286 {
288 OnIgnitedThis(null);
289 }
290 else if (action_id == EActions.BROOM_BURN_MEDIUM)
291 {
293 OnIgnitedThis(null);
294 }
295 else if (action_id == EActions.BROOM_BURN_LONG)
296 {
297 DebugSetHealthAndEnergy(GetCompEM().GetEnergyMaxPristine());
298 OnIgnitedThis(null);
299 }
300 }
301 return false;
302 }
303
304}
305
306class Broom: BroomBase
307{
308 override string GetBurningMaterial()
309 {
310 return "DZ\\gear\\tools\\data\\broom_emissive.rvmat";
311 }
312
313 override string GetBurntMaterial()
314 {
315 return "DZ\\gear\\tools\\data\\broom_burn.rvmat";
316 }
317}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
override void UpdateParticle()
Определения Broom.c:202
override void CalculateQuantity()
Определения Broom.c:188
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения Broom.c:229
override bool CanReceiveUpgrade()
Определения Broom.c:154
override void SetActions()
Определения Broom.c:146
override void OnWorkStart()
Определения Broom.c:159
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения Broom.c:240
override bool CanTransformIntoStick()
Определения Broom.c:171
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения Broom.c:139
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
Определения Broom.c:180
void DebugSetHealthAndEnergy(float time)
Определения Broom.c:221
override void ApplyResultModifications(ItemBase result)
Определения Broom.c:165
EActions
Определения EActions.c:2
override void OnIgnitedThis(EntityAI fire_source)
Executed on Server when some item ignited this one.
Определения FireworksBase.c:96
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override float GetQuantity()
Определения ItemBase.c:8154
float GetEnergy()
Определения ItemBase.c:8278
override int GetQuantityMax()
Определения ItemBase.c:8106
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения Broom.c:2
Определения Building.c:6
override void SetActions()
Определения Torch.c:754
string GetBurningMaterial()
Определения Torch.c:796
string GetBurntMaterial()
Определения Torch.c:801
Определения Torch.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
static const int BROOM_TORCH_T1
Определения ParticleList.c:78
Определения ParticleList.c:12
Определения DamageSystem.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
EmitorParam
Определения EnVisual.c:114
const int SAT_DEBUG_ACTION
Определения constants.c:452