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