From f602eccca0f6701490f72394a866266dbdc3f98a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 8 Jan 2016 13:31:58 +0100 Subject: [PATCH] Remove Position. Don't need it. --- .../actuallyadditions/api/Position.java | 115 ------------------ .../actuallyadditions/api/lens/Lens.java | 4 +- .../api/tile/IPhantomTile.java | 6 +- .../mod/blocks/BlockAtomicReconstructor.java | 8 +- .../mod/blocks/BlockBookletStand.java | 11 +- .../mod/blocks/BlockBreaker.java | 9 +- .../mod/blocks/BlockCanolaPress.java | 3 +- .../mod/blocks/BlockCoalGenerator.java | 7 +- .../mod/blocks/BlockCoffeeMachine.java | 13 +- .../mod/blocks/BlockColoredLamp.java | 9 +- .../mod/blocks/BlockCompost.java | 3 +- .../mod/blocks/BlockDirectionalBreaker.java | 9 +- .../mod/blocks/BlockDropper.java | 8 +- .../mod/blocks/BlockEnergizer.java | 3 +- .../mod/blocks/BlockFeeder.java | 3 +- .../mod/blocks/BlockFermentingBarrel.java | 3 +- .../mod/blocks/BlockFireworkBox.java | 6 +- .../mod/blocks/BlockFluidCollector.java | 9 +- .../mod/blocks/BlockFurnaceDouble.java | 17 ++- .../mod/blocks/BlockGiantChest.java | 3 +- .../mod/blocks/BlockGrinder.java | 9 +- .../mod/blocks/BlockInputter.java | 4 +- .../mod/blocks/BlockItemRepairer.java | 7 +- .../mod/blocks/BlockLampPowerer.java | 23 ++-- .../mod/blocks/BlockLaserRelay.java | 4 +- .../mod/blocks/BlockLeafGenerator.java | 3 +- .../mod/blocks/BlockMiner.java | 4 +- .../mod/blocks/BlockOilGenerator.java | 7 +- .../mod/blocks/BlockPhantom.java | 10 +- .../mod/blocks/BlockRangedCollector.java | 3 +- .../mod/blocks/BlockSlabs.java | 11 +- .../mod/blocks/BlockSmileyCloud.java | 16 +-- .../mod/blocks/BlockTreasureChest.java | 15 ++- .../mod/blocks/BlockWildPlant.java | 14 +-- .../mod/blocks/BlockXPSolidifier.java | 14 +-- .../mod/blocks/base/BlockBase.java | 10 +- .../mod/blocks/base/BlockBushBase.java | 10 +- .../mod/blocks/base/BlockContainerBase.java | 27 ++-- .../mod/blocks/base/BlockFluidFlowing.java | 7 +- .../mod/blocks/base/BlockWallAA.java | 4 +- .../mod/blocks/render/RenderLaserRelay.java | 4 +- .../render/RenderReconstructorLens.java | 5 +- .../mod/blocks/render/RenderSmileyCloud.java | 4 +- .../mod/blocks/render/RenderTileEntity.java | 4 +- .../mod/event/BucketFillEvent.java | 5 +- .../actuallyadditions/mod/event/HudEvent.java | 4 +- .../mod/event/WorldDecorationEvent.java | 38 +++--- .../actuallyadditions/mod/gen/OreGen.java | 4 +- .../mod/inventory/GuiHandler.java | 6 +- .../mod/items/ItemBooklet.java | 10 +- .../mod/items/ItemChestToCrateUpgrade.java | 8 +- .../mod/items/ItemDrill.java | 19 ++- .../mod/items/ItemGrowthRing.java | 18 +-- .../mod/items/ItemLaserWrench.java | 12 +- .../mod/items/ItemLeafBlower.java | 17 +-- .../mod/items/ItemPhantomConnector.java | 7 +- .../mod/items/ItemWaterRemovalRing.java | 8 +- .../mod/items/lens/LensColor.java | 14 ++- .../mod/items/lens/LensDeath.java | 7 +- .../mod/items/lens/LensDetonation.java | 7 +- .../mod/items/lens/LensNone.java | 16 +-- .../mod/misc/DispenserHandlerEmptyBucket.java | 8 +- .../mod/misc/DispenserHandlerFertilize.java | 5 +- .../mod/misc/DispenserHandlerFillBucket.java | 12 +- .../mod/misc/LaserRelayConnectionHandler.java | 43 +++---- .../mod/network/PacketBookletStandButton.java | 4 +- .../mod/network/gui/PacketGuiButton.java | 5 +- .../mod/network/gui/PacketGuiNumber.java | 5 +- .../mod/network/gui/PacketGuiString.java | 5 +- .../tile/TileEntityAtomicReconstructor.java | 8 +- .../mod/tile/TileEntityBreaker.java | 20 +-- .../mod/tile/TileEntityCanolaPress.java | 11 +- .../mod/tile/TileEntityCoalGenerator.java | 11 +- .../tile/TileEntityDirectionalBreaker.java | 16 +-- .../mod/tile/TileEntityDropper.java | 4 +- .../mod/tile/TileEntityEnervator.java | 3 +- .../mod/tile/TileEntityFermentingBarrel.java | 11 +- .../mod/tile/TileEntityFishingNet.java | 8 +- .../mod/tile/TileEntityFluidCollector.java | 36 +++--- .../mod/tile/TileEntityFurnaceDouble.java | 9 +- .../mod/tile/TileEntityFurnaceSolar.java | 10 +- .../mod/tile/TileEntityGreenhouseGlass.java | 18 +-- .../mod/tile/TileEntityGrinder.java | 9 +- .../mod/tile/TileEntityHeatCollector.java | 13 +- .../mod/tile/TileEntityInputter.java | 6 +- .../mod/tile/TileEntityLaserRelay.java | 19 +-- .../tile/TileEntityLavaFactoryController.java | 23 ++-- .../mod/tile/TileEntityLeafGenerator.java | 17 +-- .../mod/tile/TileEntityMiner.java | 15 +-- .../mod/tile/TileEntityOilGenerator.java | 11 +- .../mod/tile/TileEntityPhantomEnergyface.java | 3 +- .../mod/tile/TileEntityPhantomLiquiface.java | 7 +- .../mod/tile/TileEntityPhantomPlacer.java | 25 ++-- .../mod/tile/TileEntityPhantomface.java | 40 +++--- .../actuallyadditions/mod/util/PosUtil.java | 70 +++++++++++ .../actuallyadditions/mod/util/WorldUtil.java | 84 ++++++------- 96 files changed, 604 insertions(+), 658 deletions(-) delete mode 100644 src/main/java/de/ellpeck/actuallyadditions/api/Position.java create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/util/PosUtil.java diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/Position.java b/src/main/java/de/ellpeck/actuallyadditions/api/Position.java deleted file mode 100644 index 2bab2c467..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/api/Position.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * This file ("Position.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://ellpeck.de/actaddlicense/ - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2016 Ellpeck - */ - -package de.ellpeck.actuallyadditions.api; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.Vec3; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -/** - * This utility class describes a position in the world - */ -public class Position extends BlockPos{ - - public Position(int x, int y, int z){ - super(x, y, z); - } - - public TileEntity getTileEntity(IBlockAccess world){ - return world != null ? world.getTileEntity(this) : null; - } - - public Material getMaterial(IBlockAccess world){ - if(world != null){ - Block block = this.getBlock(world); - if(block != null){ - return block.getMaterial(); - } - } - return null; - } - - public Item getItemBlock(IBlockAccess world){ - return world != null ? Item.getItemFromBlock(this.getBlock(world)) : null; - } - - public Block getBlock(IBlockAccess world){ - if(world != null){ - IBlockState state = this.getBlockState(world); - if(state != null){ - return state.getBlock(); - } - } - return null; - } - - public int getMetadata(IBlockAccess world){ - return this.getBlock(world).getMetaFromState(this.getBlockState(world)); - } - - public void setMetadata(World world, int meta, int flag){ - if(world != null){ - world.setBlockState(this, this.getBlock(world).getStateFromMeta(meta), flag); - } - } - - public boolean setBlock(World world, Block block, int meta, int flag){ - return world.setBlockState(this, block.getStateFromMeta(meta), flag); - } - - public boolean isEqual(Position pos){ - return pos != null && this.getX() == pos.getX() && this.getY() == pos.getY() && this.getZ() == pos.getZ(); - } - - public Position copy(){ - return new Position(this.getX(), this.getY(), this.getZ()); - } - - public String toString(){ - return "["+this.getX()+", "+this.getY()+", "+this.getZ()+"]"; - } - - public Vec3 toVec(){ - return new Vec3(this.getX(), this.getY(), this.getZ()); - } - - public IBlockState getBlockState(IBlockAccess world){ - return world != null ? world.getBlockState(this) : null; - } - - public Position getOffsetPosition(EnumFacing side){ - return new Position(this.getX()+side.getFrontOffsetX(), this.getY()+side.getFrontOffsetY(), this.getZ()+side.getFrontOffsetZ()); - } - - public Position getOffsetPosition(int x, int y, int z){ - return new Position(this.getX()+x, this.getY()+y, this.getZ()+z); - } - - public static Position fromTileEntity(TileEntity tile){ - return fromBlockPos(tile.getPos()); - } - - public static Position fromBlockPos(BlockPos pos){ - //TODO Make this less object creaty (Typecasting doesn't work?) - return new Position(pos.getX(), pos.getY(), pos.getZ()); - } - - public boolean setBlockState(World world, IBlockState state, int flag){ - return world.setBlockState(this, state, flag); - } -} diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/lens/Lens.java b/src/main/java/de/ellpeck/actuallyadditions/api/lens/Lens.java index bf106d804..8c0bb48be 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/lens/Lens.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/lens/Lens.java @@ -11,9 +11,9 @@ package de.ellpeck.actuallyadditions.api.lens; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import net.minecraft.item.Item; +import net.minecraft.util.BlockPos; /** * This is the base class for a Reconstructor Lens Type (NOT THE ITEM!) @@ -32,7 +32,7 @@ public abstract class Lens{ * @param tile The tile the lens was invoked from * @return If the Reconstructor should stop continuing (return false if you want it to go through blocks) */ - public abstract boolean invoke(Position hitBlock, IAtomicReconstructor tile); + public abstract boolean invoke(BlockPos hitBlock, IAtomicReconstructor tile); /** * Returns the color in an array of 3 float values that are r, g, b diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/tile/IPhantomTile.java b/src/main/java/de/ellpeck/actuallyadditions/api/tile/IPhantomTile.java index 725738c5e..e034a2228 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/tile/IPhantomTile.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/tile/IPhantomTile.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.api.tile; -import de.ellpeck.actuallyadditions.api.Position; +import net.minecraft.util.BlockPos; /** * Extending this will cause a TileEntity to be able to be connected via a Phantom Connector @@ -30,12 +30,12 @@ public interface IPhantomTile{ /** * @return The position this tile is bound to */ - Position getBoundPosition(); + BlockPos getBoundPosition(); /** * Sets the bound position */ - void setBoundPosition(Position pos); + void setBoundPosition(BlockPos pos); /** * @return The ID of the GUI it opens, -1 if none diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java index c6db78090..4de761aea 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java @@ -10,13 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.lens.ILensItem; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -55,7 +55,7 @@ public class BlockAtomicReconstructor extends BlockContainerBase implements IHud @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } @@ -67,7 +67,7 @@ public class BlockAtomicReconstructor extends BlockContainerBase implements IHud @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -100,7 +100,7 @@ public class BlockAtomicReconstructor extends BlockContainerBase implements IHud @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBookletStand.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBookletStand.java index 79d8c2a44..13c8abfc8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBookletStand.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBookletStand.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.internal.EntrySet; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; @@ -19,6 +18,7 @@ import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -72,19 +72,18 @@ public class BlockBookletStand extends BlockContainerBase implements IHudDisplay @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } if(rotation == 1){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 2){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 3){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } TileEntityBookletStand tile = (TileEntityBookletStand)world.getTileEntity(pos); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBreaker.java index a59e4a5d4..3668e1229 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockBreaker.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBreaker; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -47,7 +48,7 @@ public class BlockBreaker extends BlockContainerBase{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -68,14 +69,14 @@ public class BlockBreaker extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java index cbc5be3d7..1487ff364 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -59,7 +58,7 @@ public class BlockCanolaPress extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoalGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoalGenerator.java index 34e6f9ec0..7a0e7fdb1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoalGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoalGenerator.java @@ -10,12 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoalGenerator; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -50,7 +51,7 @@ public class BlockCoalGenerator extends BlockContainerBase{ @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand){ - int meta = Position.fromBlockPos(pos).getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); if(meta == 1){ for(int i = 0; i < 5; i++){ @@ -78,7 +79,7 @@ public class BlockCoalGenerator extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java index ca6d1da3a..d4afda732 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java @@ -10,12 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoffeeMachine; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; @@ -70,7 +70,7 @@ public class BlockCoffeeMachine extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } @@ -82,19 +82,18 @@ public class BlockCoffeeMachine extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 1){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } if(rotation == 2){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 3){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } super.onBlockPlacedBy(world, pos, state, player, stack); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockColoredLamp.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockColoredLamp.java index d5756a3f9..fb709f589 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockColoredLamp.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockColoredLamp.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -63,7 +64,7 @@ public class BlockColoredLamp extends BlockBase{ //Turning On if(player.isSneaking()){ if(!world.isRemote){ - Position.fromBlockPos(pos).setBlock(world, this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn, Position.fromBlockPos(pos).getMetadata(world), 2); + PosUtil.setBlock(pos, world, this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn, PosUtil.getMetadata(pos, world), 2); } return true; } @@ -75,9 +76,9 @@ public class BlockColoredLamp extends BlockBase{ String name = OreDictionary.getOreName(oreID); TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name); if(color != null){ - if(Position.fromBlockPos(pos).getMetadata(world) != color.ordinal()){ + if(PosUtil.getMetadata(pos, world) != color.ordinal()){ if(!world.isRemote){ - Position.fromBlockPos(pos).setMetadata(world, color.ordinal(), 2); + PosUtil.setMetadata(pos, world, color.ordinal(), 2); if(!player.capabilities.isCreativeMode){ player.inventory.decrStackSize(player.inventory.currentItem, 1); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java index 10e2a0fd0..b6bd79a05 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.items.ItemFertilizer; @@ -121,7 +120,7 @@ public class BlockCompost extends BlockContainerBase implements IHudDisplay{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDirectionalBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDirectionalBreaker.java index 89c55dba0..0dc6cfc1b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDirectionalBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDirectionalBreaker.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityDirectionalBreaker; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -44,7 +45,7 @@ public class BlockDirectionalBreaker extends BlockContainerBase{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -65,14 +66,14 @@ public class BlockDirectionalBreaker extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDropper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDropper.java index 1254215ca..686d4fbf5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDropper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockDropper.java @@ -10,11 +10,11 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -44,7 +44,7 @@ public class BlockDropper extends BlockContainerBase{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -65,14 +65,14 @@ public class BlockDropper extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockEnergizer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockEnergizer.java index f444f05f5..f778ebd5a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockEnergizer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockEnergizer.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -71,7 +70,7 @@ public class BlockEnergizer extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFeeder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFeeder.java index 3873905f2..a65c7b701 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFeeder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFeeder.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -59,7 +58,7 @@ public class BlockFeeder extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java index a2534f4ad..b7c5922e1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -42,7 +41,7 @@ public class BlockFermentingBarrel extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFireworkBox.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFireworkBox.java index d7bdb72c3..0b53d74b7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFireworkBox.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFireworkBox.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox; import net.minecraft.block.material.Material; @@ -40,7 +40,7 @@ public class BlockFireworkBox extends BlockContainerBase{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - return this.tryToggleRedstone(world, Position.fromBlockPos(pos), player); + return this.tryToggleRedstone(world, pos, player); } @Override @@ -50,7 +50,7 @@ public class BlockFireworkBox extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java index 4f6f97527..b72624706 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFluidCollector; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -47,7 +48,7 @@ public class BlockFluidCollector extends BlockContainerBase{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -68,14 +69,14 @@ public class BlockFluidCollector extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFurnaceDouble.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFurnaceDouble.java index f424810b8..fcb732c2c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFurnaceDouble.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFurnaceDouble.java @@ -10,12 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFurnaceDouble; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; @@ -53,7 +53,7 @@ public class BlockFurnaceDouble extends BlockContainerBase{ @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand){ - int meta = Position.fromBlockPos(pos).getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); if(meta > 3){ float f = (float)pos.getX()+0.5F; @@ -99,7 +99,7 @@ public class BlockFurnaceDouble extends BlockContainerBase{ @Override public int getLightValue(IBlockAccess world, BlockPos pos){ - return Position.fromBlockPos(pos).getMetadata(world) > 3 ? 12 : 0; + return PosUtil.getMetadata(pos, world) > 3 ? 12 : 0; } @Override @@ -110,19 +110,18 @@ public class BlockFurnaceDouble extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 1){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } if(rotation == 2){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 3){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } super.onBlockPlacedBy(world, pos, state, player, stack); @@ -130,7 +129,7 @@ public class BlockFurnaceDouble extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGiantChest.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGiantChest.java index 52a1c9950..0794f9d29 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGiantChest.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGiantChest.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -121,7 +120,7 @@ public class BlockGiantChest extends BlockContainerBase{ TileEntity tile = world.getTileEntity(pos); if(tile instanceof TileEntityGiantChest){ if(!ItemUtil.contains(((TileEntityGiantChest)tile).slots, new ItemStack(InitItems.itemCrateKeeper), false)){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGrinder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGrinder.java index a41a09f55..1f20a8862 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGrinder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockGrinder.java @@ -10,12 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.tile.TileEntityGrinder; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -54,8 +54,7 @@ public class BlockGrinder extends BlockContainerBase{ @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand){ - Position thePos = Position.fromBlockPos(pos); - int meta = thePos.getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); if(meta == 1){ for(int i = 0; i < 5; i++){ @@ -81,7 +80,7 @@ public class BlockGrinder extends BlockContainerBase{ @Override public int getLightValue(IBlockAccess world, BlockPos pos){ - return Position.fromBlockPos(pos).getMetadata(world) == 1 ? 12 : 0; + return PosUtil.getMetadata(pos, world) == 1 ? 12 : 0; } @Override @@ -91,7 +90,7 @@ public class BlockGrinder extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java index 3b37177b0..e33c2a118 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; @@ -70,7 +70,7 @@ public class BlockInputter extends BlockContainerBase{ TileEntity aTile = world.getTileEntity(pos); if(aTile instanceof TileEntityInventoryBase){ TileEntityInventoryBase tile = (TileEntityInventoryBase)aTile; - this.dropSlotFromInventory(0, tile, world, Position.fromBlockPos(pos)); + this.dropSlotFromInventory(0, tile, world, pos); } } super.breakBlock(world, pos, state); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemRepairer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemRepairer.java index 5a9ab75c0..18f1baee6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemRepairer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemRepairer.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityItemRepairer; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -56,7 +57,7 @@ public class BlockItemRepairer extends BlockContainerBase{ @Override public int getLightValue(IBlockAccess world, BlockPos pos){ - return Position.fromBlockPos(pos).getMetadata(world) == 1 ? 12 : 0; + return PosUtil.getMetadata(pos, world) == 1 ? 12 : 0; } @Override @@ -66,7 +67,7 @@ public class BlockItemRepairer extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLampPowerer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLampPowerer.java index 81750b054..2fb4d56d3 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLampPowerer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLampPowerer.java @@ -10,8 +10,9 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockPistonBase; @@ -35,34 +36,34 @@ public class BlockLampPowerer extends BlockBase{ @Override public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock){ - this.updateLamp(world, Position.fromBlockPos(pos)); + this.updateLamp(world, pos); } @Override public void onBlockAdded(World world, BlockPos pos, IBlockState state){ - this.updateLamp(world, Position.fromBlockPos(pos)); + this.updateLamp(world, pos); } @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal(); - Position.fromBlockPos(pos).setMetadata(world, rotation, 2); + PosUtil.setMetadata(pos, world, rotation, 2); super.onBlockPlacedBy(world, pos, state, player, stack); } - private void updateLamp(World world, Position pos){ + private void updateLamp(World world, BlockPos pos){ if(!world.isRemote){ - Position coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionByPistonRotation(pos.getMetadata(world)), pos, 0); - if(coords != null && coords.getBlock(world) instanceof BlockColoredLamp){ + BlockPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(pos, world)), pos, 0); + if(coords != null && PosUtil.getBlock(coords, world) instanceof BlockColoredLamp){ if(world.isBlockIndirectlyGettingPowered(pos) > 0){ - if(!((BlockColoredLamp)coords.getBlock(world)).isOn){ - pos.setBlock(world, InitBlocks.blockColoredLampOn, coords.getMetadata(world), 2); + if(!((BlockColoredLamp)PosUtil.getBlock(coords, world)).isOn){ + PosUtil.setBlock(coords, world, InitBlocks.blockColoredLampOn, PosUtil.getMetadata(coords, world), 2); } } else{ - if(((BlockColoredLamp)coords.getBlock(world)).isOn){ - pos.setBlock(world, InitBlocks.blockColoredLamp, coords.getMetadata(world), 2); + if(((BlockColoredLamp)PosUtil.getBlock(coords, world)).isOn){ + PosUtil.setBlock(coords, world, InitBlocks.blockColoredLamp, PosUtil.getMetadata(coords, world), 2); } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java index a583e605b..9849619e0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java @@ -10,10 +10,10 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; @@ -62,7 +62,7 @@ public class BlockLaserRelay extends BlockContainerBase{ @Override public void setBlockBoundsBasedOnState(IBlockAccess world, BlockPos pos){ - int meta = Position.fromBlockPos(pos).getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); float pixel = 1F/16F; if(meta == 0){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLeafGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLeafGenerator.java index 0ccf8fea9..66214b816 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLeafGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLeafGenerator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityLeafGenerator; import net.minecraft.block.material.Material; @@ -43,7 +42,7 @@ public class BlockLeafGenerator extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockMiner.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockMiner.java index ebbdcfda9..fa39e5b0f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockMiner.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockMiner.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; @@ -71,7 +71,7 @@ public class BlockMiner extends BlockContainerBase implements IHudDisplay{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java index 8b036ac43..4b4c0e2c8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java @@ -10,12 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -50,7 +51,7 @@ public class BlockOilGenerator extends BlockContainerBase{ @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand){ - if(Position.fromBlockPos(pos).getMetadata(world) == 1){ + if(PosUtil.getMetadata(pos, world) == 1){ for(int i = 0; i < 5; i++){ world.spawnParticle(ClientProxy.bulletForMyValentine ? EnumParticleTypes.HEART : EnumParticleTypes.SMOKE_NORMAL, (double)pos.getX()+0.5F, (double)pos.getY()+1.0F, (double)pos.getZ()+0.5F, 0.0D, 0.0D, 0.0D); } @@ -76,7 +77,7 @@ public class BlockOilGenerator extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java index 210f5fe16..97ec0e515 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java @@ -10,13 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.tile.*; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -57,7 +57,7 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ if(this.type == Type.PLACER || this.type == Type.BREAKER){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); } super.breakBlock(world, pos, state); } @@ -80,7 +80,7 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{ @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ){ - if(this.tryToggleRedstone(world, Position.fromBlockPos(pos), player)){ + if(this.tryToggleRedstone(world, pos, player)){ return true; } if(!world.isRemote){ @@ -107,8 +107,8 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{ minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.GOLD+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".blockPhantomRange.desc")+": "+phantom.getRange(), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-40, StringUtil.DECIMAL_COLOR_WHITE); if(phantom.hasBoundPosition()){ int distance = (int)new Vec3(posHit.getBlockPos()).distanceTo(new Vec3(phantom.getBoundPosition())); - Item item = phantom.getBoundPosition().getItemBlock(minecraft.theWorld); - String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(phantom.getBoundPosition().getBlock(minecraft.theWorld), 1, phantom.getBoundPosition().getMetadata(minecraft.theWorld))); + Item item = PosUtil.getItemBlock(phantom.getBoundPosition(), minecraft.theWorld); + String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(PosUtil.getBlock(phantom.getBoundPosition(), minecraft.theWorld), 1, PosUtil.getMetadata(phantom.getBoundPosition(), minecraft.theWorld))); StringUtil.drawSplitString(minecraft.fontRendererObj, StringUtil.localizeFormatted("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.blockInfo.desc", name, phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ(), distance), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-30, 200, StringUtil.DECIMAL_COLOR_WHITE, true); if(phantom.isBoundThingInRange()){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockRangedCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockRangedCollector.java index 13d782493..6d608829a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockRangedCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockRangedCollector.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; @@ -64,7 +63,7 @@ public class BlockRangedCollector extends BlockContainerBase{ if(aTile instanceof TileEntityRangedCollector){ TileEntityRangedCollector tile = (TileEntityRangedCollector)aTile; for(int i = 0; i < TileEntityRangedCollector.WHITELIST_START; i++){ - this.dropSlotFromInventory(i, tile, world, Position.fromBlockPos(pos)); + this.dropSlotFromInventory(i, tile, world, pos); } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSlabs.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSlabs.java index eda653e73..d81f82da5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSlabs.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSlabs.java @@ -10,9 +10,9 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; @@ -69,7 +69,7 @@ public class BlockSlabs extends BlockBase{ @Override public void setBlockBoundsBasedOnState(IBlockAccess world, BlockPos pos){ - int meta = Position.fromBlockPos(pos).getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); float minY = meta == 1 ? 0.5F : 0.0F; float maxY = meta == 1 ? 1.0F : 0.5F; this.setBlockBounds(0.0F, minY, 0F, 1.0F, maxY, 1.0F); @@ -100,10 +100,9 @@ public class BlockSlabs extends BlockBase{ @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ){ - Position thePos = Position.fromBlockPos(pos); - if(thePos.getBlock(world) == this.block && ((side.ordinal() == 1 && thePos.getMetadata(world) == 0) || (side.ordinal() == 0 && thePos.getMetadata(world) == 1))){ - if(thePos.setBlock(world, ((BlockSlabs)this.block).fullBlock, ((BlockSlabs)this.block).meta, 3)){ - world.playSoundEffect(thePos.getX()+0.5F, thePos.getY()+0.5F, thePos.getZ()+0.5F, this.block.stepSound.getBreakSound(), (this.block.stepSound.getVolume()+1.0F)/2.0F, this.block.stepSound.frequency*0.8F); + if(PosUtil.getBlock(pos, world) == this.block && ((side.ordinal() == 1 && PosUtil.getMetadata(pos, world) == 0) || (side.ordinal() == 0 && PosUtil.getMetadata(pos, world) == 1))){ + if(PosUtil.setBlock(pos, world, ((BlockSlabs)this.block).fullBlock, ((BlockSlabs)this.block).meta, 3)){ + world.playSoundEffect(pos.getX()+0.5F, pos.getY()+0.5F, pos.getZ()+0.5F, this.block.stepSound.getBreakSound(), (this.block.stepSound.getVolume()+1.0F)/2.0F, this.block.stepSound.frequency*0.8F); stack.stackSize--; return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSmileyCloud.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSmileyCloud.java index 78e8389be..1c1687ed6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSmileyCloud.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockSmileyCloud.java @@ -10,13 +10,14 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.achievement.TheAchievements; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntitySmileyCloud; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -89,7 +90,7 @@ public class BlockSmileyCloud extends BlockContainerBase{ @Override public void setBlockBoundsBasedOnState(IBlockAccess world, BlockPos pos){ - int meta = Position.fromBlockPos(pos).getMetadata(world); + int meta = PosUtil.getMetadata(pos, world); float f = 0.0625F; if(meta == 0){ @@ -113,7 +114,7 @@ public class BlockSmileyCloud extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); super.breakBlock(world, pos, state); } @@ -125,19 +126,18 @@ public class BlockSmileyCloud extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 1){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } if(rotation == 2){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 3){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } super.onBlockPlacedBy(world, pos, state, player, stack); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockTreasureChest.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockTreasureChest.java index 3778976ce..ec3bfed7a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockTreasureChest.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockTreasureChest.java @@ -11,10 +11,10 @@ package de.ellpeck.actuallyadditions.mod.blocks; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.recipe.TreasureChestLoot; import de.ellpeck.actuallyadditions.mod.achievement.TheAchievements; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -64,7 +64,7 @@ public class BlockTreasureChest extends BlockBase{ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){ if(!world.isRemote){ world.playSoundAtEntity(player, "random.chestopen", 0.2F, Util.RANDOM.nextFloat()*0.1F+0.9F); - this.dropItems(world, Position.fromBlockPos(pos)); + this.dropItems(world, pos); world.setBlockToAir(pos); player.triggerAchievement(TheAchievements.OPEN_TREASURE_CHEST.ach); @@ -80,23 +80,22 @@ public class BlockTreasureChest extends BlockBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 1){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } if(rotation == 2){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 3){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } } - private void dropItems(World world, Position pos){ + private void dropItems(World world, BlockPos pos){ for(int i = 0; i < MathHelper.getRandomIntegerInRange(Util.RANDOM, 3, 6); i++){ TreasureChestLoot theReturn = WeightedRandom.getRandomItem(Util.RANDOM, ActuallyAdditionsAPI.treasureChestLoot); ItemStack itemStack = theReturn.returnItem.copy(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockWildPlant.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockWildPlant.java index 6dd9567ef..30a94f885 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockWildPlant.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockWildPlant.java @@ -10,11 +10,12 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBushBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -44,9 +45,8 @@ public class BlockWildPlant extends BlockBushBase{ @Override public boolean canBlockStay(World world, BlockPos pos, IBlockState state){ - Position thePos = Position.fromBlockPos(pos); - Position offset = thePos.getOffsetPosition(0, -1, 0); - return thePos.getMetadata(world) == TheWildPlants.RICE.ordinal() ? offset.getMaterial(world) == Material.water : offset.getBlock(world).canSustainPlant(world, offset, EnumFacing.UP, this); + BlockPos offset = PosUtil.offset(pos, 0, -1, 0); + return PosUtil.getMetadata(pos, world) == TheWildPlants.RICE.ordinal() ? PosUtil.getMaterial(offset, world) == Material.water : PosUtil.getBlock(offset, world).canSustainPlant(world, offset, EnumFacing.UP, this); } @Override @@ -72,8 +72,8 @@ public class BlockWildPlant extends BlockBushBase{ @Override @SideOnly(Side.CLIENT) public Item getItem(World world, BlockPos pos){ - int meta = Position.fromBlockPos(pos).getMetadata(world); - return meta >= allWildPlants.length ? null : ((BlockPlant)allWildPlants[meta].wildVersionOf).seedItem; + int metadata = PosUtil.getMetadata(pos, world); + return metadata >= allWildPlants.length ? null : ((BlockPlant)allWildPlants[metadata].wildVersionOf).seedItem; } @SuppressWarnings("all") @@ -86,7 +86,7 @@ public class BlockWildPlant extends BlockBushBase{ @Override public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune){ - int metadata = Position.fromBlockPos(pos).getMetadata(world); + int metadata = PosUtil.getMetadata(pos, world); return metadata >= allWildPlants.length ? null : allWildPlants[metadata].wildVersionOf.getDrops(world, pos, allWildPlants[metadata].wildVersionOf.getStateFromMeta(7), fortune); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java index 2ac3a7517..56618d060 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java @@ -10,12 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -65,19 +66,18 @@ public class BlockXPSolidifier extends BlockContainerBase{ @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; - Position thePos = Position.fromBlockPos(pos); if(rotation == 0){ - thePos.setMetadata(world, 0, 2); + PosUtil.setMetadata(pos, world, 0, 2); } if(rotation == 1){ - thePos.setMetadata(world, 3, 2); + PosUtil.setMetadata(pos, world, 3, 2); } if(rotation == 2){ - thePos.setMetadata(world, 1, 2); + PosUtil.setMetadata(pos, world, 1, 2); } if(rotation == 3){ - thePos.setMetadata(world, 2, 2); + PosUtil.setMetadata(pos, world, 2, 2); } super.onBlockPlacedBy(world, pos, state, player, stack); @@ -85,7 +85,7 @@ public class BlockXPSolidifier extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ - this.dropInventory(world, Position.fromBlockPos(pos)); + this.dropInventory(world, pos); TileEntity tile = world.getTileEntity(pos); if(tile instanceof TileEntityXPSolidifier){ TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)tile; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBase.java index 50124b36c..25cc4c1c0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBase.java @@ -12,9 +12,9 @@ package de.ellpeck.actuallyadditions.mod.blocks.base; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.item.EnumRarity; @@ -59,20 +59,18 @@ public class BlockBase extends Block{ return EnumRarity.COMMON; } - public static final PropertyInteger META = PropertyInteger.create("metadata", 0, 15); - @Override protected BlockState createBlockState(){ - return new BlockState(this, META); + return new BlockState(this, PosUtil.META); } @Override public IBlockState getStateFromMeta(int meta){ - return getDefaultState().withProperty(META, meta); + return getDefaultState().withProperty(PosUtil.META, meta); } @Override public int getMetaFromState(IBlockState state){ - return state.getValue(META); + return state.getValue(PosUtil.META); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBushBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBushBase.java index 28362a05d..1f459215c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBushBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockBushBase.java @@ -12,8 +12,8 @@ package de.ellpeck.actuallyadditions.mod.blocks.base; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockBush; -import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.item.EnumRarity; @@ -58,20 +58,18 @@ public class BlockBushBase extends BlockBush{ return EnumRarity.COMMON; } - public static final PropertyInteger META = PropertyInteger.create("metadata", 0, 15); - @Override protected BlockState createBlockState(){ - return new BlockState(this, META); + return new BlockState(this, PosUtil.META); } @Override public IBlockState getStateFromMeta(int meta){ - return getDefaultState().withProperty(META, meta); + return getDefaultState().withProperty(PosUtil.META, meta); } @Override public int getMetaFromState(IBlockState state){ - return state.getValue(META); + return state.getValue(PosUtil.META); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java index f33f3bb45..91288deb7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java @@ -10,16 +10,15 @@ package de.ellpeck.actuallyadditions.mod.blocks.base; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.tile.*; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockRedstoneTorch; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; @@ -78,9 +77,9 @@ public abstract class BlockContainerBase extends BlockContainer{ return EnumRarity.COMMON; } - public void dropInventory(World world, Position position){ + public void dropInventory(World world, BlockPos position){ if(!world.isRemote){ - TileEntity aTile = position.getTileEntity(world); + TileEntity aTile = world.getTileEntity(position); if(aTile instanceof TileEntityInventoryBase){ TileEntityInventoryBase tile = (TileEntityInventoryBase)aTile; if(tile.getSizeInventory() > 0){ @@ -92,7 +91,7 @@ public abstract class BlockContainerBase extends BlockContainer{ } } - public void dropSlotFromInventory(int i, TileEntityInventoryBase tile, World world, Position pos){ + public void dropSlotFromInventory(int i, TileEntityInventoryBase tile, World world, BlockPos pos){ ItemStack stack = tile.getStackInSlot(i); if(stack != null && stack.stackSize > 0){ float dX = Util.RANDOM.nextFloat()*0.8F+0.1F; @@ -113,10 +112,10 @@ public abstract class BlockContainerBase extends BlockContainer{ @Override public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock){ - this.updateRedstoneState(world, Position.fromBlockPos(pos)); + this.updateRedstoneState(world, pos); } - public void updateRedstoneState(World world, Position pos){ + public void updateRedstoneState(World world, BlockPos pos){ if(!world.isRemote){ TileEntity tile = world.getTileEntity(pos); if(tile instanceof TileEntityBase){ @@ -239,13 +238,13 @@ public abstract class BlockContainerBase extends BlockContainer{ @Override public void onBlockAdded(World world, BlockPos pos, IBlockState state){ - this.updateRedstoneState(world, Position.fromBlockPos(pos)); + this.updateRedstoneState(world, pos); } - public boolean tryToggleRedstone(World world, Position pos, EntityPlayer player){ + public boolean tryToggleRedstone(World world, BlockPos pos, EntityPlayer player){ ItemStack stack = player.getCurrentEquippedItem(); if(stack != null && Block.getBlockFromItem(stack.getItem()) instanceof BlockRedstoneTorch){ - TileEntity tile = pos.getTileEntity(world); + TileEntity tile = world.getTileEntity(pos); if(tile instanceof IRedstoneToggle){ if(!world.isRemote){ ((IRedstoneToggle)tile).toggle(!((IRedstoneToggle)tile).isPulseMode()); @@ -261,20 +260,18 @@ public abstract class BlockContainerBase extends BlockContainer{ return false; } - public static final PropertyInteger META = PropertyInteger.create("metadata", 0, 15); - @Override protected BlockState createBlockState(){ - return new BlockState(this, META); + return new BlockState(this, PosUtil.META); } @Override public IBlockState getStateFromMeta(int meta){ - return getDefaultState().withProperty(META, meta); + return getDefaultState().withProperty(PosUtil.META, meta); } @Override public int getMetaFromState(IBlockState state){ - return state.getValue(META); + return state.getValue(PosUtil.META); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockFluidFlowing.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockFluidFlowing.java index fa8173121..e35c10b0b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockFluidFlowing.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockFluidFlowing.java @@ -10,9 +10,10 @@ package de.ellpeck.actuallyadditions.mod.blocks.base; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.material.Material; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; @@ -60,12 +61,12 @@ public class BlockFluidFlowing extends BlockFluidClassic{ @Override public boolean canDisplace(IBlockAccess world, BlockPos pos){ - return !Position.fromBlockPos(pos).getMaterial(world).isLiquid() && super.canDisplace(world, pos); + return !PosUtil.getMaterial(pos, world).isLiquid() && super.canDisplace(world, pos); } @Override public boolean displaceIfPossible(World world, BlockPos pos){ - return !Position.fromBlockPos(pos).getMaterial(world).isLiquid() && super.displaceIfPossible(world, pos); + return !PosUtil.getMaterial(pos, world).isLiquid() && super.displaceIfPossible(world, pos); } public EnumRarity getRarity(ItemStack stack){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockWallAA.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockWallAA.java index ecab947e4..c052be249 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockWallAA.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockWallAA.java @@ -28,7 +28,6 @@ import java.util.List; public class BlockWallAA extends BlockWall{ private String name; - private Block baseBlock; private int meta; public BlockWallAA(String name, Block base){ @@ -37,7 +36,6 @@ public class BlockWallAA extends BlockWall{ public BlockWallAA(String name, Block base, int meta){ super(base); - this.baseBlock = base; this.name = name; this.meta = meta; @@ -80,6 +78,6 @@ public class BlockWallAA extends BlockWall{ @Override public int damageDropped(IBlockState state){ - return this.getMetaFromState(state); + return meta; } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderLaserRelay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderLaserRelay.java index 58847b5fc..7772c5bbd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderLaserRelay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderLaserRelay.java @@ -10,8 +10,8 @@ package de.ellpeck.actuallyadditions.mod.blocks.render; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.tileentity.TileEntity; import org.lwjgl.opengl.GL11; @@ -30,7 +30,7 @@ public class RenderLaserRelay extends RenderTileEntity{ GL11.glTranslatef(0.0F, -2.0F, 0.0F); this.bindTexture(resLoc); - int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld()); + int meta = PosUtil.getMetadata(tile.getPos(), tile.getWorld()); if(meta == 0){ GL11.glRotatef(180F, 1F, 0F, 0F); GL11.glTranslatef(0F, -2F, 0F); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderReconstructorLens.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderReconstructorLens.java index 4a14f1af7..bc22f0397 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderReconstructorLens.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderReconstructorLens.java @@ -10,10 +10,11 @@ package de.ellpeck.actuallyadditions.mod.blocks.render; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.api.lens.ILensItem; import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -33,7 +34,7 @@ public class RenderReconstructorLens extends TileEntitySpecialRenderer{ GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - int meta = Position.fromTileEntity(tile).getMetadata(getWorld()); + int meta = PosUtil.getMetadata(tile.getPos(), tile.getWorld()); if(meta == 0){ GL11.glTranslatef(0F, -0.5F, 0F); GL11.glTranslatef(-0.25F, 0F, -0.25F); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderSmileyCloud.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderSmileyCloud.java index 1ef11319d..7181ce7a5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderSmileyCloud.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderSmileyCloud.java @@ -10,13 +10,13 @@ package de.ellpeck.actuallyadditions.mod.blocks.render; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; import de.ellpeck.actuallyadditions.mod.misc.cloud.ISmileyCloudEasterEgg; import de.ellpeck.actuallyadditions.mod.misc.cloud.SmileyCloudEasterEggs; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.tile.TileEntitySmileyCloud; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; @@ -66,7 +66,7 @@ public class RenderSmileyCloud extends RenderTileEntity{ GL11.glPushMatrix(); { if(theModel.doesRotate()){ - int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld()); + int meta = PosUtil.getMetadata(tile.getPos(), tile.getWorld()); if(meta == 0){ GL11.glRotatef(180F, 0F, 1F, 0F); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderTileEntity.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderTileEntity.java index e445aeed7..1d4212aa9 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderTileEntity.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderTileEntity.java @@ -10,9 +10,9 @@ package de.ellpeck.actuallyadditions.mod.blocks.render; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; @@ -37,7 +37,7 @@ public class RenderTileEntity extends TileEntitySpecialRenderer{ this.bindTexture(resLoc); if(theModel.doesRotate()){ - int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld()); + int meta = PosUtil.getMetadata(tile.getPos(), tile.getWorld()); if(meta == 0){ GL11.glRotatef(180F, 0F, 1F, 0F); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/event/BucketFillEvent.java b/src/main/java/de/ellpeck/actuallyadditions/mod/event/BucketFillEvent.java index a9d9934e6..5d6bb78ae 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/event/BucketFillEvent.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/event/BucketFillEvent.java @@ -10,9 +10,10 @@ package de.ellpeck.actuallyadditions.mod.event; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.items.InitItems; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -29,7 +30,7 @@ public class BucketFillEvent{ } private void fillBucket(FillBucketEvent event, Item item, Block fluid){ - Block block = Position.fromBlockPos(event.target.getBlockPos()).getBlock(event.world); + Block block = PosUtil.getBlock(event.target.getBlockPos(), event.world); if(block == fluid){ event.world.setBlockToAir(event.target.getBlockPos()); event.result = new ItemStack(item); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/event/HudEvent.java b/src/main/java/de/ellpeck/actuallyadditions/mod/event/HudEvent.java index 372a75d8c..a55d44217 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/event/HudEvent.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/event/HudEvent.java @@ -10,11 +10,11 @@ package de.ellpeck.actuallyadditions.mod.event; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.mod.tile.IRedstoneToggle; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockRedstoneTorch; @@ -52,7 +52,7 @@ public class HudEvent{ } if(posHit != null){ - Block blockHit = Position.fromBlockPos(posHit.getBlockPos()).getBlock(minecraft.theWorld); + Block blockHit = PosUtil.getBlock(posHit.getBlockPos(), minecraft.theWorld); TileEntity tileHit = minecraft.theWorld.getTileEntity(posHit.getBlockPos()); if(blockHit instanceof IHudDisplay){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/event/WorldDecorationEvent.java b/src/main/java/de/ellpeck/actuallyadditions/mod/event/WorldDecorationEvent.java index 6caefa3ae..0f83e2734 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/event/WorldDecorationEvent.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/event/WorldDecorationEvent.java @@ -10,17 +10,19 @@ package de.ellpeck.actuallyadditions.mod.event; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants; import de.ellpeck.actuallyadditions.mod.config.ConfigValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; import net.minecraft.block.material.Material; +import net.minecraft.util.BlockPos; import net.minecraft.world.biome.BiomeGenOcean; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.fml.common.eventhandler.Event; @@ -44,14 +46,14 @@ public class WorldDecorationEvent{ //Generate Treasure Chests if(ConfigBoolValues.DO_TREASURE_CHEST_GEN.isEnabled()){ if(event.rand.nextInt(300) == 0){ - Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); - randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos)); + BlockPos randomPos = new BlockPos(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); + randomPos = event.world.getTopSolidOrLiquidBlock(randomPos); if(event.world.getBiomeGenForCoords(randomPos) instanceof BiomeGenOcean){ if(randomPos.getY() >= 25 && randomPos.getY() <= 45){ - if(randomPos.getBlock(event.world).getMaterial() == Material.water){ - if(randomPos.getOffsetPosition(0, -1, 0).getMaterial(event.world).isSolid()){ - randomPos.setBlock(event.world, InitBlocks.blockTreasureChest, event.rand.nextInt(4), 2); + if(PosUtil.getBlock(randomPos, event.world).getMaterial() == Material.water){ + if(PosUtil.getMaterial(PosUtil.offset(randomPos, 0, -1, 0), event.world).isSolid()){ + PosUtil.setBlock(randomPos, event.world, InitBlocks.blockTreasureChest, event.rand.nextInt(4), 2); } } } @@ -65,15 +67,15 @@ public class WorldDecorationEvent{ if(ConfigBoolValues.DO_RICE_GEN.isEnabled()){ for(int i = 0; i < ConfigIntValues.RICE_AMOUNT.getValue(); i++){ if(event.rand.nextInt(50) == 0){ - Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); - randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos)); + BlockPos randomPos = new BlockPos(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); + randomPos = event.world.getTopSolidOrLiquidBlock(randomPos); - if(randomPos.getMaterial(event.world) == Material.water){ + if(PosUtil.getMaterial(randomPos, event.world) == Material.water){ ArrayList blocksAroundBottom = WorldUtil.getMaterialsAround(event.world, randomPos); - ArrayList blocksAroundTop = WorldUtil.getMaterialsAround(event.world, randomPos.getOffsetPosition(0, 1, 0)); + ArrayList blocksAroundTop = WorldUtil.getMaterialsAround(event.world, PosUtil.offset(randomPos, 0, 1, 0)); if(blocksAroundBottom.contains(Material.grass) || blocksAroundBottom.contains(Material.ground) || blocksAroundBottom.contains(Material.rock) || blocksAroundBottom.contains(Material.sand)){ - if(!blocksAroundTop.contains(Material.water) && randomPos.getMaterial(event.world) == Material.air){ - randomPos.getOffsetPosition(0, 1, 0).setBlock(event.world, InitBlocks.blockWildPlant, TheWildPlants.RICE.ordinal(), 2); + if(!blocksAroundTop.contains(Material.water) && PosUtil.getMaterial(randomPos, event.world) == Material.air){ + PosUtil.setBlock(PosUtil.offset(randomPos, 0, 1, 0), event.world, InitBlocks.blockWildPlant, TheWildPlants.RICE.ordinal(), 2); } } } @@ -86,13 +88,13 @@ public class WorldDecorationEvent{ if(doIt){ for(int i = 0; i < amount; i++){ if(event.rand.nextInt(400) == 0){ - Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); - randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos)); + BlockPos randomPos = new BlockPos(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8); + randomPos = event.world.getTopSolidOrLiquidBlock(randomPos); - if(randomPos.getMaterial(event.world) == blockBelow){ - Position top = randomPos.getOffsetPosition(0, 1, 0); - top.setBlock(event.world, plant, meta, 2); - if(plant instanceof BlockBush && !((BlockBush)plant).canBlockStay(event.world, top, top.getBlockState(event.world))){ + if(PosUtil.getMaterial(randomPos, event.world) == blockBelow){ + BlockPos top = PosUtil.offset(randomPos, 0, 1, 0); + PosUtil.setBlock(top, event.world, plant, meta, 2); + if(plant instanceof BlockBush && !((BlockBush)plant).canBlockStay(event.world, top, event.world.getBlockState(top))){ event.world.setBlockToAir(top); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/gen/OreGen.java b/src/main/java/de/ellpeck/actuallyadditions/mod/gen/OreGen.java index 3e6be8436..46a556502 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/gen/OreGen.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/gen/OreGen.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.gen; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; import de.ellpeck.actuallyadditions.mod.config.ConfigValues; @@ -20,6 +19,7 @@ import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.block.state.pattern.BlockHelper; import net.minecraft.init.Blocks; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.WorldType; @@ -79,7 +79,7 @@ public class OreGen implements IWorldGenerator{ int posX = blockXPos+random.nextInt(16); int posY = minY+random.nextInt(yDiff); int posZ = blockZPos+random.nextInt(16); - new WorldGenMinable(block.getStateFromMeta(meta), maxVeinSize, BlockHelper.forBlock(blockIn)).generate(world, random, new Position(posX, posY, posZ)); + new WorldGenMinable(block.getStateFromMeta(meta), maxVeinSize, BlockHelper.forBlock(blockIn)).generate(world, random, new BlockPos(posX, posY, posZ)); } } else{ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java index 2cc63478a..6f5180775 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet; import de.ellpeck.actuallyadditions.mod.booklet.GuiBookletStand; @@ -18,6 +17,7 @@ import de.ellpeck.actuallyadditions.mod.inventory.gui.*; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.util.ModUtil; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; import net.minecraftforge.fml.common.network.NetworkRegistry; @@ -33,7 +33,7 @@ public class GuiHandler implements IGuiHandler{ public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ TileEntityBase tile = null; if(GuiTypes.values()[id].checkTileEntity){ - tile = (TileEntityBase)world.getTileEntity(new Position(x, y, z)); + tile = (TileEntityBase)world.getTileEntity(new BlockPos(x, y, z)); } switch(GuiTypes.values()[id]){ case FEEDER: @@ -97,7 +97,7 @@ public class GuiHandler implements IGuiHandler{ public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ TileEntityBase tile = null; if(GuiTypes.values()[id].checkTileEntity){ - tile = (TileEntityBase)world.getTileEntity(new Position(x, y, z)); + tile = (TileEntityBase)world.getTileEntity(new BlockPos(x, y, z)); } switch(GuiTypes.values()[id]){ case FEEDER: diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java index 64f96090b..d5b3ab558 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java @@ -11,7 +11,6 @@ package de.ellpeck.actuallyadditions.mod.items; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.booklet.BookletPage; import de.ellpeck.actuallyadditions.api.internal.EntrySet; @@ -23,6 +22,7 @@ import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -65,8 +65,8 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{ @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing face, float hitX, float hitY, float hitZ){ if(player.isSneaking()){ - Block block = Position.fromBlockPos(pos).getBlock(world); - ItemStack blockStack = new ItemStack(block, 1, Position.fromBlockPos(pos).getMetadata(world)); + Block block = PosUtil.getBlock(pos, world); + ItemStack blockStack = new ItemStack(block, 1, PosUtil.getMetadata(pos, world)); if(blockStack != null){ BookletPage page = BookletUtils.getFirstPageForStack(blockStack); if(page != null){ @@ -95,9 +95,9 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{ @Override public void displayHud(Minecraft minecraft, EntityPlayer player, ItemStack stack, MovingObjectPosition posHit, Profiler profiler, ScaledResolution resolution){ if(posHit != null){ - Block block = Position.fromBlockPos(posHit.getBlockPos()).getBlock(minecraft.theWorld); + Block block = PosUtil.getBlock(posHit.getBlockPos(), minecraft.theWorld); if(block != null && !block.isAir(minecraft.theWorld, posHit.getBlockPos())){ - ItemStack blockStack = new ItemStack(block, 1, Position.fromBlockPos(posHit.getBlockPos()).getMetadata(minecraft.theWorld)); + ItemStack blockStack = new ItemStack(block, 1, PosUtil.getMetadata(posHit.getBlockPos(), minecraft.theWorld)); if(blockStack != null){ int height = resolution.getScaledHeight()/5*3; if(player.isSneaking()){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemChestToCrateUpgrade.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemChestToCrateUpgrade.java index e1e274493..98e6e598f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemChestToCrateUpgrade.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemChestToCrateUpgrade.java @@ -10,10 +10,10 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityGiantChest; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.entity.player.EntityPlayer; @@ -35,7 +35,7 @@ public class ItemChestToCrateUpgrade extends ItemBase{ public boolean onItemUse(ItemStack heldStack, EntityPlayer player, World world, BlockPos pos, EnumFacing facing, float par8, float par9, float par10){ if(player.isSneaking()){ TileEntity tileHit = world.getTileEntity(pos); - Block block = Position.fromBlockPos(pos).getBlock(world); + Block block = PosUtil.getBlock(pos, world); if(block instanceof BlockChest && tileHit instanceof TileEntityChest){ if(!world.isRemote){ TileEntityChest chest = (TileEntityChest)tileHit; @@ -51,8 +51,8 @@ public class ItemChestToCrateUpgrade extends ItemBase{ } //Set New Block - world.playAuxSFX(2001, pos, Block.getIdFromBlock(block)+(Position.fromBlockPos(pos).getMetadata(world) << 12)); - Position.fromBlockPos(pos).setBlock(world, InitBlocks.blockGiantChest, 0, 2); + world.playAuxSFX(2001, pos, Block.getIdFromBlock(block)+(PosUtil.getMetadata(pos, world) << 12)); + PosUtil.setBlock(pos, world, InitBlocks.blockGiantChest, 0, 2); //Copy Items into new Chest TileEntity newTileHit = world.getTileEntity(pos); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java index 37021dbf2..bc072ef5f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java @@ -12,13 +12,13 @@ package de.ellpeck.actuallyadditions.mod.items; import cofh.api.energy.IEnergyContainerItem; import com.google.common.collect.Multimap; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.config.ConfigValues; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import de.ellpeck.actuallyadditions.mod.util.ItemUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -436,12 +436,12 @@ public class ItemDrill extends ItemEnergy{ } //Not defined later because main Block is getting broken below - float mainHardness = Position.fromBlockPos(aPos).getBlock(world).getBlockHardness(world, aPos); + float mainHardness = PosUtil.getBlock(aPos, world).getBlockHardness(world, aPos); //Break Middle Block first int use = this.getEnergyUsePerBlock(stack); if(this.getEnergyStored(stack) >= use){ - if(!this.tryHarvestBlock(world, Position.fromBlockPos(aPos), false, stack, player, use)){ + if(!this.tryHarvestBlock(world, aPos, false, stack, player, use)){ return false; } } @@ -457,8 +457,8 @@ public class ItemDrill extends ItemEnergy{ if(!(aPos.getX() == xPos && aPos.getY() == yPos && aPos.getZ() == zPos)){ if(this.getEnergyStored(stack) >= use){ //Only break Blocks around that are (about) as hard or softer - Position thePos = new Position(xPos, yPos, zPos); - if(thePos.getBlock(world).getBlockHardness(world, thePos) <= mainHardness+5.0F){ + BlockPos thePos = new BlockPos(xPos, yPos, zPos); + if(PosUtil.getBlock(thePos, world).getBlockHardness(world, thePos) <= mainHardness+5.0F){ this.tryHarvestBlock(world, thePos, true, stack, player, use); } } @@ -484,12 +484,11 @@ public class ItemDrill extends ItemEnergy{ * @param player The Player breaking the Blocks * @param use The Energy that should be extracted per Block */ - private boolean tryHarvestBlock(World world, Position pos, boolean isExtra, ItemStack stack, EntityPlayer player, int use){ - Block block = pos.getBlock(world); + private boolean tryHarvestBlock(World world, BlockPos pos, boolean isExtra, ItemStack stack, EntityPlayer player, int use){ + Block block = PosUtil.getBlock(pos, world); float hardness = block.getBlockHardness(world, pos); - int meta = pos.getMetadata(world); - boolean canHarvest = (ForgeHooks.canHarvestBlock(block, player, world, pos) || this.canHarvestBlock(block, stack)) && (!isExtra || this.getDigSpeed(stack, pos.getBlockState(world)) > 1.0F); - if(hardness >= 0.0F && (!isExtra || (canHarvest && !block.hasTileEntity(pos.getBlockState(world))))){ + boolean canHarvest = (ForgeHooks.canHarvestBlock(block, player, world, pos) || this.canHarvestBlock(block, stack)) && (!isExtra || this.getDigSpeed(stack, world.getBlockState(pos)) > 1.0F); + if(hardness >= 0.0F && (!isExtra || (canHarvest && !block.hasTileEntity(world.getBlockState(pos))))){ this.extractEnergy(stack, use, false); //Break the Block return WorldUtil.playerHarvestBlock(world, pos, player); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemGrowthRing.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemGrowthRing.java index 6a6882ffe..f4b1922a1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemGrowthRing.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemGrowthRing.java @@ -10,8 +10,8 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.block.BlockGrass; @@ -21,6 +21,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.IPlantable; @@ -44,7 +45,7 @@ public class ItemGrowthRing extends ItemEnergy{ int energyUse = 300; if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= energyUse){ - ArrayList blocks = new ArrayList(); + ArrayList blocks = new ArrayList(); if(stack.getTagCompound() == null){ stack.setTagCompound(new NBTTagCompound()); @@ -60,9 +61,10 @@ public class ItemGrowthRing extends ItemEnergy{ int theX = MathHelper.floor_double(player.posX+x); int theY = MathHelper.floor_double(player.posY+y); int theZ = MathHelper.floor_double(player.posZ+z); - Block theBlock = new Position(theX, theY, theZ).getBlock(world); + BlockPos posInQuestion = new BlockPos(theX, theY, theZ); + Block theBlock = PosUtil.getBlock(posInQuestion, world); if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){ - blocks.add(new Position(theX, theY, theZ)); + blocks.add(posInQuestion); } } } @@ -72,13 +74,13 @@ public class ItemGrowthRing extends ItemEnergy{ if(!blocks.isEmpty()){ for(int i = 0; i < 45; i++){ if(this.getEnergyStored(stack) >= energyUse){ - Position pos = blocks.get(Util.RANDOM.nextInt(blocks.size())); + BlockPos pos = blocks.get(Util.RANDOM.nextInt(blocks.size())); - int metaBefore = pos.getMetadata(world); - pos.getBlock(world).updateTick(world, pos, pos.getBlockState(world), Util.RANDOM); + int metaBefore = PosUtil.getMetadata(pos, world); + PosUtil.getBlock(pos, world).updateTick(world, pos, world.getBlockState(pos), Util.RANDOM); //Show Particles if Metadata changed - if(pos.getMetadata(world) != metaBefore){ + if(PosUtil.getMetadata(pos, world) != metaBefore){ world.playAuxSFX(2005, pos, 0); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLaserWrench.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLaserWrench.java index 5449e61c2..18f914a88 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLaserWrench.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLaserWrench.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.misc.LaserRelayConnectionHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay; @@ -48,13 +47,12 @@ public class ItemLaserWrench extends ItemBase{ player.addChatComponentMessage(new ChatComponentText(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".laser.stored.desc"))); } else{ - Position savedPos = ItemPhantomConnector.getStoredPosition(stack); - Position otherPos = Position.fromBlockPos(pos); - if(ItemPhantomConnector.getStoredWorld(stack) == world && savedPos.getTileEntity(world) instanceof TileEntityLaserRelay && LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ + BlockPos savedPos = ItemPhantomConnector.getStoredPosition(stack); + if(ItemPhantomConnector.getStoredWorld(stack) == world && world.getTileEntity(savedPos) instanceof TileEntityLaserRelay && LaserRelayConnectionHandler.getInstance().addConnection(savedPos, pos)){ ItemPhantomConnector.clearStorage(stack); - ((TileEntityLaserRelay)savedPos.getTileEntity(world)).sendUpdate(); - ((TileEntityLaserRelay)otherPos.getTileEntity(world)).sendUpdate(); + ((TileEntityLaserRelay)world.getTileEntity(savedPos)).sendUpdate(); + ((TileEntityLaserRelay)world.getTileEntity(pos)).sendUpdate(); player.addChatComponentMessage(new ChatComponentText(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".laser.connected.desc"))); } @@ -84,7 +82,7 @@ public class ItemLaserWrench extends ItemBase{ @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ - Position coords = ItemPhantomConnector.getStoredPosition(stack); + BlockPos coords = ItemPhantomConnector.getStoredPosition(stack); if(coords != null){ list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); list.add("X: "+coords.getX()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLeafBlower.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLeafBlower.java index f017e9776..bf1c922c6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLeafBlower.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemLeafBlower.java @@ -10,9 +10,9 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; import net.minecraft.entity.item.EntityItem; @@ -20,6 +20,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -81,7 +82,7 @@ public class ItemLeafBlower extends ItemBase{ * @param z The Z Position of the Player */ public void breakStuff(World world, int x, int y, int z){ - ArrayList breakPositions = new ArrayList(); + ArrayList breakPositions = new ArrayList(); int rangeSides = 5; int rangeUp = 1; @@ -89,8 +90,8 @@ public class ItemLeafBlower extends ItemBase{ for(int reachZ = -rangeSides; reachZ < rangeSides+1; reachZ++){ for(int reachY = (this.isAdvanced ? -rangeSides : -rangeUp); reachY < (this.isAdvanced ? rangeSides : rangeUp)+1; reachY++){ //The current Block to break - Position pos = new Position(x+reachX, y+reachY, z+reachZ); - Block block = pos.getBlock(world); + BlockPos pos = new BlockPos(x+reachX, y+reachY, z+reachZ); + Block block = PosUtil.getBlock(pos, world); if(block != null && (block instanceof BlockBush || (this.isAdvanced && block.isLeaves(world, pos)))){ breakPositions.add(pos); } @@ -101,13 +102,13 @@ public class ItemLeafBlower extends ItemBase{ if(!breakPositions.isEmpty()){ Collections.shuffle(breakPositions); - Position theCoord = breakPositions.get(0); - Block theBlock = theCoord.getBlock(world); + BlockPos theCoord = breakPositions.get(0); + Block theBlock = PosUtil.getBlock(theCoord, world); ArrayList drops = new ArrayList(); - int meta = theCoord.getMetadata(world); + int meta = PosUtil.getMetadata(theCoord, world); //Gets all of the Drops the Block should have - drops.addAll(theBlock.getDrops(world, theCoord, theCoord.getBlockState(world), 0)); + drops.addAll(theBlock.getDrops(world, theCoord, world.getBlockState(theCoord), 0)); //Deletes the Block world.setBlockToAir(theCoord); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemPhantomConnector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemPhantomConnector.java index 4275e321d..3167d7bbd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemPhantomConnector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemPhantomConnector.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; @@ -80,14 +79,14 @@ public class ItemPhantomConnector extends ItemBase{ } } - public static Position getStoredPosition(ItemStack stack){ + public static BlockPos getStoredPosition(ItemStack stack){ NBTTagCompound tag = stack.getTagCompound(); if(tag != null){ int x = tag.getInteger("XCoordOfTileStored"); int y = tag.getInteger("YCoordOfTileStored"); int z = tag.getInteger("ZCoordOfTileStored"); if(!(x == 0 && y == 0 && z == 0)){ - return new Position(x, y, z); + return new BlockPos(x, y, z); } } return null; @@ -135,7 +134,7 @@ public class ItemPhantomConnector extends ItemBase{ @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ - Position coords = getStoredPosition(stack); + BlockPos coords = getStoredPosition(stack); if(coords != null){ list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); list.add("X: "+coords.getX()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWaterRemovalRing.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWaterRemovalRing.java index 0f5b08b52..2678bc041 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWaterRemovalRing.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWaterRemovalRing.java @@ -10,14 +10,16 @@ package de.ellpeck.actuallyadditions.mod.items; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -49,8 +51,8 @@ public class ItemWaterRemovalRing extends ItemEnergy{ int theZ = MathHelper.floor_double(player.posZ+z); if(this.getEnergyStored(stack) >= energyUse){ //Remove Water - Position pos = new Position(theX, theY, theZ); - Block block = pos.getBlock(world); + BlockPos pos = new BlockPos(theX, theY, theZ); + Block block = PosUtil.getBlock(pos, world); if(block == Blocks.water || block == Blocks.flowing_water){ world.setBlockToAir(pos); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensColor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensColor.java index 7b43b366e..89e6d898d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensColor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensColor.java @@ -10,16 +10,18 @@ package de.ellpeck.actuallyadditions.mod.items.lens; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.Lens; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import java.util.ArrayList; @@ -54,15 +56,15 @@ public class LensColor extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(Position hitBlock, IAtomicReconstructor tile){ + public boolean invoke(BlockPos hitBlock, IAtomicReconstructor tile){ if(hitBlock != null){ - if(Util.arrayContains(CONVERTABLE_BLOCKS, hitBlock.getBlock(tile.getWorldObject())) >= 0 && tile.getEnergy() >= ENERGY_USE){ - int meta = hitBlock.getMetadata(tile.getWorldObject()); + if(Util.arrayContains(CONVERTABLE_BLOCKS, PosUtil.getBlock(hitBlock, tile.getWorldObject())) >= 0 && tile.getEnergy() >= ENERGY_USE){ + int meta = PosUtil.getMetadata(hitBlock, tile.getWorldObject()); if(meta >= 15){ - hitBlock.setMetadata(tile.getWorldObject(), 0, 2); + PosUtil.setMetadata(hitBlock, tile.getWorldObject(), 0, 2); } else{ - hitBlock.setMetadata(tile.getWorldObject(), meta+1, 2); + PosUtil.setMetadata(hitBlock, tile.getWorldObject(), meta+1, 2); } tile.extractEnergy(ENERGY_USE); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDeath.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDeath.java index 5e3a16852..35e3166b2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDeath.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDeath.java @@ -10,12 +10,13 @@ package de.ellpeck.actuallyadditions.mod.items.lens; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.Lens; import de.ellpeck.actuallyadditions.mod.misc.DamageSources; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import java.util.ArrayList; @@ -23,7 +24,7 @@ public class LensDeath extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(Position hitBlock, IAtomicReconstructor tile){ + public boolean invoke(BlockPos hitBlock, IAtomicReconstructor tile){ int use = 150; //Per Block (because it doesn't only activate when something is hit like the other lenses!) if(tile.getEnergy() >= use){ tile.extractEnergy(use); @@ -34,7 +35,7 @@ public class LensDeath extends Lens{ } } - return hitBlock != null && !hitBlock.getBlock(tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock); + return hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDetonation.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDetonation.java index 27c90de23..83b556617 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDetonation.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensDetonation.java @@ -10,15 +10,16 @@ package de.ellpeck.actuallyadditions.mod.items.lens; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.Lens; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; +import net.minecraft.util.BlockPos; public class LensDetonation extends Lens{ @Override - public boolean invoke(Position hitBlock, IAtomicReconstructor tile){ - if(hitBlock != null && !hitBlock.getBlock(tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock)){ + public boolean invoke(BlockPos hitBlock, IAtomicReconstructor tile){ + if(hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock)){ int use = 250000; if(tile.getEnergy() >= use){ tile.getWorldObject().newExplosion(null, hitBlock.getX()+0.5, hitBlock.getY()+0.5, hitBlock.getZ()+0.5, 10F, true, true); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensNone.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensNone.java index 1402a0414..d4f270fa8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensNone.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensNone.java @@ -10,15 +10,17 @@ package de.ellpeck.actuallyadditions.mod.items.lens; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.Lens; import de.ellpeck.actuallyadditions.api.recipe.LensNoneRecipe; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import java.util.ArrayList; import java.util.List; @@ -27,24 +29,24 @@ public class LensNone extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(Position hitBlock, IAtomicReconstructor tile){ - if(hitBlock != null && !hitBlock.getBlock(tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock)){ + public boolean invoke(BlockPos hitBlock, IAtomicReconstructor tile){ + if(hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock)){ int range = 2; //Converting the Blocks for(int reachX = -range; reachX < range+1; reachX++){ for(int reachZ = -range; reachZ < range+1; reachZ++){ for(int reachY = -range; reachY < range+1; reachY++){ - Position pos = new Position(hitBlock.getX()+reachX, hitBlock.getY()+reachY, hitBlock.getZ()+reachZ); - List recipes = LensNoneRecipeHandler.getRecipesFor(new ItemStack(pos.getBlock(tile.getWorldObject()), 1, pos.getMetadata(tile.getWorldObject()))); + BlockPos pos = new BlockPos(hitBlock.getX()+reachX, hitBlock.getY()+reachY, hitBlock.getZ()+reachZ); + List recipes = LensNoneRecipeHandler.getRecipesFor(new ItemStack(PosUtil.getBlock(pos, tile.getWorldObject()), 1, PosUtil.getMetadata(pos, tile.getWorldObject()))); for(LensNoneRecipe recipe : recipes){ if(recipe != null && tile.getEnergy() >= recipe.energyUse){ List outputs = recipe.getOutputs(); if(outputs != null && !outputs.isEmpty()){ ItemStack output = outputs.get(0); if(output.getItem() instanceof ItemBlock){ - tile.getWorldObject().playAuxSFX(2001, pos, Block.getIdFromBlock(pos.getBlock(tile.getWorldObject()))+(pos.getMetadata(tile.getWorldObject()) << 12)); - pos.setBlock(tile.getWorldObject(), Block.getBlockFromItem(output.getItem()), output.getItemDamage(), 2); + tile.getWorldObject().playAuxSFX(2001, pos, Block.getIdFromBlock(PosUtil.getBlock(pos, tile.getWorldObject()))+(PosUtil.getMetadata(pos, tile.getWorldObject()) << 12)); + PosUtil.setBlock(pos, tile.getWorldObject(), Block.getBlockFromItem(output.getItem()), output.getItemDamage(), 2); } else{ EntityItem item = new EntityItem(tile.getWorldObject(), pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, output.copy()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerEmptyBucket.java b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerEmptyBucket.java index 06ef9228a..7d45c1066 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerEmptyBucket.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerEmptyBucket.java @@ -10,13 +10,15 @@ package de.ellpeck.actuallyadditions.mod.misc; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.IBlockSource; import net.minecraft.init.Items; import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; public class DispenserHandlerEmptyBucket extends BehaviorDefaultDispenseItem{ @@ -27,9 +29,9 @@ public class DispenserHandlerEmptyBucket extends BehaviorDefaultDispenseItem{ int x = source.getBlockTileEntity().getPos().getX()+facing.getFrontOffsetX(); int y = source.getBlockTileEntity().getPos().getY()+facing.getFrontOffsetY(); int z = source.getBlockTileEntity().getPos().getZ()+facing.getFrontOffsetZ(); - Position pos = new Position(x, y, z); + BlockPos pos = new BlockPos(x, y, z); - if(source.getWorld().isAirBlock(pos) && !pos.getMaterial(source.getWorld()).isSolid() && ((ItemBucket)bucket.getItem()).tryPlaceContainedLiquid(source.getWorld(), pos)){ + if(source.getWorld().isAirBlock(pos) && !PosUtil.getMaterial(pos, source.getWorld()).isSolid() && ((ItemBucket)bucket.getItem()).tryPlaceContainedLiquid(source.getWorld(), pos)){ return new ItemStack(Items.bucket); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFertilize.java b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFertilize.java index 0581f5fd1..09b36adb5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFertilize.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFertilize.java @@ -10,12 +10,13 @@ package de.ellpeck.actuallyadditions.mod.misc; -import de.ellpeck.actuallyadditions.api.Position; + import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.IBlockSource; import net.minecraft.item.ItemDye; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; public class DispenserHandlerFertilize extends BehaviorDefaultDispenseItem{ @@ -26,7 +27,7 @@ public class DispenserHandlerFertilize extends BehaviorDefaultDispenseItem{ int x = source.getBlockTileEntity().getPos().getX()+facing.getFrontOffsetX(); int y = source.getBlockTileEntity().getPos().getY()+facing.getFrontOffsetY(); int z = source.getBlockTileEntity().getPos().getZ()+facing.getFrontOffsetZ(); - Position pos = new Position(x, y, z); + BlockPos pos = new BlockPos(x, y, z); if(ItemDye.applyBonemeal(stack, source.getWorld(), pos, null)){ source.getWorld().playAuxSFX(2005, pos, 0); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFillBucket.java b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFillBucket.java index 8e88a9157..daf0fad2e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFillBucket.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/DispenserHandlerFillBucket.java @@ -10,7 +10,8 @@ package de.ellpeck.actuallyadditions.mod.misc; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -19,6 +20,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityDispenser; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.IFluidBlock; @@ -53,17 +55,17 @@ public class DispenserHandlerFillBucket extends BehaviorDefaultDispenseItem{ } private ItemStack tryFillBucket(IBlockSource source, int x, int y, int z, ItemStack bucket){ - Position pos = new Position(x, y, z); - Block block = pos.getBlock(source.getWorld()); + BlockPos pos = new BlockPos(x, y, z); + Block block = PosUtil.getBlock(pos, source.getWorld()); if(block == Blocks.water || block == Blocks.flowing_water){ - if(pos.getMetadata(source.getWorld()) == 0){ + if(PosUtil.getMetadata(pos, source.getWorld()) == 0){ source.getWorld().setBlockToAir(pos); return new ItemStack(Items.water_bucket); } } else if(block == Blocks.lava || block == Blocks.flowing_lava){ - if(pos.getMetadata(source.getWorld()) == 0){ + if(PosUtil.getMetadata(pos, source.getWorld()) == 0){ source.getWorld().setBlockToAir(pos); return new ItemStack(Items.lava_bucket); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/LaserRelayConnectionHandler.java b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/LaserRelayConnectionHandler.java index 3b124b5ab..c2f77f41c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/LaserRelayConnectionHandler.java @@ -11,14 +11,15 @@ package de.ellpeck.actuallyadditions.mod.misc; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import io.netty.util.internal.ConcurrentSet; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; @@ -61,7 +62,7 @@ public class LaserRelayConnectionHandler{ /** * Gets all Connections for a Relay */ - public ConcurrentSet getConnectionsFor(Position relay){ + public ConcurrentSet getConnectionsFor(BlockPos relay){ ConcurrentSet allPairs = new ConcurrentSet(); for(Network aNetwork : this.networks){ for(ConnectionPair pair : aNetwork.connections){ @@ -76,7 +77,7 @@ public class LaserRelayConnectionHandler{ /** * Removes a Relay from its Network */ - public void removeRelayFromNetwork(Position relay){ + public void removeRelayFromNetwork(BlockPos relay){ Network network = this.getNetworkFor(relay); if(network != null){ //Setup new network (so that splitting a network will cause it to break into two) @@ -94,7 +95,7 @@ public class LaserRelayConnectionHandler{ /** * Gets a Network for a Relay */ - public Network getNetworkFor(Position relay){ + public Network getNetworkFor(BlockPos relay){ for(Network aNetwork : this.networks){ for(ConnectionPair pair : aNetwork.connections){ if(pair.contains(relay)){ @@ -109,9 +110,9 @@ public class LaserRelayConnectionHandler{ * Adds a new connection between two relays * (Puts it into the correct network!) */ - public boolean addConnection(Position firstRelay, Position secondRelay){ - int distance = (int)firstRelay.toVec().distanceTo(secondRelay.toVec()); - if(distance > TileEntityLaserRelay.MAX_DISTANCE || firstRelay.isEqual(secondRelay)){ + public boolean addConnection(BlockPos firstRelay, BlockPos secondRelay){ + int distance = (int)PosUtil.toVec(firstRelay).distanceTo(PosUtil.toVec(secondRelay)); + if(distance > TileEntityLaserRelay.MAX_DISTANCE || PosUtil.areSamePos(firstRelay, secondRelay)){ return false; } @@ -161,21 +162,21 @@ public class LaserRelayConnectionHandler{ //System.out.println("Merged Two Networks!"); } - public int transferEnergyToReceiverInNeed(World world, Position energyGottenFrom, Network network, int maxTransfer, boolean simulate){ + public int transferEnergyToReceiverInNeed(World world, BlockPos energyGottenFrom, Network network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network for(ConnectionPair pair : network.connections){ - Position[] relays = new Position[]{pair.firstRelay, pair.secondRelay}; + BlockPos[] relays = new BlockPos[]{pair.firstRelay, pair.secondRelay}; //Go through both relays in the connection - for(Position relay : relays){ + for(BlockPos relay : relays){ if(relay != null){ //Get every side of the relay for(int i = 0; i <= 5; i++){ EnumFacing side = WorldUtil.getDirectionBySidesInOrder(i); //Get the Position at the side - Position pos = WorldUtil.getCoordsFromSide(side, relay, 0); - if(!pos.isEqual(energyGottenFrom)){ - TileEntity tile = pos.getTileEntity(world); + BlockPos pos = WorldUtil.getCoordsFromSide(side, relay, 0); + if(!PosUtil.areSamePos(pos, energyGottenFrom)){ + TileEntity tile = world.getTileEntity(pos); if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){ IEnergyReceiver receiver = (IEnergyReceiver)tile; if(receiver.canConnectEnergy(side.getOpposite())){ @@ -203,30 +204,30 @@ public class LaserRelayConnectionHandler{ public static class ConnectionPair{ - public Position firstRelay; - public Position secondRelay; + public BlockPos firstRelay; + public BlockPos secondRelay; - public ConnectionPair(Position firstRelay, Position secondRelay){ + public ConnectionPair(BlockPos firstRelay, BlockPos secondRelay){ this.firstRelay = firstRelay; this.secondRelay = secondRelay; } public static ConnectionPair readFromNBT(NBTTagCompound compound){ if(compound != null){ - Position[] pos = new Position[2]; + BlockPos[] pos = new BlockPos[2]; for(int i = 0; i < pos.length; i++){ int anX = compound.getInteger("x"+i); int aY = compound.getInteger("y"+i); int aZ = compound.getInteger("z"+i); - pos[i] = new Position(anX, aY, aZ); + pos[i] = new BlockPos(anX, aY, aZ); } return new ConnectionPair(pos[0], pos[1]); } return null; } - public boolean contains(Position relay){ - return (this.firstRelay != null && this.firstRelay.isEqual(relay)) || (this.secondRelay != null && this.secondRelay.isEqual(relay)); + public boolean contains(BlockPos relay){ + return (this.firstRelay != null && PosUtil.areSamePos(firstRelay, relay)) || (this.secondRelay != null && PosUtil.areSamePos(secondRelay, relay)); } @Override @@ -237,7 +238,7 @@ public class LaserRelayConnectionHandler{ public NBTTagCompound writeToNBT(){ NBTTagCompound compound = new NBTTagCompound(); for(int i = 0; i < 2; i++){ - Position relay = i == 0 ? this.firstRelay : this.secondRelay; + BlockPos relay = i == 0 ? this.firstRelay : this.secondRelay; compound.setInteger("x"+i, relay.getX()); compound.setInteger("y"+i, relay.getY()); compound.setInteger("z"+i, relay.getZ()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/network/PacketBookletStandButton.java b/src/main/java/de/ellpeck/actuallyadditions/mod/network/PacketBookletStandButton.java index 6fe99fdce..ab30f892a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/network/PacketBookletStandButton.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/network/PacketBookletStandButton.java @@ -11,12 +11,12 @@ package de.ellpeck.actuallyadditions.mod.network; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.internal.EntrySet; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; @@ -89,7 +89,7 @@ public class PacketBookletStandButton implements IMessage{ @Override public IMessage onMessage(PacketBookletStandButton message, MessageContext ctx){ World world = DimensionManager.getWorld(message.worldID); - TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ)); + TileEntity tile = world.getTileEntity(new BlockPos(message.tileX, message.tileY, message.tileZ)); EntityPlayer player = (EntityPlayer)world.getEntityByID(message.playerID); if(tile instanceof TileEntityBookletStand){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiButton.java b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiButton.java index aabdb2577..bbe43d312 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiButton.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiButton.java @@ -10,10 +10,11 @@ package de.ellpeck.actuallyadditions.mod.network.gui; -import de.ellpeck.actuallyadditions.api.Position; + import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; @@ -68,7 +69,7 @@ public class PacketGuiButton implements IMessage{ @Override public IMessage onMessage(PacketGuiButton message, MessageContext ctx){ World world = DimensionManager.getWorld(message.worldID); - TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ)); + TileEntity tile = world.getTileEntity(new BlockPos(message.tileX, message.tileY, message.tileZ)); if(tile instanceof IButtonReactor){ IButtonReactor reactor = (IButtonReactor)tile; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiNumber.java b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiNumber.java index 5b014ad5a..1be9ea5a8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiNumber.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiNumber.java @@ -10,10 +10,11 @@ package de.ellpeck.actuallyadditions.mod.network.gui; -import de.ellpeck.actuallyadditions.api.Position; + import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; @@ -72,7 +73,7 @@ public class PacketGuiNumber implements IMessage{ @Override public IMessage onMessage(PacketGuiNumber message, MessageContext ctx){ World world = DimensionManager.getWorld(message.worldID); - TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ)); + TileEntity tile = world.getTileEntity(new BlockPos(message.tileX, message.tileY, message.tileZ)); if(tile instanceof INumberReactor){ INumberReactor reactor = (INumberReactor)tile; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiString.java b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiString.java index 0aad40dcc..d48071826 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiString.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/network/gui/PacketGuiString.java @@ -10,10 +10,11 @@ package de.ellpeck.actuallyadditions.mod.network.gui; -import de.ellpeck.actuallyadditions.api.Position; + import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; @@ -83,7 +84,7 @@ public class PacketGuiString implements IMessage{ @Override public IMessage onMessage(PacketGuiString message, MessageContext ctx){ World world = DimensionManager.getWorld(message.worldID); - TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ)); + TileEntity tile = world.getTileEntity(new BlockPos(message.tileX, message.tileY, message.tileZ)); if(tile instanceof IStringReactor){ IStringReactor reactor = (IStringReactor)tile; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java index c41034f7c..89a7a6276 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java @@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.ILensItem; import de.ellpeck.actuallyadditions.api.lens.Lens; @@ -21,9 +20,11 @@ import de.ellpeck.actuallyadditions.mod.items.lens.Lenses; import de.ellpeck.actuallyadditions.mod.network.PacketHandler; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.NetworkRegistry; @@ -68,8 +69,7 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple private void doWork(){ if(this.storage.getEnergyStored() >= ENERGY_USE){ - Position thisPos = Position.fromTileEntity(this); - EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(thisPos.getMetadata(worldObj)); + EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, worldObj)); //Extract energy for shooting the laser itself too! this.storage.extractEnergy(ENERGY_USE, false); @@ -77,7 +77,7 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple Lens currentLens = this.getCurrentLens(); int distance = currentLens.getDistance(); for(int i = 0; i < distance; i++){ - Position hitBlock = WorldUtil.getCoordsFromSide(sideToManipulate, thisPos, i); + BlockPos hitBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, i); if(currentLens.invoke(hitBlock, this)){ this.shootLaser(hitBlock.getX(), hitBlock.getY(), hitBlock.getZ(), currentLens); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java index edda2c407..f3b5f8f44 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java @@ -10,12 +10,14 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import java.util.ArrayList; @@ -67,26 +69,26 @@ public class TileEntityBreaker extends TileEntityInventoryBase implements IRedst } private void doWork(){ - EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(Position.fromTileEntity(this).getMetadata(worldObj)); + EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, worldObj)); - Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, Position.fromTileEntity(this), 0); + BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, 0); if(coordsBlock != null){ - Block blockToBreak = coordsBlock.getBlock(worldObj); + Block blockToBreak = PosUtil.getBlock(coordsBlock, worldObj); if(!this.isPlacer && blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(worldObj, coordsBlock) > -1.0F){ ArrayList drops = new ArrayList(); - int meta = coordsBlock.getMetadata(worldObj); - drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, coordsBlock.getBlockState(worldObj), 0)); + int meta = PosUtil.getMetadata(coordsBlock, worldObj); + drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, worldObj.getBlockState(coordsBlock), 0)); if(WorldUtil.addToInventory(this, drops, false, true)){ worldObj.playAuxSFX(2001, coordsBlock, Block.getIdFromBlock(blockToBreak)+(meta << 12)); - WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, Position.fromTileEntity(this)); + WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, this.pos); WorldUtil.addToInventory(this, drops, true, true); this.markDirty(); } } - else if(this.isPlacer && coordsBlock.getBlock(worldObj).isReplaceable(worldObj, coordsBlock)){ + else if(this.isPlacer && PosUtil.getBlock(coordsBlock, worldObj).isReplaceable(worldObj, coordsBlock)){ int theSlot = WorldUtil.findFirstFilledSlot(this.slots); - this.setInventorySlotContents(theSlot, WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, Position.fromTileEntity(this), this.slots[theSlot])); + this.setInventorySlotContents(theSlot, WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, this.pos, this.slots[theSlot])); if(this.slots[theSlot] != null && this.slots[theSlot].stackSize <= 0){ this.slots[theSlot] = null; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java index d469a00b4..9b58198f5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java @@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; @@ -85,12 +84,12 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IE WorldUtil.fillBucket(tank, slots, 1, 2); if(this.tank.getFluidAmount() > 0){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.DOWN, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.DOWN, this.tank); if(!this.isRedstonePowered){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.NORTH, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.EAST, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.SOUTH, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.WEST, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.NORTH, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.EAST, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.SOUTH, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.WEST, this.tank); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java index 16a41fd01..e8e5dc3cd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java @@ -12,7 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -69,20 +69,19 @@ public class TileEntityCoalGenerator extends TileEntityInventoryBase implements } if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage); + WorldUtil.pushEnergyToAllSides(worldObj, this.pos, this.storage); } if(flag != this.currentBurnTime > 0){ this.markDirty(); - Position thisPos = Position.fromTileEntity(this); - int meta = thisPos.getMetadata(worldObj); + int meta = PosUtil.getMetadata(this.getPos(), worldObj); if(meta == 1){ if(!(this.currentBurnTime <= 0 && this.slots[0] != null && TileEntityFurnace.getItemBurnTime(this.slots[0]) > 0 && this.storage.getEnergyStored() < this.storage.getMaxEnergyStored())){ - thisPos.setMetadata(worldObj, 0, 2); + PosUtil.setMetadata(this.pos, worldObj, 0, 2); } } else{ - thisPos.setMetadata(worldObj, 1, 2); + PosUtil.setMetadata(this.pos, worldObj, 1, 2); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java index e28ababbc..b5c37fb0d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java @@ -12,12 +12,13 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -63,21 +64,20 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem } private void doWork(){ - Position pos = Position.fromTileEntity(this); - EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(pos.getMetadata(worldObj)); + EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, worldObj)); for(int i = 0; i < RANGE; i++){ - Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, pos, i); + BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, pos, i); if(coordsBlock != null){ - Block blockToBreak = coordsBlock.getBlock(worldObj); + Block blockToBreak = PosUtil.getBlock(coordsBlock, worldObj); if(blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(worldObj, pos) > -1.0F){ ArrayList drops = new ArrayList(); - int meta = coordsBlock.getMetadata(worldObj); - drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, coordsBlock.getBlockState(worldObj), 0)); + int meta = PosUtil.getMetadata(coordsBlock, worldObj); + drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, worldObj.getBlockState(coordsBlock), 0)); if(WorldUtil.addToInventory(this, drops, false, true)){ worldObj.playAuxSFX(2001, this.getPos(), Block.getIdFromBlock(blockToBreak)+(meta << 12)); - WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, Position.fromTileEntity(this), i); + WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, this.getPos(), i); WorldUtil.addToInventory(this, drops, true, true); this.storage.extractEnergy(ENERGY_USE, false); this.markDirty(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDropper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDropper.java index 9d3a9d8cc..8fd2a6139 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDropper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDropper.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -60,7 +60,7 @@ public class TileEntityDropper extends TileEntityInventoryBase implements IRedst if(this.removeFromInventory(false) != null){ ItemStack stack = this.removeFromInventory(true); stack.stackSize = 1; - WorldUtil.dropItemAtSide(WorldUtil.getDirectionByPistonRotation(Position.fromTileEntity(this).getMetadata(worldObj)), worldObj, Position.fromTileEntity(this), stack); + WorldUtil.dropItemAtSide(WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, worldObj)), worldObj, this.pos, stack); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java index 0a163057a..d02151c62 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java @@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyContainerItem; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -50,7 +49,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements IEne } if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage); + WorldUtil.pushEnergyToAllSides(worldObj, this.pos, this.storage); } if(lastEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java index b740f5f3e..3d221ae4b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.init.Items; @@ -59,12 +58,12 @@ public class TileEntityFermentingBarrel extends TileEntityInventoryBase implemen WorldUtil.fillBucket(oilTank, slots, 2, 3); if(this.oilTank.getFluidAmount() > 0){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.DOWN, this.oilTank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.DOWN, this.oilTank); if(!this.isRedstonePowered){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.NORTH, this.oilTank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.EAST, this.oilTank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.SOUTH, this.oilTank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.WEST, this.oilTank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.NORTH, this.oilTank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.EAST, this.oilTank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.SOUTH, this.oilTank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.WEST, this.oilTank); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java index ed98ccb0b..79db068e3 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java @@ -10,7 +10,8 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.material.Material; @@ -33,13 +34,12 @@ public class TileEntityFishingNet extends TileEntityBase{ super.updateEntity(); if(!worldObj.isRemote){ if(!this.isRedstonePowered){ - Position pos = Position.fromTileEntity(this); - if(pos.getOffsetPosition(0, -1, 0).getMaterial(worldObj) == Material.water){ + if(PosUtil.getMaterial(PosUtil.offset(this.pos, 0, -1, 0), this.worldObj) == Material.water){ if(this.timeUntilNextDrop > 0){ this.timeUntilNextDrop--; if(timeUntilNextDrop <= 0){ ItemStack fishable = FishingHooks.getRandomFishable(Util.RANDOM, Util.RANDOM.nextFloat()); - TileEntity tile = pos.getOffsetPosition(0, 1, 0).getTileEntity(worldObj); + TileEntity tile = worldObj.getTileEntity(PosUtil.offset(pos, 0, 1, 0)); if(tile != null && tile instanceof IInventory){ ArrayList list = new ArrayList(); list.add(fishable); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java index e43f7039d..49fb8cc59 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java @@ -10,12 +10,14 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.*; import net.minecraftforge.fml.relauncher.Side; @@ -54,39 +56,37 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements } private void doWork(){ - Position thisPos = Position.fromTileEntity(this); - - EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(thisPos.getMetadata(worldObj)); - Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, Position.fromTileEntity(this), 0); + EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, worldObj)); + BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, 0); if(coordsBlock != null){ - Block blockToBreak = coordsBlock.getBlock(worldObj); - if(!this.isPlacer && blockToBreak != null && coordsBlock.getMetadata(worldObj) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){ + Block blockToBreak = PosUtil.getBlock(coordsBlock, worldObj); + if(!this.isPlacer && blockToBreak != null && PosUtil.getMetadata(coordsBlock, worldObj) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){ if(blockToBreak instanceof IFluidBlock && ((IFluidBlock)blockToBreak).getFluid() != null){ if(this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), true); - WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos); + WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, this.pos); } } else if(blockToBreak == Blocks.lava || blockToBreak == Blocks.flowing_lava){ if(this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), true); - WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos); + WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, this.pos); } } else if(blockToBreak == Blocks.water || blockToBreak == Blocks.flowing_water){ if(this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), true); - WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos); + WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, this.pos); } } } - else if(this.isPlacer && coordsBlock.getBlock(worldObj).isReplaceable(worldObj, coordsBlock)){ + else if(this.isPlacer && PosUtil.getBlock(coordsBlock, worldObj).isReplaceable(worldObj, coordsBlock)){ if(this.tank.getFluidAmount() >= FluidContainerRegistry.BUCKET_VOLUME){ if(this.tank.getFluid().getFluid().getBlock() != null){ - Block block = coordsBlock.getBlock(worldObj); + Block block = PosUtil.getBlock(coordsBlock, worldObj); if(!(block instanceof IFluidBlock) && block != Blocks.lava && block != Blocks.water && block != Blocks.flowing_lava && block != Blocks.flowing_water){ - WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, thisPos, new ItemStack(this.tank.getFluid().getFluid().getBlock())); + WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, this.pos, new ItemStack(this.tank.getFluid().getFluid().getBlock())); this.tank.drain(FluidContainerRegistry.BUCKET_VOLUME, true); } } @@ -159,12 +159,12 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements } if(!this.isPlacer && this.tank.getFluidAmount() > 0){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.DOWN, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.DOWN, this.tank); if(!this.isRedstonePowered){ - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.NORTH, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.EAST, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.SOUTH, this.tank); - WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.WEST, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.NORTH, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.EAST, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.SOUTH, this.tank); + WorldUtil.pushFluid(worldObj, this.pos, EnumFacing.WEST, this.tank); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java index 74d58ca1f..0eca889d2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java @@ -12,7 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; @@ -81,15 +81,14 @@ public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements if(flag != (this.firstSmeltTime > 0 || this.secondSmeltTime > 0)){ this.markDirty(); - Position thisPos = Position.fromTileEntity(this); - int meta = thisPos.getMetadata(worldObj); + int meta = PosUtil.getMetadata(this.pos, worldObj); if(meta > 3){ if(!this.canSmeltOn(SLOT_INPUT_1, SLOT_OUTPUT_1) && !this.canSmeltOn(SLOT_INPUT_2, SLOT_OUTPUT_2)){ - thisPos.setMetadata(worldObj, meta-4, 2); + PosUtil.setMetadata(this.pos, worldObj, meta-4, 2); } } else{ - thisPos.setMetadata(worldObj, meta+4, 2); + PosUtil.setMetadata(this.pos, worldObj, meta+4, 2); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java index ac060be93..03ef5752a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java @@ -12,10 +12,11 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -58,7 +59,7 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro } if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage); + WorldUtil.pushEnergyToAllSides(worldObj, this.pos, this.storage); } if(this.oldEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){ @@ -80,10 +81,9 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro } public boolean hasBlockAbove(){ - Position pos = Position.fromTileEntity(this); for(int y = 1; y <= worldObj.getHeight(); y++){ - Position offset = pos.getOffsetPosition(0, y, 0); - if(!offset.getBlock(worldObj).isAir(worldObj, offset)){ + BlockPos offset = PosUtil.offset(this.pos, 0, y, 0); + if(!PosUtil.getBlock(offset, worldObj).isAir(worldObj, offset)){ return true; } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java index ba8435aaa..7d60df32c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java @@ -10,12 +10,14 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; + +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.block.BlockGrass; import net.minecraft.block.IGrowable; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraftforge.common.IPlantable; public class TileEntityGreenhouseGlass extends TileEntityBase{ @@ -30,12 +32,12 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{ if(this.timeUntilNextFert > 0){ this.timeUntilNextFert--; if(timeUntilNextFert <= 0){ - Position blockToFert = this.blockToFertilize(); + BlockPos blockToFert = this.blockToFertilize(); if(blockToFert != null){ - int metaBefore = blockToFert.getMetadata(worldObj); - blockToFert.getBlock(worldObj).updateTick(worldObj, blockToFert, blockToFert.getBlockState(worldObj), Util.RANDOM); + int metaBefore = PosUtil.getMetadata(blockToFert, worldObj); + PosUtil.getBlock(blockToFert, worldObj).updateTick(worldObj, blockToFert, worldObj.getBlockState(blockToFert), Util.RANDOM); - if(blockToFert.getMetadata(worldObj) != metaBefore){ + if(PosUtil.getMetadata(blockToFert, worldObj) != metaBefore){ worldObj.playAuxSFX(2005, blockToFert, 0); } } @@ -49,10 +51,10 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{ } } - public Position blockToFertilize(){ + public BlockPos blockToFertilize(){ for(int i = -1; i > 0; i--){ - Position offset = Position.fromBlockPos(pos).getOffsetPosition(0, i, 0); - Block block = offset.getBlock(worldObj); + BlockPos offset = PosUtil.offset(this.pos, 0, i, 0); + Block block = PosUtil.getBlock(pos, worldObj); if(block != null && !(worldObj.isAirBlock(offset))){ if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){ return offset; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java index 4b4c50250..cb3a03232 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java @@ -13,9 +13,9 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -125,15 +125,14 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg if(flag != (this.firstCrushTime > 0 || this.secondCrushTime > 0)){ this.markDirty(); - Position thisPos = Position.fromTileEntity(this); - int meta = thisPos.getMetadata(worldObj); + int meta = PosUtil.getMetadata(this.pos, worldObj); if(meta == 1){ if(!this.canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2) && (!this.isDouble || !this.canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2))){ - thisPos.setMetadata(worldObj, 0, 2); + PosUtil.setMetadata(this.pos, worldObj, 0, 2); } } else{ - thisPos.setMetadata(worldObj, 1, 2); + PosUtil.setMetadata(this.pos, worldObj, 1, 2); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java index 9ab93af85..7d538d2a2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java @@ -12,13 +12,14 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -39,10 +40,10 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr ArrayList blocksAround = new ArrayList(); if(ENERGY_PRODUCE <= this.storage.getMaxEnergyStored()-this.storage.getEnergyStored()){ for(int i = 1; i <= 5; i++){ - Position coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), Position.fromTileEntity(this), 0); + BlockPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), this.pos, 0); if(coords != null){ - Block block = coords.getBlock(worldObj); - if(block != null && block.getMaterial() == Material.lava && coords.getMetadata(worldObj) == 0){ + Block block = PosUtil.getBlock(coords, worldObj); + if(block != null && block.getMaterial() == Material.lava && PosUtil.getMetadata(coords, worldObj) == 0){ blocksAround.add(i); } } @@ -54,13 +55,13 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr if(Util.RANDOM.nextInt(10000) == 0){ int randomSide = blocksAround.get(Util.RANDOM.nextInt(blocksAround.size())); - WorldUtil.breakBlockAtSide(WorldUtil.getDirectionBySidesInOrder(randomSide), worldObj, Position.fromTileEntity(this)); + WorldUtil.breakBlockAtSide(WorldUtil.getDirectionBySidesInOrder(randomSide), worldObj, this.pos); } } } if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergy(worldObj, Position.fromTileEntity(this), EnumFacing.UP, this.storage); + WorldUtil.pushEnergy(worldObj, this.pos, EnumFacing.UP, this.storage); } if(this.oldEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java index 65e51d184..70f672209 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java @@ -10,7 +10,7 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; + import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; import de.ellpeck.actuallyadditions.mod.network.gui.INumberReactor; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; @@ -303,8 +303,8 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt public void initVars(){ //Gets the Place to put and Pull - this.placeToPull = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPull), this.worldObj, Position.fromTileEntity(this)); - this.placeToPut = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPut), this.worldObj, Position.fromTileEntity(this)); + this.placeToPull = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPull), this.worldObj, this.pos); + this.placeToPut = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPut), this.worldObj, this.pos); //Resets the Variables if(this.placeToPull instanceof IInventory){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java index e6ff79f28..39bf833f4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java @@ -11,11 +11,11 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; import de.ellpeck.actuallyadditions.mod.misc.LaserRelayConnectionHandler; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import io.netty.util.internal.ConcurrentSet; @@ -24,6 +24,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -44,11 +45,11 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @SideOnly(Side.CLIENT) public void renderParticles(){ if(Util.RANDOM.nextInt(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 15 : 8) == 0){ - Position thisPos = Position.fromTileEntity(this); + BlockPos thisPos = this.pos; LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ for(LaserRelayConnectionHandler.ConnectionPair aPair : network.connections){ - if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ + if(aPair.contains(thisPos) && PosUtil.areSamePos(thisPos, aPair.firstRelay)){ PacketParticle.renderParticlesFromAToB(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ(), aPair.secondRelay.getX(), aPair.secondRelay.getY(), aPair.secondRelay.getZ(), ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : Util.RANDOM.nextInt(3)+1, 0.8F, COLOR, 1F); } } @@ -60,7 +61,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei public Packet getDescriptionPacket(){ NBTTagCompound compound = new NBTTagCompound(); - Position thisPos = Position.fromTileEntity(this); + BlockPos thisPos = this.pos; ConcurrentSet connections = LaserRelayConnectionHandler.getInstance().getConnectionsFor(thisPos); if(connections != null){ @@ -76,7 +77,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt){ - Position thisPos = Position.fromTileEntity(this); + BlockPos thisPos = this.pos; if(pkt != null && pkt.getNbtCompound() != null){ LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(thisPos); @@ -94,12 +95,12 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void invalidate(){ super.invalidate(); - LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(Position.fromTileEntity(this)); + LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(this.pos); } @Override public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.transmitEnergy(WorldUtil.getCoordsFromSide(from, Position.fromTileEntity(this), 0), maxReceive, simulate); + return this.transmitEnergy(WorldUtil.getCoordsFromSide(from, this.pos, 0), maxReceive, simulate); } @Override @@ -112,10 +113,10 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei return 0; } - public int transmitEnergy(Position blockFrom, int maxTransmit, boolean simulate){ + public int transmitEnergy(BlockPos blockFrom, int maxTransmit, boolean simulate){ int transmitted = 0; if(maxTransmit > 0){ - LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(Position.fromTileEntity(this)); + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(this.pos); if(network != null){ transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(worldObj, blockFrom, network, Math.min(ConfigIntValues.LASER_RELAY_MAX_TRANSFER.getValue(), maxTransmit), simulate); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java index 07ab28d94..f57699ca6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java @@ -12,13 +12,14 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -42,7 +43,7 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I this.currentWorkTime++; if(this.currentWorkTime >= 200){ this.currentWorkTime = 0; - Position.fromTileEntity(this).getOffsetPosition(0, 1, 0).setBlock(worldObj, Blocks.lava, 0, 2); + PosUtil.setBlock(PosUtil.offset(this.pos, 0, 1, 0), worldObj, Blocks.lava, 0, 2); this.storage.extractEnergy(ENERGY_USE, false); } } @@ -71,20 +72,20 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I } public int isMultiblock(){ - Position thisPos = Position.fromTileEntity(this); - Position[] positions = new Position[]{ - thisPos.getOffsetPosition(1, 1, 0), - thisPos.getOffsetPosition(-1, 1, 0), - thisPos.getOffsetPosition(0, 1, 1), - thisPos.getOffsetPosition(0, 1, -1) + BlockPos thisPos = this.pos; + BlockPos[] positions = new BlockPos[]{ + PosUtil.offset(thisPos, 1, 1, 0), + PosUtil.offset(thisPos, -1, 1, 0), + PosUtil.offset(thisPos, 0, 1, 1), + PosUtil.offset(thisPos, 0, 1, -1) }; if(WorldUtil.hasBlocksInPlacesGiven(positions, InitBlocks.blockMisc, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal(), worldObj)){ - Position pos = thisPos.getOffsetPosition(0, 1, 0); - if(pos.getBlock(worldObj) == Blocks.lava || pos.getBlock(worldObj) == Blocks.flowing_lava){ + BlockPos pos = PosUtil.offset(thisPos, 0, 1, 0); + if(PosUtil.getBlock(pos, worldObj) == Blocks.lava || PosUtil.getBlock(pos, worldObj) == Blocks.flowing_lava){ return HAS_LAVA; } - if(pos.getBlock(worldObj) == null || worldObj.isAirBlock(pos)){ + if(PosUtil.getBlock(pos, worldObj) == null || worldObj.isAirBlock(pos)){ return HAS_AIR; } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java index 17cd83120..93bd094e4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java @@ -12,13 +12,14 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.mod.network.PacketHandler; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.relauncher.Side; @@ -46,13 +47,13 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr this.nextUseCounter = 0; if(ENERGY_PRODUCED <= this.storage.getMaxEnergyStored()-this.storage.getEnergyStored()){ - ArrayList breakPositions = new ArrayList(); + ArrayList breakPositions = new ArrayList(); for(int reachX = -RANGE; reachX < RANGE+1; reachX++){ for(int reachZ = -RANGE; reachZ < RANGE+1; reachZ++){ for(int reachY = -RANGE; reachY < RANGE+1; reachY++){ - Position pos = new Position(this.pos.getX()+reachX, this.pos.getY()+reachY, this.pos.getZ()+reachZ); - Block block = pos.getBlock(worldObj); + BlockPos pos = PosUtil.offset(this.pos, reachX, reachY, reachZ); + Block block = PosUtil.getBlock(pos, worldObj); if(block != null && block.isLeaves(this.worldObj, pos)){ breakPositions.add(pos); } @@ -62,10 +63,10 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr if(!breakPositions.isEmpty()){ Collections.shuffle(breakPositions); - Position theCoord = breakPositions.get(0); + BlockPos theCoord = breakPositions.get(0); - Block theBlock = theCoord.getBlock(worldObj); - int meta = theCoord.getMetadata(worldObj); + Block theBlock = PosUtil.getBlock(theCoord, worldObj); + int meta = PosUtil.getMetadata(theCoord, worldObj); this.worldObj.playAuxSFX(2001, theCoord, Block.getIdFromBlock(theBlock)+(meta << 12)); this.worldObj.setBlockToAir(this.getPos()); @@ -82,7 +83,7 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr } if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage); + WorldUtil.pushEnergyToAllSides(worldObj, this.pos, this.storage); } if(this.oldEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java index 0f5242aba..15d81844a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java @@ -12,18 +12,19 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.mod.config.ConfigValues; import de.ellpeck.actuallyadditions.mod.network.PacketHandler; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.IFluidBlock; import net.minecraftforge.fml.common.network.NetworkRegistry; @@ -58,7 +59,7 @@ public class TileEntityMiner extends TileEntityInventoryBase implements IEnergyR if(!this.isRedstonePowered && this.ticksElapsed%5 == 0){ if(this.layerAt > 0){ - if(this.mine(TileEntityPhantomface.upgradeRange(DEFAULT_RANGE, worldObj, Position.fromTileEntity(this)))){ + if(this.mine(TileEntityPhantomface.upgradeRange(DEFAULT_RANGE, worldObj, this.pos))){ this.layerAt--; } } @@ -76,14 +77,14 @@ public class TileEntityMiner extends TileEntityInventoryBase implements IEnergyR for(int aZ = -range; aZ <= range; aZ++){ int actualUse = ENERGY_USE_PER_BLOCK*(this.onlyMineOres ? 3 : 1); if(this.storage.getEnergyStored() >= actualUse){ - Position pos = new Position(this.pos.getX()+anX, this.layerAt, this.pos.getZ()+aZ); + BlockPos pos = new BlockPos(this.pos.getX()+anX, this.layerAt, this.pos.getZ()+aZ); - Block block = pos.getBlock(worldObj); - int meta = pos.getMetadata(worldObj); + Block block = PosUtil.getBlock(pos, worldObj); + int meta = PosUtil.getMetadata(pos, worldObj); if(block != null && !block.isAir(this.worldObj, pos)){ - if(block.getHarvestLevel(pos.getBlockState(worldObj)) <= 3F && block.getBlockHardness(this.worldObj, pos) >= 0F && !(block instanceof BlockLiquid) && !(block instanceof IFluidBlock) && this.isMinable(block, meta)){ + if(block.getHarvestLevel(worldObj.getBlockState(pos)) <= 3F && block.getBlockHardness(this.worldObj, pos) >= 0F && !(block instanceof BlockLiquid) && !(block instanceof IFluidBlock) && this.isMinable(block, meta)){ ArrayList drops = new ArrayList(); - drops.addAll(block.getDrops(worldObj, pos, pos.getBlockState(worldObj), 0)); + drops.addAll(block.getDrops(worldObj, pos, worldObj.getBlockState(pos), 0)); if(WorldUtil.addToInventory(this, drops, false, true)){ worldObj.playAuxSFX(2001, pos, Block.getIdFromBlock(block)+(meta << 12)); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java index 363242f57..bb2eb5f00 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java @@ -12,8 +12,8 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -75,20 +75,19 @@ public class TileEntityOilGenerator extends TileEntityInventoryBase implements I WorldUtil.emptyBucket(tank, slots, 0, 1, InitBlocks.fluidOil); if(this.storage.getEnergyStored() > 0){ - WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage); + WorldUtil.pushEnergyToAllSides(worldObj, this.pos, this.storage); } if(flag != this.currentBurnTime > 0){ this.markDirty(); - Position thisPos = Position.fromTileEntity(this); - int meta = thisPos.getMetadata(worldObj); + int meta = PosUtil.getMetadata(pos, worldObj); if(meta == 1){ if(!(ENERGY_PRODUCED*BURN_TIME <= this.storage.getMaxEnergyStored()-this.storage.getEnergyStored() && this.currentBurnTime <= 0 && this.tank.getFluidAmount() >= fuelUsed)){ - thisPos.setMetadata(worldObj, 0, 2); + PosUtil.setMetadata(this.pos, worldObj, 0, 2); } } else{ - thisPos.setMetadata(worldObj, 1, 2); + PosUtil.setMetadata(this.pos, worldObj, 1, 2); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java index 1452563ba..7d4599288 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java @@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.tile; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyProvider; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.tileentity.TileEntity; @@ -104,7 +103,7 @@ public class TileEntityPhantomEnergyface extends TileEntityPhantomface implement } private void pushEnergy(EnumFacing side){ - TileEntity tile = WorldUtil.getTileEntityFromSide(side, worldObj, Position.fromTileEntity(this)); + TileEntity tile = WorldUtil.getTileEntityFromSide(side, worldObj, this.getPos()); if(tile != null && tile instanceof IEnergyReceiver && this.getProvider().getEnergyStored(side.getOpposite()) > 0){ if(((IEnergyReceiver)tile).canConnectEnergy(side.getOpposite()) && this.canConnectEnergy(side)){ int receive = this.extractEnergy(side, Math.min(((IEnergyReceiver)tile).getMaxEnergyStored(side.getOpposite())-((IEnergyReceiver)tile).getEnergyStored(side.getOpposite()), this.getEnergyStored(side)), true); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomLiquiface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomLiquiface.java index 89b229830..005dca4a5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomLiquiface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomLiquiface.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.tileentity.TileEntity; @@ -45,7 +44,7 @@ public class TileEntityPhantomLiquiface extends TileEntityPhantomface implements public IFluidHandler getHandler(){ if(this.boundPosition != null){ - TileEntity tile = boundPosition.getTileEntity(worldObj); + TileEntity tile = worldObj.getTileEntity(boundPosition); if(tile instanceof IFluidHandler){ return (IFluidHandler)tile; } @@ -54,7 +53,7 @@ public class TileEntityPhantomLiquiface extends TileEntityPhantomface implements } private void pushFluid(EnumFacing side){ - TileEntity tile = WorldUtil.getTileEntityFromSide(side, worldObj, Position.fromTileEntity(this)); + TileEntity tile = WorldUtil.getTileEntityFromSide(side, worldObj, this.pos); if(tile != null && tile instanceof IFluidHandler && this.getTankInfo(side) != null && this.getTankInfo(side).length > 0 && ((IFluidHandler)tile).getTankInfo(side.getOpposite()) != null && ((IFluidHandler)tile).getTankInfo(side.getOpposite()).length > 0){ for(FluidTankInfo myInfo : this.getTankInfo(side)){ for(FluidTankInfo hisInfo : ((IFluidHandler)tile).getTankInfo(side.getOpposite())){ @@ -74,7 +73,7 @@ public class TileEntityPhantomLiquiface extends TileEntityPhantomface implements @Override public boolean isBoundThingInRange(){ - return super.isBoundThingInRange() && boundPosition.getTileEntity(worldObj) instanceof IFluidHandler; + return super.isBoundThingInRange() && worldObj.getTileEntity(boundPosition) instanceof IFluidHandler; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java index 8be8f3a75..272764edc 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java @@ -10,15 +10,16 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.Vec3; @@ -30,7 +31,7 @@ import java.util.ArrayList; public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements IPhantomTile, IRedstoneToggle{ public static final int RANGE = 3; - public Position boundPosition; + public BlockPos boundPosition; public int currentTime; public int range; public boolean isBreaker; @@ -50,7 +51,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements public void updateEntity(){ super.updateEntity(); if(!worldObj.isRemote){ - this.range = TileEntityPhantomface.upgradeRange(RANGE, worldObj, Position.fromTileEntity(this)); + this.range = TileEntityPhantomface.upgradeRange(RANGE, worldObj, this.pos); if(!this.hasBoundPosition()){ this.boundPosition = null; @@ -97,11 +98,11 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements private void doWork(){ if(this.isBreaker){ - Block blockToBreak = boundPosition.getBlock(worldObj); + Block blockToBreak = PosUtil.getBlock(boundPosition, worldObj); if(blockToBreak != null && blockToBreak.getBlockHardness(worldObj, boundPosition) > -1.0F){ ArrayList drops = new ArrayList(); - int meta = boundPosition.getMetadata(worldObj); - drops.addAll(blockToBreak.getDrops(worldObj, boundPosition, boundPosition.getBlockState(worldObj), 0)); + int meta = PosUtil.getMetadata(boundPosition, worldObj); + drops.addAll(blockToBreak.getDrops(worldObj, boundPosition, worldObj.getBlockState(boundPosition), 0)); if(WorldUtil.addToInventory(this, drops, false, true)){ worldObj.playAuxSFX(2001, this.boundPosition, Block.getIdFromBlock(blockToBreak)+(meta << 12)); @@ -112,7 +113,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements } } else{ - if(boundPosition.getBlock(worldObj).isReplaceable(worldObj, boundPosition)){ + if(PosUtil.getBlock(boundPosition, worldObj).isReplaceable(worldObj, boundPosition)){ int theSlot = WorldUtil.findFirstFilledSlot(this.slots); this.setInventorySlotContents(theSlot, WorldUtil.placeBlockAtSide(EnumFacing.UP, worldObj, boundPosition, this.slots[theSlot])); if(this.slots[theSlot] != null && this.slots[theSlot].stackSize <= 0){ @@ -143,17 +144,17 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements @Override public boolean isBoundThingInRange(){ - return this.hasBoundPosition() && this.boundPosition.toVec().distanceTo(new Vec3(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ())) <= this.range; + return this.hasBoundPosition() && PosUtil.toVec(this.boundPosition).distanceTo(new Vec3(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ())) <= this.range; } @Override - public Position getBoundPosition(){ + public BlockPos getBoundPosition(){ return this.boundPosition; } @Override - public void setBoundPosition(Position pos){ - this.boundPosition = pos == null ? null : pos.copy(); + public void setBoundPosition(BlockPos pos){ + this.boundPosition = pos == null ? null : PosUtil.copyPos(pos); } @Override @@ -185,7 +186,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements int z = compound.getInteger("ZCoordOfTileStored"); this.range = compound.getInteger("Range"); if(!(x == 0 && y == 0 && z == 0)){ - this.boundPosition = new Position(x, y, z); + this.boundPosition = new BlockPos(x, y, z); this.markDirty(); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java index 9b35226bf..d93fc32c0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomface.java @@ -10,15 +10,16 @@ package de.ellpeck.actuallyadditions.mod.tile; -import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.network.PacketParticle; +import de.ellpeck.actuallyadditions.mod.util.PosUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumParticleTypes; import net.minecraft.world.World; @@ -29,11 +30,11 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP public static final int RANGE = 16; public static final float[] COLORS = new float[]{93F/255F, 43F/255F, 181F/255F}; - public Position boundPosition; + public BlockPos boundPosition; public BlockPhantom.Type type; public int range; private int rangeBefore; - private Position boundPosBefore; + private BlockPos boundPosBefore; private Block boundBlockBefore; public TileEntityPhantomface(String name){ @@ -44,23 +45,23 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP public void updateEntity(){ super.updateEntity(); if(!worldObj.isRemote){ - this.range = upgradeRange(RANGE, worldObj, Position.fromBlockPos(this.getPos())); + this.range = upgradeRange(RANGE, worldObj, this.getPos()); if(!this.hasBoundPosition()){ this.boundPosition = null; } - if(this.boundPosition != this.boundPosBefore || (this.boundPosition != null && this.boundPosition.getBlock(worldObj) != this.boundBlockBefore) || this.rangeBefore != this.range){ + if(this.boundPosition != this.boundPosBefore || (this.boundPosition != null && PosUtil.getBlock(this.boundPosition, worldObj) != this.boundBlockBefore) || this.rangeBefore != this.range){ this.rangeBefore = this.range; this.boundPosBefore = this.boundPosition; - this.boundBlockBefore = this.boundPosition == null ? null : this.boundPosition.getBlock(worldObj); + this.boundBlockBefore = this.boundPosition == null ? null : PosUtil.getBlock(this.boundPosition, this.worldObj); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX()+1, this.getPos().getY(), this.getPos().getZ())); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX()-1, this.getPos().getY(), this.getPos().getZ())); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX(), this.getPos().getY()+1, this.getPos().getZ())); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX(), this.getPos().getY()-1, this.getPos().getZ())); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()+1)); - this.worldObj.markBlockForUpdate(new Position(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()-1)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, 1, 0, 0)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, -1, 0, 0)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, 0, 1, 0)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, 0, -1, 0)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, 0, 0, 1)); + this.worldObj.markBlockForUpdate(PosUtil.offset(this.pos, 0, 0, -1)); this.sendUpdate(); this.markDirty(); } @@ -89,18 +90,17 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP int x = compound.getInteger("XCoordOfTileStored"); int y = compound.getInteger("YCoordOfTileStored"); int z = compound.getInteger("ZCoordOfTileStored"); - int world = compound.getInteger("WorldOfTileStored"); this.range = compound.getInteger("Range"); if(!(x == 0 && y == 0 && z == 0)){ - this.boundPosition = new Position(x, y, z); + this.boundPosition = new BlockPos(x, y, z); this.markDirty(); } } - public static int upgradeRange(int defaultRange, World world, Position pos){ + public static int upgradeRange(int defaultRange, World world, BlockPos pos){ int newRange = defaultRange; for(int i = 0; i < 3; i++){ - Block block = pos.getOffsetPosition(0, 1+i, 0).getBlock(world); + Block block = PosUtil.getBlock(PosUtil.offset(pos, 0, 1+i, 0), world); if(block == InitBlocks.blockPhantomBooster){ newRange = newRange*2; } @@ -144,17 +144,17 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP @Override public boolean isBoundThingInRange(){ - return this.hasBoundPosition() && this.boundPosition.toVec().distanceTo(Position.fromBlockPos(this.getPos()).toVec()) <= this.range; + return this.hasBoundPosition() && PosUtil.toVec(this.boundPosition).distanceTo(PosUtil.toVec(this.getPos())) <= this.range; } @Override - public Position getBoundPosition(){ + public BlockPos getBoundPosition(){ return this.boundPosition; } @Override - public void setBoundPosition(Position pos){ - this.boundPosition = pos == null ? null : pos.copy(); + public void setBoundPosition(BlockPos pos){ + this.boundPosition = pos == null ? null : PosUtil.copyPos(pos); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/PosUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/PosUtil.java new file mode 100644 index 000000000..d9bcdfbde --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/PosUtil.java @@ -0,0 +1,70 @@ +/* + * This file ("PosUtil.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense/ + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.util; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.util.BlockPos; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class PosUtil{ + + public static final PropertyInteger META = PropertyInteger.create("meta", 0, 15); + + public static Block getBlock(BlockPos pos, IBlockAccess world){ + return world.getBlockState(pos).getBlock(); + } + + public static Material getMaterial(BlockPos pos, IBlockAccess world){ + return getBlock(pos, world).getMaterial(); + } + + public static int getMetadata(BlockPos pos, IBlockAccess world){ + return getBlock(pos, world).getMetaFromState(world.getBlockState(pos)); + } + + public static BlockPos offset(BlockPos pos, int x, int y, int z){ + return new BlockPos(pos.getX()+x, pos.getY()+y, pos.getZ()+z); + } + + public static boolean setBlock(BlockPos pos, World world, Block block, int meta, int flag){ + return world.setBlockState(pos, block.getStateFromMeta(meta), flag); + } + + public static Vec3 toVec(BlockPos pos){ + return new Vec3(pos.getX(), pos.getY(), pos.getZ()); + } + + public static BlockPos copyPos(BlockPos pos){ + return new BlockPos(pos.getX(), pos.getY(), pos.getZ()); + } + + public static ItemBlock getItemBlock(BlockPos pos, IBlockAccess world){ + Item item = Item.getItemFromBlock(getBlock(pos, world)); + if(item instanceof ItemBlock){ + return (ItemBlock)item; + } + return null; + } + + public static void setMetadata(BlockPos pos, World world, int meta, int flag){ + world.setBlockState(pos, getBlock(pos, world).getStateFromMeta(meta), flag); + } + + public static boolean areSamePos(BlockPos first, BlockPos second){ + return first.getX() == second.getX() && first.getY() == second.getY() && first.getZ() == second.getZ(); + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index 494b19b0c..dbda94332 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.util; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.api.Position; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -29,10 +28,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.network.play.client.C07PacketPlayerDigging; import net.minecraft.network.play.server.S23PacketBlockChange; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; +import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.ForgeHooks; @@ -43,22 +39,22 @@ import java.util.ArrayList; public class WorldUtil{ - public static void breakBlockAtSide(EnumFacing side, World world, Position pos){ + public static void breakBlockAtSide(EnumFacing side, World world, BlockPos pos){ breakBlockAtSide(side, world, pos, 0); } - public static void breakBlockAtSide(EnumFacing side, World world, Position pos, int offset){ - Position c = getCoordsFromSide(side, pos, offset); + public static void breakBlockAtSide(EnumFacing side, World world, BlockPos pos, int offset){ + BlockPos c = getCoordsFromSide(side, pos, offset); if(c != null){ world.setBlockToAir(pos); } } - public static Position getCoordsFromSide(EnumFacing side, Position pos, int offset){ - return new Position(pos.getX()+side.getFrontOffsetX()*(offset+1), pos.getY()+side.getFrontOffsetY()*(offset+1), pos.getZ()+side.getFrontOffsetZ()*(offset+1)); + public static BlockPos getCoordsFromSide(EnumFacing side, BlockPos pos, int offset){ + return new BlockPos(pos.getX()+side.getFrontOffsetX()*(offset+1), pos.getY()+side.getFrontOffsetY()*(offset+1), pos.getZ()+side.getFrontOffsetZ()*(offset+1)); } - public static void pushEnergyToAllSides(World world, Position pos, EnergyStorage storage){ + public static void pushEnergyToAllSides(World world, BlockPos pos, EnergyStorage storage){ WorldUtil.pushEnergy(world, pos, EnumFacing.UP, storage); WorldUtil.pushEnergy(world, pos, EnumFacing.DOWN, storage); WorldUtil.pushEnergy(world, pos, EnumFacing.NORTH, storage); @@ -67,7 +63,7 @@ public class WorldUtil{ WorldUtil.pushEnergy(world, pos, EnumFacing.WEST, storage); } - public static void pushEnergy(World world, Position pos, EnumFacing side, EnergyStorage storage){ + public static void pushEnergy(World world, BlockPos pos, EnumFacing side, EnergyStorage storage){ TileEntity tile = getTileEntityFromSide(side, world, pos); if(tile != null && tile instanceof IEnergyReceiver && storage.getEnergyStored() > 0){ if(((IEnergyReceiver)tile).canConnectEnergy(side.getOpposite())){ @@ -77,8 +73,8 @@ public class WorldUtil{ } } - public static TileEntity getTileEntityFromSide(EnumFacing side, World world, Position pos){ - Position c = getCoordsFromSide(side, pos, 0); + public static TileEntity getTileEntityFromSide(EnumFacing side, World world, BlockPos pos){ + BlockPos c = getCoordsFromSide(side, pos, 0); if(c != null){ return world.getTileEntity(pos); } @@ -94,16 +90,16 @@ public class WorldUtil{ * @param world The World * @return Is every block present? */ - public static boolean hasBlocksInPlacesGiven(Position[] positions, Block block, int meta, World world){ - for(Position pos : positions){ - if(!(pos.getBlock(world) == block && pos.getMetadata(world) == meta)){ + public static boolean hasBlocksInPlacesGiven(BlockPos[] positions, Block block, int meta, World world){ + for(BlockPos pos : positions){ + if(!(PosUtil.getBlock(pos, world) == block && PosUtil.getMetadata(pos, world) == meta)){ return false; } } return true; } - public static void pushFluid(World world, Position pos, EnumFacing side, FluidTank tank){ + public static void pushFluid(World world, BlockPos pos, EnumFacing side, FluidTank tank){ TileEntity tile = getTileEntityFromSide(side, world, pos); if(tile != null && tank.getFluid() != null && tile instanceof IFluidHandler){ if(((IFluidHandler)tile).canFill(side.getOpposite(), tank.getFluid().getFluid())){ @@ -113,16 +109,16 @@ public class WorldUtil{ } } - public static ItemStack placeBlockAtSide(EnumFacing side, World world, Position pos, ItemStack stack){ + public static ItemStack placeBlockAtSide(EnumFacing side, World world, BlockPos pos, ItemStack stack){ if(world instanceof WorldServer && stack != null && stack.getItem() != null){ - Position offsetPos = pos.getOffsetPosition(side); + BlockPos offsetPos = pos.offset(side); //Fluids FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(stack); if(fluid != null && fluid.getFluid().getBlock() != null && fluid.getFluid().getBlock().canPlaceBlockAt(world, offsetPos)){ - Block block = offsetPos.getBlock(world); + Block block = PosUtil.getBlock(offsetPos, world); if(!(block instanceof IFluidBlock) && block != Blocks.lava && block != Blocks.water && block != Blocks.flowing_lava && block != Blocks.flowing_water){ - if(offsetPos.setBlock(world, fluid.getFluid().getBlock(), 0, 2)){ + if(PosUtil.setBlock(pos, world, fluid.getFluid().getBlock(), 0, 2)){ return stack.getItem().getContainerItem(stack); } } @@ -130,14 +126,14 @@ public class WorldUtil{ //Redstone else if(stack.getItem() == Items.redstone){ - offsetPos.setBlock(world, Blocks.redstone_wire, 0, 2); + PosUtil.setBlock(pos, world, Blocks.redstone_wire, 0, 2); stack.stackSize--; } //Plants else if(stack.getItem() instanceof IPlantable){ if(((IPlantable)stack.getItem()).getPlant(world, offsetPos).getBlock().canPlaceBlockAt(world, offsetPos)){ - if(offsetPos.setBlockState(world, ((IPlantable)stack.getItem()).getPlant(world, offsetPos), 2)){ + if(world.setBlockState(offsetPos, ((IPlantable)stack.getItem()).getPlant(world, offsetPos), 2)){ stack.stackSize--; } } @@ -156,8 +152,8 @@ public class WorldUtil{ return stack; } - public static void dropItemAtSide(EnumFacing side, World world, Position pos, ItemStack stack){ - Position coords = getCoordsFromSide(side, pos, 0); + public static void dropItemAtSide(EnumFacing side, World world, BlockPos pos, ItemStack stack){ + BlockPos coords = getCoordsFromSide(side, pos, 0); if(coords != null){ EntityItem item = new EntityItem(world, coords.getX()+0.5, coords.getY()+0.5, coords.getZ()+0.5, stack); item.motionX = 0; @@ -235,28 +231,15 @@ public class WorldUtil{ } public static EnumFacing getDirectionByPistonRotation(int meta){ - switch(meta){ - case 0: - return EnumFacing.UP; - case 1: - return EnumFacing.DOWN; - case 2: - return EnumFacing.NORTH; - case 3: - return EnumFacing.EAST; - case 4: - return EnumFacing.SOUTH; - default: - return EnumFacing.WEST; - } + return EnumFacing.values()[meta]; } - public static ArrayList getMaterialsAround(World world, Position pos){ + public static ArrayList getMaterialsAround(World world, BlockPos pos){ ArrayList blocks = new ArrayList(); - blocks.add(pos.getOffsetPosition(EnumFacing.NORTH).getMaterial(world)); - blocks.add(pos.getOffsetPosition(EnumFacing.EAST).getMaterial(world)); - blocks.add(pos.getOffsetPosition(EnumFacing.SOUTH).getMaterial(world)); - blocks.add(pos.getOffsetPosition(EnumFacing.WEST).getMaterial(world)); + blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.NORTH), world)); + blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.EAST), world)); + blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.SOUTH), world)); + blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.WEST), world)); return blocks; } @@ -362,10 +345,11 @@ public class WorldUtil{ * @param player The Player * @return If the Block could be harvested normally (so that it drops an item) */ - public static boolean playerHarvestBlock(World world, Position pos, EntityPlayer player){ - Block block = pos.getBlock(world); - IBlockState state = pos.getBlockState(world); - int meta = pos.getMetadata(world); + public static boolean playerHarvestBlock(World world, BlockPos pos, EntityPlayer player){ + Block block = PosUtil.getBlock(pos, world); + IBlockState state = world.getBlockState(pos); + int meta = PosUtil.getMetadata(pos, world); + TileEntity tile = world.getTileEntity(pos); //If the Block can be harvested or not boolean canHarvest = block.canHarvestBlock(world, pos, player); @@ -396,7 +380,7 @@ public class WorldUtil{ if(!world.isRemote && !player.capabilities.isCreativeMode){ //Actually drops the Block's Items etc. if(canHarvest){ - block.harvestBlock(world, player, pos, state, pos.getTileEntity(world)); + block.harvestBlock(world, player, pos, state, tile); } //Only drop XP when no Silk Touch is applied if(!EnchantmentHelper.getSilkTouchModifier(player)){