summaryrefslogtreecommitdiff
path: root/src/main/java/gmail/Lance5057/blocks/CrestMount.java
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2015-02-09 08:04:46 -0600
committerLance5057 <Lance5057@gmail.com>2015-02-09 08:04:46 -0600
commit0fe568fc1800274fa3f0c68a09e0ad8d6b5e3e62 (patch)
tree32770788690fc72e2a147c80e732647f1c4ffa09 /src/main/java/gmail/Lance5057/blocks/CrestMount.java
parentd0dd1569124f26af121ba0a8bf039b1157006579 (diff)
Attempt at making crest mount have an inventory.
A failed attempt
Diffstat (limited to 'src/main/java/gmail/Lance5057/blocks/CrestMount.java')
-rw-r--r--src/main/java/gmail/Lance5057/blocks/CrestMount.java80
1 files changed, 75 insertions, 5 deletions
diff --git a/src/main/java/gmail/Lance5057/blocks/CrestMount.java b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
index 66f0762..1401057 100644
--- a/src/main/java/gmail/Lance5057/blocks/CrestMount.java
+++ b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
@@ -4,14 +4,22 @@ import static net.minecraftforge.common.util.ForgeDirection.EAST;
import static net.minecraftforge.common.util.ForgeDirection.NORTH;
import static net.minecraftforge.common.util.ForgeDirection.SOUTH;
import static net.minecraftforge.common.util.ForgeDirection.WEST;
+import gmail.Lance5057.com.mod_TinkersDefense;
+import gmail.Lance5057.gui.Gui_CrestMount;
+
+import java.util.Random;
+
+import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.tileentity.TileEntityFurnace;
-import net.minecraft.util.MathHelper;
+import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.world.World;
public class CrestMount extends BlockContainer {
@@ -21,6 +29,66 @@ public class CrestMount extends BlockContainer {
super(Material.iron);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
+
+ @Override
+ public void onBlockAdded(World world, int i, int j, int k)
+ {
+ super.onBlockAdded(world, i, j, k);
+ world.markBlockForUpdate(i, j, k);
+ }
+
+ @Override
+ public boolean onBlockActivated(World world, int x, int y, int z,
+ EntityPlayer player, int metadata, float what, float these, float are) {
+ TileEntity tileEntity = world.getTileEntity(x, y, z);
+ if (tileEntity == null || player.isSneaking()) {
+ return false;
+ }
+ //code to open gui explained later
+ player.openGui(mod_TinkersDefense.instance, 0, world, x, y, z);
+ return true;
+ }
+
+ @Override
+ public void breakBlock(World world, int x, int y, int z, Block par5, int par6) {
+ dropItems(world, x, y, z);
+ super.breakBlock(world, x, y, z, par5, par6);
+ }
+
+ private void dropItems(World world, int x, int y, int z){
+ Random rand = new Random();
+
+ TileEntity tileEntity = world.getTileEntity(x, y, z);
+ if (!(tileEntity instanceof IInventory)) {
+ return;
+ }
+ IInventory inventory = (IInventory) tileEntity;
+
+ for (int i = 0; i < inventory.getSizeInventory(); i++) {
+ ItemStack item = inventory.getStackInSlot(i);
+
+ if (item != null && item.stackSize > 0) {
+ float rx = rand.nextFloat() * 0.8F + 0.1F;
+ float ry = rand.nextFloat() * 0.8F + 0.1F;
+ float rz = rand.nextFloat() * 0.8F + 0.1F;
+
+ EntityItem entityItem = new EntityItem(world,
+ x + rx, y + ry, z + rz,
+ new ItemStack(item.getItem(), item.stackSize, item.getItemDamage()));
+
+ if (item.hasTagCompound()) {
+ entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy());
+ }
+
+ float factor = 0.05F;
+ entityItem.motionX = rand.nextGaussian() * factor;
+ entityItem.motionY = rand.nextGaussian() * factor + 0.2F;
+ entityItem.motionZ = rand.nextGaussian() * factor;
+ world.spawnEntityInWorld(entityItem);
+ item.stackSize = 0;
+ }
+ }
+}
//You don't want the normal render type, or it wont render properly.
@Override
@@ -46,7 +114,8 @@ public class CrestMount extends BlockContainer {
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
- return new TileEntity_CrestMount();
+ TileEntity_CrestMount te = new TileEntity_CrestMount();
+ return te;
}
@Override
@@ -75,4 +144,5 @@ public class CrestMount extends BlockContainer {
}
return j1;
- }}
+ }
+}