From 4e465dffd1d289e6d5757929252e66cf0eee3249 Mon Sep 17 00:00:00 2001 From: Christina Berchtold Date: Fri, 24 Apr 2020 20:14:42 +0200 Subject: moved blocks and TEs into 'common' package --- src/main/java/common/blocks/Block_IchorJar.java | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/common/blocks/Block_IchorJar.java (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java new file mode 100644 index 0000000000..b5660f3d82 --- /dev/null +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -0,0 +1,46 @@ +package common.blocks; + +import common.tileentities.TE_IchorJar; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import thaumcraft.common.blocks.BlockJar; + +public class Block_IchorJar extends BlockJar { + + private static Block_IchorJar instance = new Block_IchorJar(); + + private Block_IchorJar() { + super(); + } + + public static Block_IchorJar getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_ichorjar_block"; + super.setBlockName(blockName); + GameRegistry.registerBlock(getInstance(), blockName); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister ir) { + super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow"); + super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side"); + super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top"); + super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void"); + super.iconJarSideVoid = ir.registerIcon("kekztech:jar_side_void"); + super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom"); + } + + @Override + public TileEntity createTileEntity(World world, int meta) { + return new TE_IchorJar(); + } + +} -- cgit From 34fb2f0b55c9295c116b1244224918624e56d096 Mon Sep 17 00:00:00 2001 From: Christina Berchtold Date: Fri, 24 Apr 2020 23:39:52 +0200 Subject: Thaumcraft jar progress --- src/main/java/common/blocks/Block_IchorJar.java | 59 ++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index b5660f3d82..a575398dfc 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -1,13 +1,23 @@ package common.blocks; +import java.util.ArrayList; +import java.util.List; + import common.tileentities.TE_IchorJar; 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.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.World; +import thaumcraft.api.aspects.AspectList; import thaumcraft.common.blocks.BlockJar; +import thaumcraft.common.tiles.TileJarFillableVoid; public class Block_IchorJar extends BlockJar { @@ -38,9 +48,56 @@ public class Block_IchorJar extends BlockJar { super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom"); } + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + par3List.add(new ItemStack(par1, 1, 0)); // Normal jar + par3List.add(new ItemStack(par1, 1, 3)); // Void jar + } + @Override public TileEntity createTileEntity(World world, int meta) { - return new TE_IchorJar(); + if(meta == 0) { + return new TE_IchorJar(); + } else if (meta == 3) { + return new TileJarFillableVoid(); + } else { + return null; + } } + @Override + public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { + final ArrayList drops = new ArrayList<>(); + + ItemStack drop; + + final TileEntity te = world.getTileEntity(x, y, z); + if(te != null && te instanceof TE_IchorJar) { + drop = new ItemStack(Item_ThaumiumReinforcedJarFilled.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 TileJarFillableVoid) { + drop.setItemDamage(3); + } + // Non empty, generate filled jar item with contents + if(((TE_IchorJar) te).amount > 0) { + ((Item_ThaumiumReinforcedJarFilled) 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()); + } + drop.stackTagCompound.setString("AspectFilter", ((TE_IchorJar) te).aspectFilter.getTag()); + } + drops.add(drop); + } + return drops; + } } -- cgit From 9400f69489b43ac9b8a303323c4505b6e2b8852b Mon Sep 17 00:00:00 2001 From: Christina Berchtold Date: Fri, 24 Apr 2020 23:48:08 +0200 Subject: fixed texture name typo --- src/main/java/common/blocks/Block_IchorJar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index a575398dfc..b8f22db022 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -44,7 +44,7 @@ public class Block_IchorJar extends BlockJar { super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side"); super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top"); super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void"); - super.iconJarSideVoid = ir.registerIcon("kekztech:jar_side_void"); + super.iconJarSideVoid = ir.registerIcon("kekztech:ichor_jar_side_void"); super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom"); } -- cgit From d42f4996255a4e11b2c0b5beabaf24be0d870fcc Mon Sep 17 00:00:00 2001 From: Christina Berchtold Date: Sat, 25 Apr 2020 18:35:08 +0200 Subject: improved jars are correctly placed after picking them up. Also cleaned up recipe registration --- src/main/java/common/blocks/Block_IchorJar.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index b8f22db022..7b795d2401 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -4,10 +4,11 @@ import java.util.ArrayList; import java.util.List; import common.tileentities.TE_IchorJar; +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_ThaumiumReinforcedJarFilled; +import items.Item_IchorJarFilled; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -17,7 +18,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import thaumcraft.api.aspects.AspectList; import thaumcraft.common.blocks.BlockJar; -import thaumcraft.common.tiles.TileJarFillableVoid; public class Block_IchorJar extends BlockJar { @@ -61,7 +61,7 @@ public class Block_IchorJar extends BlockJar { if(meta == 0) { return new TE_IchorJar(); } else if (meta == 3) { - return new TileJarFillableVoid(); + return new TE_IchorVoidJar(); } else { return null; } @@ -75,18 +75,18 @@ public class Block_IchorJar extends BlockJar { final TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TE_IchorJar) { - drop = new ItemStack(Item_ThaumiumReinforcedJarFilled.getInstance()); + 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 TileJarFillableVoid) { + if(te instanceof TE_IchorVoidJar) { drop.setItemDamage(3); } // Non empty, generate filled jar item with contents if(((TE_IchorJar) te).amount > 0) { - ((Item_ThaumiumReinforcedJarFilled) drop.getItem()).setAspects(drop, + ((Item_IchorJarFilled) drop.getItem()).setAspects(drop, (new AspectList()).add(((TE_IchorJar) te).aspect, ((TE_IchorJar) te).amount)); } // has label -- cgit From f5c4c0cc44b50c631eb044f12fae5032584620ed Mon Sep 17 00:00:00 2001 From: Christina Berchtold Date: Sat, 25 Apr 2020 19:52:46 +0200 Subject: huge refactor of recipe and block registration --- src/main/java/common/blocks/Block_IchorJar.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index 7b795d2401..cd3df9aa04 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -9,6 +9,7 @@ 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; @@ -21,20 +22,22 @@ import thaumcraft.common.blocks.BlockJar; public class Block_IchorJar extends BlockJar { - private static Block_IchorJar instance = new Block_IchorJar(); + private static Block_IchorJar instance; private Block_IchorJar() { super(); } - public static Block_IchorJar getInstance() { - return instance; - } - - public void registerBlock() { + public static Block registerBlock() { + if(instance == null) { + instance = new Block_IchorJar(); + } + final String blockName = "kekztech_ichorjar_block"; - super.setBlockName(blockName); - GameRegistry.registerBlock(getInstance(), blockName); + instance.setBlockName(blockName); + GameRegistry.registerBlock(instance, blockName); + + return instance; } @Override -- cgit From 40ec9e071c8b2618dfd8332aea76590784f0ebfe Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 26 Apr 2020 14:16:38 +0200 Subject: sharing with bart --- src/main/java/common/blocks/Block_IchorJar.java | 67 +++++++++++++++---------- 1 file changed, 40 insertions(+), 27 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') 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 getDrops(World world, int x, int y, int z, int meta, int fortune) { - final ArrayList 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 getDrops(World world, int x, int y, int z, int meta, int fortune) { + final ArrayList drops = new ArrayList<>(); + drops.add(new ItemStack(this, 1, (meta == 3) ? 3 : 0)); return drops; } + + @Override + public boolean canDropFromExplosion(Explosion e) { + return false; + } } -- cgit From 7a6c3dabd45c1cbf34b24bba2a340cdcf23d1744 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Sun, 26 Apr 2020 14:54:11 +0200 Subject: Fixed Void Jar dupe Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- src/main/java/common/blocks/Block_IchorJar.java | 41 +++++++++++++------------ 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index c64770485b..09e9edf427 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -1,8 +1,5 @@ package common.blocks; -import java.util.ArrayList; -import java.util.List; - import common.tileentities.TE_IchorJar; import common.tileentities.TE_IchorVoidJar; import cpw.mods.fml.common.registry.GameRegistry; @@ -11,6 +8,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -19,9 +17,13 @@ import net.minecraft.world.World; import thaumcraft.common.blocks.BlockJar; import thaumcraft.common.config.ConfigBlocks; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public class Block_IchorJar extends BlockJar { - private static Block_IchorJar instance; + private static final Block_IchorJar INSTANCE = new Block_IchorJar(); private Block_IchorJar() { super(); @@ -29,17 +31,13 @@ public class Block_IchorJar extends BlockJar { super.setHardness(20.0F); super.setResistance(3.0f); } - + public static Block registerBlock() { - if(instance == null) { - instance = new Block_IchorJar(); - } - final String blockName = "kekztech_ichorjar_block"; - instance.setBlockName(blockName); - GameRegistry.registerBlock(instance, blockName); + INSTANCE.setBlockName(blockName); + GameRegistry.registerBlock(INSTANCE, blockName); - return instance; + return INSTANCE; } @Override @@ -75,13 +73,14 @@ public class Block_IchorJar extends BlockJar { @Override 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) { - if(((TE_IchorJar) te).amount > 0) { + if(te instanceof TE_IchorJar) { + TE_IchorJar ite = (TE_IchorJar) te; + if(ite.amount > 0) { // 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; + final int limit = ite.amount / 16; int created = 0; for(int i = 0; i < 200; i++) { final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7); @@ -104,14 +103,16 @@ public class Block_IchorJar extends BlockJar { super.breakBlock(world, x, y, z, par5, par6); } - + @Override public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { - final ArrayList drops = new ArrayList<>(); - drops.add(new ItemStack(this, 1, (meta == 3) ? 3 : 0)); - return drops; + return new ArrayList<>(Collections.singleton(new ItemStack(this, 1, (meta == 3) ? 3 : 0))); } - + + @Override + public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer) { + } + @Override public boolean canDropFromExplosion(Explosion e) { return false; -- cgit From b1dfebaea7364bf54ece716be8944efcd4982014 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 26 Apr 2020 15:04:03 +0200 Subject: removed possible null TE --- src/main/java/common/blocks/Block_IchorJar.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index 09e9edf427..f000d59b46 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -61,12 +61,10 @@ public class Block_IchorJar extends BlockJar { @Override public TileEntity createTileEntity(World world, int meta) { - if(meta == 0) { - return new TE_IchorJar(); - } else if (meta == 3) { + if(meta == 3) { return new TE_IchorVoidJar(); } else { - return null; + return new TE_IchorJar(); } } @@ -74,7 +72,7 @@ public class Block_IchorJar extends BlockJar { 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 instanceof TE_IchorJar) { - TE_IchorJar ite = (TE_IchorJar) te; + final TE_IchorJar ite = (TE_IchorJar) te; if(ite.amount > 0) { // 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); -- cgit From ec4a37702d482d1eab99c7d469a6d930fd71358e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 26 Apr 2020 15:36:45 +0200 Subject: final commit pre release --- src/main/java/common/blocks/Block_IchorJar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index f000d59b46..7601ab0f78 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -28,7 +28,7 @@ public class Block_IchorJar extends BlockJar { private Block_IchorJar() { super(); - super.setHardness(20.0F); + super.setHardness(12.0F); super.setResistance(3.0f); } -- cgit From 1731699923f01e166a2c3520a7afe10d7b31e28b Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Wed, 13 May 2020 11:29:09 +0200 Subject: code cleanup, recipe fix --- src/main/java/common/blocks/Block_IchorJar.java | 54 ++++++++++++++----------- 1 file changed, 30 insertions(+), 24 deletions(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index 7601ab0f78..a2be000b7a 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -53,7 +53,7 @@ public class Block_IchorJar extends BlockJar { @Override @SideOnly(Side.CLIENT) - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings({"unchecked"}) public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { par3List.add(new ItemStack(par1, 1, 0)); // Normal jar par3List.add(new ItemStack(par1, 1, 3)); // Void jar @@ -73,33 +73,39 @@ public class Block_IchorJar extends BlockJar { final TileEntity te = world.getTileEntity(x, y, z); if(te instanceof TE_IchorJar) { final TE_IchorJar ite = (TE_IchorJar) te; - if(ite.amount > 0) { - // 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 = ite.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; - } + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } else if(te instanceof TE_IchorVoidJar) { + final TE_IchorVoidJar ite = (TE_IchorVoidJar) te; + breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F); + } + super.breakBlock(world, x, y, z, par5, par6); + } + + private void breakBlockWarpy(World world, int x, int y, int z, int fillAmount, int iterations, float explosionStrength){ + if(fillAmount > 0) { + // 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, explosionStrength, false); + + // Place a lot of Flux in the area + final int limit = fillAmount / 16; + int created = 0; + for(int i = 0; i < iterations; 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; } } } } - - super.breakBlock(world, x, y, z, par5, par6); } @Override -- cgit From 590fe5d0095fe6fbabbb625d8b4217177c6979a2 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 14 May 2020 16:19:50 +0200 Subject: Fixed similar issue for my Jars. Also properly fixed their names, AND the void jars are placeable now! --- src/main/java/common/blocks/Block_IchorJar.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index a2be000b7a..07696451b9 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -1,5 +1,6 @@ package common.blocks; +import common.itemBlocks.IB_IchorJar; import common.tileentities.TE_IchorJar; import common.tileentities.TE_IchorVoidJar; import cpw.mods.fml.common.registry.GameRegistry; @@ -35,7 +36,7 @@ public class Block_IchorJar extends BlockJar { public static Block registerBlock() { final String blockName = "kekztech_ichorjar_block"; INSTANCE.setBlockName(blockName); - GameRegistry.registerBlock(INSTANCE, blockName); + GameRegistry.registerBlock(INSTANCE, IB_IchorJar.class, blockName); return INSTANCE; } -- cgit From 67c6d0d8c47434275288c69fa30040095fe1ed10 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 17 May 2020 00:51:06 +0200 Subject: Added compatibility for Essentia Phials to my jars --- src/main/java/common/blocks/Block_IchorJar.java | 99 ++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) (limited to 'src/main/java/common/blocks/Block_IchorJar.java') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index 07696451b9..560fd0c37b 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -9,14 +9,20 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.Explosion; import net.minecraft.world.World; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; import thaumcraft.common.blocks.BlockJar; import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; +import thaumcraft.common.items.ItemEssence; +import thaumcraft.common.tiles.TileJarFillable; import java.util.ArrayList; import java.util.Collections; @@ -68,7 +74,98 @@ public class Block_IchorJar extends BlockJar { return new TE_IchorJar(); } } - + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float f1, float f2, float f3) { + // Call parent method to handle jar emptying, labels stuff etc + super.onBlockActivated(world, x, y, z, player, side, f1, f2, f3); + // Interact with Essentia Phials if the player holds one + final ItemStack heldItem = player.getHeldItem(); + if(heldItem != null && heldItem.getItem() == ConfigItems.itemEssence) { + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_IchorJar) { + return dealWithPhial(world, player, x, y, z); + } else if(te instanceof TE_IchorVoidJar) { + return dealWithPhial(world, player, x, y, z); + } + } + + return true; + } + + /** + * Handle compatibility with Essentia Phials + * @param world + * Pass through from onBlockActivated() + * @param player + * Pass through from onBlockActivated() + * @param x + * Pass through from onBlockActivated() + * @param y + * Pass through from onBlockActivated() + * @param z + * Pass through from onBlockActivated() + * @return Not sure tbh + */ + private boolean dealWithPhial(World world, EntityPlayer player, int x, int y, int z) { + final TileJarFillable jarTE = (TileJarFillable) world.getTileEntity(x, y, z); + final ItemStack heldItem = player.getHeldItem(); + // Check whether to fill or to drain the phial + if(heldItem.getItemDamage() == 0) { + if(jarTE.amount >= 8){ + if (world.isRemote) { + player.swingItem(); + return false; + } + + final Aspect jarAspect = Aspect.getAspect(jarTE.aspect.getTag()); + if(jarTE.takeFromContainer(jarAspect, 8)) { + // Take an empty phial from the player's inventory + heldItem.stackSize--; + // Fill a new phial + final ItemStack filledPhial = new ItemStack(ConfigItems.itemEssence, 1, 1); + final AspectList phialContent = new AspectList().add(jarAspect, 8); + ((ItemEssence) ConfigItems.itemEssence).setAspects(filledPhial, phialContent); + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(filledPhial)) { + world.spawnEntityInWorld(new EntityItem(world, (float)x + 0.5F, (float)y + 0.5F, (float)z + 0.5F, filledPhial)); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } else { + final AspectList phialContent = ((ItemEssence) ConfigItems.itemEssence).getAspects(heldItem); + if(phialContent != null && phialContent.size() == 1) { + final Aspect phialAspect = phialContent.getAspects()[0]; + if(jarTE.amount + 8 <= jarTE.maxAmount && jarTE.doesContainerAccept(phialAspect)) { + if (world.isRemote) { + player.swingItem(); + return false; + } + + if(jarTE.addToContainer(phialAspect, 8) == 0) { + world.markBlockForUpdate(x, y, z); + jarTE.markDirty(); + heldItem.stackSize--; + // Drop on ground if there's no inventory space + if (!player.inventory.addItemStackToInventory(new ItemStack(ConfigItems.itemEssence, 1, 0))) { + world.spawnEntityInWorld(new EntityItem(world, (float)x + 0.5F, (float)y + 0.5F, (float)z + 0.5F, new ItemStack(ConfigItems.itemEssence, 1, 0))); + } + + world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F); + player.inventoryContainer.detectAndSendChanges(); + return true; + } + } + } + } + + return true; + } + @Override public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { final TileEntity te = world.getTileEntity(x, y, z); -- cgit