Beispiel #1
0
    //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);
    }
Beispiel #2
0
    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;
        }
    }