From 4f7ad220df0438b6f3382110577b53f29da46453 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 24 May 2018 15:50:07 -0400 Subject: Update of all changes --- .../darkknight/jewelrycraft/util/BlockUtils.java | 318 ++++++++++++--------- 1 file changed, 177 insertions(+), 141 deletions(-) mode change 100644 => 100755 src/main/java/darkknight/jewelrycraft/util/BlockUtils.java (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 old mode 100644 new mode 100755 index a33fd5e..18dc191 --- a/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java +++ b/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java @@ -9,145 +9,181 @@ 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); - } +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; + default: + 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; + case UNKNOWN: + 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