Search in sources :

Example 16 with WidgetGroup

use of com.lowdragmc.lowdraglib.gui.widget.WidgetGroup in project Multiblocked by Low-Drag-MC.

the class ContentWidget method openConfigurator.

/**
 * Configurator.
 */
public void openConfigurator(WidgetGroup dialog) {
    dialog.addWidget(new LabelWidget(5, 8, "multiblocked.gui.label.chance"));
    dialog.addWidget(new TextFieldWidget(125 - 60, 5, 30, 15, null, number -> setContent(io, content, Float.parseFloat(number), perTick)).setNumbersOnly(0f, 1f).setCurrentString(chance + ""));
    dialog.addWidget(new SwitchWidget(125 - 25, 5, 15, 15, (cd, r) -> setContent(io, content, chance, r)).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/boolean.png").getSubTexture(0, 0, 1, 0.5)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/boolean.png").getSubTexture(0, 0.5, 1, 0.5)).setHoverBorderTexture(1, -1).setPressed(perTick).setHoverTooltips("multiblocked.gui.content.per_tick"));
}
Also used : OnlyIn(net.minecraftforge.api.distmarker.OnlyIn) LocalizationUtils(com.lowdragmc.lowdraglib.utils.LocalizationUtils) ArrayUtils(org.apache.commons.lang3.ArrayUtils) Dist(net.minecraftforge.api.distmarker.Dist) Lists(com.google.common.collect.Lists) DrawerHelper(com.lowdragmc.lowdraglib.gui.util.DrawerHelper) Minecraft(net.minecraft.client.Minecraft) LabelWidget(com.lowdragmc.lowdraglib.gui.widget.LabelWidget) IO(com.lowdragmc.multiblocked.api.capability.IO) WidgetGroup(com.lowdragmc.lowdraglib.gui.widget.WidgetGroup) Nonnull(javax.annotation.Nonnull) MatrixStack(com.mojang.blaze3d.matrix.MatrixStack) Nullable(javax.annotation.Nullable) SelectableWidgetGroup(com.lowdragmc.lowdraglib.gui.widget.SelectableWidgetGroup) Position(com.lowdragmc.lowdraglib.utils.Position) TextFieldWidget(com.lowdragmc.lowdraglib.gui.widget.TextFieldWidget) Rectangle2d(net.minecraft.client.renderer.Rectangle2d) Size(com.lowdragmc.lowdraglib.utils.Size) SwitchWidget(com.lowdragmc.lowdraglib.gui.widget.SwitchWidget) Widget(com.lowdragmc.lowdraglib.gui.widget.Widget) Target(com.lowdragmc.lowdraglib.gui.ingredient.Target) IGuiTexture(com.lowdragmc.lowdraglib.gui.texture.IGuiTexture) Consumer(java.util.function.Consumer) List(java.util.List) FontRenderer(net.minecraft.client.gui.FontRenderer) ResourceTexture(com.lowdragmc.lowdraglib.gui.texture.ResourceTexture) RenderSystem(com.mojang.blaze3d.systems.RenderSystem) Collections(java.util.Collections) ResourceTexture(com.lowdragmc.lowdraglib.gui.texture.ResourceTexture) LabelWidget(com.lowdragmc.lowdraglib.gui.widget.LabelWidget) TextFieldWidget(com.lowdragmc.lowdraglib.gui.widget.TextFieldWidget) SwitchWidget(com.lowdragmc.lowdraglib.gui.widget.SwitchWidget)

Example 17 with WidgetGroup

use of com.lowdragmc.lowdraglib.gui.widget.WidgetGroup in project Multiblocked by Low-Drag-MC.

the class SimplePredicate method getConfigWidget.

