Creating a custom option
Creating a Custom Option
Steps
public class StringOption extends Option<String> {
public StringOption(Text name, Supplier<String> getter, Consumer<String> setter) {
super(name, getter, setter);
}
@Override
public boolean charTyped(char c, int modifiers) {
if (Character.isLetterOrDigit(c)) {
set(get() + c);
return true;
}
return false;
}
}
// Register in skin (check in creating a custom skin page)
public class SimpleSkin extends Skin {
public SimpleSkin() {
addRenderer(StringOption.class, SimpleStringRenderer::new);
}
// Renderer in a skin
public class SimpleStringRenderer 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(10);
option.setWidth(mc.textRenderer.getWidth(option.get()) + 10);
drawContext.drawText(mc.textRenderer, option.get(), x, y, 0xFFFFFF, false);
}
}
// ... other methods
}Last updated