Commit b98d20880bf15e845ae5c0cc7a5b9bcd0e660d7c
1 parent
e60ddac5
Add loader info to debug overlay
Showing
3 changed files
with
35 additions
and
5 deletions
src/client/java/com/mumfrey/liteloader/client/gui/GuiLiteLoaderPanel.java
| @@ -166,7 +166,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -166,7 +166,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
| 166 | this.toggleable = true; | 166 | this.toggleable = true; |
| 167 | 167 | ||
| 168 | this.versionText = I18n.format("gui.about.versiontext", LiteLoader.getVersion()); | 168 | this.versionText = I18n.format("gui.about.versiontext", LiteLoader.getVersion()); |
| 169 | - this.activeModText = I18n.format("gui.about.modsloaded", mods.getLoadedMods().size()); | 169 | + this.activeModText = I18n.format("gui.about.modsloaded", LiteLoader.getLoadedModsCount()); |
| 170 | 170 | ||
| 171 | this.initBranding(); | 171 | this.initBranding(); |
| 172 | 172 |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinGuiOverlayDebug.java
| @@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
| 5 | */ | 5 | */ |
| 6 | package com.mumfrey.liteloader.client.mixin; | 6 | package com.mumfrey.liteloader.client.mixin; |
| 7 | 7 | ||
| 8 | +import java.util.ArrayList; | ||
| 8 | import java.util.List; | 9 | import java.util.List; |
| 9 | 10 | ||
| 10 | import org.spongepowered.asm.mixin.Mixin; | 11 | import org.spongepowered.asm.mixin.Mixin; |
| @@ -14,28 +15,47 @@ import org.spongepowered.asm.mixin.injection.Inject; | @@ -14,28 +15,47 @@ import org.spongepowered.asm.mixin.injection.Inject; | ||
| 14 | import org.spongepowered.asm.mixin.injection.Redirect; | 15 | import org.spongepowered.asm.mixin.injection.Redirect; |
| 15 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | 16 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
| 16 | 17 | ||
| 18 | +import com.google.common.collect.Lists; | ||
| 19 | +import com.mumfrey.liteloader.core.LiteLoader; | ||
| 17 | import com.mumfrey.liteloader.util.debug.DebugMessage; | 20 | import com.mumfrey.liteloader.util.debug.DebugMessage; |
| 18 | import com.mumfrey.liteloader.util.debug.DebugMessage.Position; | 21 | import com.mumfrey.liteloader.util.debug.DebugMessage.Position; |
| 19 | 22 | ||
| 20 | import net.minecraft.client.gui.Gui; | 23 | import net.minecraft.client.gui.Gui; |
| 21 | import net.minecraft.client.gui.GuiOverlayDebug; | 24 | import net.minecraft.client.gui.GuiOverlayDebug; |
| 25 | +import net.minecraft.client.resources.I18n; | ||
| 22 | 26 | ||
| 23 | @Mixin(GuiOverlayDebug.class) | 27 | @Mixin(GuiOverlayDebug.class) |
| 24 | public abstract class MixinGuiOverlayDebug extends Gui | 28 | public abstract class MixinGuiOverlayDebug extends Gui |
| 25 | { | 29 | { |
| 26 | @Shadow protected abstract List<String> call(); | 30 | @Shadow protected abstract List<String> call(); |
| 27 | - | ||
| 28 | @Shadow protected abstract <T extends Comparable<T>> List<String> getDebugInfoRight(); | 31 | @Shadow protected abstract <T extends Comparable<T>> List<String> getDebugInfoRight(); |
| 29 | 32 | ||
| 30 | private boolean captureNextCall = false; | 33 | private boolean captureNextCall = false; |
| 31 | 34 | ||
| 35 | + @SuppressWarnings("unchecked") | ||
| 36 | + @Redirect(method = "getDebugInfoRight", at = @At(value = "INVOKE", remap = false, | ||
| 37 | + target = "Lcom/google/common/collect/Lists;newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;")) | ||
| 38 | + private <E> ArrayList<E> addLoaderBranding(E... elements) | ||
| 39 | + { | ||
| 40 | + ArrayList<E> list = Lists.newArrayList(elements); | ||
| 41 | + list.add((E)""); | ||
| 42 | + list.add((E)LiteLoader.getVersionDisplayString()); | ||
| 43 | + String branding = LiteLoader.getBranding(); | ||
| 44 | + if (branding != null) | ||
| 45 | + { | ||
| 46 | + list.add((E)branding); | ||
| 47 | + } | ||
| 48 | + list.add((E)I18n.format("gui.about.modsloaded", LiteLoader.getLoadedModsCount())); | ||
| 49 | + return list; | ||
| 50 | + } | ||
| 51 | + | ||
| 32 | @Inject(method = "renderDebugInfoLeft()V", at = @At(value = "HEAD")) | 52 | @Inject(method = "renderDebugInfoLeft()V", at = @At(value = "HEAD")) |
| 33 | private void onRenderDebugInfoLeft(CallbackInfo ci) | 53 | private void onRenderDebugInfoLeft(CallbackInfo ci) |
| 34 | { | 54 | { |
| 35 | this.captureNextCall = true; | 55 | this.captureNextCall = true; |
| 36 | } | 56 | } |
| 37 | 57 | ||
| 38 | - @Redirect(method = "renderDebugInfoLeft()V", at = @At(value = "INVOKE", target = "Ljava/util/List;size()I")) | 58 | + @Redirect(method = "renderDebugInfoLeft()V", at = @At(value = "INVOKE", remap = false, target = "Ljava/util/List;size()I")) |
| 39 | private int getSize(List<String> list) | 59 | private int getSize(List<String> list) |
| 40 | { | 60 | { |
| 41 | if (this.captureNextCall) | 61 | if (this.captureNextCall) |
| @@ -53,7 +73,7 @@ public abstract class MixinGuiOverlayDebug extends Gui | @@ -53,7 +73,7 @@ public abstract class MixinGuiOverlayDebug extends Gui | ||
| 53 | 73 | ||
| 54 | @Redirect(method = "renderDebugInfoLeft()V", at = @At(value = "INVOKE", | 74 | @Redirect(method = "renderDebugInfoLeft()V", at = @At(value = "INVOKE", |
| 55 | target = "Lnet/minecraft/client/gui/GuiOverlayDebug;call()Ljava/util/List;")) | 75 | target = "Lnet/minecraft/client/gui/GuiOverlayDebug;call()Ljava/util/List;")) |
| 56 | - private List<String> onCall(GuiOverlayDebug self) | 76 | + private List<String> onGetDebugInfoLeft(GuiOverlayDebug self) |
| 57 | { | 77 | { |
| 58 | List<String> list = this.call(); | 78 | List<String> list = this.call(); |
| 59 | 79 |
src/main/java/com/mumfrey/liteloader/core/LiteLoader.java
| @@ -318,10 +318,20 @@ public final class LiteLoader | @@ -318,10 +318,20 @@ public final class LiteLoader | ||
| 318 | /** | 318 | /** |
| 319 | * Get LiteLoader version | 319 | * Get LiteLoader version |
| 320 | */ | 320 | */ |
| 321 | - public static final String getVersion() | 321 | + public static String getVersion() |
| 322 | { | 322 | { |
| 323 | return LiteLoaderVersion.CURRENT.getLoaderVersion(); | 323 | return LiteLoaderVersion.CURRENT.getLoaderVersion(); |
| 324 | } | 324 | } |
| 325 | + | ||
| 326 | + /** | ||
| 327 | + * Used for status displays, returns the total number of loaded mods | ||
| 328 | + * | ||
| 329 | + * @return number of loaded litemods | ||
| 330 | + */ | ||
| 331 | + public static int getLoadedModsCount() | ||
| 332 | + { | ||
| 333 | + return LiteLoader.instance.mods.getLoadedMods().size(); | ||
| 334 | + } | ||
| 325 | 335 | ||
| 326 | /** | 336 | /** |
| 327 | * Get LiteLoader version | 337 | * Get LiteLoader version |