-
[1.16.5] My SliderPercentageOption does't work
Thanks, it worked!
-
[1.16.5] My SliderPercentageOption does't work
I'm russian, sorry for bad english. I want to make a role-play server. I added some sliders for stats like strength or charisma, but i can't set value. It must be from 4 to 10, but slider does not work. Here is my code, sorry, I'm new in java. Slider class: public class StatsSlider extends SliderPercentageOption { private int value = 4; public String name; public StatsSlider(String statName, Function<GameSettings, Double> p_i51155_7_, BiConsumer<GameSettings, Double> p_i51155_8_, BiFunction<GameSettings, SliderPercentageOption, ITextComponent> p_i51155_9_) { super(statName, 4, 10, 1, p_i51155_7_, p_i51155_8_, p_i51155_9_); this.name = statName; } public static double getStat(StatsSlider stat, GameSettings settings) { return stat.value; } public static void setStat(StatsSlider stat, int newValue, GameSettings settings) { stat.value = newValue; } public static StringTextComponent getName(StatsSlider stat) { return new StringTextComponent(stat.name + ": " + stat.value); } } Screen class: public CharacterScreen() { super(new StringTextComponent("Создание персонажа")); } @Override protected void init() { this.addButton(new Button( (this.width - BUTTON_WIDTH) / 2, this.height - DONE_BUTTON_TOP_OFFSET, BUTTON_WIDTH, BUTTON_HEIGHT, // Text shown on the button new StringTextComponent("Готово"), // Action performed when the button is pressed button -> this.closedWithButton() )); this.nameTextField = new TextFieldWidget( this.font, (this.width - BUTTON_WIDTH) / 8, DONE_BUTTON_TOP_OFFSET, (int) (BUTTON_WIDTH / 1.5), BUTTON_HEIGHT, new StringTextComponent("Имя персонажа")); this.stats = new OptionsRowList(this.minecraft, this.width, this.height, nameTextField.getHeight() + 50, this.height - DONE_BUTTON_TOP_OFFSET - 20, BUTTON_HEIGHT); this.str = new StatsSlider("Сила", unused -> (double) StatsSlider.getStat(str, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(str, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(str)); this.dex = new StatsSlider("Ловкость", unused -> (double) StatsSlider.getStat(dex, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(dex, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(dex)); this.con = new StatsSlider("Телосложение", unused -> (double) StatsSlider.getStat(con, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(con, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(con)); this.per = new StatsSlider("Восприятие", unused -> (double) StatsSlider.getStat(per, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(per, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(per)); this.intt = new StatsSlider("Интеллект", unused -> (double) StatsSlider.getStat(intt, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(intt, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(intt)); this.cha = new StatsSlider("Харизма", unused -> (double) StatsSlider.getStat(cha, Minecraft.getInstance().options), (unused, newValue) -> StatsSlider.setStat(cha, newValue.intValue(), Minecraft.getInstance().options), (gs, option) -> StatsSlider.getName(cha)); this.stats.addBig(str); this.stats.addBig(dex); this.stats.addBig(con); this.stats.addBig(per); this.stats.addBig(intt); this.stats.addBig(cha); str.set(Minecraft.getInstance().options, 6); nameTextField.setVisible(true); this.children.add(nameTextField); } @Override public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { this.renderBackground(matrixStack); this.stats.render(matrixStack, mouseX, mouseY, partialTicks); drawCenteredString(matrixStack, this.font, this.title.getString(), this.width / 2, TITLE_HEIGHT, TextFormatting.WHITE.getColor()); super.render(matrixStack, mouseX, mouseY, partialTicks); this.nameTextField.render(matrixStack, mouseX, mouseY, partialTicks); this.font.draw(matrixStack, "Имя персонажа", (int) this.nameTextField.x, DONE_BUTTON_TOP_OFFSET + nameTextField.getHeight() + 2, TextFormatting.WHITE.getColor()); } @Override public boolean shouldCloseOnEsc() { return false; } @Override public boolean isPauseScreen() { return false; } @Override public void onClose() { return; } public void closedWithButton() { closedWithButton = true; super.onClose(); String uuid = Minecraft.getInstance().getUser().getUuid(); } }
IPS spam blocked by CleanTalk.