public void SavePlayer() { PlayerSaveModel player_model = new PlayerSaveModel(); player_model.ReadData(gameObject); if (is_config) { player_model.position = stored_pos; player_model.roation = stored_rotation; } //************ //Used Modules //************ GameObject go = UnityFunctions.modules; ModuleSystemInfo[] modules = go.GetComponentsInChildren <ModuleSystemInfo>(); foreach (ModuleSystemInfo e in modules) { ModuleSaveModel m = new ModuleSaveModel(); m.ReadData(e.gameObject); player_model.modules.Add(m); } //************** //Stored Modules //************** //go = GameObject.Find("Stored_Modules"); modules = UnityFunctions.stored_modules.GetComponentsInChildren <ModuleSystemInfo>(); foreach (ModuleSystemInfo e in modules) { ModuleSaveModel m = new ModuleSaveModel(); m.ReadData(e.gameObject); player_model.stored_modules.Add(m); } string json = JsonUtility.ToJson(player_model); File.WriteAllText(Application.persistentDataPath + "/player_config.save", json); }
public GameObject Create_Module(ModuleSaveModel model) { //GameObject refab = Resources.Load(model.module_name.ToString()) as GameObject; Recipe r = UnityFunctions.GetItemTypeItem(model.item_type); if (r.preFab != null) { GameObject modules = GameObject.Find("Modules"); GameObject stored_modules = GameObject.Find("Stored_Modules"); ShipModule sm = modules.GetComponentInChildren <ShipModule>(); GameObject obj_module = null; if (sm == null) { //Debug.Log("Loading Model"); obj_module = Instantiate(r.preFab, gameObject.transform.position, gameObject.transform.rotation) as GameObject; sm = obj_module.GetComponent <ShipModule>(); if (sm != null) { sm.LoadMountPoints(); } } else { if (model.is_internal_module == false) { MountPoint mp = null; if (model.is_in_storage == false) { mp = sm.mount_points[0]; } else { mp = sm.mount_points[model.mount_point - 1]; } if (mp != null) { obj_module = Instantiate(r.preFab, mp.transform.position, mp.transform.rotation) as GameObject; } } else { obj_module = Instantiate(r.preFab, stored_modules.transform) as GameObject; } } //Need to add the keybindings if (obj_module == null) { return(null); } ModuleSystemInfo mod_sys = obj_module.GetComponent <ModuleSystemInfo>(); ItemResorce ir = obj_module.GetComponent <ItemResorce>(); //mod_sys.key_mappings = model.key_mappings; //mod_sys.id = model.id; mod_sys.current_health = model.health; mod_sys.mount_point = model.mount_point; mod_sys.order_layer = model.order_layer; mod_sys.is_internal_module = model.is_internal_module; mod_sys.active = model.enabled; mod_sys.upgrades.Clear(); //Load upgrades foreach (string s in model.upgrades) { Upgrade_Settings upgrade = Resources.Load(s) as Upgrade_Settings; mod_sys.upgrades.Add(upgrade); } return(obj_module); } else { return(null); } }