classpublicPriority 3
SurfacePatternAsset
com.hypixel.hytale.builtin.hytalegenerator.assets.patterns.SurfacePatternAsset
extends PatternAsset
2
Methods
2
Public Methods
6
Fields
1
Constructors
Constants
BuilderCodec<SurfacePatternAsset>CODEC= BuilderCodec.builder(
SurfacePatternAsset.class, SurfacePatternAsset::new, PatternAsset....
Constructors
public
SurfacePatternAsset()Methods
Public Methods (2)
public
Pattern build(PatternAsset.Argument argument)@Nonnull@Override
public
void cleanUp()@Override
Fields
Private/Package Fields (6)
private
SurfacePattern.Facing[] facingsprivate
int originGapprivate
double originRadiusprivate
boolean requireAllFacingsprivate
int surfaceGapprivate
double surfaceRadiusInheritance
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.assets.patterns;
import com.hypixel.hytale.builtin.hytalegenerator.patterns.AndPattern;
import com.hypixel.hytale.builtin.hytalegenerator.patterns.OrPattern;
import com.hypixel.hytale.builtin.hytalegenerator.patterns.Pattern;
import com.hypixel.hytale.builtin.hytalegenerator.patterns.SurfacePattern;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
import com.hypixel.hytale.codec.validation.Validators;
import java.util.ArrayList;
import javax.annotation.Nonnull;
public class SurfacePatternAsset extends PatternAsset {
public static final BuilderCodec<SurfacePatternAsset> CODEC = BuilderCodec.builder(
SurfacePatternAsset.class, SurfacePatternAsset::new, PatternAsset.ABSTRACT_CODEC
)
.append(new KeyedCodec<>("Surface", PatternAsset.CODEC, true), (t, k) -> t.surface = k, k -> k.surface)
.add()
.append(new KeyedCodec<>("Medium", PatternAsset.CODEC, true), (t, k) -> t.origin = k, k -> k.origin)
.add()
.<Double>append(new KeyedCodec<>("SurfaceRadius", Codec.DOUBLE, false), (t, k) -> t.surfaceRadius = k, k -> k.surfaceRadius)
.addValidator(Validators.greaterThanOrEqual(0.0))
.add()
.<Double>append(new KeyedCodec<>("MediumRadius", Codec.DOUBLE, false), (t, k) -> t.originRadius = k, k -> k.originRadius)
.addValidator(Validators.greaterThanOrEqual(0.0))
.add()
.<Integer>append(new KeyedCodec<>("SurfaceGap", Codec.INTEGER, false), (t, k) -> t.surfaceGap = k, k -> k.surfaceGap)
.addValidator(Validators.greaterThanOrEqual(0))
.add()
.<Integer>append(new KeyedCodec<>("MediumGap", Codec.INTEGER, false), (t, k) -> t.originGap = k, k -> k.originGap)
.addValidator(Validators.greaterThanOrEqual(0))
.add()
.append(new KeyedCodec<>("RequireAllFacings", Codec.BOOLEAN, false), (t, k) -> t.requireAllFacings = k, k -> k.requireAllFacings)
.add()
.append(
new KeyedCodec<>("Facings", new ArrayCodec<>(SurfacePattern.Facing.CODEC, SurfacePattern.Facing[]::new), true),
(t, k) -> t.facings = k,
k -> k.facings
)
.add()
.build();
private PatternAsset surface = new ConstantPatternAsset();
private PatternAsset origin = new ConstantPatternAsset();
private double surfaceRadius = 0.0;
private double originRadius = 0.0;
private int surfaceGap = 0;
private int originGap = 0;
private SurfacePattern.Facing[] facings = new SurfacePattern.Facing[0];
private boolean requireAllFacings = false;
public SurfacePatternAsset() {
}
@Nonnull
@Override
public Pattern build(@Nonnull PatternAsset.Argument argument) {
if (super.isSkipped()) {
return Pattern.noPattern();
} else {
Pattern floorPattern = this.surface.build(argument);
Pattern originPattern = this.origin.build(argument);
ArrayList<Pattern> patterns = new ArrayList<>(this.facings.length);
for (SurfacePattern.Facing s : this.facings) {
SurfacePattern pattern = new SurfacePattern(floorPattern, originPattern, this.surfaceRadius, this.originRadius, s, this.surfaceGap, this.originGap);
patterns.add(pattern);
}
return (Pattern)(this.requireAllFacings ? new AndPattern(patterns) : new OrPattern(patterns));
}
}
@Override
public void cleanUp() {
this.surface.cleanUp();
this.origin.cleanUp();
}
}