Skip to content

Commit

Permalink
Fix interfaces not correctly exposing the inventory capability
Browse files Browse the repository at this point in the history
  • Loading branch information
rubensworks committed Oct 7, 2016
1 parent fcb8e7c commit 7bcab90
Showing 1 changed file with 3 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.cyclops.colossalchests.tileentity;

import com.google.common.collect.Maps;
import lombok.Getter;
import lombok.experimental.Delegate;
import net.minecraft.entity.player.EntityPlayer;
Expand All @@ -10,17 +9,15 @@
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3i;
import net.minecraft.util.text.ITextComponent;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.SidedInvWrapper;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.wrapper.InvWrapper;
import org.cyclops.colossalchests.Capabilities;
import org.cyclops.commoncapabilities.api.capability.inventorystate.IInventoryState;
import org.cyclops.cyclopscore.helper.TileHelpers;
import org.cyclops.cyclopscore.persist.nbt.NBTPersist;
import org.cyclops.cyclopscore.tileentity.CyclopsTileEntity;

import java.lang.ref.WeakReference;
import java.util.Map;

/**
* A machine that can infuse things with blood.
Expand All @@ -35,14 +32,10 @@ public class TileInterface extends CyclopsTileEntity implements ISidedInventory
@NBTPersist
@Getter
private Vec3i corePosition = null;
protected final Map<EnumFacing, IItemHandler> sidedInventoryHandlers;
private WeakReference<TileColossalChest> coreReference = new WeakReference<TileColossalChest>(null);

public TileInterface() {
this.sidedInventoryHandlers = Maps.newHashMap();
for(EnumFacing side : EnumFacing.VALUES) {
this.sidedInventoryHandlers.put(side, new SidedInvWrapper(this, side));
}
addCapabilityInternal(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, new InvWrapper(this));
if (Capabilities.INVENTORY_STATE != null) {
addInventoryStateCapability();
}
Expand Down Expand Up @@ -243,14 +236,6 @@ public ITextComponent getDisplayName() {
return core.getDisplayName();
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
return (T) sidedInventoryHandlers.get(facing);
}
return super.getCapability(capability, facing);
}


/**
* {@link IInventoryState} implementation for the {@link TileInterface} that proxies a {@link TileColossalChest}.
Expand Down

0 comments on commit 7bcab90

Please sign in to comment.