Search in sources :

Example 26 with Vec3d

use of net.minecraft.util.math.Vec3d in project ImmersiveEngineering by BluSunrize.

the class TileEntityConnectorMV method getConnectionOffset.

@Override
public Vec3d getConnectionOffset(Connection con) {
    EnumFacing side = facing.getOpposite();
    double conRadius = con.cableType.getRenderDiameter() / 2;
    return new Vec3d(.5 + side.getFrontOffsetX() * (.0625 - conRadius), .5 + side.getFrontOffsetY() * (.0625 - conRadius), .5 + side.getFrontOffsetZ() * (.0625 - conRadius));
}
Also used : EnumFacing(net.minecraft.util.EnumFacing) Vec3d(net.minecraft.util.math.Vec3d)

Example 27 with Vec3d

use of net.minecraft.util.math.Vec3d in project ImmersiveEngineering by BluSunrize.

the class TileEntityBreakerSwitch method getConnectionOffset.

@Override
public Vec3d getConnectionOffset(Connection con) {
    Matrix4 mat = new Matrix4(facing);
    mat.translate(.5, .5, 0).rotate(Math.PI / 2 * rotation, 0, 0, 1).translate(-.5, -.5, 0);
    if (endOfLeftConnection == null)
        calculateLeftConn(mat);
    boolean isLeft = con.end.equals(endOfLeftConnection) || con.start.equals(endOfLeftConnection);
    Vec3d ret = mat.apply(new Vec3d(isLeft ? .25 : .75, .5, .125));
    return ret;
}
Also used : Matrix4(blusunrize.immersiveengineering.common.util.chickenbones.Matrix4) Vec3d(net.minecraft.util.math.Vec3d)

Example 28 with Vec3d

use of net.minecraft.util.math.Vec3d in project ImmersiveEngineering by BluSunrize.

the class TileEntityBreakerSwitch method calculateLeftConn.

protected void calculateLeftConn(Matrix4 transform) {
    Vec3d leftVec = transform.apply(new Vec3d(-1, .5, .5)).subtract(0, .5, .5);
    EnumFacing dir = EnumFacing.getFacingFromVector((float) leftVec.xCoord, (float) leftVec.yCoord, (float) leftVec.zCoord);
    int maxDiff = Integer.MIN_VALUE;
    Set<Connection> conns = ImmersiveNetHandler.INSTANCE.getConnections(worldObj, pos);
    if (conns != null)
        for (Connection c : conns) {
            Vec3i diff = pos.equals(c.start) ? c.end.subtract(pos) : c.start.subtract(pos);
            int val = 0;
            switch(dir.getAxis()) {
                case X:
                    val = diff.getX();
                    break;
                case Y:
                    val = diff.getY();
                    break;
                case Z:
                    val = diff.getZ();
            }
            val *= dir.getAxisDirection().getOffset();
            if (val > maxDiff) {
                maxDiff = val;
                endOfLeftConnection = pos == c.end ? c.start : c.end;
            }
        }
}
Also used : Vec3i(net.minecraft.util.math.Vec3i) EnumFacing(net.minecraft.util.EnumFacing) Connection(blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler.Connection) Vec3d(net.minecraft.util.math.Vec3d)

Example 29 with Vec3d

use of net.minecraft.util.math.Vec3d in project ImmersiveEngineering by BluSunrize.

the class TileEntityBreakerSwitch method getBlockBounds.

@Override
public float[] getBlockBounds() {
    Vec3d start = new Vec3d(.25, .1875, 0);
    Vec3d end = new Vec3d(.75, .8125, .5);
    Matrix4 mat = new Matrix4(facing);
    mat.translate(.5, .5, 0).rotate(Math.PI / 2 * rotation, 0, 0, 1).translate(-.5, -.5, 0);
    start = mat.apply(start);
    end = mat.apply(end);
    return new float[] { (float) start.xCoord, (float) start.yCoord, (float) start.zCoord, (float) end.xCoord, (float) end.yCoord, (float) end.zCoord };
}
Also used : Vec3d(net.minecraft.util.math.Vec3d) Matrix4(blusunrize.immersiveengineering.common.util.chickenbones.Matrix4)

Example 30 with Vec3d

use of net.minecraft.util.math.Vec3d in project ImmersiveEngineering by BluSunrize.

the class TileEntityConnectorRedstone method getConnectionOffset.

@Override
public Vec3d getConnectionOffset(Connection con) {
    EnumFacing side = facing.getOpposite();
    double conRadius = con.cableType.getRenderDiameter() / 2;
    return new Vec3d(.5 - conRadius * side.getFrontOffsetX(), .5 - conRadius * side.getFrontOffsetY(), .5 - conRadius * side.getFrontOffsetZ());
}
Also used : EnumFacing(net.minecraft.util.EnumFacing) Vec3d(net.minecraft.util.math.Vec3d)

Aggregations

Vec3d (net.minecraft.util.math.Vec3d)161 BlockPos (net.minecraft.util.math.BlockPos)44 Entity (net.minecraft.entity.Entity)27 IBlockState (net.minecraft.block.state.IBlockState)21 TileEntity (net.minecraft.tileentity.TileEntity)20 EntityLivingBase (net.minecraft.entity.EntityLivingBase)18 EntityPlayer (net.minecraft.entity.player.EntityPlayer)17 AxisAlignedBB (net.minecraft.util.math.AxisAlignedBB)17 EnumFacing (net.minecraft.util.EnumFacing)16 ItemStack (net.minecraft.item.ItemStack)13 RayTraceResult (net.minecraft.util.math.RayTraceResult)12 World (net.minecraft.world.World)10 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)8 PhysicsWrapperEntity (ValkyrienWarfareBase.PhysicsManagement.PhysicsWrapperEntity)7 Matrix4 (blusunrize.immersiveengineering.common.util.chickenbones.Matrix4)7 NBTTagList (net.minecraft.nbt.NBTTagList)7 EntityItem (net.minecraft.entity.item.EntityItem)6 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)6 Vector (ValkyrienWarfareBase.API.Vector)5 IImmersiveConnectable (blusunrize.immersiveengineering.api.energy.wires.IImmersiveConnectable)5