mta-mono/MultiTheftAuto/Vehicle.cs

533 lines
13 KiB
C#
Raw Normal View History

2015-12-12 10:10:23 +00:00
using System;
using System.Runtime.CompilerServices;
2015-12-12 10:10:23 +00:00
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MultiTheftAuto
{
public enum VehicleModel
{
ADMIRAL = 445,
ALPHA = 602,
AMBULAN = 416,
ANDROM = 592,
ARTICT1 = 435,
ARTICT2 = 450,
ARTICT3 = 591,
AT400 = 577,
BAGBOXA = 606,
BAGBOXB = 607,
BAGGAGE = 485,
BANDITO = 568,
BANSHEE = 429,
BARRACKS = 433,
BEAGLE = 511,
BENSON = 499,
BF400 = 581,
BFINJECT = 424,
BIKE = 509,
BLADE = 536,
BLISTAC = 496,
BLOODRA = 504,
BMX = 481,
BOBCAT = 422,
BOXBURG = 609,
BOXVILLE = 498,
BRAVURA = 401,
BROADWAY = 575,
BUCCANEE = 518,
BUFFALO = 402,
BULLET = 541,
BURRITO = 482,
BUS = 431,
CABBIE = 438,
CADDY = 457,
CADRONA = 527,
CAMPER = 483,
CARGOBOB = 548,
CEMENT = 524,
CHEETAH = 415,
CLOVER = 542,
CLUB = 589,
COACH = 437,
COASTG = 472,
COMBINE = 532,
COMET = 480,
COPBIKE = 523,
COPCARLA = 596,
COPCARRU = 599,
COPCARSF = 597,
COPCARVG = 598,
CROPDUST = 512,
DFT30 = 578,
DINGHY = 473,
DODO = 593,
DOZER = 486,
DUMPER = 406,
DUNERIDE = 573,
ELEGANT = 507,
ELEGY = 562,
EMPEROR = 585,
ENFORCER = 427,
ESPERANT = 419,
EUROS = 587,
FAGGIO = 462,
FARMTR1 = 610,
FBIRANCH = 490,
FBITRUCK = 528,
FCR900 = 521,
FELTZER = 533,
FIRELA = 544,
FIRETRUK = 407,
FLASH = 565,
FLATBED = 455,
FORKLIFT = 530,
FORTUNE = 526,
FREEWAY = 463,
FREIBOX = 590,
FREIFLAT = 569,
FREIGHT = 537,
GLENDALE = 466,
GLENSHIT = 604,
GREENWOO = 492,
HERMES = 474,
HOTDOG = 588,
HOTKNIFE = 434,
HOTRINA = 502,
HOTRINB = 503,
HOTRING = 494,
HUNTER = 425,
HUNTLEY = 579,
HUSTLER = 545,
HYDRA = 520,
INFERNUS = 411,
INTRUDER = 546,
JESTER = 559,
JETMAX = 493,
JOURNEY = 508,
KART = 571,
LANDSTAL = 400,
LAUNCH = 595,
LEVIATHN = 417,
LINERUN = 403,
MAJESTIC = 517,
MANANA = 410,
MARQUIS = 484,
MAVERICK = 487,
MERIT = 551,
MESA = 500,
MONSTER = 444,
MONSTERA = 556,
MONSTERB = 557,
MOONBEAM = 418,
MOWER = 572,
MRWHOOP = 423,
MTBIKE = 510,
MULE = 414,
NEBULA = 516,
NEVADA = 553,
NEWSVAN = 582,
NRG500 = 522,
OCEANIC = 467,
PACKER = 443,
PATRIOT = 470,
PCJ600 = 461,
PEREN = 404,
PETRO = 514,
PETROTR = 584,
PHOENIX = 603,
PICADOR = 600,
PIZZABOY = 448,
POLMAV = 497,
PONY = 413,
PREDATOR = 430,
PREMIER = 426,
PREVION = 436,
PRIMO = 547,
QUAD = 471,
RAINDANC = 563,
RANCHER = 489,
RCBANDIT = 441,
RCBARON = 464,
RCCAM = 594,
RCGOBLIN = 501,
RCRAIDER = 465,
RCTIGER = 564,
RDTRAIN = 515,
REEFER = 453,
REGINA = 479,
REMINGTN = 534,
RHINO = 432,
RNCHLURE = 505,
ROMERO = 442,
RUMPO = 440,
RUSTLER = 476,
SABRE = 475,
SADLER = 543,
SADLSHIT = 605,
SANCHEZ = 468,
SANDKING = 495,
SAVANNA = 567,
SEASPAR = 447,
SECURICA = 428,
SENTINEL = 405,
SHAMAL = 519,
SKIMMER = 460,
SLAMVAN = 535,
SOLAIR = 458,
SPARROW = 469,
SPEEDER = 452,
SQUALO = 446,
STAFFORD = 580,
STALLION = 439,
STRATUM = 561,
STREAK = 538,
STREAKC = 570,
STRETCH = 409,
STUNT = 513,
SULTAN = 560,
SUNRISE = 550,
SUPERGT = 506,
SWATVAN = 601,
SWEEPER = 574,
TAHOMA = 566,
TAMPA = 549,
TAXI = 420,
TOPFUN = 459,
TORNADO = 576,
TOWTRUCK = 525,
TRACTOR = 531,
TRAM = 449,
TRASH = 408,
TROPIC = 454,
TUG = 583,
TUGSTAIR = 608,
TURISMO = 451,
URANUS = 558,
UTILITY = 552,
UTILTR1 = 611,
VCNMAV = 488,
VINCENT = 540,
VIRGO = 491,
VOODOO = 412,
VORTEX = 539,
WALTON = 478,
WASHING = 421,
WAYFARER = 586,
WILLARD = 529,
WINDSOR = 555,
YANKEE = 456,
YOSEMITE = 554,
ZR350 = 477
}
public class Vehicle : Element
{
#region Properties
public string Type
{
get
{
return this.GetVehicleType();
2015-12-12 10:10:23 +00:00
}
}
#endregion
#region Constructors
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Vehicle( VehicleModel model, Vector3 position, Vector3 rotation, string numberplate = null, bool direction = false, int variant1 = 255, int variant2 = 255 );
internal Vehicle()
{
}
~Vehicle()
2015-12-12 10:10:23 +00:00
{
Debug.Info( "~Vehicle() [" + this.GetName() + "]" );
2015-12-12 10:10:23 +00:00
}
#endregion
#region Static Methods
[MethodImpl( MethodImplOptions.InternalCall )]
public extern static string GetNameFromModel( int modelID );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern static string GetUpgradeSlotName( int upgradeOrSlot );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern static Vehicle[] GetOfType( VehicleModel model );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern static int GetModelFromName( string name );
2015-12-12 10:10:23 +00:00
#endregion
#region Methods
#region Set
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool Fix();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool Blow( bool blow = true );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTurnVelocity( Vector3 velocity );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetColor( Color color1, Color color2 = null, Color color3 = null, Color color4 = null );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetLandingGearDown( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetLocked( bool locked );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetDoorsUndamageable( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetSirensOn( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTaxiLightOn( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool AddUpgrade( int upgrade );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool RemoveUpgrade( int upgrade );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetDoorState( int door, int state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetWheelStates( int frontLeft, int rearLeft, int frontRight, int rearRight );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetLightState( int light, int state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetPanelState( int panelID, int state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetIdleRespawnDelay( int timeDelay );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetRespawnDelay( int timeDelay );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetRespawnPosition( Vector3 position, Vector3 rotation );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool ToggleRespawn( bool respawn );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool ResetExplosionTime();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool ResetIdleTime();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool Spawn( Vector3 position, Vector3 rotation );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool Respawn();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetOverrideLights( int state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool AttachTrailerToVehicle( Element trailer );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool DetachTrailerFromVehicle( Element trailer = null );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetEngineState( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetDamageProof( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetPaintjob( int value );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetFuelTankExplodable( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTrainDerailed( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTrainDerailable( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTrainDirection( bool state );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTrainSpeed( float speed );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetHeadLightColor( Color color );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetTurretPosition( float x, float y );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetDoorOpenRatio( int door, float ratio, int time = 0 );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetVariant( int variant1 = 255, int variant2 = 255 );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool AddSirens( int sirenCount, int sirenType, bool flag360 = false, bool checkLos = true, bool useRandomiser = true, bool silent = false );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool RemoveSirens();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetSirens( int sirenPoint, Vector3 position, Color color = null, float minAlpha = 0.0f );
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool SetPlateText( string text );
2015-12-12 10:10:23 +00:00
#endregion
#region Get
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Array GetSirens();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern object GetSirenParams();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern string GetVehicleType();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern char[] GetVariant();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern VehicleColor GetColor();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool GetLandingGearDown();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetMaxPassengers();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern string GetName();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Ped GetOccupant( int seat = 0 );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Ped[] GetOccupants();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Ped GetController();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool GetSirensOn();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Vector3 GetTurnVelocity();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Vector3 GetTurretPosition();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetUpgradeOnSlot( int slot );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern UInt32[] GetUpgrades();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern UInt32[] GetCompatibleUpgrades( int slot = 0 );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetDoorState( int door );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern VehicleWheelsState GetWheelStates();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetLightState( int light );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetPanelState( int panel );
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetOverrideLights();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Vehicle GetTowedByVehicle();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Vehicle GetTowingVehicle();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern int GetPaintjob();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern string GetPlateText();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool GetEngineState();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool GetTrainDirection();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern float GetTrainSpeed();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern Color GetHeadLightColor();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern float GetVehicleDoorOpenRatio( int door );
2015-12-12 10:10:23 +00:00
#endregion
#region Is
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsTaxiLightOn();
2015-12-12 10:10:23 +00:00
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsTrainDerailed();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsTrainDerailable();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsDamageProof();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsFuelTankExplodable();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsOnGround();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsBlown();
[MethodImpl( MethodImplOptions.InternalCall )]
public extern bool IsLocked();
2015-12-12 10:10:23 +00:00
#endregion
#endregion
}
}