Extending existing Skins
Extending Existing Skins for Custom Option Renderers
Steps
public class ExtendedClassicSkin extends ClassicSkin {
public ExtendedClassicSkin() {
super();
addRenderer(StringOption.class, CustomStringRenderer::new);
}
public static class CustomStringRenderer implements SkinRenderer<StringOption> {
@Override
public void render(DrawContext drawContext, StringOption option, int x, int y, int mouseX, int mouseY) {
option.setPosition(x, y);
option.setHeight(mc.textRenderer.fontHeight);
option.setWidth(mc.textRenderer.getWidth(option.get()) + 10);
drawContext.drawText(mc.textRenderer, option.get(), x, y, 0x00FFFF, false);
}
}
}
// Usage
ContextMenu<ContextMenuProperties> menu = new ContextMenu<>(100, 100, ContextMenuProperties.createGenericSimplified().skin(new ExtendedClassicSkin()));
menu.addOption(new StringOption(Text.of("Text"), () -> "Hello", v -> System.out.println(v)));Last updated