Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal class Train
- {
- public Train(int variation, Vector3 position, bool direction)
- {
- switch (variation)
- {
- case 0:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 1:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 2:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 3:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 4:
- new Model("freight").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 5:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 6:
- new Model("freight").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- break;
- case 7:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 8:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- break;
- case 9:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- break;
- case 10:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 11:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 12:
- new Model("freight").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 13:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- break;
- case 14:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 15:
- new Model("freight").LoadAndWait();
- new Model("freightgrain").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 16:
- new Model("freight").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 17:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- break;
- case 18:
- new Model("freight").LoadAndWait();
- break;
- case 19:
- new Model("freight").LoadAndWait();
- new Model("tankercar").LoadAndWait();
- break;
- case 20:
- new Model("freight").LoadAndWait();
- new Model("freightcont1").LoadAndWait();
- break;
- case 21:
- new Model("metrotrain").LoadAndWait();
- break;
- case 22:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- break;
- case 23:
- new Model("freight").LoadAndWait();
- new Model("freightcar").LoadAndWait();
- new Model("freightcont2").LoadAndWait();
- break;
- case 24:
- new Model("metrotrain").LoadAndWait();
- break;
- }
- Handle = NativeFunction.Natives.CreateMissionTrain<uint>(variation, position.X, position.Y, position.Z, direction);
- }
- public uint Handle { get; set; }
- public bool Exists
- {
- get
- {
- var handle = Handle;
- return NativeFunction.Natives.DoesEntityExist<bool>(ref handle);
- }
- }
- public static bool InInAnyTrain(Ped ped) => NativeFunction.Natives.IsPedInAnyTrain<bool>(ped);
- public static bool DeleteAllTrains() => NativeFunction.Natives.DeleteAllTrains();
- public Entity GetCarriage(int carriage)
- {
- return NativeFunction.Natives.GetTrainCarriage(Handle, carriage);
- }
- public static bool EnableRandomTrains
- {
- set => NativeFunction.Natives.SetRandomTrains = value;
- }
- public void RenderAsDerailed(bool derailed)
- {
- NativeFunction.Natives.SetRenderTrainAsDerailed(derailed);
- }
- public float CruiseSpeed
- {
- set => NativeFunction.Natives.SetTrainCruiseSpeed(Handle, value);
- }
- public float Speed
- {
- set => NativeFunction.Natives.SetTrainSpeed(Handle, value);
- }
- public Vector3 Position
- {
- get
- {
- var handle = Handle;
- return NativeFunction.Natives.GetEntityCoords<Vector3>(ref handle);
- }
- set
- {
- var handle = Handle;
- NativeFunction.Natives.SetMissionTrainCoords(ref handle, value.X, value.Y, value.Z);
- }
- }
- public void Delete()
- {
- var handle = Handle;
- NativeFunction.Natives.DeleteMissionTrain(ref handle);
- }
- public void Dismiss()
- {
- var handle = Handle;
- NativeFunction.Natives.SetMissionTrainAsNoLongerNeeded(ref handle, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement