tigres810

Untitled

Feb 28th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. package com.tigres810.adventurermod.blocks.machines.container;
  2.  
  3. import com.tigres810.adventurermod.blocks.machines.tileentity.TileEntityFluxGenerator;
  4.  
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.entity.player.InventoryPlayer;
  7. import net.minecraft.inventory.Container;
  8. import net.minecraft.inventory.IContainerListener;
  9. import net.minecraft.inventory.Slot;
  10. import net.minecraft.item.ItemStack;
  11. import net.minecraftforge.items.CapabilityItemHandler;
  12. import net.minecraftforge.items.IItemHandler;
  13. import net.minecraftforge.items.SlotItemHandler;
  14.  
  15. public class ContainerBlockEntityFluxGenerator extends Container {
  16. private final TileEntityFluxGenerator tileentity;
  17. private int energy, cooktime;
  18.  
  19. public ContainerBlockEntityFluxGenerator(InventoryPlayer player, TileEntityFluxGenerator tileentity) {
  20. this.tileentity = tileentity;
  21. IItemHandler handler = tileentity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
  22.  
  23. this.addSlotToContainer(new SlotItemHandler(handler, 0, 80, 33));
  24.  
  25. for(int y = 0; y < 3; y++) {
  26. for(int x = 0; x < 9; x++)
  27. {
  28. this.addSlotToContainer(new Slot(player, x + y*9 + 9, 8 + x*18, 84 + y*18));
  29. }
  30. }
  31.  
  32. for(int x = 0; x < 9; x++) {
  33. this.addSlotToContainer(new Slot(player, x, 8 + x * 18, 142));
  34. }
  35. }
  36.  
  37. @Override
  38. public boolean canInteractWith(EntityPlayer playerIn) {
  39. return this.tileentity.isUsableByPlayer(playerIn);
  40. }
  41.  
  42. @Override
  43. public void updateProgressBar(int id, int data) {
  44. this.tileentity.setField(id, data);
  45. }
  46.  
  47. @Override
  48. public void detectAndSendChanges() {
  49. super.detectAndSendChanges();
  50.  
  51. for(int i = 0; i < this.listeners.size(); ++i)
  52. {
  53. IContainerListener listener = (IContainerListener)this.listeners.get(i);
  54. if(this.energy != this.tileentity.getField(0)) listener.sendWindowProperty(this, 0, this.tileentity.getField(0));
  55. if(this.cooktime != this.tileentity.getField(1)) listener.sendWindowProperty(this, 1, this.tileentity.getField(1));
  56. }
  57.  
  58. this.energy = this.tileentity.getField(0);
  59. this.cooktime = this.tileentity.getField(1);
  60. }
  61.  
  62. @Override
  63. public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
  64. ItemStack stack = ItemStack.EMPTY;
  65. Slot slot = (Slot)this.inventorySlots.get(index);
  66.  
  67. if(slot != null && slot.getHasStack()) {
  68. ItemStack stack1 = slot.getStack();
  69. stack = stack1.copy();
  70.  
  71. if(index >= 0 && index < 27) {
  72. if(!this.mergeItemStack(stack1, 27, 36, false)) return ItemStack.EMPTY;
  73. }
  74. else if(index >= 27 && index < 36) {
  75. if(!this.mergeItemStack(stack1, 0, 27, false)) return ItemStack.EMPTY;
  76. }
  77. else if(!this.mergeItemStack(stack1, 0, 36, false)) {
  78. return ItemStack.EMPTY;
  79. }
  80.  
  81. if(stack1.isEmpty()) slot.putStack(ItemStack.EMPTY);
  82. else slot.onSlotChanged();
  83.  
  84. if(stack1.getCount() == stack.getCount()) return ItemStack.EMPTY;
  85. slot.onTake(playerIn, stack1);
  86. }
  87.  
  88. return stack;
  89. }
  90. }
Add Comment
Please, Sign In to add comment