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:
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 |
|
@ -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
|
||||
|
@ -212,6 +232,12 @@ public class BlockEnergyCube extends BlockContainer
|
|||
};
|
||||
}
|
||||
|
||||
@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)
|
||||
{
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue