use of mekanism.client.gui.element.tab.GuiQIOFrequencyTab in project Mekanism by mekanism.
the class GuiQIOFilterHandler method addGuiElements.
@Override
protected void addGuiElements() {
super.addGuiElements();
addButton(new GuiQIOFrequencyTab(this, tile));
addButton(new GuiInnerScreen(this, 9, 16, imageWidth - 18, 12, () -> {
List<ITextComponent> list = new ArrayList<>();
QIOFrequency freq = tile.getQIOFrequency();
if (freq == null) {
list.add(MekanismLang.NO_FREQUENCY.translate());
} else {
list.add(MekanismLang.FREQUENCY.translate(freq.getKey()));
}
return list;
}).tooltip(() -> {
List<ITextComponent> list = new ArrayList<>();
QIOFrequency freq = tile.getQIOFrequency();
if (freq != null) {
list.add(MekanismLang.QIO_ITEMS_DETAIL.translateColored(EnumColor.GRAY, EnumColor.INDIGO, TextUtils.format(freq.getTotalItemCount()), TextUtils.format(freq.getTotalItemCountCapacity())));
list.add(MekanismLang.QIO_TYPES_DETAIL.translateColored(EnumColor.GRAY, EnumColor.INDIGO, TextUtils.format(freq.getTotalItemTypes(true)), TextUtils.format(freq.getTotalItemTypeCapacity())));
}
return list;
}));
// Filter holder
addButton(new GuiElementHolder(this, 9, 30, 144, 68));
// new filter button border
addButton(new GuiElementHolder(this, 9, 98, 144, 22));
addButton(new TranslationButton(this, 10, 99, 142, 20, MekanismLang.BUTTON_NEW_FILTER, () -> addWindow(new GuiQIOFilerSelect(this, tile))));
scrollBar = addButton(new GuiScrollBar(this, 153, 30, 90, () -> tile.getFilters().size(), () -> FILTER_COUNT));
// Add each of the buttons and then just change visibility state to match filter info
for (int i = 0; i < FILTER_COUNT; i++) {
addButton(new MovableFilterButton(this, 10, 31 + i * 22, 142, 22, i, scrollBar::getCurrentSelection, tile::getFilters, index -> {
if (index > 0) {
Mekanism.packetHandler.sendToServer(new PacketGuiInteract(GuiInteraction.MOVE_FILTER_UP, tile, index));
}
}, index -> {
if (index < tile.getFilters().size() - 1) {
Mekanism.packetHandler.sendToServer(new PacketGuiInteract(GuiInteraction.MOVE_FILTER_DOWN, tile, index));
}
}, this::onClick, filter -> {
List<ItemStack> list = new ArrayList<>();
if (filter != null) {
if (filter instanceof IItemStackFilter) {
list.add(((IItemStackFilter<?>) filter).getItemStack());
} else if (filter instanceof ITagFilter) {
String name = ((ITagFilter<?>) filter).getTagName();
if (name != null && !name.isEmpty()) {
list.addAll(TagCache.getItemTagStacks(((ITagFilter<?>) filter).getTagName()));
}
} else if (filter instanceof IModIDFilter) {
list.addAll(TagCache.getModIDStacks(((IModIDFilter<?>) filter).getModID(), false));
}
}
return list;
}));
}
}
use of mekanism.client.gui.element.tab.GuiQIOFrequencyTab in project Mekanism by mekanism.
the class GuiQIODriveArray method addGuiElements.
@Override
protected void addGuiElements() {
super.addGuiElements();
addButton(new GuiQIOFrequencyTab(this, tile));
addButton(new GuiQIOFrequencyDataScreen(this, 15, 19, imageWidth - 32, 46, () -> tile.getFrequency(FrequencyType.QIO)));
}
use of mekanism.client.gui.element.tab.GuiQIOFrequencyTab in project Mekanism by mekanism.
the class GuiQIORedstoneAdapter method addGuiElements.
@Override
protected void addGuiElements() {
super.addGuiElements();
addButton(new GuiQIOFrequencyTab(this, tile));
addButton(new GuiSlot(SlotType.NORMAL, this, 7, 30).setRenderHover(true)).setGhostHandler((IGhostItemConsumer) ingredient -> {
Mekanism.packetHandler.sendToServer(new PacketGuiInteract(GuiInteractionItem.QIO_REDSTONE_ADAPTER_STACK, tile, StackUtils.size((ItemStack) ingredient, 1)));
minecraft.getSoundManager().play(SimpleSound.forUI(MekanismSounds.BEEP.get(), 1.0F));
});
addButton(new GuiInnerScreen(this, 7, 16, imageWidth - 15, 12, () -> {
List<ITextComponent> list = new ArrayList<>();
QIOFrequency freq = tile.getQIOFrequency();
if (freq == null) {
list.add(MekanismLang.NO_FREQUENCY.translate());
} else {
list.add(MekanismLang.FREQUENCY.translate(freq.getKey()));
}
return list;
}).tooltip(() -> {
List<ITextComponent> list = new ArrayList<>();
QIOFrequency freq = tile.getQIOFrequency();
if (freq != null) {
list.add(MekanismLang.QIO_ITEMS_DETAIL.translateColored(EnumColor.GRAY, EnumColor.INDIGO, TextUtils.format(freq.getTotalItemCount()), TextUtils.format(freq.getTotalItemCountCapacity())));
list.add(MekanismLang.QIO_TYPES_DETAIL.translateColored(EnumColor.GRAY, EnumColor.INDIGO, TextUtils.format(freq.getTotalItemTypes(true)), TextUtils.format(freq.getTotalItemTypeCapacity())));
}
return list;
}));
addButton(new GuiInnerScreen(this, 27, 30, imageWidth - 27 - 8, 54, () -> {
List<ITextComponent> list = new ArrayList<>();
list.add(!tile.getItemType().isEmpty() ? tile.getItemType().getStack().getHoverName() : MekanismLang.QIO_ITEM_TYPE_UNDEFINED.translate());
list.add(MekanismLang.QIO_TRIGGER_COUNT.translate(TextUtils.format(tile.getCount())));
if (!tile.getItemType().isEmpty() && tile.getQIOFrequency() != null) {
list.add(MekanismLang.QIO_STORED_COUNT.translate(TextUtils.format(tile.getStoredCount())));
}
return list;
}).clearFormat());
text = addButton(new GuiTextField(this, 29, 70, imageWidth - 39, 12));
text.setMaxStringLength(10);
text.setInputValidator(InputValidator.DIGIT);
text.setFocused(true);
text.configureDigitalInput(this::setCount);
}
use of mekanism.client.gui.element.tab.GuiQIOFrequencyTab in project Mekanism by mekanism.
the class GuiPortableQIODashboard method addGuiElements.
@Override
protected void addGuiElements() {
super.addGuiElements();
addButton(new GuiQIOFrequencyTab(this, menu.getHand()));
}
use of mekanism.client.gui.element.tab.GuiQIOFrequencyTab in project Mekanism by mekanism.
the class GuiQIODashboard method addGuiElements.
@Override
protected void addGuiElements() {
super.addGuiElements();
addButton(new GuiQIOFrequencyTab(this, tile));
addButton(new GuiSecurityTab(this, tile));
}
Aggregations