diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/common/Recipes.java | 4 | ||||
-rw-r--r-- | src/main/java/common/blocks/Block_IchorJar.java | 67 | ||||
-rw-r--r-- | src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java | 67 | ||||
-rw-r--r-- | src/main/java/kekztech/KekzCore.java | 5 |
4 files changed, 85 insertions, 58 deletions
diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 15516ecc88..8462405fef 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -399,12 +399,12 @@ public class Recipes { 15, aspects_jarichor, ItemApi.getBlock("blockJar", 0), recipe_jarichor)); final ItemStack[] recipe_jarthaumiumreinforced = { - GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 0, null), + GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 1, null), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), new ItemStack(net.minecraft.init.Blocks.glass_pane), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), new ItemStack(net.minecraft.init.Blocks.glass_pane), - GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 0, null), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), new ItemStack(net.minecraft.init.Blocks.glass_pane), GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1), diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index cd3df9aa04..c64770485b 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -8,17 +8,16 @@ import common.tileentities.TE_IchorVoidJar; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import items.Item_IchorJarFilled; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.Explosion; import net.minecraft.world.World; -import thaumcraft.api.aspects.AspectList; import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.config.ConfigBlocks; public class Block_IchorJar extends BlockJar { @@ -26,6 +25,9 @@ public class Block_IchorJar extends BlockJar { private Block_IchorJar() { super(); + + super.setHardness(20.0F); + super.setResistance(3.0f); } public static Block registerBlock() { @@ -71,36 +73,47 @@ public class Block_IchorJar extends BlockJar { } @Override - public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { - final ArrayList<ItemStack> drops = new ArrayList<>(); - - ItemStack drop; - + public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { final TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TE_IchorJar) { - drop = new ItemStack(Item_IchorJarFilled.getInstance()); - // Empty and no label - if(((TE_IchorJar) te).amount <= 0 && ((TE_IchorJar) te).aspectFilter == null) { - drop = new ItemStack(this); - } - // If is void jar, set meta - if(te instanceof TE_IchorVoidJar) { - drop.setItemDamage(3); - } - // Non empty, generate filled jar item with contents if(((TE_IchorJar) te).amount > 0) { - ((Item_IchorJarFilled) drop.getItem()).setAspects(drop, - (new AspectList()).add(((TE_IchorJar) te).aspect, ((TE_IchorJar) te).amount)); - } - // has label - if(((TE_IchorJar) te).aspectFilter != null) { - if(!drop.hasTagCompound()) { - drop.setTagCompound(new NBTTagCompound()); + // Create a decent explosion in the center of the block (TNT has strength 4.0F) + world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, 6.0F, false); + + // Place a lot of Flux in the area + final int limit = ((TE_IchorJar) te).amount / 16; + int created = 0; + for(int i = 0; i < 200; i++) { + final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int yf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + final int zf = x + world.rand.nextInt(7) - world.rand.nextInt(7); + if(world.isAirBlock(xf, yf, zf)) { + if(yf > y) { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3); + } else { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3); + } + + if(created++ > limit) { + break; + } + } } - drop.stackTagCompound.setString("AspectFilter", ((TE_IchorJar) te).aspectFilter.getTag()); } - drops.add(drop); } + + super.breakBlock(world, x, y, z, par5, par6); + } + + @Override + public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { + final ArrayList<ItemStack> drops = new ArrayList<>(); + drops.add(new ItemStack(this, 1, (meta == 3) ? 3 : 0)); return drops; } + + @Override + public boolean canDropFromExplosion(Explosion e) { + return false; + } } diff --git a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java index 421e1d2c2b..2317646c53 100644 --- a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java +++ b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java @@ -8,17 +8,16 @@ import common.tileentities.TE_ThaumiumReinforcedVoidJar; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import items.Item_ThaumiumReinforcedJarFilled; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.Explosion; import net.minecraft.world.World; -import thaumcraft.api.aspects.AspectList; import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.config.ConfigBlocks; public class Block_ThaumiumReinforcedJar extends BlockJar { @@ -26,6 +25,9 @@ public class Block_ThaumiumReinforcedJar extends BlockJar { private Block_ThaumiumReinforcedJar() { super(); + + super.setHardness(8.0F); + super.setResistance(6.0F); } public static Block registerBlock() { @@ -71,36 +73,47 @@ public class Block_ThaumiumReinforcedJar extends BlockJar { } @Override - public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { - final ArrayList<ItemStack> drops = new ArrayList<>(); - - ItemStack drop; - + public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { final TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TE_ThaumiumReinforcedJar) { - drop = new ItemStack(Item_ThaumiumReinforcedJarFilled.getInstance()); - // Empty and no label - if(((TE_ThaumiumReinforcedJar) te).amount <= 0 && ((TE_ThaumiumReinforcedJar) te).aspectFilter == null) { - drop = new ItemStack(this); - } - // If is void jar, set meta - if(te instanceof TE_ThaumiumReinforcedVoidJar) { - drop.setItemDamage(3); - } - // Non empty, generate filled jar item with contents if(((TE_ThaumiumReinforcedJar) te).amount > 0) { - ((Item_ThaumiumReinforcedJarFilled) drop.getItem()).setAspects(drop, - (new AspectList()).add(((TE_ThaumiumReinforcedJar) te).aspect, ((TE_ThaumiumReinforcedJar) te).amount)); - } - // has label - if(((TE_ThaumiumReinforcedJar) te).aspectFilter != null) { - if(!drop.hasTagCompound()) { - drop.setTagCompound(new NBTTagCompound()); + // Create a small explosion in the center of the block (TNT has strength 4.0F) + world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, 1.0F, false); + + // Place some Flux in the area + final int limit = ((TE_ThaumiumReinforcedJar) te).amount / 16; + int created = 0; + for(int i = 0; i < 50; i++) { + final int xf = x + world.rand.nextInt(4) - world.rand.nextInt(4); + final int yf = x + world.rand.nextInt(4) - world.rand.nextInt(4); + final int zf = x + world.rand.nextInt(4) - world.rand.nextInt(4); + if(world.isAirBlock(xf, yf, zf)) { + if(yf > y) { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3); + } else { + world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3); + } + + if(created++ > limit) { + break; + } + } } - drop.stackTagCompound.setString("AspectFilter", ((TE_ThaumiumReinforcedJar) te).aspectFilter.getTag()); } - drops.add(drop); } + + super.breakBlock(world, x, y, z, par5, par6); + } + + @Override + public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) { + final ArrayList<ItemStack> drops = new ArrayList<>(); + drops.add(new ItemStack(this, 1, (meta == 3) ? 3 : 0)); return drops; } + + @Override + public boolean canDropFromExplosion(Explosion e) { + return false; + } } diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index ff677a3296..3c5617dcc8 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -101,8 +101,9 @@ public class KekzCore { // Thaumcraft research
final ResearchItem jar_thaumiumreinforced = new ResearchItem("THAUMIUMREINFORCEDJAR", "ALCHEMY", new AspectList(), 3, -4, 2, new ItemStack(Blocks.jarThaumiumReinforced, 1));
jar_thaumiumreinforced.setPages(new ResearchPage[] {
- new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR"),
- new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDJAR"))
+ new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.0"),
+ new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDJAR")),
+ new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.1")
});
jar_thaumiumreinforced.setParents(new String[] {"JARLABEL"});
jar_thaumiumreinforced.registerResearchItem();
|