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
-19
View File
@@ -1,19 +0,0 @@
package appeng.block.crafting;
import java.util.EnumSet;
import net.minecraft.block.material.Material;
import appeng.block.AEBaseBlock;
import appeng.core.features.AEFeature;
import appeng.tile.crafting.TileCraftingTile;
public class BlockCraftingMonitor extends AEBaseBlock
{
public BlockCraftingMonitor() {
super( BlockCraftingMonitor.class, Material.iron );
setfeature( EnumSet.of( AEFeature.Crafting ) );
setTileEntiy( TileCraftingTile.class );
}
}
-19
View File
@@ -1,19 +0,0 @@
package appeng.block.crafting;
import java.util.EnumSet;
import net.minecraft.block.material.Material;
import appeng.block.AEBaseBlock;
import appeng.core.features.AEFeature;
import appeng.tile.crafting.TileCraftingTile;
public class BlockCraftingStorage extends AEBaseBlock
{
public BlockCraftingStorage() {
super( BlockCraftingStorage.class, Material.iron );
setfeature( EnumSet.of( AEFeature.Crafting ) );
setTileEntiy( TileCraftingTile.class );
}
}
+72
View File
@@ -1,8 +1,16 @@
package appeng.block.crafting;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import appeng.block.AEBaseBlock;
import appeng.core.features.AEFeature;
import appeng.tile.crafting.TileCraftingTile;
@@ -10,10 +18,74 @@ import appeng.tile.crafting.TileCraftingTile;
public class BlockCraftingUnit extends AEBaseBlock
{
public final static int BASE_DAMAGE = 0;
public final static int BASE_MONITOR = 1;
public final static int BASE_STORAGE = 2;
public final static int BASE_ACCELERATOR = 3;
public BlockCraftingUnit() {
super( BlockCraftingUnit.class, Material.iron );
hasSubtypes = true;
setfeature( EnumSet.of( AEFeature.Crafting ) );
setTileEntiy( TileCraftingTile.class );
}
public ItemStack getItemStack(World world, int x, int y, int z)
{
TileCraftingTile ct = getTileEntity( world, x, y, z );
int meta = world.getBlockMetadata( x, y, z );
if ( ct != null && meta == BASE_STORAGE )
{
return createStackForBytes( ct.getStorageBytes() );
}
return new ItemStack( this, 1, meta );
}
private ItemStack createStackForBytes(long storageBytes)
{
ItemStack itemDetails = new ItemStack( this, 1, BASE_STORAGE );
NBTTagCompound tag = new NBTTagCompound();
tag.setLong( "bytes", storageBytes );
itemDetails.setTagCompound( tag );
return itemDetails;
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
{
ArrayList<ItemStack> out = new ArrayList();
ItemStack is = getItemStack( world, x, y, z );
if ( is != null )
out.add( is );
return out;
}
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
{
return getItemStack( world, x, y, z );
}
@Override
public void getSubBlocks(Item i, CreativeTabs c, List l)
{
l.add( new ItemStack( this, 1, BASE_DAMAGE ) );
l.add( new ItemStack( this, 1, BASE_MONITOR ) );
l.add( new ItemStack( this, 1, BASE_ACCELERATOR ) );
l.add( createStackForBytes( 1024 ) );
l.add( createStackForBytes( 1024 * 4 ) );
l.add( createStackForBytes( 1024 * 16 ) );
l.add( createStackForBytes( 1024 * 64 ) );
}
@Override
public Class getItemBlockClass()
{
return ItemBlockCraftingUnit.class;
}
}
+56
View File
@@ -0,0 +1,56 @@
package appeng.block.crafting;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import appeng.block.AEBaseItemBlock;
import appeng.core.localization.GuiText;
public class ItemBlockCraftingUnit extends AEBaseItemBlock
{
public ItemBlockCraftingUnit(Block id) {
super( id );
}
@Override
public String getUnlocalizedName(ItemStack is)
{
switch (is.getItemDamage())
{
case BlockCraftingUnit.BASE_STORAGE:
return "tile.appliedenergistics2.BlockCraftingStorage";
case BlockCraftingUnit.BASE_ACCELERATOR:
return "tile.appliedenergistics2.BlockCraftingAccelerator";
case BlockCraftingUnit.BASE_MONITOR:
return "tile.appliedenergistics2.BlockCraftingMonitor";
}
return super.getUnlocalizedName( is );
}
@Override
public String getItemStackDisplayName(ItemStack is)
{
String name = super.getItemStackDisplayName( is );
long storageBytes = getStorageBytes( is );
if ( storageBytes > 0 )
return name + " - " + GuiText.Stores.getLocal() + " " + (storageBytes / 1024) + "k";
return name;
}
public long getStorageBytes(ItemStack is)
{
NBTTagCompound tag = is.getTagCompound();
if ( tag != null )
{
return tag.getLong( "bytes" );
}
return 0;
}
}
+1 -1
View File
@@ -77,7 +77,7 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
if ( tile instanceof TileCharger )
{
TileCharger tc = (TileCharger) tile;
if ( AEApi.instance().materials().materialCertusQuartzCrystalCharged.sameAs( tc.getStackInSlot( 0 ) ) )
if ( AEApi.instance().materials().materialCertusQuartzCrystalCharged.sameAsStack( tc.getStackInSlot( 0 ) ) )
{
double xOff = 0.0;