Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Machine active tooltip #479

Merged
merged 19 commits into from
Nov 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.enderio.core.common.network.slot;

import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;

import java.util.HashSet;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;

public class SetNetworkDataSlot<T, V extends Tag> extends NetworkDataSlot<Set<T>> {

private final Function<T, V> serializer;
private final Function<V,T> deSerializer;
private final BiConsumer<T, FriendlyByteBuf> toBuffer;
private final Function<FriendlyByteBuf, T> fromBuffer;

public SetNetworkDataSlot(Supplier<Set<T>> getter, Consumer<Set<T>> setter,
Function<T, V> serializer, Function<V, T> deSerializer, BiConsumer<T, FriendlyByteBuf> toBuffer, Function<FriendlyByteBuf, T> fromBuffer) {
super(getter, setter);
this.serializer = serializer;
this.deSerializer = deSerializer;
this.toBuffer = toBuffer;
this.fromBuffer = fromBuffer;
}

@Override
public Tag serializeValueNBT(Set<T> value) {
ListTag listTag = new ListTag();
for (T t : value) {
listTag.add(serializer.apply(t));
}
return listTag;
}

@Override
protected Set<T> valueFromNBT(Tag nbt) {
if (nbt instanceof ListTag listTag) {
Set<T> set = new HashSet<>();
for (Tag tag : listTag) {
set.add(deSerializer.apply((V) tag));
}
return set;
} else {
throw new IllegalStateException("Invalid set tag was passed over the network.");
}
}

@Override
public void toBuffer(FriendlyByteBuf buf, Set<T> value) {
buf.writeInt(value.size());
for (T element: value) {
toBuffer.accept(element, buf);
}
}

@Override
protected Set<T> valueFromBuffer(FriendlyByteBuf buf) {
Set<T> set = new HashSet<>();
try {
int size = buf.readInt();
for (int i = 0; i < size; i++) {
set.add(fromBuffer.apply(buf));
}
return set;
} catch (Exception e) {
throw new IllegalStateException("Invalid list buffer was passed over the network.");
}
}
}
14 changes: 13 additions & 1 deletion src/generated/resources/assets/enderio/lang/en_ud.json
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,12 @@
"fluid.enderio.rocket_fuel": "ןǝnℲ ʇǝʞɔoᴚ",
"fluid.enderio.vapor_of_levity": "ʎʇıʌǝꞀ ɟO ɹodɐΛ",
"fluid.enderio.xp_juice": "ǝɔınſ ԀX",
"gui.enderio.active": "ǝʌıʇɔɐ sı ǝuıɥɔɐɯ ǝɥ⟘",
"gui.enderio.alloy_smelter.mode": "ǝpoW buıʇןǝɯS",
"gui.enderio.alloy_smelter.mode_all": "buıʇןǝɯS puɐ buıʎoןןⱯ",
"gui.enderio.alloy_smelter.mode_alloy": "ʎןuO sʎoןןⱯ",
"gui.enderio.alloy_smelter.mode_furnace": "ʎןuO ǝɔɐuɹnℲ",
"gui.enderio.blocked_redstone": "ǝuoʇspǝɹ ʎq pǝʞɔoןq sı ǝuıɥɔɐɯ ǝɥ⟘",
"gui.enderio.button.retrieve_10_level": "ԀX ɟo sןǝʌǝן 0Ɩ ǝʌǝıɹʇǝᴚ",
"gui.enderio.button.retrieve_1_level": "ԀX ɟo ןǝʌǝן Ɩ ǝʌǝıɹʇǝᴚ",
"gui.enderio.button.retrieve_all_level": "ԀX ɟo sןǝʌǝן ןןɐ ǝʌǝıɹʇǝᴚ",
Expand All @@ -256,20 +258,30 @@
"gui.enderio.conduit.extract": "ʇɔɐɹʇxƎ",
"gui.enderio.conduit.insert": "ʇɹǝsuI",
"gui.enderio.conduit_channel": "ןǝuuɐɥƆ-ʇınpuoƆ",
"gui.enderio.empty_tank": "ʎʇdɯǝ sı ʞuɐʇ ǝɥ⟘",
"gui.enderio.energy_equivalence": "˙ƎℲ oʇ ʇuǝןɐʌınbǝ 'ʎbɹǝuǝ ɟo ʇıun Ɐ",
"gui.enderio.filter": "ɹǝʇןıℲ",
"gui.enderio.fluid_conduit.change_fluid1": ":pınןℲ pǝʞɔoꞀ",
"gui.enderio.fluid_conduit.change_fluid2": "¡ʇǝsǝɹ oʇ ʞɔıןƆ",
"gui.enderio.fluid_conduit.change_fluid3": "%s :pınןℲ",
"gui.enderio.full_power": "ןןnɟ sı ǝbɐɹoʇs ʎbɹǝuǝ ǝɥ⟘",
"gui.enderio.full_tank": "ןןnɟ sı ʞuɐʇ ǝɥ⟘",
"gui.enderio.idle": "ʞɹoʍ oʇ ʎpɐǝɹ sı ǝuıɥɔɐɯ ǝɥ⟘",
"gui.enderio.input_empty": "ʇnduı ǝɥʇ uı ɯǝʇı ou sı ǝɹǝɥ⟘",
"gui.enderio.ioconfig": "uoıʇɐɹnbıɟuoƆ OI",
"gui.enderio.ioconfig.both": "ןןnԀ / ɥsnԀ",
"gui.enderio.ioconfig.disabled": "pǝןqɐsıᗡ",
"gui.enderio.ioconfig.neighbour": "sɹnoqɥbıǝN ǝpıH/ʍoɥS",
"gui.enderio.ioconfig.none": "ǝuoN",
"gui.enderio.ioconfig.pull": "ןןnԀ",
"gui.enderio.ioconfig.push": "ɥsnԀ",
"gui.enderio.no_capacitor": "ǝuıɥɔɐɯ ǝɥʇ ǝsn oʇ ǝןqɐ ǝq oʇ ɹoʇıɔɐdɐɔ ɐ ןןɐʇsuI",
"gui.enderio.no_power": "ǝuıɥɔɐɯ ǝɥʇ ǝsn oʇ ɹǝʍod ɥbnouǝ ʇou sı ǝɹǝɥ⟘",
"gui.enderio.no_soulbound": "ʇı ǝsn oʇ ǝןqɐ ǝq oʇ ɯǝʇı ǝɥʇ oʇ ןnos ɐ puıᗺ",
"gui.enderio.no_source": "ʞɹoʍ oʇ ʇı ɹǝpun ʞɔoןq ǝɔɹnos ɐ spǝǝu uıɐɹᗡ ǝɥ⟘",
"gui.enderio.nocap.desc": "¡ʞɹoʍ uɐɔ ǝuıɥɔɐɯ sıɥʇ \n os ɹoʇıɔɐdɐɔ ʎuɐ ʇɹǝsuI",
"gui.enderio.nocap.title": "buıssıW ɹoʇıɔɐdɐƆ",
"gui.enderio.output_full": "ʇndʇno ǝɥʇ ɹoɟ ɯooɹ ɥbnouǝ ʇou sı ǝɹǝɥ⟘",
"gui.enderio.progress": "%s%% ssǝɹboɹԀ",
"gui.enderio.range": "ǝbuɐᴚ",
"gui.enderio.range.hide": "ǝbuɐᴚ ǝpıH",
Expand All @@ -287,7 +299,7 @@
"gui.enderio.self_feed.disabled": "pǝןqɐsıᗡ pǝǝℲ ɟןǝS",
"gui.enderio.self_feed.enabled": "pǝןqɐuƎ pǝǝℲ ɟןǝS",
"gui.enderio.spawner.disabled": "bıɟuoɔ ʎq pǝןqɐsıᗡ",
"gui.enderio.spawner.other_mod": "poɯ ɹǝɥʇO",
"gui.enderio.spawner.other_mod": "poɯ ɹǝɥʇouɐ ʎq pǝʞɔoןᗺ",
"gui.enderio.spawner.too_many_mob": "sqoɯ ʎuɐɯ oo⟘",
"gui.enderio.spawner.too_many_spawner": "sɹǝuʍɐds ʎuɐɯ oo⟘",
"gui.enderio.spawner.unknown": "qoɯ uʍouʞu∩",
Expand Down
14 changes: 13 additions & 1 deletion src/generated/resources/assets/enderio/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,12 @@
"fluid.enderio.rocket_fuel": "Rocket Fuel",
"fluid.enderio.vapor_of_levity": "Vapor Of Levity",
"fluid.enderio.xp_juice": "XP Juice",
"gui.enderio.active": "The machine is active",
"gui.enderio.alloy_smelter.mode": "Smelting Mode",
"gui.enderio.alloy_smelter.mode_all": "Alloying and Smelting",
"gui.enderio.alloy_smelter.mode_alloy": "Alloys Only",
"gui.enderio.alloy_smelter.mode_furnace": "Furnace Only",
"gui.enderio.blocked_redstone": "The machine is blocked by redstone",
"gui.enderio.button.retrieve_10_level": "Retrieve 10 levels of XP",
"gui.enderio.button.retrieve_1_level": "Retrieve 1 level of XP",
"gui.enderio.button.retrieve_all_level": "Retrieve all levels of XP",
Expand All @@ -256,20 +258,30 @@
"gui.enderio.conduit.extract": "Extract",
"gui.enderio.conduit.insert": "Insert",
"gui.enderio.conduit_channel": "Conduit-Channel",
"gui.enderio.empty_tank": "The tank is empty",
"gui.enderio.energy_equivalence": "A unit of energy, equivalent to FE.",
"gui.enderio.filter": "Filter",
"gui.enderio.fluid_conduit.change_fluid1": "Locked Fluid:",
"gui.enderio.fluid_conduit.change_fluid2": "Click to reset!",
"gui.enderio.fluid_conduit.change_fluid3": "Fluid: %s",
"gui.enderio.full_power": "The energy storage is full",
"gui.enderio.full_tank": "The tank is full",
"gui.enderio.idle": "The machine is ready to work",
"gui.enderio.input_empty": "There is no item in the input",
"gui.enderio.ioconfig": "IO Configuration",
"gui.enderio.ioconfig.both": "Push / Pull",
"gui.enderio.ioconfig.disabled": "Disabled",
"gui.enderio.ioconfig.neighbour": "Show/Hide Neighbours",
"gui.enderio.ioconfig.none": "None",
"gui.enderio.ioconfig.pull": "Pull",
"gui.enderio.ioconfig.push": "Push",
"gui.enderio.no_capacitor": "Install a capacitor to be able to use the machine",
"gui.enderio.no_power": "There is not enough power to use the machine",
"gui.enderio.no_soulbound": "Bind a soul to the item to be able to use it",
"gui.enderio.no_source": "The Drain needs a source block under it to work",
"gui.enderio.nocap.desc": "Insert any capacitor so \n this machine can work!",
"gui.enderio.nocap.title": "Capacitor Missing",
"gui.enderio.output_full": "There is not enough room for the output",
"gui.enderio.progress": "Progress %s%%",
"gui.enderio.range": "Range",
"gui.enderio.range.hide": "Hide Range",
Expand All @@ -287,7 +299,7 @@
"gui.enderio.self_feed.disabled": "Self Feed Disabled",
"gui.enderio.self_feed.enabled": "Self Feed Enabled",
"gui.enderio.spawner.disabled": "Disabled by config",
"gui.enderio.spawner.other_mod": "Other mod",
"gui.enderio.spawner.other_mod": "Blocked by another mod",
"gui.enderio.spawner.too_many_mob": "Too many mobs",
"gui.enderio.spawner.too_many_spawner": "Too many spawners",
"gui.enderio.spawner.unknown": "Unknown mob",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.enderio.api.misc.Vector2i;
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.ProgressWidget;
import com.enderio.machines.client.gui.widget.ioconfig.IOConfigButton;
Expand Down Expand Up @@ -34,7 +35,9 @@ protected void init() {
addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 6, () -> menu.getBlockEntity().getRedstoneControl(),
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));

addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 6 + 16 * 3, () -> menu.getBlockEntity().getMode(), mode -> menu.getBlockEntity().setMode(mode), MachineLang.ALLOY_SMELTER_MODE));
addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));

addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 16 * 3, () -> menu.getBlockEntity().getMode(), mode -> menu.getBlockEntity().setMode(mode), MachineLang.ALLOY_SMELTER_MODE));

addRenderableWidget(new IOConfigButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 22, 16, 16, menu, this::addRenderableWidget, font));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.enderio.api.misc.Vector2i;
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.ioconfig.IOConfigButton;
import com.enderio.machines.common.menu.CrafterMenu;
Expand All @@ -28,6 +29,7 @@ protected void init() {
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));

addRenderableWidget(new IOConfigButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 22, 16, 16, menu, this::addRenderableWidget, font));
addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.core.client.gui.widgets.ToggleImageButton;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.FluidStackWidget;
import com.enderio.machines.client.gui.widget.ioconfig.IOConfigButton;
import com.enderio.machines.common.menu.DrainMenu;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.ImageButton;
Expand All @@ -30,31 +30,30 @@ protected void init() {

addRenderableOnly(new CapacitorEnergyWidget(this, getMenu().getBlockEntity()::getEnergyStorage, getMenu().getBlockEntity()::isCapacitorInstalled, 16 + leftPos, 14 + topPos, 9, 42));

addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 6, () -> menu.getBlockEntity().getRedstoneControl(),
addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 4 - 16, topPos + 6, () -> menu.getBlockEntity().getRedstoneControl(),
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));

