68 super.EOnPostSimulate(other,timeSlice);
72 MiscGameplayFunctions.ThrowAllItemsInInventory(
this, 0);
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 g_Game.ObjectDelete( clutter_cutter );
470 super.RefreshPhysics();
503 super.OnStoreSave(ctx);
505 if (
g_Game.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" )
621 Param1<bool> failure;
650 g_Game.RPCSingleParam(
this, FirePlaceFailure.WET, failure,
true );
657 if ( !
IsOven() && !IsRoofAbove() )
665 g_Game.RPCSingleParam(
this, FirePlaceFailure.WET, failure,
true );
674 g_Game.RPCSingleParam(
this, FirePlaceFailure.WIND, failure,
true );
694 if ( !
g_Game.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())
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 bool CanDisplayAttachmentCategory(string category_name)
override float HeightStartCheckOverride()
override bool IsBaseFireplace()
override bool CanProxyObstruct()
override void RefreshFireplacePhysics()
override void EOnContact(IEntity other, Contact extra)
override void SetCookingEquipment(ItemBase equipment)
override void OnStoreSave(ParamsWriteContext ctx)
override bool CanReceiveItemIntoCargo(EntityAI item)
bool m_ContactEventProcessing
override void EOnTouch(IEntity other, int extra)
override bool CanLoadItemIntoCargo(EntityAI item)
override bool CanBeIgnitedBy(EntityAI igniter=NULL)
override void RefreshPhysics()
override bool CanPutInCargo(EntityAI parent)
static Fireplace IgniteEntityAsFireplace(notnull EntityAI entity, notnull EntityAI fire_source)
override bool IsIgnited()
bool m_ContactDeletionProcessing
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayAttachmentSlot(int slot_id)
override void EEItemDetached(EntityAI item, string slot_name)
override void OnIgnitedThis(EntityAI fire_source)
override bool CanObstruct()
override bool CanIgniteItem(EntityAI ignite_target=NULL)
void EOnPostSimulate(IEntity other, float timeSlice)
override void AfterStoreLoad()
override bool IsThisIgnitionSuccessful(EntityAI item_source=NULL)
override void OnBeforeTryDelete()
override bool CanPutIntoHands(EntityAI parent)
override bool CanAssignAttachmentsToQuickbar()
override bool CanRemoveFromCargo(EntityAI parent)
override bool OnStoreLoad(ParamsReadContext ctx, int version)
override bool HasFlammableMaterial()
override void EEItemAttached(EntityAI item, string slot_name)
override bool IsPrepareToDelete()
void DestroyClutterCutter(Object clutter_cutter)
void ContactEvent(IEntity other, vector position)
override bool CanShowSmoke()
override void OnIgnitedTarget(EntityAI target_item)
static bool CanIgniteEntityAsFireplace(notnull EntityAI entity)
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
override bool CanLoadAttachment(EntityAI attachment)
override void SetActions()
void InitializeTemperatureSources()
Internal ancestor of all Entity implementations.
provides access to slot configuration
static proto native owned string GetSlotName(int id)
static const int CAMP_FIRE_START
static const int CAMP_FIRE_END
static const int CAMP_NORMAL_FIRE
static const int CAMP_NORMAL_SMOKE
static const int CAMP_SMALL_FIRE
static const int CAMP_STEAM_2END
static const int CAMP_SMALL_SMOKE
proto bool Write(void value_out)
proto bool Read(void value_in)
static void SendPlayerIgnatedFireplace(Man player, EFireIgniteType ignite_type)
original Timer deletes m_params which is unwanted
Container_Base m_HalfExtents
void RefreshFireplaceVisuals()
void RemoveFromFireConsumables(FireConsumable fire_consumable)
ref UniversalTemperatureSourceSettings m_UTSSettings
static bool IsEntityOnInteriorSurface(notnull EntityAI entity_ai)
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)
Serializer ParamsReadContext
Serializer ParamsWriteContext
EntityEvent
Entity events for event-mask, or throwing event from code.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
proto native bool dBodyIsActive(notnull IEntity ent)
vector GetPosition()
Get the world position of the Effect.
override void CheckForRoofLimited(float timeTresholdMS=3000)
Roof check for entity, limited by time (anti-spam solution).