diff --git a/src/main/java/appeng/client/gui/AEBaseGui.java b/src/main/java/appeng/client/gui/AEBaseGui.java index 13e68a87a..22b8f6c95 100644 --- a/src/main/java/appeng/client/gui/AEBaseGui.java +++ b/src/main/java/appeng/client/gui/AEBaseGui.java @@ -71,7 +71,6 @@ import appeng.container.slot.AppEngCraftingSlot; import appeng.container.slot.AppEngSlot; import appeng.container.slot.AppEngSlot.hasCalculatedValidness; import appeng.container.slot.IOptionalSlot; -import appeng.container.slot.ISlotFluid; import appeng.container.slot.SlotCraftingTerm; import appeng.container.slot.SlotDisabled; import appeng.container.slot.SlotFake; @@ -84,6 +83,9 @@ import appeng.core.AppEng; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketInventoryAction; import appeng.core.sync.packets.PacketSwapSlots; +import appeng.fluids.client.render.FluidStackSizeRenderer; +import appeng.fluids.container.slots.IFluidSlot; +import appeng.fluids.container.slots.IMEFluidSlot; import appeng.helpers.InventoryAction; @@ -93,6 +95,7 @@ public abstract class AEBaseGui extends GuiContainer // drag y private final Set drag_click = new HashSet<>(); private final StackSizeRenderer stackSizeRenderer = new StackSizeRenderer(); + private final FluidStackSizeRenderer fluidStackSizeRenderer = new FluidStackSizeRenderer(); private GuiScrollbar myScrollBar = null; private boolean disableShiftClick = false; private Stopwatch dbl_clickTimer = Stopwatch.createStarted(); @@ -217,12 +220,12 @@ public abstract class AEBaseGui extends GuiContainer protected void renderHoveredToolTip( int mouseX, int mouseY ) { Slot slot = this.getSlot( mouseX, mouseY ); - if( slot != null && slot.isEnabled() && slot instanceof ISlotFluid ) + if( slot != null && slot.isEnabled() && slot instanceof IFluidSlot ) { - ISlotFluid fluidSlot = (ISlotFluid) slot; - if( fluidSlot.getFluidInSlot() != null && fluidSlot.shouldRenderAsFluid() ) + IFluidSlot fluidSlot = (IFluidSlot) slot; + if( fluidSlot.getFluidStack() != null && fluidSlot.shouldRenderAsFluid() ) { - FluidStack fluidStack = fluidSlot.getFluidInSlot(); + FluidStack fluidStack = fluidSlot.getFluidStack(); this.drawHoveringText( fluidStack.getLocalizedName(), mouseX, mouseY ); return; } @@ -266,14 +269,16 @@ public abstract class AEBaseGui extends GuiContainer final AppEngSlot aeSlot = (AppEngSlot) slot; if( aeSlot.isSlotEnabled() ) { - this.drawTexturedModalRect( ox + aeSlot.xPos - 1, oy + aeSlot.yPos - 1, optionalSlot.getSourceX() - 1, optionalSlot.getSourceY() - 1, 18, + this.drawTexturedModalRect( ox + aeSlot.xPos - 1, oy + aeSlot.yPos - 1, optionalSlot.getSourceX() - 1, optionalSlot.getSourceY() - 1, + 18, 18 ); } else { GlStateManager.color( 1.0F, 1.0F, 1.0F, 0.4F ); GlStateManager.enableBlend(); - this.drawTexturedModalRect( ox + aeSlot.xPos - 1, oy + aeSlot.yPos - 1, optionalSlot.getSourceX() - 1, optionalSlot.getSourceY() - 1, 18, + this.drawTexturedModalRect( ox + aeSlot.xPos - 1, oy + aeSlot.yPos - 1, optionalSlot.getSourceX() - 1, optionalSlot.getSourceY() - 1, + 18, 18 ); GlStateManager.color( 1.0F, 1.0F, 1.0F, 1.0F ); } @@ -738,10 +743,12 @@ public abstract class AEBaseGui extends GuiContainer return; } - else if( s instanceof ISlotFluid && ( (ISlotFluid) s ).shouldRenderAsFluid() ) + else if( s instanceof IFluidSlot && ( (IFluidSlot) s ).shouldRenderAsFluid() ) { - FluidStack fs = ( (ISlotFluid) s ).getFluidInSlot(); - if( fs != null ) + final IFluidSlot slot = (IFluidSlot) s; + final FluidStack fs = slot.getFluidStack(); + + if( fs != null && this.isPowered() ) { GlStateManager.disableLighting(); Fluid fluid = fs.getFluid(); @@ -757,11 +764,18 @@ public abstract class AEBaseGui extends GuiContainer this.drawTexturedModalRect( s.xPos, s.yPos, sprite, 16, 16 ); GlStateManager.enableLighting(); + + if( s instanceof IMEFluidSlot ) + { + final IMEFluidSlot meFluidSlot = (IMEFluidSlot) s; + this.fluidStackSizeRenderer.renderStackSize( this.fontRenderer, meFluidSlot.getAEFluidStack(), s.xPos, s.yPos ); + } } - if( !this.isPowered() ) + else if( !this.isPowered() ) { drawRect( s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111 ); } + return; } else diff --git a/src/main/java/appeng/client/me/SlotFluidME.java b/src/main/java/appeng/client/me/SlotFluidME.java index 224420dc8..96611018a 100644 --- a/src/main/java/appeng/client/me/SlotFluidME.java +++ b/src/main/java/appeng/client/me/SlotFluidME.java @@ -28,7 +28,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.SlotItemHandler; import appeng.api.storage.data.IAEFluidStack; -import appeng.container.slot.ISlotFluid; +import appeng.fluids.container.slots.IMEFluidSlot; /** @@ -36,8 +36,9 @@ import appeng.container.slot.ISlotFluid; * @version rv6 - 22/05/2018 * @since rv6 22/05/2018 */ -public class SlotFluidME extends SlotItemHandler implements ISlotFluid +public class SlotFluidME extends SlotItemHandler implements IMEFluidSlot { + private InternalFluidSlotME slot; public SlotFluidME( InternalFluidSlotME slot ) @@ -46,7 +47,8 @@ public class SlotFluidME extends SlotItemHandler implements ISlotFluid this.slot = slot; } - public IAEFluidStack getAEStack() + @Override + public IAEFluidStack getAEFluidStack() { if( this.slot.hasPower() ) { @@ -69,7 +71,7 @@ public class SlotFluidME extends SlotItemHandler implements ISlotFluid } @Override - public FluidStack getFluidInSlot() + public FluidStack getFluidStack() { return this.slot.getStack(); } @@ -79,7 +81,7 @@ public class SlotFluidME extends SlotItemHandler implements ISlotFluid { if( this.slot.hasPower() ) { - return this.getAEStack() != null; + return this.getAEFluidStack() != null; } return false; } diff --git a/src/main/java/appeng/container/slot/AppEngSlot.java b/src/main/java/appeng/container/slot/AppEngSlot.java index 89e337e43..8e6ea8ea8 100644 --- a/src/main/java/appeng/container/slot/AppEngSlot.java +++ b/src/main/java/appeng/container/slot/AppEngSlot.java @@ -274,7 +274,7 @@ public class AppEngSlot extends Slot this.isValid = isValid; } - AEBaseContainer getContainer() + protected AEBaseContainer getContainer() { return this.myContainer; } diff --git a/src/main/java/appeng/fluids/client/gui/GuiFluidTerminal.java b/src/main/java/appeng/fluids/client/gui/GuiFluidTerminal.java index 555a6f413..e836c39ab 100644 --- a/src/main/java/appeng/fluids/client/gui/GuiFluidTerminal.java +++ b/src/main/java/appeng/fluids/client/gui/GuiFluidTerminal.java @@ -20,10 +20,11 @@ package appeng.fluids.client.gui; import java.io.IOException; -import java.text.DecimalFormat; +import java.text.NumberFormat; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Mouse; @@ -32,7 +33,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ClickType; import net.minecraft.inventory.Slot; import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.common.Loader; import appeng.api.config.Settings; @@ -45,20 +45,19 @@ import appeng.client.gui.widgets.GuiScrollbar; import appeng.client.gui.widgets.ISortSource; import appeng.client.gui.widgets.MEGuiTextField; import appeng.client.me.FluidRepo; -import appeng.client.me.SlotFluidME; import appeng.client.me.InternalFluidSlotME; -import appeng.container.slot.ISlotFluid; +import appeng.client.me.SlotFluidME; import appeng.core.AELog; import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketInventoryAction; import appeng.core.sync.packets.PacketValueConfig; import appeng.fluids.container.ContainerFluidTerminal; +import appeng.fluids.container.slots.IMEFluidSlot; import appeng.fluids.parts.PartFluidTerminal; import appeng.helpers.InventoryAction; import appeng.util.IConfigManagerHost; import appeng.util.Platform; -import appeng.util.item.AEFluidStack; /** @@ -115,7 +114,8 @@ public class GuiFluidTerminal extends AEBaseMEGui implements ISortSource, IConfi this.buttonList.add( this.sortByBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.SORT_BY, this.configSrc.getSetting( Settings.SORT_BY ) ) ); offset += 20; - this.buttonList.add( this.sortDirBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.SORT_DIRECTION, this.configSrc.getSetting( Settings.SORT_DIRECTION ) ) ); + this.buttonList.add( this.sortDirBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.SORT_DIRECTION, this.configSrc + .getSetting( Settings.SORT_DIRECTION ) ) ); for( int y = 0; y < this.rows; y++ ) { @@ -166,31 +166,30 @@ public class GuiFluidTerminal extends AEBaseMEGui implements ISortSource, IConfi @Override protected void renderHoveredToolTip( int mouseX, int mouseY ) { - Slot slot = this.getSlot( mouseX, mouseY ); - if( slot != null && slot.isEnabled() && slot instanceof ISlotFluid ) + final Slot slot = this.getSlot( mouseX, mouseY ); + + if( slot != null && slot instanceof IMEFluidSlot && slot.isEnabled() ) { - ISlotFluid fluidSlot = (ISlotFluid) slot; - if( fluidSlot.getFluidInSlot() != null && fluidSlot.shouldRenderAsFluid() ) + final IMEFluidSlot fluidSlot = (IMEFluidSlot) slot; + + if( fluidSlot.getFluidStack() != null && fluidSlot.shouldRenderAsFluid() ) { - FluidStack fluidStack = fluidSlot.getFluidInSlot(); - List list = new ArrayList<>(); - list.add( fluidStack.getLocalizedName() ); - int amount = fluidStack.amount; - DecimalFormat formatter = new DecimalFormat( "#,###.##" ); - String amountStr = formatter.format( amount ) + "mb"; - if( amount >= 10000 ) - { - amountStr += " ( "; - amountStr += formatter.format( amount / 1000 ) + "B"; - amountStr += " )"; - } - list.add( amountStr ); - String modName = ""; - modName += TextFormatting.BLUE; - modName += TextFormatting.ITALIC; - modName += Loader.instance().getIndexedModList().get( Platform.getModId( AEFluidStack.fromFluidStack( fluidStack ) ) ).getName(); + final IAEFluidStack fluidStack = fluidSlot.getAEFluidStack(); + final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( fluidStack.getStackSize() ) + " mB"; + + final String modName = "" + TextFormatting.BLUE + TextFormatting.ITALIC + Loader.instance() + .getIndexedModList() + .get( Platform.getModId( fluidStack ) ) + .getName(); + + final List list = new ArrayList<>(); + + list.add( fluidStack.getFluidStack().getLocalizedName() ); + list.add( formattedAmount ); list.add( modName ); + this.drawHoveringText( list, mouseX, mouseY ); + return; } } @@ -203,8 +202,8 @@ public class GuiFluidTerminal extends AEBaseMEGui implements ISortSource, IConfi if( btn instanceof GuiImgButton ) { final boolean backwards = Mouse.isButtonDown( 1 ); - final GuiImgButton iBtn = (GuiImgButton) btn; + if( iBtn.getSetting() != Settings.ACTIONS ) { final Enum cv = iBtn.getCurrentValue(); @@ -229,22 +228,23 @@ public class GuiFluidTerminal extends AEBaseMEGui implements ISortSource, IConfi { if( slot instanceof SlotFluidME ) { - SlotFluidME meSlot = (SlotFluidME) slot; + final SlotFluidME meSlot = (SlotFluidME) slot; + if( clickType == ClickType.PICKUP ) { // TODO: Allow more options if( mouseButton == 0 && meSlot.getHasStack() ) { - this.container.setTargetStack( meSlot.getAEStack() ); - AELog.info( "mouse0 GUI STACK SIZE %s", meSlot.getAEStack().getStackSize() ); + this.container.setTargetStack( meSlot.getAEFluidStack() ); + AELog.info( "mouse0 GUI STACK SIZE %s", meSlot.getAEFluidStack().getStackSize() ); NetworkHandler.instance().sendToServer( new PacketInventoryAction( InventoryAction.FILL_ITEM, slot.slotNumber, 0 ) ); } else { - this.container.setTargetStack( meSlot.getAEStack() ); - if( meSlot.getAEStack() != null ) + this.container.setTargetStack( meSlot.getAEFluidStack() ); + if( meSlot.getAEFluidStack() != null ) { - AELog.info( "mouse1 GUI STACK SIZE %s", meSlot.getAEStack().getStackSize() ); + AELog.info( "mouse1 GUI STACK SIZE %s", meSlot.getAEFluidStack().getStackSize() ); } NetworkHandler.instance().sendToServer( new PacketInventoryAction( InventoryAction.EMPTY_ITEM, slot.slotNumber, 0 ) ); } diff --git a/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java new file mode 100644 index 000000000..124e120fe --- /dev/null +++ b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java @@ -0,0 +1,134 @@ +/* + * This file is part of Applied Energistics 2. + * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. + * + * Applied Energistics 2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Applied Energistics 2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Applied Energistics 2. If not, see . + */ + +package appeng.fluids.client.render; + + +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; + +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.GlStateManager; + +import appeng.api.storage.data.IAEFluidStack; +import appeng.core.AEConfig; +import appeng.util.ISlimReadableNumberConverter; +import appeng.util.IWideReadableNumberConverter; +import appeng.util.ReadableNumberConverter; + + +/** + * @author AlgorithmX2 + * @author thatsIch + * @author yueh + * @version rv6 + * @since rv6 + */ +public class FluidStackSizeRenderer +{ + + private static final String[] NUMBER_FORMATS = new String[] { "#.000", "#.00", "#.0", "#" }; + + private static final ISlimReadableNumberConverter SLIM_CONVERTER = ReadableNumberConverter.INSTANCE; + private static final IWideReadableNumberConverter WIDE_CONVERTER = ReadableNumberConverter.INSTANCE; + + public void renderStackSize( FontRenderer fontRenderer, IAEFluidStack aeStack, int xPos, int yPos ) + { + if( aeStack != null ) + { + final float scaleFactor = AEConfig.instance().useTerminalUseLargeFont() ? 0.85f : 0.5f; + final float inverseScaleFactor = 1.0f / scaleFactor; + final int offset = AEConfig.instance().useTerminalUseLargeFont() ? 0 : -1; + + final boolean unicodeFlag = fontRenderer.getUnicodeFlag(); + fontRenderer.setUnicodeFlag( false ); + + if( aeStack.getStackSize() > 0 ) + { + final String stackSize = this.getToBeRenderedStackSize( aeStack.getStackSize() ); + + GlStateManager.disableLighting(); + GlStateManager.disableDepth(); + GlStateManager.disableBlend(); + GlStateManager.pushMatrix(); + GlStateManager.scale( scaleFactor, scaleFactor, scaleFactor ); + final int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); + final int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); + fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 ); + GlStateManager.popMatrix(); + GlStateManager.enableLighting(); + GlStateManager.enableDepth(); + GlStateManager.enableBlend(); + } + + fontRenderer.setUnicodeFlag( unicodeFlag ); + } + } + + private String getToBeRenderedStackSize( final long originalSize ) + { + // Handle any value below 100 (large font) or 1000 (small font) Buckets with a custom formatter, + // otherwise pass it to the normal number converter + if( originalSize < 1000 * 100 && AEConfig.instance().useTerminalUseLargeFont() ) + { + return this.getSlimRenderedStacksize( originalSize ); + } + else if( originalSize < 1000 * 1000 && !AEConfig.instance().useTerminalUseLargeFont() ) + { + return this.getWideRenderedStacksize( originalSize ); + } + + if( AEConfig.instance().useTerminalUseLargeFont() ) + { + return SLIM_CONVERTER.toSlimReadableForm( originalSize / 1000 ); + } + else + { + return WIDE_CONVERTER.toWideReadableForm( originalSize / 1000 ); + } + } + + private String getSlimRenderedStacksize( final long originalSize ) + { + final int log = 1 + (int) Math.floor( Math.log10( originalSize ) ) / 2; + + return this.getRenderedFluidStackSize( originalSize, log ); + } + + private String getWideRenderedStacksize( final long originalSize ) + { + final int log = (int) Math.floor( Math.log10( originalSize ) ) / 2; + + return this.getRenderedFluidStackSize( originalSize, log ); + } + + private String getRenderedFluidStackSize( final long originalSize, final int log ) + { + final int index = Math.max( 0, Math.min( 3, log ) ); + + final DecimalFormatSymbols symbols = new DecimalFormatSymbols(); + symbols.setDecimalSeparator( '.' ); + final DecimalFormat format = new DecimalFormat( NUMBER_FORMATS[index] ); + format.setDecimalFormatSymbols( symbols ); + format.setRoundingMode( RoundingMode.DOWN ); + + return format.format( originalSize / 1000f ); + } + +} diff --git a/src/main/java/appeng/fluids/container/ContainerFluidIO.java b/src/main/java/appeng/fluids/container/ContainerFluidIO.java index 7cb591233..831f7a5b8 100644 --- a/src/main/java/appeng/fluids/container/ContainerFluidIO.java +++ b/src/main/java/appeng/fluids/container/ContainerFluidIO.java @@ -27,8 +27,8 @@ import net.minecraftforge.items.IItemHandler; import appeng.api.implementations.IUpgradeableHost; import appeng.container.implementations.ContainerUpgradeable; -import appeng.container.slot.OptionalSlotFakeFluid; -import appeng.container.slot.SlotFakeFluid; +import appeng.fluids.container.slots.OptionalSlotFakeFluid; +import appeng.fluids.container.slots.SlotFakeFluid; /** diff --git a/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java b/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java index a0e457145..5fb79291b 100644 --- a/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java +++ b/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java @@ -38,9 +38,9 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; import appeng.container.guisync.GuiSync; import appeng.container.implementations.ContainerUpgradeable; -import appeng.container.slot.OptionalSlotFakeFluid; -import appeng.container.slot.SlotFakeFluid; import appeng.container.slot.SlotRestrictedInput; +import appeng.fluids.container.slots.OptionalSlotFakeFluid; +import appeng.fluids.container.slots.SlotFakeFluid; import appeng.fluids.parts.PartFluidStorageBus; import appeng.util.Platform; import appeng.util.helpers.ItemHandlerUtil; diff --git a/src/main/java/appeng/container/slot/ISlotFluid.java b/src/main/java/appeng/fluids/container/slots/IFluidSlot.java similarity index 88% rename from src/main/java/appeng/container/slot/ISlotFluid.java rename to src/main/java/appeng/fluids/container/slots/IFluidSlot.java index 864be0a9a..cc7ac7f25 100644 --- a/src/main/java/appeng/container/slot/ISlotFluid.java +++ b/src/main/java/appeng/fluids/container/slots/IFluidSlot.java @@ -16,7 +16,7 @@ * along with Applied Energistics 2. If not, see . */ -package appeng.container.slot; +package appeng.fluids.container.slots; import net.minecraftforge.fluids.FluidStack; @@ -27,9 +27,9 @@ import net.minecraftforge.fluids.FluidStack; * @version rv6 - 3/05/2018 * @since rv6 3/05/2018 */ -public interface ISlotFluid +public interface IFluidSlot { - FluidStack getFluidInSlot(); + FluidStack getFluidStack(); default boolean shouldRenderAsFluid() { diff --git a/src/main/java/appeng/fluids/container/slots/IMEFluidSlot.java b/src/main/java/appeng/fluids/container/slots/IMEFluidSlot.java new file mode 100644 index 000000000..1066fc94f --- /dev/null +++ b/src/main/java/appeng/fluids/container/slots/IMEFluidSlot.java @@ -0,0 +1,33 @@ +/* + * This file is part of Applied Energistics 2. + * Copyright (c) 2013 - 2018, AlgorithmX2, All rights reserved. + * + * Applied Energistics 2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Applied Energistics 2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Applied Energistics 2. If not, see . + */ + +package appeng.fluids.container.slots; + + +import appeng.api.storage.data.IAEFluidStack; + + +/** + * @author yueh + * @version rv6 + * @since rv6 + */ +public interface IMEFluidSlot extends IFluidSlot +{ + IAEFluidStack getAEFluidStack(); +} diff --git a/src/main/java/appeng/container/slot/OptionalSlotFakeFluid.java b/src/main/java/appeng/fluids/container/slots/OptionalSlotFakeFluid.java similarity index 94% rename from src/main/java/appeng/container/slot/OptionalSlotFakeFluid.java rename to src/main/java/appeng/fluids/container/slots/OptionalSlotFakeFluid.java index 336ab3482..e50c58491 100644 --- a/src/main/java/appeng/container/slot/OptionalSlotFakeFluid.java +++ b/src/main/java/appeng/fluids/container/slots/OptionalSlotFakeFluid.java @@ -16,7 +16,7 @@ * along with Applied Energistics 2. If not, see . */ -package appeng.container.slot; +package appeng.fluids.container.slots; import javax.annotation.Nonnull; @@ -24,6 +24,9 @@ import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; +import appeng.container.slot.IOptionalSlot; +import appeng.container.slot.IOptionalSlotHost; + /** * @author BrockWS diff --git a/src/main/java/appeng/container/slot/SlotFakeFluid.java b/src/main/java/appeng/fluids/container/slots/SlotFakeFluid.java similarity index 92% rename from src/main/java/appeng/container/slot/SlotFakeFluid.java rename to src/main/java/appeng/fluids/container/slots/SlotFakeFluid.java index fcd94ddeb..2bedfbaa5 100644 --- a/src/main/java/appeng/container/slot/SlotFakeFluid.java +++ b/src/main/java/appeng/fluids/container/slots/SlotFakeFluid.java @@ -16,7 +16,7 @@ * along with Applied Energistics 2. If not, see . */ -package appeng.container.slot; +package appeng.fluids.container.slots; import net.minecraft.item.ItemStack; @@ -25,13 +25,15 @@ import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandlerItem; import net.minecraftforge.items.IItemHandler; +import appeng.container.slot.SlotFake; + /** * @author BrockWS * @version rv6 - 1/05/2018 * @since rv6 1/05/2018 */ -public class SlotFakeFluid extends SlotFake implements ISlotFluid +public class SlotFakeFluid extends SlotFake implements IFluidSlot { public SlotFakeFluid( IItemHandler inv, int idx, int x, int y ) { @@ -61,7 +63,7 @@ public class SlotFakeFluid extends SlotFake implements ISlotFluid } @Override - public FluidStack getFluidInSlot() + public FluidStack getFluidStack() { if( !this.getStack().isEmpty() ) {