addRenderableOnly(new FluidStackWidget(this, getMenu().getBlockEntity()::getFluidTank, 80 + leftPos, 21 + topPos, 16, 47));

addRenderableWidget(new ToggleImageButton<>(this, leftPos + imageWidth - 8 - 14, topPos + 22 + 2 + 16, 16, 16, 0, 0, 16, 0, RANGE_BUTTON_TEXTURE,
addRenderableWidget(new ToggleImageButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 2*16, 16, 16, 0, 0, 16, 0, RANGE_BUTTON_TEXTURE,
() -> menu.getBlockEntity().isRangeVisible(), state -> menu.getBlockEntity().setIsRangeVisible(state),
() -> menu.getBlockEntity().isRangeVisible() ? EIOLang.HIDE_RANGE : EIOLang.SHOW_RANGE));
addRenderableWidget(new ImageButton(leftPos + imageWidth - 8 - 8, topPos + 66, 8, 8, 8, 0, 16, BUTTONS, (b) -> menu.getBlockEntity().increaseRange()));
addRenderableWidget(new ImageButton(leftPos + imageWidth - 8 - 8, topPos + 74, 8, 8, 8, 8, 16, BUTTONS, (b) -> menu.getBlockEntity().decreaseRange()));
addRenderableWidget(new ImageButton(leftPos + imageWidth - 2*16, topPos + 16*2, 8, 8, 8, 0, 16, BUTTONS, (b) -> menu.getBlockEntity().increaseRange()));
addRenderableWidget(new ImageButton(leftPos + imageWidth - 2*16, topPos + 16*2 + 8, 8, 8, 8, 8, 16, BUTTONS, (b) -> menu.getBlockEntity().decreaseRange()));


addRenderableWidget(new IOConfigButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 22, 16, 16, menu, this::addRenderableWidget, font));
addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));
}

