Quantum-Engineering/StateManager.cs
2020-09-16 21:40:25 -05:00

478 lines
38 KiB
C#

using UnityEngine;
//! This class handles unique ID assignment and saving & loading of worlds.
public class StateManager : MonoBehaviour
{
public bool saving;
public bool dataSaved;
public bool worldLoaded;
public GameObject DarkMatterCollector;
public GameObject DarkMatterConduit;
public GameObject IronBlock;
public GameObject IronRamp;
public GameObject Steel;
public GameObject SteelRamp;
public GameObject StorageContainer;
public GameObject Glass;
public GameObject UniversalExtractor;
public GameObject UniversalConduit;
public GameObject PowerConduit;
public GameObject Smelter;
public GameObject Press;
public GameObject GearCutter;
public GameObject AlloySmelter;
public GameObject SolarPanel;
public GameObject Generator;
public GameObject Extruder;
public GameObject Turret;
public GameObject Auger;
public GameObject HeatExchanger;
public GameObject ElectricLight;
public GameObject Retriever;
public GameObject AirLock;
public GameObject NuclearReactor;
public GameObject ReactorTurbine;
public GameObject StorageComputer;
public GameObject AutoCrafter;
public GameObject RailCartHub;
public GameObject RailCart;
public GameObject Brick;
public GameObject modMachine;
public GameObject BuiltObjects;
public string WorldName = "World";
private float updateTick;
private string ObjectName = "";
public string PartName = "";
public Vector3 PartPosition = new Vector3(0.0f, 0.0f, 0.0f);
public Quaternion PartRotation = Quaternion.Euler(new Vector3(0.0f, 0.0f, 0.0f));
public bool Loaded = false;
public bool assigningIDs;
private Vector3 EmptyVector = new Vector3(0.0f, 0.0f, 0.0f);
private Vector3 ObjectPosition;
private Quaternion ObjectRotation;
private AddressManager addressManager;
private SaveManager saveManager;
private Coroutine addressingCoroutine;
private Coroutine saveCoroutine;
//! Called by unity engine before the first update.
public void Start()
{
saveManager = new SaveManager(this);
}
//! Update is called once per frame.
public void Update()
{
MainMenu mainMenu = GameObject.Find("Player").GetComponent<MainMenu>();
if (mainMenu.worldSelected == true && worldLoaded == false)
{
LoadWorld();
worldLoaded = true;
}
if (worldLoaded == true)
{
if (addressManager == null)
{
addressManager = new AddressManager(this);
}
updateTick += 1 * Time.deltaTime;
if (updateTick > 1)
{
if (saving == false)
{
AssignIDs();
}
updateTick = 0;
}
}
}
//! Loads a saved world.
private void LoadWorld()
{
if (Loaded == false && PlayerPrefsX.GetIntArray(WorldName + "idList").Length > 0)
{
int[] idList = PlayerPrefsX.GetIntArray(WorldName + "idList");
foreach (int objectID in idList)
{
ObjectPosition = PlayerPrefsX.GetVector3(WorldName + objectID + "Position");
ObjectRotation = PlayerPrefsX.GetQuaternion(WorldName + objectID + "Rotation");
ObjectName = FileBasedPrefs.GetString(WorldName + objectID + "Name");
if (ObjectName != "" && ObjectPosition != EmptyVector)
{
if (ObjectName == WorldName + "AirLock")
{
GameObject SpawnedObject = Instantiate(AirLock, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "DarkMatterCollector")
{
GameObject SpawnedObject = Instantiate(DarkMatterCollector, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<DarkMatterCollector>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<DarkMatterCollector>().darkMatterAmount = FileBasedPrefs.GetFloat(ObjectName + objectID + "darkMatterAmount");
SpawnedObject.GetComponent<DarkMatterCollector>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "DarkMatterConduit")
{
GameObject SpawnedObject = Instantiate(DarkMatterConduit, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<DarkMatterConduit>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<DarkMatterConduit>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<DarkMatterConduit>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<DarkMatterConduit>().range = FileBasedPrefs.GetInt(ObjectName + objectID + "range");
SpawnedObject.GetComponent<DarkMatterConduit>().darkMatterAmount = FileBasedPrefs.GetFloat(ObjectName + objectID + "darkMatterAmount");
SpawnedObject.GetComponent<DarkMatterConduit>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "RailCartHub")
{
GameObject SpawnedObject = Instantiate(RailCartHub, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<RailCartHub>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<RailCartHub>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<RailCartHub>().range = FileBasedPrefs.GetInt(ObjectName + objectID + "range");
SpawnedObject.GetComponent<RailCartHub>().stop = FileBasedPrefs.GetBool(ObjectName + objectID + "stop");
SpawnedObject.GetComponent<RailCartHub>().circuit = FileBasedPrefs.GetInt(ObjectName + objectID + "circuit");
SpawnedObject.GetComponent<RailCartHub>().stopTime = FileBasedPrefs.GetFloat(ObjectName + objectID + "stopTime");
SpawnedObject.GetComponent<RailCartHub>().centralHub = FileBasedPrefs.GetBool(ObjectName + objectID + "centralHub");
SpawnedObject.GetComponent<RailCartHub>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "RailCart")
{
GameObject SpawnedObject = Instantiate(RailCart, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<RailCart>().creationMethod = "spawned";
SpawnedObject.GetComponent<RailCart>().targetID = FileBasedPrefs.GetString(ObjectName + objectID + "targetID");
}
if (ObjectName == WorldName + "UniversalConduit")
{
GameObject SpawnedObject = Instantiate(UniversalConduit, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<UniversalConduit>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<UniversalConduit>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<UniversalConduit>().type = FileBasedPrefs.GetString(ObjectName + objectID + "type");
SpawnedObject.GetComponent<UniversalConduit>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<UniversalConduit>().range = FileBasedPrefs.GetInt(ObjectName + objectID + "range");
SpawnedObject.GetComponent<UniversalConduit>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<UniversalConduit>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Retriever")
{
GameObject SpawnedObject = Instantiate(Retriever, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Retriever>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<Retriever>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<Retriever>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Retriever>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<Retriever>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "AutoCrafter")
{
GameObject SpawnedObject = Instantiate(AutoCrafter, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<AutoCrafter>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<AutoCrafter>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<AutoCrafter>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Smelter")
{
GameObject SpawnedObject = Instantiate(Smelter, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Smelter>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<Smelter>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<Smelter>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<Smelter>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<Smelter>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Smelter>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<Smelter>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "HeatExchanger")
{
GameObject SpawnedObject = Instantiate(HeatExchanger, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<HeatExchanger>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<HeatExchanger>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<HeatExchanger>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<HeatExchanger>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<HeatExchanger>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<HeatExchanger>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "SolarPanel")
{
GameObject SpawnedObject = Instantiate(SolarPanel, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PowerSource>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<PowerSource>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Generator")
{
GameObject SpawnedObject = Instantiate(Generator, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PowerSource>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<PowerSource>().creationMethod = "spawned";
SpawnedObject.GetComponent<PowerSource>().fuelType = FileBasedPrefs.GetString(ObjectName + objectID + "fuelType");
SpawnedObject.GetComponent<PowerSource>().fuelAmount = FileBasedPrefs.GetInt(ObjectName + objectID + "fuelAmount");
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "NuclearReactor")
{
GameObject SpawnedObject = Instantiate(NuclearReactor, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<NuclearReactor>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "ReactorTurbine")
{
GameObject SpawnedObject = Instantiate(ReactorTurbine, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PowerSource>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<PowerSource>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "PowerConduit")
{
GameObject SpawnedObject = Instantiate(PowerConduit, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PowerConduit>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<PowerConduit>().outputID1 = FileBasedPrefs.GetString(ObjectName + objectID + "outputID1");
SpawnedObject.GetComponent<PowerConduit>().outputID2 = FileBasedPrefs.GetString(ObjectName + objectID + "outputID2");
SpawnedObject.GetComponent<PowerConduit>().dualOutput = FileBasedPrefs.GetBool(ObjectName + objectID + "dualOutput");
SpawnedObject.GetComponent<PowerConduit>().range = FileBasedPrefs.GetInt(ObjectName + objectID + "range");
SpawnedObject.GetComponent<PowerConduit>().powerAmount = FileBasedPrefs.GetInt(ObjectName + objectID + "powerAmount");
SpawnedObject.GetComponent<PowerConduit>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Auger")
{
GameObject SpawnedObject = Instantiate(Auger, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Auger>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Auger>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<Auger>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "ElectricLight")
{
GameObject SpawnedObject = Instantiate(ElectricLight, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<ElectricLight>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Turret")
{
GameObject SpawnedObject = Instantiate(Turret, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Turret>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Turret>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "AlloySmelter")
{
GameObject SpawnedObject = Instantiate(AlloySmelter, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<AlloySmelter>().inputID1 = FileBasedPrefs.GetString(ObjectName + objectID + "inputID1");
SpawnedObject.GetComponent<AlloySmelter>().inputID2 = FileBasedPrefs.GetString(ObjectName + objectID + "inputID2");
SpawnedObject.GetComponent<AlloySmelter>().inputType1 = FileBasedPrefs.GetString(ObjectName + objectID + "inputType1");
SpawnedObject.GetComponent<AlloySmelter>().inputType2 = FileBasedPrefs.GetString(ObjectName + objectID + "inputType2");
SpawnedObject.GetComponent<AlloySmelter>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<AlloySmelter>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<AlloySmelter>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<AlloySmelter>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<AlloySmelter>().amount2 = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount2");
SpawnedObject.GetComponent<AlloySmelter>().outputAmount = FileBasedPrefs.GetFloat(ObjectName + objectID + "outputAmount");
SpawnedObject.GetComponent<AlloySmelter>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Press")
{
GameObject SpawnedObject = Instantiate(Press, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Press>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<Press>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<Press>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<Press>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<Press>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Press>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<Press>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Extruder")
{
GameObject SpawnedObject = Instantiate(Extruder, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Extruder>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<Extruder>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<Extruder>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<Extruder>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<Extruder>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<Extruder>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<Extruder>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "GearCutter")
{
GameObject SpawnedObject = Instantiate(GearCutter, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<GearCutter>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<GearCutter>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<GearCutter>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<GearCutter>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<GearCutter>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<GearCutter>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<GearCutter>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "UniversalExtractor")
{
GameObject SpawnedObject = Instantiate(UniversalExtractor, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<UniversalExtractor>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<UniversalExtractor>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<UniversalExtractor>().type = FileBasedPrefs.GetString(ObjectName + objectID + "type");
SpawnedObject.GetComponent<UniversalExtractor>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "StorageContainer")
{
GameObject SpawnedObject = Instantiate(StorageContainer, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "StorageComputer")
{
GameObject SpawnedObject = Instantiate(StorageComputer, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "IronBlock")
{
GameObject SpawnedObject = Instantiate(IronBlock, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<IronBlock>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "IronRamp")
{
GameObject SpawnedObject = Instantiate(IronRamp, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<IronBlock>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Steel")
{
GameObject SpawnedObject = Instantiate(Steel, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Steel>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "SteelRamp")
{
GameObject SpawnedObject = Instantiate(SteelRamp, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Steel>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Brick")
{
GameObject SpawnedObject = Instantiate(Brick, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Brick>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "Glass")
{
GameObject SpawnedObject = Instantiate(Glass, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<Glass>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
}
if (ObjectName == WorldName + "ModMachine")
{
GameObject SpawnedObject = Instantiate(modMachine, ObjectPosition, ObjectRotation);
SpawnedObject.GetComponent<ModMachine>().machineName = FileBasedPrefs.GetString(ObjectName + objectID + "machineName");
SpawnedObject.GetComponent<ModMachine>().inputID = FileBasedPrefs.GetString(ObjectName + objectID + "inputID");
SpawnedObject.GetComponent<ModMachine>().outputID = FileBasedPrefs.GetString(ObjectName + objectID + "outputID");
SpawnedObject.GetComponent<ModMachine>().inputType = FileBasedPrefs.GetString(ObjectName + objectID + "inputType");
SpawnedObject.GetComponent<ModMachine>().outputType = FileBasedPrefs.GetString(ObjectName + objectID + "outputType");
SpawnedObject.GetComponent<ModMachine>().speed = FileBasedPrefs.GetInt(ObjectName + objectID + "speed");
SpawnedObject.GetComponent<ModMachine>().amount = FileBasedPrefs.GetFloat(ObjectName + objectID + "amount");
SpawnedObject.GetComponent<ModMachine>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().creationMethod = "spawned";
SpawnedObject.GetComponent<PhysicsHandler>().falling = FileBasedPrefs.GetBool(ObjectName + objectID + "falling");
SpawnedObject.GetComponent<PhysicsHandler>().fallingStack = FileBasedPrefs.GetBool(ObjectName + objectID + "fallingStack");
}
}
}
}
Loaded = true;
GetComponent<GameManager>().initGlass = FileBasedPrefs.GetBool(WorldName + "initGlass");
GetComponent<GameManager>().initBrick = FileBasedPrefs.GetBool(WorldName + "initBrick");
GetComponent<GameManager>().initIron = FileBasedPrefs.GetBool(WorldName + "initIron");
GetComponent<GameManager>().initSteel = FileBasedPrefs.GetBool(WorldName + "initSteel");
GameObject.Find("GameManager").GetComponent<GameManager>().meshManager.CombineBlocks();
}
//! Assigns ID to objects in the world.
private void AssignIDs()
{
addressingCoroutine = StartCoroutine(addressManager.AddressingCoroutine());
}
//! Saves the game.
public void SaveData()
{
if (assigningIDs == false)
saveCoroutine = StartCoroutine(saveManager.SaveDataCoroutine());
}
//! Returns true if the object in question is a storage container.
public bool IsStorageContainer(GameObject go)
{
return go.GetComponent<InventoryManager>() != null
&& go.GetComponent<RailCart>() == null
&& go.GetComponent<PlayerController>() == null
&& go.GetComponent<Retriever>() == null
&& go.GetComponent<AutoCrafter>() == null;
}
}