public static <T extends IAEStack<T>> void postListChanges( final IItemList<T> before, final IItemList<T> after, final IMEMonitorHandlerReceiver<T> meMonitorPassthrough, final IActionSource source ) { final List<T> changes = new ArrayList<>(); for( final T is : before ) { is.setStackSize( -is.getStackSize() ); } for( final T is : after ) { before.add( is ); } for( final T is : before ) { if( is.getStackSize() != 0 ) { changes.add( is ); } } if( !changes.isEmpty() ) { meMonitorPassthrough.postChange( null, changes, source ); } }
Results.setStackSize( l.getStackSize() ); if( mode == Actionable.MODULATE ) l.setStackSize( 0 ); this.saveChanges(); Results.setStackSize( size ); if( mode == Actionable.MODULATE ) l.setStackSize( l.getStackSize() - size ); this.saveChanges();
possible.setStackSize( itemToExtract ); final T ret = cell.extractItems( possible, Actionable.MODULATE, src ); return possible.setStackSize( itemToExtract );
output.setStackSize( 0 ); final long req = request.getStackSize(); request.setStackSize( req - output.getStackSize() ); output.add( inv.extractItems( request, mode, src ) );
private T monitorDifference( final IAEStack<T> original, final T leftOvers, final boolean extraction, final IActionSource src ) { final T diff = original.copy(); if( extraction ) { diff.setStackSize( leftOvers == null ? 0 : -leftOvers.getStackSize() ); } else if( leftOvers != null ) { diff.decStackSize( leftOvers.getStackSize() ); } if( diff.getStackSize() != 0 ) { this.postChangesToListeners( ImmutableList.of( diff ), src ); } return leftOvers; }
private T monitorDifference( final T original, final T leftOvers, final boolean extraction, final IActionSource src ) { final T diff = original.copy(); if( extraction ) { diff.setStackSize( leftOvers == null ? 0 : -leftOvers.getStackSize() ); } else if( leftOvers != null ) { diff.decStackSize( leftOvers.getStackSize() ); } if( diff.getStackSize() != 0 ) { this.postChangesToListeners( ImmutableList.of( diff ), src ); } return leftOvers; }
difference.setStackSize( -changedItem.getStackSize() ); fullStack.setStackSize( 0 );
final T split = input.copy(); split.decStackSize( itemToAdd ); input.setStackSize( itemToAdd ); split.add( cell.injectItems( input, Actionable.MODULATE, src ) ); final T ret = input.copy().setStackSize( input.getStackSize() - itemToAdd ); return ( ret != null && ret.getStackSize() > 0 ) ? ret : null;
t.setStackSize( stackSize );
private boolean matches( final FullnessMode fm, final IMEInventory src ) { if( fm == FullnessMode.HALF ) { return true; } final IItemList<? extends IAEStack> myList; if( src instanceof IMEMonitor ) { myList = ( (IMEMonitor) src ).getStorageList(); } else { myList = src.getAvailableItems( src.getChannel().createList() ); } if( fm == FullnessMode.EMPTY ) { return myList.isEmpty(); } final IAEStack test = myList.getFirstItem(); if( test != null ) { test.setStackSize( 1 ); return src.injectItems( test, Actionable.SIMULATE, this.mySrc ) != null; } return false; }
r.setStackSize( r.getStackSize() - remainingItemCount ); if( mode == Actionable.MODULATE ) l.setStackSize( l.getStackSize() + remainingItemCount ); this.saveChanges(); l.setStackSize( l.getStackSize() + input.getStackSize() ); this.saveChanges(); toReturn.setStackSize( input.getStackSize() - remainingItemCount ); if( mode == Actionable.MODULATE ) toWrite.setStackSize( remainingItemCount );
s.setStackSize( possible );
@SuppressWarnings( { "rawtypes", "unchecked" } ) public static void postChanges( final IStorageGrid gs, final ItemStack removed, final ItemStack added, final IActionSource src ) { for( final IStorageChannel<?> chan : AEApi.instance().storage().storageChannels() ) { final IItemList<?> myChanges = chan.createList(); if( !removed.isEmpty() ) { final IMEInventory myInv = AEApi.instance().registries().cell().getCellInventory( removed, null, chan ); if( myInv != null ) { myInv.getAvailableItems( myChanges ); for( final IAEStack is : myChanges ) { is.setStackSize( -is.getStackSize() ); } } } if( !added.isEmpty() ) { final IMEInventory myInv = AEApi.instance().registries().cell().getCellInventory( added, null, chan ); if( myInv != null ) { myInv.getAvailableItems( myChanges ); } } gs.postAlterationOfStoredItems( chan, myChanges, src ); } }
public static <T extends IAEStack<T>> T inventoryExtract(T input, IMEInventory<T> inv, IActionSource src, IEnergySource energy, Actionable mode) { Preconditions.checkNotNull(input); Preconditions.checkNotNull(inv); Preconditions.checkNotNull(src); Preconditions.checkNotNull(mode); T canExtract = inv.extractItems(input.copy(), Actionable.SIMULATE, src); if (canExtract == null) // There is no item return null; long toExtract = canExtract.getStackSize(); double energyFactor = 0; if (energy != null) { // We need to factor in power available energyFactor = Math.max(1.0, inv.getChannel().transferFactor()); double availablePower = energy.extractAEPower(toExtract / energyFactor, Actionable.SIMULATE, PowerMultiplier.CONFIG); toExtract = Math.min((long) ((availablePower * energyFactor) + 0.9), toExtract); } if (toExtract < 1) return null; if (mode == Actionable.SIMULATE) return canExtract.setStackSize(toExtract); if (energy != null) energy.extractAEPower(toExtract / energyFactor, Actionable.MODULATE, PowerMultiplier.CONFIG); canExtract.setStackSize(toExtract); return inv.extractItems(canExtract, Actionable.MODULATE, src); }
T s = input.copy().setStackSize(input.getStackSize() - toAdd); return s != null && s.getStackSize() > 0 ? s : null; input.setStackSize(toAdd); split.decStackSize(toAdd); split.add(inv.injectItems(input, Actionable.MODULATE, src));
T stack = t.copy(); if (this.getViewMode().equals(ViewItems.CRAFTABLE)) { stack.setStackSize(0);
inv.setInventorySlotContents(i, s); this.removeFromExport.add(stack0); stack.setStackSize(outStack - max + current); this.addToExport.add(stack); markForSave = true; this.removeFromExport.add(stack0); markForSave = true; stack.setStackSize(outStack - max + current); this.addToExport.add(stack); markForSave = true;
inv.setInventorySlotContents(i, s); this.removeFromExport.add(exportStack); stack.setStackSize(outStack - max + current); this.addToExport.add(stack); return; inv.setInventorySlotContents(i, s); this.removeFromExport.add(exportStack); stack.setStackSize(outStack - max + current); this.addToExport.add(stack); return;