public ScreenInventoryTransferModel(ObjectInventoryManager worldObject, List <Item> local, List <Item> remote)
        {
            remoteInventoryType = worldObject.inventory.inventoryType;

            localInventoryScroll = new ScrollListModel(worldObject.containLimit);

            if (remoteInventoryType == ObjectInventoryTypes.Type.Scroll)
            {
                remoteInventory = new ScrollListModel(worldObject.containLimit);
            }
            else
            {
                remoteInventory = new ScreenMachineProcessorModel(worldObject);
            }

            localInventoryScroll.AddContainers(local);
            remoteInventory.AddContainers(remote);
        }
        public void TransferItems(iScreenTransferSubModel local, iScreenTransferSubModel remote, bool toPlayer)
        {
            var ToTransfer = local.GetSelectedContainers();

            if (currentObject.CanReceive(local.GetSelectedAsItems()) || toPlayer)
            {
                //Reset remote model to only include the non selected
                local.RemoveSelected();

                //Add the to transfer items to the local model
                remote.MergeWithInventory(ToTransfer);
                remote.DeselectAll();

                view.UpdateModels();
                view.ScrollListChanged();
                UpdateModel();
            }
            else
            {
                Debug.Log("This inventory cannot receive these items");
            }
        }