use of com.lowdragmc.lowdraglib.gui.widget.LabelWidget in project Multiblocked by Low-Drag-MC.
the class PredicateStates method getConfigWidget.
@Override
public List<WidgetGroup> getConfigWidget(List<WidgetGroup> groups) {
super.getConfigWidget(groups);
WidgetGroup group = new WidgetGroup(0, 0, 182, 100);
groups.add(group);
DraggableScrollableWidgetGroup container = new DraggableScrollableWidgetGroup(0, 25, 182, 80).setBackground(new ColorRectTexture(0xffaaaaaa));
group.addWidget(container);
List<BlockState> blockList = new ArrayList<>(Arrays.asList(states));
for (BlockState blockState : blockList) {
addBlockSelectorWidget(blockList, container, blockState);
}
group.addWidget(new LabelWidget(0, 6, "multiblocked.gui.label.block_settings"));
group.addWidget(new ButtonWidget(162, 0, 20, 20, cd -> {
blockList.add(null);
addBlockSelectorWidget(blockList, container, null);
}).setButtonTexture(new ResourceTexture("multiblocked:textures/gui/add.png")).setHoverBorderTexture(1, -1).setHoverTooltips("multiblocked.gui.predicate.states.add"));
return groups;
}
use of com.lowdragmc.lowdraglib.gui.widget.LabelWidget in project Multiblocked by Low-Drag-MC.
the class ChemicalCapabilityTrait method initSettingDialog.
@Override
protected void initSettingDialog(DialogWidget dialog, DraggableWidgetGroup slot, int index) {
super.initSettingDialog(dialog, slot, index);
dialog.addWidget(new LabelWidget(5, 60, "multiblocked.gui.label.tank_capability"));
dialog.addWidget(new TextFieldWidget(5, 70, 100, 15, null, s -> tankCapability[index] = Integer.parseInt(s)).setNumbersOnly(1, Integer.MAX_VALUE).setCurrentString(tankCapability[index] + ""));
}
use of com.lowdragmc.lowdraglib.gui.widget.LabelWidget in project Multiblocked by Low-Drag-MC.
the class IMultiblockedRenderer method createBoolSwitch.
default WidgetGroup createBoolSwitch(int x, int y, String text, String tips, boolean init, Consumer<Boolean> onPressed) {
WidgetGroup widgetGroup = new WidgetGroup(x, y, 100, 15);
widgetGroup.addWidget(new SwitchWidget(0, 0, 15, 15, (cd, r) -> onPressed.accept(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, 0xff545757)).setPressed(init).setHoverTooltips(tips));
widgetGroup.addWidget(new LabelWidget(20, 3, () -> text).setTextColor(-1).setDrop(true));
return widgetGroup;
}
use of com.lowdragmc.lowdraglib.gui.widget.LabelWidget in project Multiblocked by Low-Drag-MC.
the class ItemsContentWidget method openConfigurator.
@Override
public void openConfigurator(WidgetGroup dialog) {
super.openConfigurator(dialog);
int x = 5;
int y = 25;
dialog.addWidget(new LabelWidget(5, y + 3, "multiblocked.gui.label.amount"));
dialog.addWidget(new TextFieldWidget(125 - 60, y, 60, 15, null, number -> {
content = content.isTag() ? new ItemsIngredient(content.getTag(), Integer.parseInt(number)) : new ItemsIngredient(content.ingredient, Integer.parseInt(number));
onContentUpdate();
}).setNumbersOnly(1, Integer.MAX_VALUE).setCurrentString(content.getAmount() + ""));
TextFieldWidget tag;
WidgetGroup groupOre = new WidgetGroup(x, y + 40, 120, 80);
WidgetGroup groupIngredient = new WidgetGroup(x, y + 20, 120, 80);
DraggableScrollableWidgetGroup container = new DraggableScrollableWidgetGroup(0, 20, 120, 50).setBackground(new ColorRectTexture(0xffaaaaaa));
groupIngredient.addWidget(container);
dialog.addWidget(groupIngredient);
dialog.addWidget(groupOre);
groupOre.addWidget(tag = new TextFieldWidget(30, 3, 90, 15, () -> content.isTag() ? content.getTag() : "", null).setResourceLocationOnly());
IItemHandlerModifiable handler;
PhantomSlotWidget phantomSlotWidget = new PhantomSlotWidget(handler = new ItemStackHandler(1), 0, 0, 1).setClearSlotOnRightClick(false);
groupOre.addWidget(phantomSlotWidget);
phantomSlotWidget.setChangeListener(() -> {
ItemStack newStack = handler.getStackInSlot(0);
if (newStack.isEmpty())
return;
ITagCollection<Item> tags = TagCollectionManager.getInstance().getItems();
Collection<ResourceLocation> ids = tags.getMatchingTags(newStack.getItem());
if (ids.size() > 0) {
String tagString = ids.stream().findAny().get().toString();
content = new ItemsIngredient(tagString, content.getAmount());
tag.setCurrentString(tagString);
phantomSlotWidget.setHoverTooltips(LocalizationUtils.format("multiblocked.gui.trait.item.ore_dict") + ": " + ids.stream().map(ResourceLocation::toString).reduce("", (a, b) -> a + "\n" + b));
} else {
content = new ItemsIngredient("", content.getAmount());
tag.setCurrentString("");
handler.setStackInSlot(0, ItemStack.EMPTY);
}
onContentUpdate();
}).setBackgroundTexture(new ColorRectTexture(0xaf444444));
tag.setTextResponder(tagS -> {
content = new ItemsIngredient(tagS, content.getAmount());
ItemStack[] matches = content.ingredient.getItems();
handler.setStackInSlot(0, matches.length > 0 ? matches[0] : ItemStack.EMPTY);
phantomSlotWidget.setHoverTooltips(LocalizationUtils.format("multiblocked.gui.trait.item.ore_dict") + ":\n" + content.getTag());
onContentUpdate();
});
tag.setHoverTooltips("multiblocked.gui.trait.item.ore_dic");
dialog.addWidget(new SwitchWidget(x, y + 22, 50, 15, (cd, r) -> {
groupOre.setVisible(r);
content = r ? new ItemsIngredient(tag.getCurrentString(), content.getAmount()) : new ItemsIngredient(content.ingredient, content.getAmount());
groupIngredient.setVisible(!r);
if (r) {
ItemStack[] matches = content.ingredient.getItems();
handler.setStackInSlot(0, matches.length > 0 ? matches[0] : ItemStack.EMPTY);
phantomSlotWidget.setHoverTooltips("oreDict: \n" + content.getTag());
} else {
updateIngredientWidget(container);
}
onContentUpdate();
}).setPressed(content.isTag()).setHoverBorderTexture(1, -1).setBaseTexture(ResourceBorderTexture.BUTTON_COMMON, new TextTexture("tag (N)")).setPressedTexture(ResourceBorderTexture.BUTTON_COMMON, new TextTexture("tag (Y)")).setHoverTooltips("using tag dictionary"));
groupIngredient.setVisible(!content.isTag());
groupOre.setVisible(content.isTag());
if (content.isTag()) {
ItemStack[] matches = content.ingredient.getItems();
handler.setStackInSlot(0, matches.length > 0 ? matches[0] : ItemStack.EMPTY);
phantomSlotWidget.setHoverTooltips(LocalizationUtils.format("multiblocked.gui.trait.item.ore_dict") + ":\n" + content.getTag());
} else {
updateIngredientWidget(container);
}
groupIngredient.addWidget(new LabelWidget(x + 50, 5, "multiblocked.gui.tips.settings"));
groupIngredient.addWidget(new ButtonWidget(100, 0, 20, 20, cd -> {
ItemStack[] stacks = content.ingredient.getItems();
content = new ItemsIngredient(Ingredient.of(ArrayUtils.add(stacks, new ItemStack(Items.IRON_INGOT))), content.getAmount());
updateIngredientWidget(container);
onContentUpdate();
}).setButtonTexture(new ResourceTexture("multiblocked:textures/gui/add.png")).setHoverBorderTexture(1, -1).setHoverTooltips("multiblocked.gui.trait.item.add"));
}
use of com.lowdragmc.lowdraglib.gui.widget.LabelWidget in project Multiblocked by Low-Drag-MC.
the class NumberContentWidget method openConfigurator.
@Override
public void openConfigurator(WidgetGroup dialog) {
super.openConfigurator(dialog);
TextFieldWidget textFieldWidget;
int x = 5;
int y = 25;
dialog.addWidget(new LabelWidget(5, y + 3, "multiblocked.gui.label.number"));
dialog.addWidget(textFieldWidget = new TextFieldWidget(125 - 60, y, 60, 15, null, number -> {
if (content instanceof Float) {
content = Float.parseFloat(number);
} else if (content instanceof Double) {
content = Double.parseDouble(number);
} else if (content instanceof Integer) {
content = Integer.parseInt(number);
} else if (content instanceof Long) {
content = Long.parseLong(number);
}
onContentUpdate();
}).setCurrentString(content.toString()));
if (isDecimal) {
textFieldWidget.setNumbersOnly(0f, Integer.MAX_VALUE);
} else {
if (content instanceof Long) {
textFieldWidget.setNumbersOnly(0, Long.MAX_VALUE);
} else {
textFieldWidget.setNumbersOnly(0, Integer.MAX_VALUE);
}
}
dialog.addWidget(createButton(textFieldWidget, -10000, x, y + 66));
dialog.addWidget(createButton(textFieldWidget, -100, x, y + 44));
dialog.addWidget(createButton(textFieldWidget, -1, x, y + 22));
dialog.addWidget(createButton(textFieldWidget, 1, x + 75, y + 22));
dialog.addWidget(createButton(textFieldWidget, 100, x + 75, y + 44));
dialog.addWidget(createButton(textFieldWidget, 10000, x + 75, y + 66));
}
Aggregations