blob: 858d6d887b09889b53d2e27707bb502b6f6e47b4 [file] [log] [blame] [raw]
package universalelectricity.api.vector;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
public class VectorWorld extends Vector3
{
public World world;
public VectorWorld(World world, double x, double y, double z)
{
super(x, y, z);
this.world = world;
}
public VectorWorld(NBTTagCompound nbt)
{
super(nbt);
this.world = DimensionManager.getWorld(nbt.getInteger("d"));
}
public VectorWorld(Entity entity)
{
super(entity);
this.world = entity.worldObj;
}
public VectorWorld(TileEntity tile)
{
super(tile);
this.world = tile.worldObj;
}
public VectorWorld(World world, Vector3 v)
{
this.x = v.x;
this.y = v.y;
this.z = v.z;
this.world = world;
}
@Override
public VectorWorld translate(double x, double y, double z)
{
this.x += x;
this.y += y;
this.z += z;
return this;
}
@Override
public VectorWorld clone()
{
return new VectorWorld(world, x, y, z);
}
@Override
public boolean equals(Object o)
{
if (o instanceof VectorWorld)
{
VectorWorld vector = (VectorWorld) o;
return this.world == vector.world && this.x == vector.x && this.y == vector.y && this.z == vector.z;
}
return super.equals(o);
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
{
super.writeToNBT(nbt);
nbt.setInteger("d", this.world.provider.dimensionId);
return nbt;
}
public int getBlockID()
{
return super.getBlockID(this.world);
}
public int getBlockMetadata()
{
return super.getBlockMetadata(this.world);
}
public TileEntity getTileEntity()
{
return super.getTileEntity(this.world);
}
public boolean setBlock(int id, int metadata, int notify)
{
return super.setBlock(this.world, id, metadata, notify);
}
public boolean setBlock(int id, int metadata)
{
return this.setBlock(id, metadata, 3);
}
public boolean setBlock(int id)
{
return this.setBlock(id, 0);
}
public List<Entity> getEntitiesWithin(Class<? extends Entity> par1Class)
{
return super.getEntitiesWithin(this.world, par1Class);
}
public static VectorWorld fromCenter(Entity e)
{
return new VectorWorld(e.worldObj, e.posX, e.posY - e.yOffset + e.height / 2, e.posZ);
}
public static VectorWorld fromCenter(TileEntity e)
{
return new VectorWorld(e.worldObj, e.xCoord + 0.5, e.yCoord + 0.5, e.zCoord + 0.5);
}
}