Esempio n. 1
0
        public override void onEnabled()
        {
            var dsc = System.IO.Path.DirectorySeparatorChar;


            binder = new TrackRiderBinder("kvwQwhKWWG");
            TrackedRide retroSteelCoaster =
                binder.RegisterTrackedRide <TrackedRide>("Steel Coaster", "retroSteelCoaster", "Retro Steel Coaster");
            RetroSteelCoasterMeshGenerator retroSteelCoasterTrackGenerator =
                binder.RegisterMeshGenerator <RetroSteelCoasterMeshGenerator>(retroSteelCoaster);

            TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Steel Coaster").meshGenerator,
                                                        retroSteelCoaster.meshGenerator);

            retroSteelCoaster.canCurveLifts             = true;
            retroSteelCoaster.canHaveLSM                = false;
            retroSteelCoaster.description               = "Similar to the modern steel rollercoaster, this coaster is capable of having a curved lifthill but not of being launched.";
            retroSteelCoasterTrackGenerator.crossBeamGO = null;

            retroSteelCoaster.price                      = 1500;
            retroSteelCoaster.trackPricePerUnit          = 25;
            retroSteelCoaster.meshGenerator.customColors = new[]
            {
                new Color(0f / 255f, 0f / 255f, 0f / 255f, 1), new Color(80f / 255f, 115f / 255f, 150f / 255f, 1),
                new Color(110f / 255f, 170f / 255f, 255f / 255f, 1), new Color(95f / 255f, 140f / 255f, 200f / 255f, 1)
            };
            retroSteelCoaster.airtimeImportanceExcitement        = TrackRideHelper.GetTrackedRide("Steel Coaster").airtimeImportanceExcitement + 0.2f;
            retroSteelCoaster.dropsImportanceExcitement          = TrackRideHelper.GetTrackedRide("Steel Coaster").dropsImportanceExcitement - 0.4f;
            retroSteelCoaster.inversionsImportanceExcitement     = TrackRideHelper.GetTrackedRide("Steel Coaster").inversionsImportanceExcitement - 0.1f;
            retroSteelCoaster.averageLatGImportanceExcitement    = TrackRideHelper.GetTrackedRide("Steel Coaster").averageLatGImportanceExcitement - 0.3f;
            retroSteelCoaster.accelerationImportanceExcitement   = TrackRideHelper.GetTrackedRide("Steel Coaster").accelerationImportanceExcitement + 0.1f;
            retroSteelCoaster.velocityImportanceExcitement       = TrackRideHelper.GetTrackedRide("Steel Coaster").velocityImportanceExcitement + 0.2f;
            retroSteelCoaster.excitementImportanceRideLengthTime = TrackRideHelper.GetTrackedRide("Steel Coaster").excitementImportanceRideLengthTime + 0.15f;
            binder.Apply();
        }
