示例#1
0
  protected void updateLaser() {

    int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
    double px = 0, py = 0, pz = 0;

    switch (ForgeDirection.values()[meta]) {
      case WEST:
        px = -0.3;
        break;
      case EAST:
        px = 0.3;
        break;
      case DOWN:
        py = -0.3;
        break;
      case UP:
        py = 0.3;
        break;
      case NORTH:
        pz = -0.3;
        break;
      case SOUTH:
      default:
        pz = 0.3;
        break;
    }

    Position head = new Position(xCoord + 0.5 + px, yCoord + 0.5 + py, zCoord + 0.5 + pz);
    Position tail =
        new Position(
            laserTarget.getXCoord() + 0.475 + (worldObj.rand.nextFloat() - 0.5) / 5F,
            laserTarget.getYCoord() + 9F / 16F,
            laserTarget.getZCoord() + 0.475 + (worldObj.rand.nextFloat() - 0.5) / 5F);

    laser.setPositions(head, tail);

    if (!laser.isVisible()) {
      laser.show();
    }
  }