Пример #1
0
    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);
    }
Пример #2
0
    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);
        }
    }