motorbike_01.c
class Motorbike_01_ColorBase : MotorbikeScript
{
void Motorbike_01_ColorBase()
{
m_VehicleContactDamageCoef = 0.03;
m_CrewContactDamageCoef = 0.018;
m_EngineStarting = "";
m_EngineStartOK = "Motorbike_01_engine_start_SoundSet";
m_EngineStartBattery = "";
m_EngineStartPlug = "";
m_EngineStartFuel = "Motorbike_01_engine_failed_start_fuel_SoundSet";
m_EngineStop = "Motorbike_01_engine_stop_SoundSet";
m_EngineStopFuel = "Motorbike_01_engine_stop_fuel_SoundSet";
m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Motorbike_01LightProfileFront()));
m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Motorbike_01LightProfileRear()));
m_LightsComponent.RegisterSelection("BrakeOn", {new VehicleLightSelectionData(2, "brakeReflectorMatOn")});
m_LightsComponent.RegisterSelection("BrakeOff", {new VehicleLightSelectionData(2, "brakeReflectorMatOff")});
m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Motorbike_01_Horn_Short_SoundSet");
m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Motorbike_01_Horn_SoundSet");
SetEnginePos("0 0.3 -0.06");
}
override bool HasGangedTailAndBrakeLights()
{
return true;
}
override bool NeedElectricitySourceDevice()
{
return false;
}
override float GetTransportCameraDistance()
{
return 2.5;
}
override vector GetTransportCameraOffset()
{
return "0 1.3 -0.25";
}
override int GetAnimInstance()
{
return VehicleAnimInstances.MOTO1;
}
override bool HasDirectionalInOutAction()
{
return true;
}
override int GetSeatAnimationTypeDirectional(int posIdx, int directionIndex)
{
if (posIdx == 0)
{
if (directionIndex == 0)
return 0;
else
return 1;
}
return 0;
}
override string GetAnimSourceFromSelection(string selection)
{
switch (selection)
{
case "seat_driver":
return "SeatDriver";
}
return super.GetAnimSourceFromSelection(selection);
}
override bool IsVitalGlowPlug()
{
return false;
}
override float GetWeightCoef()
{
return 0.5;
}
override bool CanGetIn()
{
if (!super.CanGetIn())
return false;
return GetAnimationPhase("SeatDriver") == 0.0;
}
override void SetActions()
{
super.SetActions();
AddAction(ActionAnimateMotorbikeSeat);
}
override void OnAnimationPhaseStarted(string animSource, float phase)
{
super.OnAnimationPhaseStarted(animSource, phase);
#ifndef SERVER
#ifndef NO_GUI
switch (animSource)
{
case "seatdriver":
EffectSound sound = CreateSoundForAnimationSource(animSource);
if (phase == 0.0)
{
sound.SetSoundSet("Motorbike_01_Seat_FlipUp_SoundSet");
}
else
{
sound.SetSoundSet("Motorbike_01_Seat_FlipDown_SoundSet");
}
sound.SetSoundFadeIn(0.1);
sound.SetSoundFadeOut(0.1);
SEffectManager.EffectRegister(sound);
sound.SoundPlay();
break;
}
#endif
#endif
}
// --------------------------------------------------------------------------------
override protected void PlayCrashLightSound()
{
PlaySoundEx("Motorbike_01_hit_character_SoundSet", m_CrashSoundLight, m_PlayCrashSoundLight);
}
// --------------------------------------------------------------------------------
override protected void PlayCrashHeavySound()
{
PlaySoundEx("Motorbike_01_hit_heavy_SoundSet", m_CrashSoundHeavy, m_PlayCrashSoundHeavy);
}
// --------------------------------------------------------------------------------
override void OnDebugSpawn()
{
SpawnUniversalParts();
float amount = GetFluidCapacity(MotorbikeFluid.FUEL);
Fill(MotorbikeFluid.FUEL, amount);
//-----ATTACHMENTS
GetInventory().CreateInInventory("Motorbike_01_Wheel_1");
GetInventory().CreateInInventory("Motorbike_01_Wheel_2");
}
}
class Motorbike_01_Blue : Motorbike_01_ColorBase {};
class Motorbike_01_Yellow : Motorbike_01_ColorBase {};
class Motorbike_01_Red : Motorbike_01_ColorBase {};