DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Fireplace.c
См. документацию.
1class Fireplace extends FireplaceBase
2{
4 protected bool m_ContactDeletionProcessing = false;
5
25
34
35 override bool IsBaseFireplace()
36 {
37 return true;
38 }
39
40 override bool CanObstruct()
41 {
42 return IsOven();
43 }
44
45 override bool CanProxyObstruct()
46 {
47 return IsOven();
48 }
49
50 override void EOnTouch( IEntity other, int extra )
51 {
52 ContactEvent( other, GetPosition() );
53 }
54
55 override void EOnContact( IEntity other, Contact extra )
56 {
57 ContactEvent( other, extra.Position );
58 }
59
61 {
62 if (g_Game.IsServer() && !m_ContactEventProcessing && dBodyIsActive(this) && !IsSetForDeletion())
64 }
65
66 override protected void EOnPostSimulate(IEntity other, float timeSlice)
67 {
68 super.EOnPostSimulate(other,timeSlice);
69
71 {
74 ItemBase attachedStones = ItemBase.Cast(GetAttachmentByType(ATTACHMENT_STONES));
75 if (attachedStones)
76 {
77 g_Game.ObjectDelete(attachedStones);
78 }
79
80 if (HasAnyAttachmentsOrCargo())
81 MiscGameplayFunctions.ThrowAllItemsInInventory(this, ThrowEntityFlags.NONE);
82
84 g_Game.GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(g_Game.ObjectDelete, DELETE_CHECK_DELAY, false, this);
86 }
87 }
88
89 //attachments
90 override bool CanReceiveAttachment( EntityAI attachment, int slotId )
91 {
92 if ( !super.CanReceiveAttachment(attachment, slotId) )
93 return false;
94
95 ItemBase item = ItemBase.Cast( attachment );
96
97 //cookware
98 if ( ( item.Type() == ATTACHMENT_CAULDRON ) || ( item.Type() == ATTACHMENT_COOKING_POT ) )
99 {
100 if ( FindAttachmentBySlotName( "CookingTripod" ) || IsOven() )
101 return true;
102 return false;
103 }
104 if ( item.Type() == ATTACHMENT_FRYING_PAN )
105 {
106 if ( IsOven() )
107 return true;
108 return false;
109 }
110
111 // food on direct cooking slots
112 if ( item.IsKindOf( "Edible_Base" ) )
113 {
114 if ( IsOven() )
115 return true;
116 return false;
117 }
118 //tripod
119
120 if ( item.IsInherited(TripodBase) )
121 {
122 if (!IsOven() && !GetHierarchyParent())
123 return true;
124 return false;
125 }
126
127 //stones
128 if ( item.Type() == ATTACHMENT_STONES )
129 {
130 if ( !GetHierarchyParent() && !IsBurning() )
131 return true;
132 return false;
133 }
134
135 return true;
136 }
137
138 override bool CanDisplayAttachmentSlot( int slot_id )
139 {
140 string slot_name = InventorySlots.GetSlotName(slot_id);
141 if ( super.CanDisplayAttachmentSlot(slot_id) )
142 {
143 if ( slot_name != "CookingEquipment" || FindAttachmentBySlotName( "CookingTripod" ) )
144 return true;
145 }
146
147 return false;
148 }
149
150 override bool CanLoadAttachment( EntityAI attachment )
151 {
152 if ( !super.CanLoadAttachment(attachment) )
153 return false;
154
155 ItemBase item = ItemBase.Cast( attachment );
156
157 //cookware
158 if ( ( item.Type() == ATTACHMENT_CAULDRON ) || ( item.Type() == ATTACHMENT_COOKING_POT ) )
159 {
160 //if ( IsItemTypeAttached( ATTACHMENT_TRIPOD ) /*|| IsOven()*/ )
161 return true;
162 }
163 if ( item.Type() == ATTACHMENT_FRYING_PAN )
164 {
165 //if ( IsOven() )
166 return true;
167 }
168
169 // food on direct cooking slots
170 //if ( IsOven() )
171 //{
172 if ( item.IsKindOf( "Edible_Base" ) )
173 return true;
174 //}
175 //tripod
176 if ( item.Type() == ATTACHMENT_TRIPOD )
177 {
178 if ( GetHierarchyParent() == NULL )
179 return true;
180 }
181
182 //stones
183 if ( item.Type() == ATTACHMENT_STONES )
184 {
185 if ( GetHierarchyParent() /*|| IsBurning()*/ )
186 return false;
187
188 return true;
189 }
190
191 return true;
192 }
193
194 override bool CanReleaseAttachment( EntityAI attachment )
195 {
196 if (!super.CanReleaseAttachment(attachment))
197 {
198 return false;
199 }
200
201 ItemBase item = ItemBase.Cast(attachment);
202 //stones
203 if (item.Type() == ATTACHMENT_STONES)
204 {
205 if (IsBurning())
206 {
207 return false;
208 }
209
210 int stone_quantity = item.GetQuantity();
211 if (HasStoneCircle() && stone_quantity <= 8)
212 {
213 return false;
214 }
215
216 if (IsOven())
217 {
218 return false;
219 }
220 }
221
222 return true;
223 }
224
225 override void EEItemAttached(EntityAI item, string slot_name)
226 {
227 super.EEItemAttached(item, slot_name);
228
229 ItemBase item_base = ItemBase.Cast(item);
230
231 if (IsKindling(item_base) || IsFuel(item_base))
232 {
233 AddToFireConsumables(item_base);
234 }
235
236 //cookware
237 if (item_base.IsCookware())
238 SetCookingEquipment(item_base);
239
240 if (g_Game.IsServer() && !IsOven())
241 {
242 if (item_base.Type() == ATTACHMENT_COOKING_POT)
243 item_base.SetAnimationPhase(ANIMATION_COOKWARE_HANDLE, 0);
244 if (item.Type() == ATTACHMENT_CAULDRON)
245 item_base.SetAnimationPhase(ANIMATION_CAULDRON_HANDLE, 0);
246 }
247
248 // direct cooking/smoking slots
249 bool edible_base_attached = false;
250 switch (slot_name)
251 {
252 case "DirectCookingA":
253 m_DirectCookingSlots[0] = item_base;
254 edible_base_attached = true;
255 break;
256 case "DirectCookingB":
257 m_DirectCookingSlots[1] = item_base;
258 edible_base_attached = true;
259 break;
260 case "DirectCookingC":
261 m_DirectCookingSlots[2] = item_base;
262 edible_base_attached = true;
263 break;
264
265 case "SmokingA":
266 m_SmokingSlots[0] = item_base;
267 edible_base_attached = true;
268 break;
269 case "SmokingB":
270 m_SmokingSlots[1] = item_base;
271 edible_base_attached = true;
272 break;
273 case "SmokingC":
274 m_SmokingSlots[2] = item_base;
275 edible_base_attached = true;
276 break;
277 case "SmokingD":
278 m_SmokingSlots[3] = item_base;
279 edible_base_attached = true;
280 break;
281 }
282
283 //TODO
284 //add SetViewIndex when attaching various attachments
285
287 }
288
289 override void EEItemDetached(EntityAI item, string slot_name)
290 {
291 super.EEItemDetached(item, slot_name);
292
293 ItemBase item_base = ItemBase.Cast(item);
294
295 if (IsKindling(item_base) || IsFuel(item_base))
296 {
298 }
299
300 //cookware
301 if (item_base.IsCookware())
302 {
303 ClearCookingEquipment(item_base);
304 item_base.RemoveAudioVisualsOnClient();
305 }
306
307 if (item_base.IsLiquidContainer()) //boiling bottle effects stop
308 item_base.RemoveAudioVisualsOnClient();
309
310 if (g_Game.IsServer())
311 {
312 if (item_base.Type() == ATTACHMENT_COOKING_POT)
313 item_base.SetAnimationPhase(ANIMATION_COOKWARE_HANDLE, 1);
314 if (item_base.Type() == ATTACHMENT_CAULDRON)
315 item_base.SetAnimationPhase(ANIMATION_CAULDRON_HANDLE, 1);
316 }
317
318 // direct cooking/smoking slots
319 switch (slot_name)
320 {
321 case "DirectCookingA":
322 m_DirectCookingSlots[0] = null;
323 break;
324 case "DirectCookingB":
325 m_DirectCookingSlots[1] = null;
326 break;
327 case "DirectCookingC":
328 m_DirectCookingSlots[2] = null;
329 break;
330
331 case "SmokingA":
332 m_SmokingSlots[0] = null;
333 break;
334 case "SmokingB":
335 m_SmokingSlots[1] = null;
336 break;
337 case "SmokingC":
338 m_SmokingSlots[2] = null;
339 break;
340 case "SmokingD":
341 m_SmokingSlots[3] = null;
342 break;
343 }
344
345 //no attachments left, no cargo items & no ashes are present
348 }
349
350
351 override void SetCookingEquipment(ItemBase equipment)
352 {
353 super.SetCookingEquipment(equipment);
354
355 TripodBase stand = TripodBase.Cast(FindAttachmentBySlotName("CookingTripod"));
356 if (stand)
357 {
358 if (equipment)
359 stand.LockToParent();
360 else
361 stand.UnlockFromParent();
362 }
363 }
364
365 override void OnBeforeTryDelete()
366 {
367 super.OnBeforeTryDelete();
368
369 MiscGameplayFunctions.DropAllItemsInInventoryInBounds(this, m_HalfExtents);
370 }
371
372 override bool IsPrepareToDelete()
373 {
374 return GetInventory().AttachmentCount() == 0 && !IsBurning() && !HasAshes();
375 }
376
377 //CONDITIONS
378 //this into/outo parent.Cargo
379 override bool CanPutInCargo(EntityAI parent)
380 {
381 if (!super.CanPutInCargo(parent))
382 {
383 return false;
384 }
385
386 if (HasAshes() || IsBurning() || HasStones() || HasStoneCircle() || IsOven() || !IsCargoEmpty() || HasCookingStand())
387 {
388 return false;
389 }
390
391 return true;
392 }
393
394 override bool CanRemoveFromCargo( EntityAI parent )
395 {
396 return true;
397 }
398
399 //cargo item into/outo this.Cargo
400 override bool CanReceiveItemIntoCargo( EntityAI item )
401 {
402 if ( GetHierarchyParent() )
403 return false;
404
405 return super.CanReceiveItemIntoCargo( item );
406 }
407
408 override bool CanLoadItemIntoCargo( EntityAI item )
409 {
410 if (!super.CanLoadItemIntoCargo( item ))
411 return false;
412
413 if ( GetHierarchyParent() )
414 return false;
415
416 return true;
417 }
418
419 //hands
420 override bool CanPutIntoHands(EntityAI parent)
421 {
422 if (!super.CanPutIntoHands(parent))
423 {
424 return false;
425 }
426
427 if (HasAshes() || IsBurning() || HasStones() || HasStoneCircle() || IsOven() || !IsCargoEmpty() || HasCookingStand())
428 {
429 return false;
430 }
431
432 return true;
433 }
434
435 override bool CanDisplayAttachmentCategory( string category_name )
436 {
437 if ( !super.CanDisplayAttachmentCategory( category_name ) )
438 return false;
439
440 if ( IsOven() )
441 {
442 if ( category_name == "CookingEquipment" )
443 return false;
444 if ( ( category_name == "DirectCooking" ) || ( category_name == "Smoking" ) )
445 return true;
446 }
447 else
448 {
449 if ( category_name == "CookingEquipment" )
450 return true;
451 if ( ( category_name == "DirectCooking" ) || ( category_name == "Smoking" ) )
452 return false;
453 }
454 return true;
455 }
456
458 {
459 return false;
460 }
461
463 {
464 return 0.5;
465 }
466
467 //particles
468 override bool CanShowSmoke()
469 {
470 return !IsOven();
471 }
472
473
474 void DestroyClutterCutter( Object clutter_cutter )
475 {
476 g_Game.ObjectDelete( clutter_cutter );
477 }
478
479 override void RefreshPhysics()
480 {
481 super.RefreshPhysics();
482
483 //Oven
484 if ( IsOven() )
485 {
486 RemoveProxyPhysics( ANIMATION_OVEN );
487 AddProxyPhysics( ANIMATION_OVEN );
488 }
489 else
490 {
491 RemoveProxyPhysics( ANIMATION_OVEN );
492 }
493
494 //Tripod
496 {
497 RemoveProxyPhysics( ANIMATION_TRIPOD );
498 AddProxyPhysics( ANIMATION_TRIPOD );
499 }
500 else
501 {
502 RemoveProxyPhysics( ANIMATION_TRIPOD );
503 }
504 }
505
507 {
509 }
510
511 //on store save/load
512 override void OnStoreSave( ParamsWriteContext ctx )
513 {
514 super.OnStoreSave(ctx);
515
516 if ( g_Game.SaveVersion() >= 110 )
517 {
518 // save stone circle state
519 ctx.Write( m_HasStoneCircle );
520
521 // save stone oven state
522 ctx.Write( m_IsOven );
523 }
524 }
525
526 override bool OnStoreLoad( ParamsReadContext ctx, int version )
527 {
528 if ( !super.OnStoreLoad(ctx, version) )
529 return false;
530
531 if ( version >= 110 )
532 {
533 // read stone circle state
534 if ( !ctx.Read( m_HasStoneCircle ) )
535 {
536 m_HasStoneCircle = false;
537 return false;
538 }
539 // read stone oven state
540 if ( !ctx.Read( m_IsOven ) )
541 {
542 m_IsOven = false;
543 return false;
544 }
545 }
546 return true;
547 }
548
549 override void AfterStoreLoad()
550 {
551 super.AfterStoreLoad();
552
553 if ( IsBurning() )
554 {
555 if ( !m_ClutterCutter )
556 {
558 m_ClutterCutter.SetOrientation( GetOrientation() );
559 }
560 }
561 }
562
563 //================================================================
564 // IGNITION ACTION
565 //================================================================
566
567 // Item-to-item fire distribution
568 override bool HasFlammableMaterial()
569 {
570 return true;
571 }
572
573 override bool CanBeIgnitedBy(EntityAI igniter = NULL)
574 {
575 return HasAnyKindling() && !IsBurning() && !GetHierarchyParent();
576 }
577
578 override bool CanIgniteItem(EntityAI ignite_target = NULL)
579 {
580 return IsBurning();
581 }
582
583 override bool IsIgnited()
584 {
585 return IsBurning();
586 }
587
588 override void OnIgnitedTarget( EntityAI target_item )
589 {
590 }
591
592 override void OnIgnitedThis( EntityAI fire_source )
593 {
594 //remove grass
595 Object cc_object = g_Game.CreateObjectEx( OBJECT_CLUTTER_CUTTER , GetPosition(), ECE_PLACE_ON_SURFACE );
596 cc_object.SetOrientation ( GetOrientation() );
597 g_Game.GetCallQueue( CALL_CATEGORY_GAMEPLAY ).CallLater( DestroyClutterCutter, 200, false, cc_object );
598
599 //start fire
600 StartFire();
601
602 if ( fire_source )
603 {
604 Man player = fire_source.GetHierarchyRootPlayer();
605
606 if ( player )
607 {
608 EFireIgniteType ignate_type = EFireIgniteType.Unknow;
609
610 if ( fire_source.ClassName() == "Matchbox" )
611 {
612 ignate_type = EFireIgniteType.Matchbox;
613 }
614 else if ( fire_source.ClassName() == "Roadflare" )
615 {
616 ignate_type = EFireIgniteType.Roadflare;
617 }
618 else if ( fire_source.ClassName() == "HandDrillKit" )
619 {
620 ignate_type = EFireIgniteType.HandDrill;
621 }
622
623
624 SyncEvents.SendPlayerIgnatedFireplace( player, ignate_type );
625 }
626 }
627 }
628
629 override bool IsThisIgnitionSuccessful( EntityAI item_source = NULL )
630 {
631 SetIgniteFailure( false );
632 Param1<bool> failure;
633
634 //check kindling
635 if ( !HasAnyKindling() )
636 {
637 return false;
638 }
639
640 //check roof
641 if ( !IsOven() )
642 {
644 {
645 return false;
646 }
647 }
648
649 //check surface
650 if ( IsOnWaterSurface() )
651 {
652 return false;
653 }
654
655 //check wetness
656 if ( IsWet() )
657 {
658 SetIgniteFailure( true );
659
660 failure = new Param1<bool>( GetIgniteFailure() );
661 g_Game.RPCSingleParam( this, FirePlaceFailure.WET, failure, true );
662 return false;
663 }
664
665 // check if the fireplace isnt below a roof
666 // excluding this check whein oven stage
668 if ( !IsOven() && !IsRoofAbove() )
669 {
670 // if not, check if there is strong rain or wind
671 if ( IsRainingAbove() )
672 {
673 SetIgniteFailure( true );
674
675 failure = new Param1<bool>( GetIgniteFailure() );
676 g_Game.RPCSingleParam( this, FirePlaceFailure.WET, failure, true );
677 return false;
678 }
679
680 if ( IsWindy() )
681 {
682 SetIgniteFailure( true );
683
684 failure = new Param1<bool>( GetIgniteFailure() );
685 g_Game.RPCSingleParam( this, FirePlaceFailure.WIND, failure, true );
686 return false;
687 }
688 }
689
690 return true;
691 }
692
693 //================================================================
694 // FIREPLACE ENTITY
695 //================================================================
696 static Fireplace IgniteEntityAsFireplace( notnull EntityAI entity, notnull EntityAI fire_source )
697 {
698 //get player
699 PlayerBase player = PlayerBase.Cast( fire_source.GetHierarchyRootPlayer() );
700
701 //create fireplace
702 Fireplace fireplace = Fireplace.Cast( g_Game.CreateObjectEx( "Fireplace" , entity.GetPosition(), ECE_PLACE_ON_SURFACE ) );
703
704 //attach
705 if ( !g_Game.IsMultiplayer() ) //clear inventory reservation (single player)
706 {
708 entity.GetInventory().GetCurrentInventoryLocation( loc );
709 player.GetInventory().ClearInventoryReservationEx( entity, loc );
710 }
711
712 if ( g_Game.IsServer() && g_Game.IsMultiplayer() )
713 {
714 player.ServerTakeEntityToTargetAttachment( fireplace, entity ); // multiplayer server side
715 }
716 else
717 {
718 player.LocalTakeEntityToTargetAttachment( fireplace, entity ); // single player or multiplayer client side
719 }
720
721 //start fire
722 fireplace.StartFire();
723 fireplace.OnIgnitedThis(fire_source);
724
725 return fireplace;
726 }
727
728 static bool CanIgniteEntityAsFireplace(notnull EntityAI entity)
729 {
730 //check surface
731 if (FireplaceBase.IsEntityOnWaterSurface(entity))
732 {
733 return false;
734 }
735
736 entity.CheckForRoofLimited(); //TODO: limit more severely? Should update at least once during UATimeSpent.FIREPLACE_IGNITE
737 if (!entity.IsRoofAbove())
738 return !FireplaceBase.IsRainingAboveEntity(entity);
739
740 //check ceiling (enough space for smoke)
741 if (IsEntityOnInteriorSurface(entity) && MiscGameplayFunctions.IsUnderRoof(entity, FireplaceBase.MIN_CEILING_HEIGHT))
742 {
743 return false;
744 }
745
746 return true;
747 }
748
749 //================================================================
750 // ADVANCED PLACEMENT
751 //================================================================
752
767}
ActionBuildOvenCB ActionContinuousBaseCB ActionBuildOven()
Определения ActionBuildOven.c:11
ActionBuildStoneCircleCB ActionContinuousBaseCB ActionBuildStoneCircle()
Определения ActionBuildStoneCircle.c:11
ActionDismantleOvenCB ActionContinuousBaseCB ActionDismantleOven()
Определения ActionDismantleOven.c:11
ActionDismantleStoneCircleCB ActionContinuousBaseCB ActionDismantleStoneCircle()
Определения ActionDismantleStoneCircle.c:11
ActionPlaceObjectCB ActiondeployObjectCB ActionPlaceObject()
Определения ActionPlaceObject.c:11
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
vector GetOrientation()
Определения AreaDamageManager.c:306
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:38
Container_Base m_HalfExtents
DayZGame g_Game
Определения DayZGame.c:4074
vector position
Определения DustKickupEffects.c:20
EFireIgniteType
Определения EFireIgniteType.c:2
void RefreshFireplaceVisuals()
Определения FireplaceBase.c:681
void RemoveFromFireConsumables(FireConsumable fire_consumable)
Определения FireplaceBase.c:1427
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:222
static bool IsEntityOnInteriorSurface(notnull EntityAI entity_ai)
Определения FireplaceBase.c:2477
bool HasAnyKindling()
Определения FireplaceBase.c:2384
override void CheckForDestroy()
Определения FireplaceBase.c:668
const string ANIMATION_OVEN
Определения FireplaceBase.c:173
Object m_ClutterCutter
Определения FireplaceBase.c:208
ATTACHMENT_FRYING_PAN
Определения FireplaceBase.c:203
ATTACHMENT_CAULDRON
Определения FireplaceBase.c:204
bool IsCeilingHighEnoughForSmoke()
Определения FireplaceBase.c:2427
void AddToFireConsumables(ItemBase item)
Определения FireplaceBase.c:1400
int PARTICLE_STEAM_END
Определения FireplaceBase.c:116
bool m_HasStoneCircle
Определения FireplaceBase.c:27
bool HasCookingStand()
Определения FireplaceBase.c:2501
int PARTICLE_NORMAL_FIRE
Определения FireplaceBase.c:110
bool IsOnWaterSurface()
Определения FireplaceBase.c:2471
const string OBJECT_CLUTTER_CUTTER
Определения FireplaceBase.c:207
const string ANIMATION_CAULDRON_HANDLE
Определения FireplaceBase.c:176
bool HasAshes()
Определения FireplaceBase.c:1651
bool IsRainingAbove()
Определения FireplaceBase.c:2438
const string ANIMATION_TRIPOD
Определения FireplaceBase.c:172
static bool IsWindy()
Определения FireplaceBase.c:2390
bool HasStones()
Определения FireplaceBase.c:1678
int PARTICLE_FIRE_START
Определения FireplaceBase.c:107
bool IsCargoEmpty()
Определения FireplaceBase.c:2496
bool IsFuel(ItemBase item)
Returns if item attached to fireplace is fuel.
Определения FireplaceBase.c:1591
bool GetIgniteFailure()
Определения FireplaceBase.c:2399
bool IsOnInteriorSurface()
Определения FireplaceBase.c:2484
const float PARAM_SMALL_FIRE_TEMPERATURE
Определения FireplaceBase.c:41
int PARTICLE_NORMAL_SMOKE
Определения FireplaceBase.c:113
ATTACHMENT_STONES
Определения FireplaceBase.c:201
void DestroyAreaDamage()
Определения FireplaceBase.c:2363
ATTACHMENT_COOKING_POT
Определения FireplaceBase.c:202
bool IsBurning()
Определения FireplaceBase.c:1639
bool IsWet()
Определения FireplaceBase.c:2415
void StartFire(bool force_start=false)
Определения FireplaceBase.c:1760
ItemBase m_DirectCookingSlots[DIRECT_COOKING_SLOT_COUNT]
Определения FireplaceBase.c:102
int PARTICLE_FIRE_END
Определения FireplaceBase.c:114
void SetIgniteFailure(bool failure)
Определения FireplaceBase.c:2404
bool m_IsOven
Определения FireplaceBase.c:26
ATTACHMENT_TRIPOD
Определения FireplaceBase.c:199
bool HasStoneCircle()
Определения FireplaceBase.c:1673
ref UniversalTemperatureSourceLambdaFireplace m_UTSLFireplace
Определения FireplaceBase.c:223
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:221
int PARTICLE_SMALL_SMOKE
Определения FireplaceBase.c:112
bool IsOven()
Определения FireplaceBase.c:1669
const string ANIMATION_COOKWARE_HANDLE
Определения FireplaceBase.c:175
void ClearCookingEquipment()
DEPRECATED.
Определения FireplaceBase.c:622
FireConsumable GetFireConsumableByItem(ItemBase item)
Определения FireplaceBase.c:1438
ItemBase m_SmokingSlots[SMOKING_SLOT_COUNT]
Определения FireplaceBase.c:103
bool IsKindling(ItemBase item)
Returns if item attached to fireplace is kindling.
Определения FireplaceBase.c:1573
bool m_ThawnSurfaceUnderSupport
size of wetness increment (per FP heating tick) added to overall FP wetness when ignited on wet surfa...
Определения FireplaceBase.c:229
bool IsItemTypeAttached(typename item_type)
Определения FireplaceBase.c:1609
int PARTICLE_SMALL_FIRE
Определения FireplaceBase.c:109
const float PARAM_OUTDOOR_FIRE_TEMPERATURE
maximum fireplace temperature of a normal fire (degree Celsius)
Определения FireplaceBase.c:43
override void CheckForRoofLimited(float timeTresholdMS=3000)
Roof check for entity, limited by time (anti-spam solution)
Определения ItemBase.c:4060
ThrowEntityFlags
Определения MiscGameplayFunctions.c:208
vector Position
Position of the contact point (world space)
Определения Contact.c:29
Определения Contact.c:10
override void OnBeforeTryDelete()
Определения Fireplace.c:365
void ContactEvent(IEntity other, vector position)
Определения Fireplace.c:60
void InitializeTemperatureSources()
Определения Fireplace.c:26
override void SetActions()
Определения Fireplace.c:753
override bool IsBaseFireplace()
Определения Fireplace.c:35
static Fireplace IgniteEntityAsFireplace(notnull EntityAI entity, notnull EntityAI fire_source)
Определения Fireplace.c:696
override void EOnTouch(IEntity other, int extra)
Определения Fireplace.c:50
override void EOnContact(IEntity other, Contact extra)
Определения Fireplace.c:55
override void RefreshFireplacePhysics()
Определения Fireplace.c:506
override bool CanIgniteItem(EntityAI ignite_target=NULL)
Определения Fireplace.c:578
override void EEItemAttached(EntityAI item, string slot_name)
Определения Fireplace.c:225
override bool IsPrepareToDelete()
Определения Fireplace.c:372
override void SetCookingEquipment(ItemBase equipment)
Определения Fireplace.c:351
override bool CanObstruct()
Определения Fireplace.c:40
override void RefreshPhysics()
Определения Fireplace.c:479
override bool CanPutIntoHands(EntityAI parent)
Определения Fireplace.c:420
override bool CanShowSmoke()
Определения Fireplace.c:468
void DestroyClutterCutter(Object clutter_cutter)
Определения Fireplace.c:474
override bool CanBeIgnitedBy(EntityAI igniter=NULL)
Определения Fireplace.c:573
bool m_ContactEventProcessing
Определения Fireplace.c:3
override bool CanDisplayAttachmentSlot(int slot_id)
Определения Fireplace.c:138
void EOnPostSimulate(IEntity other, float timeSlice)
Определения Fireplace.c:66
override bool HasFlammableMaterial()
Определения Fireplace.c:568
override bool CanPutInCargo(EntityAI parent)
Определения Fireplace.c:379
override void OnIgnitedTarget(EntityAI target_item)
Определения Fireplace.c:588
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
Определения Fireplace.c:90
override bool CanLoadAttachment(EntityAI attachment)
Определения Fireplace.c:150
override bool IsIgnited()
Определения Fireplace.c:583
void Fireplace()
Определения Fireplace.c:6
override void OnIgnitedThis(EntityAI fire_source)
Определения Fireplace.c:592
override bool CanAssignAttachmentsToQuickbar()
Определения Fireplace.c:457
static bool CanIgniteEntityAsFireplace(notnull EntityAI entity)
Определения Fireplace.c:728
bool m_ContactDeletionProcessing
Определения Fireplace.c:4
override bool CanReceiveItemIntoCargo(EntityAI item)
Определения Fireplace.c:400
override bool CanProxyObstruct()
Определения Fireplace.c:45
override void AfterStoreLoad()
Определения Fireplace.c:549
override float HeightStartCheckOverride()
Определения Fireplace.c:462
override bool IsThisIgnitionSuccessful(EntityAI item_source=NULL)
Определения Fireplace.c:629
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения Fireplace.c:526
override void EEItemDetached(EntityAI item, string slot_name)
Определения Fireplace.c:289
override bool CanRemoveFromCargo(EntityAI parent)
Определения Fireplace.c:394
override void OnStoreSave(ParamsWriteContext ctx)
Определения Fireplace.c:512
override bool CanDisplayAttachmentCategory(string category_name)
Определения Fireplace.c:435
override bool CanReleaseAttachment(EntityAI attachment)
Определения Fireplace.c:194
override bool CanLoadItemIntoCargo(EntityAI item)
Определения Fireplace.c:408
Определения EnEntity.c:165
InventoryLocation.
Определения InventoryLocation.c:30
static proto native owned string GetSlotName(int id)
converts slot_id to string
provides access to slot configuration
Определения InventorySlots.c:6
Определения ObjectTyped.c:2
static const int CAMP_SMALL_SMOKE
Определения ParticleList.c:31
static const int CAMP_FIRE_START
Определения ParticleList.c:28
static const int CAMP_NORMAL_SMOKE
Определения ParticleList.c:32
static const int CAMP_STEAM_2END
Определения ParticleList.c:34
static const int CAMP_SMALL_FIRE
Определения ParticleList.c:29
static const int CAMP_FIRE_END
Определения ParticleList.c:33
static const int CAMP_NORMAL_FIRE
Определения ParticleList.c:30
Определения ParticleList.c:12
Определения PlayerBaseClient.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
static void SendPlayerIgnatedFireplace(Man player, EFireIgniteType ignite_type)
Определения SyncEvents.c:83
Определения SyncEvents.c:2
Определения CookingStand.c:2
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
Определения EnConvert.c:119
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
EntityEvent
Entity events for event-mask, or throwing event from code.
Определения EnEntity.c:45
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
Определения 3_Game/DayZ/constants.c:856
proto native bool dBodyIsActive(notnull IEntity ent)
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473
const int CALL_CATEGORY_GAMEPLAY
Определения 3_Game/DayZ/tools/tools.c:10
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8