package com.terraforged.core.world.geology; import me.dags.noise.Module; import java.util.ArrayList; import java.util.List; public class Geology { private final Module selector; private final List> backing = new ArrayList<>(); public Geology(Module selector) { this.selector = selector; } public Geology add(Geology geology) { backing.addAll(geology.backing); return this; } public Geology add(Strata strata) { backing.add(strata); return this; } public Strata getStrata(float x, int y) { float noise = selector.getValue(x, y); return getStrata(noise); } public Strata getStrata(float value) { int index = (int) (value * backing.size()); index = Math.min(backing.size() - 1, index); return backing.get(index); } }