public List<WidgetGroup> getConfigWidget(List<WidgetGroup> groups) {
    WidgetGroup group = new WidgetGroup(0, 0, 300, 90);
    groups.add(group);
    group.setClientSideWidget();
    group.addWidget(new LabelWidget(0, 0, () -> LocalizationUtils.format("multiblocked.gui.label.type") + " " + type).setTextColor(-1).setDrop(true));
    TextFieldWidget min, max, preview, nbt, tooltips;
    group.addWidget(min = new TextFieldWidget(55, 15, 30, 15, () -> minCount + "", s -> {
        minCount = Integer.parseInt(s);
        if (minCount > maxCount) {
            maxCount = minCount;
        }
    }).setNumbersOnly(0, Integer.MAX_VALUE));
    min.setHoverTooltips("multiblocked.gui.tips.min").setVisible(minCount != -1);
    group.addWidget(new SwitchWidget(0, 15, 50, 15, (cd, r) -> {
        min.setVisible(r);
        minCount = r ? 0 : -1;
    }).setPressed(minCount != -1).setHoverBorderTexture(1, -1).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("min (N)", -1).setDropShadow(true)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("min (Y)", -1).setDropShadow(true)).setHoverTooltips("multiblocked.gui.predicate.min"));
    group.addWidget(max = new TextFieldWidget(55, 33, 30, 15, () -> maxCount + "", s -> {
        maxCount = Integer.parseInt(s);
        if (minCount > maxCount) {
            minCount = maxCount;
        }
    }).setNumbersOnly(0, Integer.MAX_VALUE));
    max.setHoverTooltips("multiblocked.gui.tips.max").setVisible(maxCount != -1);
    group.addWidget(new SwitchWidget(0, 33, 50, 15, (cd, r) -> {
        max.setVisible(r);
        maxCount = r ? 0 : -1;
    }).setPressed(maxCount != -1).setHoverBorderTexture(1, -1).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("max (N)", -1).setDropShadow(true)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("max (Y)", -1).setDropShadow(true)).setHoverTooltips("multiblocked.gui.predicate.max"));
    group.addWidget(preview = (TextFieldWidget) new TextFieldWidget(55, 51, 30, 15, () -> previewCount + "", s -> previewCount = Integer.parseInt(s)).setNumbersOnly(0, Integer.MAX_VALUE).setHoverTooltips("multiblocked.gui.predicate.preview"));
    preview.setHoverTooltips("multiblocked.gui.predicate.jei").setVisible(previewCount != -1);
    group.addWidget(new SwitchWidget(0, 51, 50, 15, (cd, r) -> {
        preview.setVisible(r);
        previewCount = r ? 0 : -1;
    }).setPressed(previewCount != -1).setHoverBorderTexture(1, -1).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("jei (N)", -1).setDropShadow(true)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("jei (Y)", -1).setDropShadow(true)).setHoverTooltips("multiblocked.gui.predicate.preview.1"));
    WidgetGroup widgetGroup = new WidgetGroup(0, 70, 100, 15).addWidget(new SwitchWidget(0, 0, 15, 15, (cd, r) -> disableRenderFormed = r).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/boolean.png").getSubTexture(0, 0, 1, 0.5)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/boolean.png").getSubTexture(0, 0.5, 1, 0.5)).setHoverTexture(new ColorBorderTexture(1, -1)).setPressed(disableRenderFormed).setHoverTooltips("multiblocked.gui.predicate.disabled")).addWidget(new ImageWidget(2, 2, 11, 11, new ColorBorderTexture(1, -1))).addWidget(new LabelWidget(20, 3, "disableRenderFormed").setTextColor(-1).setDrop(true));
    group.addWidget(widgetGroup);
    group.addWidget(nbt = new TextFieldWidget(155, 15, 100, 15, null, s -> nbtParser = s));
    nbt.setCurrentString(nbtParser == null ? "" : nbtParser).setHoverTooltips("nbt parser").setVisible(nbtParser != null);
    group.addWidget(new SwitchWidget(100, 15, 50, 15, (cd, r) -> {
        nbt.setVisible(r);
        nbtParser = r ? "" : null;
    }).setPressed(nbtParser != null).setHoverBorderTexture(1, -1).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("nbt (N)", -1).setDropShadow(true)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("nbt (Y)", -1).setDropShadow(true)).setHoverTooltips("multiblocked.gui.predicate.nbt"));
    group.addWidget(tooltips = new TextFieldWidget(155, 33, 100, 15, null, s -> customTips = s));
    tooltips.setCurrentString(customTips != null ? customTips : "").setHoverTooltips("multiblocked.gui.predicate.tips").setVisible(customTips != null);
    group.addWidget(new SwitchWidget(100, 33, 50, 15, (cd, r) -> {
        tooltips.setVisible(r);
        customTips = r ? "" : null;
    }).setPressed(customTips != null).setHoverBorderTexture(1, -1).setBaseTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("tips (N)", -1).setDropShadow(true)).setPressedTexture(new ResourceTexture("multiblocked:textures/gui/button_common.png"), new TextTexture("tips (Y)", -1).setDropShadow(true)).setHoverTooltips("multiblocked.gui.predicate.add_tips"));
    group.addWidget(new SelectorWidget(130, 70, 40, 15, Arrays.asList("IN", "OUT", "BOTH", "NULL"), -1).setValue(io == null ? "NULL" : io.name()).setIsUp(true).setOnChanged(io -> this.io = io.equals("NULL") ? null : IO.valueOf(io)).setButtonBackground(ResourceBorderTexture.BUTTON_COMMON).setBackground(new ColorRectTexture(0xff333333)).setHoverTooltips("multiblocked.gui.tips.io"));
    return groups;
}
Also used : JSONUtils(net.minecraft.util.JSONUtils) JsonObject(com.google.gson.JsonObject) Arrays(java.util.Arrays) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn) ImageWidget(com.lowdragmc.lowdraglib.gui.widget.ImageWidget) LocalizationUtils(com.lowdragmc.lowdraglib.utils.LocalizationUtils) CompoundNBT(net.minecraft.nbt.CompoundNBT) SinglePredicateError(com.lowdragmc.multiblocked.api.pattern.error.SinglePredicateError) ResourceBorderTexture(com.lowdragmc.lowdraglib.gui.texture.ResourceBorderTexture) Supplier(java.util.function.Supplier) Dist(net.minecraftforge.api.distmarker.Dist) ArrayList(java.util.ArrayList) I18n(net.minecraft.client.resources.I18n) SelectorWidget(com.lowdragmc.lowdraglib.gui.widget.SelectorWidget) ItemStack(net.minecraft.item.ItemStack) BlockInfo(com.lowdragmc.lowdraglib.utils.BlockInfo) Gson(com.google.gson.Gson) LabelWidget(com.lowdragmc.lowdraglib.gui.widget.LabelWidget) IO(com.lowdragmc.multiblocked.api.capability.IO) JsonPrimitive(com.google.gson.JsonPrimitive) WidgetGroup(com.lowdragmc.lowdraglib.gui.widget.WidgetGroup) PatternStringError(com.lowdragmc.multiblocked.api.pattern.error.PatternStringError) TextTexture(com.lowdragmc.lowdraglib.gui.texture.TextTexture) TextFieldWidget(com.lowdragmc.lowdraglib.gui.widget.TextFieldWidget) TraceabilityPredicate(com.lowdragmc.multiblocked.api.pattern.TraceabilityPredicate) Predicate(java.util.function.Predicate) ColorBorderTexture(com.lowdragmc.lowdraglib.gui.texture.ColorBorderTexture) SwitchWidget(com.lowdragmc.lowdraglib.gui.widget.SwitchWidget) MultiblockState(com.lowdragmc.multiblocked.api.pattern.MultiblockState) Collectors(java.util.stream.Collectors) Blocks(net.minecraft.block.Blocks) List(java.util.List) LongOpenHashSet(it.unimi.dsi.fastutil.longs.LongOpenHashSet) ColorRectTexture(com.lowdragmc.lowdraglib.gui.texture.ColorRectTexture) ResourceTexture(com.lowdragmc.lowdraglib.gui.texture.ResourceTexture) TileEntity(net.minecraft.tileentity.TileEntity) Pattern(java.util.regex.Pattern) Collections(java.util.Collections) ResourceTexture(com.lowdragmc.lowdraglib.gui.texture.ResourceTexture) ColorBorderTexture(com.lowdragmc.lowdraglib.gui.texture.ColorBorderTexture) LabelWidget(com.lowdragmc.lowdraglib.gui.widget.LabelWidget) SelectorWidget(com.lowdragmc.lowdraglib.gui.widget.SelectorWidget) WidgetGroup(com.lowdragmc.lowdraglib.gui.widget.WidgetGroup) TextTexture(com.lowdragmc.lowdraglib.gui.texture.TextTexture) ColorRectTexture(com.lowdragmc.lowdraglib.gui.texture.ColorRectTexture) TextFieldWidget(com.lowdragmc.lowdraglib.gui.widget.TextFieldWidget) SwitchWidget(com.lowdragmc.lowdraglib.gui.widget.SwitchWidget) ImageWidget(com.lowdragmc.lowdraglib.gui.widget.ImageWidget)

