Compare commits

..

1 Commits

Author SHA1 Message Date
Salomão dbaaf495ee can now drag encoded patterns on the interface terminal 2021-03-28 21:10:58 -03:00
359 changed files with 173 additions and 5867 deletions
@@ -526,7 +526,7 @@ public abstract class AEBaseGui extends GuiContainer implements IMTModGuiContain
if( slot instanceof SlotDisconnected ) if( slot instanceof SlotDisconnected )
{ {
if( this.drag_click.size() > 1 ) if( this.drag_click.size() > 0 )
{ {
return; return;
} }
@@ -94,7 +94,7 @@ public class GuiInterfaceTerminal extends AEBaseGui
{ {
super.initGui(); super.initGui();
this.getScrollBar().setLeft( 189 ); this.getScrollBar().setLeft( 190 );
this.getScrollBar().setHeight( 106 ); this.getScrollBar().setHeight( 106 );
this.getScrollBar().setTop( 51 ); this.getScrollBar().setTop( 51 );
@@ -137,7 +137,7 @@ public class GuiInterfaceTerminal extends AEBaseGui
this.buttonList.clear(); this.buttonList.clear();
this.fontRenderer.drawString( this.getGuiDisplayName( GuiText.InterfaceTerminal.getLocal() ), 8, 6, 4210752 ); this.fontRenderer.drawString( this.getGuiDisplayName( GuiText.InterfaceTerminal.getLocal() ), 8, 6, 4210752 );
this.fontRenderer.drawString( GuiText.inventory.getLocal(), this.offsetX + 2, this.ySize - 96 + 3, 4210752 ); this.fontRenderer.drawString( GuiText.inventory.getLocal(), offsetX, this.ySize - 96 + 3, 4210752 );
final int ex = this.getScrollBar().getCurrentScroll(); final int ex = this.getScrollBar().getCurrentScroll();
@@ -182,7 +182,7 @@ public class GuiInterfaceTerminal extends AEBaseGui
name = name.substring( 0, name.length() - 1 ); name = name.substring( 0, name.length() - 1 );
} }
this.fontRenderer.drawString( name, this.offsetX + 2, 6 + offset, 4210752 ); this.fontRenderer.drawString( name, 22, 6 + offset, 4210752 );
} }
offset += 18; offset += 18;
} }
@@ -217,8 +217,7 @@ public class GuiInterfaceTerminal extends AEBaseGui
{ {
BlockPos blockPos = blockPosHashMap.get( guiButtonHashMap.get( this.selectedButton ) ); BlockPos blockPos = blockPosHashMap.get( guiButtonHashMap.get( this.selectedButton ) );
BlockPos blockPos2 = mc.player.getPosition(); BlockPos blockPos2 = mc.player.getPosition();
int dimension = mc.world.provider.getDimension(); hilightBlock( blockPos, System.currentTimeMillis() + 500 * BlockPosUtils.getDistance(blockPos, blockPos2) );
hilightBlock( blockPos, System.currentTimeMillis() + 500 * BlockPosUtils.getDistance(blockPos, blockPos2), dimension );
mc.player.sendStatusMessage( new TextComponentString( "The interface is now highlighted at " + "X: " + blockPos.getX() + " Y: " + blockPos.getY() + " Z: " + blockPos.getZ() ), false ); mc.player.sendStatusMessage( new TextComponentString( "The interface is now highlighted at " + "X: " + blockPos.getX() + " Y: " + blockPos.getY() + " Z: " + blockPos.getZ() ), false );
mc.player.closeScreen(); mc.player.closeScreen();
} }
@@ -8,14 +8,9 @@ public class BlockPosHighlighter
private static BlockPos hilightedBlock; private static BlockPos hilightedBlock;
private static long expireHilight; private static long expireHilight;
public static void hilightBlock( BlockPos c, long expireHilight ) {
private static int dimension;
public static void hilightBlock( BlockPos c, long expireHilight, int dimension ) {
hilightedBlock = c; hilightedBlock = c;
BlockPosHighlighter.expireHilight = expireHilight; BlockPosHighlighter.expireHilight = expireHilight;
BlockPosHighlighter.dimension = dimension;
} }
public static BlockPos getHilightedBlock() { public static BlockPos getHilightedBlock() {
@@ -26,9 +21,5 @@ public class BlockPosHighlighter
return expireHilight; return expireHilight;
} }
public static int getDimension()
{
return dimension;
}
} }
@@ -19,7 +19,6 @@
package appeng.client.render; package appeng.client.render;
import appeng.api.storage.data.IAEFluidStack;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@@ -31,7 +30,6 @@ import net.minecraft.util.EnumFacing;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.util.IWideReadableNumberConverter; import appeng.util.IWideReadableNumberConverter;
import appeng.util.ReadableNumberConverter; import appeng.util.ReadableNumberConverter;
import net.minecraftforge.fluids.FluidStack;
/** /**
@@ -145,23 +143,4 @@ public class TesrRenderHelper
} }
public static void renderFluid2dWithAmount( IAEFluidStack fluidStack, float scale, float spacing )
{
final ItemStack renderStack = fluidStack.asItemStackRepresentation();
TesrRenderHelper.renderItem2d( renderStack, scale );
final long stackSize = fluidStack.getStackSize() / 1000;
final String renderedStackSize = NUMBER_CONVERTER.toWideReadableForm( stackSize ) + "B";
// Render the item count
final FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
final int width = fr.getStringWidth( renderedStackSize );
GlStateManager.translate( 0.0f, spacing, 0 );
GlStateManager.scale( 1.0f / 62.0f, 1.0f / 62.0f, 1.0f / 62.0f );
GlStateManager.translate( -0.5f * width, 0.0f, 0.5f );
fr.drawString( renderedStackSize, 0, 0, 0 );
}
} }
@@ -616,12 +616,7 @@ public final class ApiBlocks implements IBlocks
private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block ) private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block )
{ {
if( !block.maybeBlock().isPresent() ) return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
{
return new BlockDefinition( registryName, null, null );
}
IBlockDefinition stairs = registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
.features( AEFeature.DECORATIVE_BLOCKS ) .features( AEFeature.DECORATIVE_BLOCKS )
.rendering( new BlockRenderingCustomizer() .rendering( new BlockRenderingCustomizer()
{ {
@@ -634,10 +629,6 @@ public final class ApiBlocks implements IBlocks
} }
} ) } )
.build(); .build();
Verify.verify(stairs.maybeBlock().isPresent());
return stairs;
} }
@Override @Override
@@ -171,11 +171,6 @@ public class PacketJEIRecipe extends AppEngPacket
// already the correct item? // already the correct item?
ItemStack newItem = this.canUseInSlot( x, currentItem ); ItemStack newItem = this.canUseInSlot( x, currentItem );
if ( !cct.useRealItems() && this.recipe[x] != null ) {
if (this.recipe[x].length > 0 )
currentItem.setCount( recipe[x][0].getCount() );
}
// put away old item // put away old item
if( newItem != currentItem && security.hasPermission( player, SecurityPermissions.INJECT ) ) if( newItem != currentItem && security.hasPermission( player, SecurityPermissions.INJECT ) )
{ {
@@ -215,7 +210,7 @@ public class PacketJEIRecipe extends AppEngPacket
IAEItemStack mostDamaged = null; IAEItemStack mostDamaged = null;
for( IAEItemStack is : outList ) for( IAEItemStack is : outList )
{ {
if( !is.isCraftable() && is.getItem().isDamageable() ) if( !is.isCraftable() )
{ {
if( mostDamaged == null || mostDamaged.getItemDamage() < is.getItemDamage() ) if( mostDamaged == null || mostDamaged.getItemDamage() < is.getItemDamage() )
{ {
@@ -26,11 +26,10 @@ public class HighlighterHandler
return; return;
} }
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = Minecraft.getMinecraft();
int dimension = mc.world.provider.getDimension();
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
if (time > BlockPosHighlighter.getExpireHilight() || dimension != BlockPosHighlighter.getDimension()) { if (time > BlockPosHighlighter.getExpireHilight()) {
BlockPosHighlighter.hilightBlock(null, -1, BlockPosHighlighter.getDimension() ); BlockPosHighlighter.hilightBlock(null, -1);
return; return;
} }
+36 -23
View File
@@ -100,36 +100,50 @@ public class TickManagerCache implements ITickManager
this.upcomingTicks.poll(); this.upcomingTicks.poll();
final int diff = (int) ( this.currentTick - tt.getLastTick() ); final int diff = (int) ( this.currentTick - tt.getLastTick() );
final TickRateModulation mod = tt.getGridTickable().tickingRequest( tt.getNode(), diff );
switch ( mod ) if( tt.getGridTickable() instanceof PartLevelEmitter )
{
laterTicker.put( tt.getNode(), tt );
} else
{ {
case FASTER:
tt.setCurrentRate( tt.getCurrentRate() - 2 );
break;
case IDLE:
tt.setCurrentRate( tt.getRequest().maxTickRate );
break;
case SAME:
break;
case SLEEP:
this.sleepDevice( tt.getNode() );
break;
case SLOWER:
tt.setCurrentRate( tt.getCurrentRate() + 1 );
break;
case URGENT:
tt.setCurrentRate( 0 );
break;
default:
break;
}
final TickRateModulation mod = tt.getGridTickable().tickingRequest( tt.getNode(), diff );
switch ( mod )
{
case FASTER:
tt.setCurrentRate( tt.getCurrentRate() - 2 );
break;
case IDLE:
tt.setCurrentRate( tt.getRequest().maxTickRate );
break;
case SAME:
break;
case SLEEP:
this.sleepDevice( tt.getNode() );
break;
case SLOWER:
tt.setCurrentRate( tt.getCurrentRate() + 1 );
break;
case URGENT:
tt.setCurrentRate( 0 );
break;
default:
break;
}
}
if( this.awake.containsKey( tt.getNode() ) ) if( this.awake.containsKey( tt.getNode() ) )
{ {
this.addToQueue( tt ); this.addToQueue( tt );
} }
} }
Iterator<Map.Entry<IGridNode, TickTracker>> ltIterator = laterTicker.entrySet().iterator();
while ( ltIterator.hasNext() )
{
Map.Entry<IGridNode, TickTracker> tickTracker = ltIterator.next();
tickTracker.getValue().getGridTickable().tickingRequest( tickTracker.getKey(), 1 );
ltIterator.remove();
}
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
@@ -138,7 +152,6 @@ public class TickManagerCache implements ITickManager
tt.addEntityCrashInfo( crashreportcategory ); tt.addEntityCrashInfo( crashreportcategory );
throw new ReportedException( crashreport ); throw new ReportedException( crashreport );
} }
PartLevelEmitter.wipeCache();
} }
private void addToQueue( final TickTracker tt ) private void addToQueue( final TickTracker tt )
@@ -19,14 +19,15 @@
package appeng.parts.automation; package appeng.parts.automation;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.Random; import java.util.Random;
import appeng.me.Grid; import appeng.api.networking.IGridNode;
import appeng.me.GridNode; import appeng.api.networking.ticking.IGridTickable;
import appeng.util.item.AEItemStack; import appeng.api.networking.ticking.TickRateModulation;
import it.unimi.dsi.fastutil.objects.Object2LongMap; import appeng.api.networking.ticking.TickingRequest;
import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -87,7 +88,7 @@ import appeng.util.Platform;
import appeng.util.inv.InvOperation; import appeng.util.inv.InvOperation;
public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherHost, IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver<IAEItemStack>, ICraftingProvider public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherHost, IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver<IAEItemStack>, ICraftingProvider, IGridTickable
{ {
@PartModels @PartModels
@@ -123,9 +124,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
private double centerX; private double centerX;
private double centerY; private double centerY;
private double centerZ; private double centerZ;
static Object2LongMap<Grid> gridItemCount = new Object2LongOpenHashMap<>(); private IBaseMonitor<IAEItemStack> changedMonitor;
static Object2ObjectOpenHashMap<Grid, Object2LongMap<AEItemStack>> fuzzyAEItemStackCount = new Object2ObjectOpenHashMap<>();
static Object2ObjectOpenHashMap<Grid, Object2LongMap<AEItemStack>> preciseAEItemStackCount = new Object2ObjectOpenHashMap<>();
@Reflected @Reflected
public PartLevelEmitter( final ItemStack is ) public PartLevelEmitter( final ItemStack is )
@@ -323,91 +322,40 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
} }
private void updateReportingValue( final IMEMonitor<IAEItemStack> monitor ) private void updateReportingValue( final IMEMonitor<IAEItemStack> monitor )
{
updateReportingValue( monitor,null );
}
private void updateReportingValue( final IMEMonitor<IAEItemStack> monitor, Iterable<IAEItemStack> change )
{ {
final IAEItemStack myStack = this.config.getAEStackInSlot( 0 ); final IAEItemStack myStack = this.config.getAEStackInSlot( 0 );
GridNode node = (GridNode) (this.getGridNode()); if( myStack == null )
if( node != null )
{ {
this.lastReportedValue = 0;
final Grid g = node.getInternalGrid(); for( final IAEItemStack st : monitor.getStorageList() )
if( myStack == null )
{ {
if( change != null ) this.lastReportedValue += st.getStackSize();
{
if( gridItemCount.containsKey( g ) )
{
change.forEach( iaeItemStack -> lastReportedValue += iaeItemStack.getStackSize() );
}
}
gridItemCount.computeIfAbsent( g, ( aLong ) -> {
this.lastReportedValue = 0;
monitor.getStorageList().forEach( iaeItemStack -> lastReportedValue += iaeItemStack.getStackSize() );
return ( lastReportedValue );
} );
this.lastReportedValue = gridItemCount.get( g );
} }
}
else if( this.getInstalledUpgrades( Upgrades.FUZZY ) > 0 ) else if( this.getInstalledUpgrades( Upgrades.FUZZY ) > 0 )
{
this.lastReportedValue = 0;
final FuzzyMode fzMode = (FuzzyMode) this.getConfigManager().getSetting( Settings.FUZZY_MODE );
final Collection<IAEItemStack> fuzzyList = monitor.getStorageList().findFuzzy( myStack, fzMode );
for( final IAEItemStack st : fuzzyList )
{ {
final FuzzyMode fzMode = (FuzzyMode) this.getConfigManager().getSetting( Settings.FUZZY_MODE ); this.lastReportedValue += st.getStackSize();
if( change != null ) }
{ }
if( fuzzyAEItemStackCount.containsKey( g ) ) else
{ {
change.forEach( iaeItemStack -> { final IAEItemStack r = monitor.getStorageList().findPrecise( myStack );
if( iaeItemStack.sameOre( myStack ) ) lastReportedValue += iaeItemStack.getStackSize(); if( r == null )
} ); {
} this.lastReportedValue = 0;
}
fuzzyAEItemStackCount.computeIfAbsent( g, ( grid -> new Object2LongOpenHashMap<>() ) );
fuzzyAEItemStackCount.get( g ).computeIfAbsent( (AEItemStack) myStack, ( aLong -> {
this.lastReportedValue = 0;
monitor.getStorageList().findFuzzy( myStack, fzMode ).forEach( iaeItemStack -> lastReportedValue += iaeItemStack.getStackSize() );
return ( lastReportedValue );
} ) );
this.lastReportedValue = fuzzyAEItemStackCount.get( g ).get( myStack );
if( this.lastReportedValue == 0 )
{
fuzzyAEItemStackCount.get( g ).remove( myStack );
fuzzyAEItemStackCount.trim();
}
} }
else else
{ {
if( change != null ) this.lastReportedValue = r.getStackSize();
{
if( preciseAEItemStackCount.containsKey( g ) )
{
change.forEach( iaeItemStack -> {
if( iaeItemStack.isSameType( myStack ) ) lastReportedValue += iaeItemStack.getStackSize();
} );
}
}
preciseAEItemStackCount.computeIfAbsent( g, ( grid -> new Object2LongOpenHashMap<>() ) );
preciseAEItemStackCount.get( g ).computeIfAbsent( (AEItemStack) myStack, ( aLong -> {
this.lastReportedValue = 0;
IAEItemStack precise = monitor.getStorageList().findPrecise( myStack );
if( precise != null ) lastReportedValue = precise.getStackSize();
return ( lastReportedValue );
} ) );
this.lastReportedValue = preciseAEItemStackCount.get( g ).get( myStack );
if( this.lastReportedValue == 0 )
{
preciseAEItemStackCount.get( g ).remove( myStack );
preciseAEItemStackCount.trim();
}
} }
} }
this.updateState(); this.updateState();
} }
@@ -459,7 +407,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
@Override @Override
public void postChange( final IBaseMonitor<IAEItemStack> monitor, final Iterable<IAEItemStack> change, final IActionSource actionSource ) public void postChange( final IBaseMonitor<IAEItemStack> monitor, final Iterable<IAEItemStack> change, final IActionSource actionSource )
{ {
this.updateReportingValue( (IMEMonitor<IAEItemStack>) monitor, change ); this.changedMonitor = monitor;
} }
@Override @Override
@@ -636,9 +584,21 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
} }
} }
public static void wipeCache(){ @Nonnull
fuzzyAEItemStackCount.clear(); @Override
preciseAEItemStackCount.clear(); public TickingRequest getTickingRequest( @Nonnull IGridNode node )
gridItemCount.clear(); {
return new TickingRequest( 1,1,false,false );
}
@Nonnull
@Override
public TickRateModulation tickingRequest( @Nonnull IGridNode node, int ticksSinceLastCall )
{
if (this.changedMonitor != null)
{
this.updateReportingValue((IMEMonitor<IAEItemStack>) changedMonitor);
}
return TickRateModulation.URGENT;
} }
} }
@@ -21,10 +21,6 @@ package appeng.parts.reporting;
import java.io.IOException; import java.io.IOException;
import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.storage.data.IAEFluidStack;
import appeng.fluids.util.AEFluidStack;
import appeng.util.item.AEStack;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@@ -35,9 +31,6 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandlerItem;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@@ -77,9 +70,7 @@ import appeng.util.item.AEItemStack;
public abstract class AbstractPartMonitor extends AbstractPartDisplay implements IPartStorageMonitor, IStackWatcherHost public abstract class AbstractPartMonitor extends AbstractPartDisplay implements IPartStorageMonitor, IStackWatcherHost
{ {
private static final IWideReadableNumberConverter NUMBER_CONVERTER = ReadableNumberConverter.INSTANCE; private static final IWideReadableNumberConverter NUMBER_CONVERTER = ReadableNumberConverter.INSTANCE;
private IAEItemStack configuredItem; private IAEItemStack configuredItem;
private IAEFluidStack configuredFluid;
private String lastHumanReadableText; private String lastHumanReadableText;
private boolean isLocked; private boolean isLocked;
private IStackWatcher myWatcher; private IStackWatcher myWatcher;
@@ -99,9 +90,6 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
final NBTTagCompound myItem = data.getCompoundTag( "configuredItem" ); final NBTTagCompound myItem = data.getCompoundTag( "configuredItem" );
this.configuredItem = AEItemStack.fromNBT( myItem ); this.configuredItem = AEItemStack.fromNBT( myItem );
final NBTTagCompound myFluid = data.getCompoundTag( "configuredFluid" );
this.configuredFluid = AEFluidStack.fromNBT( myFluid );
} }
@Override @Override
@@ -116,15 +104,8 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
{ {
this.configuredItem.writeToNBT( myItem ); this.configuredItem.writeToNBT( myItem );
} }
final NBTTagCompound myFluid = new NBTTagCompound();
if( this.configuredFluid != null )
{
this.configuredFluid.writeToNBT( myFluid );
}
data.setTag( "configuredItem", myItem ); data.setTag( "configuredItem", myItem );
data.setTag( "configuredFluid", myFluid );
} }
@Override @Override
@@ -133,17 +114,11 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
super.writeToStream( data ); super.writeToStream( data );
data.writeBoolean( this.isLocked ); data.writeBoolean( this.isLocked );
//is configured data.writeBoolean( this.configuredItem != null );
data.writeBoolean( this.configuredItem != null);
data.writeBoolean( this.configuredFluid != null);
if( this.configuredItem != null ) if( this.configuredItem != null )
{ {
this.configuredItem.writeToPacket( data ); this.configuredItem.writeToPacket( data );
} }
else if( this.configuredFluid != null )
{
this.configuredFluid.writeToPacket( data );
}
} }
@Override @Override
@@ -156,22 +131,14 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
this.isLocked = isLocked; this.isLocked = isLocked;
final boolean isItem = data.readBoolean(); final boolean val = data.readBoolean();
final boolean isFluid = data.readBoolean(); if( val )
if( isItem )
{ {
this.configuredItem = AEItemStack.fromPacket( data ); this.configuredItem = AEItemStack.fromPacket( data );
this.configuredFluid = null;
}
else if( isFluid )
{
this.configuredFluid = AEFluidStack.fromPacket( data );
this.configuredItem = null;
} }
else else
{ {
this.configuredItem = null; this.configuredItem = null;
this.configuredFluid = null;
} }
return needRedraw; return needRedraw;
@@ -198,25 +165,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
if( !this.isLocked ) if( !this.isLocked )
{ {
final ItemStack eq = player.getHeldItem( hand ); final ItemStack eq = player.getHeldItem( hand );
FluidStack fluidInTank = null; this.configuredItem = AEItemStack.fromItemStack( eq );
if( eq.hasCapability( CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null ) )
{
IFluidHandlerItem fluidHandlerItem = ( eq.getCapability( CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null ) );
fluidInTank = fluidHandlerItem.drain( Integer.MAX_VALUE, false );
}
if (fluidInTank == null)
{
this.configuredFluid = null;
this.configuredItem = AEItemStack.fromItemStack( eq );
}
else if( fluidInTank.amount > 0 )
{
this.configuredFluid = AEFluidStack.fromFluidStack( fluidInTank );
this.configuredItem = null;
}
this.configureWatchers(); this.configureWatchers();
this.getHost().markForSave(); this.getHost().markForSave();
this.getHost().markForUpdate(); this.getHost().markForUpdate();
@@ -278,16 +227,6 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
this.updateReportingValue( this.updateReportingValue(
this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) );
} }
else if ( this.configuredFluid != null )
{
if( this.myWatcher != null )
{
this.myWatcher.add( this.configuredFluid );
}
this.updateReportingValue(
this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) );
}
} }
catch( final GridAccessException e ) catch( final GridAccessException e )
{ {
@@ -295,12 +234,11 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
} }
} }
private <T extends IAEStack<T>> void updateReportingValue ( final IMEMonitor<T> monitor ) private void updateReportingValue( final IMEMonitor<IAEItemStack> itemInventory )
{ {
if( this.configuredItem != null )
if( this.configuredItem != null)
{ {
final IAEItemStack result = (IAEItemStack) monitor.getStorageList().findPrecise( (T) this.configuredItem ); final IAEItemStack result = itemInventory.getStorageList().findPrecise( this.configuredItem );
if( result == null ) if( result == null )
{ {
this.configuredItem.setStackSize( 0 ); this.configuredItem.setStackSize( 0 );
@@ -310,18 +248,6 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
this.configuredItem.setStackSize( result.getStackSize() ); this.configuredItem.setStackSize( result.getStackSize() );
} }
} }
else if( this.configuredFluid != null)
{
final IAEFluidStack result = (IAEFluidStack) monitor.getStorageList().findPrecise( (T) this.configuredFluid );
if( result == null )
{
this.configuredFluid.setStackSize( 0 );
}
else
{
this.configuredFluid.setStackSize( result.getStackSize() );
}
}
} }
@Override @Override
@@ -334,7 +260,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
return; return;
} }
IAEStack<?> ais = this.getDisplayed(); final IAEItemStack ais = this.getDisplayed();
if( ais == null ) if( ais == null )
{ {
@@ -348,10 +274,8 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
TesrRenderHelper.moveToFace( facing ); TesrRenderHelper.moveToFace( facing );
TesrRenderHelper.rotateToFace( facing, this.getSpin() ); TesrRenderHelper.rotateToFace( facing, this.getSpin() );
if (ais instanceof IAEItemStack) TesrRenderHelper.renderItem2dWithAmount( ais, 0.8f, 0.17f );
TesrRenderHelper.renderItem2dWithAmount( (IAEItemStack) ais, 0.8f, 0.17f );
if (ais instanceof IAEFluidStack)
TesrRenderHelper.renderFluid2dWithAmount( (IAEFluidStack) ais, 0.8f, 0.17f );
GlStateManager.popMatrix(); GlStateManager.popMatrix();
} }
@@ -363,13 +287,9 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
} }
@Override @Override
public IAEStack<?> getDisplayed() public IAEItemStack getDisplayed()
{ {
if (this.configuredItem != null)
return this.configuredItem; return this.configuredItem;
else if (this.configuredFluid != null)
return this.configuredFluid;
return null;
} }
@Override @Override
@@ -402,26 +322,6 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
final long stackSize = this.configuredItem.getStackSize(); final long stackSize = this.configuredItem.getStackSize();
final String humanReadableText = NUMBER_CONVERTER.toWideReadableForm( stackSize ); final String humanReadableText = NUMBER_CONVERTER.toWideReadableForm( stackSize );
if( !humanReadableText.equals( this.lastHumanReadableText ) )
{
this.lastHumanReadableText = humanReadableText;
this.getHost().markForUpdate();
}
}
else if( this.configuredFluid != null )
{
if( fullStack == null )
{
this.configuredFluid.setStackSize( 0 );
}
else
{
this.configuredFluid.setStackSize( fullStack.getStackSize() );
}
final long stackSize = this.configuredFluid.getStackSize() / 1000;
final String humanReadableText = NUMBER_CONVERTER.toWideReadableForm( stackSize ) + "B";
if( !humanReadableText.equals( this.lastHumanReadableText ) ) if( !humanReadableText.equals( this.lastHumanReadableText ) )
{ {
this.lastHumanReadableText = humanReadableText; this.lastHumanReadableText = humanReadableText;
@@ -19,31 +19,15 @@
package appeng.parts.reporting; package appeng.parts.reporting;
import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects;
import appeng.api.config.Actionable;
import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IAEStack;
import appeng.core.AELog;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketInventoryAction;
import appeng.fluids.util.AEFluidStack;
import appeng.helpers.InventoryAction;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandlerItem;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.PlayerMainInvWrapper; import net.minecraftforge.items.wrapper.PlayerMainInvWrapper;
@@ -108,13 +92,6 @@ public class PartConversionMonitor extends AbstractPartMonitor
} }
final ItemStack eq = player.getHeldItem( hand ); final ItemStack eq = player.getHeldItem( hand );
FluidStack fluidInTank = null;
if( eq.hasCapability( CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null ) )
{
IFluidHandlerItem fluidHandlerItem = ( eq.getCapability( CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null ) );
fluidInTank = fluidHandlerItem.drain( Integer.MAX_VALUE, false );
}
if( this.isLocked() ) if( this.isLocked() )
{ {
if( eq.isEmpty() ) if( eq.isEmpty() )
@@ -126,49 +103,18 @@ public class PartConversionMonitor extends AbstractPartMonitor
// wrench it // wrench it
return super.onPartActivate( player, hand, pos ); return super.onPartActivate( player, hand, pos );
} }
else if( fluidInTank != null && fluidInTank.amount > 0 )
{
if( this.getDisplayed() != null && getDisplayed().equals( AEFluidStack.fromFluidStack( fluidInTank ) ) )
{
this.drainFluidContainer( player, hand );
}
}
else else
{ {
this.insertItem( player, hand, false ); this.insertItem( player, hand, false );
} }
} }
else if( this.getDisplayed() != null && this.getDisplayed().equals( eq ) )
//If its a fluid container, grab its fluidstack. if its empty pass its itemstack;
if (eq.isEmpty()){
return super.onPartActivate( player, hand, pos );
}
if( fluidInTank != null && fluidInTank.amount > 0 )
{ {
if( getDisplayed() instanceof IAEItemStack || getDisplayed() == null ) this.insertItem( player, hand, false );
{
return super.onPartActivate( player, hand, pos );
}
if( ( (IAEFluidStack) this.getDisplayed() ).equals( AEFluidStack.fromFluidStack( fluidInTank ) ) )
{
this.drainFluidContainer( player, hand );
}
else {
return super.onPartActivate( player, hand, pos );
}
} }
else else
{ {
if( getDisplayed() instanceof IAEFluidStack || getDisplayed() == null ) return super.onPartActivate( player, hand, pos );
{
return super.onPartActivate( player, hand, pos );
}
if( ( (IAEItemStack) this.getDisplayed() ).equals( eq ) )
{
this.insertItem( player, hand, false );
}
} }
return true; return true;
@@ -192,14 +138,9 @@ public class PartConversionMonitor extends AbstractPartMonitor
return false; return false;
} }
ItemStack eq = player.getHeldItem( hand ); if( this.getDisplayed() != null )
if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEItemStack )
{ {
this.extractItem( player, ( (IAEItemStack) this.getDisplayed() ).getDefinition().getMaxStackSize() ); this.extractItem( player, this.getDisplayed().getDefinition().getMaxStackSize() );
}
else if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEFluidStack )
{
this.fillFluidContainer( player,hand );
} }
return true; return true;
@@ -242,9 +183,9 @@ public class PartConversionMonitor extends AbstractPartMonitor
if( allItems ) if( allItems )
{ {
if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEItemStack) if( this.getDisplayed() != null )
{ {
final IAEItemStack input = (IAEItemStack) this.getDisplayed().copy(); final IAEItemStack input = this.getDisplayed().copy();
IItemHandler inv = new PlayerMainInvWrapper( player.inventory ); IItemHandler inv = new PlayerMainInvWrapper( player.inventory );
for( int x = 0; x < inv.getSlots(); x++ ) for( int x = 0; x < inv.getSlots(); x++ )
@@ -280,9 +221,7 @@ public class PartConversionMonitor extends AbstractPartMonitor
private void extractItem( final EntityPlayer player, int count ) private void extractItem( final EntityPlayer player, int count )
{ {
if (!(this.getDisplayed() instanceof IAEItemStack)) final IAEItemStack input = this.getDisplayed();
return;
final IAEItemStack input = (IAEItemStack) this.getDisplayed();
if( input != null ) if( input != null )
{ {
try try
@@ -326,141 +265,6 @@ public class PartConversionMonitor extends AbstractPartMonitor
} }
} }
private void drainFluidContainer( final EntityPlayer player, final EnumHand hand ) {
try
{
final ItemStack held = player.getHeldItem( hand );
if( held.getCount() != 1 )
{
// only support stacksize 1 for now
return;
}
final IFluidHandlerItem fh = FluidUtil.getFluidHandler( held );
if( fh == null )
{
// only fluid handlers items
return;
}
// See how much we can drain from the item
final FluidStack extract = fh.drain( Integer.MAX_VALUE, false );
if( extract == null || extract.amount < 1 )
{
return;
}
// Check if we can push into the system
final IEnergySource energy = this.getProxy().getEnergy();
final IMEMonitor<IAEFluidStack> cell = this.getProxy()
.getStorage()
.getInventory(
AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) );
final IAEFluidStack notStorable = Platform.poweredInsert( energy, cell, AEFluidStack.fromFluidStack( extract ), new PlayerSource( player, this ), Actionable.SIMULATE );
if( notStorable != null && notStorable.getStackSize() > 0 )
{
final int toStore = (int) ( extract.amount - notStorable.getStackSize() );
final FluidStack storable = fh.drain( toStore, false );
if( storable == null || storable.amount == 0 )
{
return;
}
else
{
extract.amount = storable.amount;
}
}
// Actually drain
final FluidStack drained = fh.drain( extract, true );
extract.amount = drained.amount;
final IAEFluidStack notInserted = Platform.poweredInsert( energy, cell, AEFluidStack.fromFluidStack( extract ), new PlayerSource( player, this ) );
if( notInserted != null && notInserted.getStackSize() > 0 )
{
AELog.error( "Fluid item [%s] reported a different possible amount to drain than it actually provided.", held.getDisplayName() );
}
player.setHeldItem( hand, fh.getContainer() );
}
catch( GridAccessException e )
{
e.printStackTrace();
}
}
private void fillFluidContainer( final EntityPlayer player, final EnumHand hand )
{
try
{
final ItemStack held = player.getHeldItem( hand );
if( held.getCount() != 1 )
{
// only support stacksize 1 for now
return;
}
final IFluidHandlerItem fh = FluidUtil.getFluidHandler( held );
if( fh == null )
{
// only fluid handlers items
return;
}
final IAEFluidStack stack = (IAEFluidStack) this.getDisplayed().copy();
// Check how much we can store in the item
stack.setStackSize( Integer.MAX_VALUE );
int amountAllowed = fh.fill( stack.getFluidStack(), false );
stack.setStackSize( amountAllowed );
// Check if we can pull out of the system
final IEnergySource energy = this.getProxy().getEnergy();
final IMEMonitor<IAEFluidStack> cell = this.getProxy()
.getStorage()
.getInventory(
AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) );
final IAEFluidStack canPull = Platform.poweredExtraction( energy, cell, stack, new PlayerSource( player, this ), Actionable.SIMULATE );
if( canPull == null || canPull.getStackSize() < 1 )
{
return;
}
// How much could fit into the container
final int canFill = fh.fill( canPull.getFluidStack(), false );
if( canFill == 0 )
{
return;
}
// Now actually pull out of the system
stack.setStackSize( canFill );
final IAEFluidStack pulled = Platform.poweredExtraction( energy, cell, stack, new PlayerSource( player, this ) );
if( pulled == null || pulled.getStackSize() < 1 )
{
// Something went wrong
AELog.error( "Unable to pull fluid out of the ME system even though the simulation said yes " );
return;
}
// Actually fill
final int used = fh.fill( pulled.getFluidStack(), true );
if( used != canFill )
{
AELog.error( "Fluid item [%s] reported a different possible amount than it actually accepted.", held.getDisplayName() );
}
player.setHeldItem( hand, fh.getContainer() );
}
catch( GridAccessException e )
{
e.printStackTrace();
}
}
@Override @Override
public IPartModel getStaticModels() public IPartModel getStaticModels()
{ {
@@ -1,36 +0,0 @@
package appeng.recipes.factories.conditions;
import appeng.core.Api;
import appeng.core.AppEng;
import com.google.gson.JsonObject;
import net.minecraft.util.JsonUtils;
import net.minecraftforge.common.crafting.IConditionFactory;
import net.minecraftforge.common.crafting.JsonContext;
import java.util.function.BooleanSupplier;
public class PartExists implements IConditionFactory {
private static final String JSON_MATERIAL_KEY = "part";
@Override
public BooleanSupplier parse(JsonContext jsonContext, JsonObject jsonObject )
{
final boolean result;
if( JsonUtils.isString( jsonObject, JSON_MATERIAL_KEY ) )
{
final String part = JsonUtils.getString( jsonObject, JSON_MATERIAL_KEY );
final Object item = Api.INSTANCE.registries().recipes().resolveItem( AppEng.MOD_ID, part );
result = item != null;
}
else
{
result = false;
}
return () -> result;
}
}
@@ -1,25 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,11 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 1
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:material", "item": "appliedenergistics2:material",
@@ -1,20 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 1
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:charger" "item": "appliedenergistics2:charger"
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_compass"
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:sky_compass" "item": "appliedenergistics2:sky_compass"
@@ -1,35 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:controller" "item": "appliedenergistics2:controller"
@@ -1,61 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:crafting_storage_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:crafting_storage_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:crafting_storage_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:crafting_storage_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 360
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 340
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:crafting_storage_64k" "item": "appliedenergistics2:crafting_storage_64k"
@@ -1,40 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 360
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,33 +1,7 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:facade"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:facade", "item": "appliedenergistics2:facade"
"nbt": "{item:\"minecraft:stone\"}"
}, },
"title": { "title": {
"translate": "achievement.ae2.Facade" "translate": "achievement.ae2.Facade"
@@ -1,20 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:material", "item": "appliedenergistics2:material",
@@ -1,24 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_growth_accelerator"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:quartz_growth_accelerator" "item": "appliedenergistics2:quartz_growth_accelerator"
@@ -1,29 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:interface"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:interface" "item": "appliedenergistics2:interface"
@@ -1,50 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:io_port"
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:io_port" "item": "appliedenergistics2:io_port"
@@ -1,25 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,25 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,25 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,39 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:network_tool"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:network_tool" "item": "appliedenergistics2:network_tool"
@@ -1,30 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 460
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -44,8 +18,8 @@
"conditions": { "conditions": {
"items": [ "items": [
{ {
"item": "appliedenergistics2:part", "type": "appliedenergistics2:part",
"data": 460 "part": "P2P_TUNNEL_ME"
} }
] ]
} }
@@ -1,45 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 360
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 340
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,55 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:portable_cell"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:portable_cell" "item": "appliedenergistics2:portable_cell"
@@ -1,31 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:material", "item": "appliedenergistics2:material",
@@ -1,34 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 460
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quantum_link"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:quantum_link" "item": "appliedenergistics2:quantum_link"
@@ -1,59 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:io_port"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:spatial_io_port"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:spatial_storage_cell_128_cubed" "item": "appliedenergistics2:spatial_storage_cell_128_cubed"
@@ -1,59 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:io_port"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:spatial_io_port"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:spatial_io_port" "item": "appliedenergistics2:spatial_io_port"
@@ -1,34 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:charger"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 7
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 16
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:interface"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:part",
"data": 220
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:part", "item": "appliedenergistics2:part",
@@ -1,51 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_1k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_4k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_16k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:storage_cell_64k"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 13
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 14
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 15
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:material",
"data": 19
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:controller"
}
]
}
],
"display": { "display": {
"icon": { "icon": {
"item": "appliedenergistics2:storage_cell_64k" "item": "appliedenergistics2:storage_cell_64k"
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.fluix_dust"
}
],
"type": "appliedenergistics2:grinder", "type": "appliedenergistics2:grinder",
"input": { "input": {
"type": "forge:ore_dict", "type": "forge:ore_dict",
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_block"
}
],
"type": "appliedenergistics2:grinder", "type": "appliedenergistics2:grinder",
"input": { "input": {
"item": "appliedenergistics2:sky_stone_block" "item": "appliedenergistics2:sky_stone_block"
@@ -1,23 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.engineering_processor"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.engineering_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_print"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "press", "mode": "press",
"result": { "result": {
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor_press"
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,23 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor_press"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.purified_certus_quartz_crystal"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,23 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_print"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "press", "mode": "press",
"result": { "result": {
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.engineering_processor_press"
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.engineering_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.engineering_processor_press"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,23 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_print"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "press", "mode": "press",
"result": { "result": {
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor_press"
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor_press"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_press"
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_print"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon_press"
}
]
}
],
"type": "appliedenergistics2:inscriber", "type": "appliedenergistics2:inscriber",
"mode": "inscribe", "mode": "inscribe",
"result": { "result": {
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.flour"
}
],
"type": "appliedenergistics2:smelt", "type": "appliedenergistics2:smelt",
"result": { "result": {
"item": "minecraft:bread" "item": "minecraft:bread"
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.silicon"
}
],
"type": "appliedenergistics2:smelt", "type": "appliedenergistics2:smelt",
"result": { "result": {
"part": "material.silicon" "part": "material.silicon"
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_block"
}
]
}
],
"type": "appliedenergistics2:smelt", "type": "appliedenergistics2:smelt",
"result": { "result": {
"item": "appliedenergistics2:smooth_sky_stone_block" "item": "appliedenergistics2:smooth_sky_stone_block"
@@ -1,8 +1,7 @@
{ {
"conditions": { "conditions": {
"material_exists": "appeng.recipes.factories.conditions.MaterialExists", "material_exists": "appeng.recipes.factories.conditions.MaterialExists",
"features": "appeng.recipes.factories.conditions.Features", "features": "appeng.recipes.factories.conditions.Features"
"part_exists": "appeng.recipes.factories.conditions.PartExists"
}, },
"ingredients": { "ingredients": {
"part": "appeng.recipes.factories.ingredients.PartIngredientFactory" "part": "appeng.recipes.factories.ingredients.PartIngredientFactory"
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_block" "item": "appliedenergistics2:quartz_block"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.purified_certus_quartz_crystal"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_block" "item": "appliedenergistics2:quartz_block"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_pillar", "item": "appliedenergistics2:quartz_pillar",
"count": 2 "count": 2
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_block"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:chiseled_quartz_block", "item": "appliedenergistics2:chiseled_quartz_block",
"count": 2 "count": 2
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_block"
}
],
"result": { "result": {
"item": "appliedenergistics2:fluix_block" "item": "appliedenergistics2:fluix_block"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_block"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.purified_fluix_crystal"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:fluix_block" "item": "appliedenergistics2:fluix_block"
}, },
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:light_detector"
}
],
"result": { "result": {
"item": "appliedenergistics2:light_detector" "item": "appliedenergistics2:light_detector"
}, },
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "appliedenergistics2:material_exists",
"material": "material.purified_nether_quartz_crystal"
}
],
"result": { "result": {
"item": "minecraft:quartz_block", "item": "minecraft:quartz_block",
"data": 0 "data": 0
@@ -1,20 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_fixture"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.certus_quartz_crystal_charged"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_fixture", "item": "appliedenergistics2:quartz_fixture",
"count": 2 "count": 2
@@ -1,10 +1,4 @@
{ {
"conditions": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_glass"
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_glass", "item": "appliedenergistics2:quartz_glass",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_vibrant_glass"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_glass"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_vibrant_glass" "item": "appliedenergistics2:quartz_vibrant_glass"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_brick" "item": "appliedenergistics2:sky_stone_brick"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_small_brick" "item": "appliedenergistics2:sky_stone_small_brick"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:smooth_sky_stone_block" "item": "appliedenergistics2:smooth_sky_stone_block"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:chiseled_quartz_slab", "item": "appliedenergistics2:chiseled_quartz_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:fluix_slab", "item": "appliedenergistics2:fluix_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_slab", "item": "appliedenergistics2:quartz_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_pillar_slab", "item": "appliedenergistics2:quartz_pillar_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_slab", "item": "appliedenergistics2:sky_stone_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_brick_slab", "item": "appliedenergistics2:sky_stone_brick_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_small_brick_slab", "item": "appliedenergistics2:sky_stone_small_brick_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_slab"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:smooth_sky_stone_slab", "item": "appliedenergistics2:smooth_sky_stone_slab",
"data": 0, "data": 0,
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:chiseled_quartz_stairs", "item": "appliedenergistics2:chiseled_quartz_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:fluix_stairs", "item": "appliedenergistics2:fluix_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_stairs", "item": "appliedenergistics2:quartz_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:quartz_pillar_stairs", "item": "appliedenergistics2:quartz_pillar_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_stairs", "item": "appliedenergistics2:sky_stone_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_brick_stairs", "item": "appliedenergistics2:sky_stone_brick_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_small_brick"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_small_brick_stairs", "item": "appliedenergistics2:sky_stone_small_brick_stairs",
"count": 4 "count": 4
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_stairs"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:smooth_sky_stone_stairs", "item": "appliedenergistics2:smooth_sky_stone_stairs",
"count": 4 "count": 4
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.advanced_card"
{
"type": "appliedenergistics2:material_exists",
"material": "material.advanced_card"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.annihilation_core"
{
"type": "appliedenergistics2:material_exists",
"material": "material.annihilation_core"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.basic_card"
{
"type": "appliedenergistics2:material_exists",
"material": "material.calculation_processor"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.basic_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_capacity"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_capacity"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.basic_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_crafting"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_crafting"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.basic_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_fuzzy"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_fuzzy"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.advanced_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_inverter"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_inverter"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.advanced_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_redstone"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_redstone"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.basic_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.card_speed"
{
"type": "appliedenergistics2:material_exists",
"material": "material.card_speed"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.advanced_card"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.formation_core"
{
"type": "appliedenergistics2:material_exists",
"material": "material.formation_core"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.logic_processor"
}
]
} }
], ],
"result": { "result": {
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_chest"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:sky_stone_block"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:sky_stone_chest" "item": "appliedenergistics2:sky_stone_chest"
}, },
@@ -1,19 +1,4 @@
{ {
"conditions": [
{
"type": "forge:and",
"values": [
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_block"
},
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:smooth_sky_stone_chest"
}
]
}
],
"result": { "result": {
"item": "appliedenergistics2:smooth_sky_stone_chest" "item": "appliedenergistics2:smooth_sky_stone_chest"
}, },
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.certus_quartz_crystal"
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:chiseled_quartz_block"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.certus_quartz_crystal"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.certus_quartz_crystal"
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_block"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.certus_quartz_crystal"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.certus_quartz_crystal"
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:quartz_pillar"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.certus_quartz_crystal"
}
]
} }
], ],
"result": { "result": {
@@ -1,17 +1,8 @@
{ {
"conditions": [ "conditions": [
{ {
"type": "forge:and", "type": "appliedenergistics2:material_exists",
"values": [ "material": "material.fluix_crystal"
{
"type": "minecraft:item_exists",
"item": "appliedenergistics2:fluix_block"
},
{
"type": "appliedenergistics2:material_exists",
"material": "material.fluix_crystal"
}
]
} }
], ],
"result": { "result": {

Some files were not shown because too many files have changed in this diff Show More