public void Equip(GameObject obj) { if (modules_game_object == null) { modules_game_object = GameObject.Find("Modules"); } ModuleSystemInfo module_info = obj.GetComponent <ModuleSystemInfo>(); ItemResorce ir = obj.GetComponent <ItemResorce>(); SpaceShipMovment controls = gameObject.GetComponent <SpaceShipMovment>(); obj.transform.parent = modules_game_object.transform; if (ir.Item_type == Enums.enum_item.module_command_module_type1) { command_module = obj.GetComponent <ShipModule>(); //First we need to store the item command_module.LoadMountPoints(); MountPoint mp = command_module.mount_points[0]; //Set the max storage command_module.ShowMountPoints(); max_storage_items = module_info.max_storage_items; mp.max_mounting = max_storage_items; } else { MountPoint mp = command_module.mount_points[module_info.mount_point]; obj.transform.position = mp.transform.position; obj.transform.rotation = mp.transform.rotation; module_info.mount_point = mp.index; module_info.key_mappings = mp.key_mappings; module_info.SetRenderOrder(mp.render_order); } foreach (KeyMappingModel e in module_info.key_mappings) { controls.AddKeyBinding(e, obj); } module_info.IteminUse(module_info.is_internal_module); }
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); } }