Esempio n. 1
0
    public void OnDrop(PointerEventData eventData)
    {
        ItemDragHandler  d              = eventData.pointerDrag.GetComponent <ItemDragHandler>();
        InventoryItem    inv_item       = eventData.pointerDrag.gameObject.GetComponent <InventoryItem>();
        EnabledDisabled  enable_disable = gameObject.GetComponentInParent <EnabledDisabled>();
        ModuleSystemInfo sys_info       = inv_item.item.GetComponent <ModuleSystemInfo>();

        if (sys_info.allow_multiple_install == false && inventory_box == Enums.emun_inventory.Selected)
        {
            if (UnityFunctions.ModuleInstalled(inv_item.item_type))
            {
                return;
            }
        }

        //*****************************************************
        //Couple of test to make sure we can drop the item here
        //*****************************************************
        if (enable_disable != null)
        {
            if (enable_disable.Is_Enabled == false)
            {
                return;
            }
        }
        if (inv_item != null)
        {
            if (inv_item.is_disabled)
            {
                d.parentToReturnTo = this.transform; return;
            }
        }

        if (d != null)
        {
            if (enforce_max == true)
            {
                InventoryItem[] i = GetComponentsInChildren <InventoryItem>();
                if (i != null)
                {
                    if (i.Length + 1 > max_items)
                    {
                        return;
                    }
                }
            }

            if (inventory_box == Enums.emun_inventory.Selected)
            {
                MountPoint mp = GetComponentInParent <MountPoint>();
                if (mp != null)
                {
                    if (inv_item.is_command_module)
                    {
                        storage.Equip(inv_item.item);
                        storage.Build_Mount_Point_Drop_Panels();
                    }
                    else
                    {
                        MountPoint amp = mp.associated_mountpoint.GetComponent <MountPoint>();
                        sys_info.mount_point = amp.index;
                        storage.Equip(inv_item.item);
                    }
                }
            }
            else
            {
                storage.Store_Module(inv_item.item);

                if (sys_info.is_command_module)
                {
                    Destroy(eventData.pointerDrag.gameObject);
                    storage.SetScreenNoCommandModule();
                }
            }

            d.parentToReturnTo = this.transform;
        }
    }