Exemplo n.º 1
0
  public CylinderRegion(
      String name, BlockRegion center, double radius, double height, boolean hollow) {
    super(name);
    this.values = new ArrayList<>();
    if (!(center.isXInfinite() || center.isYInfinite() || center.isZInfinite())) {
      this.values = RegionUtil.cylinder(center, radius, height, hollow, false);
    } else if (center.isYInfinite() && !(center.isXInfinite() || center.isZInfinite())) {
      // Spork.get().getLogger().info("This @ method was called!");
      this.values =
          RegionUtil.cylinder(
              new BlockRegion(center.getX() + "", center.getY() + "", center.getZ() + ""),
              radius,
              1,
              hollow,
              false);
      this.infinite = true;
    }

    this.center = center;
    this.origin = new Vector(center.getX(), center.getY(), center.getZ());

    this.radius = radius;
    this.height = height;
    this.hollow = hollow;
  }
Exemplo n.º 2
0
  @Override
  public boolean isInside(BlockRegion block) {
    Vector point = new Vector(block.getX(), block.getY(), block.getZ());
    if (point.getY() >= origin.getY() && point.getY() <= origin.getY() + height) {
      return Math.pow(point.getX() - origin.getX(), 2.0D)
              + Math.pow(point.getZ() - origin.getZ(), 2.0D)
          < (radius * radius);
    }

    return false;

    /*
    if(infinite) {
    	return matchesXZ(block);
    }

    BlockRegion check = new BlockRegion(block.getStringX(), values.get(0).getStringY(), block.getStringZ());
    double max = check.getDoubleY() + height;

    for(BlockRegion region : getValues()) {
    	if(region.isInside(check) && block.getDoubleY() <= max) {
    		return true;
    	}
    }

    return false;
    */
  }
Exemplo n.º 3
0
 @Override
 public boolean isInside(BlockRegion block) {
   Vector point = new Vector(block.getX(), block.getY(), block.getZ());
   return Math.pow(point.getX() - origin.getX(), 2.0D)
           + Math.pow(point.getZ() - origin.getZ(), 2.0D)
       < (radius * radius);
 }
Exemplo n.º 4
0
  public boolean isBelow(BlockRegion region) {
    if (infinite || !matchesXZ(region)) {
      return false;
    }

    CuboidRegion cube =
        new CuboidRegion(
            region, new BlockRegion(region.getX(), region.getY() + height, region.getZ()));
    return cube.isBelow(region);
  }
Exemplo n.º 5
0
 public boolean matchesXZ(BlockRegion region) {
   BlockRegion block = new BlockRegion(region.getX(), center.getY(), region.getZ());
   CylinderRegion cyl = new CylinderRegion(center, radius, 1, hollow);
   return cyl.isInside(block);
 }