Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. package spinnery.container.common.widget;
  2.  
  3. import spinnery.container.client.BaseRenderer;
  4. import net.minecraft.client.MinecraftClient;
  5. import net.minecraft.container.Slot;
  6. import net.minecraft.entity.player.PlayerInventory;
  7. import net.minecraft.inventory.Inventory;
  8.  
  9. public class WSlot extends WWidget {
  10. public Slot internalSlot;
  11.  
  12. public static void addSingle(int positionX, int positionY, int positionZ, double sizeX, double sizeY, int slotNumber, Inventory linkedInventory, WPanel linkedWPanel) {
  13. linkedWPanel.addWidget(new WSlot(positionX, positionY, positionZ, sizeX, sizeY, slotNumber, linkedInventory, linkedWPanel));
  14. }
  15.  
  16. public static void addArray(int arrayX, int arrayY, int positionX, int positionY, int positionZ, double sizeX, double sizeY, int slotNumber, Inventory linkedInventory, WPanel linkedWPanel) {
  17. for (int y = 0; y < arrayY; ++y) {
  18. for (int x = 0; x < arrayX; ++x) {
  19. WSlot.addSingle(positionX + (int) (sizeX * x), positionY + (int) (sizeY * y), positionZ, sizeX, sizeY, slotNumber++, linkedInventory, linkedWPanel);
  20. }
  21. }
  22. }
  23.  
  24. public static void addPlayerInventory(int positionZ, double sizeX, double sizeY, PlayerInventory linkedInventory, WPanel linkedWPanel) {
  25. int slotN = 0;
  26. addArray(9,
  27. 1,
  28. 6,
  29. (int) linkedWPanel.getSizeY() - 18 - 3,
  30. positionZ,
  31. sizeX,
  32. sizeY,
  33. slotN,
  34. linkedInventory,
  35. linkedWPanel);
  36. slotN = 9;
  37. addArray(9,
  38. 3,
  39. 6,
  40. (int) linkedWPanel.getSizeY() - 72 - 6,
  41. positionZ,
  42. sizeX,
  43. sizeY,
  44. slotN,
  45. linkedInventory,
  46. linkedWPanel);
  47. }
  48.  
  49. public WSlot(int positionX, int positionY, int positionZ, double sizeX, double sizeY, int slotNumber, Inventory linkedInventory, WPanel linkedWPanel) {
  50. setLinkedPanel(linkedWPanel);
  51.  
  52. getLinkedPanel().getLinkedContainer().addSlot(internalSlot = new Slot(linkedInventory, slotNumber, (int) offsetX, (int) offsetY));
  53.  
  54. setPositionX(positionX);
  55. setPositionY(positionY);
  56. setPositionZ(positionZ);
  57.  
  58. setSizeX(sizeX);
  59. setSizeY(sizeY);
  60. }
  61.  
  62. @Override
  63. public void setPositionX(double positionX) {
  64. super.setPositionX(positionX);
  65. if (getSlot() != null) {
  66. getSlot().xPosition = (int) (-(Math.abs(getPositionX() - MinecraftClient.getInstance().window.getScaledWidth() / 2f - linkedWPanel.getSizeX() / 2)) + 1);
  67. }
  68. }
  69.  
  70. @Override
  71. public void setPositionY(double positionY) {
  72. super.setPositionY(positionY);
  73. if (getSlot() != null) {
  74. getSlot().yPosition = (int) ((Math.abs(positionY + MinecraftClient.getInstance().window.getScaledHeight() / 2f - linkedWPanel.getSizeY() / 2)) - 3);
  75. }
  76. }
  77.  
  78. @Override
  79. public void alignWithContainerCenter() {
  80. getSlot().xPosition = (int) (linkedWPanel.getSizeX() / 2);
  81. super.alignWithContainerCenter();
  82. }
  83.  
  84. public Slot getSlot() {
  85. return internalSlot;
  86. }
  87.  
  88. @Override
  89. public void drawWidget() {
  90. BaseRenderer.drawSlot(getPositionX(), getPositionY(), getPositionZ());
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement