private void handleStackSizeChanged( int slot, IAEFluidStack oldAeFS, FluidStack newFS, List<IAEFluidStack> changes ) { // Still the same fluid, but amount might have changed final long diff = newFS.amount - oldAeFS.getStackSize(); if( diff != 0 ) { final IAEFluidStack stack = oldAeFS.copy(); stack.setStackSize( newFS.amount ); this.cachedAeStacks[slot] = stack; final IAEFluidStack a = stack.copy(); a.setStackSize( diff ); changes.add( a ); } }
@Override public void add( final IAEFluidStack option ) { if( option == null ) { return; } final IAEFluidStack st = this.getFluidRecord( option ); if( st != null ) { st.add( option ); return; } final IAEFluidStack opt = option.copy(); this.putFluidRecord( opt ); }
final IAEFluidStack a = aeStack.copy(); a.setStackSize( -a.getStackSize() ); changes.add( a );
@Override public IAEFluidStack injectItems( final IAEFluidStack input, final Actionable type, final IActionSource src ) { final int filled = this.handler.fill( input.getFluidStack(), type == Actionable.MODULATE ); if( filled == 0 ) { return input.copy(); } if( type == Actionable.MODULATE ) { this.onTick(); } if( filled == input.getStackSize() ) { return null; } final IAEFluidStack o = input.copy(); o.setStackSize( input.getStackSize() - filled ); return o; }
final IAEFluidStack work = stored.copy(); this.requireWork[slot] = work.setStackSize( -work.getStackSize() ); return; this.requireWork[slot] = req.copy(); this.requireWork[slot].setStackSize( TANK_CAPACITY ); return; this.requireWork[slot] = req.copy(); this.requireWork[slot].setStackSize( TANK_CAPACITY - stored.getStackSize() ); return; final IAEFluidStack work = stored.copy(); this.requireWork[slot] = work.setStackSize( -work.getStackSize() ); return;
@Override public IAEFluidStack extractItems( final IAEFluidStack request, final Actionable type, final IActionSource src ) { final FluidStack removed = this.handler.drain( request.getFluidStack(), type == Actionable.MODULATE ); if( removed == null || removed.amount == 0 ) { return null; } if( type == Actionable.MODULATE ) { this.onTick(); } final IAEFluidStack o = request.copy(); o.setStackSize( removed.amount ); return o; }
@Override public void addStorage( final IAEFluidStack option ) { if( option == null ) { return; } final IAEFluidStack st = this.getFluidRecord( option ); if( st != null ) { st.incStackSize( option.getStackSize() ); return; } final IAEFluidStack opt = option.copy(); this.putFluidRecord( opt ); }
fs = fs.copy(); fs.setStackSize( 0 );
@Override public void addCrafting( final IAEFluidStack option ) { if( option == null ) { return; } final IAEFluidStack st = this.getFluidRecord( option ); if( st != null ) { st.setCraftable( true ); return; } final IAEFluidStack opt = option.copy(); opt.setStackSize( 0 ); opt.setCraftable( true ); this.putFluidRecord( opt ); }
@Override public void setFluidInSlot( final int slot, final IAEFluidStack fluid ) { if( slot >= 0 && slot < this.getSlots() ) { if( Objects.equals( this.fluids[slot], fluid ) ) { if( fluid != null && fluid.getStackSize() != this.fluids[slot].getStackSize() ) { this.fluids[slot].setStackSize( Math.min( fluid.getStackSize(), this.capacity ) ); this.onContentChanged( slot ); } } else { if( fluid == null ) { this.fluids[slot] = null; } else { this.fluids[slot] = fluid.copy(); this.fluids[slot].setStackSize( Math.min( fluid.getStackSize(), this.capacity ) ); } this.onContentChanged( slot ); } } }
.storage() .getStorageChannel( IFluidStorageChannel.class ) .createStack( newIS ) : old.aeStack.copy() ); this.memory.put( slot, cis ); final IAEFluidStack a = stack.copy(); a.setStackSize( diff ); changes.add( a ); final IAEFluidStack a = cis.aeStack.copy(); a.setStackSize( -a.getStackSize() ); changes.add( a );
public void setTargetStack( final IAEFluidStack stack ) { if( Platform.isClient() ) { if( stack == null && this.clientRequestedTargetFluid == null ) { return; } if( stack != null && this.clientRequestedTargetFluid != null && stack.getFluidStack() .isFluidEqual( this.clientRequestedTargetFluid.getFluidStack() ) ) { return; } NetworkHandler.instance().sendToServer( new PacketTargetFluidStack( (AEFluidStack) stack ) ); } this.clientRequestedTargetFluid = stack == null ? null : stack.copy(); }
@Override public void addRequestable( final IAEFluidStack option ) { if( option == null ) { return; } final IAEFluidStack st = this.getFluidRecord( option ); if( st != null ) { st.setCountRequestable( st.getCountRequestable() + option.getCountRequestable() ); return; } final IAEFluidStack opt = option.copy(); opt.setStackSize( 0 ); opt.setCraftable( false ); opt.setCountRequestable( option.getCountRequestable() ); this.putFluidRecord( opt ); }
final IAEFluidStack ret = input.copy(); ret.setStackSize( input.getStackSize() - Fluid.BUCKET_VOLUME ); return ret.getStackSize() == 0 ? null : ret;
IAEFluidStack toStore = work.copy(); toStore.setStackSize( -toStore.getStackSize() );
if( fluid != null ) final IAEFluidStack toExtract = fluid.copy();
final IAEFluidStack stack = this.clientRequestedTargetFluid.copy();
@Override public boolean pushPattern(ICraftingPatternDetails patternDetails, InventoryCrafting table) { if (this.returnStack != null && !this.returnStack.isEmpty()) { return false; } ItemStack filled = patternDetails.getCondensedOutputs()[0].getDefinition(); if (!patternFluids.containsKey(patternDetails)) return false; FluidStack fluid = patternFluids.get(patternDetails); IStorageGrid storage = getStorageGrid(); if (storage == null || fluid == null) { return false; } IAEFluidStack fluidStack = AEUtils.createFluidStack(new FluidStack(fluid.getFluid(), FluidHelper.getCapacity(patternDetails.getCondensedInputs()[0].getDefinition()))); IAEFluidStack extracted = storage.getInventory(StorageChannels.FLUID()) .extractItems(fluidStack.copy(), Actionable.SIMULATE, new MachineSource(this)); if (extracted == null || extracted.getStackSize() != fluidStack.getStackSize()) { return false; } storage.getInventory(StorageChannels.FLUID()).extractItems(fluidStack, Actionable.MODULATE, new MachineSource(this)); this.returnStack = filled; this.ticksToFinish = 40; return true; }
this.removeFromExport.add(exportStack); } else { IAEFluidStack f = fluid.copy(); f.setStackSize(f.getStackSize() - amount); FluidStack fl = fluid.getFluidStack().copy();
IAEFluidStack injectItems = mon.injectItems(fluidStack.copy(), Actionable.SIMULATE, new MachineSource(this)); if (mon.canAccept(fluidStack)