Search in sources :

Example 1 with ResultSlotAccessor

use of org.spongepowered.common.accessor.world.inventory.ResultSlotAccessor in project SpongeCommon by SpongePowered.

the class ContainerUtil method generateAdapterLens.

@SuppressWarnings({ "unchecked", "rawtypes" })
private static Lens generateAdapterLens(final SlotLensProvider slots, final int index, final org.spongepowered.common.inventory.util.ContainerUtil.CraftingInventoryData crafting, final List<Slot> slotList, final net.minecraft.world.@Nullable Container subInventory) {
    Lens lens = ((InventoryBridge) subInventory).bridge$getAdapter().inventoryAdapter$getRootLens();
    if (lens instanceof PlayerInventoryLens) {
        if (slotList.size() == 36) {
            return new DelegatingLens(index, new PrimaryPlayerInventoryLens(0, slots, true), slots);
        }
        return lens;
    }
    // For Crafting Result we need the Slot to get Filter logic
    if (subInventory instanceof ResultContainer) {
        final Slot slot = slotList.get(0);
        if (slot instanceof ResultSlotAccessor) {
            crafting.out = index;
            if (crafting.base == null) {
                // In case we do not find the InventoryCrafting later assume it is directly after the SlotCrafting
                // e.g. for IC2 ContainerIndustrialWorkbench
                crafting.base = index + 1;
                crafting.grid = ((ResultSlotAccessor) slot).accessor$craftSlots();
            }
        }
    }
    if (subInventory instanceof CraftingContainer) {
        crafting.base = index;
        crafting.grid = ((CraftingContainer) subInventory);
    }
    return new DelegatingLens(index, slotList, lens, slots);
}
Also used : CraftingContainer(net.minecraft.world.inventory.CraftingContainer) PrimaryPlayerInventoryLens(org.spongepowered.common.inventory.lens.impl.comp.PrimaryPlayerInventoryLens) PlayerInventoryLens(org.spongepowered.common.inventory.lens.impl.minecraft.PlayerInventoryLens) PrimaryPlayerInventoryLens(org.spongepowered.common.inventory.lens.impl.comp.PrimaryPlayerInventoryLens) ResultSlotAccessor(org.spongepowered.common.accessor.world.inventory.ResultSlotAccessor) Slot(net.minecraft.world.inventory.Slot) CraftingInventoryLens(org.spongepowered.common.inventory.lens.impl.comp.CraftingInventoryLens) DelegatingLens(org.spongepowered.common.inventory.lens.impl.DelegatingLens) PrimaryPlayerInventoryLens(org.spongepowered.common.inventory.lens.impl.comp.PrimaryPlayerInventoryLens) GridInventoryLens(org.spongepowered.common.inventory.lens.impl.comp.GridInventoryLens) ContainerLens(org.spongepowered.common.inventory.lens.impl.minecraft.container.ContainerLens) CompoundLens(org.spongepowered.common.inventory.lens.impl.CompoundLens) Lens(org.spongepowered.common.inventory.lens.Lens) SingleGridLens(org.spongepowered.common.inventory.lens.impl.minecraft.SingleGridLens) PlayerInventoryLens(org.spongepowered.common.inventory.lens.impl.minecraft.PlayerInventoryLens) DelegatingLens(org.spongepowered.common.inventory.lens.impl.DelegatingLens) ResultContainer(net.minecraft.world.inventory.ResultContainer)

Aggregations

CraftingContainer (net.minecraft.world.inventory.CraftingContainer)1 ResultContainer (net.minecraft.world.inventory.ResultContainer)1 Slot (net.minecraft.world.inventory.Slot)1 ResultSlotAccessor (org.spongepowered.common.accessor.world.inventory.ResultSlotAccessor)1 Lens (org.spongepowered.common.inventory.lens.Lens)1 CompoundLens (org.spongepowered.common.inventory.lens.impl.CompoundLens)1 DelegatingLens (org.spongepowered.common.inventory.lens.impl.DelegatingLens)1 CraftingInventoryLens (org.spongepowered.common.inventory.lens.impl.comp.CraftingInventoryLens)1 GridInventoryLens (org.spongepowered.common.inventory.lens.impl.comp.GridInventoryLens)1 PrimaryPlayerInventoryLens (org.spongepowered.common.inventory.lens.impl.comp.PrimaryPlayerInventoryLens)1 PlayerInventoryLens (org.spongepowered.common.inventory.lens.impl.minecraft.PlayerInventoryLens)1 SingleGridLens (org.spongepowered.common.inventory.lens.impl.minecraft.SingleGridLens)1 ContainerLens (org.spongepowered.common.inventory.lens.impl.minecraft.container.ContainerLens)1