Search in sources :

Example 1 with WorldlyContainer

use of net.minecraft.world.WorldlyContainer in project SpongeCommon by SpongePowered.

the class DefaultSingleBlockCarrier method inventory.

static Inventory inventory(final Direction from, final BlockCarrier thisThing) {
    if (thisThing instanceof WorldlyContainer) {
        final net.minecraft.core.Direction facing = DirectionFacingProvider.INSTANCE.get(from).get();
        final int[] slots = ((WorldlyContainer) thisThing).getSlotsForFace(facing);
        if (slots.length == 0) {
            return new EmptyInventoryImpl(thisThing.inventory());
        }
        // build query for each slot
        final Query.Builder builder = Query.builder();
        Arrays.stream(slots).mapToObj(slot -> QueryTypes.KEY_VALUE.get().of(SlotMatchers.index(slot))).forEach(builder::and);
        final Query query = builder.build();
        return thisThing.inventory().query(query);
    }
    return thisThing.inventory();
}
Also used : Inventory(org.spongepowered.api.item.inventory.Inventory) SlotMatchers(org.spongepowered.api.item.inventory.slot.SlotMatchers) Arrays(java.util.Arrays) WorldlyContainer(net.minecraft.world.WorldlyContainer) DirectionFacingProvider(org.spongepowered.common.registry.provider.DirectionFacingProvider) MissingImplementationException(org.spongepowered.common.util.MissingImplementationException) Carrier(org.spongepowered.api.item.inventory.Carrier) QueryTypes(org.spongepowered.api.item.inventory.query.QueryTypes) Direction(org.spongepowered.api.util.Direction) Query(org.spongepowered.api.item.inventory.query.Query) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) BlockCarrier(org.spongepowered.api.item.inventory.BlockCarrier) SingleBlockCarrier(org.spongepowered.api.item.inventory.SingleBlockCarrier) Query(org.spongepowered.api.item.inventory.query.Query) WorldlyContainer(net.minecraft.world.WorldlyContainer)

Aggregations

Arrays (java.util.Arrays)1 WorldlyContainer (net.minecraft.world.WorldlyContainer)1 BlockCarrier (org.spongepowered.api.item.inventory.BlockCarrier)1 Carrier (org.spongepowered.api.item.inventory.Carrier)1 Inventory (org.spongepowered.api.item.inventory.Inventory)1 SingleBlockCarrier (org.spongepowered.api.item.inventory.SingleBlockCarrier)1 Query (org.spongepowered.api.item.inventory.query.Query)1 QueryTypes (org.spongepowered.api.item.inventory.query.QueryTypes)1 SlotMatchers (org.spongepowered.api.item.inventory.slot.SlotMatchers)1 CarriedInventory (org.spongepowered.api.item.inventory.type.CarriedInventory)1 Direction (org.spongepowered.api.util.Direction)1 DirectionFacingProvider (org.spongepowered.common.registry.provider.DirectionFacingProvider)1 MissingImplementationException (org.spongepowered.common.util.MissingImplementationException)1