TBroski

PROBLEM WITH BUTTONS AND GUI

May 24th, 2020
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.14 KB | None | 0 0
  1. // MAIN GUI!!
  2.  
  3. public class ShinobiStats extends Screen implements INamedContainerProvider {
  4.  
  5.     GuiButtonEyeSlot guiButtonEyeSlot;
  6.     GuiButtonArrowUp guiButtonArrowUp;
  7.     GuiButtonArrowDown guiButtonArrowDown;
  8.     GuiButtonPlayerHead guiButtonPlayerHead;
  9.     GuiButtonPlayerBody guiButtonPlayerBody;
  10.     GuiButtonPlayerArm guiButtonPlayerArm1;
  11.     GuiButtonPlayerArm guiButtonPlayerArm2;
  12.     GuiButtonPlayerLeg guiButtonPlayerLeg1;
  13.     GuiButtonPlayerLeg guiButtonPlayerLeg2;
  14.  
  15.     private boolean toggleEyeSelection;
  16.     private int guiTop;
  17.     private int guiLeft;
  18.     private int playerEyeSlot;
  19.  
  20.     public ShinobiStats() {
  21.         super(new TranslationTextComponent("gui." + Main.MODID + ".title.shinobistats"));
  22.     }
  23.  
  24.     @Override
  25.     protected void init() {
  26.         buttons.clear();
  27.         this.guiLeft = (this.width) / 2;
  28.         this.guiTop = (this.height) / 2;
  29.  
  30.         Minecraft mc = Minecraft.getInstance();
  31.         AbstractClientPlayerEntity player = mc.player;
  32.         ClientPlayerEntity clientPlayer = Minecraft.getInstance().player;
  33.         LazyOptional<IPlayerHandler> player_cap = player.getCapability(PlayerProvider.CAPABILITY_PLAYER, null);
  34.         IPlayerHandler playerc = player_cap.orElse(new PlayerCapability());
  35.  
  36.         addButton(guiButtonEyeSlot = new GuiButtonEyeSlot(this.width - 31, 10, $ -> {
  37.             System.out.println("CLICKEDINS");
  38.             this.onGuiButtonEyeSlotPress();
  39.             }));
  40.         addButton(guiButtonArrowUp = new GuiButtonArrowUp(this.guiLeft + 50, this.guiTop - 15, $ -> {
  41.             this.onGuiButtonArrowUpPress();
  42.         }));
  43.         addButton(guiButtonArrowDown = new GuiButtonArrowDown(this.guiLeft + 50, this.guiTop + 15, $ -> {
  44.             this.onGuiButtonArrowDownPress();
  45.         }));
  46.         addButton(guiButtonPlayerHead = new GuiButtonPlayerHead(this.guiLeft - 16, this.guiTop - 48, player, $ -> {
  47.             Minecraft.getInstance().displayGuiScreen(new PlayerDojutsu());
  48.         }));
  49.         addButton(guiButtonPlayerBody = new GuiButtonPlayerBody(this.guiLeft - 16, this.guiTop - 16, player, $ -> {
  50.             Minecraft.getInstance().displayGuiScreen(new PlayerChakraandBodyInfusion());
  51.         }));
  52.         addButton(guiButtonPlayerArm1 = new GuiButtonPlayerArm(this.guiLeft - 32, this.guiTop - 16, player, $ -> {
  53.             Minecraft.getInstance().displayGuiScreen(new PlayerJutsu());
  54.         }));
  55.         addButton(guiButtonPlayerArm2 = new GuiButtonPlayerArm(this.guiLeft + 16, this.guiTop - 16, player, $ -> {
  56.             Minecraft.getInstance().displayGuiScreen(new PlayerJutsu());
  57.         }));
  58.         addButton(guiButtonPlayerLeg1 = new GuiButtonPlayerLeg(this.guiLeft - 16, this.guiTop + 32, player, $ -> {
  59.             Minecraft.getInstance().displayGuiScreen(new PlayerTaijutsu());
  60.         }));
  61.         addButton(guiButtonPlayerLeg2 = new GuiButtonPlayerLeg(this.guiLeft, this.guiTop + 32, player, $ -> {
  62.             Minecraft.getInstance().displayGuiScreen(new PlayerTaijutsu());
  63.         }));
  64.         this.guiButtonArrowUp.visible = false;
  65.         this.guiButtonArrowDown.visible = false;
  66.         if (playerc.returnplayerEyeSlot() <= 0)
  67.         {
  68.             this.playerEyeSlot = 4;
  69.         }
  70.         else
  71.         {
  72.             this.playerEyeSlot = playerc.returnplayerEyeSlot();
  73.         }
  74.         super.init();
  75.     }
  76.  
  77.     @Override
  78.     public void render(int p_render_1_, int p_render_2_, float p_render_3_) {
  79.         Minecraft mc = Minecraft.getInstance();
  80.         AbstractClientPlayerEntity player = mc.player;
  81.  
  82.         super.render(p_render_1_, p_render_2_, p_render_3_);
  83.         mc.textureManager.bindTexture(new ResourceLocation(Main.MODID + ":textures/gui/shinobistatsbackground.png"));
  84.         if (this.toggleEyeSelection)
  85.         {
  86.             mc.ingameGUI.blit(this.guiLeft - 8, (this.guiTop - 48) + (this.playerEyeSlot * 4), 0, 252, 16, 4);
  87.         }
  88.         this.checkHovered(p_render_1_, p_render_2_);
  89.     }
  90.  
  91.     @Override
  92.     public ITextComponent getDisplayName() {
  93.         return null;
  94.     }
  95.  
  96.     @Nullable
  97.     @Override
  98.     public Container createMenu(int p_createMenu_1_, PlayerInventory p_createMenu_2_, PlayerEntity p_createMenu_3_) {
  99.         return null;
  100.     }
  101.  
  102.     @Override
  103.     public boolean isPauseScreen() {
  104.         return false;
  105.     }
  106.  
  107.     public static void open() {
  108.         Minecraft.getInstance().displayGuiScreen(new ShinobiStats());
  109.     }
  110.  
  111.     public void onGuiButtonEyeSlotPress()
  112.     {
  113.         ClientPlayerEntity player = Minecraft.getInstance().player;
  114.         LazyOptional<IPlayerHandler> player_cap = player.getCapability(PlayerProvider.CAPABILITY_PLAYER, null);
  115.         IPlayerHandler playerc = player_cap.orElse(new PlayerCapability());
  116.         if (!this.toggleEyeSelection)
  117.         {
  118.             this.guiButtonArrowUp.visible = true;
  119.             this.guiButtonArrowDown.visible = true;
  120.             this.toggleEyeSelection = true;
  121.         }
  122.         else {
  123.             this.guiButtonArrowUp.visible = false;
  124.             this.guiButtonArrowDown.visible = false;
  125.             this.toggleEyeSelection = false;
  126.             playerc.setplayerEyeSlot(this.playerEyeSlot);
  127.             int eyeSlot = playerc.returnplayerEyeSlot();
  128.             NetworkLoader.INSTANCE.sendToServer(new PacketEyeSlotSync(eyeSlot));
  129.         }
  130.     }
  131.     public void onGuiButtonArrowUpPress()
  132.     {
  133.         if (this.guiButtonArrowUp.visible)
  134.         {
  135.             if (this.playerEyeSlot >= 1)
  136.             {
  137.                 this.playerEyeSlot -= 1;
  138.             }
  139.         }
  140.     }
  141.     public void onGuiButtonArrowDownPress()
  142.     {
  143.         if (this.guiButtonArrowDown.visible)
  144.         {
  145.             if (this.playerEyeSlot < 7)
  146.             {
  147.                 this.playerEyeSlot += 1;
  148.             }
  149.         }
  150.     }
  151.  
  152.     @Override
  153.     public boolean mouseClicked(double p_mouseClicked_1_, double p_mouseClicked_3_, int p_mouseClicked_5_) {
  154.         return super.mouseClicked(p_mouseClicked_1_, p_mouseClicked_3_, p_mouseClicked_5_);
  155.     }
  156.  
  157.     @Override
  158.     public void onClose() {
  159.         super.onClose();
  160.         ClientPlayerEntity player = Minecraft.getInstance().player;
  161.         LazyOptional<IPlayerHandler> player_cap = player.getCapability(PlayerProvider.CAPABILITY_PLAYER, null);
  162.         IPlayerHandler playerc = player_cap.orElse(new PlayerCapability());
  163.  
  164.         playerc.setplayerEyeSlot(this.playerEyeSlot);
  165.         int eyeSlot = playerc.returnplayerEyeSlot();
  166.         NetworkLoader.INSTANCE.sendToServer(new PacketEyeSlotSync(eyeSlot));
  167.         if (this.guiButtonArrowUp.visible) {
  168.             player.sendMessage(new StringTextComponent("Saved Settings"));
  169.         }
  170.     }
  171.  
  172.     public void checkHovered(int p_render_1_, int p_render_2_)
  173.     {
  174.         if (guiButtonEyeSlot.isHovered())
  175.         {
  176.             renderTooltip("Change Player Eye Slot", p_render_1_, p_render_2_);
  177.         }
  178.         if (guiButtonPlayerHead.isHovered())
  179.         {
  180.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.dojutsu").getString(), p_render_1_, p_render_2_);
  181.         }
  182.         if (guiButtonPlayerBody.isHovered())
  183.         {
  184.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.bodychakra").getString(), p_render_1_, p_render_2_);
  185.         }
  186.         if (guiButtonPlayerArm1.isHovered())
  187.         {
  188.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.handjutsu").getString(), p_render_1_, p_render_2_);
  189.         }
  190.         if (guiButtonPlayerArm2.isHovered())
  191.         {
  192.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.handjutsu").getString(), p_render_1_, p_render_2_);
  193.         }
  194.         if (guiButtonPlayerLeg1.isHovered())
  195.         {
  196.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.legtaijutsu").getString(), p_render_1_, p_render_2_);
  197.         }
  198.         if (guiButtonPlayerLeg2.isHovered())
  199.         {
  200.             renderTooltip(new TranslationTextComponent("gui." + Main.MODID + ".title.legtaijutsu").getString(), p_render_1_, p_render_2_);
  201.         }
  202.     }
  203. }
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. //ONE CUSTOM BUTTON CLASS
  227. public class GuiButtonPlayerArm extends Button {
  228.  
  229.     AbstractClientPlayerEntity player;
  230.     protected final IPressable onPress;
  231.     int u = (44 * 4);
  232.     int v = (20 * 4);
  233.     int widthIn;
  234.     int heightIn;
  235.  
  236.     public void onPress() {
  237.         this.onPress.onPress(this);
  238.     }
  239.  
  240.     public GuiButtonPlayerArm(int widthIn, int heightIn, AbstractClientPlayerEntity player, IPressable onPress) {
  241.         super(widthIn, heightIn, (4 * 4), (12 * 4), "", onPress);
  242.         this.widthIn = widthIn;
  243.         this.heightIn = heightIn;
  244.         this.onPress = onPress;
  245.         this.player = player;
  246.     }
  247.  
  248.     @Override
  249.     public void renderButton(int p_renderButton_1_, int p_renderButton_2_, float p_renderButton_3_) {
  250.         super.renderButton(p_renderButton_1_, p_renderButton_2_, p_renderButton_3_);
  251.         Minecraft mc = Minecraft.getInstance();
  252.         mc.textureManager.bindTexture(player.getLocationSkin());
  253.         if (!visible)
  254.         {
  255.             return;
  256.         }
  257.         mc.ingameGUI.blit(widthIn, heightIn, u, v, width, height);
  258.     }
  259. }
Add Comment
Please, Sign In to add comment