Esempio n. 2
0
    public void onEnabled()
    {
        if (Main.AssetBundleManager == null)
        {
            AssetBundleManager = new AssetBundleManager(this);
        }

        binder = new TrackRiderBinder("509e93b5d3723a5a215e5c67500c2e28");


        TrackedRide trackedRide = binder.RegisterTrackedRide <TrackedRide> ("Ghost Mansion Ride", "CarRide", "Car Ride");

        trackedRide.price    = 1200;
        trackedRide.carTypes = new CoasterCarInstantiator[] { };

        TrackedRide ghostRide = TrackRideHelper.GetTrackedRide("Ghost Mansion Ride");
        GhostMansionRideMeshGenerator meshGenerator = binder.RegisterMeshGenerator <GhostMansionRideMeshGenerator> (trackedRide);

        TrackRideHelper.PassMeshGeneratorProperties(ghostRide.meshGenerator, trackedRide.meshGenerator);
        meshGenerator.tubeMaterial = ((GhostMansionRideMeshGenerator)ghostRide.meshGenerator).tubeMaterial;

        trackedRide.maxBankingAngle            = 7;
        trackedRide.targetVelocity             = 7;
        trackedRide.meshGenerator.customColors = new Color[]
        {
            new Color(63f / 255f, 46f / 255f, 37f / 255f, 1),
            new Color(43f / 255f, 35f / 255f, 35f / 255f, 1),
            new Color(90f / 255f, 90f / 255f, 90f / 255f, 1)
        };
        trackedRide.canChangeCarRotation = false;

        CoasterCarInstantiator mouseCarInstaniator = binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator>(trackedRide, "MouseCarInstaniator", "Mouse Car", 1, 1, 1);
        BaseCar mouseCar = binder.RegisterCar <BaseCar>(Main.AssetBundleManager.MouseCarGo, "MouseCar", .3f, .1f, true,
                                                        new Color[] {
            new Color(71f / 255, 71f / 255, 71f / 255),
            new Color(176f / 255, 7f / 255, 7f / 255),
            new Color(26f / 255, 26f / 255, 26f / 255),
            new Color(31f / 255, 31f / 255, 31f / 255)
        }
                                                        );

        mouseCar.gameObject.AddComponent <RestraintRotationController>().closedAngles = new Vector3(0, 0, 120);
        mouseCarInstaniator.carGO = mouseCar.gameObject;


        CoasterCarInstantiator TruckCarInstaniator = binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator> (trackedRide, "TruckCarInstaniator", "Truck Car", 1, 1, 1);
        BaseCar truckCar = binder.RegisterCar <BaseCar>(Main.AssetBundleManager.TruckGo, "TruckCar", .3f, .35f, true,
                                                        new Color[] {
            new Color(68f / 255, 58f / 255, 50f / 255),
            new Color(176f / 255, 7f / 255, 7f / 255),
            new Color(55f / 255, 32f / 255, 12f / 255),
            new Color(61f / 255, 40f / 255, 19f / 255)
        }

                                                        );

        truckCar.gameObject.AddComponent <RestraintRotationController>().closedAngles = new Vector3(0, 0, 120);
        TruckCarInstaniator.carGO = truckCar.gameObject;

        CoasterCarInstantiator sportsCarInstaniator = binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator> (trackedRide, "SportsCarInstaniator", "Sports Car", 1, 1, 1);
        BaseCar sportsCar = binder.RegisterCar <BaseCar>(Main.AssetBundleManager.SportsCarGo, "SportsCar", .3f, .35f, true,
                                                         new Color[] {
            new Color(.949f, .141f, .145f),
            new Color(.925f, .937f, .231f),
            new Color(.754f, .754f, .754f),
            new Color(.788f, .788f, .788f)
        }
                                                         );

        sportsCar.gameObject.AddComponent <RestraintRotationController>().closedAngles = new Vector3(0, 0, 120);
        sportsCarInstaniator.carGO = sportsCar.gameObject;

        binder.Apply();

        //deprecatedMappings
        string oldHash = "asdfawujeba8whe9jnimpiasnd";

        GameObjectHelper.RegisterDeprecatedMapping("car_ride_coaster_GO" + oldHash, trackedRide.name);

        GameObjectHelper.RegisterDeprecatedMapping("Mouse_Car@CoasterCarInstantiator" + oldHash, mouseCarInstaniator.name);
        GameObjectHelper.RegisterDeprecatedMapping("Truck_Car@CoasterCarInstantiator" + oldHash, TruckCarInstaniator.name);
        GameObjectHelper.RegisterDeprecatedMapping("Sports_Car@CoasterCarInstantiator" + oldHash, sportsCarInstaniator.name);

        GameObjectHelper.RegisterDeprecatedMapping("Mouse_Car_Front" + oldHash, mouseCar.name);
        GameObjectHelper.RegisterDeprecatedMapping("Truck_Car_Front" + oldHash, truckCar.name);
        GameObjectHelper.RegisterDeprecatedMapping("Sports_Car_Front" + oldHash, sportsCar.name);
    }
