package buildcraft.core.lib.utils; import net.minecraft.world.World; import buildcraft.api.core.Position; import buildcraft.core.LaserData; import buildcraft.core.LaserKind; import buildcraft.core.lib.EntityBlock; import buildcraft.core.proxy.CoreProxy; public final class LaserUtils { private LaserUtils() { } public static EntityBlock createLaser(World world, Position p1, Position p2, LaserKind kind) { if (p1.equals(p2)) { return null; } double iSize = p2.x - p1.x; double jSize = p2.y - p1.y; double kSize = p2.z - p1.z; double i = p1.x; double j = p1.y; double k = p1.z; if (iSize != 0) { i += 0.5; j += 0.45; k += 0.45; jSize = 0.10; kSize = 0.10; } else if (jSize != 0) { i += 0.45; j += 0.5; k += 0.45; iSize = 0.10; kSize = 0.10; } else if (kSize != 0) { i += 0.45; j += 0.45; k += 0.5; iSize = 0.10; jSize = 0.10; } EntityBlock block = CoreProxy.proxy.newEntityBlock(world, i, j, k, iSize, jSize, kSize, kind); block.setBrightness(210); world.spawnEntityInWorld(block); return block; } public static EntityBlock[] createLaserBox(World world, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax, LaserKind kind) { EntityBlock[] lasers = new EntityBlock[12]; Position[] p = new Position[8]; p[0] = new Position(xMin, yMin, zMin); p[1] = new Position(xMax, yMin, zMin); p[2] = new Position(xMin, yMax, zMin); p[3] = new Position(xMax, yMax, zMin); p[4] = new Position(xMin, yMin, zMax); p[5] = new Position(xMax, yMin, zMax); p[6] = new Position(xMin, yMax, zMax); p[7] = new Position(xMax, yMax, zMax); lasers[0] = createLaser(world, p[0], p[1], kind); lasers[1] = createLaser(world, p[0], p[2], kind); lasers[2] = createLaser(world, p[2], p[3], kind); lasers[3] = createLaser(world, p[1], p[3], kind); lasers[4] = createLaser(world, p[4], p[5], kind); lasers[5] = createLaser(world, p[4], p[6], kind); lasers[6] = createLaser(world, p[5], p[7], kind); lasers[7] = createLaser(world, p[6], p[7], kind); lasers[8] = createLaser(world, p[0], p[4], kind); lasers[9] = createLaser(world, p[1], p[5], kind); lasers[10] = createLaser(world, p[2], p[6], kind); lasers[11] = createLaser(world, p[3], p[7], kind); return lasers; } public static LaserData[] createLaserDataBox(double xMin, double yMin, double zMin, double xMax, double yMax, double zMax) { LaserData[] lasers = new LaserData[12]; Position[] p = new Position[8]; p[0] = new Position(xMin, yMin, zMin); p[1] = new Position(xMax, yMin, zMin); p[2] = new Position(xMin, yMax, zMin); p[3] = new Position(xMax, yMax, zMin); p[4] = new Position(xMin, yMin, zMax); p[5] = new Position(xMax, yMin, zMax); p[6] = new Position(xMin, yMax, zMax); p[7] = new Position(xMax, yMax, zMax); lasers[0] = new LaserData(p[0], p[1]); lasers[1] = new LaserData(p[0], p[2]); lasers[2] = new LaserData(p[2], p[3]); lasers[3] = new LaserData(p[1], p[3]); lasers[4] = new LaserData(p[4], p[5]); lasers[5] = new LaserData(p[4], p[6]); lasers[6] = new LaserData(p[5], p[7]); lasers[7] = new LaserData(p[6], p[7]); lasers[8] = new LaserData(p[0], p[4]); lasers[9] = new LaserData(p[1], p[5]); lasers[10] = new LaserData(p[2], p[6]); lasers[11] = new LaserData(p[3], p[7]); return lasers; } }