Van_01.c
class Van_01 extends CarScript
{
protected ref UniversalTemperatureSource m_UTSource;
protected ref UniversalTemperatureSourceSettings m_UTSSettings;
protected ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine;
void Van_01()
{
//m_dmgContactCoef = 0.070; //TODO::Set proper value
}
void ~Van_01()
{
m_UTSource = null;
m_UTSSettings = null;
m_UTSLEngine = null;
}
override void EEInit()
{
super.EEInit();
if (g_Game.IsServer() || !g_Game.IsMultiplayer())
{
m_UTSSettings = new UniversalTemperatureSourceSettings();
m_UTSSettings.m_ManualUpdate = true;
m_UTSSettings.m_TemperatureItemCap = GameConstants.ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE;
m_UTSSettings.m_TemperatureCap = 0;
m_UTSSettings.m_RangeFull = 0.5;
m_UTSSettings.m_RangeMax = 2;
m_UTSLEngine = new UniversalTemperatureSourceLambdaEngine();
m_UTSource = new UniversalTemperatureSource(this, m_UTSSettings, m_UTSLEngine);
}
}
override void OnEngineStart()
{
super.OnEngineStart();
if (g_Game.IsServer() || !g_Game.IsMultiplayer())
{
if (m_UTSource)
m_UTSource.SetDefferedActive(true, 20.0);
}
}
override void OnEngineStop()
{
super.OnEngineStop();
if (g_Game.IsServer() || !g_Game.IsMultiplayer())
{
if (m_UTSource)
m_UTSource.SetDefferedActive(false, 10.0);
}
}
override void EOnPostSimulate(IEntity other, float timeSlice)
{
if (g_Game.IsServer() || !g_Game.IsMultiplayer())
{
if (m_UTSource && m_UTSource.IsActive())
{
m_UTSource.Update(m_UTSSettings, m_UTSLEngine);
}
}
}
//-----------------------------------------------------------
override int GetAnimInstance()
{
return VehicleAnimInstances.CIVVAN;
}
//-----------------------------------------------------------
override int GetSeatAnimationType( int posIdx )
{
switch( posIdx )
{
case 0:
return DayZPlayerConstants.VEHICLESEAT_DRIVER;
case 1:
return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
case 2:
return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
case 3:
return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
case 4:
return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
}
return 0;
}
//-----------------------------------------------------------
override int GetCarDoorsState( string slotType )
{
CarDoor carDoor;
Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
if ( !carDoor )
return CarDoorState.DOORS_MISSING;
switch( slotType )
{
case "Van_01_Door_1_1":
if ( GetAnimationPhase("DoorsDriver") > 0.5 )
return CarDoorState.DOORS_OPEN;
else
return CarDoorState.DOORS_CLOSED;
break;
case "Van_01_Door_2_1":
if ( GetAnimationPhase("DoorsCoDriver") > 0.5 )
return CarDoorState.DOORS_OPEN;
else
return CarDoorState.DOORS_CLOSED;
break;
case "Van_01_Door_2_2":
if ( GetAnimationPhase("DoorsCargo1") > 0.5 )
return CarDoorState.DOORS_OPEN;
else
return CarDoorState.DOORS_CLOSED;
break;
case "Van_01_Trunk_1":
if ( GetAnimationPhase("DoorsCargo3") > 0.5 )
return CarDoorState.DOORS_OPEN;
else
return CarDoorState.DOORS_CLOSED;
break;
case "Van_01_Trunk_2":
if ( GetAnimationPhase("DoorsCargo2") > 0.5 )
return CarDoorState.DOORS_OPEN;
else
return CarDoorState.DOORS_CLOSED;
break;
}
return CarDoorState.DOORS_MISSING;
}
//-----------------------------------------------------------
override bool CrewCanGetThrough( int posIdx )
{
switch( posIdx )
{
case 0:
if ( GetCarDoorsState( "Van_01_Door_1_1" ) == CarDoorState.DOORS_CLOSED )
return false;
return true;
break;
case 1:
if ( GetCarDoorsState( "Van_01_Door_2_1" ) == CarDoorState.DOORS_CLOSED )
return false;
return true;
break;
case 2:
if ( GetCarDoorsState( "Van_01_Door_2_2" ) == CarDoorState.DOORS_CLOSED )
return false;
return true;
break;
case 3:
if ( GetCarDoorsState( "Van_01_Door_2_2" ) == CarDoorState.DOORS_CLOSED )
return false;
case 4:
if ( GetCarDoorsState( "Van_01_Door_2_2" ) == CarDoorState.DOORS_CLOSED )
return false;
return true;
break;
}
return false;
}
//-----------------------------------------------------------
override float OnSound( CarSoundCtrl ctrl, float oldValue )
{
switch ( ctrl )
{
case CarSoundCtrl.DOORS:
float newValue = 0;
//-----
if ( GetCarDoorsState( "Van_01_Door_1_1" ) == CarDoorState.DOORS_CLOSED )
newValue += 0.25;
//-----
if ( GetCarDoorsState( "Van_01_Door_2_1" ) == CarDoorState.DOORS_CLOSED )
newValue += 0.25;
//-----
if ( GetCarDoorsState( "Van_01_Door_2_2" ) == CarDoorState.DOORS_CLOSED )
newValue += 0.25;
//-----
if ( GetCarDoorsState( "Van_01_Trunk_1" ) == CarDoorState.DOORS_CLOSED )
newValue += 0.125;
//-----
if ( GetCarDoorsState( "Van_01_Trunk_2" ) == CarDoorState.DOORS_CLOSED )
newValue += 0.125;
if ( newValue > 1 )
newValue = 1;
return newValue;
break;
}
return oldValue;
}
//-----------------------------------------------------------
override string GetAnimSourceFromSelection( string selection )
{
switch( selection )
{
case "doors_driver":
return "DoorsDriver";
case "doors_codriver":
return "DoorsCoDriver";
case "doors_cargo1":
return "DoorsCargo1";
case "doors_cargo2":
return "DoorsCargo2";
case "doors_cargo3":
return "DoorsCargo3";
case "doors_hood":
return "DoorsHood";
}
return "";
}
//-----------------------------------------------------------
override string GetDoorConditionPointFromSelection( string selection )
{
switch( selection )
{
case "seat_driver":
return "seat_con_1_1";
break;
case "seat_codriver":
return "seat_con_2_1";
break;
case "seat_cargo1":
case "seat_cargo2":
case "seat_cargo3":
return "seat_con_1_2";
break;
}
return "";
};
//-----------------------------------------------------------
override bool IsVitalTruckBattery()
{
return false;
}
//-----------------------------------------------------------
override bool IsVitalGlowPlug()
{
return false;
}
//-----------------------------------------------------------
override bool CanReachSeatFromSeat( int currentSeat, int nextSeat )
{
switch( currentSeat )
{
case 0:
if ( nextSeat == 1 )
return true;
break;
case 1:
if ( nextSeat == 0 )
return true;
break;
case 2:
if ( nextSeat == 3 )
return true;
break;
case 3:
if ( nextSeat == 2 )
return true;
break;
}
return false;
}
//-----------------------------------------------------------
override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
{
switch( pCurrentSeat )
{
case 0:
if (pDoorsSelection == "DoorsDriver")
{
return true;
}
break;
case 1:
if (pDoorsSelection == "DoorsCoDriver")
{
return true;
}
break;
case 2:
if (pDoorsSelection == "DoorsCargo1")
{
return true;
}
break;
case 3:
if (pDoorsSelection == "DoorsCargo2")
{
return true;
}
break;
}
return false;
}
}