Esempio n. 3
0
    public void onEnabled()
    {
        if (Main.AssetBundleManager == null)
        {
            AssetBundleManager = new AssetBundleManager(this);
        }

        binder = new TrackRiderBinder("d41d8cd98f00b204e9800998ecf8427e");

        TrackedRide trackedRide = binder.RegisterTrackedRide <TrackedRide> ("Wooden Coaster", "MineTrainCoaster", "Mine Train Coaster");

        trackedRide.price = 3600;
        trackedRide.dropsImportanceExcitement       = .7f;
        trackedRide.inversionsImportanceExcitement  = .67f;
        trackedRide.averageLatGImportanceExcitement = .7f;

        trackedRide.carTypes = new CoasterCarInstantiator[] { };


        MinetrainTrackGenerator meshGenerator = binder.RegisterMeshGenerator <MinetrainTrackGenerator> (trackedRide);

        TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Wooden Coaster").meshGenerator, trackedRide.meshGenerator);
        trackedRide.meshGenerator.customColors = new Color[] {
            new Color(63f / 255f, 46f / 255f, 37f / 255f, 1),
            new Color(43f / 255f, 35f / 255f, 35f / 255f, 1),
            new Color(90f / 255f, 90f / 255f, 90f / 255f, 1)
        };

        MineTrainSupportInstantiator supportGenerator = binder.RegisterSupportGenerator <MineTrainSupportInstantiator> (trackedRide);

        CoasterCarInstantiator coasterCarInstantiator = binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator> (trackedRide, "MineTrainInstantiator", "Mine Train Car", 5, 7, 2);

        Color[] CarColors = new Color[] {
            new Color(68f / 255, 58f / 255, 50f / 255),
            new Color(176f / 255, 7f / 255, 7f / 255),
            new Color(55f / 255, 32f / 255, 12f / 255),
            new Color(61f / 255, 40f / 255, 19f / 255)
        };

        BaseCar frontCar = binder.RegisterCar <BaseCar> (Main.AssetBundleManager.FrontCarGo, "MineTrainCarFront", .02f, .4f, true, CarColors);
        BaseCar backCar  = binder.RegisterCar <BaseCar> (Main.AssetBundleManager.BackCarGo, "MineTrainCarBack", .02f, .02f, false, CarColors);

        frontCar.gameObject.AddComponent <RestraintRotationController>().closedAngles = new Vector3(0, 0, 120);
        backCar.gameObject.AddComponent <RestraintRotationController>().closedAngles  = new Vector3(0, 0, 120);

        coasterCarInstantiator.frontCarGO = frontCar.gameObject;
        coasterCarInstantiator.carGO      = backCar.gameObject;


        // binder.Apply ();


        //deprecatedMappings
        var trackRideOff = TrackRideHelper.GetTrackedRide("Mine Train Coaster");

        string oldHash = "ASDFawjebfa8pwh9n3a3h8ank";

        GameObjectHelper.RegisterDeprecatedMapping("mine_train_coaster_GO", trackRideOff.name);
        GameObjectHelper.RegisterDeprecatedMapping("mine_train_coaster_GO" + oldHash, trackRideOff.name);

        GameObjectHelper.RegisterDeprecatedMapping("Mine Train@CoasterCarInstantiator" + oldHash, trackRideOff.getCarInstantiator().name);
        GameObjectHelper.RegisterDeprecatedMapping("Mine Train@CoasterCarInstantiator", trackRideOff.getCarInstantiator().name);

        GameObjectHelper.RegisterDeprecatedMapping("MineTrainCar_Car" + oldHash, trackRideOff.getCarInstantiator().carGO.name);
        GameObjectHelper.RegisterDeprecatedMapping("MineTrainCar_Car", trackRideOff.getCarInstantiator().carGO.name);

        GameObjectHelper.RegisterDeprecatedMapping("MineTrainCar_Front" + oldHash, trackRideOff.getCarInstantiator().frontCarGO.name);
        GameObjectHelper.RegisterDeprecatedMapping("MineTrainCar_Front", trackRideOff.getCarInstantiator().frontCarGO.name);

        GameObjectHelper.RegisterDeprecatedMapping(trackedRide.name, trackRideOff.name);
        GameObjectHelper.RegisterDeprecatedMapping(coasterCarInstantiator.name, trackRideOff.getCarInstantiator().name);
        GameObjectHelper.RegisterDeprecatedMapping(frontCar.name, trackRideOff.getCarInstantiator().frontCarGO.name);
        GameObjectHelper.RegisterDeprecatedMapping(backCar.name, trackRideOff.getCarInstantiator().carGO.name);
    }
        public override void onEnabled()
        {
            hider = new GameObject();
            hider.SetActive(false);

            AssetBundleManager assetBundleManager = new AssetBundleManager(this);

            binder = new TrackRiderBinder("ed7f0bf864bee459f34bc3e1b426c04e");
            var trackedRide =
                binder.RegisterTrackedRide <TrackedRide>("Wooden Coaster", "VirginiaReelCoaster",
                                                         "Virginia Reel Coaster");
            var trackGenerator =
                binder.RegisterMeshGenerator <VirginiaReelTrackGenerator>(trackedRide);

            TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Wooden Coaster").meshGenerator,
                                                        trackedRide.meshGenerator);


            trackGenerator.crossBeamGO =
                GameObjectHelper.SetUV(ProxyObject(Object.Instantiate(assetBundleManager.SideCrossBeamGo)), 15, 14);

            trackedRide.price                      = 1200;
            trackedRide.maxBankingAngle            = 0;
            trackedRide.min90CurveSize             = 1;
            trackedRide.carTypes                   = new CoasterCarInstantiator[] { };
            trackedRide.isSpeedLimited             = true;
            trackedRide.maximumVelocity            = 10;
            trackedRide.meshGenerator.customColors = new[]
            {
                new Color(63f / 255f, 46f / 255f, 37f / 255f, 1), new Color(43f / 255f, 35f / 255f, 35f / 255f, 1),
                new Color(90f / 255f, 90f / 255f, 90f / 255f, 1)
            };
            // trackedRide.canChangeCarRotation = true;

            var coasterCarInstantiator =
                binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator>(trackedRide, "VirginiaReelInstantiator",
                                                                              "Virginia Reel Car", 1, 1, 1);
            var virginiaReelCar = binder.RegisterCar <VirginiaReelCar>(
                ProxyObject(Object.Instantiate(assetBundleManager.CartGo)),
                "VirginiaReelCar", .3f, .1f, true, new[]
            {
                new Color(71f / 255, 71f / 255, 71f / 255),
                new Color(176f / 255, 7f / 255, 7f / 255),
                new Color(26f / 255, 26f / 255, 26f / 255)
            }
                );

            coasterCarInstantiator.vehicleGO = virginiaReelCar;
            coasterCarInstantiator.vehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(0, 0, 120);

            binder.Apply();

            //deprecatedMappings
            var oldHash = "asdfasdfabeawefawefv";

            GameObjectHelper.RegisterDeprecatedMapping("virginia_reel_go" + oldHash, trackedRide.name);
            GameObjectHelper.RegisterDeprecatedMapping("Reel_Car@CoasterCarInstantiator" + oldHash,
                                                       coasterCarInstantiator.name);
            GameObjectHelper.RegisterDeprecatedMapping("Reel_Car_Front" + oldHash, virginiaReelCar.name);
        }
