aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/items/Item_ThaumiumReinforcedJarFilled.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/items/Item_ThaumiumReinforcedJarFilled.java')
-rw-r--r--src/main/java/items/Item_ThaumiumReinforcedJarFilled.java63
1 files changed, 60 insertions, 3 deletions
diff --git a/src/main/java/items/Item_ThaumiumReinforcedJarFilled.java b/src/main/java/items/Item_ThaumiumReinforcedJarFilled.java
index cc4be0e247..4f8775b714 100644
--- a/src/main/java/items/Item_ThaumiumReinforcedJarFilled.java
+++ b/src/main/java/items/Item_ThaumiumReinforcedJarFilled.java
@@ -1,11 +1,16 @@
package items;
+import common.blocks.Block_ThaumiumReinforcedJar;
+import common.tileentities.TE_ThaumiumReinforcedJar;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
import thaumcraft.common.blocks.ItemJarFilled;
public class Item_ThaumiumReinforcedJarFilled extends ItemJarFilled {
@@ -26,7 +31,7 @@ public class Item_ThaumiumReinforcedJarFilled extends ItemJarFilled {
super.setUnlocalizedName(unlocalizedName);
GameRegistry.registerItem(getInstance(), unlocalizedName);
}
- /*
+
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side,
float par8, float par9, float par10) {
@@ -57,6 +62,58 @@ public class Item_ThaumiumReinforcedJarFilled extends ItemJarFilled {
}
}
-
- }*/
+ if(stack.stackSize == 0) {
+ return false;
+ } else if(!player.canPlayerEdit(x, y, z, side, stack)) {
+ return false;
+ } else if(world.canPlaceEntityOnSide(Block_ThaumiumReinforcedJar.getInstance(), x, y, z,
+ false, side, player, stack)) {
+
+ final Block jar = Block_ThaumiumReinforcedJar.getInstance();
+ final int meta = this.getMetadata(stack.getItemDamage());
+ final int idk = block.onBlockPlaced(world, x, y, z, side, par8, par9, par10, meta);
+
+ if(placeBlockAt(stack, player, world, x, y, z, side, par9, par9, par10, idk)) {
+
+ final TileEntity te = world.getTileEntity(x, y, z);
+ if(te != null && te instanceof TE_ThaumiumReinforcedJar && stack.hasTagCompound()) {
+
+ final AspectList aspects = getAspects(stack);
+ if(aspects != null && aspects.size() == 1) {
+ ((TE_ThaumiumReinforcedJar) te).amount = aspects.getAmount(aspects.getAspects()[0]);
+ ((TE_ThaumiumReinforcedJar) te).aspect = aspects.getAspects()[0];
+ }
+
+ final String filter = stack.stackTagCompound.getString("AspectFilter");
+ if(filter != null) {
+ ((TE_ThaumiumReinforcedJar) te).aspectFilter = Aspect.getAspect(filter);
+ }
+ }
+
+ world.playSoundEffect((double) ((float) x + 0.5F), (double) ((float) y + 0.5F),
+ (double) ((float) z + 0.5F), jar.stepSound.func_150496_b(),
+ (jar.stepSound.getVolume() + 1.0F) / 2.0F, jar.stepSound.getPitch() * 0.8F);
+ --stack.stackSize;
+ }
+
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side,
+ float hitX, float hitY, float hitZ, int metadata) {
+ if (!world.setBlock(x, y, z, Block_ThaumiumReinforcedJar.getInstance(), metadata, 3)) {
+ return false;
+ } else {
+ if (world.getBlock(x, y, z) == Block_ThaumiumReinforcedJar.getInstance()) {
+ Block_ThaumiumReinforcedJar.getInstance().onBlockPlacedBy(world, x, y, z, player, stack);
+ Block_ThaumiumReinforcedJar.getInstance().onPostBlockPlaced(world, x, y, z, metadata);
+ }
+
+ return true;
+ }
+ }
}