Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. package shadows.compatched;
  2.  
  3. import com.tattyseal.compactstorage.tileentity.TileEntityChest;
  4. import com.tattyseal.compactstorage.tileentity.TileEntityChestBuilder;
  5.  
  6. import net.minecraft.inventory.IInventory;
  7. import net.minecraft.tileentity.TileEntity;
  8. import net.minecraft.util.EnumFacing;
  9. import net.minecraft.util.ResourceLocation;
  10. import net.minecraftforge.common.MinecraftForge;
  11. import net.minecraftforge.common.capabilities.Capability;
  12. import net.minecraftforge.common.capabilities.ICapabilityProvider;
  13. import net.minecraftforge.event.AttachCapabilitiesEvent;
  14. import net.minecraftforge.fml.common.Mod;
  15. import net.minecraftforge.fml.common.Mod.EventHandler;
  16. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  17. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  18. import net.minecraftforge.items.CapabilityItemHandler;
  19. import net.minecraftforge.items.wrapper.InvWrapper;
  20.  
  21. @Mod(modid = ComPatchedStorage.MODID, name = ComPatchedStorage.MODNAME, version = ComPatchedStorage.VERSION, dependencies = "required-after:compactstorage")
  22. public class ComPatchedStorage {
  23.  
  24. public static final String MODID = "compatched";
  25. public static final String MODNAME = "ComPatchedStorage";
  26. public static final String VERSION = "1.1.0";
  27.  
  28. @EventHandler
  29. public void preInit(FMLPreInitializationEvent e) {
  30. MinecraftForge.EVENT_BUS.register(this);
  31. }
  32.  
  33. @SubscribeEvent
  34. public void caps(AttachCapabilitiesEvent<TileEntity> e) {
  35. TileEntity te = e.getObject();
  36. if (te instanceof TileEntityChest || te instanceof TileEntityChestBuilder) {
  37. e.addCapability(new ResourceLocation(MODID, "invwrapper"), new InvWrappingCap((IInventory) te));
  38. }
  39. }
  40.  
  41. private static class InvWrappingCap implements ICapabilityProvider {
  42.  
  43. InvWrapper wrapped;
  44.  
  45. InvWrappingCap(IInventory toWrap) {
  46. wrapped = new InvWrapper(toWrap);
  47. }
  48.  
  49. @Override
  50. public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
  51. return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY;
  52. }
  53.  
  54. @Override
  55. public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
  56. if (this.hasCapability(capability, facing)) return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(wrapped);
  57. return null;
  58. }
  59.  
  60. }
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement