SHARE
TWEET

Untitled

a guest Mar 22nd, 2019 53 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. internal class Train
  2.     {
  3.         public Train(int variation, Vector3 position, bool direction)
  4.         {
  5.             switch (variation)
  6.             {
  7.                 case 0:
  8.                     new Model("freight").LoadAndWait();
  9.                     new Model("freightcar").LoadAndWait();
  10.                     break;
  11.                 case 1:
  12.                     new Model("freight").LoadAndWait();
  13.                     new Model("freightcar").LoadAndWait();
  14.                     break;
  15.                 case 2:
  16.                     new Model("freight").LoadAndWait();
  17.                     new Model("freightcont1").LoadAndWait();
  18.                     new Model("freightcont2").LoadAndWait();
  19.                     new Model("freightgrain").LoadAndWait();
  20.                     new Model("tankercar").LoadAndWait();
  21.                     new Model("freightcar").LoadAndWait();
  22.                     break;
  23.                 case 3:
  24.                     new Model("freight").LoadAndWait();
  25.                     new Model("freightcar").LoadAndWait();
  26.                     break;
  27.                 case 4:
  28.                     new Model("freight").LoadAndWait();
  29.                     new Model("freightgrain").LoadAndWait();
  30.                     new Model("freightcar").LoadAndWait();
  31.                     break;
  32.                 case 5:
  33.                     new Model("freight").LoadAndWait();
  34.                     new Model("freightcar").LoadAndWait();
  35.                     new Model("freightgrain").LoadAndWait();
  36.                     new Model("freightcar").LoadAndWait();
  37.                     break;
  38.                 case 6:
  39.                     new Model("freight").LoadAndWait();
  40.                     new Model("freightcont2").LoadAndWait();
  41.                     new Model("freightcar").LoadAndWait();
  42.                     new Model("tankercar").LoadAndWait();
  43.                     break;
  44.                 case 7:
  45.                     new Model("freight").LoadAndWait();
  46.                     new Model("freightcar").LoadAndWait();
  47.                     new Model("freightcont1").LoadAndWait();
  48.                     new Model("freightcar").LoadAndWait();
  49.                     break;
  50.                 case 8:
  51.                     new Model("freight").LoadAndWait();
  52.                     new Model("freightcont1").LoadAndWait();
  53.                     new Model("freightcar").LoadAndWait();
  54.                     new Model("tankercar").LoadAndWait();
  55.                     break;
  56.                 case 9:
  57.                     new Model("freight").LoadAndWait();
  58.                     new Model("freightcar").LoadAndWait();
  59.                     new Model("freightgrain").LoadAndWait();
  60.                     break;
  61.                 case 10:
  62.                     new Model("freight").LoadAndWait();
  63.                     new Model("freightcont1").LoadAndWait();
  64.                     new Model("freightcar").LoadAndWait();
  65.                     new Model("freightcont2").LoadAndWait();
  66.                     break;
  67.                 case 11:
  68.                     new Model("freight").LoadAndWait();
  69.                     new Model("freightcont1").LoadAndWait();
  70.                     new Model("freightcar").LoadAndWait();
  71.                     new Model("freightcont2").LoadAndWait();
  72.                     break;
  73.                 case 12:
  74.                     new Model("freight").LoadAndWait();
  75.                     new Model("freightgrain").LoadAndWait();
  76.                     new Model("freightcar").LoadAndWait();
  77.                     new Model("freightcont2").LoadAndWait();
  78.                     break;
  79.                 case 13:
  80.                     new Model("freight").LoadAndWait();
  81.                     new Model("freightcar").LoadAndWait();
  82.                     new Model("tankercar").LoadAndWait();
  83.                     break;
  84.                 case 14:
  85.                     new Model("freight").LoadAndWait();
  86.                     new Model("freightcar").LoadAndWait();
  87.                     new Model("freightcont2").LoadAndWait();
  88.                     break;
  89.                 case 15:
  90.                     new Model("freight").LoadAndWait();
  91.                     new Model("freightgrain").LoadAndWait();
  92.                     new Model("freightcar").LoadAndWait();
  93.                     new Model("freightcont2").LoadAndWait();
  94.                     break;
  95.                 case 16:
  96.                     new Model("freight").LoadAndWait();
  97.                     new Model("tankercar").LoadAndWait();
  98.                     new Model("freightcar").LoadAndWait();
  99.                     break;
  100.                 case 17:
  101.                     new Model("freight").LoadAndWait();
  102.                     new Model("freightcont1").LoadAndWait();
  103.                     break;
  104.                 case 18:
  105.                     new Model("freight").LoadAndWait();
  106.                     break;
  107.                 case 19:
  108.                     new Model("freight").LoadAndWait();
  109.                     new Model("tankercar").LoadAndWait();
  110.                     break;
  111.                 case 20:
  112.                     new Model("freight").LoadAndWait();
  113.                     new Model("freightcont1").LoadAndWait();
  114.                     break;
  115.                 case 21:
  116.                     new Model("metrotrain").LoadAndWait();
  117.                     break;
  118.                 case 22:
  119.                     new Model("freight").LoadAndWait();
  120.                     new Model("freightcar").LoadAndWait();
  121.                     break;
  122.                 case 23:
  123.                     new Model("freight").LoadAndWait();
  124.                     new Model("freightcar").LoadAndWait();
  125.                     new Model("freightcont2").LoadAndWait();
  126.                     break;
  127.                 case 24:
  128.                     new Model("metrotrain").LoadAndWait();
  129.                     break;
  130.             }
  131.  
  132.             Handle = NativeFunction.Natives.CreateMissionTrain<uint>(variation, position.X, position.Y, position.Z, direction);
  133.         }
  134.        
  135.         public uint Handle { get; set; }
  136.  
  137.         public bool Exists
  138.         {
  139.             get
  140.             {
  141.                 var handle = Handle;
  142.                 return NativeFunction.Natives.DoesEntityExist<bool>(ref handle);
  143.             }
  144.         }
  145.  
  146.         public static bool InInAnyTrain(Ped ped) => NativeFunction.Natives.IsPedInAnyTrain<bool>(ped);
  147.  
  148.         public static bool DeleteAllTrains() => NativeFunction.Natives.DeleteAllTrains();
  149.  
  150.         public Entity GetCarriage(int carriage)
  151.         {
  152.             return NativeFunction.Natives.GetTrainCarriage(Handle, carriage);
  153.         }
  154.  
  155.         public static bool EnableRandomTrains
  156.         {
  157.             set => NativeFunction.Natives.SetRandomTrains = value;
  158.         }
  159.  
  160.         public void RenderAsDerailed(bool derailed)
  161.         {
  162.             NativeFunction.Natives.SetRenderTrainAsDerailed(derailed);
  163.         }
  164.  
  165.         public float CruiseSpeed
  166.         {
  167.             set => NativeFunction.Natives.SetTrainCruiseSpeed(Handle, value);
  168.         }
  169.  
  170.         public float Speed
  171.         {
  172.             set => NativeFunction.Natives.SetTrainSpeed(Handle, value);
  173.         }
  174.  
  175.         public Vector3 Position
  176.         {
  177.             get
  178.             {
  179.                 var handle = Handle;
  180.                 return NativeFunction.Natives.GetEntityCoords<Vector3>(ref handle);
  181.             }
  182.             set
  183.             {
  184.                 var handle = Handle;
  185.                 NativeFunction.Natives.SetMissionTrainCoords(ref handle, value.X, value.Y, value.Z);
  186.             }
  187.         }
  188.  
  189.         public void Delete()
  190.         {
  191.             var handle = Handle;
  192.             NativeFunction.Natives.DeleteMissionTrain(ref handle);
  193.         }
  194.  
  195.         public void Dismiss()
  196.         {
  197.             var handle = Handle;
  198.             NativeFunction.Natives.SetMissionTrainAsNoLongerNeeded(ref handle, 0);
  199.         }
  200.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top