123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- class Blowtorch extends ItemBase
- {
- const string TEXTURE_FLAME = "dz\\gear\\cooking\\data\\flame_butane_ca.paa";
- const string ANIM_PHASE_FLAME = "FlameHide";
- const string SOUND_BURNING = "Blowtorch_Loop_SoundSet";
-
- protected BlowtorchLight m_Light;
-
- protected EffectSound m_SoundBurningLoop;
- override void OnWorkStart()
- {
- super.OnWorkStart();
- #ifndef SERVER
- m_Light = BlowtorchLight.Cast(ScriptedLightBase.CreateLight(BlowtorchLight, "0 0 0"));
- m_Light.AttachOnMemoryPoint(this, "light");
- #endif
- RefreshFlameVisual(true);
- SoundBurningStart();
- }
-
- override void OnWorkStop()
- {
- #ifndef SERVER
- if (m_Light)
- {
- m_Light.FadeOut();
- }
- #endif
-
- RefreshFlameVisual(false);
- SoundBurningStop();
- }
-
- protected void RefreshFlameVisual(bool working = false)
- {
- if (working)
- {
- SetObjectTexture(0, TEXTURE_FLAME);
- SetAnimationPhase(ANIM_PHASE_FLAME, 0.0);
- }
- else
- {
- SetObjectTexture(0, "");
- SetAnimationPhase(ANIM_PHASE_FLAME, 1.0);
- }
- }
-
- protected void SoundBurningStart()
- {
- PlaySoundSetLoop(m_SoundBurningLoop, SOUND_BURNING, 0.1, 0.0);
- }
-
- protected void SoundBurningStop()
- {
- StopSoundSet(m_SoundBurningLoop);
- }
-
- override bool CanPutInCargo(EntityAI parent)
- {
- if (!super.CanPutInCargo(parent))
- {
- return false;
- }
- return !GetCompEM().IsSwitchedOn();
- }
-
- override bool CanRemoveFromCargo(EntityAI parent)
- {
- return true;
- }
-
- override bool IsIgnited()
- {
- return GetCompEM().IsWorking();
- }
-
- override void OnIgnitedTarget(EntityAI target_item)
- {
- if (GetGame().IsServer())
- {
- if (GetGasCanister())
- {
- ComponentEnergyManager canisterEM = GetGasCanister().GetCompEM();
- if (canisterEM)
- canisterEM.AddEnergy(-1 * (GetCompEM().GetEnergyUsage() * UATimeSpent.FIREPLACE_IGNITE));
- }
- }
- }
-
- override bool CanIgniteItem(EntityAI ignite_target = NULL)
- {
- return ignite_target.CanBeIgnitedBy(this);
- }
- override void SetActions()
- {
- super.SetActions();
- AddAction(ActionLightItemOnFireWithBlowtorch);
- AddAction(ActionRepairCarEngineWithBlowtorch);
- AddAction(ActionRepairCarChassisWithBlowtorch);
- AddAction(ActionRepairCarPartWithBlowtorch);
- AddAction(ActionRepairItemWithBlowtorch);
- AddAction(ActionRepairBoatEngine);
- }
-
- protected EntityAI GetGasCanister()
- {
- if (GetInventory().AttachmentCount() != 0)
- {
- return GetInventory().GetAttachmentFromIndex(0);
- }
-
- return null;
- }
-
- bool HasEnoughEnergyForRepair(float pTime)
- {
- if (GetGasCanister())
- {
- ComponentEnergyManager canisterEM = GetGasCanister().GetCompEM();
- if (canisterEM)
- {
- return canisterEM.GetEnergy() > GetCompEM().GetEnergyUsage() * pTime;
- }
- }
-
- return false;
- }
-
- override void OnDebugSpawn()
- {
- GetInventory().CreateInInventory("LargeGasCanister");
- }
- }
|