Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| aa4863a979 | |||
| 44c7a46315 | |||
| c3b1dea7c5 | |||
| 40ec517480 | |||
| 2fdc16d3a8 | |||
| 053485a95a | |||
| e910af7734 | |||
| 59d7bd6c16 | |||
| 1a11462ddd | |||
| 6878bfa4b0 | |||
| f1d50eca1a | |||
| 4ee32dd0b0 | |||
| 66e589324a |
@@ -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() > 0 )
|
if( this.drag_click.size() > 1 )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public class GuiInterfaceTerminal extends AEBaseGui
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
this.getScrollBar().setLeft( 190 );
|
this.getScrollBar().setLeft( 189 );
|
||||||
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(), offsetX, this.ySize - 96 + 3, 4210752 );
|
this.fontRenderer.drawString( GuiText.inventory.getLocal(), this.offsetX + 2, 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, 22, 6 + offset, 4210752 );
|
this.fontRenderer.drawString( name, this.offsetX + 2, 6 + offset, 4210752 );
|
||||||
}
|
}
|
||||||
offset += 18;
|
offset += 18;
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,8 @@ 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();
|
||||||
hilightBlock( blockPos, System.currentTimeMillis() + 500 * BlockPosUtils.getDistance(blockPos, blockPos2) );
|
int dimension = mc.world.provider.getDimension();
|
||||||
|
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,9 +8,14 @@ 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() {
|
||||||
@@ -21,5 +26,9 @@ public class BlockPosHighlighter
|
|||||||
return expireHilight;
|
return expireHilight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getDimension()
|
||||||
|
{
|
||||||
|
return dimension;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
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;
|
||||||
@@ -30,6 +31,7 @@ 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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -143,4 +145,23 @@ 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,7 +616,12 @@ 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 )
|
||||||
{
|
{
|
||||||
return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
|
if( !block.maybeBlock().isPresent() )
|
||||||
|
{
|
||||||
|
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()
|
||||||
{
|
{
|
||||||
@@ -629,6 +634,10 @@ public final class ApiBlocks implements IBlocks
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
Verify.verify(stairs.maybeBlock().isPresent());
|
||||||
|
|
||||||
|
return stairs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -171,6 +171,11 @@ 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 ) )
|
||||||
{
|
{
|
||||||
@@ -210,7 +215,7 @@ public class PacketJEIRecipe extends AppEngPacket
|
|||||||
IAEItemStack mostDamaged = null;
|
IAEItemStack mostDamaged = null;
|
||||||
for( IAEItemStack is : outList )
|
for( IAEItemStack is : outList )
|
||||||
{
|
{
|
||||||
if( !is.isCraftable() )
|
if( !is.isCraftable() && is.getItem().isDamageable() )
|
||||||
{
|
{
|
||||||
if( mostDamaged == null || mostDamaged.getItemDamage() < is.getItemDamage() )
|
if( mostDamaged == null || mostDamaged.getItemDamage() < is.getItemDamage() )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,10 +26,11 @@ 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()) {
|
if (time > BlockPosHighlighter.getExpireHilight() || dimension != BlockPosHighlighter.getDimension()) {
|
||||||
BlockPosHighlighter.hilightBlock(null, -1);
|
BlockPosHighlighter.hilightBlock(null, -1, BlockPosHighlighter.getDimension() );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+23
-36
@@ -100,50 +100,36 @@ 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 );
|
||||||
|
|
||||||
if( tt.getGridTickable() instanceof PartLevelEmitter )
|
switch ( mod )
|
||||||
{
|
{
|
||||||
laterTicker.put( tt.getNode(), tt );
|
case FASTER:
|
||||||
} else
|
tt.setCurrentRate( tt.getCurrentRate() - 2 );
|
||||||
{
|
break;
|
||||||
|
case IDLE:
|
||||||
final TickRateModulation mod = tt.getGridTickable().tickingRequest( tt.getNode(), diff );
|
tt.setCurrentRate( tt.getRequest().maxTickRate );
|
||||||
|
break;
|
||||||
switch ( mod )
|
case SAME:
|
||||||
{
|
break;
|
||||||
case FASTER:
|
case SLEEP:
|
||||||
tt.setCurrentRate( tt.getCurrentRate() - 2 );
|
this.sleepDevice( tt.getNode() );
|
||||||
break;
|
break;
|
||||||
case IDLE:
|
case SLOWER:
|
||||||
tt.setCurrentRate( tt.getRequest().maxTickRate );
|
tt.setCurrentRate( tt.getCurrentRate() + 1 );
|
||||||
break;
|
break;
|
||||||
case SAME:
|
case URGENT:
|
||||||
break;
|
tt.setCurrentRate( 0 );
|
||||||
case SLEEP:
|
break;
|
||||||
this.sleepDevice( tt.getNode() );
|
default:
|
||||||
break;
|
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 )
|
||||||
{
|
{
|
||||||
@@ -152,6 +138,7 @@ 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,15 +19,14 @@
|
|||||||
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.api.networking.IGridNode;
|
import appeng.me.Grid;
|
||||||
import appeng.api.networking.ticking.IGridTickable;
|
import appeng.me.GridNode;
|
||||||
import appeng.api.networking.ticking.TickRateModulation;
|
import appeng.util.item.AEItemStack;
|
||||||
import appeng.api.networking.ticking.TickingRequest;
|
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
||||||
|
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;
|
||||||
@@ -88,7 +87,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, IGridTickable
|
public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherHost, IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver<IAEItemStack>, ICraftingProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
@PartModels
|
@PartModels
|
||||||
@@ -124,7 +123,9 @@ 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;
|
||||||
private IBaseMonitor<IAEItemStack> changedMonitor;
|
static Object2LongMap<Grid> gridItemCount = new Object2LongOpenHashMap<>();
|
||||||
|
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 )
|
||||||
@@ -322,40 +323,91 @@ 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 );
|
||||||
|
|
||||||
if( myStack == null )
|
GridNode node = (GridNode) (this.getGridNode());
|
||||||
|
|
||||||
|
if( node != null )
|
||||||
{
|
{
|
||||||
this.lastReportedValue = 0;
|
|
||||||
for( final IAEItemStack st : monitor.getStorageList() )
|
final Grid g = node.getInternalGrid();
|
||||||
|
|
||||||
|
if( myStack == null )
|
||||||
{
|
{
|
||||||
this.lastReportedValue += st.getStackSize();
|
if( change != null )
|
||||||
|
{
|
||||||
|
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 )
|
|
||||||
{
|
{
|
||||||
this.lastReportedValue += st.getStackSize();
|
final FuzzyMode fzMode = (FuzzyMode) this.getConfigManager().getSetting( Settings.FUZZY_MODE );
|
||||||
}
|
if( change != null )
|
||||||
}
|
{
|
||||||
else
|
if( fuzzyAEItemStackCount.containsKey( g ) )
|
||||||
{
|
{
|
||||||
final IAEItemStack r = monitor.getStorageList().findPrecise( myStack );
|
change.forEach( iaeItemStack -> {
|
||||||
if( r == null )
|
if( iaeItemStack.sameOre( myStack ) ) lastReportedValue += iaeItemStack.getStackSize();
|
||||||
{
|
} );
|
||||||
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
|
||||||
{
|
{
|
||||||
this.lastReportedValue = r.getStackSize();
|
if( change != null )
|
||||||
|
{
|
||||||
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,7 +459,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.changedMonitor = monitor;
|
this.updateReportingValue( (IMEMonitor<IAEItemStack>) monitor, change );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -584,21 +636,9 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
public static void wipeCache(){
|
||||||
@Override
|
fuzzyAEItemStackCount.clear();
|
||||||
public TickingRequest getTickingRequest( @Nonnull IGridNode node )
|
preciseAEItemStackCount.clear();
|
||||||
{
|
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,6 +21,10 @@ 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;
|
||||||
@@ -31,6 +35,9 @@ 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;
|
||||||
|
|
||||||
@@ -70,7 +77,9 @@ 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;
|
||||||
@@ -90,6 +99,9 @@ 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
|
||||||
@@ -104,8 +116,15 @@ 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
|
||||||
@@ -114,11 +133,17 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
super.writeToStream( data );
|
super.writeToStream( data );
|
||||||
|
|
||||||
data.writeBoolean( this.isLocked );
|
data.writeBoolean( this.isLocked );
|
||||||
data.writeBoolean( this.configuredItem != null );
|
//is configured
|
||||||
|
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
|
||||||
@@ -131,14 +156,22 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
|
|
||||||
this.isLocked = isLocked;
|
this.isLocked = isLocked;
|
||||||
|
|
||||||
final boolean val = data.readBoolean();
|
final boolean isItem = data.readBoolean();
|
||||||
if( val )
|
final boolean isFluid = data.readBoolean();
|
||||||
|
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;
|
||||||
@@ -165,7 +198,25 @@ 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 );
|
||||||
this.configuredItem = AEItemStack.fromItemStack( eq );
|
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 (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();
|
||||||
@@ -227,6 +278,16 @@ 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 )
|
||||||
{
|
{
|
||||||
@@ -234,11 +295,12 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateReportingValue( final IMEMonitor<IAEItemStack> itemInventory )
|
private <T extends IAEStack<T>> void updateReportingValue ( final IMEMonitor<T> monitor )
|
||||||
{
|
{
|
||||||
if( this.configuredItem != null )
|
|
||||||
|
if( this.configuredItem != null)
|
||||||
{
|
{
|
||||||
final IAEItemStack result = itemInventory.getStorageList().findPrecise( this.configuredItem );
|
final IAEItemStack result = (IAEItemStack) monitor.getStorageList().findPrecise( (T) this.configuredItem );
|
||||||
if( result == null )
|
if( result == null )
|
||||||
{
|
{
|
||||||
this.configuredItem.setStackSize( 0 );
|
this.configuredItem.setStackSize( 0 );
|
||||||
@@ -248,6 +310,18 @@ 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
|
||||||
@@ -260,7 +334,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final IAEItemStack ais = this.getDisplayed();
|
IAEStack<?> ais = this.getDisplayed();
|
||||||
|
|
||||||
if( ais == null )
|
if( ais == null )
|
||||||
{
|
{
|
||||||
@@ -274,8 +348,10 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
|
|
||||||
TesrRenderHelper.moveToFace( facing );
|
TesrRenderHelper.moveToFace( facing );
|
||||||
TesrRenderHelper.rotateToFace( facing, this.getSpin() );
|
TesrRenderHelper.rotateToFace( facing, this.getSpin() );
|
||||||
TesrRenderHelper.renderItem2dWithAmount( ais, 0.8f, 0.17f );
|
if (ais instanceof IAEItemStack)
|
||||||
|
TesrRenderHelper.renderItem2dWithAmount( (IAEItemStack) ais, 0.8f, 0.17f );
|
||||||
|
if (ais instanceof IAEFluidStack)
|
||||||
|
TesrRenderHelper.renderFluid2dWithAmount( (IAEFluidStack) ais, 0.8f, 0.17f );
|
||||||
GlStateManager.popMatrix();
|
GlStateManager.popMatrix();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -287,9 +363,13 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IAEItemStack getDisplayed()
|
public IAEStack<?> getDisplayed()
|
||||||
{
|
{
|
||||||
|
if (this.configuredItem != null)
|
||||||
return this.configuredItem;
|
return this.configuredItem;
|
||||||
|
else if (this.configuredFluid != null)
|
||||||
|
return this.configuredFluid;
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -322,6 +402,26 @@ 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,15 +19,31 @@
|
|||||||
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;
|
||||||
|
|
||||||
@@ -92,6 +108,13 @@ 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() )
|
||||||
@@ -103,18 +126,49 @@ 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 )
|
||||||
{
|
{
|
||||||
this.insertItem( player, hand, false );
|
if( getDisplayed() instanceof IAEItemStack || getDisplayed() == null )
|
||||||
|
{
|
||||||
|
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
|
||||||
{
|
{
|
||||||
return super.onPartActivate( player, hand, pos );
|
if( getDisplayed() instanceof IAEFluidStack || getDisplayed() == null )
|
||||||
|
{
|
||||||
|
return super.onPartActivate( player, hand, pos );
|
||||||
|
}
|
||||||
|
if( ( (IAEItemStack) this.getDisplayed() ).equals( eq ) )
|
||||||
|
{
|
||||||
|
this.insertItem( player, hand, false );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -138,9 +192,14 @@ public class PartConversionMonitor extends AbstractPartMonitor
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.getDisplayed() != null )
|
ItemStack eq = player.getHeldItem( hand );
|
||||||
|
if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEItemStack )
|
||||||
{
|
{
|
||||||
this.extractItem( player, this.getDisplayed().getDefinition().getMaxStackSize() );
|
this.extractItem( player, ( (IAEItemStack) this.getDisplayed() ).getDefinition().getMaxStackSize() );
|
||||||
|
}
|
||||||
|
else if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEFluidStack )
|
||||||
|
{
|
||||||
|
this.fillFluidContainer( player,hand );
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -183,9 +242,9 @@ public class PartConversionMonitor extends AbstractPartMonitor
|
|||||||
|
|
||||||
if( allItems )
|
if( allItems )
|
||||||
{
|
{
|
||||||
if( this.getDisplayed() != null )
|
if( this.getDisplayed() != null && this.getDisplayed() instanceof IAEItemStack)
|
||||||
{
|
{
|
||||||
final IAEItemStack input = this.getDisplayed().copy();
|
final IAEItemStack input = (IAEItemStack) 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++ )
|
||||||
@@ -221,7 +280,9 @@ public class PartConversionMonitor extends AbstractPartMonitor
|
|||||||
|
|
||||||
private void extractItem( final EntityPlayer player, int count )
|
private void extractItem( final EntityPlayer player, int count )
|
||||||
{
|
{
|
||||||
final IAEItemStack input = this.getDisplayed();
|
if (!(this.getDisplayed() instanceof IAEItemStack))
|
||||||
|
return;
|
||||||
|
final IAEItemStack input = (IAEItemStack) this.getDisplayed();
|
||||||
if( input != null )
|
if( input != null )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -265,6 +326,141 @@ 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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
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,4 +1,25 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:material",
|
||||||
|
"data": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
"display": {
|
"display": {
|
||||||
"icon": {
|
"icon": {
|
||||||
"item": "appliedenergistics2:material",
|
"item": "appliedenergistics2:material",
|
||||||
|
|||||||
@@ -1,4 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:sky_compass"
|
||||||
|
}
|
||||||
|
],
|
||||||
"display": {
|
"display": {
|
||||||
"icon": {
|
"icon": {
|
||||||
"item": "appliedenergistics2:sky_compass"
|
"item": "appliedenergistics2:sky_compass"
|
||||||
|
|||||||
@@ -1,4 +1,35 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,61 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
|
|||||||
+36
@@ -1,4 +1,40 @@
|
|||||||
{
|
{
|
||||||
|
"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,7 +1,33 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
"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",
|
||||||
|
|||||||
+20
@@ -1,4 +1,24 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,29 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,50 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,25 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,25 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,25 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,39 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,30 @@
|
|||||||
{
|
{
|
||||||
|
"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",
|
||||||
@@ -18,8 +44,8 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:part",
|
"item": "appliedenergistics2:part",
|
||||||
"part": "P2P_TUNNEL_ME"
|
"data": 460
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,45 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,55 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,31 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,34 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,59 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,59 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,34 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,51 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
|
|||||||
+19
@@ -1,4 +1,23 @@
|
|||||||
{
|
{
|
||||||
|
"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": {
|
||||||
|
|||||||
+6
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.calculation_processor_press"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:inscriber",
|
"type": "appliedenergistics2:inscriber",
|
||||||
"mode": "inscribe",
|
"mode": "inscribe",
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+19
@@ -1,4 +1,23 @@
|
|||||||
{
|
{
|
||||||
|
"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": {
|
||||||
|
|||||||
+19
@@ -1,4 +1,23 @@
|
|||||||
{
|
{
|
||||||
|
"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": {
|
||||||
|
|||||||
+6
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.engineering_processor_press"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:inscriber",
|
"type": "appliedenergistics2:inscriber",
|
||||||
"mode": "inscribe",
|
"mode": "inscribe",
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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": {
|
||||||
|
|||||||
+19
@@ -1,4 +1,23 @@
|
|||||||
{
|
{
|
||||||
|
"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": {
|
||||||
|
|||||||
+6
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.logic_processor_press"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:inscriber",
|
"type": "appliedenergistics2:inscriber",
|
||||||
"mode": "inscribe",
|
"mode": "inscribe",
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.silicon_press"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:inscriber",
|
"type": "appliedenergistics2:inscriber",
|
||||||
"mode": "inscribe",
|
"mode": "inscribe",
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.flour"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:smelt",
|
"type": "appliedenergistics2:smelt",
|
||||||
"result": {
|
"result": {
|
||||||
"item": "minecraft:bread"
|
"item": "minecraft:bread"
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.silicon"
|
||||||
|
}
|
||||||
|
],
|
||||||
"type": "appliedenergistics2:smelt",
|
"type": "appliedenergistics2:smelt",
|
||||||
"result": {
|
"result": {
|
||||||
"part": "material.silicon"
|
"part": "material.silicon"
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"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"
|
||||||
|
|||||||
+6
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:quartz_block"
|
||||||
|
}
|
||||||
|
],
|
||||||
"result": {
|
"result": {
|
||||||
"item": "appliedenergistics2:quartz_block"
|
"item": "appliedenergistics2:quartz_block"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:fluix_block"
|
||||||
|
}
|
||||||
|
],
|
||||||
"result": {
|
"result": {
|
||||||
"item": "appliedenergistics2:fluix_block"
|
"item": "appliedenergistics2:fluix_block"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:light_detector"
|
||||||
|
}
|
||||||
|
],
|
||||||
"result": {
|
"result": {
|
||||||
"item": "appliedenergistics2:light_detector"
|
"item": "appliedenergistics2:light_detector"
|
||||||
},
|
},
|
||||||
|
|||||||
+6
@@ -1,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:quartz_glass"
|
||||||
|
}
|
||||||
|
],
|
||||||
"result": {
|
"result": {
|
||||||
"item": "appliedenergistics2:quartz_glass",
|
"item": "appliedenergistics2:quartz_glass",
|
||||||
"count": 4
|
"count": 4
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.advanced_card"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.advanced_card"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.calculation_processor"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+11
-2
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.annihilation_core"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.annihilation_core"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.logic_processor"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.basic_card"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.calculation_processor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.basic_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_capacity"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_capacity"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.basic_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_crafting"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_crafting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.basic_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_fuzzy"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_fuzzy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.advanced_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_inverter"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_inverter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.advanced_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_redstone"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_redstone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.basic_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.card_speed"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.card_speed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.advanced_card"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.formation_core"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.formation_core"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.logic_processor"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+15
@@ -1,4 +1,19 @@
|
|||||||
{
|
{
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
+11
-2
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.certus_quartz_crystal"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:chiseled_quartz_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.certus_quartz_crystal"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+11
-2
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.certus_quartz_crystal"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:quartz_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.certus_quartz_crystal"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+11
-2
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.certus_quartz_crystal"
|
"values": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item_exists",
|
||||||
|
"item": "appliedenergistics2:quartz_pillar"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "appliedenergistics2:material_exists",
|
||||||
|
"material": "material.certus_quartz_crystal"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"result": {
|
"result": {
|
||||||
|
|||||||
+11
-2
@@ -1,8 +1,17 @@
|
|||||||
{
|
{
|
||||||
"conditions": [
|
"conditions": [
|
||||||
{
|
{
|
||||||
"type": "appliedenergistics2:material_exists",
|
"type": "forge:and",
|
||||||
"material": "material.fluix_crystal"
|
"values": [
|
||||||
|
{
|
||||||
|
"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
Reference in New Issue
Block a user