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(); }
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); }
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); }
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(); }