package com.dairymoose.modernlife.renderer.tileentity;

import com.dairymoose.modernlife.blocks.CanvasBlock;
import com.dairymoose.modernlife.core.ModernLifeConfig;
import com.dairymoose.modernlife.tileentities.AlarmClockBlockEntity;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.core.Direction;
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/renderer/tileentity/AlarmClockBlockEntityRenderer.class */
public class AlarmClockBlockEntityRenderer implements BlockEntityRenderer<AlarmClockBlockEntity> {
    private static final Logger LOGGER = LogManager.getLogger();
    int currentPos = 0;
    private PoseStack currentStack = null;
    private static final int X_START = 44;
    private static final int X_INCREMENT = -13;
    private static final int Y_START = 13;
    private static final int MID_X_ADJUST = 2;
    private static final int MID_Y_ADJUST = -1;
    private static final int COLON_GAP = -4;
    private static final int COLON_X = 27;
    private static final int COLON_Y = 13;
    private static final int MOON_X = 54;
    private static final int MOON_Y = 3;
    private static final int PM_X = 51;
    private static final int PM_Y = 20;
    private static final long TIME_DIFFERENCE = 6000;
    private static final long TIME_FULL_DAY = 24000;
    private static final int TIME_UNITS_PER_MINUTE = 1000;

    public AlarmClockBlockEntityRenderer(BlockEntityRendererProvider.Context ctx) {
    }

    private void resetCurrentPos() {
        this.currentPos = 0;
    }

    private void renderRect(PoseStack matrixStack, int x, int y, int width, int height) {
        int r = 249;
        int g = 8;
        int b = 40;
        Integer alarmClockTextColorR = (Integer) ModernLifeConfig.CLIENT.alarmClockTextColorR.get();
        Integer alarmClockTextColorG = (Integer) ModernLifeConfig.CLIENT.alarmClockTextColorG.get();
        Integer alarmClockTextColorB = (Integer) ModernLifeConfig.CLIENT.alarmClockTextColorB.get();
        if (alarmClockTextColorR != null) {
            r = alarmClockTextColorR.intValue();
        }
        if (alarmClockTextColorG != null) {
            g = alarmClockTextColorG.intValue();
        }
        if (alarmClockTextColorB != null) {
            b = alarmClockTextColorB.intValue();
        }
        int combinedColor = (255 << 24) | (r << 16) | (g << 8) | b;
        RenderSystem.setShaderColor(r / 255.0f, g / 255.0f, b / 255.0f, 1.0f);
        GuiComponent.fill(matrixStack, x + width, y + height, x, y, combinedColor);
    }

    private int getNewX() {
        int newX = X_START + (this.currentPos * X_INCREMENT);
        if (this.currentPos >= MID_X_ADJUST) {
            newX += COLON_GAP;
        }
        return newX;
    }

    private int getNewY() {
        return 13;
    }

