Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.54 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement