v5 Pre-Release #5

*Minorly cleaned up Energy Cube blockBreak() code.
*Made Energy Cube block corresponding ItemBlock with correct tier and
electricity information.
*Fixed machines not being removed from the IC2 E-net.
*Fixed error when taking an empty gas tank off the creative menu.
*Removed Energy Orb and Energy Cube code.
*Redid several recipes, added crafting recipes for Energy Cube tiers.
*Updated several javadocs.
*Fixed getEnergyCubeWithTier() to work correctly and efficiently.
*Fixed Energy Cube's getUnchargedItem() not setting the correct tier.
This commit is contained in:
Aidan Brady 2012-11-28 11:26:52 -05:00
parent b6d61b1583
commit 03f701d200
7 changed files with 86 additions and 62 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -5,9 +5,13 @@ import ic2.api.EnergyNet;
import java.util.List;
import java.util.Random;
import universalelectricity.core.implement.IItemElectric;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
import mekanism.api.IEnergyCube;
import mekanism.api.IEnergyCube.EnumTier;
import mekanism.generators.common.MekanismGenerators;
import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
@ -144,55 +148,71 @@ public class BlockEnergyCube extends BlockContainer
}
@Override
public void breakBlock(World world, int par2, int par3, int par4, int i1, int i2)
public void breakBlock(World world, int x, int y, int z, int i1, int i2)
{
TileEntityEnergyCube var5 = (TileEntityEnergyCube)world.getBlockTileEntity(par2, par3, par4);
TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getBlockTileEntity(x, y, z);
if (var5 != null)
if (tileEntity != null)
{
for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6)
for (int i = 0; i < tileEntity.getSizeInventory(); ++i)
{
ItemStack var7 = var5.getStackInSlot(var6);
ItemStack slotStack = tileEntity.getStackInSlot(i);
if (var7 != null)
if (slotStack != null)
{
float var8 = powerRand.nextFloat() * 0.8F + 0.1F;
float var9 = powerRand.nextFloat() * 0.8F + 0.1F;
float var10 = powerRand.nextFloat() * 0.8F + 0.1F;
float xRandom = powerRand.nextFloat() * 0.8F + 0.1F;
float yRandom = powerRand.nextFloat() * 0.8F + 0.1F;
float zRandom = powerRand.nextFloat() * 0.8F + 0.1F;
while (var7.stackSize > 0)
while (slotStack.stackSize > 0)
{
int var11 = powerRand.nextInt(21) + 10;
int j = powerRand.nextInt(21) + 10;
if (var11 > var7.stackSize)
if (j > slotStack.stackSize)
{
var11 = var7.stackSize;
j = slotStack.stackSize;
}
var7.stackSize -= var11;
EntityItem var12 = new EntityItem(world, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
slotStack.stackSize -= j;
EntityItem item = new EntityItem(world, (double)((float)x + xRandom), (double)((float)y + yRandom), (double)((float)z + zRandom), new ItemStack(slotStack.itemID, j, slotStack.getItemDamage()));
if (var7.hasTagCompound())
if (slotStack.hasTagCompound())
{
var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy());
item.item.setTagCompound((NBTTagCompound)slotStack.getTagCompound().copy());
}
float var13 = 0.05F;
var12.motionX = (double)((float)powerRand.nextGaussian() * var13);
var12.motionY = (double)((float)powerRand.nextGaussian() * var13 + 0.2F);
var12.motionZ = (double)((float)powerRand.nextGaussian() * var13);
world.spawnEntityInWorld(var12);
float k = 0.05F;
item.motionX = (double)((float)powerRand.nextGaussian() * k);
item.motionY = (double)((float)powerRand.nextGaussian() * k + 0.2F);
item.motionZ = (double)((float)powerRand.nextGaussian() * k);
world.spawnEntityInWorld(item);
}
}
}
EntityItem entityItem = new EntityItem(world, x, y, z, new ItemStack(Mekanism.EnergyCube));
float motion = 0.05F;
entityItem.motionX = powerRand.nextGaussian() * motion;
entityItem.motionY = powerRand.nextGaussian() * motion + 0.2F;
entityItem.motionZ = powerRand.nextGaussian() * motion;
IEnergyCube energyCube = (IEnergyCube)entityItem.item.getItem();
energyCube.setTier(entityItem.item, tileEntity.tier);
IItemElectric electricItem = (IItemElectric)entityItem.item.getItem();
electricItem.setJoules(tileEntity.electricityStored, entityItem.item);
world.spawnEntityInWorld(entityItem);
if(Mekanism.hooks.IC2Loaded)
{
EnergyNet.getForWorld(var5.worldObj).removeTileEntity(var5);
EnergyNet.getForWorld(tileEntity.worldObj).removeTileEntity(tileEntity);
}
var5.invalidate();
tileEntity.invalidate();
}
super.breakBlock(world, par2, par3, par4, i1, i2);
super.breakBlock(world, x, y, z, i1, i2);
}
@Override
@ -211,6 +231,12 @@ public class BlockEnergyCube extends BlockContainer
list.add(charged);
};
}
@Override
public int quantityDropped(Random random)
{
return 0;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int i1, float f1, float f2, float f3)

