1class PortableGasStove
extends ItemBase
5 protected const string FLAME_BUTANE_ON =
"dz\\gear\\cooking\\data\\flame_butane_ca.paa";
6 protected const string FLAME_BUTANE_OFF =
"";
12 protected const float PARAM_COOKING_TIME_INC_COEF = 0.5;
13 protected const float PARAM_COOKING_TARGET_TEMP = 400;
15 private float m_TimeFactor;
21 const string SOUND_BURNING =
"portablegasstove_burn_SoundSet";
22 const string SOUND_TURN_ON =
"portablegasstove_turn_on_SoundSet";
23 const string SOUND_TURN_OFF =
"portablegasstove_turn_off_SoundSet";
31 protected ref UniversalTemperatureSourceLambdaConstant
m_UTSLConst;
79 m_UTSLConst =
new UniversalTemperatureSourceLambdaConstant();
87 super.EEItemAttached(item, slot_name);
90 if (item.IsCookware())
99 super.EEItemDetached(item, slot_name);
102 if (item.IsCookware())
150 m_Light.AttachOnMemoryPoint(
this,
"light");
178 override void OnWork(
float consumed_energy)
187 if (item && item.CanHaveTemperature())
191 float cook_equip_temp = item.GetTemperature();
196 float diff = target - cook_equip_temp;
197 float heatPermCoef = item.GetHeatPermeabilityCoef();
201 item.SetTemperatureEx(
new TemperatureDataInterpolated(target,
ETemperatureAccessTypes.ACCESS_FIREPLACE,GetCompEM().GetUpdateInterval(),
GameConstants.TEMP_COEF_GAS_STOVE,heatPermCoef));
203 m_TimeFactor = consumed_energy;
230 SetObjectTexture(0, FLAME_BUTANE_OFF);
231 SetObjectTexture(1, FLAME_BUTANE_OFF);
239 SetObjectTexture(0, FLAME_BUTANE_ON);
240 SetObjectTexture(1, FLAME_BUTANE_OFF);
245 SetObjectTexture(0, FLAME_BUTANE_OFF);
246 SetObjectTexture(1, FLAME_BUTANE_ON);
257 if (
Class.CastTo(cookEquipment,
GetCookingEquipment()) && (cookEquipment.IsCookware() || cookEquipment.IsLiquidContainer()))
258 cookEquipment.RemoveAudioVisualsOnClient();
266 PlaySoundSetLoop(m_SoundBurningLoop, SOUND_BURNING, 0.1, 0.3);
271 StopSoundSet(m_SoundBurningLoop);
276 PlaySoundSet(m_SoundTurnOn, SOUND_TURN_ON, 0.1, 0.1);
281 PlaySoundSet(m_SoundTurnOff, SOUND_TURN_OFF, 0.1, 0.1);
289 return GetCompEM().IsWorking();
295 if (!super.CanPutInCargo(parent))
298 if (GetCompEM().IsSwitchedOn())
305 for (
int i = 0; i < GetInventory().GetAttachmentSlotsCount(); i++)
307 slotId = GetInventory().GetAttachmentSlotId(i);
308 if (parent.GetInventory().HasInventorySlot(slotId))
331 if (ent.GetInventory().GetCurrentInventoryLocation(loc) && loc.IsValid())
335 parent = ent.GetHierarchyParent();
336 if (parent && parent.GetInventory().HasInventorySlot(slotId))
344 ent = ent.GetHierarchyParent();
347 return super.CanReceiveAttachment(attachment, slotId);
353 for (
int i = 0; i < attachment.GetInventory().GetSlotIdCount(); i++)
355 slotId = attachment.GetInventory().GetSlotId(i);
356 if (GetInventory().HasAttachmentSlot(slotId))
363 if (ent.GetInventory().GetCurrentInventoryLocation(loc) && loc.IsValid())
367 parent = ent.GetHierarchyParent();
368 if (parent.GetInventory().HasInventorySlot(slotId))
376 ent = ent.GetHierarchyParent();
381 return super.CanLoadAttachment(attachment);
387 if (!super.CanPutIntoHands(parent))
392 return !GetCompEM().IsSwitchedOn();
401 return GetCompEM().IsWorking();
406 return GetCompEM().IsWorking();
422 if (
Class.CastTo(entity,
this) )
424 GetInventory().CreateInInventory(
"LargeGasCanister");
425 GetInventory().CreateInInventory(
"Pot");
427 SpawnEntityOnGroundPos(
"WaterBottle", entity.GetPosition() +
Vector(0.2, 0, 0));
ActionLightItemOnFireCB ActionContinuousBaseCB ActionLightItemOnFire()
void AddAction(typename actionName)
Super root of all classes in Enforce script.
Wrapper class for managing sound through SEffectManager.
override void EEItemAttached(EntityAI item, string slot_name)
override void OnSwitchOn()
override void OnWork(float consumed_energy)
void RefreshFlameVisual(bool working=false, bool hasAttachment=false)
EffectSound m_SoundTurnOn
EffectSound m_SoundTurnOff
override void OnWorkStart()
ref UniversalTemperatureSource m_UTSource
DEPRECATED Attached spark plug item.
const float PARAM_COOKING_TARGET_TEMP
override bool CanPutIntoHands(EntityAI parent)
override void SetActions()
void RefreshFlameVisual(bool working=false)
ref UniversalTemperatureSourceSettings m_UTSSettings
override bool CanLoadAttachment(EntityAI attachment)
void RemoveCookingAudioVisuals()
void SetCookingEquipment(ItemBase equipment)
EffectSound m_SoundBurningLoop
override bool IsIgnited()
override void OnWorkStop()
override bool IsSelfAdjustingTemperature()
void ClearCookingEquipment(ItemBase pItem)
ref UniversalTemperatureSourceLambdaConstant m_UTSLConst
override void EEItemDetached(EntityAI item, string slot_name)
override bool CanRemoveFromCargo(EntityAI parent)
override void OnSwitchOff()
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
override bool CanPutInCargo(EntityAI parent)
override void OnDebugSpawn()
override bool CanIgniteItem(EntityAI ignite_target=NULL)
ItemBase GetCookingEquipment()
override bool GetCookingTargetTemperature(out float temperature)
original Timer deletes m_params which is unwanted
ref UniversalTemperatureSourceSettings m_UTSSettings
ItemBase GetCookingEquipment()
ref Cooking m_CookingProcess
determines how fast will the fuel item burn before spending (lower is better)
ref UniversalTemperatureSource m_UTSource
const float PARAM_COOKING_EQUIP_MAX_TEMP
ItemBase m_CookingEquipment
void ClearCookingEquipment()
DEPRECATED.
const float PARAM_COOKING_EQUIP_TEMP_INCREASE
maximum temperature of attached cooking equipment (degree Celsius)
const float PARAM_COOKING_TEMP_THRESHOLD
cooking
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
InventoryLocationType
types of Inventory Location
class Land_Buoy extends House m_Light