Advertisement
HalestormXV

Untitled

Mar 21st, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.55 KB | None | 0 0
  1. package halestormxv.gui.handlers;
  2.  
  3. import com.google.common.collect.ImmutableSet;
  4. import halestormxv.capabilities.runebag.RuneBagProvider;
  5. import halestormxv.gui.GuiRuneBag;
  6. import halestormxv.gui.GuiRuneBlade;
  7. import halestormxv.init.ItemInit;
  8. import halestormxv.inventory.runebag.RuneBagContainer;
  9. import halestormxv.gui.GuiRunicInscriber;
  10. import halestormxv.inventory.runeblade.ContainerRuneBlade;
  11. import halestormxv.inventory.runicinscriber.ContainerRunicInscriber;
  12. import halestormxv.objects.blocks.devices.inscriber.TileEntityRunicInscriber;
  13. import halestormxv.objects.items.ItemRuneBlade;
  14. import halestormxv.utility.Reference;
  15. import net.minecraft.entity.player.EntityPlayer;
  16. import net.minecraft.item.EnumDyeColor;
  17. import net.minecraft.item.ItemStack;
  18. import net.minecraft.tileentity.TileEntity;
  19. import net.minecraft.util.EnumHand;
  20. import net.minecraft.util.math.BlockPos;
  21. import net.minecraft.world.World;
  22. import net.minecraftforge.fml.common.network.IGuiHandler;
  23. import net.minecraftforge.items.CapabilityItemHandler;
  24. import net.minecraftforge.items.IItemHandlerModifiable;
  25.  
  26. import javax.annotation.Nullable;
  27. import java.util.Set;
  28.  
  29. public class GeneralGuiHandler implements IGuiHandler {
  30.     private static final Set<Integer> ITEM_IDS = ImmutableSet.of(Reference.GUI_RUNE_BAG);
  31.     private static final Set<Integer> RUNE_BLADE_ID = ImmutableSet.of(Reference.GUI_RUNE_BLADE);
  32.  
  33.     @Nullable
  34.     @Override
  35.     public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
  36.         TileEntity tile = !ITEM_IDS.contains(ID) ? world.getTileEntity(new BlockPos(x, y, z)) : null;
  37.         EnumHand hand = ITEM_IDS.contains(ID) ? (x == 1 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND) : null;
  38.         EnumHand bladeHand = RUNE_BLADE_ID.contains(ID) ? (x == 2 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND) : null;
  39.         switch (ID) {
  40.             case Reference.GUI_RUNIC_FURNACE:
  41.                 if (tile != null && tile instanceof TileEntityRunicInscriber)
  42.                     return new ContainerRunicInscriber(player.inventory, (TileEntityRunicInscriber) tile);
  43.                 break;
  44.  
  45.             case Reference.GUI_RUNE_BAG: {
  46.                 EnumDyeColor color = EnumDyeColor.byMetadata(player.getHeldItem(hand).getItemDamage());
  47.                 IItemHandlerModifiable inventory = (IItemHandlerModifiable) player.getCapability(RuneBagProvider.RUNEBAG_CAP, null).getBag(color);
  48.                 return new RuneBagContainer(player.inventory, hand, inventory);
  49.             }
  50.  
  51.             case Reference.GUI_RUNE_BLADE: {
  52.                 ItemStack stack = player.getHeldItem(bladeHand);
  53.                 System.out.println("Server: Opened the Runeblade Container");
  54.                 IItemHandlerModifiable inventory = (IItemHandlerModifiable) stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
  55.                 return new ContainerRuneBlade(player.inventory, bladeHand, inventory);
  56.             }
  57.         }
  58.         return null;
  59.     }
  60.  
  61.     @Nullable
  62.     @Override
  63.     public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
  64.         TileEntity tile = !ITEM_IDS.contains(ID) ? world.getTileEntity(new BlockPos(x, y, z)) : null;
  65.         EnumHand hand = ITEM_IDS.contains(ID) ? (x == 1 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND) : null;
  66.         EnumHand bladeHand = RUNE_BLADE_ID.contains(ID) ? (x == 2 ? EnumHand.OFF_HAND : EnumHand.MAIN_HAND) : null;
  67.         switch (ID)
  68.         {
  69.             case Reference.GUI_RUNIC_FURNACE:
  70.                 if (tile != null && tile instanceof TileEntityRunicInscriber)
  71.                     return new GuiRunicInscriber(player.inventory, (TileEntityRunicInscriber) tile);
  72.                 break;
  73.  
  74.             case Reference.GUI_RUNE_BAG: {
  75.                 EnumDyeColor color = EnumDyeColor.byMetadata(player.getHeldItem(hand).getItemDamage());
  76.                 IItemHandlerModifiable inventory = (IItemHandlerModifiable) player.getCapability(RuneBagProvider.RUNEBAG_CAP, null).getBag(color);
  77.                 return new GuiRuneBag(player.inventory, hand, inventory);
  78.             }
  79.  
  80.             case Reference.GUI_RUNE_BLADE: {
  81.                 ItemStack stack = player.getHeldItem(bladeHand);
  82.                 System.out.println("Client: Opened the Runeblade Inventory");
  83.                 IItemHandlerModifiable inventory = (IItemHandlerModifiable) stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
  84.                 return new GuiRuneBlade(player.inventory, bladeHand, inventory);
  85.             }
  86.         }
  87.         return null;
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement