diff options
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/util/BlockUtils.java')
| -rwxr-xr-x[-rw-r--r--] | src/main/java/darkknight/jewelrycraft/util/BlockUtils.java | 318 |
1 files changed, 177 insertions, 141 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java b/src/main/java/darkknight/jewelrycraft/util/BlockUtils.java index a33fd5e..18dc191 100644..100755 --- 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 |
