package com.dairymoose.modernlife.blocks.gui; import com.dairymoose.modernlife.core.CustomBlocks; import com.dairymoose.modernlife.core.ModernLifeCommon; import com.dairymoose.modernlife.core.ModernLifeNetwork; import com.dairymoose.modernlife.network.play.client.ServerboundPrintSizePacket; import com.dairymoose.modernlife.util.CanvasData; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import java.text.DecimalFormat; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.ImageButton; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; import net.minecraft.network.chat.TextColor; import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FormattedCharSequence; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @OnlyIn(Dist.CLIENT) /* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/gui/CustomPrintScreen.class */ public class CustomPrintScreen extends Screen { final int GUI_WIDTH = 80; final int GUI_HEIGHT = 110; BlockPos pos; private static final String PRINT_SIZE = "Canvas Resize"; public static final int FIELD_START_X = 5; public static final int FIELD_START_RIGHT_X = 48; public static final int FIELD_START_Y = 20; public static final int FIELD_START_Y2 = 55; public static final int FIELD_START_Y3 = 88; public static final int INPUT_FIELD_WIDTH = 27; public static final int INPUT_FIELD_HEIGHT = 16; public static final int TEXT_START_OFFSET_X = 13; public static final int TEXT_START_OFFSET_Y = 3; private int chosenFieldId; private static final int FIELD_ID_WIDTH = 0; private static final int FIELD_ID_HEIGHT = 1; private static final int FIELD_ID_X_OFFSET = 2; private static final int FIELD_ID_Y_OFFSET = 3; public static final int CANCEL_BUTTON_START_X = 56; public static final int CANCEL_BUTTON_START_Y = 68; public static final int ACCEPT_BUTTON_START_X = 56; public static final int ACCEPT_BUTTON_START_Y = 88; private float blockWidth; private float blockHeight; private float xOffset; private float yOffset; private int blockWidthInputLength; private int blockHeightInputLength; private int xOffsetInputLength; private int yOffsetInputLength; private boolean negateX; private boolean negateY; private static final Logger LOGGER = LogManager.getLogger(); private static final ResourceLocation PRINTER_GUI = new ResourceLocation("modernlife", "textures/gui/gui_printer_custom.png"); public static int grayColor = 9145227; public static int chosenX = -1; public static int chosenY = -1; private static Component getComponentForTitle(String title) { return new TextComponent(title).m_6270_(Style.EMPTY.withColor(TextColor.fromRgb(4210752))); } public CustomPrintScreen(BlockPos pos) { super(getComponentForTitle(PRINT_SIZE)); CompoundTag tag; this.GUI_WIDTH = 80; this.GUI_HEIGHT = 110; this.chosenFieldId = -1; this.blockWidth = 1.0f; this.blockHeight = 1.0f; this.xOffset = 0.0f; this.yOffset = 0.0f; this.blockWidthInputLength = 0; this.blockHeightInputLength = 0; this.xOffsetInputLength = 0; this.yOffsetInputLength = 0; this.negateX = false; this.negateY = false; chosenX = -1; chosenY = -1; this.pos = pos; ItemStack itemStack = Minecraft.getInstance().player.getMainHandItem(); if (itemStack != null && itemStack.is(CustomBlocks.ITEM_CANVAS.get()) && (tag = itemStack.getTag()) != null && tag.contains("Size")) { int size = tag.getInt("Size"); if (size == 0) { if (tag.contains("BlockWidth") && tag.contains("BlockHeight")) { float blockWidth = tag.getFloat("BlockWidth"); float blockHeight = tag.getFloat("BlockHeight"); this.blockWidth = blockWidth; this.blockHeight = blockHeight; } if (tag.contains("xOffset") && tag.contains("yOffset")) { float xOffset = tag.getFloat("xOffset"); float yOffset = tag.getFloat("yOffset"); this.xOffset = xOffset; this.yOffset = yOffset; return; } return; } this.xOffset = 0.0f; this.yOffset = 0.0f; if (size == 1) { this.blockWidth = 1.0f; this.blockHeight = 1.0f; return; } if (size == FIELD_ID_X_OFFSET) { this.blockWidth = 1.5f; this.blockHeight = 1.25f; this.yOffset = 0.125f; return; } if (size == 3) { this.blockWidth = 2.0f; this.blockHeight = 1.5f; this.yOffset = 0.25f; return; } if (size == 4) { this.blockWidth = 3.0f; this.blockHeight = 2.0f; this.yOffset = 0.5f; } else if (size == 5) { this.blockWidth = 1.625f; this.blockHeight = 1.625f; } else if (size == 6) { this.blockWidth = 2.25f; this.blockHeight = 2.25f; } else if (size == 7) { this.blockWidth = 3.0f; this.blockHeight = 3.0f; } } } public boolean m_6375_(double clickX, double clickY, int mouseButton) { int xStart = (this.width - 80) / FIELD_ID_X_OFFSET; int yStart = (this.height - 110) / FIELD_ID_X_OFFSET; int fieldStartX = xStart + 5; int fieldStartRightX = xStart + 48; int fieldStartY = yStart + 20; int fieldStartY2 = yStart + 55; int fieldStartY3 = yStart + 88; int fieldEndX = fieldStartX + 27; int fieldEndRightX = fieldStartRightX + 27; int fieldEndY = fieldStartY + 16; int fieldEndY2 = fieldStartY2 + 16; int fieldEndY3 = fieldStartY3 + 16; if (mouseButton == 0) { if (clickX >= fieldStartX && clickX <= fieldEndX) { if (clickY >= fieldStartY && clickY <= fieldEndY) { this.chosenFieldId = 0; setChosenFieldToZero(); chosenX = fieldStartX; chosenY = fieldStartY; } if (clickY >= fieldStartY2 && clickY <= fieldEndY2) { this.chosenFieldId = FIELD_ID_X_OFFSET; setChosenFieldToZero(); chosenX = fieldStartX; chosenY = fieldStartY2; } if (clickY >= fieldStartY3 && clickY <= fieldEndY3) { this.chosenFieldId = 3; setChosenFieldToZero(); chosenX = fieldStartX; chosenY = fieldStartY3; } } if (clickX >= fieldStartRightX && clickX <= fieldEndRightX && clickY >= fieldStartY && clickY <= fieldEndY) { this.chosenFieldId = 1; setChosenFieldToZero(); chosenX = fieldStartRightX; chosenY = fieldStartY; } } return super.m_6375_(clickX, clickY, mouseButton); } public int getDigitCount(float f) { float remainder = f; int count = 0; while (remainder != 0.0f) { int truncated = (int) remainder; count++; if (truncated != 0) { remainder %= truncated; } remainder *= 10.0f; } return count; } public float applyInputToFloatField(float field, float input, int inputCount) { float fInput = input; for (int i = 0; i < inputCount; i++) { fInput /= 10.0f; } return field + fInput; } public void addInputToChosenField(int input) { if (this.chosenFieldId == -1) { return; } if (this.chosenFieldId == 0) { this.blockWidth = applyInputToFloatField(this.blockWidth, input, this.blockWidthInputLength); this.blockWidth = ServerboundPrintSizePacket.sanitizeWidthHeight(this.blockWidth); this.blockWidthInputLength++; } if (this.chosenFieldId == 1) { this.blockHeight = applyInputToFloatField(this.blockHeight, input, this.blockHeightInputLength); this.blockHeight = ServerboundPrintSizePacket.sanitizeWidthHeight(this.blockHeight); this.blockHeightInputLength++; } if (this.chosenFieldId == FIELD_ID_X_OFFSET) { this.xOffset = applyInputToFloatField(this.xOffset, input, this.xOffsetInputLength); this.xOffset = ServerboundPrintSizePacket.sanitizeOffset(this.xOffset); this.xOffsetInputLength++; } if (this.chosenFieldId == 3) { this.yOffset = applyInputToFloatField(this.yOffset, input, this.yOffsetInputLength); this.yOffset = ServerboundPrintSizePacket.sanitizeOffset(this.yOffset); this.yOffsetInputLength++; } } public void setChosenFieldToZero() { if (this.chosenFieldId == -1) { return; } if (this.chosenFieldId == 0) { this.blockWidth = 0.0f; this.blockWidthInputLength = 0; } if (this.chosenFieldId == 1) { this.blockHeight = 0.0f; this.blockHeightInputLength = 0; } if (this.chosenFieldId == FIELD_ID_X_OFFSET) { this.xOffset = 0.0f; this.negateX = false; this.xOffsetInputLength = 1; } if (this.chosenFieldId == 3) { this.yOffset = 0.0f; this.negateY = false; this.yOffsetInputLength = 1; } } public void backspaceChosenField() { if (this.chosenFieldId == -1) { return; } if (this.chosenFieldId == 0) { this.blockWidth = (int) this.blockWidth; this.blockWidthInputLength = 1; } if (this.chosenFieldId == 1) { this.blockHeight = (int) this.blockHeight; this.blockHeightInputLength = 1; } if (this.chosenFieldId == FIELD_ID_X_OFFSET) { this.xOffset = (int) this.xOffset; this.xOffsetInputLength = 1; } if (this.chosenFieldId == 3) { this.yOffset = (int) this.yOffset; this.yOffsetInputLength = 1; } } public void negateChosenField() { if (this.chosenFieldId == FIELD_ID_X_OFFSET) { this.negateX = !this.negateX; } if (this.chosenFieldId == 3) { this.negateY = !this.negateY; } } public boolean keyPressed(int key, int p_231046_2_, int p_231046_3_) { ModernLifeCommon.LOGGER.debug("key press: " + key); if (key == 261) { setChosenFieldToZero(); } else if (key == 259) { backspaceChosenField(); } else if (key == 48 || (key >= 49 && key <= 57)) { int digit = Character.digit(key, 10); addInputToChosenField(digit); } else if (key == 45) { negateChosenField(); } else if (key == 257) { return true; } return super.keyPressed(key, p_231046_2_, p_231046_3_); } protected void init() { int startX = (this.width - 80) / FIELD_ID_X_OFFSET; int startY = (this.height - 110) / FIELD_ID_X_OFFSET; addRenderableWidget(new ImageButton(startX + 56, startY + 68, 20, 18, 215, 0, 19, PRINTER_GUI, new Button.OnPress() { // from class: com.dairymoose.modernlife.blocks.gui.CustomPrintScreen.1 C00721() { } public void onPress(Button arg0) { Minecraft.getInstance().setScreen((Screen) null); } })); addRenderableWidget(new ImageButton(startX + 56, startY + 88, 20, 18, 236, 0, 19, PRINTER_GUI, new Button.OnPress() { // from class: com.dairymoose.modernlife.blocks.gui.CustomPrintScreen.2 C00732() { } public void onPress(Button arg0) { ItemStack itemStack = Minecraft.getInstance().player.getMainHandItem(); if (itemStack != null && ((itemStack.is(CustomBlocks.ITEM_CANVAS.get()) && itemStack.getTag() != null && itemStack.getTag().contains("UniqueId")) || itemStack.is(CustomBlocks.ITEM_CAMERA.get()))) { float nX = CustomPrintScreen.this.xOffset; if (CustomPrintScreen.this.negateX) { nX = -nX; } float nY = CustomPrintScreen.this.yOffset; if (CustomPrintScreen.this.negateY) { nY = -nY; } ModernLifeNetwork.INSTANCE.sendToServer(new ServerboundPrintSizePacket(CustomPrintScreen.this.blockWidth, CustomPrintScreen.this.blockHeight, nX, nY, CustomPrintScreen.this.pos)); } Minecraft.getInstance().setScreen((Screen) null); } })); } /* renamed from: com.dairymoose.modernlife.blocks.gui.CustomPrintScreen$1 */ /* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/gui/CustomPrintScreen$1.class */ class C00721 implements Button.OnPress { C00721() { } public void onPress(Button arg0) { Minecraft.getInstance().setScreen((Screen) null); } } /* renamed from: com.dairymoose.modernlife.blocks.gui.CustomPrintScreen$2 */ /* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/gui/CustomPrintScreen$2.class */ class C00732 implements Button.OnPress { C00732() { } public void onPress(Button arg0) { ItemStack itemStack = Minecraft.getInstance().player.getMainHandItem(); if (itemStack != null && ((itemStack.is(CustomBlocks.ITEM_CANVAS.get()) && itemStack.getTag() != null && itemStack.getTag().contains("UniqueId")) || itemStack.is(CustomBlocks.ITEM_CAMERA.get()))) { float nX = CustomPrintScreen.this.xOffset; if (CustomPrintScreen.this.negateX) { nX = -nX; } float nY = CustomPrintScreen.this.yOffset; if (CustomPrintScreen.this.negateY) { nY = -nY; } ModernLifeNetwork.INSTANCE.sendToServer(new ServerboundPrintSizePacket(CustomPrintScreen.this.blockWidth, CustomPrintScreen.this.blockHeight, nX, nY, CustomPrintScreen.this.pos)); } Minecraft.getInstance().setScreen((Screen) null); } } public boolean isPauseScreen() { return false; } private void drawCenteredStringNoShadow(PoseStack p_238472_0_, Font p_238472_1_, Component p_238472_2_, int p_238472_3_, int p_238472_4_, int p_238472_5_) { FormattedCharSequence lvt_6_1_ = p_238472_2_.getVisualOrderText(); p_238472_1_.draw(p_238472_0_, lvt_6_1_, p_238472_3_ - (p_238472_1_.width(lvt_6_1_) / FIELD_ID_X_OFFSET), p_238472_4_, p_238472_5_); } public void render(PoseStack matrixStack, int p_230430_2_, int p_230430_3_, float p_230430_4_) { RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, PRINTER_GUI); int xStart = (this.width - 80) / FIELD_ID_X_OFFSET; int yStart = (this.height - 110) / FIELD_ID_X_OFFSET; m_93228_(matrixStack, xStart, yStart, 0, 0, 80, 110); int fieldStartX = xStart + 5; int fieldStartRightX = xStart + 48; int fieldStartY = yStart + 20; int fieldStartY2 = yStart + 55; int fieldStartY3 = yStart + 88; int r = CanvasData.getRValue(grayColor); int g = CanvasData.getGValue(grayColor); int b = CanvasData.getBValue(grayColor); float fR = r / 255.0f; float fG = g / 255.0f; float fB = b / 255.0f; RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, PRINTER_GUI); RenderSystem.setShaderColor(fR, fG, fB, 1.0f); m_93228_(matrixStack, fieldStartX, fieldStartY, 5, 20, 27, 16); m_93228_(matrixStack, fieldStartRightX, fieldStartY, 48, 20, 27, 16); m_93228_(matrixStack, fieldStartX, fieldStartY2, 5, 55, 27, 16); m_93228_(matrixStack, fieldStartX, fieldStartY3, 5, 88, 27, 16); if (chosenX > 0 && chosenY > 0) { RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f); m_93228_(matrixStack, chosenX, chosenY, 5, 20, 27, 16); } DecimalFormat df = new DecimalFormat("#.##"); String textWidth = df.format(this.blockWidth); String textHeight = df.format(this.blockHeight); float nX = this.xOffset; if (this.negateX) { nX = -nX; } float nY = this.yOffset; if (this.negateY) { nY = -nY; } String textXOffset = df.format(nX); String textYOffset = df.format(nY); drawCenteredStringNoShadow(matrixStack, this.minecraft.font, new TextComponent(textWidth), fieldStartX + 13, fieldStartY + 3, 0); drawCenteredStringNoShadow(matrixStack, this.minecraft.font, new TextComponent(textHeight), fieldStartRightX + 13, fieldStartY + 3, 0); drawCenteredStringNoShadow(matrixStack, this.minecraft.font, new TextComponent(textXOffset), fieldStartX + 13, fieldStartY2 + 3, 0); drawCenteredStringNoShadow(matrixStack, this.minecraft.font, new TextComponent(textYOffset), fieldStartX + 13, fieldStartY3 + 3, 0); super.render(matrixStack, p_230430_2_, p_230430_3_, p_230430_4_); } }