From 8b20fc066e8a4f9a029f18ed74a953eb94354113 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 01:43:49 +0100 Subject: [PATCH] Removed World from WorldPos, renamed it to Position. That fixed loads of issues. --- .../blocks/BlockLampPowerer.java | 10 +- .../blocks/BlockPhantom.java | 4 +- .../items/ItemGrowthRing.java | 16 +-- .../items/ItemLaserWrench.java | 15 ++- .../items/ItemLeafBlower.java | 8 +- .../items/ItemPhantomConnector.java | 21 ++-- .../actuallyadditions/items/lens/Lens.java | 4 +- .../items/lens/LensColor.java | 12 +- .../items/lens/LensDeath.java | 6 +- .../items/lens/LensDetonation.java | 6 +- .../items/lens/LensNone.java | 14 +-- .../misc/LaserRelayConnectionHandler.java | 51 +++++---- .../actuallyadditions/tile/IPhantomTile.java | 6 +- .../tile/TileEntityAtomicReconstructor.java | 4 +- .../tile/TileEntityBreaker.java | 4 +- .../tile/TileEntityDirectionalBreaker.java | 4 +- .../tile/TileEntityFluidCollector.java | 4 +- .../tile/TileEntityGreenhouseGlass.java | 12 +- .../tile/TileEntityHeatCollector.java | 4 +- .../tile/TileEntityLaserRelay.java | 18 +-- .../tile/TileEntityLeafGenerator.java | 8 +- .../tile/TileEntityPhantomEnergyface.java | 10 +- .../tile/TileEntityPhantomItemface.java | 6 +- .../tile/TileEntityPhantomLiquiface.java | 6 +- .../tile/TileEntityPhantomPlacer.java | 34 +++--- .../tile/TileEntityPhantomface.java | 23 ++-- .../actuallyadditions/util/Position.java | 91 +++++++++++++++ .../actuallyadditions/util/WorldPos.java | 106 ------------------ .../actuallyadditions/util/WorldUtil.java | 10 +- .../assets/actuallyadditions/lang/en_US.lang | 1 - 30 files changed, 254 insertions(+), 264 deletions(-) create mode 100644 src/main/java/ellpeck/actuallyadditions/util/Position.java delete mode 100644 src/main/java/ellpeck/actuallyadditions/util/WorldPos.java diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java index 9aace033c..724d876c3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java @@ -14,7 +14,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.blocks.base.BlockBase; import ellpeck.actuallyadditions.util.ModUtil; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockPistonBase; @@ -85,15 +85,15 @@ public class BlockLampPowerer extends BlockBase{ private void updateLamp(World world, int x, int y, int z){ if(!world.isRemote){ - WorldPos coords = WorldUtil.getCoordsFromSide(ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)), world, x, y, z, 0); - if(coords != null && coords.getBlock() instanceof BlockColoredLamp){ + Position coords = WorldUtil.getCoordsFromSide(ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)), x, y, z, 0); + if(coords != null && coords.getBlock(world) instanceof BlockColoredLamp){ if(world.isBlockIndirectlyGettingPowered(x, y, z)){ - if(!((BlockColoredLamp)coords.getBlock()).isOn){ + if(!((BlockColoredLamp)coords.getBlock(world)).isOn){ world.setBlock(coords.getX(), coords.getY(), coords.getZ(), InitBlocks.blockColoredLampOn, world.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()), 2); } } else{ - if(((BlockColoredLamp)coords.getBlock()).isOn){ + if(((BlockColoredLamp)coords.getBlock(world)).isOn){ world.setBlock(coords.getX(), coords.getY(), coords.getZ(), InitBlocks.blockColoredLamp, world.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()), 2); } } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java index 94167e3e9..de3a37114 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java @@ -126,8 +126,8 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{ minecraft.fontRenderer.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)Vec3.createVectorHelper(posHit.blockX, posHit.blockY, posHit.blockZ).distanceTo(Vec3.createVectorHelper(phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ())); - Item item = phantom.getBoundPosition().getItemBlock(); - String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(phantom.getBoundPosition().getBlock(), 1, phantom.getBoundPosition().getMetadata())); + 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))); StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, 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); if(phantom.isBoundThingInRange()){ diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java index a766f4233..383ae496d 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java @@ -14,8 +14,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.items.base.ItemEnergy; import ellpeck.actuallyadditions.util.ModUtil; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.block.Block; import net.minecraft.block.BlockGrass; import net.minecraft.block.IGrowable; @@ -49,7 +49,7 @@ public class ItemGrowthRing extends ItemEnergy{ int energyUse = 550; if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= energyUse){ - ArrayList blocks = new ArrayList(); + ArrayList blocks = new ArrayList(); if(stack.stackTagCompound == null){ stack.setTagCompound(new NBTTagCompound()); @@ -67,7 +67,7 @@ public class ItemGrowthRing extends ItemEnergy{ int theZ = MathHelper.floor_double(player.posZ+z); Block theBlock = world.getBlock(theX, theY, theZ); if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){ - blocks.add(new WorldPos(world, theX, theY, theZ)); + blocks.add(new Position(theX, theY, theZ)); } } } @@ -76,14 +76,14 @@ public class ItemGrowthRing extends ItemEnergy{ //Fertilizing the Blocks if(!blocks.isEmpty()){ for(int i = 0; i < 45; i++){ - WorldPos pos = blocks.get(Util.RANDOM.nextInt(blocks.size())); + Position pos = blocks.get(Util.RANDOM.nextInt(blocks.size())); - int metaBefore = pos.getMetadata(); - pos.getBlock().updateTick(world, pos.getX(), pos.getY(), pos.getZ(), Util.RANDOM); + int metaBefore = pos.getMetadata(world); + pos.getBlock(world).updateTick(world, pos.getX(), pos.getY(), pos.getZ(), Util.RANDOM); //Show Particles if Metadata changed - if(pos.getMetadata() != metaBefore){ - pos.getWorld().playAuxSFX(2005, pos.getX(), pos.getY(), pos.getZ(), 0); + if(pos.getMetadata(world) != metaBefore){ + world.playAuxSFX(2005, pos.getX(), pos.getY(), pos.getZ(), 0); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index 49940748f..9792451af 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -16,8 +16,8 @@ import ellpeck.actuallyadditions.items.base.ItemBase; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.ModUtil; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.StringUtil; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -48,13 +48,13 @@ public class ItemLaserWrench extends ItemBase{ player.addChatComponentMessage(new ChatComponentText(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".laser.stored.desc"))); } else{ - WorldPos savedPos = ItemPhantomConnector.getStoredPosition(stack); - WorldPos otherPos = new WorldPos(world, x, y, z); - if(savedPos.getTileEntity() instanceof TileEntityLaserRelay && LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ + Position savedPos = ItemPhantomConnector.getStoredPosition(stack); + Position otherPos = new Position(x, y, z); + if(ItemPhantomConnector.getStoredWorld(stack) == world && savedPos.getTileEntity(world) instanceof TileEntityLaserRelay && LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ ItemPhantomConnector.clearStorage(stack); - ((TileEntityLaserRelay)savedPos.getTileEntity()).sendUpdate(); - ((TileEntityLaserRelay)otherPos.getTileEntity()).sendUpdate(); + ((TileEntityLaserRelay)savedPos.getTileEntity(world)).sendUpdate(); + ((TileEntityLaserRelay)otherPos.getTileEntity(world)).sendUpdate(); player.addChatComponentMessage(new ChatComponentText(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".laser.connected.desc"))); } @@ -84,13 +84,12 @@ public class ItemLaserWrench extends ItemBase{ @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ - WorldPos coords = ItemPhantomConnector.getStoredPosition(stack); + Position coords = ItemPhantomConnector.getStoredPosition(stack); if(coords != null){ list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); list.add("X: "+coords.getX()); list.add("Y: "+coords.getY()); list.add("Z: "+coords.getZ()); - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+coords.getWorldID()); list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java index 92ce1dd72..135cb0b70 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java @@ -15,7 +15,7 @@ import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.items.base.ItemBase; import ellpeck.actuallyadditions.util.ModUtil; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; import net.minecraft.client.renderer.texture.IIconRegister; @@ -92,7 +92,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; @@ -102,7 +102,7 @@ public class ItemLeafBlower extends ItemBase{ //The current Block to break Block block = world.getBlock(x+reachX, y+reachY, z+reachZ); if(block != null && (block instanceof BlockBush || (this.isAdvanced && block.isLeaves(world, x+reachX, y+reachY, z+reachZ)))){ - breakPositions.add(new WorldPos(world, x+reachX, y+reachY, z+reachZ)); + breakPositions.add(new Position(x+reachX, y+reachY, z+reachZ)); } } } @@ -111,7 +111,7 @@ public class ItemLeafBlower extends ItemBase{ if(!breakPositions.isEmpty()){ Collections.shuffle(breakPositions); - WorldPos theCoord = breakPositions.get(0); + Position theCoord = breakPositions.get(0); Block theBlock = world.getBlock(theCoord.getX(), theCoord.getY(), theCoord.getZ()); ArrayList drops = new ArrayList(); diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index a98436f23..5491536b8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -16,8 +16,8 @@ import ellpeck.actuallyadditions.items.base.ItemBase; import ellpeck.actuallyadditions.tile.IPhantomTile; import ellpeck.actuallyadditions.tile.TileEntityBase; import ellpeck.actuallyadditions.util.ModUtil; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.StringUtil; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -29,6 +29,7 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.DimensionManager; import java.util.List; @@ -47,7 +48,7 @@ public class ItemPhantomConnector extends ItemBase{ if(tile != null){ //Passing to Phantom if(tile instanceof IPhantomTile){ - if(this.checkHasConnection(stack, player, tile)){ + if(this.checkHasConnection(stack, player, tile) && getStoredWorld(stack) == world){ ((IPhantomTile)tile).setBoundPosition(getStoredPosition(stack)); if(tile instanceof TileEntityBase){ ((TileEntityBase)tile).sendUpdate(); @@ -79,20 +80,27 @@ public class ItemPhantomConnector extends ItemBase{ } } - public static WorldPos getStoredPosition(ItemStack stack){ + public static Position 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"); - int world = tag.getInteger("WorldOfTileStored"); if(!(x == 0 && y == 0 && z == 0)){ - return new WorldPos(world, x, y, z); + return new Position(x, y, z); } } return null; } + public static World getStoredWorld(ItemStack stack){ + NBTTagCompound tag = stack.getTagCompound(); + if(tag != null){ + return DimensionManager.getWorld(tag.getInteger("WorldOfTileStored")); + } + return null; + } + public static void clearStorage(ItemStack stack){ stack.setTagCompound(new NBTTagCompound()); } @@ -127,13 +135,12 @@ public class ItemPhantomConnector extends ItemBase{ @SuppressWarnings("unchecked") @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ - WorldPos coords = getStoredPosition(stack); + Position coords = getStoredPosition(stack); if(coords != null){ list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); list.add("X: "+coords.getX()); list.add("Y: "+coords.getY()); list.add("Z: "+coords.getZ()); - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+coords.getWorldID()); list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/Lens.java b/src/main/java/ellpeck/actuallyadditions/items/lens/Lens.java index 56597fa3d..282e88f69 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/Lens.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/Lens.java @@ -11,14 +11,14 @@ package ellpeck.actuallyadditions.items.lens; import ellpeck.actuallyadditions.tile.TileEntityAtomicReconstructor; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import net.minecraft.item.Item; public abstract class Lens{ protected Item lensItem; - public abstract boolean invoke(WorldPos hitBlock, TileEntityAtomicReconstructor tile); + public abstract boolean invoke(Position hitBlock, TileEntityAtomicReconstructor tile); public abstract float[] getColor(); diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensColor.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensColor.java index 027488f2e..8a6185dfe 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensColor.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensColor.java @@ -12,8 +12,8 @@ package ellpeck.actuallyadditions.items.lens; import ellpeck.actuallyadditions.blocks.InitBlocks; import ellpeck.actuallyadditions.tile.TileEntityAtomicReconstructor; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; @@ -53,15 +53,15 @@ public class LensColor extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(WorldPos hitBlock, TileEntityAtomicReconstructor tile){ + public boolean invoke(Position hitBlock, TileEntityAtomicReconstructor tile){ if(hitBlock != null){ - if(Util.arrayContains(CONVERTABLE_BLOCKS, hitBlock.getBlock()) >= 0 && tile.storage.getEnergyStored() >= ENERGY_USE){ - int meta = hitBlock.getMetadata(); + if(Util.arrayContains(CONVERTABLE_BLOCKS, hitBlock.getBlock(tile.getWorldObj())) >= 0 && tile.storage.getEnergyStored() >= ENERGY_USE){ + int meta = hitBlock.getMetadata(tile.getWorldObj()); if(meta >= 15){ - hitBlock.setMetadata(0, 2); + hitBlock.setMetadata(tile.getWorldObj(), 0, 2); } else{ - hitBlock.setMetadata(meta+1, 2); + hitBlock.setMetadata(tile.getWorldObj(), meta+1, 2); } tile.storage.extractEnergy(ENERGY_USE, false); } diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensDeath.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensDeath.java index 0fc623f9b..b6977f8e5 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensDeath.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensDeath.java @@ -12,7 +12,7 @@ package ellpeck.actuallyadditions.items.lens; import ellpeck.actuallyadditions.misc.DamageSources; import ellpeck.actuallyadditions.tile.TileEntityAtomicReconstructor; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; @@ -22,7 +22,7 @@ public class LensDeath extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(WorldPos hitBlock, TileEntityAtomicReconstructor tile){ + public boolean invoke(Position hitBlock, TileEntityAtomicReconstructor tile){ int use = 150; //Per Block (because it doesn't only activate when something is hit like the other lenses!) if(tile.storage.getEnergyStored() >= use){ tile.storage.extractEnergy(use, false); @@ -33,7 +33,7 @@ public class LensDeath extends Lens{ } } - return hitBlock != null && !hitBlock.getBlock().isAir(hitBlock.getWorld(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ()); + return hitBlock != null && !hitBlock.getBlock(tile.getWorldObj()).isAir(tile.getWorldObj(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ()); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensDetonation.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensDetonation.java index 79a8ce3a0..d095a3b95 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensDetonation.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensDetonation.java @@ -11,13 +11,13 @@ package ellpeck.actuallyadditions.items.lens; import ellpeck.actuallyadditions.tile.TileEntityAtomicReconstructor; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; public class LensDetonation extends Lens{ @Override - public boolean invoke(WorldPos hitBlock, TileEntityAtomicReconstructor tile){ - if(hitBlock != null && !hitBlock.getBlock().isAir(hitBlock.getWorld(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ())){ + public boolean invoke(Position hitBlock, TileEntityAtomicReconstructor tile){ + if(hitBlock != null && !hitBlock.getBlock(tile.getWorldObj()).isAir(tile.getWorldObj(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ())){ int use = 500000; if(tile.storage.getEnergyStored() >= use){ tile.getWorldObj().newExplosion(null, hitBlock.getX()+0.5, hitBlock.getY()+0.5, hitBlock.getZ()+0.5, 10F, true, true); diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNone.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNone.java index 4a6ed8ae9..a6d58e8f8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNone.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNone.java @@ -11,7 +11,7 @@ package ellpeck.actuallyadditions.items.lens; import ellpeck.actuallyadditions.tile.TileEntityAtomicReconstructor; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemBlock; @@ -25,24 +25,24 @@ public class LensNone extends Lens{ @SuppressWarnings("unchecked") @Override - public boolean invoke(WorldPos hitBlock, TileEntityAtomicReconstructor tile){ - if(hitBlock != null && !hitBlock.getBlock().isAir(hitBlock.getWorld(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ())){ + public boolean invoke(Position hitBlock, TileEntityAtomicReconstructor tile){ + if(hitBlock != null && !hitBlock.getBlock(tile.getWorldObj()).isAir(tile.getWorldObj(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ())){ 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++){ - WorldPos pos = new WorldPos(tile.getWorldObj(), hitBlock.getX()+reachX, hitBlock.getY()+reachY, hitBlock.getZ()+reachZ); - ArrayList recipes = LensNoneRecipeHandler.getRecipesFor(new ItemStack(pos.getBlock(), 1, pos.getMetadata())); + Position pos = new Position(hitBlock.getX()+reachX, hitBlock.getY()+reachY, hitBlock.getZ()+reachZ); + ArrayList recipes = LensNoneRecipeHandler.getRecipesFor(new ItemStack(pos.getBlock(tile.getWorldObj()), 1, pos.getMetadata(tile.getWorldObj()))); for(LensNoneRecipeHandler.Recipe recipe : recipes){ if(recipe != null && tile.storage.getEnergyStored() >= recipe.energyUse){ List outputs = recipe.getOutputs(); if(outputs != null && !outputs.isEmpty()){ ItemStack output = outputs.get(0); if(output.getItem() instanceof ItemBlock){ - tile.getWorldObj().playAuxSFX(2001, pos.getX(), pos.getY(), pos.getZ(), Block.getIdFromBlock(pos.getBlock())+(pos.getMetadata() << 12)); - pos.setBlock(Block.getBlockFromItem(output.getItem()), output.getItemDamage(), 2); + tile.getWorldObj().playAuxSFX(2001, pos.getX(), pos.getY(), pos.getZ(), Block.getIdFromBlock(pos.getBlock(tile.getWorldObj()))+(pos.getMetadata(tile.getWorldObj()) << 12)); + pos.setBlock(tile.getWorldObj(), Block.getBlockFromItem(output.getItem()), output.getItemDamage(), 2); } else{ EntityItem item = new EntityItem(tile.getWorldObj(), pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, output.copy()); diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 696ad48fb..2e92898d9 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -13,12 +13,13 @@ package ellpeck.actuallyadditions.misc; import cofh.api.energy.IEnergyReceiver; import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.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.world.World; import net.minecraftforge.common.util.ForgeDirection; public class LaserRelayConnectionHandler{ @@ -60,7 +61,7 @@ public class LaserRelayConnectionHandler{ /** * Gets all Connections for a Relay */ - public ConcurrentSet getConnectionsFor(WorldPos relay){ + public ConcurrentSet getConnectionsFor(Position relay){ ConcurrentSet allPairs = new ConcurrentSet(); for(Network aNetwork : this.networks){ for(ConnectionPair pair : aNetwork.connections){ @@ -75,7 +76,7 @@ public class LaserRelayConnectionHandler{ /** * Removes a Relay from its Network */ - public void removeRelayFromNetwork(WorldPos relay){ + public void removeRelayFromNetwork(Position relay){ Network network = this.getNetworkFor(relay); if(network != null){ //Setup new network (so that splitting a network will cause it to break into two) @@ -93,7 +94,7 @@ public class LaserRelayConnectionHandler{ /** * Gets a Network for a Relay */ - public Network getNetworkFor(WorldPos relay){ + public Network getNetworkFor(Position relay){ for(Network aNetwork : this.networks){ for(ConnectionPair pair : aNetwork.connections){ if(pair.contains(relay)){ @@ -108,9 +109,9 @@ public class LaserRelayConnectionHandler{ * Adds a new connection between two relays * (Puts it into the correct network!) */ - public boolean addConnection(WorldPos firstRelay, WorldPos secondRelay){ + public boolean addConnection(Position firstRelay, Position secondRelay){ int distance = (int)firstRelay.toVec().distanceTo(secondRelay.toVec()); - if(distance > TileEntityLaserRelay.MAX_DISTANCE || firstRelay.isEqual(secondRelay) || firstRelay.getWorld() != secondRelay.getWorld()){ + if(distance > TileEntityLaserRelay.MAX_DISTANCE || firstRelay.isEqual(secondRelay)){ return false; } @@ -160,21 +161,21 @@ public class LaserRelayConnectionHandler{ //System.out.println("Merged Two Networks!"); } - public int transferEnergyToReceiverInNeed(WorldPos energyGottenFrom, Network network, int maxTransfer, boolean simulate){ + public int transferEnergyToReceiverInNeed(World world, Position energyGottenFrom, Network network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network for(ConnectionPair pair : network.connections){ - WorldPos[] relays = new WorldPos[]{pair.firstRelay, pair.secondRelay}; + Position[] relays = new Position[]{pair.firstRelay, pair.secondRelay}; //Go through both relays in the connection - for(WorldPos relay : relays){ + for(Position relay : relays){ if(relay != null){ //Get every side of the relay for(int i = 0; i <= 5; i++){ ForgeDirection side = ForgeDirection.getOrientation(i); //Get the Position at the side - WorldPos pos = WorldUtil.getCoordsFromSide(side, relay.getWorld(), relay.getX(), relay.getY(), relay.getZ(), 0); + Position pos = WorldUtil.getCoordsFromSide(side, relay.getX(), relay.getY(), relay.getZ(), 0); if(!pos.isEqual(energyGottenFrom)){ - TileEntity tile = pos.getTileEntity(); + TileEntity tile = pos.getTileEntity(world); if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){ IEnergyReceiver receiver = (IEnergyReceiver)tile; if(receiver.canConnectEnergy(side.getOpposite())){ @@ -202,26 +203,29 @@ public class LaserRelayConnectionHandler{ public static class ConnectionPair{ - public WorldPos firstRelay; - public WorldPos secondRelay; + public Position firstRelay; + public Position secondRelay; - public ConnectionPair(WorldPos firstRelay, WorldPos secondRelay){ + public ConnectionPair(Position firstRelay, Position secondRelay){ this.firstRelay = firstRelay; this.secondRelay = secondRelay; } public static ConnectionPair readFromNBT(NBTTagCompound compound){ - WorldPos[] pos = new WorldPos[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 WorldPos(compound.getInteger("world"+i), anX, aY, aZ); + if(compound != null){ + Position[] pos = new Position[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); + } + return new ConnectionPair(pos[0], pos[1]); } - return new ConnectionPair(pos[0], pos[1]); + return null; } - public boolean contains(WorldPos relay){ + public boolean contains(Position relay){ return (this.firstRelay != null && this.firstRelay.isEqual(relay)) || (this.secondRelay != null && this.secondRelay.isEqual(relay)); } @@ -233,8 +237,7 @@ public class LaserRelayConnectionHandler{ public NBTTagCompound writeToNBT(){ NBTTagCompound compound = new NBTTagCompound(); for(int i = 0; i < 2; i++){ - WorldPos relay = i == 0 ? this.firstRelay : this.secondRelay; - compound.setInteger("world"+i, relay.getWorldID()); + Position 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/ellpeck/actuallyadditions/tile/IPhantomTile.java b/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java index ddea8f73a..d9ad40880 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java @@ -10,7 +10,7 @@ package ellpeck.actuallyadditions.tile; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; public interface IPhantomTile{ @@ -27,9 +27,9 @@ public interface IPhantomTile{ /** * @return The position this tile is bound to */ - WorldPos getBoundPosition(); + Position getBoundPosition(); - void setBoundPosition(WorldPos pos); + void setBoundPosition(Position pos); /** * @return The ID of the GUI it opens, -1 if none diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityAtomicReconstructor.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityAtomicReconstructor.java index 3be223496..002e2cf9c 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityAtomicReconstructor.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityAtomicReconstructor.java @@ -21,7 +21,7 @@ import ellpeck.actuallyadditions.items.lens.Lenses; import ellpeck.actuallyadditions.network.PacketHandler; import ellpeck.actuallyadditions.network.PacketParticle; import ellpeck.actuallyadditions.util.ModUtil; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -73,7 +73,7 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple Lens currentLens = this.getCurrentLens(); int distance = currentLens.getDistance(); for(int i = 0; i < distance; i++){ - WorldPos hitBlock = WorldUtil.getCoordsFromSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord, i); + Position hitBlock = WorldUtil.getCoordsFromSide(sideToManipulate, xCoord, yCoord, zCoord, i); if(currentLens.invoke(hitBlock, this)){ this.shootLaser(hitBlock.getX(), hitBlock.getY(), hitBlock.getZ(), currentLens); diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java index 694222e26..5a6b75a58 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java @@ -10,7 +10,7 @@ package ellpeck.actuallyadditions.tile; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; @@ -69,7 +69,7 @@ public class TileEntityBreaker extends TileEntityInventoryBase implements IRedst private void doWork(){ ForgeDirection sideToManipulate = ForgeDirection.getOrientation(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); - WorldPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord, 0); + Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, xCoord, yCoord, zCoord, 0); if(coordsBlock != null){ Block blockToBreak = worldObj.getBlock(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()); if(!this.isPlacer && blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(worldObj, coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()) > -1.0F){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java index af3f5ef1f..ccfd08c9a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java @@ -14,7 +14,7 @@ import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; @@ -66,7 +66,7 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem ForgeDirection sideToManipulate = ForgeDirection.getOrientation(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); for(int i = 0; i < RANGE; i++){ - WorldPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord, i); + Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, xCoord, yCoord, zCoord, i); if(coordsBlock != null){ Block blockToBreak = worldObj.getBlock(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()); if(blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(worldObj, coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()) > -1.0F){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java index ebb6a0ead..2152d111a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java @@ -12,7 +12,7 @@ package ellpeck.actuallyadditions.tile; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -56,7 +56,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements private void doWork(){ ForgeDirection sideToManipulate = ForgeDirection.getOrientation(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); - WorldPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord, 0); + Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, xCoord, yCoord, zCoord, 0); if(coordsBlock != null){ Block blockToBreak = worldObj.getBlock(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()); if(!this.isPlacer && blockToBreak != null && worldObj.getBlockMetadata(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java index a3881f5ed..7792cc943 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java @@ -10,8 +10,8 @@ package ellpeck.actuallyadditions.tile; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.block.Block; import net.minecraft.block.BlockGrass; import net.minecraft.block.IGrowable; @@ -30,12 +30,12 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{ if(this.timeUntilNextFert > 0){ this.timeUntilNextFert--; if(timeUntilNextFert <= 0){ - WorldPos blockToFert = this.blockToFertilize(); + Position blockToFert = this.blockToFertilize(); if(blockToFert != null){ - int metaBefore = blockToFert.getMetadata(); + int metaBefore = blockToFert.getMetadata(worldObj); worldObj.getBlock(blockToFert.getX(), blockToFert.getY(), blockToFert.getZ()).updateTick(worldObj, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), Util.RANDOM); - if(blockToFert.getMetadata() != metaBefore){ + if(blockToFert.getMetadata(worldObj) != metaBefore){ worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0); } } @@ -49,12 +49,12 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{ } } - public WorldPos blockToFertilize(){ + public Position blockToFertilize(){ for(int i = yCoord-1; i > 0; i--){ Block block = worldObj.getBlock(xCoord, i, zCoord); if(block != null && !(worldObj.isAirBlock(xCoord, i, zCoord))){ if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){ - return new WorldPos(worldObj, xCoord, i, zCoord); + return new Position(xCoord, i, zCoord); } else{ return null; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java index c7b65e96c..644647004 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java @@ -14,8 +14,8 @@ import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -38,7 +38,7 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr ArrayList blocksAround = new ArrayList(); if(ENERGY_PRODUCE <= this.getMaxEnergyStored(ForgeDirection.UNKNOWN)-this.getEnergyStored(ForgeDirection.UNKNOWN)){ for(int i = 1; i <= 5; i++){ - WorldPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), worldObj, xCoord, yCoord, zCoord, 0); + Position coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), xCoord, yCoord, zCoord, 0); if(coords != null){ Block block = worldObj.getBlock(coords.getX(), coords.getY(), coords.getZ()); if(block != null && block.getMaterial() == Material.lava && worldObj.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()) == 0){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 1559bde67..803d2ec56 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -17,8 +17,8 @@ import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.network.PacketParticle; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import io.netty.util.internal.ConcurrentSet; import net.minecraft.nbt.NBTTagCompound; @@ -44,7 +44,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @SideOnly(Side.CLIENT) public void renderParticles(){ if(Util.RANDOM.nextInt(2) == 0){ - WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); + Position thisPos = new Position(this.xCoord, this.yCoord, this.zCoord); LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ for(LaserRelayConnectionHandler.ConnectionPair aPair : network.connections){ @@ -60,7 +60,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei public Packet getDescriptionPacket(){ NBTTagCompound compound = new NBTTagCompound(); - WorldPos thisPos = new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord); + Position thisPos = new Position(this.xCoord, this.yCoord, this.zCoord); ConcurrentSet connections = LaserRelayConnectionHandler.getInstance().getConnectionsFor(thisPos); if(connections != null){ @@ -76,7 +76,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt){ - WorldPos thisPos = new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord); + Position thisPos = new Position(this.xCoord, this.yCoord, this.zCoord); if(pkt != null && pkt.func_148857_g() != null){ LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(thisPos); @@ -94,12 +94,12 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void invalidate(){ super.invalidate(); - LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); + LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new Position(this.xCoord, this.yCoord, this.zCoord)); } @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate){ - return this.transmitEnergy(WorldUtil.getCoordsFromSide(from, worldObj, xCoord, yCoord, zCoord, 0), maxReceive, simulate); + return this.transmitEnergy(WorldUtil.getCoordsFromSide(from, xCoord, yCoord, zCoord, 0), maxReceive, simulate); } @Override @@ -112,12 +112,12 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei return 0; } - public int transmitEnergy(WorldPos blockFrom, int maxTransmit, boolean simulate){ + public int transmitEnergy(Position blockFrom, int maxTransmit, boolean simulate){ int transmitted = 0; if(maxTransmit > 0){ - LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new Position(this.xCoord, this.yCoord, this.zCoord)); if(network != null){ - transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(blockFrom, network, Math.min(ConfigIntValues.LASER_RELAY_MAX_TRANSFER.getValue(), maxTransmit), simulate); + transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(worldObj, blockFrom, network, Math.min(ConfigIntValues.LASER_RELAY_MAX_TRANSFER.getValue(), maxTransmit), simulate); } } return transmitted; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java index 99ad0e1d6..e627bd50b 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java @@ -17,7 +17,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.network.PacketHandler; import ellpeck.actuallyadditions.network.PacketParticle; -import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; @@ -45,14 +45,14 @@ 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++){ Block block = this.worldObj.getBlock(this.xCoord+reachX, this.yCoord+reachY, this.zCoord+reachZ); if(block != null && block.isLeaves(this.worldObj, this.xCoord+reachX, this.yCoord+reachY, this.zCoord+reachZ)){ - breakPositions.add(new WorldPos(this.worldObj, this.xCoord+reachX, this.yCoord+reachY, this.zCoord+reachZ)); + breakPositions.add(new Position(this.xCoord+reachX, this.yCoord+reachY, this.zCoord+reachZ)); } } } @@ -60,7 +60,7 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr if(!breakPositions.isEmpty()){ Collections.shuffle(breakPositions); - WorldPos theCoord = breakPositions.get(0); + Position theCoord = breakPositions.get(0); Block theBlock = this.worldObj.getBlock(theCoord.getX(), theCoord.getY(), theCoord.getZ()); int meta = this.worldObj.getBlockMetadata(theCoord.getX(), theCoord.getY(), theCoord.getZ()); diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java index 2d50071fe..963f89490 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java @@ -62,8 +62,8 @@ public class TileEntityPhantomEnergyface extends TileEntityPhantomface implement } public IEnergyProvider getProvider(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - TileEntity tile = boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + if(this.boundPosition != null){ + TileEntity tile = worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); if(tile instanceof IEnergyProvider){ return (IEnergyProvider)tile; } @@ -72,8 +72,8 @@ public class TileEntityPhantomEnergyface extends TileEntityPhantomface implement } public IEnergyReceiver getReceiver(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - TileEntity tile = boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + if(this.boundPosition != null){ + TileEntity tile = worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); if(tile instanceof IEnergyReceiver){ return (IEnergyReceiver)tile; } @@ -99,7 +99,7 @@ public class TileEntityPhantomEnergyface extends TileEntityPhantomface implement @Override public boolean isBoundThingInRange(){ - return super.isBoundThingInRange() && (this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IEnergyReceiver || this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IEnergyProvider); + return super.isBoundThingInRange() && (worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IEnergyReceiver || worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IEnergyProvider); } private void pushEnergy(ForgeDirection side){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java index fd94d8143..25efafa8e 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java @@ -80,7 +80,7 @@ public class TileEntityPhantomItemface extends TileEntityPhantomface{ @Override public boolean isBoundThingInRange(){ - return super.isBoundThingInRange() && this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IInventory; + return super.isBoundThingInRange() && worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IInventory; } public ISidedInventory getSided(){ @@ -88,8 +88,8 @@ public class TileEntityPhantomItemface extends TileEntityPhantomface{ } public IInventory getInventory(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - TileEntity tile = boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + if(this.boundPosition != null){ + TileEntity tile = worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); if(tile instanceof IInventory){ return (IInventory)tile; } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java index a72fb4055..1666b8bd8 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java @@ -43,8 +43,8 @@ public class TileEntityPhantomLiquiface extends TileEntityPhantomface implements } public IFluidHandler getHandler(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - TileEntity tile = boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + if(this.boundPosition != null){ + TileEntity tile = worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); if(tile instanceof IFluidHandler){ return (IFluidHandler)tile; } @@ -73,7 +73,7 @@ public class TileEntityPhantomLiquiface extends TileEntityPhantomface implements @Override public boolean isBoundThingInRange(){ - return super.isBoundThingInRange() && this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IFluidHandler; + return super.isBoundThingInRange() && worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IFluidHandler; } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java index 4604822b9..77c57666a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java @@ -14,8 +14,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.inventory.GuiHandler; import ellpeck.actuallyadditions.network.PacketParticle; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; @@ -28,7 +28,7 @@ import java.util.ArrayList; public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements IPhantomTile, IRedstoneToggle{ public static final int RANGE = 3; - public WorldPos boundPosition; + public Position boundPosition; public int currentTime; public int range; public boolean isBreaker; @@ -83,36 +83,36 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements @Override public boolean hasBoundPosition(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - if(this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IPhantomTile || (this.xCoord == this.boundPosition.getX() && this.yCoord == this.boundPosition.getY() && this.zCoord == this.boundPosition.getZ() && this.worldObj.provider.dimensionId == this.boundPosition.getWorld().provider.dimensionId)){ + if(this.boundPosition != null){ + if(this.worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IPhantomTile || (this.xCoord == this.boundPosition.getX() && this.yCoord == this.boundPosition.getY() && this.zCoord == this.boundPosition.getZ() && this.worldObj.provider.dimensionId == this.worldObj.provider.dimensionId)){ this.boundPosition = null; return false; } - return this.worldObj.provider.dimensionId == this.boundPosition.getWorld().provider.dimensionId; + return this.worldObj.provider.dimensionId == this.worldObj.provider.dimensionId; } return false; } private void doWork(){ if(this.isBreaker){ - Block blockToBreak = boundPosition.getWorld().getBlock(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); - if(blockToBreak != null && blockToBreak.getBlockHardness(boundPosition.getWorld(), boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) > -1.0F){ + Block blockToBreak = worldObj.getBlock(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + if(blockToBreak != null && blockToBreak.getBlockHardness(worldObj, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) > -1.0F){ ArrayList drops = new ArrayList(); - int meta = boundPosition.getWorld().getBlockMetadata(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); - drops.addAll(blockToBreak.getDrops(boundPosition.getWorld(), boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), meta, 0)); + int meta = worldObj.getBlockMetadata(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + drops.addAll(blockToBreak.getDrops(worldObj, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), meta, 0)); if(WorldUtil.addToInventory(this, drops, false)){ - boundPosition.getWorld().playAuxSFX(2001, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), Block.getIdFromBlock(blockToBreak)+(meta << 12)); - WorldUtil.breakBlockAtSide(ForgeDirection.UNKNOWN, boundPosition.getWorld(), boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); + worldObj.playAuxSFX(2001, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), Block.getIdFromBlock(blockToBreak)+(meta << 12)); + WorldUtil.breakBlockAtSide(ForgeDirection.UNKNOWN, worldObj, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()); WorldUtil.addToInventory(this, drops, true); this.markDirty(); } } } else{ - if(boundPosition.getWorld().getBlock(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()).isReplaceable(boundPosition.getWorld(), boundPosition.getX(), boundPosition.getY(), boundPosition.getZ())){ + if(worldObj.getBlock(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()).isReplaceable(worldObj, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ())){ int theSlot = WorldUtil.findFirstFilledSlot(this.slots); - this.setInventorySlotContents(theSlot, WorldUtil.placeBlockAtSide(ForgeDirection.UNKNOWN, boundPosition.getWorld(), boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), this.slots[theSlot])); + this.setInventorySlotContents(theSlot, WorldUtil.placeBlockAtSide(ForgeDirection.UNKNOWN, worldObj, boundPosition.getX(), boundPosition.getY(), boundPosition.getZ(), this.slots[theSlot])); if(this.slots[theSlot] != null && this.slots[theSlot].stackSize <= 0){ this.slots[theSlot] = null; } @@ -145,12 +145,12 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements } @Override - public WorldPos getBoundPosition(){ + public Position getBoundPosition(){ return this.boundPosition; } @Override - public void setBoundPosition(WorldPos pos){ + public void setBoundPosition(Position pos){ this.boundPosition = pos == null ? null : pos.copy(); } @@ -172,7 +172,6 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements compound.setInteger("XCoordOfTileStored", boundPosition.getX()); compound.setInteger("YCoordOfTileStored", boundPosition.getY()); compound.setInteger("ZCoordOfTileStored", boundPosition.getZ()); - compound.setInteger("WorldOfTileStored", boundPosition.getWorld().provider.dimensionId); } } @@ -182,10 +181,9 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements 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 WorldPos(world, x, y, z); + this.boundPosition = new Position(x, y, z); this.markDirty(); } } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java index 3a0065330..69140b492 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java @@ -15,8 +15,8 @@ import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.blocks.BlockPhantom; import ellpeck.actuallyadditions.blocks.InitBlocks; import ellpeck.actuallyadditions.network.PacketParticle; +import ellpeck.actuallyadditions.util.Position; import ellpeck.actuallyadditions.util.Util; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,11 +27,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 WorldPos boundPosition; + public Position boundPosition; public BlockPhantom.Type type; public int range; private int rangeBefore; - private WorldPos boundPosBefore; + private Position boundPosBefore; private Block boundBlockBefore; public TileEntityPhantomface(String name){ @@ -48,10 +48,10 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP this.boundPosition = null; } - if(this.boundPosition != this.boundPosBefore || (this.boundPosition != null && this.boundPosition.getBlock() != this.boundBlockBefore) || this.rangeBefore != this.range){ + if(this.boundPosition != this.boundPosBefore || (this.boundPosition != null && this.boundPosition.getBlock(worldObj) != this.boundBlockBefore) || this.rangeBefore != this.range){ this.rangeBefore = this.range; this.boundPosBefore = this.boundPosition; - this.boundBlockBefore = this.boundPosition == null ? null : this.boundPosition.getBlock(); + this.boundBlockBefore = this.boundPosition == null ? null : this.boundPosition.getBlock(worldObj); this.getWorldObj().markBlockForUpdate(this.xCoord+1, this.yCoord, this.zCoord); this.getWorldObj().markBlockForUpdate(this.xCoord-1, this.yCoord, this.zCoord); @@ -78,7 +78,6 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP compound.setInteger("XCoordOfTileStored", boundPosition.getX()); compound.setInteger("YCoordOfTileStored", boundPosition.getY()); compound.setInteger("ZCoordOfTileStored", boundPosition.getZ()); - compound.setInteger("WorldOfTileStored", boundPosition.getWorld().provider.dimensionId); } } @@ -91,7 +90,7 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP int world = compound.getInteger("WorldOfTileStored"); this.range = compound.getInteger("Range"); if(!(x == 0 && y == 0 && z == 0)){ - this.boundPosition = new WorldPos(world, x, y, z); + this.boundPosition = new Position(x, y, z); this.markDirty(); } } @@ -112,12 +111,12 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP @Override public boolean hasBoundPosition(){ - if(this.boundPosition != null && this.boundPosition.getWorld() != null){ - if(this.boundPosition.getWorld().getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IPhantomTile || (this.xCoord == this.boundPosition.getX() && this.yCoord == this.boundPosition.getY() && this.zCoord == this.boundPosition.getZ() && this.worldObj.provider.dimensionId == this.boundPosition.getWorld().provider.dimensionId)){ + if(this.boundPosition != null){ + if(worldObj.getTileEntity(boundPosition.getX(), boundPosition.getY(), boundPosition.getZ()) instanceof IPhantomTile || (this.xCoord == this.boundPosition.getX() && this.yCoord == this.boundPosition.getY() && this.zCoord == this.boundPosition.getZ())){ this.boundPosition = null; return false; } - return this.worldObj.provider.dimensionId == this.boundPosition.getWorld().provider.dimensionId; + return true; } return false; } @@ -147,12 +146,12 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP } @Override - public WorldPos getBoundPosition(){ + public Position getBoundPosition(){ return this.boundPosition; } @Override - public void setBoundPosition(WorldPos pos){ + public void setBoundPosition(Position pos){ this.boundPosition = pos == null ? null : pos.copy(); } diff --git a/src/main/java/ellpeck/actuallyadditions/util/Position.java b/src/main/java/ellpeck/actuallyadditions/util/Position.java new file mode 100644 index 000000000..d16efedce --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/util/Position.java @@ -0,0 +1,91 @@ +/* + * This file ("WorldPos.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://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.util; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class Position{ + + private int x; + private int y; + private int z; + + public Position(int x, int y, int z){ + this.x = x; + this.y = y; + this.z = z; + } + + public TileEntity getTileEntity(World world){ + return world != null ? world.getTileEntity(this.x, this.y, this.z) : null; + } + + public Material getMaterial(World world){ + return world != null ? world.getBlock(this.x, this.y, this.z).getMaterial() : null; + } + + public Item getItemBlock(World world){ + return world != null ? Item.getItemFromBlock(this.getBlock(world)) : null; + } + + public Block getBlock(World world){ + return world != null ? world.getBlock(this.x, this.y, this.z) : null; + } + + public int getMetadata(World world){ + return world != null ? world.getBlockMetadata(this.x, this.y, this.z) : 0; + } + + public void setMetadata(World world, int meta, int flag){ + if(world != null){ + world.setBlockMetadataWithNotify(this.x, this.y, this.z, meta, flag); + } + } + + public boolean isEqual(Position pos){ + return pos != null && this.x == pos.getX() && this.y == pos.getY() && this.z == pos.getZ(); + } + + public int getX(){ + return this.x; + } + + public int getY(){ + return this.y; + } + + public int getZ(){ + return this.z; + } + + public void setBlock(World world, Block block, int meta, int flag){ + if(world != null){ + world.setBlock(this.x, this.y, this.z, block, meta, flag); + } + } + + public Position copy(){ + return new Position(this.x, this.y, this.z); + } + + public String toString(){ + return "["+this.x+", "+this.y+", "+this.z+"]"; + } + + public Vec3 toVec(){ + return Vec3.createVectorHelper(this.x, this.y, this.z); + } +} diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java deleted file mode 100644 index 23a1e53d6..000000000 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file ("WorldPos.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://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.util; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -public class WorldPos{ - - private int x; - private int y; - private int z; - private int worldID; - - public WorldPos(World world, int x, int y, int z){ - this(world.provider.dimensionId, x, y, z); - } - - public WorldPos(int worldID, int x, int y, int z){ - this.worldID = worldID; - this.x = x; - this.y = y; - this.z = z; - } - - public int getWorldID(){ - return this.worldID; - } - - public TileEntity getTileEntity(){ - return this.getWorld() != null ? this.getWorld().getTileEntity(this.x, this.y, this.z) : null; - } - - public World getWorld(){ - return DimensionManager.getWorld(this.worldID); - } - - public Material getMaterial(){ - return this.getWorld() != null ? this.getWorld().getBlock(this.x, this.y, this.z).getMaterial() : null; - } - - public Item getItemBlock(){ - return this.getWorld() != null ? Item.getItemFromBlock(this.getBlock()) : null; - } - - public Block getBlock(){ - return this.getWorld() != null ? this.getWorld().getBlock(this.x, this.y, this.z) : null; - } - - public int getMetadata(){ - return this.getWorld() != null ? this.getWorld().getBlockMetadata(this.x, this.y, this.z) : 0; - } - - public void setMetadata(int meta, int flag){ - if(this.getWorld() != null){ - this.getWorld().setBlockMetadataWithNotify(this.x, this.y, this.z, meta, flag); - } - } - - public boolean isEqual(WorldPos pos){ - return pos != null && this.x == pos.getX() && this.y == pos.getY() && this.z == pos.getZ() && this.getWorld() == pos.getWorld(); - } - - public int getX(){ - return this.x; - } - - public int getY(){ - return this.y; - } - - public int getZ(){ - return this.z; - } - - public void setBlock(Block block, int meta, int flag){ - if(this.getWorld() != null){ - this.getWorld().setBlock(this.x, this.y, this.z, block, meta, flag); - } - } - - public WorldPos copy(){ - return new WorldPos(this.getWorld(), this.x, this.y, this.z); - } - - public String toString(){ - return "["+this.x+", "+this.y+", "+this.z+" in world "+this.worldID+"]"; - } - - public Vec3 toVec(){ - return Vec3.createVectorHelper(this.x, this.y, this.z); - } -} diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java index 71b812b0e..54148f3e0 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java @@ -61,17 +61,17 @@ public class WorldUtil{ world.setBlockToAir(x, y, z); return; } - WorldPos c = getCoordsFromSide(side, world, x, y, z, offset); + Position c = getCoordsFromSide(side, x, y, z, offset); if(c != null){ world.setBlockToAir(c.getX(), c.getY(), c.getZ()); } } - public static WorldPos getCoordsFromSide(ForgeDirection side, World world, int x, int y, int z, int offset){ + public static Position getCoordsFromSide(ForgeDirection side, int x, int y, int z, int offset){ if(side == ForgeDirection.UNKNOWN){ return null; } - return new WorldPos(world, x+side.offsetX*(offset+1), y+side.offsetY*(offset+1), z+side.offsetZ*(offset+1)); + return new Position(x+side.offsetX*(offset+1), y+side.offsetY*(offset+1), z+side.offsetZ*(offset+1)); } public static void pushEnergy(World world, int x, int y, int z, ForgeDirection side, EnergyStorage storage){ @@ -85,7 +85,7 @@ public class WorldUtil{ } public static TileEntity getTileEntityFromSide(ForgeDirection side, World world, int x, int y, int z){ - WorldPos c = getCoordsFromSide(side, world, x, y, z, 0); + Position c = getCoordsFromSide(side, x, y, z, 0); if(c != null){ return world.getTileEntity(c.getX(), c.getY(), c.getZ()); } @@ -161,7 +161,7 @@ public class WorldUtil{ public static boolean dropItemAtSide(ForgeDirection side, World world, int x, int y, int z, ItemStack stack){ if(side != ForgeDirection.UNKNOWN){ - WorldPos coords = getCoordsFromSide(side, world, x, y, z, 0); + Position coords = getCoordsFromSide(side, x, y, z, 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; diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index baf780e48..b05f288aa 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -330,7 +330,6 @@ tooltip.actuallyadditions.onSuffix.desc=On tooltip.actuallyadditions.phantom.connected.desc= tooltip.actuallyadditions.phantom.stored.desc= tooltip.actuallyadditions.phantom.unbound.desc=The Connection was cleared! -tooltip.actuallyadditions.inWorld.desc=In World tooltip.actuallyadditions.boundTo.desc=Bound to tooltip.actuallyadditions.clearStorage.desc=Place in Crafting Grid to clear storage! tooltip.actuallyadditions.phantom.connectedRange.desc=The Connection is fine and working.