classpublicPriority 3
LayeredCarta
com.hypixel.hytale.builtin.hytalegenerator.framework.cartas.LayeredCarta
extends TriCarta
4
Methods
4
Public Methods
3
Fields
1
Constructors
Constructors
public
LayeredCarta(R defaultValue)Methods
Public Methods (4)
public
LayeredCarta<R> addLayer(TriCarta<R> layer)@Nonnull
public
List<R> allPossibleValues()@Nonnull@Override
public
R apply(int x, int y, int z, WorkerIndexer.Id id)@Override
public
String toString()@Nonnull@Override
Fields
Private/Package Fields (3)
private
List<R> allValuesprivate
R defaultValueprivate
List<TriCarta<R>> layersInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Used By
Source Code
package com.hypixel.hytale.builtin.hytalegenerator.framework.cartas;
import com.hypixel.hytale.builtin.hytalegenerator.framework.interfaces.functions.TriCarta;
import com.hypixel.hytale.builtin.hytalegenerator.threadindexer.WorkerIndexer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nonnull;
public class LayeredCarta<R> extends TriCarta<R> {
@Nonnull
private final List<TriCarta<R>> layers;
@Nonnull
private final List<R> allValues;
@Nonnull
private final R defaultValue;
public LayeredCarta(@Nonnull R defaultValue) {
Objects.requireNonNull(defaultValue);
this.layers = new ArrayList<>(1);
this.allValues = new ArrayList<>(1);
this.defaultValue = defaultValue;
this.allValues.add(defaultValue);
}
@Override
public R apply(int x, int y, int z, @Nonnull WorkerIndexer.Id id) {
R result = this.defaultValue;
for (TriCarta<R> layer : this.layers) {
R value = layer.apply(x, y, z, id);
if (value != null) {
result = value;
}
}
return result;
}
@Nonnull
@Override
public List<R> allPossibleValues() {
return Collections.unmodifiableList(this.allValues);
}
@Nonnull
public LayeredCarta<R> addLayer(@Nonnull TriCarta<R> layer) {
Objects.requireNonNull(layer);
this.layers.add(layer);
this.allValues.addAll(layer.allPossibleValues());
return this;
}
@Nonnull
@Override
public String toString() {
return "LayeredCarta{layers=" + this.layers + ", allValues=" + this.allValues + ", defaultValue=" + this.defaultValue + "}";
}
}