Skip to content

Commit 194c082

Browse files
committed
feat: Reintroduce legacy-specific features to older versions
1 parent b21e521 commit 194c082

3 files changed

Lines changed: 27 additions & 4 deletions

File tree

src/main/java/gay/ampflower/musicmoods/client/ConfigurationScreen.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ protected void init() {
9797
);
9898

9999
addTabEntry("volume", this::buildVolumeList);
100-
addTabEntry("music", ConfigurationScreen::buildMusicOptionList);
100+
addTabEntry("music", this::buildMusicOptionList);
101101
addTabEntry("jukebox", ConfigurationScreen::buildJukeboxOptionList);
102102
addTabEntry("demo", ConfigurationScreen::buildDemoList);
103103
addTabEntry("meta", ConfigurationScreen::buildMetaList);
@@ -196,21 +196,35 @@ protected SpruceOptionListWidget buildVolumeList(int width, int height) {
196196
Component.translatable("options.showNowPlayingToast.tooltip")
197197
)
198198
);
199+
#else;
200+
try {
201+
list.addSingleOptionEntry(checkbox("alwaysPlayMusic"));
202+
} catch (ReflectiveOperationException roe) {
203+
throw new AssertionError("Unexpected access violation", roe);
204+
}
199205
#endif
200206

201207
return list;
202208
}
203209

204-
protected static SpruceOptionListWidget buildMusicOptionList(int width, int height) {
210+
protected SpruceOptionListWidget buildMusicOptionList(int width, int height) {
205211
final var list = new SpruceOptionListWidget(Position.origin(), width, height);
206212

207213
try {
208214
list.addSingleOptionEntry(separator("situationalMusic"));
209215
list.addSingleOptionEntry(cycling("situationalMusicReplacing"));
210-
list.addSingleOptionEntry(checkbox("immediatelyPlayOnReplace"));
216+
#if MC_1_21_6_OR_NEWER
217+
list.addOptionEntry(checkbox("immediatelyPlayOnReplace"), musicFrequency);
218+
#else
219+
list.addOptionEntry(checkbox("immediatelyPlayOnReplace"), checkbox("alwaysPlayMusic"));
220+
#endif
211221
list.addSingleOptionEntry(separator("transitions"));
212222
list.addOptionEntry(intInput("fadeInTicks"), intInput("fadeOutTicks"));
223+
#if MC_1_21_6_OR_NEWER
213224
list.addSingleOptionEntry(checkbox("seamlessTransitions"));
225+
#else
226+
list.addOptionEntry(checkbox("seamlessTransitions"), checkbox("allowPausingMusic"));
227+
#endif
214228
} catch (ReflectiveOperationException roe) {
215229
throw new AssertionError("Unexpected access violation", roe);
216230
}

src/main/java/gay/ampflower/musicmoods/mixin/MixinMusicManager.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ private int deriveNextSongDelay(final Music music) {
211211
// Fall back to legacy logic in case this is actually true.
212212

213213
final int minDelay;
214+
#if MC_1_21_5_OR_OLDER
215+
if (Config.alwaysPlayMusic) {
216+
minDelay = 100;
217+
} else
218+
#endif
214219
if (Config.chaoticallyPlayMusic) {
215220
// 10 seconds at 60 FPS
216221
minDelay = 600;
@@ -408,6 +413,10 @@ private int decrementSongDelay(Music music) {
408413
if (frequency != null) {
409414
maxDelay = Math.min(maxDelay, frequency.getMaxFrequency());
410415
}
416+
#else
417+
if (Config.alwaysPlayMusic) {
418+
maxDelay = 100;
419+
}
411420
#endif
412421
return this.nextSongDelay = Math.min(this.nextSongDelay - 1, maxDelay);
413422
}

stonecutter.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
id("dev.kikugie.stonecutter")
66
}
77

8-
stonecutter active "forge-1.20"
8+
stonecutter active "fabric-1.21.6"
99

1010
stonecutter.current?.apply {
1111
val manifold = file("versions/$project/build.properties").toPath()

0 commit comments

Comments
 (0)