Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@
import dev.architectury.event.events.client.ClientScreenInputEvent;
import dev.architectury.event.events.client.ClientTickEvent;
import dev.architectury.registry.client.keymappings.KeyMappingRegistry;
import mod.adrenix.nostalgic.NostalgicTweaks;
import mod.adrenix.nostalgic.client.gui.screen.home.HomeScreen;
import mod.adrenix.nostalgic.mixin.access.MusicManagerAccess;
import mod.adrenix.nostalgic.tweak.config.CandyTweak;
import mod.adrenix.nostalgic.tweak.config.ModTweak;
import mod.adrenix.nostalgic.tweak.gui.KeybindingId;
import mod.adrenix.nostalgic.util.client.KeyboardUtil;
import mod.adrenix.nostalgic.util.common.ClassUtil;
Expand Down Expand Up @@ -48,6 +51,11 @@ public abstract class ClientKeyMapping
*/
public static final KeyMapping STOP_SONG_KEY = new KeyMapping(Lang.Binding.STOP_SONG.getString(), -1, Lang.TITLE.getString());

/**
* The toggle key, when pressed, toggles the mod between the enabled and disabled state.
*/
public static final KeyMapping TOGGLE_KEY = new KeyMapping(Lang.Binding.TOGGLE_KEY.getString(), InputConstants.KEY_HOME, Lang.TITLE.getString());

/**
* Get a key mapping based on the given {@link KeybindingId}.
*
Expand All @@ -62,6 +70,7 @@ public static KeyMapping getFromId(KeybindingId id)
case FOG -> FOG_KEY;
case NEXT_SONG -> NEXT_SONG_KEY;
case STOP_SONG -> STOP_SONG_KEY;
case TOGGLE -> TOGGLE_KEY;
};
}

Expand All @@ -74,6 +83,7 @@ public static void register()
KeyMappingRegistry.register(FOG_KEY);
KeyMappingRegistry.register(STOP_SONG_KEY);
KeyMappingRegistry.register(NEXT_SONG_KEY);
KeyMappingRegistry.register(TOGGLE_KEY);

ClientScreenInputEvent.KEY_PRESSED_POST.register((minecraft, screen, keyCode, scanCode, modifiers) -> {
Function<Translation, Boolean> isBindingMatched = (translation) -> {
Expand All @@ -100,6 +110,12 @@ public static void register()
return EventResult.pass();
}

if (isBindingMatched.apply(Lang.Binding.TOGGLE_KEY))
{
toggleEnabled(minecraft);
return EventResult.pass();
}

return EventResult.pass();
});

Expand All @@ -115,6 +131,9 @@ public static void register()

while (NEXT_SONG_KEY.consumeClick())
playNewSong(minecraft);

while (TOGGLE_KEY.consumeClick())
toggleEnabled(minecraft);
});
}

Expand Down Expand Up @@ -170,4 +189,11 @@ private static void playNewSong(Minecraft minecraft)
minecraft.getMusicManager().stopPlaying();
((MusicManagerAccess) minecraft.getMusicManager()).nt$setNextSongDelay(0);
}

private static void toggleEnabled(Minecraft minecraft)
{
boolean newValue = !ModTweak.ENABLED.get();
ModTweak.ENABLED.setCacheAndDiskThenSave(newValue);
AfterConfigSave.reloadAndRun();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ public enum KeybindingId
CONFIG,
FOG,
NEXT_SONG,
STOP_SONG
STOP_SONG,
TOGGLE,
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ interface Binding
Translation STOP_SONG = new Translation("key.nostalgic_tweaks.stop_song");
Translation NEXT_SONG = new Translation("key.nostalgic_tweaks.next_song");
Translation UNBOUND = new Translation("key.nostalgic_tweaks.unbound");
Translation TOGGLE_KEY = new Translation("key.nostalgic_tweaks.toggle_key");
}

/* Vanilla */
Expand Down