View file

@ -1,5 +1,7 @@
package mekanism.common;
import ic2.api.EnergyNet;
import java.util.List;
import java.util.Random;
@ -262,7 +264,7 @@ public class BlockMachine extends BlockContainer
@Override
public void breakBlock(World world, int x, int y, int z, int i1, int i2)
{
TileEntityElectricBlock tileEntity = (TileEntityElectricBlock)world.getBlockTileEntity(x, y, z);
TileEntityContainerBlock tileEntity = (TileEntityContainerBlock)world.getBlockTileEntity(x, y, z);
if (tileEntity != null)
{
@ -301,6 +303,11 @@ public class BlockMachine extends BlockContainer
}
}
}
if(Mekanism.hooks.IC2Loaded)
{
EnergyNet.getForWorld(tileEntity.worldObj).removeTileEntity(tileEntity);
}
tileEntity.invalidate();
}

View file

@ -41,6 +41,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn
public ItemStack getUnchargedItem(EnumTier tier)
{
ItemStack charged = new ItemStack(this);
setTier(charged, tier);
charged.setItemDamage(100);
return charged;
}

View file

@ -112,8 +112,8 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
public ItemStack getEmptyItem()
{
ItemStack empty = new ItemStack(this);
empty.setItemDamage(100);
setGasType(empty, EnumGas.NONE);
empty.setItemDamage(100);
return empty;
}
@ -121,6 +121,7 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
public void getSubItems(int i, CreativeTabs tabs, List list)
{
ItemStack empty = new ItemStack(this);
setGasType(empty, EnumGas.NONE);
empty.setItemDamage(100);
list.add(empty);

View file

@ -15,6 +15,7 @@ import java.util.Random;
import java.util.logging.Logger;
import universalelectricity.prefab.multiblock.*;
import mekanism.api.IEnergyCube.EnumTier;
import mekanism.api.ItemMachineUpgrade;
import mekanism.client.SoundHandler;
import net.minecraftforge.common.*;
@ -109,8 +110,6 @@ public class Mekanism
public static Item WeatherOrb;
public static Item EnrichedAlloy;
public static ItemEnergized EnergyTablet;
public static ItemEnergized EnergyOrb;
public static ItemEnergized EnergyCubeX;
public static Item SpeedUpgrade;
public static Item EnergyUpgrade;
public static Item UltimateUpgrade;
@ -186,22 +185,16 @@ public class Mekanism
"***", "XXX", "***", Character.valueOf('*'), Block.obsidian, Character.valueOf('X'), Block.tnt
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(ElectricBow.getUnchargedItem(), new Object[] {
" AB", "E B", " AB", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('B'), Item.silk, Character.valueOf('E'), EnergyCubeX.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(EnergyCubeX.getUnchargedItem(), new Object[] {
"RAR", "APA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('P'), "dustPlatinum"
" AB", "E B", " AB", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('B'), Item.silk, Character.valueOf('E'), EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(EnergyTablet.getUnchargedItem(), new Object[] {
"RCR", "ECE", "RCR", Character.valueOf('C'), EnergyCubeX.getUnchargedItem(), Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(EnergyOrb.getUnchargedItem(), new Object[] {
"ECE", "CCC", "ECE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('C'), EnergyCubeX.getUnchargedItem()
"RCR", "ECE", "RCR", Character.valueOf('C'), Item.ingotGold, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnergyCube, 1, 0), new Object[] {
"CEC", "EPE", "CEC", Character.valueOf('C'), EnergyCubeX.getUnchargedItem(), Character.valueOf('E'), EnrichedAlloy, Character.valueOf('P'), new ItemStack(BasicBlock, 1, 0)
"CEC", "EPE", "CEC", Character.valueOf('C'), EnergyTablet.getUnchargedItem(), Character.valueOf('E'), EnrichedAlloy, Character.valueOf('P'), new ItemStack(BasicBlock, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnergyCube, 1, 1), new Object[] {
"ECE", "CPC", "ECE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('C'), EnergyCubeX.getUnchargedItem(), Character.valueOf('P'), new ItemStack(EnergyCube, 1, 0)
"ECE", "CPC", "ECE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('C'), EnergyTablet.getUnchargedItem(), Character.valueOf('P'), new ItemStack(EnergyCube, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] {
"***", "*R*", "***", Character.valueOf('*'), "ingotPlatinum", Character.valueOf('R'), Item.redstone
@ -219,7 +212,7 @@ public class Mekanism
"PAP", "AEA", "PAP", Character.valueOf('P'), "dustPlatinum", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), Item.emerald
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnergyUpgrade), new Object[] {
"RAR", "AEA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyCubeX.getUnchargedItem()
"RAR", "AEA", "RAR", Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(UltimateUpgrade), new Object[] {
"ERA", "RDR", "ARS", Character.valueOf('E'), EnergyUpgrade, Character.valueOf('R'), Item.redstone, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('D'), Item.diamond, Character.valueOf('S'), SpeedUpgrade
@ -242,6 +235,15 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(GasTank, new Object[] {
"PPP", "P P", "PPP", Character.valueOf('P'), "ingotPlatinum"
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCubeWithTier(EnumTier.BASIC), new Object[] {
"ELE", "TIT", "ELE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 5)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCubeWithTier(EnumTier.ADVANCED), new Object[] {
"EGE", "TBT", "EGE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('G'), Item.ingotGold, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCubeWithTier(EnumTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCubeWithTier(EnumTier.ULTIMATE), new Object[] {
"EDE", "TAT", "EDE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('D'), Item.diamond, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('A'), MekanismUtils.getEnergyCubeWithTier(EnumTier.ADVANCED)
}));
if(extrasEnabled)
{
@ -308,8 +310,6 @@ public class Mekanism
}
LanguageRegistry.addName(EnergyTablet, "Energy Tablet");
LanguageRegistry.addName(EnergyOrb, "Energy Orb");
LanguageRegistry.addName(EnergyCubeX, "Energy Cube");
LanguageRegistry.addName(SpeedUpgrade, "Speed Upgrade");
LanguageRegistry.addName(EnergyUpgrade, "Energy Upgrade");
LanguageRegistry.addName(UltimateUpgrade, "Ultimate Upgrade");
@ -373,8 +373,6 @@ public class Mekanism
}
EnergyTablet.setIconIndex(228);
EnergyOrb.setIconIndex(229);
EnergyCubeX.setIconIndex(230);
SpeedUpgrade.setIconIndex(232);
EnergyUpgrade.setIconIndex(231);
UltimateUpgrade.setIconIndex(233);
@ -398,9 +396,7 @@ public class Mekanism
}
Dust = new ItemDust(11293-256);
Ingot = new ItemIngot(11294-256);
EnergyTablet = (ItemEnergized) new ItemEnergized(11306, 2500000, 512, 25000).setItemName("EnergyTablet");
EnergyOrb = (ItemEnergized) new ItemEnergized(11307, 5000000, 512, 50000).setItemName("EnergyOrb");
EnergyCubeX = (ItemEnergized) new ItemEnergized(11308, 1000000, 512, 10000).setItemName("EnergyCube");
EnergyTablet = (ItemEnergized) new ItemEnergized(11306, 250000, 256, 2500).setItemName("EnergyTablet");
SpeedUpgrade = new ItemMachineUpgrade(11309, 0, 150).setItemName("SpeedUpgrade");
EnergyUpgrade = new ItemMachineUpgrade(11310, 1000, 0).setItemName("EnergyUpgrade");
UltimateUpgrade = new ItemMachineUpgrade(11311, 2500, 180).setItemName("UltimateUpgrade");

View file

@ -92,7 +92,8 @@ public class MekanismUtils
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
while ((line = rd.readLine()) != null)
{
result += line;
sb.append(line);
}
@ -201,22 +202,14 @@ public class MekanismUtils
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(output, params));
}
/**
* Retrieves an empty Energy Cube with a defined tier.
* @param tier - tier to add to the Energy Cube
* @return empty energy cube with defined tier
*/
public static ItemStack getEnergyCubeWithTier(EnumTier tier)
{
ItemStack itemstack = new ItemStack(Mekanism.EnergyCube);
if(!(itemstack.getItem() instanceof IEnergyCube))
{
System.out.println("[Mekanism] Attempted to add tier to an invalid item.");
return itemstack;
}
if(itemstack.stackTagCompound == null)
{
itemstack.setTagCompound(new NBTTagCompound());
}
itemstack.stackTagCompound.setString("tier", tier.name);
ItemStack itemstack = ((ItemBlockEnergyCube)new ItemStack(Mekanism.EnergyCube).getItem()).getUnchargedItem(tier);
return itemstack;
}
}