@Override
protected void renderLabels(GuiGraphics guiGraphics, int pMouseX, int pMouseY) {
super.renderLabels(guiGraphics, pMouseX, pMouseY);
guiGraphics.drawString(font, EIOLang.RANGE, imageWidth - 8 - font.width(EIOLang.RANGE), 56, 4210752, false);
guiGraphics.drawString(font, EIOLang.RANGE, imageWidth - 8 - font.width(EIOLang.RANGE), 16 + 6, 4210752, false);
}

@Override
public void render(GuiGraphics guiGraphics, int pMouseX, int pMouseY, float pPartialTicks) {
super.render(guiGraphics, pMouseX, pMouseY, pPartialTicks);
guiGraphics.drawString(font, getMenu().getBlockEntity().getRange() + "", leftPos + imageWidth - 8 - font.width(getMenu().getBlockEntity().getRange() + "") - 10, topPos + 70, 0, false);
guiGraphics.drawString(font, getMenu().getBlockEntity().getRange() + "", leftPos + imageWidth - 8 - 16 - font.width(getMenu().getBlockEntity().getRange() + "") - 10, topPos + 16*2 + 4, 0, false);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.enderio.api.misc.Vector2i;
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.FluidStackWidget;
import com.enderio.machines.client.gui.widget.ioconfig.IOConfigButton;
import com.enderio.machines.common.menu.FluidTankMenu;
Expand All @@ -23,6 +24,7 @@ protected void init() {
addRenderableOnly(new FluidStackWidget(this, getMenu().getBlockEntity()::getFluidTank, 80 + leftPos, 21 + topPos, 16, 47));
addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 6, () -> menu.getBlockEntity().getRedstoneControl(),
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));
addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));
addRenderableWidget(new IOConfigButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 22, 16, 16, menu, this::addRenderableWidget, font));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.enderio.api.misc.Vector2i;
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.ioconfig.IOConfigButton;
import com.enderio.machines.common.menu.ImpulseHopperMenu;
Expand All @@ -27,6 +28,8 @@ protected void init() {
addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 12, topPos + 6, () -> menu.getBlockEntity().getRedstoneControl(),
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));

addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));

addRenderableWidget(new IOConfigButton<>(this, leftPos + imageWidth - 6 - 16, topPos + 22, 16, 16, menu, this::addRenderableWidget, font));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.enderio.api.misc.Vector2i;
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.ProgressWidget;
import com.enderio.machines.common.menu.PaintingMachineMenu;
Expand All @@ -26,6 +27,7 @@ protected void init() {
addRenderableOnly(addRenderableOnly(new CapacitorEnergyWidget(this, getMenu().getBlockEntity()::getEnergyStorage, getMenu().getBlockEntity()::isCapacitorInstalled, 16 + leftPos, 14 + topPos, 9, 42)));
addRenderableWidget(new EnumIconWidget<>(this, leftPos + imageWidth - 8 - 14, topPos + 52, () -> menu.getBlockEntity().getRedstoneControl(),
control -> menu.getBlockEntity().setRedstoneControl(control), EIOLang.REDSTONE_MODE));
addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));

addRenderableOnly(new ProgressWidget.LeftRight(this, () -> menu.getBlockEntity().getCraftingProgress(), getGuiLeft() + 89, getGuiTop() + 35, 22, 16, 177, 14));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.enderio.base.common.lang.EIOLang;
import com.enderio.core.client.gui.widgets.EnumIconWidget;
import com.enderio.core.client.gui.widgets.ToggleImageButton;
import com.enderio.machines.client.gui.widget.ActiveWidget;
import com.enderio.machines.client.gui.widget.CapacitorEnergyWidget;
import com.enderio.machines.client.gui.widget.ProgressWidget;
import com.enderio.machines.common.blockentity.PoweredSpawnerBlockEntity;
Expand Down Expand Up @@ -40,6 +41,8 @@ protected void init() {
() -> menu.getBlockEntity().isRangeVisible(), state -> menu.getBlockEntity().setIsRangeVisible(state),
() -> menu.getBlockEntity().isRangeVisible() ? EIOLang.HIDE_RANGE : EIOLang.SHOW_RANGE));

addRenderableWidget(new ActiveWidget(this, menu.getBlockEntity()::getMachineStates, leftPos + imageWidth - 6 - 16, topPos + 16*4));

addRenderableOnly(new ProgressWidget.BottomUp(this, () -> menu.getBlockEntity().getSpawnProgress(), getGuiLeft() + 82, getGuiTop() + 38, 14, 14, 176, 0));

}
Expand All @@ -66,9 +69,5 @@ protected void renderLabels(GuiGraphics guiGraphics, int pMouseX, int pMouseY) {
guiGraphics.drawString(font, rl.get().toString(), imageWidth / 2f - font.width(rl.get().toString()) / 2f, 15, 4210752, false);
}
}
if (getMenu().getBlockEntity().getReason() != PoweredSpawnerBlockEntity.SpawnerBlockedReason.NONE) {
guiGraphics.drawString(font, getMenu().getBlockEntity().getReason().getComponent().getString(),
imageWidth / 2f - font.width(getMenu().getBlockEntity().getReason().getComponent().getString()) / 2f, 26, 0, false);
}
}
}