classpublicPriority 3
CeilingPattern
com.hypixel.hytale.builtin.hytalegenerator.patterns.CeilingPattern
extends Pattern
2
Methods
2
Public Methods
3
Fields
1
Constructors
Constructors
public
CeilingPattern(Pattern ceilingPattern, Pattern airPattern)Methods
Public Methods (2)
public
boolean matches(Pattern.Context context)@Override
public
SpaceSize readSpace()@Nonnull@Override
Fields
Private/Package Fields (3)
private
Pattern airPatternprivate
Pattern ceilingPatternprivate
SpaceSize readSpaceSizeInheritance
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 CeilingPattern extends Pattern {
@Nonnull
private final Pattern ceilingPattern;
@Nonnull
private final Pattern airPattern;
@Nonnull
private final SpaceSize readSpaceSize;
public CeilingPattern(@Nonnull Pattern ceilingPattern, @Nonnull Pattern airPattern) {
this.ceilingPattern = ceilingPattern;
this.airPattern = airPattern;
SpaceSize ceilingSpace = ceilingPattern.readSpace();
ceilingSpace.moveBy(new Vector3i(0, 1, 0));
this.readSpaceSize = SpaceSize.merge(ceilingSpace, airPattern.readSpace());
}
@Override
public boolean matches(@Nonnull Pattern.Context context) {
Vector3i ceilingPosition = new Vector3i(context.position.x, context.position.y + 1, context.position.z);
if (context.materialSpace.isInsideSpace(context.position) && context.materialSpace.isInsideSpace(ceilingPosition)) {
Pattern.Context ceilingContext = new Pattern.Context(context);
ceilingContext.position = ceilingPosition;
return this.airPattern.matches(context) && this.ceilingPattern.matches(ceilingContext);
} else {
return false;
}
}
@Nonnull
@Override
public SpaceSize readSpace() {
return this.readSpaceSize.clone();
}
}