    private void renderTopRight() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX, newY, MID_X_ADJUST, 8);
    }

    private void renderTop() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX + MID_X_ADJUST, newY + 9 + MID_Y_ADJUST, 7, MID_X_ADJUST);
    }

    private void renderTopLeft() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX + 9, newY, MID_X_ADJUST, 8);
    }

    private void renderMid() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX + MID_X_ADJUST, newY + MID_Y_ADJUST, 7, MID_X_ADJUST);
    }

    private void renderBottomRight() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX, newY - 9, MID_X_ADJUST, 8);
    }

    private void renderBottom() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX + MID_X_ADJUST, (newY - 9) + MID_Y_ADJUST, 7, MID_X_ADJUST);
    }

    private void renderBottomLeft() {
        int newX = getNewX();
        int newY = getNewY();
        renderRect(this.currentStack, newX + 9, newY - 9, MID_X_ADJUST, 8);
    }

    private void renderColon() {
        renderRect(this.currentStack, 27, 13, MID_X_ADJUST, MID_X_ADJUST);
        renderRect(this.currentStack, 27, 9, MID_X_ADJUST, MID_X_ADJUST);
    }

    private void renderMoon() {
        renderRect(this.currentStack, MOON_X, 3, 1, 1);
        renderRect(this.currentStack, 53, 3, 1, 1);
        renderRect(this.currentStack, 55, MID_X_ADJUST, 1, 1);
        renderRect(this.currentStack, 55, 1, 1, 1);
        renderRect(this.currentStack, 52, MID_X_ADJUST, 1, 1);
        renderRect(this.currentStack, 52, 1, 1, 1);
        renderRect(this.currentStack, MOON_X, 0, 1, 1);
        renderRect(this.currentStack, 53, 0, 1, 1);
    }

    private void renderPmDot() {
        renderRect(this.currentStack, 51, 20, 4, 4);
    }

    private void renderNumber(int no) {
        if (no == 1) {
            renderTopRight();
            renderBottomRight();
        } else if (no == MID_X_ADJUST) {
            renderTop();
            renderTopRight();
            renderMid();
            renderBottomLeft();
            renderBottom();
        } else if (no == 3) {
            renderTop();
            renderTopRight();
            renderMid();
            renderBottomRight();
            renderBottom();
        } else if (no == 4) {
            renderTopLeft();
            renderTopRight();
            renderMid();
            renderBottomRight();
        } else if (no == 5) {
            renderTop();
            renderTopLeft();
            renderMid();
            renderBottomRight();
            renderBottom();
        } else if (no == 6) {
            renderTop();
            renderTopLeft();
            renderMid();
            renderBottomRight();
            renderBottom();
            renderBottomLeft();
        } else if (no == 7) {
            renderTop();
            renderTopRight();
            renderBottomRight();
        } else if (no == 8) {
            renderTopLeft();
            renderTop();
            renderTopRight();
            renderMid();
            renderBottom();
            renderBottomLeft();
            renderBottomRight();
        } else if (no == 9) {
            renderTopLeft();
            renderTop();
            renderTopRight();
            renderMid();
            renderBottom();
            renderBottomRight();
        } else if (no == 0) {
            renderTopLeft();
            renderTop();
            renderTopRight();
            renderBottom();
            renderBottomLeft();
            renderBottomRight();
        }
        this.currentPos++;
    }

    private void renderTime(int hour, int minute) {
        int hourLeftDigit = hour / 10;
        int hourRightDigit = hour % 10;
        if (hourLeftDigit > 0) {
            renderNumber(hourLeftDigit);
        } else {
            this.currentPos++;
        }
        renderNumber(hourRightDigit);
        int minuteLeftDigit = minute / 10;
        int minuteRightDigit = minute % 10;
        renderNumber(minuteLeftDigit);
        renderNumber(minuteRightDigit);
        renderColon();
    }

    /* renamed from: com.dairymoose.modernlife.renderer.tileentity.AlarmClockBlockEntityRenderer$1 */
    /* loaded from: outputsrg.jar:com/dairymoose/modernlife/renderer/tileentity/AlarmClockBlockEntityRenderer$1.class */
    public static /* synthetic */ class C01411 {
        static final /* synthetic */ int[] $SwitchMap$net$minecraft$core$Direction = new int[Direction.values().length];

        static {
            try {
                $SwitchMap$net$minecraft$core$Direction[Direction.EAST.ordinal()] = 1;
            } catch (NoSuchFieldError e) {
            }
            try {
                $SwitchMap$net$minecraft$core$Direction[Direction.WEST.ordinal()] = AlarmClockBlockEntityRenderer.MID_X_ADJUST;
            } catch (NoSuchFieldError e2) {
            }
            try {
                $SwitchMap$net$minecraft$core$Direction[Direction.NORTH.ordinal()] = 3;
            } catch (NoSuchFieldError e3) {
            }
            try {
                $SwitchMap$net$minecraft$core$Direction[Direction.SOUTH.ordinal()] = 4;
            } catch (NoSuchFieldError e4) {
            }
        }
    }

    public void render(AlarmClockBlockEntity tileEntity, float v, PoseStack matrixStack, MultiBufferSource iRenderTypeBuffer, int lightmap, int i1) {
        switch (C01411.$SwitchMap$net$minecraft$core$Direction[tileEntity.getBlockState().getValue(CanvasBlock.FACING).ordinal()]) {
            case 1:
                matrixStack.mulPose(Vector3f.YP.rotationDegrees(270.0f));
                break;
            case MID_X_ADJUST /* 2 */:
                matrixStack.mulPose(Vector3f.YP.rotationDegrees(90.0f));
                matrixStack.translate(-1.0d, 0.0d, 1.0d);
                break;
            case 3:
                matrixStack.mulPose(Vector3f.YP.rotationDegrees(0.0f));
                matrixStack.translate(0.0d, 0.0d, 1.0d);
                break;
            case 4:
                matrixStack.mulPose(Vector3f.YP.rotationDegrees(180.0f));
                matrixStack.translate(-1.0d, 0.0d, 0.0d);
                break;
        }
        matrixStack.translate(0.0d, 0.0d, -0.8149999976158142d);
        matrixStack.scale(0.01f, 0.01f, 0.01f);
        matrixStack.translate(10.0d, 0.0d, 0.0d);
        matrixStack.translate(11.800000190734863d, 3.200000047683716d, 0.0d);
        RenderSystem.enableDepthTest();
        this.currentStack = matrixStack;
        resetCurrentPos();
        long dayTime = Minecraft.getInstance().level.getDayTime();
        long currentTime = (dayTime + TIME_DIFFERENCE) % TIME_FULL_DAY;
        long displayTime = currentTime;
        Boolean config24Hours = (Boolean) ModernLifeConfig.CLIENT.clock24HoursMode.get();
        if ((config24Hours == null || !config24Hours.booleanValue()) && currentTime >= 12000) {
            renderPmDot();
            displayTime = currentTime - 12000;
        }
        Boolean configMoonIndicator = (Boolean) ModernLifeConfig.CLIENT.moonIndicator.get();
        if (configMoonIndicator != null && configMoonIndicator.booleanValue() && (currentTime >= 18542 || currentTime < 5460)) {
            renderMoon();
        }
        int hour = ((int) displayTime) / TIME_UNITS_PER_MINUTE;
        if (hour == 0) {
            hour = 12;
        }
        int minute = (60 * (((int) displayTime) % TIME_UNITS_PER_MINUTE)) / TIME_UNITS_PER_MINUTE;
        renderTime(hour, minute);
    }
}
