From 01c8701b68986ccfa83e902515716838d6829311 Mon Sep 17 00:00:00 2001 From: Onyx Date: Tue, 1 Dec 2015 20:55:30 +0000 Subject: - Fixed all of the bugs mentioned on github - Added new config options - Rabbits paw now increases the chance of spawning hearts, rather than itself spawning some - Hearts now have a much lower chance to spawn by default - You can no longer increase your health past 20 hearts (aka double the default health) - The guide now also shows the total number of pages on each tab - A new luck stat has been added to the Curse API - Cleaned up the code a bit (removed unused methods, imports etc) - The displayer's info now has a purple solid color background; the text also has a much closer shadow and now shrinks in height as well as in width when too big - I have modified the potion list to use Mithion's code, credits have been given --- .../darkknight/jewelrycraft/util/BlockUtils.java | 306 ++++++++++----------- 1 file changed, 152 insertions(+), 154 deletions(-) (limited to 'src/main/java/darkknight/jewelrycraft/util/BlockUtils.java') diff --git a/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java b/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java index 18cb9eb..a33fd5e 100644 --- a/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java +++ b/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java @@ -1,155 +1,153 @@ -package darkknight.jewelrycraft.util; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class BlockUtils -{ - public static final ForgeDirection DEFAULT_BLOCK_DIRECTION = ForgeDirection.WEST; - - /** - * This method is used to get the direction an entity is facing (NORTH, SOUTH, EAST or WEST) based on the entity's rotationYaw. - * - * @param entity the living entity - * @return a direction - */ - public static ForgeDirection get2dOrientation(EntityLivingBase entity) - { - int l = MathHelper.floor_double(entity.rotationYaw * 4.0F / 360.0F + 0.5D) & 0x3; - switch(l) - { - case 0: - return ForgeDirection.SOUTH; - case 1: - return ForgeDirection.WEST; - case 2: - return ForgeDirection.NORTH; - case 3: - return ForgeDirection.EAST; - } - return ForgeDirection.SOUTH; - } - - /** - * This gets a float value depending on a direction - * - * @param direction the forge direction - * @return value depending on direction - */ - public static float getRotationFromDirection(ForgeDirection direction) - { - switch(direction) - { - case NORTH: - return 0F; - case SOUTH: - return 180F; - case WEST: - return 90F; - case EAST: - return -90F; - case DOWN: - return -90f; - case UP: - return 90f; - default: - return 0f; - } - } - - /** - * This method is used to get the direction an entity is looking at (UP or DOWN) based on the entitiy's rotationPitch - * - * @param entity the living entity - * @return a forge direction - */ - public static ForgeDirection get3dOrientation(EntityLivingBase entity) - { - if (entity.rotationPitch > 45.5F) return ForgeDirection.DOWN; - else if (entity.rotationPitch < -45.5F) return ForgeDirection.UP; - return get2dOrientation(entity); - } - - /** - * This spawns the item specified and returns the EntityItem it created - * - * @param worldObj the world - * @param x position of the item to drop on the X axis - * @param y position of the item to drop on the Y axis - * @param z position of the item to drop on the Z axis - * @param stack the item to spawn - * @return the EntityItem of the stack - */ - public static EntityItem dropItemStackInWorld(World worldObj, double x, double y, double z, ItemStack stack) - { - float f = 0.7F; - float d0 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; - float d1 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; - float d2 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; - EntityItem entityitem = new EntityItem(worldObj, x + d0, y + d1, z + d2, stack); - entityitem.delayBeforeCanPickup = 10; - if (stack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound)stack.getTagCompound().copy()); - worldObj.spawnEntityInWorld(entityitem); - return entityitem; - } - - /** - * It spawns the item with momentum in a certain direction - * - * @param world the world to spawn the item - * @param x the X coordinate to spawn it in - * @param y the Y coordinate to spawn it in - * @param z the Z coordinate to spawn it in - * @param direction the direction towards which it should eject - * @param stack the item to spawn - * @return the spawned EntityItem - */ - public static EntityItem ejectItemInDirection(World world, double x, double y, double z, ForgeDirection direction, ItemStack stack) - { - EntityItem item = BlockUtils.dropItemStackInWorld(world, x, y, z, stack); - item.motionX = direction.offsetX / 5F; - item.motionY = direction.offsetY / 5F; - item.motionZ = direction.offsetZ / 5F; - return item; - } - - /** - * Drops the content of an inventory with doubles as coordinates - * - * @param inventory the inventory the items are contained in - * @param world the world in which to spawn - * @param x the X coordinate to spawn it in - * @param y the Y coordinate to spawn it in - * @param z the Z coordinate to spawn it in - */ - public static void dropInventory(IInventory inventory, World world, double x, double y, double z) - { - if (inventory == null) return; - for(int i = 0; i < inventory.getSizeInventory(); ++i){ - ItemStack itemStack = inventory.getStackInSlot(i); - if (itemStack != null) dropItemStackInWorld(world, x, y, z, itemStack); - } - } - - /** - * Drops the content of an inventory with integer as coordinates - * - * @param inventory the inventory the items are contained in - * @param world the world in which to spawn - * @param x the X coordinate to spawn it in - * @param y the Y coordinate to spawn it in - * @param z the Z coordinate to spawn it in - */ - public static void dropInventory(IInventory inventory, World world, int x, int y, int z) - { - dropInventory(inventory, world, x + 0.5, y + 0.5, z + 0.5); - } +package darkknight.jewelrycraft.util; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockUtils +{ + public static final ForgeDirection DEFAULT_BLOCK_DIRECTION = ForgeDirection.WEST; + + /** + * This method is used to get the direction an entity is facing (NORTH, SOUTH, EAST or WEST) based on the entity's rotationYaw. + * + * @param entity the living entity + * @return a direction + */ + public static ForgeDirection get2dOrientation(EntityLivingBase entity) + { + int l = MathHelper.floor_double(entity.rotationYaw * 4.0F / 360.0F + 0.5D) & 0x3; + switch(l) + { + case 0: + return ForgeDirection.SOUTH; + case 1: + return ForgeDirection.WEST; + case 2: + return ForgeDirection.NORTH; + case 3: + return ForgeDirection.EAST; + } + return ForgeDirection.SOUTH; + } + + /** + * This gets a float value depending on a direction + * + * @param direction the forge direction + * @return value depending on direction + */ + public static float getRotationFromDirection(ForgeDirection direction) + { + switch(direction) + { + case NORTH: + return 0F; + case SOUTH: + return 180F; + case WEST: + return 90F; + case EAST: + return -90F; + case DOWN: + return -90f; + case UP: + return 90f; + default: + return 0f; + } + } + + /** + * This method is used to get the direction an entity is looking at (UP or DOWN) based on the entitiy's rotationPitch + * + * @param entity the living entity + * @return a forge direction + */ + public static ForgeDirection get3dOrientation(EntityLivingBase entity) + { + if (entity.rotationPitch > 45.5F) return ForgeDirection.DOWN; + else if (entity.rotationPitch < -45.5F) return ForgeDirection.UP; + return get2dOrientation(entity); + } + + /** + * This spawns the item specified and returns the EntityItem it created + * + * @param worldObj the world + * @param x position of the item to drop on the X axis + * @param y position of the item to drop on the Y axis + * @param z position of the item to drop on the Z axis + * @param stack the item to spawn + * @return the EntityItem of the stack + */ + public static EntityItem dropItemStackInWorld(World worldObj, double x, double y, double z, ItemStack stack) + { + float f = 0.7F; + float d0 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; + float d1 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; + float d2 = worldObj.rand.nextFloat() * f + (1.0F - f) * 0.5F; + EntityItem entityitem = new EntityItem(worldObj, x + d0, y + d1, z + d2, stack); + entityitem.delayBeforeCanPickup = 10; + if (stack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound)stack.getTagCompound().copy()); + worldObj.spawnEntityInWorld(entityitem); + return entityitem; + } + + /** + * It spawns the item with momentum in a certain direction + * + * @param world the world to spawn the item + * @param x the X coordinate to spawn it in + * @param y the Y coordinate to spawn it in + * @param z the Z coordinate to spawn it in + * @param direction the direction towards which it should eject + * @param stack the item to spawn + * @return the spawned EntityItem + */ + public static EntityItem ejectItemInDirection(World world, double x, double y, double z, ForgeDirection direction, ItemStack stack) + { + EntityItem item = BlockUtils.dropItemStackInWorld(world, x, y, z, stack); + item.motionX = direction.offsetX / 5F; + item.motionY = direction.offsetY / 5F; + item.motionZ = direction.offsetZ / 5F; + return item; + } + + /** + * Drops the content of an inventory with doubles as coordinates + * + * @param inventory the inventory the items are contained in + * @param world the world in which to spawn + * @param x the X coordinate to spawn it in + * @param y the Y coordinate to spawn it in + * @param z the Z coordinate to spawn it in + */ + public static void dropInventory(IInventory inventory, World world, double x, double y, double z) + { + if (inventory == null) return; + for(int i = 0; i < inventory.getSizeInventory(); ++i){ + ItemStack itemStack = inventory.getStackInSlot(i); + if (itemStack != null) dropItemStackInWorld(world, x, y, z, itemStack); + } + } + + /** + * Drops the content of an inventory with integer as coordinates + * + * @param inventory the inventory the items are contained in + * @param world the world in which to spawn + * @param x the X coordinate to spawn it in + * @param y the Y coordinate to spawn it in + * @param z the Z coordinate to spawn it in + */ + public static void dropInventory(IInventory inventory, World world, int x, int y, int z) + { + dropInventory(inventory, world, x + 0.5, y + 0.5, z + 0.5); + } } \ No newline at end of file -- cgit v1.2.3