Aggregations

WidgetGroup (com.lowdragmc.lowdraglib.gui.widget.WidgetGroup)17 ResourceTexture (com.lowdragmc.lowdraglib.gui.texture.ResourceTexture)13 LabelWidget (com.lowdragmc.lowdraglib.gui.widget.LabelWidget)11 DraggableScrollableWidgetGroup (com.lowdragmc.lowdraglib.gui.widget.DraggableScrollableWidgetGroup)9 ColorRectTexture (com.lowdragmc.lowdraglib.gui.texture.ColorRectTexture)8 ButtonWidget (com.lowdragmc.lowdraglib.gui.widget.ButtonWidget)8 TextFieldWidget (com.lowdragmc.lowdraglib.gui.widget.TextFieldWidget)8 TextTexture (com.lowdragmc.lowdraglib.gui.texture.TextTexture)6 SwitchWidget (com.lowdragmc.lowdraglib.gui.widget.SwitchWidget)6 Collections (java.util.Collections)6 Minecraft (net.minecraft.client.Minecraft)6 ResourceLocation (net.minecraft.util.ResourceLocation)6 JsonObject (com.google.gson.JsonObject)5 ColorBorderTexture (com.lowdragmc.lowdraglib.gui.texture.ColorBorderTexture)5 List (java.util.List)5 Dist (net.minecraftforge.api.distmarker.Dist)5 OnlyIn (net.minecraftforge.api.distmarker.OnlyIn)5 Gson (com.google.gson.Gson)4 ResourceBorderTexture (com.lowdragmc.lowdraglib.gui.texture.ResourceBorderTexture)4 ImageWidget (com.lowdragmc.lowdraglib.gui.widget.ImageWidget)4