diff --git a/gradle.properties b/gradle.properties index bb94da3..b414c66 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.21.4 yarn_mappings=1.21.4+build.8 loader_version=0.16.10 # Mod Properties -mod_version=1.14.514 +mod_version=1.14.514.013 maven_group=semmiedev archives_base_name=disc_jockey # Dependencies diff --git a/src/main/java/semmiedev/disc_jockey/gui/SongListWidget.java b/src/main/java/semmiedev/disc_jockey/gui/SongListWidget.java index bab148f..0b2f055 100644 --- a/src/main/java/semmiedev/disc_jockey/gui/SongListWidget.java +++ b/src/main/java/semmiedev/disc_jockey/gui/SongListWidget.java @@ -5,12 +5,15 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.EntryListWidget; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; import semmiedev.disc_jockey.Main; import semmiedev.disc_jockey.Song; public class SongListWidget extends EntryListWidget { + private static final String FAVORITE_EMOJI = "收藏★"; + private static final String NOT_FAVORITE_EMOJI = "收藏☆"; public SongListWidget(MinecraftClient client, int width, int height, int top, int itemHeight) { super(client, width, height, top, itemHeight); @@ -69,8 +72,13 @@ public class SongListWidget extends EntryListWidget { context.drawCenteredTextWithShadow(client.textRenderer, song.displayName, x + entryWidth / 2, y + 5, selected ? 0xFFFFFF : 0x808080); - RenderSystem.setShaderTexture(0, ICONS); -// context.drawTexture(ICONS, x + 2, y + 2, (favorite ? 26 : 0) + (isOverFavoriteButton(mouseX, mouseY) ? 13 : 0), 0, 13, 12, 52, 12); + String emoji = String.valueOf(favorite ? FAVORITE_EMOJI : NOT_FAVORITE_EMOJI); + context.drawTextWithShadow( + client.textRenderer, + emoji, + x + 2, y + 2, + favorite ? 0xFFD700 : 0x808080 + ); } @Override @@ -89,7 +97,12 @@ public class SongListWidget extends EntryListWidget { } private boolean isOverFavoriteButton(double mouseX, double mouseY) { - return mouseX > x + 2 && mouseX < x + 15 && mouseY > y + 2 && mouseY < y + 14; + int textWidth = client.textRenderer.getWidth(favorite ? FAVORITE_EMOJI : NOT_FAVORITE_EMOJI); + int textHeight = 8; + return mouseX > x + 2 && + mouseX < x + 2 + textWidth && + mouseY > y + 2 && + mouseY < y + 2 + textHeight; } } } diff --git a/src/main/java/semmiedev/disc_jockey/mixin/ClientWorldMixin.java b/src/main/java/semmiedev/disc_jockey/mixin/ClientWorldMixin.java index 2ba3395..2df4843 100644 --- a/src/main/java/semmiedev/disc_jockey/mixin/ClientWorldMixin.java +++ b/src/main/java/semmiedev/disc_jockey/mixin/ClientWorldMixin.java @@ -34,13 +34,12 @@ public class ClientWorldMixin { ) { if ( ((Main.config.omnidirectionalNoteBlockSounds && Main.SONG_PLAYER.running) || Main.PREVIEWER.running) && - // 关键修改点:event.id() 替代 event.getId() event.id().getPath().startsWith("block.note_block") ) { ci.cancel(); client.getSoundManager().play( new PositionedSoundInstance( - event.id(), // ✅ 同样需要修改此处 + event.id(), category, volume, pitch, diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index b72d6ad..eeb75d0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -3,14 +3,14 @@ "id": "disc_jockey", "version": "${version}", "name": "Disc Jockey", - "description": "Play note block songs in Minecraft", + "description": "在游戏中播放音符盒(打碟)", "authors": [ "SemmieDev", "EnderKill98", - "BRanulf(非正式)" + "BRanulf(仅限该版本,请支持上面两个原作者)" ], "contact": { - "repo": "https://github.com/SemmieDev/Disc-Jockey" + "repo": "http://git.branulf.top/BRanulf/DJ_BR" }, "license": "MIT", "icon": "assets/disc_jockey/icon.png",