Esempio n. 5
0
        public void onEnabled()
        {
            var dsc = System.IO.Path.DirectorySeparatorChar;

            //assetBundle = AssetBundle.LoadFromFile(Path + dsc + "assetbundle" + dsc + "assetpack");
            //SideCrossBeamsGo = assetBundle.LoadAsset<GameObject>("21a3f09b79e34f147a2b6017d2b6c05b");
            assetBundle      = AssetBundle.LoadFromFile(Path + dsc + "assetbundle" + dsc + "corkscrewassetpack");
            SideCrossBeamsGo = assetBundle.LoadAsset <GameObject>("c184c4f392587465f9bf2c86e6615e78");
            FrontCartGo      = assetBundle.LoadAsset <GameObject>("01be2cec49bbb476381a537d75ad047e");
            CartGo           = assetBundle.LoadAsset <GameObject>("7c1045f838c59460db2bfebd3df04a47");

            binder = new TrackRiderBinder("kvwQwhKWWG");
            TrackedRide iboxCoaster =
                binder.RegisterTrackedRide <TrackedRide>("Floorless Coaster", "IboxCoaster", "Steel Hybrid Coaster");
            TrackedRide topperCoaster =
                binder.RegisterTrackedRide <TrackedRide>("Floorless Coaster", "TopperCoaster", "Wooden Hybrid Coaster");
            HybridCoasterMeshGenerator iboxTrackGenerator =
                binder.RegisterMeshGenerator <HybridCoasterMeshGenerator>(iboxCoaster);
            HybridCoasterMeshGenerator topperTrackGenerator =
                binder.RegisterMeshGenerator <HybridCoasterMeshGenerator>(topperCoaster);

            TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Floorless Coaster").meshGenerator,
                                                        iboxCoaster.meshGenerator);
            TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Floorless Coaster").meshGenerator,
                                                        topperCoaster.meshGenerator);

            HybridCoasterSupportInstantiator iboxSupportGenerator   = binder.RegisterSupportGenerator <HybridCoasterSupportInstantiator>(iboxCoaster);
            HybridCoasterSupportInstantiator topperSupportGenerator = binder.RegisterSupportGenerator <HybridCoasterSupportInstantiator>(topperCoaster);

            iboxCoaster.canCurveLifts        = true;
            topperCoaster.canCurveLifts      = true;
            iboxCoaster.description          = "A rollercoaster combining a steel track and a mix of wooden and steel supports to allow elements not normally found on wooden coasters.";
            topperCoaster.description        = "A rollercoaster combining a wooden track and a mix of wooden and steel supports to allow elements not normally found on wooden coasters.";
            iboxTrackGenerator.path          = Path;
            topperTrackGenerator.path        = Path;
            iboxTrackGenerator.crossBeamGO   = null;
            topperTrackGenerator.crossBeamGO = null;
            GameObject hybridSupportContainer = new GameObject("HybridCoasterSupports");
            GameObject hybridSupportLocation  = new GameObject("HybridCoasterSupportLocation");

            hybridSupportContainer.AddComponent <SupportHybridCoaster>();
            hybridSupportLocation.AddComponent <HybridSupportLocation>();
            SupportConfiguration hybridSupportConfiguration = new SupportConfiguration();

            hybridSupportConfiguration.supportLocationGO  = hybridSupportLocation.GetComponent <HybridSupportLocation>();
            hybridSupportConfiguration.supportSettings    = new SupportSettings[1];
            hybridSupportConfiguration.supportSettings[0] = new SupportSettings();
            hybridSupportConfiguration.supportSettings[0].minimumHeightAboveGround = 0.25f;
            hybridSupportConfiguration.supportSettings[0].supportGO = hybridSupportContainer.GetComponent <SupportHybridCoaster>();
            iboxCoaster.supportConfiguration = hybridSupportConfiguration;
            //iboxCoaster.supportConfiguration.supportSettings[0].supportGO = hybridSupportContainer.GetComponent<SupportHybridCoaster>();
            //iboxTrackGenerator.supportInstantiator = null;
            //topperTrackGenerator.supportInstantiator = null;
            iboxTrackGenerator.stationPlatformGO   = TrackRideHelper.GetTrackedRide("Spinning Coaster").meshGenerator.stationPlatformGO;
            topperTrackGenerator.stationPlatformGO = TrackRideHelper.GetTrackedRide("Spinning Coaster").meshGenerator.stationPlatformGO;
            iboxTrackGenerator.frictionWheelsGO    = TrackRideHelper.GetTrackedRide("Junior Coaster").meshGenerator.frictionWheelsGO;
            topperTrackGenerator.frictionWheelsGO  = TrackRideHelper.GetTrackedRide("Junior Coaster").meshGenerator.frictionWheelsGO;
            iboxTrackGenerator.material            = TrackRideHelper.GetTrackedRide("Wooden Coaster").meshGenerator.material;
            topperTrackGenerator.material          = TrackRideHelper.GetTrackedRide("Wooden Coaster").meshGenerator.material;
            iboxTrackGenerator.metalMaterial       = TrackRideHelper.GetTrackedRide("Steel Coaster").meshGenerator.material;
            topperTrackGenerator.metalMaterial     = TrackRideHelper.GetTrackedRide("Steel Coaster").meshGenerator.material;
            topperTrackGenerator.useTopperTrack    = true;

            iboxCoaster.price      = 1650;
            topperCoaster.price    = 1700;
            iboxCoaster.carTypes   = new CoasterCarInstantiator[] { };
            topperCoaster.carTypes = new CoasterCarInstantiator[] { };
            iboxCoaster.meshGenerator.customColors = new[]
            {
                new Color(132f / 255f, 40f / 255f, 137f / 255f, 1), new Color(23f / 255f, 133f / 255f, 30f / 255f, 1),
                new Color(180 / 255f, 180f / 255f, 180f / 255f, 1), new Color(108f / 255f, 70f / 255f, 23f / 255f, 1)
            };
            topperCoaster.meshGenerator.customColors = new[]
            {
                new Color(132f / 255f, 40f / 255f, 137f / 255f, 1), new Color(23f / 255f, 133f / 255f, 30f / 255f, 1),
                new Color(180 / 255f, 180f / 255f, 180f / 255f, 1), new Color(108f / 255f, 70f / 255f, 23f / 255f, 1)
            };
            iboxCoaster.dropsImportanceExcitement          = 0.665f;
            topperCoaster.dropsImportanceExcitement        = 0.665f;
            iboxCoaster.inversionsImportanceExcitement     = 0.673f;
            topperCoaster.inversionsImportanceExcitement   = 0.673f;
            iboxCoaster.averageLatGImportanceExcitement    = 0.121f;
            topperCoaster.averageLatGImportanceExcitement  = 0.121f;
            iboxCoaster.accelerationImportanceExcitement   = 0.525f;
            topperCoaster.accelerationImportanceExcitement = 0.525f;

            CoasterCarInstantiator iboxCoasterCarInstantiator =
                binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator>(iboxCoaster, "RmcCoasterInsantiator",
                                                                              "Hybrid Coaster Cars", 1, 15, 6);
            CoasterCarInstantiator topperCoasterCarInstantiator =
                binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator>(topperCoaster, "RmcCoasterInsantiator",
                                                                              "Hybrid Coaster Cars", 1, 15, 6);

            BaseCar frontCar = binder.RegisterCar <BaseCar>(Object.Instantiate(FrontCartGo), "RmcCoaster_Front_Car",
                                                            .35f, 0f, true, new[]
            {
                new Color(168f / 255, 14f / 255, 14f / 255), new Color(234f / 255, 227f / 255, 227f / 255),
                new Color(73f / 255, 73f / 255, 73f / 255)
            }
                                                            );

            iboxCoasterCarInstantiator.frontVehicleGO   = frontCar;
            topperCoasterCarInstantiator.frontVehicleGO = frontCar;
            iboxCoasterCarInstantiator.frontVehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);
            topperCoasterCarInstantiator.frontVehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);

            List <Transform> transforms = new List <Transform>();

            Utility.recursiveFindTransformsStartingWith("wheel", frontCar.transform, transforms);
            foreach (var transform in transforms)
            {
                transform.gameObject.AddComponent <FrictionWheelAnimator>();
            }

            BaseCar backCar = binder.RegisterCar <BaseCar>(Object.Instantiate(CartGo), "RmcCoaster_Back_Car", .35f,
                                                           -.3f, false, new[]
            {
                new Color(168f / 255, 14f / 255, 14f / 255), new Color(234f / 255, 227f / 255, 227f / 255),
                new Color(73f / 255, 73f / 255, 73f / 255)
            }
                                                           );

            iboxCoasterCarInstantiator.vehicleGO   = backCar;
            topperCoasterCarInstantiator.vehicleGO = backCar;
            iboxCoasterCarInstantiator.vehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);
            topperCoasterCarInstantiator.vehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);

            Utility.recursiveFindTransformsStartingWith("wheel", backCar.transform, transforms);
            foreach (var transform in transforms)
            {
                transform.gameObject.AddComponent <FrictionWheelAnimator>();
            }

            binder.Apply();
            assetBundle.Unload(false);
        }
        public override void onEnabled()
        {
            hider = new GameObject();
            hider.SetActive(false);

            AssetBundleManager assetBundleManager = new AssetBundleManager(this);

            binder = new TrackRiderBinder("kvwQwhKWWG");
            var trackedRide =
                binder.RegisterTrackedRide <TrackedRide>("Steel Coaster", "CorkscrewCoaster", "Corkscrew Coaster");
            var trackGenerator =
                binder.RegisterMeshGenerator <TwisterCoasterMeshGenerator>(trackedRide);

            TrackRideHelper.PassMeshGeneratorProperties(TrackRideHelper.GetTrackedRide("Steel Coaster").meshGenerator,
                                                        trackedRide.meshGenerator);

            trackGenerator.crossBeamGO =
                GameObjectHelper.SetUV(ProxyObject(Object.Instantiate(assetBundleManager.SideCrossBeamsGo)), 15, 14);


            trackedRide.price    = 1200;
            trackedRide.carTypes = new CoasterCarInstantiator[] { };
            trackedRide.meshGenerator.customColors = new[]
            {
                new Color(63f / 255f, 46f / 255f, 37f / 255f, 1), new Color(43f / 255f, 35f / 255f, 35f / 255f, 1),
                new Color(90f / 255f, 90f / 255f, 90f / 255f, 1), new Color(90f / 255f, 90f / 255f, 90f / 255f, 1)
            };
            trackedRide.dropsImportanceExcitement        = 0.665f;
            trackedRide.inversionsImportanceExcitement   = 0.673f;
            trackedRide.averageLatGImportanceExcitement  = 0.121f;
            trackedRide.accelerationImportanceExcitement = 0.525f;

            var coasterCarInstantiator =
                binder.RegisterCoasterCarInstaniator <CoasterCarInstantiator>(trackedRide, "CorkscrewCoasterInsantiator",
                                                                              "Corkscrew Car", 6, 16, 3);

            var frontCar = binder.RegisterCar <BaseCar>(ProxyObject(Object.Instantiate(assetBundleManager.FrontCartGo)),
                                                        "CorkScrewCoaster_Front_Car",
                                                        .35f, 0f, true, new[]
            {
                new Color(168f / 255, 14f / 255, 14f / 255), new Color(234f / 255, 227f / 255, 227f / 255),
                new Color(73f / 255, 73f / 255, 73f / 255)
            }
                                                        );

            coasterCarInstantiator.frontVehicleGO = frontCar;
            coasterCarInstantiator.frontVehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);


            var transforms = new List <Transform>();

            Utility.recursiveFindTransformsStartingWith("wheel", frontCar.transform, transforms);
            foreach (var transform in transforms)
            {
                transform.gameObject.AddComponent <FrictionWheelAnimator>();
            }

            var backCar = binder.RegisterCar <BaseCar>(ProxyObject(Object.Instantiate(assetBundleManager.CartGo)),
                                                       "CorkScrewCoaster_Back_Car", .35f,
                                                       -.3f, false, new[]
            {
                new Color(168f / 255, 14f / 255, 14f / 255), new Color(234f / 255, 227f / 255, 227f / 255),
                new Color(73f / 255, 73f / 255, 73f / 255)
            }
                                                       );

            coasterCarInstantiator.vehicleGO = backCar;
            coasterCarInstantiator.vehicleGO.gameObject.AddComponent <RestraintRotationController>().closedAngles =
                new Vector3(110, 0, 0);

            Utility.recursiveFindTransformsStartingWith("wheel", backCar.transform, transforms);
            foreach (var transform in transforms)
            {
                transform.gameObject.AddComponent <FrictionWheelAnimator>();
            }


            binder.Apply();
        }