//Constructor public VehicleManager(byte vId, CarManagerType Type, string vehicle, string color) //can be "Player" or "AI" or "ClientSideClient" or "ServerSideClient" or "Slave" { VId = vId; ManagerType = Type; Vehicle = vehicle; Color = color; CreateVehicle("Vehicle" + vId.ToString(), Type, vehicle, color); }
public void CreateVehicle(string name, CarManagerType Type, string Vehicle, string color) { if (Type == CarManagerType.Player) { UnityEngine.Object Plyr = Resources.Load("Prefabs/" + Vehicle + "Player"); goCar = (GameObject)GameObject.Instantiate(Plyr, new Vector3(0, 12.0f, 0), Quaternion.identity); trCar = goCar.transform; //Yeah we need this cos the Admob Recovery callback isnt on the main thread goCar.tag = "Player"; goCar.name = name; if (Vehicle == "Car") { DmgCtlr = (DamageController)goCar.AddComponent <CarDamageController>(); VehicleController = goCar.AddComponent <CarPlayerController>(); } if (Vehicle == "Hotrod") { DmgCtlr = (DamageController)goCar.AddComponent <HotrodDamageController>(); VehicleController = goCar.AddComponent <HotrodPlayerController>(); } if (Vehicle == "Anglia") { DmgCtlr = (DamageController)goCar.AddComponent <AngliaDamageController>(); VehicleController = goCar.AddComponent <AngliaPlayerController>(); } if (Vehicle == "ModelT") { DmgCtlr = (DamageController)goCar.AddComponent <ModelTDamageController>(); VehicleController = goCar.AddComponent <ModelTPlayerController>(); } if (Vehicle == "Porsche") { DmgCtlr = (DamageController)goCar.AddComponent <PorscheDamageController>(); VehicleController = goCar.AddComponent <PorschePlayerController>(); } DmgCtlr.SetColor(Vehicle + "_" + color, true); DmgCtlr.AttachHingesAndJoints(); VehicleController.Init(); DmgCtlr.Gps = VehicleController.Gps; Racer = new Racer(this, DmgCtlr, Race.Current, false); Race.Current.Racers.Add(Racer); } if (Type == CarManagerType.AI) { UnityEngine.Object Plyr = Resources.Load("Prefabs/" + Vehicle + "Player"); goCar = (GameObject)GameObject.Instantiate(Plyr, new Vector3(0, 12.0f, 0), Quaternion.identity); goCar.tag = "Machine"; goCar.name = name; if (Vehicle == "Car") { DmgCtlr = (DamageController)goCar.AddComponent <CarDamageController>(); VehicleController = goCar.AddComponent <MachineCarController>(); } if (Vehicle == "Hotrod") { DmgCtlr = (DamageController)goCar.AddComponent <HotrodDamageController>(); VehicleController = goCar.AddComponent <HotrodAIController>(); } if (Vehicle == "Anglia") { DmgCtlr = (DamageController)goCar.AddComponent <AngliaDamageController>(); VehicleController = goCar.AddComponent <AngliaAIController>(); } if (Vehicle == "ModelT") { DmgCtlr = (DamageController)goCar.AddComponent <ModelTDamageController>(); VehicleController = goCar.AddComponent <ModelTAIController>(); } if (Vehicle == "Porsche") { DmgCtlr = (DamageController)goCar.AddComponent <PorscheDamageController>(); VehicleController = goCar.AddComponent <PorscheAIController>(); } DmgCtlr.AttachHingesAndJoints(); DmgCtlr.SetColor(Vehicle + "_" + color); VehicleController.Init(); //Todo: Whee's the GPS? Racer = new Racer(this, DmgCtlr, Race.Current, true); Race.Current.Racers.Add(Racer); } if (Type == CarManagerType.Replayer) { UnityEngine.Object Plyr = Resources.Load("Prefabs/" + Vehicle + "Player"); goCar = (GameObject)GameObject.Instantiate(Plyr, new Vector3(0, 12.0f, 0), Quaternion.identity); goCar.tag = "Player"; goCar.name = name; if (Vehicle == "Car") { DmgCtlr = (DamageController)goCar.AddComponent <CarDamageController>(); VehicleController = goCar.AddComponent <CarReplayerController>(); } if (Vehicle == "ModelT") { DmgCtlr = (DamageController)goCar.AddComponent <ModelTDamageController>(); VehicleController = goCar.AddComponent <ModelTReplayerController>(); } if (Vehicle == "Hotrod") { DmgCtlr = (DamageController)goCar.AddComponent <HotrodDamageController>(); VehicleController = goCar.AddComponent <HotrodReplayerController>(); } if (Vehicle == "Anglia") { DmgCtlr = (DamageController)goCar.AddComponent <AngliaDamageController>(); VehicleController = goCar.AddComponent <AngliaReplayerController>(); } if (Vehicle == "Porsche") { DmgCtlr = (DamageController)goCar.AddComponent <PorscheDamageController>(); VehicleController = goCar.AddComponent <PorscheReplayerController>(); } DmgCtlr.SetColor(Vehicle + "_" + color, true); DmgCtlr.AttachHingesAndJoints(); VehicleController.Init(); //Creates a new GPS, Creates a new ReplayerInput goCar.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePosition; } if (Type == CarManagerType.Ghost) { UnityEngine.Object Plyr = Resources.Load("Prefabs/GhostPlayer"); goCar = (GameObject)GameObject.Instantiate(Plyr, new Vector3(0, 12.0f, 0), Quaternion.identity); goCar.name = name; VehicleController = goCar.AddComponent <GhostController>(); VehicleController.Init(); } else //everything but the ghost has a Gps { DmgCtlr.VId = VId; Gps = VehicleController.Gps; } }