pick 97420a31d The big reformat of 2020
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -18,11 +18,10 @@
|
||||
|
||||
package appeng.fluids.helper;
|
||||
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidAttributes;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
@@ -32,81 +31,72 @@ import appeng.api.AEApi;
|
||||
import appeng.fluids.items.FluidDummyItem;
|
||||
import appeng.items.contents.CellConfig;
|
||||
|
||||
|
||||
/**
|
||||
* @author DrummerMC
|
||||
* @version rv6 - 2018-01-22
|
||||
* @since rv6 2018-01-22
|
||||
*/
|
||||
public class FluidCellConfig extends CellConfig
|
||||
{
|
||||
public FluidCellConfig( ItemStack is )
|
||||
{
|
||||
super( is );
|
||||
}
|
||||
public class FluidCellConfig extends CellConfig {
|
||||
public FluidCellConfig(ItemStack is) {
|
||||
super(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public ItemStack insertItem( int slot, @Nonnull ItemStack stack, boolean simulate )
|
||||
{
|
||||
if( stack.isEmpty() || stack.getItem() instanceof FluidDummyItem )
|
||||
{
|
||||
super.insertItem( slot, stack, simulate );
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained( stack );
|
||||
if( !fluidOpt.isPresent() || !AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).isPresent() )
|
||||
{
|
||||
return stack;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse( null );
|
||||
@Override
|
||||
@Nonnull
|
||||
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
|
||||
if (stack.isEmpty() || stack.getItem() instanceof FluidDummyItem) {
|
||||
super.insertItem(slot, stack, simulate);
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained(stack);
|
||||
if (!fluidOpt.isPresent()
|
||||
|| !AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).isPresent()) {
|
||||
return stack;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse(null);
|
||||
|
||||
fluid.setAmount( FluidAttributes.BUCKET_VOLUME );
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack( is, fluid );
|
||||
return super.insertItem( slot, is, simulate );
|
||||
}
|
||||
fluid.setAmount(FluidAttributes.BUCKET_VOLUME);
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack(is, fluid);
|
||||
return super.insertItem(slot, is, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStackInSlot( int slot, @Nonnull ItemStack stack )
|
||||
{
|
||||
if( stack.isEmpty() || stack.getItem() instanceof FluidDummyItem )
|
||||
{
|
||||
super.setStackInSlot( slot, stack );
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained( stack );
|
||||
if( !fluidOpt.isPresent() || !AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).isPresent() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse( null );
|
||||
@Override
|
||||
public void setStackInSlot(int slot, @Nonnull ItemStack stack) {
|
||||
if (stack.isEmpty() || stack.getItem() instanceof FluidDummyItem) {
|
||||
super.setStackInSlot(slot, stack);
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained(stack);
|
||||
if (!fluidOpt.isPresent()
|
||||
|| !AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).isPresent()) {
|
||||
return;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse(null);
|
||||
|
||||
fluid.setAmount( FluidAttributes.BUCKET_VOLUME );
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack( is, fluid );
|
||||
super.setStackInSlot( slot, is );
|
||||
}
|
||||
fluid.setAmount(FluidAttributes.BUCKET_VOLUME);
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack(is, fluid);
|
||||
super.setStackInSlot(slot, is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValid( int slot, ItemStack stack )
|
||||
{
|
||||
if( stack.isEmpty() || stack.getItem() instanceof FluidDummyItem )
|
||||
{
|
||||
super.isItemValid( slot, stack );
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained( stack );
|
||||
if( !fluidOpt.isPresent() || !AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).isPresent() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse( null );
|
||||
@Override
|
||||
public boolean isItemValid(int slot, ItemStack stack) {
|
||||
if (stack.isEmpty() || stack.getItem() instanceof FluidDummyItem) {
|
||||
super.isItemValid(slot, stack);
|
||||
}
|
||||
LazyOptional<FluidStack> fluidOpt = FluidUtil.getFluidContained(stack);
|
||||
if (!fluidOpt.isPresent()
|
||||
|| !AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).isPresent()) {
|
||||
return false;
|
||||
}
|
||||
FluidStack fluid = fluidOpt.orElse(null);
|
||||
|
||||
fluid.setAmount( FluidAttributes.BUCKET_VOLUME );
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack( 1 ).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack( is, fluid );
|
||||
return super.isItemValid( slot, is );
|
||||
}
|
||||
fluid.setAmount(FluidAttributes.BUCKET_VOLUME);
|
||||
ItemStack is = AEApi.instance().definitions().items().dummyFluidItem().maybeStack(1).get();
|
||||
FluidDummyItem item = (FluidDummyItem) is.getItem();
|
||||
item.setFluidStack(is, fluid);
|
||||
return super.isItemValid(slot, is);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
package appeng.fluids.helper;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -15,84 +14,66 @@ import appeng.core.sync.packets.PacketFluidSlot;
|
||||
import appeng.fluids.util.AEFluidInventory;
|
||||
import appeng.fluids.util.IAEFluidTank;
|
||||
|
||||
public class FluidSyncHelper {
|
||||
private final IAEFluidTank inv;
|
||||
private final IAEFluidTank cache;
|
||||
private final int idOffset;
|
||||
|
||||
public class FluidSyncHelper
|
||||
{
|
||||
private final IAEFluidTank inv;
|
||||
private final IAEFluidTank cache;
|
||||
private final int idOffset;
|
||||
public FluidSyncHelper(final IAEFluidTank inv, final int idOffset) {
|
||||
this.inv = inv;
|
||||
this.cache = new AEFluidInventory(null, inv.getSlots());
|
||||
this.idOffset = idOffset;
|
||||
}
|
||||
|
||||
public FluidSyncHelper( final IAEFluidTank inv, final int idOffset )
|
||||
{
|
||||
this.inv = inv;
|
||||
this.cache = new AEFluidInventory( null, inv.getSlots() );
|
||||
this.idOffset = idOffset;
|
||||
}
|
||||
public void sendFull(final Iterable<IContainerListener> listeners) {
|
||||
this.sendDiffMap(this.createDiffMap(true), listeners);
|
||||
}
|
||||
|
||||
public void sendFull( final Iterable<IContainerListener> listeners )
|
||||
{
|
||||
this.sendDiffMap( this.createDiffMap( true ), listeners );
|
||||
}
|
||||
public void sendDiff(final Iterable<IContainerListener> listeners) {
|
||||
this.sendDiffMap(this.createDiffMap(false), listeners);
|
||||
}
|
||||
|
||||
public void sendDiff( final Iterable<IContainerListener> listeners )
|
||||
{
|
||||
this.sendDiffMap( this.createDiffMap( false ), listeners );
|
||||
}
|
||||
public void readPacket(final Map<Integer, IAEFluidStack> data) {
|
||||
for (int i = 0; i < this.inv.getSlots(); ++i) {
|
||||
if (data.containsKey(i + this.idOffset)) {
|
||||
this.inv.setFluidInSlot(i, data.get(i + this.idOffset));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void readPacket( final Map<Integer, IAEFluidStack> data )
|
||||
{
|
||||
for( int i = 0; i < this.inv.getSlots(); ++i )
|
||||
{
|
||||
if( data.containsKey( i + this.idOffset ) )
|
||||
{
|
||||
this.inv.setFluidInSlot( i, data.get( i + this.idOffset ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
private void sendDiffMap(final Map<Integer, IAEFluidStack> data, final Iterable<IContainerListener> listeners) {
|
||||
if (data.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
private void sendDiffMap( final Map<Integer, IAEFluidStack> data, final Iterable<IContainerListener> listeners )
|
||||
{
|
||||
if( data.isEmpty() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (final IContainerListener l : listeners) {
|
||||
if (l instanceof ServerPlayerEntity) {
|
||||
NetworkHandler.instance().sendTo(new PacketFluidSlot(data), (ServerPlayerEntity) l);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( final IContainerListener l : listeners )
|
||||
{
|
||||
if( l instanceof ServerPlayerEntity )
|
||||
{
|
||||
NetworkHandler.instance().sendTo( new PacketFluidSlot( data ), (ServerPlayerEntity) l );
|
||||
}
|
||||
}
|
||||
}
|
||||
private final Map<Integer, IAEFluidStack> createDiffMap(final boolean full) {
|
||||
final Map<Integer, IAEFluidStack> ret = new HashMap<>();
|
||||
for (int i = 0; i < this.inv.getSlots(); ++i) {
|
||||
if (full || !this.equalsSlot(i)) {
|
||||
ret.put(i + this.idOffset, this.inv.getFluidInSlot(i));
|
||||
}
|
||||
if (!full) {
|
||||
this.cache.setFluidInSlot(i, this.inv.getFluidInSlot(i));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private final Map<Integer, IAEFluidStack> createDiffMap( final boolean full )
|
||||
{
|
||||
final Map<Integer, IAEFluidStack> ret = new HashMap<>();
|
||||
for( int i = 0; i < this.inv.getSlots(); ++i )
|
||||
{
|
||||
if( full || !this.equalsSlot( i ) )
|
||||
{
|
||||
ret.put( i + this.idOffset, this.inv.getFluidInSlot( i ) );
|
||||
}
|
||||
if( !full )
|
||||
{
|
||||
this.cache.setFluidInSlot( i, this.inv.getFluidInSlot( i ) );
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
private final boolean equalsSlot(int slot) {
|
||||
final IAEFluidStack stackA = this.inv.getFluidInSlot(slot);
|
||||
final IAEFluidStack stackB = this.cache.getFluidInSlot(slot);
|
||||
|
||||
private final boolean equalsSlot( int slot )
|
||||
{
|
||||
final IAEFluidStack stackA = this.inv.getFluidInSlot( slot );
|
||||
final IAEFluidStack stackB = this.cache.getFluidInSlot( slot );
|
||||
if (!Objects.equals(stackA, stackB)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !Objects.equals( stackA, stackB ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return stackA == null || stackA.getStackSize() == stackB.getStackSize();
|
||||
}
|
||||
return stackA == null || stackA.getStackSize() == stackB.getStackSize();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
package appeng.fluids.helper;
|
||||
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -28,14 +27,12 @@ import appeng.api.implementations.IUpgradeableHost;
|
||||
import appeng.api.networking.security.IActionHost;
|
||||
import appeng.me.helpers.IGridProxyable;
|
||||
|
||||
public interface IFluidInterfaceHost extends IActionHost, IGridProxyable, IUpgradeableHost {
|
||||
DualityFluidInterface getDualityFluidInterface();
|
||||
|
||||
public interface IFluidInterfaceHost extends IActionHost, IGridProxyable, IUpgradeableHost
|
||||
{
|
||||
DualityFluidInterface getDualityFluidInterface();
|
||||
EnumSet<Direction> getTargets();
|
||||
|
||||
EnumSet<Direction> getTargets();
|
||||
TileEntity getTileEntity();
|
||||
|
||||
TileEntity getTileEntity();
|
||||
|
||||
void saveChanges();
|
||||
void saveChanges();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user