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 | ... | ... |