Added all the crafting cpu "blocks" - needs textures and renders.

Updated API
This commit is contained in:
AlgorithmX2
2014-05-10 00:00:02 -05:00
parent f031972fcd
commit 08d6942643
22 changed files with 306 additions and 70 deletions
+51
View File
@@ -1,12 +1,58 @@
package appeng.tile.crafting;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import appeng.api.AEApi;
import appeng.me.cluster.IAECluster;
import appeng.me.cluster.IAEMultiBlock;
import appeng.tile.AEBaseTile;
import appeng.tile.events.AETileEventHandler;
import appeng.tile.events.TileEventType;
public class TileCraftingTile extends AEBaseTile implements IAEMultiBlock
{
private long storageBytes = 0;
public TileCraftingTile() {
addNewHandler( new AETileEventHandler( TileEventType.NETWORK, TileEventType.WORLD_NBT ) {
public void writeToNBT(NBTTagCompound data)
{
if ( storageBytes > 0 )
data.setLong( "bytes", storageBytes );
}
public void readFromNBT(NBTTagCompound data)
{
storageBytes = data.getLong( "bytes" );
}
public boolean readFromStream(io.netty.buffer.ByteBuf data) throws java.io.IOException
{
storageBytes = data.readLong();
return false;
}
public void writeToStream(io.netty.buffer.ByteBuf data) throws java.io.IOException
{
data.writeLong( storageBytes );
}
} );
}
@Override
public void onPlacement(ItemStack stack, EntityPlayer player, int side)
{
if ( AEApi.instance().blocks().blockCraftingStorage.sameAsStack( stack ) && stack.hasTagCompound() )
{
NBTTagCompound data = stack.getTagCompound();
storageBytes = data.getLong( "bytes" );
}
}
@Override
public void disconnect()
{
@@ -28,4 +74,9 @@ public class TileCraftingTile extends AEBaseTile implements IAEMultiBlock
return false;
}
public long getStorageBytes()
{
return storageBytes;
}
}
+5 -5
View File
@@ -127,7 +127,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
tickTickTimer = 20; // keep tickin...
}
}
else if ( internalCurrentPower > 1499 && AEApi.instance().materials().materialCertusQuartzCrystal.sameAs( myItem ) )
else if ( internalCurrentPower > 1499 && AEApi.instance().materials().materialCertusQuartzCrystal.sameAsStack( myItem ) )
{
if ( Platform.getRandomFloat() > 0.8f ) // simulate wait
{
@@ -167,7 +167,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
injectExternalPower( PowerUnits.AE, 150 );
ItemStack myItem = getStackInSlot( 0 );
if ( internalCurrentPower > 1499 && AEApi.instance().materials().materialCertusQuartzCrystal.sameAs( myItem ) )
if ( internalCurrentPower > 1499 && AEApi.instance().materials().materialCertusQuartzCrystal.sameAsStack( myItem ) )
{
extractAEPower( internalMaxPower, Actionable.MODULATE, PowerMultiplier.CONFIG );// 1500
setInventorySlotContents( 0, AEApi.instance().materials().materialCertusQuartzCrystalCharged.stack( myItem.stackSize ) );
@@ -207,7 +207,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack)
{
return Platform.isChargeable( itemstack ) || AEApi.instance().materials().materialCertusQuartzCrystal.sameAs( itemstack );
return Platform.isChargeable( itemstack ) || AEApi.instance().materials().materialCertusQuartzCrystal.sameAsStack( itemstack );
}
@Override
@@ -220,7 +220,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
return true;
}
return AEApi.instance().materials().materialCertusQuartzCrystalCharged.sameAs( itemstack );
return AEApi.instance().materials().materialCertusQuartzCrystalCharged.sameAsStack( itemstack );
}
public void activate(EntityPlayer player)
@@ -232,7 +232,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
if ( myItem == null )
{
ItemStack held = player.inventory.getCurrentItem();
if ( AEApi.instance().materials().materialCertusQuartzCrystal.sameAs( held ) || Platform.isChargeable( held ) )
if ( AEApi.instance().materials().materialCertusQuartzCrystal.sameAsStack( held ) || Platform.isChargeable( held ) )
{
held = player.inventory.decrStackSize( player.inventory.currentItem, 1 );
setInventorySlotContents( 0, held );
+3 -3
View File
@@ -178,7 +178,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable
if ( i == 0 || i == 1 )
{
if ( AEApi.instance().materials().materialNamePress.sameAs( itemstack ) )
if ( AEApi.instance().materials().materialNamePress.sameAsStack( itemstack ) )
return true;
for (ItemStack s : Inscribe.plates)
@@ -243,8 +243,8 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable
if ( renamedItem != null && renamedItem.stackSize > 1 )
return null;
boolean isNameA = AEApi.instance().materials().materialNamePress.sameAs( PlateA );
boolean isNameB = AEApi.instance().materials().materialNamePress.sameAs( PlateB );
boolean isNameA = AEApi.instance().materials().materialNamePress.sameAsStack( PlateA );
boolean isNameB = AEApi.instance().materials().materialNamePress.sameAsStack( PlateB );
if ( (isNameA || isNameB) && (isNameA || PlateA == null) && (isNameB || PlateB == null) )
{