Commit bd15e763be763d3c59fb2aa367752ed204c0fa32
1 parent
f69d71c7
add more caps to ModInfoDecorator, change mod status text when errored
Showing
4 changed files
with
65 additions
and
3 deletions
java/client/com/mumfrey/liteloader/client/api/LiteLoaderModInfoDecorator.java
| ... | ... | @@ -54,4 +54,21 @@ public class LiteLoaderModInfoDecorator implements ModInfoDecorator |
| 54 | 54 | }); |
| 55 | 55 | } |
| 56 | 56 | } |
| 57 | + | |
| 58 | + /* (non-Javadoc) | |
| 59 | + * @see com.mumfrey.liteloader.api.ModInfoDecorator#modifyStatusText(com.mumfrey.liteloader.core.ModInfo, java.lang.String) | |
| 60 | + */ | |
| 61 | + @Override | |
| 62 | + public String modifyStatusText(ModInfo<?> mod, String statusText) | |
| 63 | + { | |
| 64 | + return null; | |
| 65 | + } | |
| 66 | + | |
| 67 | + /* (non-Javadoc) | |
| 68 | + * @see com.mumfrey.liteloader.api.ModInfoDecorator#onDrawListEntry(int, int, float, int, int, int, int, boolean, com.mumfrey.liteloader.core.ModInfo, int, int, int) | |
| 69 | + */ | |
| 70 | + @Override | |
| 71 | + public void onDrawListEntry(int mouseX, int mouseY, float partialTicks, int xPosition, int yPosition, int width, int height, boolean selected, ModInfo<?> mod, int gradientColour, int titleColour, int statusColour) | |
| 72 | + { | |
| 73 | + } | |
| 57 | 74 | } | ... | ... |
java/client/com/mumfrey/liteloader/client/gui/GuiModListEntry.java
| ... | ... | @@ -219,13 +219,28 @@ public class GuiModListEntry extends Gui |
| 219 | 219 | |
| 220 | 220 | this.drawGradientRect(xPosition, yPosition, xPosition + width, yPosition + GuiModListEntry.PANEL_HEIGHT, gradientColour, GuiModListEntry.GRADIENT_COLOUR2); |
| 221 | 221 | |
| 222 | - this.fontRenderer.drawString(this.getTitleText(), xPosition + 5, yPosition + 2, titleColour); | |
| 223 | - this.fontRenderer.drawString(this.getVersionText(), xPosition + 5, yPosition + 12, GuiModListEntry.VERSION_TEXT_COLOUR); | |
| 224 | - this.fontRenderer.drawString(this.getStatusText(), xPosition + 5, yPosition + 22, statusColour); | |
| 222 | + String titleText = this.getTitleText(); | |
| 223 | + String versionText = this.getVersionText(); | |
| 224 | + String statusText = this.getStatusText(); | |
| 225 | + | |
| 226 | + for (ModInfoDecorator decorator : this.decorators) | |
| 227 | + { | |
| 228 | + String newStatusText = decorator.modifyStatusText(this.modInfo, statusText); | |
| 229 | + if (newStatusText != null) statusText = newStatusText; | |
| 230 | + } | |
| 231 | + | |
| 232 | + this.fontRenderer.drawString(titleText, xPosition + 5, yPosition + 2, titleColour); | |
| 233 | + this.fontRenderer.drawString(versionText, xPosition + 5, yPosition + 12, GuiModListEntry.VERSION_TEXT_COLOUR); | |
| 234 | + this.fontRenderer.drawString(statusText, xPosition + 5, yPosition + 22, statusColour); | |
| 225 | 235 | |
| 226 | 236 | this.mouseOverListEntry = this.isMouseOver(mouseX, mouseY, xPosition, yPosition, width, PANEL_HEIGHT); |
| 227 | 237 | drawRect(xPosition, yPosition, xPosition + 1, yPosition + PANEL_HEIGHT, this.mouseOverListEntry ? GuiModListEntry.HANGER_COLOUR_MOUSEOVER : GuiModListEntry.HANGER_COLOUR); |
| 228 | 238 | |
| 239 | + for (ModInfoDecorator decorator : this.decorators) | |
| 240 | + { | |
| 241 | + decorator.onDrawListEntry(mouseX, mouseY, partialTicks, xPosition, yPosition, width, GuiModListEntry.PANEL_HEIGHT, selected, this.modInfo, gradientColour, titleColour, statusColour); | |
| 242 | + } | |
| 243 | + | |
| 229 | 244 | return GuiModListEntry.PANEL_HEIGHT + GuiModListEntry.PANEL_SPACING; |
| 230 | 245 | } |
| 231 | 246 | |
| ... | ... | @@ -345,6 +360,10 @@ public class GuiModListEntry extends Gui |
| 345 | 360 | statusText = "\247e" + I18n.format("gui.status.missingdeps"); |
| 346 | 361 | if (this.canBeToggled && !this.willBeEnabled) statusText = "\247c" + I18n.format("gui.status.pending.disabled"); |
| 347 | 362 | } |
| 363 | + else if (this.isErrored) | |
| 364 | + { | |
| 365 | + statusText = "\247c" + I18n.format("gui.status.startuperror"); | |
| 366 | + } | |
| 348 | 367 | else if (this.canBeToggled) |
| 349 | 368 | { |
| 350 | 369 | if (!this.enabled && !this.willBeEnabled) statusText = "\2477" + I18n.format("gui.status.disabled"); | ... | ... |
java/common/com/mumfrey/liteloader/api/ModInfoDecorator.java
| ... | ... | @@ -21,4 +21,29 @@ public interface ModInfoDecorator extends CustomisationProvider |
| 21 | 21 | * @param icons |
| 22 | 22 | */ |
| 23 | 23 | public abstract void addIcons(ModInfo<?> mod, List<IconTextured> icons); |
| 24 | + | |
| 25 | + /** | |
| 26 | + * Allows this decorator to modify the status text for the specified mod, return null if no modification required | |
| 27 | + * | |
| 28 | + * @param statusText | |
| 29 | + * @return | |
| 30 | + */ | |
| 31 | + public abstract String modifyStatusText(ModInfo<?> mod, String statusText); | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * Allow decorators to draw custom content on the mod list entries | |
| 35 | + * | |
| 36 | + * @param mouseX Mouse X position | |
| 37 | + * @param mouseY Mouse Y position | |
| 38 | + * @param partialTicks | |
| 39 | + * @param xPosition Panel X position | |
| 40 | + * @param yPosition Panel Y position | |
| 41 | + * @param width Panel width | |
| 42 | + * @param selected Panel height | |
| 43 | + * @param mod ModInfo | |
| 44 | + * @param gradientColour | |
| 45 | + * @param titleColour | |
| 46 | + * @param statusColour | |
| 47 | + */ | |
| 48 | + public abstract void onDrawListEntry(int mouseX, int mouseY, float partialTicks, int xPosition, int yPosition, int width, int height, boolean selected, ModInfo<?> mod, int gradientColour, int titleColour, int statusColour); | |
| 24 | 49 | } | ... | ... |
resources/assets/liteloader/lang/en_US.lang
| ... | ... | @@ -31,6 +31,7 @@ gui.status.pending.enabled=Enabled on next startup |
| 31 | 31 | gui.status.pending.disabled=Disabled on next startup |
| 32 | 32 | gui.status.missingdeps=Missing dependencies |
| 33 | 33 | gui.status.missingapis=Missing required APIs |
| 34 | +gui.status.startuperror=Startup errors detected | |
| 34 | 35 | gui.description.missingdeps=Missing dependencies: %s |
| 35 | 36 | gui.description.missingapis=Missing APIs: %s |
| 36 | 37 | ... | ... |