Skip to content

Commit

Permalink
1.20
Browse files Browse the repository at this point in the history
  • Loading branch information
erruqie committed Jun 9, 2024
1 parent 0655b58 commit b429a48
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 72 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ plugins {
id 'com.modrinth.minotaur' version '2.+'
}

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21

archivesBaseName = "${project.archives_base_name}-${project.minecraft_version}"
version = project.mod_version
Expand Down
10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx4G
org.gradle.jvmargs=-Xmx4G

# Fabric Properties
# check these on https://fabricmc.net/use
minecraft_version=1.19.4
yarn_mappings=1.19.4+build.2
minecraft_version=1.20
yarn_mappings=1.20+build.1
loader_version=0.15.11

# Mod Properties
Expand All @@ -14,5 +14,5 @@ org.gradle.jvmargs=-Xmx4G
modrinth_projectid = X5aijFqA

# Dependencies
fabric_version=0.87.2+1.19.4
midnightlib_version=1.3.0-fabric
fabric_version=0.83.0+1.20
midnightlib_version=1.4.1-fabric
102 changes: 40 additions & 62 deletions src/main/java/one/clownless/blockify/BlockifyHUD.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import eu.midnightdust.lib.util.MidnightColorUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.OrderedText;
Expand All @@ -19,8 +19,7 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class BlockifyHUD
{
public class BlockifyHUD {
private static MinecraftClient client;
private static MatrixStack matrixStack;
private static int scaledWidth;
Expand All @@ -37,8 +36,7 @@ public class BlockifyHUD
public static final Logger LOGGER = LogManager.getLogger("Blockify");
private static final ExecutorService EXECUTOR_SERVICE = Executors.newCachedThreadPool();

public BlockifyHUD(MinecraftClient client)
{
public BlockifyHUD(MinecraftClient client) {
BlockifyHUD.client = client;
scaledWidth = client.getWindow().getScaledWidth();
scaledHeight = client.getWindow().getScaledHeight();
Expand All @@ -51,114 +49,97 @@ public BlockifyHUD(MinecraftClient client)
durationMS = -1;
}

public static void draw(MatrixStack matrixStack)
public static void draw(DrawContext context)
{
matrixStack = context.getMatrices();
matrixStack.push();
if (hudInfo[1] == null || isHidden)
{
if (hudInfo[1] == null || isHidden) {
return;
}

double percentProgress = (double) progressMS / (double) durationMS;
if (percentProgress < 0)
{
if (percentProgress < 0) {
percentProgress = 0;
}

BlockifyHUD.matrixStack = matrixStack;
matrixStack.translate((BlockifyConfig.anchor == BlockifyConfig.Anchor.TOP_LEFT || BlockifyConfig.anchor == BlockifyConfig.Anchor.BOTTOM_LEFT) ? BlockifyConfig.posX : scaledWidth - 185 - BlockifyConfig.posX,
(BlockifyConfig.anchor == BlockifyConfig.Anchor.TOP_LEFT || BlockifyConfig.anchor == BlockifyConfig.Anchor.TOP_RIGHT) ? BlockifyConfig.posY : scaledHeight - 55 - BlockifyConfig.posY, 0);
matrixStack.scale((float) BlockifyConfig.scale, (float) BlockifyConfig.scale,1);
matrixStack.scale((float) BlockifyConfig.scale, (float) BlockifyConfig.scale, 1);
scaledWidth = client.getWindow().getScaledWidth();
scaledHeight = client.getWindow().getScaledHeight();
int textOffset = 55;
if ((BlockifyConfig.drawCover) && hudInfo[4] != null && (!prevImage.equals(hudInfo[4]) && !hudInfo[4].equals("")))
{
if ((BlockifyConfig.drawCover) && hudInfo[4] != null && (!prevImage.equals(hudInfo[4]) && !hudInfo[4].equals(""))) {
LOGGER.info("Drawing new album cover.");
albumImage.setImage(hudInfo[4]);
prevImage = hudInfo[4];
}
if (hudInfo[4] != null && (BlockifyConfig.drawCover))
{
drawRectangle(5, 5, 50, 50, new Color(0,0,0,150));
if (hudInfo[4] != null && (BlockifyConfig.drawCover)) {
drawRectangle(context, 5, 5, 50, 50, new Color(0, 0, 0, 150));
RenderUtil.drawTexture(matrixStack, albumImage, 5, 5, .15F);
textOffset = 0;
}

drawRectangle(0, 0, 185 - textOffset, 55, new Color(MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getRed(), MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getGreen(), MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getBlue(), BlockifyConfig.backgroundTransparency));
drawRectangle(60 - textOffset, 48, 180 - textOffset, 50, MidnightColorUtil.hex2Rgb(BlockifyConfig.barColor).darker().darker());
drawRectangle(60 - textOffset, 48, (float) (60 + (120 * percentProgress)) - textOffset, 50, MidnightColorUtil.hex2Rgb(BlockifyConfig.barColor));
drawRectangle(context, 0, 0, 185 - textOffset, 55, new Color(MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getRed(), MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getGreen(), MidnightColorUtil.hex2Rgb(BlockifyConfig.backgroundColor).getBlue(), BlockifyConfig.backgroundTransparency));
drawRectangle(context, 60 - textOffset, 48, 180 - textOffset, 50, MidnightColorUtil.hex2Rgb(BlockifyConfig.barColor).darker().darker());
drawRectangle(context, 60 - textOffset, 48, (float) (60 + (120 * percentProgress)) - textOffset, 50, MidnightColorUtil.hex2Rgb(BlockifyConfig.barColor));

List<OrderedText> nameWrap = fontRenderer.wrapLines(StringVisitable.plain(hudInfo[0]), 125);
int yOffset = 0;
if (nameWrap.size() > 1)
{
fontRenderer.drawWithShadow(matrixStack, nameWrap.get(0), 60 - textOffset, 5, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
fontRenderer.drawWithShadow(matrixStack, nameWrap.get(1), 60 - textOffset, 18, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
if (nameWrap.size() > 1) {
context.drawTextWithShadow(fontRenderer, nameWrap.get(0), 60 - textOffset, 5, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
context.drawTextWithShadow(fontRenderer, nameWrap.get(1), 60 - textOffset, 18, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
yOffset = 15;
}
else
{
fontRenderer.drawWithShadow(matrixStack, nameWrap.get(0), 60 - textOffset, 5, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
} else {
context.drawTextWithShadow(fontRenderer, nameWrap.get(0), 60 - textOffset, 5, MidnightColorUtil.hex2Rgb(BlockifyConfig.titleColor).getRGB());
}
matrixStack.scale(.5F, .5F, .5F);

List<OrderedText> artistWrap = fontRenderer.wrapLines(StringVisitable.plain(hudInfo[1]), 140);
int artistYOffset = 0;
if (artistWrap.size() > 1)
{
fontRenderer.drawWithShadow(matrixStack, artistWrap.get(0), 120 - (textOffset * 2), 44 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
fontRenderer.drawWithShadow(matrixStack, artistWrap.get(1), 120 - (textOffset * 2), 57 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
if (artistWrap.size() > 1) {
context.drawTextWithShadow(fontRenderer, artistWrap.get(0), 120 - (textOffset * 2), 44 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
context.drawTextWithShadow(fontRenderer, artistWrap.get(1), 120 - (textOffset * 2), 57 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
artistYOffset = 15;
}
else
{
fontRenderer.drawWithShadow(matrixStack, artistWrap.get(0), 120 - (textOffset * 2), 44 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
} else {
context.drawTextWithShadow(fontRenderer, artistWrap.get(0), 120 - (textOffset * 2), 44 + yOffset, MidnightColorUtil.hex2Rgb(BlockifyConfig.artistColor).getRGB());
}
String progressText = (progressMS / (1000 * 60)) + ":" + String.format("%02d", (progressMS / 1000 % 60));
String durationText = (durationMS / (1000 * 60)) + ":" + String.format("%02d ", (durationMS / 1000 % 60)) + I18n.translate("blockify.hud.volume") + ": " + hudInfo[6];

fontRenderer.drawWithShadow(matrixStack, progressText, 120 - (textOffset * 2), 85, MidnightColorUtil.hex2Rgb(BlockifyConfig.timeColor).getRGB());
fontRenderer.drawWithShadow(matrixStack, durationText, 360 - (fontRenderer.getWidth(durationText)) - (textOffset * 2), 85, MidnightColorUtil.hex2Rgb(BlockifyConfig.timeColor).getRGB());
context.drawTextWithShadow(fontRenderer, progressText, 120 - (textOffset * 2), 85, MidnightColorUtil.hex2Rgb(BlockifyConfig.timeColor).getRGB());
context.drawTextWithShadow(fontRenderer, durationText, 360 - (fontRenderer.getWidth(durationText)) - (textOffset * 2), 85, MidnightColorUtil.hex2Rgb(BlockifyConfig.timeColor).getRGB());
matrixStack.scale(2F, 2F, 2F);
matrixStack.scale(1,1,1);
matrixStack.scale(1, 1, 1);
matrixStack.pop();
}

public static void drawRectangle(float x1, float y1, float x2, float y2, Color color)
{
InGameHud.fill(matrixStack, (int) (x1), (int) (y1), (int) (x2), (int) (y2), color.getRGB());
public static void drawRectangle(DrawContext context, float x1, float y1, float x2, float y2, Color color) {
context.fill((int) (x1), (int) (y1), (int) (x2), (int) (y2), color.getRGB());
}

public static void updateData(String[] data)
{
public static void updateData(String[] data) {
hudInfo = data;
progressMS = hudInfo[2] == null ? 0 : (Integer.parseInt(hudInfo[2]) - 1000);
durationMS = hudInfo[3] == null ? -1 : Integer.parseInt(hudInfo[3]);
}

public static int getProgress()
{
public static int getProgress() {
return progressMS;
}

public static int getDuration()
{
public static int getDuration() {
return durationMS;
}

public static void setProgress(int progress)
{
public static void setProgress(int progress) {
progressMS = progress;
}

public static void setDuration(int duration)
{
public static void setDuration(int duration) {
durationMS = duration;
}

public static void increaseVolume()
{
public static void increaseVolume() {
EXECUTOR_SERVICE.execute(() -> {
prevVolume = Integer.parseInt(hudInfo[6]);
LOGGER.info("Prev volume: " + prevVolume);
Expand All @@ -173,23 +154,20 @@ public static void increaseVolume()
hudInfo[6] = String.valueOf(newVolume);
});
}
public static void decreaseVolume()
{

public static void decreaseVolume() {
EXECUTOR_SERVICE.execute(() -> {
prevVolume = Integer.parseInt(hudInfo[6]);
LOGGER.info("Prev volume: " + prevVolume);
newVolume = prevVolume - BlockifyConfig.volumeStep;
if (prevVolume == 0)
{
if (prevVolume == 0) {
return;
}
else if (newVolume < 0)
{
} else if (newVolume < 0) {
newVolume = 0;
}
SpotifyUtil.putRequest("volume?volume_percent=" + newVolume);
LOGGER.info("Set new volume: " + newVolume);
hudInfo[6] = String.valueOf(newVolume);
});
}
}
}
7 changes: 4 additions & 3 deletions src/main/java/one/clownless/blockify/mixin/BlockifyMixin.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package one.clownless.blockify.mixin;

import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import one.clownless.blockify.BlockifyHUD;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
Expand All @@ -33,10 +34,10 @@ private void onInit(MinecraftClient client, ItemRenderer itemRenderer, CallbackI
}

@Inject(method = "render", at = @At("HEAD"))
private void onDraw(MatrixStack matrixStack, float esp, CallbackInfo ci)
private void onDraw(DrawContext context, float tickDelta, CallbackInfo ci)
{
if (!MinecraftClient.getInstance().options.debugEnabled)
BlockifyHUD.draw(matrixStack);
BlockifyHUD.draw(context);
}
}

Expand Down

0 comments on commit b429a48

Please sign in to comment.