diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index 5d6630516..d867f628f 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -642,7 +642,7 @@ public abstract class AEBaseScreen extends HandledScr this.itemRenderer.zOffset = 0.0F; } - protected ITextComponent getGuiDisplayName(final Text in) { + protected Text getGuiDisplayName(final Text in) { return title.getString().isEmpty() ? in : title; } diff --git a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java index b965c91bc..6aec75b56 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java @@ -136,16 +136,16 @@ public class CraftConfirmScreen extends AEBaseScreen { this.selectCPU.setMessage(getNextCpuButtonLabel()); } - private ITextComponent getNextCpuButtonLabel() { - if (this.container.hasNoCPU()) { + private Text getNextCpuButtonLabel() { + if (this.handler.hasNoCPU()) { return GuiText.NoCraftingCPUs.text(); } - ITextComponent cpuName; - if (this.container.cpuName == null) { + Text cpuName; + if (this.handler.cpuName == null) { cpuName = GuiText.Automatic.text(); } else { - cpuName = this.container.cpuName; + cpuName = this.handler.cpuName; } return GuiText.CraftingCPU.withSuffix(": ").append(cpuName); diff --git a/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java index 028b2e113..76a44b411 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java @@ -63,11 +63,11 @@ public class CraftingStatusScreen extends CraftingCPUScreen this.level = new NumberEntryWidget(this, 20, 17, 138, 62, NumberEntryType.LEVEL_ITEM_COUNT); this.level.setTextFieldBounds(25, 44, 75); this.level.addButtons(children::add, this::addButton); - this.level.setValue(container.getReportingValue()); + this.level.setValue(handler.getReportingValue()); this.level.setOnChange(this::saveReportingValue); - this.level.setOnConfirm(this::closeScreen); + this.level.setOnConfirm(this::onClose); this.changeFocus(true); } private void saveReportingValue() { - this.level.getLongValue().ifPresent(container::setReportingValue); + this.level.getLongValue().ifPresent(handler::setReportingValue); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java index 60b8e0ff7..6b38d230f 100644 --- a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java @@ -26,6 +26,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; +import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import me.shedaniel.math.Rectangle; @@ -297,13 +298,13 @@ public class MEMonitorableScreen extends AEBas this.currentMouseY = mouseY; // Show the number of active crafting jobs - if (this.craftingStatusBtn != null && container.activeCraftingJobs != -1) { + if (this.craftingStatusBtn != null && handler.activeCraftingJobs != -1) { // The stack size renderer expects a 16x16 slot, while the button is normally // bigger int x = this.craftingStatusBtn.x + (this.craftingStatusBtn.getWidth() - 16) / 2; - int y = this.craftingStatusBtn.y + (this.craftingStatusBtn.getHeightRealms() - 16) / 2; - StackSizeRenderer.renderSizeLabel(font, x - this.guiLeft, y - this.guiTop, - String.valueOf(container.activeCraftingJobs)); + int y = this.craftingStatusBtn.y + (this.craftingStatusBtn.getHeight() - 16) / 2; + StackSizeRenderer.renderSizeLabel(textRenderer, x - this.x, y - this.y, + new LiteralText(String.valueOf(handler.activeCraftingJobs))); } } diff --git a/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java b/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java index 53fa3e271..35ddcabac 100644 --- a/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java +++ b/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java @@ -6,14 +6,14 @@ import java.util.OptionalInt; import java.util.OptionalLong; import java.util.function.Consumer; -import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.text.TranslatableText; import appeng.client.gui.AEBaseScreen; import appeng.client.gui.NumberEntryType; @@ -27,8 +27,7 @@ import appeng.core.AEConfig; */ public class NumberEntryWidget extends DrawableHelper { - private static final ITextComponent INVALID_NUMBER = new TranslationTextComponent( - "gui.appliedenergistics2.validation.InvalidNumber"); + private static final Text INVALID_NUMBER = new TranslatableText("gui.appliedenergistics2.validation.InvalidNumber"); private static final String NUMBER_LESS_THAN_MIN_VALUE = "gui.appliedenergistics2.validation.NumberLessThanMinValue"; private static final Text PLUS = Text.of("+"); private static final Text MINUS = Text.of("-"); @@ -60,18 +59,17 @@ public class NumberEntryWidget extends DrawableHelper { this.y = y; this.type = type; - FontRenderer font = parent.getMinecraft().fontRenderer; - int inputX = parent.getGuiLeft() + x; - int inputY = parent.getGuiTop() + y; - this.textField = new ConfirmableTextField(font, inputX, inputY, width, font.FONT_HEIGHT, - StringTextComponent.EMPTY); - this.textField.setEnableBackgroundDrawing(false); - this.textField.setMaxStringLength(16); - this.textField.setTextColor(TEXT_COLOR_NORMAL); + TextRenderer font = parent.getClient().textRenderer; + int inputX = parent.getX() + x; + int inputY = parent.getY() + y; + this.textField = new ConfirmableTextField(font, inputX, inputY, width, font.fontHeight, LiteralText.EMPTY); + this.textField.setHasBorder(false); + this.textField.setMaxLength(16); + this.textField.setEditableColor(TEXT_COLOR_NORMAL); this.textField.setVisible(true); - this.textField.setFocused2(true); - parent.setFocusedDefault(this.textField); - this.textField.setResponder(text -> { + this.textField.setSelected(true); + parent.setInitialFocus(this.textField); + this.textField.setChangedListener(text -> { validate(); if (onChange != null) { this.onChange.run(); @@ -190,8 +188,8 @@ public class NumberEntryWidget extends DrawableHelper { public void setValue(long value) { this.textField.setText(String.valueOf(Math.max(minValue, value))); - this.textField.setCursorPositionEnd(); - this.textField.setSelectionPos(0); + this.textField.setCursorToEnd(); + this.textField.setSelectionStart(0); validate(); } @@ -204,20 +202,20 @@ public class NumberEntryWidget extends DrawableHelper { } private void validate() { - List validationErrors = new ArrayList<>(); + List validationErrors = new ArrayList<>(); String text = textField.getText().trim(); try { long value = Long.parseLong(text, 10); if (value < minValue) { - validationErrors.add(new TranslationTextComponent(NUMBER_LESS_THAN_MIN_VALUE, minValue)); + validationErrors.add(new TranslatableText(NUMBER_LESS_THAN_MIN_VALUE, minValue)); } } catch (NumberFormatException ignored) { validationErrors.add(INVALID_NUMBER); } boolean valid = validationErrors.isEmpty(); - this.textField.setTextColor(valid ? TEXT_COLOR_NORMAL : TEXT_COLOR_ERROR); + this.textField.setEditableColor(valid ? TEXT_COLOR_NORMAL : TEXT_COLOR_ERROR); if (this.validationIcon != null) { this.validationIcon.setValid(valid); this.validationIcon.setTooltip(validationErrors); diff --git a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java index 40d20530d..9cfc9d26a 100644 --- a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java @@ -40,8 +40,8 @@ public class PriorityScreen extends AEBaseScreen { this.subGui = new AESubScreen(this, container.getPriorityHost()); // This is the effective size of the background image - xSize = 175; - ySize = 128; + backgroundWidth = 175; + backgroundHeight = 128; } @Override @@ -51,7 +51,7 @@ public class PriorityScreen extends AEBaseScreen { this.priority = new NumberEntryWidget(this, 20, 30, 138, 62, NumberEntryType.PRIORITY); this.priority.setTextFieldBounds(62, 57, 50); this.priority.setMinValue(Integer.MIN_VALUE); - this.priority.setValue(this.container.getPriorityValue()); + this.priority.setValue(this.handler.getPriorityValue()); this.priority.addButtons(children::add, this::addButton); this.subGui.addBackButton(this::addButton, 154, 0); @@ -68,7 +68,7 @@ public class PriorityScreen extends AEBaseScreen { private void savePriority() { OptionalInt priority = this.priority.getIntValue(); if (priority.isPresent()) { - container.setPriority(priority.getAsInt()); + handler.setPriority(priority.getAsInt()); } } diff --git a/src/main/java/appeng/client/gui/widgets/ConfirmableTextField.java b/src/main/java/appeng/client/gui/widgets/ConfirmableTextField.java index d8c202bba..d9716fae3 100644 --- a/src/main/java/appeng/client/gui/widgets/ConfirmableTextField.java +++ b/src/main/java/appeng/client/gui/widgets/ConfirmableTextField.java @@ -20,21 +20,21 @@ package appeng.client.gui.widgets; import org.lwjgl.glfw.GLFW; -import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.text.Text; public class ConfirmableTextField extends TextFieldWidget { private Runnable onConfirm; - public ConfirmableTextField(FontRenderer fontRenderer, int x, int y, int width, int height, ITextComponent text) { + public ConfirmableTextField(TextRenderer fontRenderer, int x, int y, int width, int height, Text text) { super(fontRenderer, x, y, width, height, text); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (canWrite() && (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_KP_ENTER)) { + if (isActive() && (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_KP_ENTER)) { if (this.onConfirm != null) { this.onConfirm.run(); } diff --git a/src/main/java/appeng/client/gui/widgets/IconButton.java b/src/main/java/appeng/client/gui/widgets/IconButton.java index 01fb550b0..93c3eeefe 100644 --- a/src/main/java/appeng/client/gui/widgets/IconButton.java +++ b/src/main/java/appeng/client/gui/widgets/IconButton.java @@ -21,8 +21,8 @@ package appeng.client.gui.widgets; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.audio.SoundHandler; import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.sound.SoundManager; import net.minecraft.client.texture.TextureManager; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; @@ -48,9 +48,9 @@ public abstract class IconButton extends ButtonWidget implements ITooltip { } @Override - public void playDownSound(SoundHandler soundHandler) { + public void playDownSound(SoundManager soundManager) { if (!disableClickSound) { - super.playDownSound(soundHandler); + super.playDownSound(soundManager); } } @@ -108,7 +108,7 @@ public abstract class IconButton extends ButtonWidget implements ITooltip { RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f); if (isHovered()) { - renderToolTip(matrixStack, mouseX, mouseY); + renderToolTip(matrices, mouseX, mouseY); } } } diff --git a/src/main/java/appeng/client/gui/widgets/ValidationIcon.java b/src/main/java/appeng/client/gui/widgets/ValidationIcon.java index 4078ac964..903270b7e 100644 --- a/src/main/java/appeng/client/gui/widgets/ValidationIcon.java +++ b/src/main/java/appeng/client/gui/widgets/ValidationIcon.java @@ -3,18 +3,17 @@ package appeng.client.gui.widgets; import java.util.ArrayList; import java.util.List; -import com.mojang.blaze3d.matrix.MatrixStack; - -import net.minecraft.client.Minecraft; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.util.text.ITextComponent; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; /** * Displays a small icon that shows validation errors for some input control. */ public class ValidationIcon extends IconButton { - private final List tooltip = new ArrayList<>(); + private final List tooltip = new ArrayList<>(); private boolean valid; @@ -33,7 +32,7 @@ public class ValidationIcon extends IconButton { } } - public void setTooltip(List lines) { + public void setTooltip(List lines) { this.tooltip.clear(); this.tooltip.addAll(lines); } @@ -54,12 +53,12 @@ public class ValidationIcon extends IconButton { return; } - Minecraft client = Minecraft.getInstance(); + MinecraftClient client = MinecraftClient.getInstance(); Screen screen = client.currentScreen; if (screen == null) { return; } - screen.func_243308_b(matrices, this.tooltip, x, y); + screen.renderTooltip(matrices, this.tooltip, x, y); } } diff --git a/src/main/java/appeng/container/AEBaseContainer.java b/src/main/java/appeng/container/AEBaseContainer.java index 64a924e22..499f948b0 100644 --- a/src/main/java/appeng/container/AEBaseContainer.java +++ b/src/main/java/appeng/container/AEBaseContainer.java @@ -1001,7 +1001,7 @@ public abstract class AEBaseContainer extends ScreenHandler { * Returns whether this container instance lives on the client. */ protected boolean isClient() { - return invPlayer.player.getEntityWorld().isRemote(); + return invPlayer.player.getEntityWorld().isClient(); } /** diff --git a/src/main/java/appeng/container/implementations/ContainerHelper.java b/src/main/java/appeng/container/implementations/ContainerHelper.java index adf7877be..4d679948a 100644 --- a/src/main/java/appeng/container/implementations/ContainerHelper.java +++ b/src/main/java/appeng/container/implementations/ContainerHelper.java @@ -1,11 +1,11 @@ package appeng.container.implementations; +import java.util.function.Function; + import javax.annotation.Nullable; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; import net.minecraft.block.entity.BlockEntity; -import java.util.function.Function; - import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; @@ -14,12 +14,7 @@ import net.minecraft.screen.ScreenHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraftforge.fml.network.NetworkHooks; import appeng.api.config.SecurityPermissions; import appeng.api.features.IWirelessTermHandler; @@ -49,7 +44,7 @@ public final class ContainerHelper { private final SecurityPermissions requiredPermission; - private Function containerTitleStrategy = this::getDefaultContainerTitle; + private Function containerTitleStrategy = this::getDefaultContainerTitle; public ContainerHelper(ContainerFactory factory, Class interfaceClass) { this(factory, interfaceClass, null); @@ -64,11 +59,11 @@ public final class ContainerHelper { /** * Specifies a custom strategy for obtaining a custom container name. - * - * The stratgy should return {@link StringTextComponent#EMPTY} if there's no - * custom name. + *

+ * The stratgy should return {@link LiteralText#EMPTY} if there's no custom + * name. */ - public ContainerHelper withContainerTitle(Function containerTitleStrategy) { + public ContainerHelper withContainerTitle(Function containerTitleStrategy) { this.containerTitleStrategy = containerTitleStrategy; return this; } @@ -86,7 +81,7 @@ public final class ContainerHelper { * Same as {@link #open}, but allows or additional data to be read from the * packet, and passed onto the container. */ - public C fromNetwork(int windowId, PlayerInventory inv, PacketBuffer packetBuf, + public C fromNetwork(int windowId, PlayerInventory inv, PacketByteBuf packetBuf, InitialDataDeserializer initialDataDeserializer) { I host = getHostFromLocator(inv.player, ContainerLocator.read(packetBuf)); if (host != null) { @@ -121,7 +116,7 @@ public final class ContainerHelper { Text title = containerTitleStrategy.apply(accessInterface); - player.openHandledScreen(new HandlerFactory(locator, title, accessInterface)); + player.openHandledScreen(new HandlerFactory(locator, title, accessInterface, initialDataSerializer)); return true; } @@ -134,10 +129,14 @@ public final class ContainerHelper { private final Text title; - public HandlerFactory(ContainerLocator locator, Text title, I accessInterface) { + private final InitialDataSerializer initialDataSerializer; + + public HandlerFactory(ContainerLocator locator, Text title, I accessInterface, + InitialDataSerializer initialDataSerializer) { this.locator = locator; this.title = title; this.accessInterface = accessInterface; + this.initialDataSerializer = initialDataSerializer; } @Override @@ -245,7 +244,7 @@ public final class ContainerHelper { */ @FunctionalInterface public interface InitialDataSerializer { - void serializeInitialData(I host, PacketBuffer buffer); + void serializeInitialData(I host, PacketByteBuf buffer); } /** @@ -254,7 +253,7 @@ public final class ContainerHelper { */ @FunctionalInterface public interface InitialDataDeserializer { - void deserializeInitialData(I host, C container, PacketBuffer buffer); + void deserializeInitialData(I host, C container, PacketByteBuf buffer); } private boolean checkPermission(PlayerEntity player, Object accessInterface) { diff --git a/src/main/java/appeng/container/implementations/CraftingCPUContainer.java b/src/main/java/appeng/container/implementations/CraftingCPUContainer.java index 501fe92f3..a7e848ee7 100644 --- a/src/main/java/appeng/container/implementations/CraftingCPUContainer.java +++ b/src/main/java/appeng/container/implementations/CraftingCPUContainer.java @@ -26,7 +26,7 @@ import net.minecraft.network.PacketByteBuf; import net.minecraft.screen.ScreenHandlerListener; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.text.Text; +import net.minecraft.text.LiteralText; import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; @@ -61,7 +61,7 @@ public class CraftingCPUContainer extends AEBaseContainer implements IMEMonitorH if (cluster != null && cluster.getName() != null) { return cluster.getName(); } - return StringTextComponent.EMPTY; + return LiteralText.EMPTY; }); private final IItemList list = Api.instance().storage().getStorageChannel(IItemStorageChannel.class) diff --git a/src/main/java/appeng/container/implementations/CraftingCPUCycler.java b/src/main/java/appeng/container/implementations/CraftingCPUCycler.java index d0ada4826..fac9f800b 100644 --- a/src/main/java/appeng/container/implementations/CraftingCPUCycler.java +++ b/src/main/java/appeng/container/implementations/CraftingCPUCycler.java @@ -7,7 +7,7 @@ import java.util.function.Predicate; import com.google.common.collect.ImmutableSet; -import net.minecraft.util.text.StringTextComponent; +import net.minecraft.text.LiteralText; import appeng.api.networking.IGrid; import appeng.api.networking.crafting.ICraftingCPU; @@ -75,7 +75,7 @@ class CraftingCPUCycler { for (int i = 0; i < this.cpus.size(); i++) { CraftingCPURecord cpu = cpus.get(i); if (cpu.getName() == null) { - cpu.setName(new StringTextComponent("#" + (i + 1))); + cpu.setName(new LiteralText("#" + (i + 1))); } } diff --git a/src/main/java/appeng/container/implementations/InscriberContainer.java b/src/main/java/appeng/container/implementations/InscriberContainer.java index fd7996b90..c4474901f 100644 --- a/src/main/java/appeng/container/implementations/InscriberContainer.java +++ b/src/main/java/appeng/container/implementations/InscriberContainer.java @@ -36,7 +36,6 @@ import appeng.container.slot.RestrictedInputSlot; import appeng.core.Api; import appeng.tile.misc.InscriberBlockEntity; import appeng.tile.misc.InscriberRecipes; -import appeng.tile.misc.InscriberTileEntity; /** * @author AlgorithmX2 diff --git a/src/main/java/appeng/container/implementations/LevelEmitterContainer.java b/src/main/java/appeng/container/implementations/LevelEmitterContainer.java index 8b2222ec8..ae09b2919 100644 --- a/src/main/java/appeng/container/implementations/LevelEmitterContainer.java +++ b/src/main/java/appeng/container/implementations/LevelEmitterContainer.java @@ -18,13 +18,12 @@ package appeng.container.implementations; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.items.IItemHandler; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.screen.ScreenHandlerType; + +import alexiil.mc.lib.attributes.item.FixedItemInv; import appeng.api.config.FuzzyMode; import appeng.api.config.LevelType; diff --git a/src/main/java/appeng/container/implementations/PriorityContainer.java b/src/main/java/appeng/container/implementations/PriorityContainer.java index 7d88e7062..293b4f201 100644 --- a/src/main/java/appeng/container/implementations/PriorityContainer.java +++ b/src/main/java/appeng/container/implementations/PriorityContainer.java @@ -18,8 +18,6 @@ package appeng.container.implementations; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; diff --git a/src/main/java/appeng/core/sync/BasePacket.java b/src/main/java/appeng/core/sync/BasePacket.java index 38202f635..0472e3292 100644 --- a/src/main/java/appeng/core/sync/BasePacket.java +++ b/src/main/java/appeng/core/sync/BasePacket.java @@ -34,7 +34,7 @@ import appeng.core.sync.network.INetworkInfo; public abstract class BasePacket { /** - * Sadly {@link PacketBuffer#readString()} gets inlined by Proguard which means + * Sadly {@link PacketByteBuf#readString()} gets inlined by Proguard which means * it's not available on the Server. This field has the default string length * that is used for writeString, which then also should be used for readString * when it has no special length requirements. diff --git a/src/main/java/appeng/fluids/client/gui/FluidLevelEmitterScreen.java b/src/main/java/appeng/fluids/client/gui/FluidLevelEmitterScreen.java index aaecac4ca..0914b64b3 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidLevelEmitterScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidLevelEmitterScreen.java @@ -29,9 +29,9 @@ public class FluidLevelEmitterScreen extends UpgradeableScreen TYPE; diff --git a/src/main/java/appeng/fluids/container/FluidStorageBusContainer.java b/src/main/java/appeng/fluids/container/FluidStorageBusContainer.java index 4830e8833..fc684aeaa 100644 --- a/src/main/java/appeng/fluids/container/FluidStorageBusContainer.java +++ b/src/main/java/appeng/fluids/container/FluidStorageBusContainer.java @@ -44,7 +44,6 @@ import appeng.container.slot.RestrictedInputSlot; import appeng.core.Api; import appeng.fluids.parts.FluidStorageBusPart; import appeng.fluids.util.IAEFluidTank; -import appeng.util.Platform; import appeng.util.iterators.NullIterator; /** diff --git a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java index 67176100a..23f7766c1 100644 --- a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java +++ b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java @@ -18,13 +18,14 @@ package appeng.fluids.helper; +import java.math.RoundingMode; import java.util.Optional; import net.minecraft.block.entity.BlockEntity; import net.minecraft.nbt.CompoundTag; import alexiil.mc.lib.attributes.AttributeList; -import alexiil.mc.lib.attributes.fluid.volume.FluidVolume; +import alexiil.mc.lib.attributes.fluid.amount.FluidAmount; import alexiil.mc.lib.attributes.item.FixedItemInv; import appeng.api.config.Actionable; @@ -319,8 +320,8 @@ public class DualityFluidInterface toStore.setStackSize(-toStore.getStackSize()); // make sure strange things didn't happen... - final FluidVolume canExtract = this.tanks.drain(slot, toStore.getFluidStack(), false); - if (canExtract.isEmpty() || canExtract.getAmount() != toStore.getStackSize()) { + final FluidAmount canExtract = this.tanks.drain(slot, toStore.getFluidStack(), false); + if (canExtract.isZero() || canExtract.asLong(1000, RoundingMode.DOWN) != toStore.getStackSize()) { changed = true; } else { IAEFluidStack notStored = Platform.poweredInsert(src, dest, toStore, this.interfaceRequestSource); @@ -329,8 +330,8 @@ public class DualityFluidInterface if (toStore.getStackSize() > 0) { // extract items! changed = true; - final FluidVolume removed = this.tanks.drain(slot, toStore.getFluidStack(), true); - if (removed.isEmpty() || toStore.getStackSize() != removed.getAmount()) { + final FluidAmount removed = this.tanks.drain(slot, toStore.getFluidStack(), true); + if (removed.isZero() || toStore.getStackSize() != removed.asLong(1000, RoundingMode.DOWN)) { throw new IllegalStateException("bad attempt at managing tanks. ( drain )"); } } diff --git a/src/main/java/appeng/fluids/util/AEFluidInventory.java b/src/main/java/appeng/fluids/util/AEFluidInventory.java index 687ea1226..de09bd675 100644 --- a/src/main/java/appeng/fluids/util/AEFluidInventory.java +++ b/src/main/java/appeng/fluids/util/AEFluidInventory.java @@ -151,19 +151,19 @@ public class AEFluidInventory implements IAEFluidTank { return amountToStore; } - public FluidVolume drain(final int slot, final FluidVolume resource, final boolean doDrain) { + public FluidAmount drain(final int slot, final FluidVolume resource, final boolean doDrain) { final IAEFluidStack fluid = this.fluids[slot]; if (resource.isEmpty() || fluid == EMPTY_AE_FLUIDSTACK || !fluid.getFluidStack().equals(resource)) { - return FluidStack.EMPTY; + return FluidAmount.ZERO; } int toDrain = (int) resource.getAmount_F().asLong(1000, RoundingMode.DOWN); return this.drain(slot, toDrain, doDrain); } - public FluidVolume drain(final int slot, final int maxDrain, boolean doDrain) { + public FluidAmount drain(final int slot, final int maxDrain, boolean doDrain) { final IAEFluidStack fluid = this.fluids[slot]; if (fluid == EMPTY_AE_FLUIDSTACK || maxDrain <= 0) { - return FluidStack.EMPTY; + return FluidAmount.ZERO; } int drained = maxDrain; @@ -171,7 +171,7 @@ public class AEFluidInventory implements IAEFluidTank { drained = (int) fluid.getStackSize(); } - FluidVolume stack = fluid.getFluidStack().withAmount(FluidAmount.of(drained, 1000)); + FluidAmount amount = FluidAmount.of(drained, 1000); if (doDrain) { fluid.setStackSize(fluid.getStackSize() - drained); if (fluid.getStackSize() <= 0) { @@ -179,7 +179,7 @@ public class AEFluidInventory implements IAEFluidTank { } this.onContentChanged(slot); } - return stack; + return amount; } public void writeToNBT(final CompoundTag data, final String name) { diff --git a/src/main/resources/assets/appliedenergistics2/textures/guis/states.png b/src/main/resources/assets/appliedenergistics2/textures/guis/states.png index 7d2f809a9..053edcb87 100644 Binary files a/src/main/resources/assets/appliedenergistics2/textures/guis/states.png and b/src/main/resources/assets/appliedenergistics2/textures/guis/states.png differ