classpublicPriority 3
CuboidPattern
com.hypixel.hytale.builtin.hytalegenerator.patterns.CuboidPattern
extends Pattern
2
Methods
2
Public Methods
4
Fields
1
Constructors
Constructors
public
CuboidPattern(Pattern subPattern, Vector3i min, Vector3i max)Methods
Public Methods (2)
public
boolean matches(Pattern.Context context)@Override
public
SpaceSize readSpace()@Nonnull@Override
Fields
Private/Package Fields (4)
private
Vector3i maxprivate
Vector3i minprivate
SpaceSize readSpaceSizeprivate
Pattern subPatternInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.builtin.hytalegenerator.patterns;
import com.hypixel.hytale.builtin.hytalegenerator.bounds.SpaceSize;
import com.hypixel.hytale.math.vector.Vector3i;
import javax.annotation.Nonnull;
public class CuboidPattern extends Pattern {
@Nonnull
private final Pattern subPattern;
@Nonnull
private final Vector3i min;
@Nonnull
private final Vector3i max;
@Nonnull
private final SpaceSize readSpaceSize;
public CuboidPattern(@Nonnull Pattern subPattern, @Nonnull Vector3i min, @Nonnull Vector3i max) {
this.subPattern = subPattern;
this.min = min;
this.max = max;
this.readSpaceSize = new SpaceSize(min, max.clone().add(1, 1, 1));
}
@Override
public boolean matches(@Nonnull Pattern.Context context) {
Vector3i scanMin = this.min.clone().add(context.position);
Vector3i scanMax = this.max.clone().add(context.position);
Vector3i childPosition = context.position.clone();
Pattern.Context childContext = new Pattern.Context(context);
childContext.position = childPosition;
for (childPosition.x = scanMin.x; childPosition.x <= scanMax.x; childPosition.x++) {
for (childPosition.z = scanMin.z; childPosition.z <= scanMax.z; childPosition.z++) {
for (childPosition.y = scanMin.y; childPosition.y <= scanMax.y; childPosition.y++) {
if (!context.materialSpace.isInsideSpace(childPosition)) {
return false;
}
if (!this.subPattern.matches(childContext)) {
return false;
}
}
}
}
return true;
}
@Nonnull
@Override
public SpaceSize readSpace() {
return this.readSpaceSize.clone();
}
}