diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-05-30 03:20:09 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-05-30 03:20:09 +1000 |
commit | 9a1352dac23c09cb333edf7b2db7cce07c15ee91 (patch) | |
tree | 9936ab004f549bd7320f4f9e077da9e7c99b6c84 /src/Java/miscutil/core/block | |
parent | 2859490274895866f864e66ba7ac18882b0dfb53 (diff) | |
download | GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.tar.gz GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.tar.bz2 GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.zip |
+Helium Generator, Initial Commit
+Reformatted Item Generation
Diffstat (limited to 'src/Java/miscutil/core/block')
-rw-r--r-- | src/Java/miscutil/core/block/HeliumGenerator.java | 160 | ||||
-rw-r--r-- | src/Java/miscutil/core/block/ModBlocks.java | 5 |
2 files changed, 165 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/block/HeliumGenerator.java b/src/Java/miscutil/core/block/HeliumGenerator.java new file mode 100644 index 0000000000..0df56d0022 --- /dev/null +++ b/src/Java/miscutil/core/block/HeliumGenerator.java @@ -0,0 +1,160 @@ +package miscutil.core.block; + +import java.util.Random; + +import miscutil.MiscUtils; +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityHeliumGenerator; +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.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class HeliumGenerator extends BlockContainer { + + private IIcon top, sides, front; + private Random randy = new Random(); + + public HeliumGenerator(){ + super(Material.iron); + setStepSound(Block.soundTypeMetal); + setHardness(20.0F); + setBlockName("helium_collector"); + setHarvestLevel("pickaxe", 3); + setCreativeTab(AddToCreativeTab.tabMachines); + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons (IIconRegister iconRegister) + { + this.top = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + this.sides = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + this.front = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ + if(side == 1) + return top; + int facing = 2; + TileEntityHeliumGenerator machine = (TileEntityHeliumGenerator)world.getTileEntity(x, y, z); + if(machine != null) + facing = machine.getFacing(); + if(side == facing) + return front; + else + return sides; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon (int side, int metadata) + { + if(side == 1) + return top; + if(side == 3) + return front; + return sides; + } + + @Override + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) + { + if (world.isRemote) + { + return true; + } + player.openGui(MiscUtils.instance, 2, world, x, y, z); + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) + { + return new TileEntityHeliumGenerator(); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack item) + { + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntityHeliumGenerator) { + TileEntityHeliumGenerator machine = (TileEntityHeliumGenerator)tile; + int l = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + if (l == 0) + machine.setFacing(2); + + if (l == 1) + machine.setFacing(5); + + if (l == 2) + machine.setFacing(3); + + if (l == 3) + machine.setFacing(4); + } + + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int wut) + { + TileEntityHeliumGenerator collector = (TileEntityHeliumGenerator)world.getTileEntity(x, y, z); + + if (collector != null) + { + ItemStack itemstack = collector.getStackInSlot(0); + + if (itemstack != null) + { + float f = this.randy.nextFloat() * 0.8F + 0.1F; + float f1 = this.randy.nextFloat() * 0.8F + 0.1F; + float f2 = this.randy.nextFloat() * 0.8F + 0.1F; + + while (itemstack.stackSize > 0) + { + int j1 = this.randy.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) + { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) + { + entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (double)((float)this.randy.nextGaussian() * f3); + entityitem.motionY = (double)((float)this.randy.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double)((float)this.randy.nextGaussian() * f3); + world.spawnEntityInWorld(entityitem); + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, wut); + } +} diff --git a/src/Java/miscutil/core/block/ModBlocks.java b/src/Java/miscutil/core/block/ModBlocks.java index 7ddc3d07af..b9a74a08c4 100644 --- a/src/Java/miscutil/core/block/ModBlocks.java +++ b/src/Java/miscutil/core/block/ModBlocks.java @@ -2,6 +2,7 @@ package miscutil.core.block; import miscutil.core.block.fluids.BlocktestFluid; import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityHeliumGenerator; import miscutil.core.util.Utils; import miscutil.gregtech.common.blocks.GregtechMetaCasingBlocks; import net.minecraft.block.Block; @@ -18,6 +19,7 @@ public final class ModBlocks { // WIP TODO public static Block blockToolBuilder; public static Block blockGriefSaver; public static Block blockCasingsMisc; + public static Block blockHeliumGenerator; @@ -74,6 +76,9 @@ public final class ModBlocks { testFluidBlock = new BlocktestFluid(testFluid, Material.water).setBlockName("yourFluid"); GameRegistry.registerBlock(testFluidBlock, CORE.MODID + "_" + testFluidBlock.getUnlocalizedName().substring(5)); testFluid.setUnlocalizedName(testFluidBlock.getUnlocalizedName()); + + blockHeliumGenerator = GameRegistry.registerBlock(new HeliumGenerator(), "Helium_Collector"); + GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); //WIP TODO //GameRegistry.registerBlock(blockGriefSaver, "blockGriefSaver"); |