3 bool m_ContactEventProcessing =
false;
4 protected bool m_ContactDeletionProcessing =
false;
62 if (
GetGame().IsServer() && !m_ContactEventProcessing &&
dBodyIsActive(
this) && !IsSetForDeletion())
63 m_ContactEventProcessing =
true;
68 super.EOnPostSimulate(other,timeSlice);
70 if (m_ContactEventProcessing && !m_ContactDeletionProcessing)
72 MiscGameplayFunctions.ThrowAllItemsInInventory(
this, 0);
74 m_ContactDeletionProcessing =
true;
81 if ( !super.CanReceiveAttachment(attachment, slotId) )
89 if ( FindAttachmentBySlotName(
"CookingTripod" ) ||
IsOven() )
101 if ( item.IsKindOf(
"Edible_Base" ) )
111 if (!
IsOven() && !GetHierarchyParent())
119 if ( !GetHierarchyParent() && !
IsBurning() )
130 if ( super.CanDisplayAttachmentSlot(slot_id) )
132 if ( slot_name !=
"CookingEquipment" || FindAttachmentBySlotName(
"CookingTripod" ) )
141 if ( !super.CanLoadAttachment(attachment) )
161 if ( item.IsKindOf(
"Edible_Base" ) )
167 if ( GetHierarchyParent() == NULL )
174 if ( GetHierarchyParent() )
185 if (!super.CanReleaseAttachment(attachment))
199 int stone_quantity = item.GetQuantity();
216 super.EEItemAttached(item, slot_name);
226 if (item_base.IsCookware())
238 bool edible_base_attached =
false;
241 case "DirectCookingA":
243 edible_base_attached =
true;
245 case "DirectCookingB":
247 edible_base_attached =
true;
249 case "DirectCookingC":
251 edible_base_attached =
true;
256 edible_base_attached =
true;
260 edible_base_attached =
true;
264 edible_base_attached =
true;
268 edible_base_attached =
true;
280 super.EEItemDetached(item, slot_name);
290 if (item_base.IsCookware())
293 item_base.RemoveAudioVisualsOnClient();
296 if (item_base.IsLiquidContainer())
297 item_base.RemoveAudioVisualsOnClient();
310 case "DirectCookingA":
313 case "DirectCookingB":
316 case "DirectCookingC":
342 super.SetCookingEquipment(equipment);
348 stand.LockToParent();
350 stand.UnlockFromParent();
356 super.OnBeforeTryDelete();
358 MiscGameplayFunctions.DropAllItemsInInventoryInBounds(
this,
m_HalfExtents);
370 if (!super.CanPutInCargo(parent))
391 if ( GetHierarchyParent() )
394 return super.CanReceiveItemIntoCargo( item );
399 if (!super.CanLoadItemIntoCargo( item ))
402 if ( GetHierarchyParent() )
411 if (!super.CanPutIntoHands(parent))
426 if ( !super.CanDisplayAttachmentCategory( category_name ) )
431 if ( category_name ==
"CookingEquipment" )
433 if ( ( category_name ==
"DirectCooking" ) || ( category_name ==
"Smoking" ) )
438 if ( category_name ==
"CookingEquipment" )
440 if ( ( category_name ==
"DirectCooking" ) || ( category_name ==
"Smoking" ) )
465 GetGame().ObjectDelete( clutter_cutter );
470 super.RefreshPhysics();
503 super.OnStoreSave(ctx);
505 if (
GetGame().SaveVersion() >= 110 )
517 if ( !super.OnStoreLoad(ctx, version) )
520 if ( version >= 110 )
540 super.AfterStoreLoad();
593 Man player = fire_source.GetHierarchyRootPlayer();
599 if ( fire_source.ClassName() ==
"Matchbox" )
603 else if ( fire_source.ClassName() ==
"Roadflare" )
607 else if ( fire_source.ClassName() ==
"HandDrillKit" )
613 SyncEvents.SendPlayerIgnatedFireplace( player, ignate_type );
621 Param1<bool> failure;
650 GetGame().RPCSingleParam(
this, FirePlaceFailure.WET, failure,
true );
657 if ( !
IsOven() && !IsRoofAbove() )
665 GetGame().RPCSingleParam(
this, FirePlaceFailure.WET, failure,
true );
674 GetGame().RPCSingleParam(
this, FirePlaceFailure.WIND, failure,
true );
694 if ( !
GetGame().IsMultiplayer() )
697 entity.GetInventory().GetCurrentInventoryLocation( loc );
698 player.GetInventory().ClearInventoryReservationEx( entity, loc );
703 player.ServerTakeEntityToTargetAttachment( fireplace, entity );
707 player.LocalTakeEntityToTargetAttachment( fireplace, entity );
711 fireplace.StartFire();
712 fireplace.OnIgnitedThis(fire_source);
725 entity.CheckForRoofLimited();
726 if (!entity.IsRoofAbove())
730 if (IsEntityOnInteriorSurface(entity) && MiscGameplayFunctions.IsUnderRoof(entity,
FireplaceBase.MIN_CEILING_HEIGHT))
ActionBuildOvenCB ActionContinuousBaseCB ActionBuildOven()
ActionBuildStoneCircleCB ActionContinuousBaseCB ActionBuildStoneCircle()
ActionDismantleOvenCB ActionContinuousBaseCB ActionDismantleOven()
ActionDismantleStoneCircleCB ActionContinuousBaseCB ActionDismantleStoneCircle()
ActionPlaceObjectCB ActiondeployObjectCB ActionPlaceObject()
void AddAction(typename actionName)
const int ECE_PLACE_ON_SURFACE
override void OnBeforeTryDelete()
void ContactEvent(IEntity other, vector position)
void InitializeTemperatureSources()
override void SetActions()
override bool IsBaseFireplace()
static Fireplace IgniteEntityAsFireplace(notnull EntityAI entity, notnull EntityAI fire_source)
override void EOnTouch(IEntity other, int extra)
override void EOnContact(IEntity other, Contact extra)
override void RefreshFireplacePhysics()
override bool CanIgniteItem(EntityAI ignite_target=NULL)
override void EEItemAttached(EntityAI item, string slot_name)
override bool IsPrepareToDelete()
override void SetCookingEquipment(ItemBase equipment)
override bool CanObstruct()
override void RefreshPhysics()
override bool CanPutIntoHands(EntityAI parent)
override bool CanShowSmoke()
void DestroyClutterCutter(Object clutter_cutter)
override bool CanBeIgnitedBy(EntityAI igniter=NULL)
override bool CanDisplayAttachmentSlot(int slot_id)
void EOnPostSimulate(IEntity other, float timeSlice)
override bool HasFlammableMaterial()
override bool CanPutInCargo(EntityAI parent)
override void OnIgnitedTarget(EntityAI target_item)
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
override bool CanLoadAttachment(EntityAI attachment)
override bool IsIgnited()
override void OnIgnitedThis(EntityAI fire_source)
override bool CanAssignAttachmentsToQuickbar()
static bool CanIgniteEntityAsFireplace(notnull EntityAI entity)
override bool CanReceiveItemIntoCargo(EntityAI item)
override bool CanProxyObstruct()
override void AfterStoreLoad()
override float HeightStartCheckOverride()
override bool IsThisIgnitionSuccessful(EntityAI item_source=NULL)
override bool OnStoreLoad(ParamsReadContext ctx, int version)
override void EEItemDetached(EntityAI item, string slot_name)
override bool CanRemoveFromCargo(EntityAI parent)
override void OnStoreSave(ParamsWriteContext ctx)
override bool CanDisplayAttachmentCategory(string category_name)
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanLoadItemIntoCargo(EntityAI item)
provides access to slot configuration
Serialization general interface. Serializer API works with:
original Timer deletes m_params which is unwanted
Container_Base m_HalfExtents
void RefreshFireplaceVisuals()
void RemoveFromFireConsumables(FireConsumable fire_consumable)
ref UniversalTemperatureSourceSettings m_UTSSettings
override void CheckForDestroy()
const string ANIMATION_OVEN
bool IsCeilingHighEnoughForSmoke()
void AddToFireConsumables(ItemBase item)
const string OBJECT_CLUTTER_CUTTER
const string ANIMATION_CAULDRON_HANDLE
const string ANIMATION_TRIPOD
bool IsFuel(ItemBase item)
Returns if item attached to fireplace is fuel.
bool IsOnInteriorSurface()
const float PARAM_SMALL_FIRE_TEMPERATURE
int PARTICLE_NORMAL_SMOKE
void StartFire(bool force_start=false)
ItemBase m_DirectCookingSlots[DIRECT_COOKING_SLOT_COUNT]
void SetIgniteFailure(bool failure)
ref UniversalTemperatureSourceLambdaFireplace m_UTSLFireplace
ref UniversalTemperatureSource m_UTSource
const string ANIMATION_COOKWARE_HANDLE
void ClearCookingEquipment()
DEPRECATED.
FireConsumable GetFireConsumableByItem(ItemBase item)
ItemBase m_SmokingSlots[SMOKING_SLOT_COUNT]
bool IsKindling(ItemBase item)
Returns if item attached to fireplace is kindling.
bool m_ThawnSurfaceUnderSupport
size of wetness increment (per FP heating tick) added to overall FP wetness when ignited on wet surfa...
bool IsItemTypeAttached(typename item_type)
const float PARAM_OUTDOOR_FIRE_TEMPERATURE
maximum fireplace temperature of a normal fire (degree Celsius)
proto native CGame GetGame()
EntityEvent
Entity events for event-mask, or throwing event from code.
proto native bool dBodyIsActive(notnull IEntity ent)
class JsonUndergroundAreaTriggerData GetPosition
override void CheckForRoofLimited(float timeTresholdMS=3000)
Roof check for entity, limited by time (anti-spam solution)