Advertisement
CreativeMasterBonin

unfinished screen

Apr 11th, 2025
272
0
2 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.58 KB | None | 0 0
  1. package net.bcm.cmatd.gui;
  2.  
  3. import net.bcm.cmatd.Cmatd;
  4. import net.bcm.cmatd.Utility;
  5. import net.bcm.cmatd.blockentity.BaseEnergyMakerBE;
  6. import net.minecraft.client.gui.GuiGraphics;
  7. import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
  8. import net.minecraft.network.chat.Component;
  9. import net.minecraft.resources.ResourceLocation;
  10. import net.minecraft.world.entity.player.Inventory;
  11. import net.minecraft.world.level.material.Fluids;
  12. import net.neoforged.neoforge.common.Tags;
  13. import net.neoforged.neoforge.fluids.FluidStack;
  14.  
  15. import java.util.List;
  16.  
  17. public class FoodReactorScreen extends AbstractContainerScreen<FoodReactorMenu> {
  18.     private static final int ENERGY_LEFT = 7;
  19.     private static final int ENERGY_WIDTH = 121;
  20.     private static final int ENERGY_TOP = 90;
  21.     private static final int ENERGY_HEIGHT = 4;
  22.  
  23.     private static final int LIQUID_LEFT = 132;
  24.     private static final int LIQUID_TOP = 16;
  25.     private static final int LIQUID_BOTTOM = 116;
  26.     private static final int LIQUID_RIGHT = 170;
  27.     private static final int LIQUID_WIDTH = 38;
  28.     private static final int LIQUID_HEIGHT = 100;
  29.  
  30.     private static final ResourceLocation BG = ResourceLocation.parse("cmatd:textures/gui/food_reactor.png");
  31.     private static final ResourceLocation WHITE_BOX = ResourceLocation.parse("minecraft:textures/block/white_stained_glass.png");
  32.  
  33.     public FluidTankGUIRenderer fluidRenderer;
  34.  
  35.     public FoodReactorScreen(FoodReactorMenu menu, Inventory playerInventory, Component title) {
  36.         super(menu, playerInventory, title);
  37.         this.imageHeight = 216;
  38.         this.imageWidth = 176;
  39.     }
  40.  
  41.     @Override
  42.     protected void init() {
  43.         super.init();
  44.         this.fluidRenderer = new FluidTankGUIRenderer(Utility.FOOD_REACTOR_FLUID_CAPACITY,
  45.                 LIQUID_WIDTH,LIQUID_HEIGHT);
  46.     }
  47.  
  48.     @Override
  49.     protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) {
  50.         guiGraphics.blit(BG, leftPos, topPos, 0, 0, this.imageWidth, this.imageHeight);
  51.         int power = menu.getEnergy();
  52.         int p = (int) ((power / (float) BaseEnergyMakerBE.CAPACITY) * ENERGY_WIDTH);
  53.         guiGraphics.fillGradient(leftPos + ENERGY_LEFT, topPos + ENERGY_TOP, leftPos + ENERGY_LEFT + p, topPos + ENERGY_TOP + ENERGY_HEIGHT, Utility.BRIGHT_LIGHT_BLUE, Utility.DARKER_BLUE);
  54.         guiGraphics.fill(leftPos + ENERGY_LEFT + p, topPos + ENERGY_TOP, leftPos + ENERGY_LEFT + ENERGY_WIDTH, topPos + ENERGY_TOP + ENERGY_HEIGHT, Utility.DARKEST_GRAYER_BLUE);
  55.     }
  56.  
  57.     @Override
  58.     public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
  59.         super.render(guiGraphics, mouseX, mouseY, partialTick);
  60.         if (mouseX >= leftPos + ENERGY_LEFT && mouseX < leftPos + ENERGY_LEFT + ENERGY_WIDTH && mouseY >= topPos + ENERGY_TOP && mouseY < topPos + ENERGY_TOP + ENERGY_HEIGHT) {
  61.             int power = menu.getEnergy();
  62.             List<Component> components = List.of(
  63.                     Component.translatable("title.energy_fe_with_max",power,menu.getBlockEntity().energyStorage.getMaxEnergyStored())
  64.             );
  65.             guiGraphics.renderComponentTooltip(this.font,components,mouseX,mouseY);
  66.         }
  67.         else if(mouseX >= leftPos + LIQUID_LEFT && mouseX < leftPos + LIQUID_LEFT + LIQUID_WIDTH && mouseY >= topPos + LIQUID_TOP && mouseY < topPos + LIQUID_TOP + LIQUID_HEIGHT){
  68.             int liquidAmount = menu.fluidAmtStored;
  69.             List<Component> components2 = List.of(
  70.                     Component.translatable("title.liquid_amt_with_max",liquidAmount,menu.getBlockEntity().fluidTank.getCapacity())
  71.             );
  72.             guiGraphics.renderComponentTooltip(this.font,components2,mouseX,mouseY);
  73.         }
  74.         else{
  75.             this.renderTooltip(guiGraphics, mouseX, mouseY);
  76.         }
  77.  
  78.         //
  79.         try{
  80.             fluidRenderer.render(guiGraphics,new FluidStack(menu.fluidStored,Utility.FOOD_REACTOR_FLUID_CAPACITY),
  81.                     leftPos + LIQUID_LEFT,topPos + LIQUID_TOP);
  82.         }
  83.         catch(Exception e){
  84.             Cmatd.getLogger().error("FoodReactorScreen encountered an error: {}",e.getMessage());
  85.         }
  86.     }
  87.  
  88.     @Override
  89.     protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) {
  90.         guiGraphics.drawString(this.font, this.title,
  91.                 this.imageWidth - 169, this.imageHeight - 210, Utility.INT_WHITE, false);
  92.         guiGraphics.drawString(this.font, this.playerInventoryTitle,
  93.                 this.imageWidth - 169, this.imageHeight - 100, Utility.INT_WHITE, false);
  94.     }
  95. }
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement