use of com.lowdragmc.lowdraglib.gui.texture.ResourceTexture in project Multiblocked by Low-Drag-MC.
the class RecipeMapTypeAdapter method deserialize.
@Override
public RecipeMap deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
JsonObject json = (JsonObject) jsonElement;
RecipeMap recipeMap = new RecipeMap(json.get("name").getAsString());
recipeMap.progressTexture = new ResourceTexture(json.get("progressTexture").getAsString());
for (JsonElement recipe : json.get("recipes").getAsJsonArray()) {
recipeMap.addRecipe(Multiblocked.GSON.fromJson(recipe, Recipe.class));
}
return recipeMap;
}
use of com.lowdragmc.lowdraglib.gui.texture.ResourceTexture 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;
}
use of com.lowdragmc.lowdraglib.gui.texture.ResourceTexture in project Multiblocked by Low-Drag-MC.
the class MultiCapabilityTrait method openConfigurator.
@Override
public void openConfigurator(WidgetGroup parentDialog) {
DraggableScrollableWidgetGroup dragGroup = new DraggableScrollableWidgetGroup((384 - 176) / 2, 0, 176, 256);
parentDialog.addWidget(dragGroup);
refreshSlots(dragGroup);
// add new slot
parentDialog.addWidget(new ButtonWidget((384 - 176) / 2 - 20, 35, 20, 20, new ResourceTexture("multiblocked:textures/gui/add.png"), cd -> {
addSlot();
refreshSlots(dragGroup);
}).setHoverTooltips("multiblocked.gui.trait.add_slot"));
}
use of com.lowdragmc.lowdraglib.gui.texture.ResourceTexture in project Multiblocked by Low-Drag-MC.
the class MultiCapabilityTrait method refreshSlots.
protected void refreshSlots(DraggableScrollableWidgetGroup dragGroup) {
dragGroup.widgets.forEach(dragGroup::waitToRemoved);
for (int i = 0; i < guiIO.length; i++) {
int finalI = i;
ButtonWidget setting = (ButtonWidget) new ButtonWidget(10, 0, 8, 8, new ResourceTexture("multiblocked:textures/gui/option.png"), null).setHoverBorderTexture(1, -1).setHoverTooltips("multiblocked.gui.tips.settings");
ImageWidget imageWidget = new ImageWidget(1, 1, 16, 16, new GuiTextureGroup(new ColorRectTexture(getColorByIO(guiIO[finalI])), new ColorBorderTexture(1, getColorByIO(capabilityIO[finalI]))));
setting.setVisible(false);
DraggableWidgetGroup slot = new DraggableWidgetGroup(x[finalI], y[finalI], 18, 18);
slot.setOnSelected(w -> setting.setVisible(true));
slot.setOnUnSelected(w -> setting.setVisible(false));
slot.addWidget(imageWidget);
slot.addWidget(setting);
slot.setOnEndDrag(b -> {
x[finalI] = b.getSelfPosition().x;
y[finalI] = b.getSelfPosition().y;
});
dragGroup.addWidget(slot);
setting.setOnPressCallback(cd2 -> {
DialogWidget dialog = new DialogWidget(dragGroup, true);
dialog.addWidget(new ImageWidget(0, 0, 176, 256, new ColorRectTexture(0xaf000000)));
dialog.addWidget(new ButtonWidget(5, 5, 85, 20, new GuiTextureGroup(ResourceBorderTexture.BUTTON_COMMON, new TextTexture("multiblocked.gui.trait.remove_slot")), cd3 -> {
removeSlot(finalI);
refreshSlots(dragGroup);
dialog.close();
}).setHoverBorderTexture(1, -1));
initSettingDialog(dialog, slot, finalI);
});
}
}
use of com.lowdragmc.lowdraglib.gui.texture.ResourceTexture in project Multiblocked by Low-Drag-MC.
the class ProgressCapabilityTrait method refreshSlots.
protected void refreshSlots(DraggableScrollableWidgetGroup dragGroup) {
dragGroup.widgets.forEach(dragGroup::waitToRemoved);
ButtonWidget setting = (ButtonWidget) new ButtonWidget(width - 8, 0, 8, 8, new ResourceTexture("multiblocked:textures/gui/option.png"), null).setHoverBorderTexture(1, -1).setHoverTooltips("multiblocked.gui.tips.settings");
ImageWidget imageWidget = new ImageWidget(0, 0, width, height, new GuiTextureGroup(new ResourceTexture(texture).getSubTexture(0, 0, 1, 0.5), new ColorBorderTexture(1, getColorByIO(capabilityIO))));
setting.setVisible(false);
DraggableWidgetGroup slot = new DraggableWidgetGroup(x, y, width, height);
slot.setOnSelected(w -> setting.setVisible(true));
slot.setOnUnSelected(w -> setting.setVisible(false));
slot.addWidget(imageWidget);
slot.addWidget(setting);
slot.setOnEndDrag(b -> {
x = b.getSelfPosition().x;
y = b.getSelfPosition().y;
});
dragGroup.addWidget(slot);
setting.setOnPressCallback(cd2 -> {
DialogWidget dialog = new DialogWidget(dragGroup, true);
dialog.addWidget(new ImageWidget(0, 0, 176, 256, new ColorRectTexture(0xaf000000)));
initSettingDialog(dialog, slot);
});
}
Aggregations