public override void OnLoad() { gameObjects = new List <Objects>(); //Player Vehicles // For each vehicle in the game, a new instance of Vehicle class is initialized. SATSUMA = new Vehicle("SATSUMA(557kg, 248)"); FLATBED = new Vehicle("FLATBED"); GIFU = new Gifu("GIFU(750/450psi)"); HAYOSIKO = new Vehicle("HAYOSIKO(1500kg, 250)"); JONNEZ = new Vehicle("JONNEZ ES(Clone)"); KEKMET = new Vehicle("KEKMET(350-400psi)"); RUSKO = new Vehicle("RCO_RUSCKO12(270)"); FERNDALE = new Vehicle("FERNDALE(1630kg)"); CABIN = GameObject.Find("CABIN"); AXLES = SATSUMA.Object.GetComponent <Axles>(); CAR_DYNAMICS = SATSUMA.Object.GetComponent <CarDynamics>(); ModConsole.Print("Cars Done"); //Locations and objects that can be enabled and disabled easily on proximity gameObjects.Add(new Objects(GameObject.Find("BOAT"))); //Boat is not a Car, oddly enough. gameObjects.Add(new Objects(GameObject.Find("COTTAGE"))); gameObjects.Add(new Objects(GameObject.Find("DANCEHALL"))); gameObjects.Add(new Objects(GameObject.Find("INSPECTION"))); gameObjects.Add(new Objects(GameObject.Find("LANDFILL"))); gameObjects.Add(new Objects(GameObject.Find("PERAJARVI"))); gameObjects.Add(new Objects(GameObject.Find("RYKIPOHJA"))); gameObjects.Add(new Objects(GameObject.Find("SOCCER"))); gameObjects.Add(new Objects(GameObject.Find("WATERFACILITY"))); gameObjects.Add(new Objects(GameObject.Find("TREES1_COLL"))); gameObjects.Add(new Objects(GameObject.Find("TREES2_COLL"))); gameObjects.Add(new Objects(GameObject.Find("TREES3_COLL"))); // Initialize Store class STORE = new Store(); REPAIRSHOP = new RepairShop(); gameObjects.Add(new Objects(GameObject.Find("DRAGRACE"), 1100)); Transform buildings = GameObject.Find("Buildings").transform; // Find house of Teimo and detach it from Perajarvi, so it can be loaded and unloaded separately // It shouldn't cause any issues, but that needs testing. GameObject perajarvi = GameObject.Find("PERAJARVI"); perajarvi.transform.Find("HouseRintama4").parent = buildings; // Same for chicken house perajarvi.transform.Find("ChickenHouse").parent = buildings; // Chicken house (barn) close to player's house Transform playerChickenHouse = GameObject.Find("Buildings").transform.Find("ChickenHouse"); playerChickenHouse.parent = null; // Fix for church wall. Changing it's parent ot NULL, so it will not be loaded or unloaded. // It used to be changed to CHURCH gameobject, // but the Amis cars (yellow and grey cars) used to end up in the graveyard area. GameObject.Find("CHURCHWALL").transform.parent = null; // Fix for old house on the way from Perajarvi to Ventti's house (HouseOld5) perajarvi.transform.Find("HouseOld5").parent = buildings; // Perajarvi fixes for multiple objects with the same name. // Instead of being the part of Perajarvi, we're changing it to be the part of Buildings. foreach (Transform trans in perajarvi.GetComponentsInChildren <Transform>()) { // Fix for disappearing grain processing plant // https://my-summer-car.fandom.com/wiki/Grain_processing_plant if (trans.gameObject.name.Contains("silo")) { trans.parent = buildings; continue; } // Fix for Ventti's and Teimo's mailboxes (and pretty much all mailboxes that are inside of Perajarvi) if (trans.gameObject.name == "MailBox") { trans.parent = buildings; continue; } // Fix for greenhouses on the road from Perajarvi to Ventti's house if (trans.name == "Greenhouse") { trans.parent = buildings; continue; } } // Possible fix for Jokke. // Needs testing foreach (Transform trans in GameObject.Find("KILJUGUY").transform.GetComponentsInChildren <Transform>()) { gameObjects.Add(new Objects(trans.gameObject)); } // Removes the mansion from the Buildings, so the tires will not land under the mansion. GameObject.Find("autiotalo").transform.parent = null; ModConsole.Print("GameObjects Done"); //Things that should be enabled when out of proximity of the house gameObjects.Add(new Objects(GameObject.Find("NPC_CARS"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("RALLY"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("TRAFFIC"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("TRAIN"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("Buildings"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("TrafficSigns"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("ELEC_POLES"), awayFromHouse: true)); gameObjects.Add(new Objects(GameObject.Find("StreetLights"), awayFromHouse: true)); //TODO: Solve Bugs from Unloading/Reloading Satsuma // Bugs: // Can't open doors // May randomly fall through floor //TODO: // (*2) Figure out how to make repairs works at Fleetari's without loading it // (*1) Figure out how to trigger a restock at Tiemos on Thursdays without loading it. //NOTES: // (*1) Partially addressed the Teimo's issue, by unloading part of the shop // (*2) Partially addressed the same way as for Teimo's shop //Camera.main.farClipPlane = (int)RenderDistance.Value; //Helps with lower end GPU's. This specific value. Any others are wrong. PLAYER = GameObject.Find("PLAYER"); YARD = GameObject.Find("YARD"); //Used to find out how far the player is from the Object KINEMATIC = SATSUMA.Object.GetComponent <Rigidbody>(); // Initialize MinorObjects new MinorObjects(); ModConsole.Print("[KruFPS] Found all objects"); DrawDistance = float.Parse(RenderDistance.GetValue().ToString()); //Update saved draw distance variable HookAllSavePoints(); //Hook all save points (it's before first pass of Update) //Camera.main.gameObject.AddComponent<CameraHook>(); }
public override void OnLoad() { gameObjects = new List <GameObject>(); //Player Vehicles // For each vehicle in the game, a new instance of Vehicle class is initialized. SATSUMA = new Vehicle("SATSUMA(557kg, 248)"); SATSUMA_2 = GameObject.Find("SATSUMA(557kg, 248)"); FLATBED = new Vehicle("FLATBED"); GIFU = new Gifu("GIFU(750/450psi)"); HAYOSIKO = new Vehicle("HAYOSIKO(1500kg, 250)"); JONNEZ = new Vehicle("JONNEZ ES(Clone)"); KEKMET = new Vehicle("KEKMET(350-400psi)"); RUSKO = new Vehicle("RCO_RUSCKO12(270)"); FERNDALE = new Vehicle("FERNDALE(1630kg)"); CABIN = GameObject.Find("CABIN"); AXLES = SATSUMA_2.GetComponent <Axles>(); CAR_DYNAMICS = SATSUMA_2.GetComponent <CarDynamics>(); ModConsole.Print("Cars Done"); //Locations and objects that can be enabled and disabled easily on proximity gameObjects.Add(GameObject.Find("BOAT")); //Boat is not a Car, oddly enough. //gameObjects.Add(GameObject.Find("CABIN")); gameObjects.Add(GameObject.Find("COTTAGE")); gameObjects.Add(GameObject.Find("DANCEHALL")); //gameObjects.Add(GameObject.Find("DRAGRACE")); //Is broken when disabled, so leave enabled gameObjects.Add(GameObject.Find("INSPECTION")); gameObjects.Add(GameObject.Find("LANDFILL")); gameObjects.Add(GameObject.Find("PERAJARVI")); //gameObjects.Add(GameObject.Find("REPAIRSHOP")); //Has to be loaded for repairs and such - Maybe fixable gameObjects.Add(GameObject.Find("RYKIPOHJA")); gameObjects.Add(GameObject.Find("SOCCER")); gameObjects.Add(GameObject.Find("WATERFACILITY")); gameObjects.Add(GameObject.Find("KILJUGUY")); gameObjects.Add(GameObject.Find("CHURCHWALL")); gameObjects.Add(GameObject.Find("TREES1_COLL")); gameObjects.Add(GameObject.Find("TREES2_COLL")); gameObjects.Add(GameObject.Find("TREES3_COLL")); // Initialize Store class STORE = new Store(); REPAIRSHOP = new RepairShop(); // Find house of Teimo and detach it from Perajarvi, so it can be loaded and unloaded separately // It shouldn't cause any issues, but that needs testing. GameObject perajarvi = GameObject.Find("PERAJARVI"); GameObject TEIMO_HOUSE = perajarvi.transform.Find("HouseRintama4").gameObject; TEIMO_HOUSE.transform.parent = null; // Same for chicken house GameObject CHICKEN_HOUSE = perajarvi.transform.Find("ChickenHouse").gameObject; CHICKEN_HOUSE.transform.parent = null; // Now that Teimo's house and chicken house is separated from Perajarvi, we can manage them separately. We're throwing them to gameObjects. // Fixes the bug with both dissapearing when leaving Perajarvi, even tho logically they should still load when approached. gameObjects.Add(TEIMO_HOUSE); gameObjects.Add(CHICKEN_HOUSE); // Fix for disappearing grain processing plant // https://my-summer-car.fandom.com/wiki/Grain_processing_plant // // It also puts them to farGameObjects - objects that are larger and need to be rendered from further distance foreach (Transform trans in perajarvi.GetComponentsInChildren <Transform>()) { if (trans.gameObject.name.Contains("silo")) { trans.parent = null; farGameObjects.Add(trans.gameObject); } } // Chicken house (barn) close to player's house Transform playerChickenHouse = GameObject.Find("Buildings").transform.Find("ChickenHouse"); playerChickenHouse.parent = null; gameObjects.Add(playerChickenHouse.gameObject); ModConsole.Print("GameObjects Done"); //Things that should be enabled when out of proximity of the house awayFromHouse = new List <GameObject>(); awayFromHouse.Add(GameObject.Find("NPC_CARS")); awayFromHouse.Add(GameObject.Find("RALLY")); awayFromHouse.Add(GameObject.Find("TRAFFIC")); awayFromHouse.Add(GameObject.Find("TRAIN")); awayFromHouse.Add(GameObject.Find("Buildings")); awayFromHouse.Add(GameObject.Find("TrafficSigns")); awayFromHouse.Add(GameObject.Find("ELEC_POLES")); //TODO: Solve Bugs from Unloading/Reloading Satsuma // Bugs: // Can't open doors // May randomly fall through floor //TODO: // Figure out how to make repairs works at Fleetari's without loading it // (*1) Figure out how to trigger a restock at Tiemos on Thursdays without loading it. //NOTES: // (*1) Partially addressed the Teimo's issue, by unloading part of the shop //Camera.main.farClipPlane = (int)RenderDistance.Value; //Helps with lower end GPU's. This specific value. Any others are wrong. PLAYER = GameObject.Find("PLAYER"); YARD = GameObject.Find("YARD"); //Used to find out how far the player is from the Object KINEMATIC = SATSUMA.Object.GetComponent <Rigidbody>(); // Get all minor objects from the game world (like beer cases, sausages) // Only items that are in the listOfMinorObjects list, and also contain "(itemx)" in their name will be loaded // UPDATED: added support for (Clone) items GameObject[] allObjects = Object.FindObjectsOfType <GameObject>(); foreach (GameObject gameObject in allObjects) { foreach (string itemName in listOfMinorObjects) { if (gameObject.name.Contains(itemName) && gameObject.name.ContainsAny("(itemx)", "(Clone)")) { minorObjects.Add(gameObject); } } } ModConsole.Print("[KruFPS] Found all objects"); DrawDistance = float.Parse(RenderDistance.GetValue().ToString()); //Update saved draw distance variable HookAllSavePoints(); //Hook all save points (it's before first pass of Update) }