mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 14:50:56 +00:00
reformat
This commit is contained in:
@@ -3,10 +3,7 @@ package com.dfsek.terra
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.Task
|
import org.gradle.api.Task
|
||||||
import org.gradle.jvm.tasks.Jar
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.gradle.kotlin.dsl.withType
|
|
||||||
import org.gradle.language.jvm.tasks.ProcessResources
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
|
||||||
import java.util.function.Predicate
|
import java.util.function.Predicate
|
||||||
import kotlin.streams.asStream
|
import kotlin.streams.asStream
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# Core Addons
|
# Core Addons
|
||||||
|
|
||||||
This directory contains the modularized "core addons" that implement
|
This directory contains the modularized "core addons" that implement Terra's default behavior.
|
||||||
Terra's default behavior.
|
|
||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.biome.image;
|
package com.dfsek.terra.addons.biome.image;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|||||||
+2
-2
@@ -2,13 +2,13 @@ package com.dfsek.terra.addons.biome.image;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class ImageProviderTemplate /*extends BiomeProviderTemplate */{
|
public class ImageProviderTemplate /*extends BiomeProviderTemplate */ {
|
||||||
private final Registry<BiomeBuilder> biomes;
|
private final Registry<BiomeBuilder> biomes;
|
||||||
@Value("image.name")
|
@Value("image.name")
|
||||||
private BufferedImage image;
|
private BufferedImage image;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+3
-3
@@ -1,17 +1,17 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline;
|
package com.dfsek.terra.addons.biome.pipeline;
|
||||||
|
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
public class BiomeHolderImpl implements BiomeHolder {
|
public class BiomeHolderImpl implements BiomeHolder {
|
||||||
private final Vector2 origin;
|
private final Vector2 origin;
|
||||||
private final int width;
|
private final int width;
|
||||||
private TerraBiome[][] biomes;
|
|
||||||
private final int offset;
|
private final int offset;
|
||||||
|
private TerraBiome[][] biomes;
|
||||||
|
|
||||||
public BiomeHolderImpl(int width, Vector2 origin) {
|
public BiomeHolderImpl(int width, Vector2 origin) {
|
||||||
width += 4;
|
width += 4;
|
||||||
|
|||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline;
|
package com.dfsek.terra.addons.biome.pipeline;
|
||||||
|
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
|
||||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
|
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
+1
-1
@@ -3,10 +3,10 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineImpl;
|
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineImpl;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StandardBiomeProvider;
|
import com.dfsek.terra.addons.biome.pipeline.StandardBiomeProvider;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.seeded.SourceSeeded;
|
import com.dfsek.terra.api.util.seeded.SourceSeeded;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
+1
-1
@@ -3,8 +3,8 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||||
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|
||||||
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
||||||
@Value("resolution")
|
@Value("resolution")
|
||||||
|
|||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config;
|
package com.dfsek.terra.addons.biome.pipeline.config;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
|
||||||
|
|
||||||
public class NoiseSourceTemplate extends SourceTemplate {
|
public class NoiseSourceTemplate extends SourceTemplate {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
|
|||||||
+2
-2
@@ -4,14 +4,14 @@ import com.dfsek.tectonic.exception.LoadException;
|
|||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.expander.ExpanderStageTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.expander.ExpanderStageTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderListMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderListMutatorTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceListMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceListMutatorTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceMutatorTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.SmoothMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.SmoothMutatorTemplate;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+2
-2
@@ -2,10 +2,10 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
|
|
||||||
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
|
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config.stage.expander;
|
package com.dfsek.terra.addons.biome.pipeline.config.stage.expander;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.expand.FractalExpander;
|
import com.dfsek.terra.addons.biome.pipeline.expand.FractalExpander;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
|
||||||
|
|
||||||
public class ExpanderStageTemplate extends StageTemplate {
|
public class ExpanderStageTemplate extends StageTemplate {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
|
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
|
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|||||||
+1
-1
@@ -2,8 +2,8 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
|||||||
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||||
|
|
||||||
public abstract class MutatorStageTemplate extends StageTemplate {
|
public abstract class MutatorStageTemplate extends StageTemplate {
|
||||||
public abstract BiomeMutator build(long seed);
|
public abstract BiomeMutator build(long seed);
|
||||||
|
|||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
|
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
|
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.expand;
|
package com.dfsek.terra.addons.biome.pipeline.expand;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
|
|
||||||
|
|
||||||
public class FractalExpander implements BiomeExpander {
|
public class FractalExpander implements BiomeExpander {
|
||||||
private final NoiseSampler sampler;
|
private final NoiseSampler sampler;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
|
||||||
|
|
||||||
public class BorderMutator implements BiomeMutator {
|
public class BorderMutator implements BiomeMutator {
|
||||||
private final String border;
|
private final String border;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
|
||||||
|
|
||||||
public class ReplaceMutator implements BiomeMutator {
|
public class ReplaceMutator implements BiomeMutator {
|
||||||
private final String replaceableTag;
|
private final String replaceableTag;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
package com.dfsek.terra.addons.biome.pipeline.mutator;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.biome.single;
|
package com.dfsek.terra.addons.biome.single;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
|
||||||
|
|
||||||
public class SingleBiomeProvider implements BiomeProvider, BiomeProviderBuilder {
|
public class SingleBiomeProvider implements BiomeProvider, BiomeProviderBuilder {
|
||||||
private final TerraBiome biome;
|
private final TerraBiome biome;
|
||||||
|
|||||||
+2
-2
@@ -2,11 +2,11 @@ package com.dfsek.terra.addons.biome.single;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
|
||||||
|
|
||||||
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
||||||
@Value("biome")
|
@Value("biome")
|
||||||
private BiomeBuilder biome;
|
private BiomeBuilder biome;
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+20
-20
@@ -17,8 +17,8 @@ import com.dfsek.terra.api.world.biome.TerraBiome;
|
|||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkData;
|
import com.dfsek.terra.api.world.generator.ChunkData;
|
||||||
import com.dfsek.terra.api.world.generator.Sampler;
|
import com.dfsek.terra.api.world.generator.Sampler;
|
||||||
import com.dfsek.terra.api.world.generator.TerraGenerationStage;
|
|
||||||
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
import com.dfsek.terra.api.world.generator.TerraChunkGenerator;
|
||||||
|
import com.dfsek.terra.api.world.generator.TerraGenerationStage;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -35,6 +35,24 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator {
|
|||||||
this.main = main;
|
this.main = main;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings({"try"})
|
||||||
|
static void biomes(@NotNull World world, int chunkX, int chunkZ, @NotNull BiomeGrid biome, TerraPlugin main) {
|
||||||
|
try(ProfileFrame ignore = main.getProfiler().profile("biomes")) {
|
||||||
|
int xOrig = (chunkX << 4);
|
||||||
|
int zOrig = (chunkZ << 4);
|
||||||
|
BiomeProvider grid = main.getWorld(world).getBiomeProvider();
|
||||||
|
for(int x = 0; x < 4; x++) {
|
||||||
|
for(int z = 0; z < 4; z++) {
|
||||||
|
int cx = xOrig + (x << 2);
|
||||||
|
int cz = zOrig + (z << 2);
|
||||||
|
TerraBiome b = grid.getBiome(cx, cz);
|
||||||
|
|
||||||
|
biome.setBiome(cx, cz, b.getVanillaBiomes().get(b.getGenerator(world).getBiomeNoise(), cx, 0, cz));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConfigPack getConfigPack() {
|
public ConfigPack getConfigPack() {
|
||||||
return configPack;
|
return configPack;
|
||||||
@@ -85,7 +103,7 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator {
|
|||||||
|
|
||||||
justSet = false;
|
justSet = false;
|
||||||
paletteLevel = 0;
|
paletteLevel = 0;
|
||||||
} */else {
|
} */ else {
|
||||||
|
|
||||||
justSet = false;
|
justSet = false;
|
||||||
paletteLevel = 0;
|
paletteLevel = 0;
|
||||||
@@ -116,24 +134,6 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({"try"})
|
|
||||||
static void biomes(@NotNull World world, int chunkX, int chunkZ, @NotNull BiomeGrid biome, TerraPlugin main) {
|
|
||||||
try(ProfileFrame ignore = main.getProfiler().profile("biomes")) {
|
|
||||||
int xOrig = (chunkX << 4);
|
|
||||||
int zOrig = (chunkZ << 4);
|
|
||||||
BiomeProvider grid = main.getWorld(world).getBiomeProvider();
|
|
||||||
for(int x = 0; x < 4; x++) {
|
|
||||||
for(int z = 0; z < 4; z++) {
|
|
||||||
int cx = xOrig + (x << 2);
|
|
||||||
int cz = zOrig + (z << 2);
|
|
||||||
TerraBiome b = grid.getBiome(cx, cz);
|
|
||||||
|
|
||||||
biome.setBiome(cx, cz, b.getVanillaBiomes().get(b.getGenerator(world).getBiomeNoise(), cx, 0, cz));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void generateBiomes(@NotNull World world, @NotNull Random random, int chunkX, int chunkZ, @NotNull BiomeGrid biome) {
|
public void generateBiomes(@NotNull World world, @NotNull Random random, int chunkX, int chunkZ, @NotNull BiomeGrid biome) {
|
||||||
biomes(world, chunkX, chunkZ, biome, main);
|
biomes(world, chunkX, chunkZ, biome, main);
|
||||||
|
|||||||
+4
-4
@@ -82,14 +82,14 @@ public class ChunkInterpolator3D implements ChunkInterpolator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public double computeNoise(Generator generator, double x, double y, double z) {
|
|
||||||
return noiseGetter.apply(generator, new Vector3(x, y, z));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int reRange(int value, int high) {
|
private static int reRange(int value, int high) {
|
||||||
return FastMath.max(FastMath.min(value, high), 0);
|
return FastMath.max(FastMath.min(value, high), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double computeNoise(Generator generator, double x, double y, double z) {
|
||||||
|
return noiseGetter.apply(generator, new Vector3(x, y, z));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the noise at a pair of internal chunk coordinates.
|
* Gets the noise at a pair of internal chunk coordinates.
|
||||||
*
|
*
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.generation.math.samplers;
|
package com.dfsek.terra.addons.chunkgenerator.generation.math.samplers;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ChunkInterpolator3D;
|
||||||
|
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ElevationInterpolator;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.Sampler;
|
import com.dfsek.terra.api.world.generator.Sampler;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ChunkInterpolator3D;
|
|
||||||
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ElevationInterpolator;
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class Sampler3D implements Sampler {
|
public class Sampler3D implements Sampler {
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
-2
@@ -1,7 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
package com.dfsek.terra.addons.biome;
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.config.ConfigFactory;
|
import com.dfsek.terra.api.config.ConfigFactory;
|
||||||
@@ -10,7 +9,6 @@ import com.dfsek.terra.api.config.ConfigType;
|
|||||||
import com.dfsek.terra.api.registry.OpenRegistry;
|
import com.dfsek.terra.api.registry.OpenRegistry;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class BiomeConfigType implements ConfigType<BiomeTemplate, BiomeBuilder> {
|
public class BiomeConfigType implements ConfigType<BiomeTemplate, BiomeBuilder> {
|
||||||
|
|||||||
+4
-4
@@ -168,6 +168,10 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Default
|
@Default
|
||||||
private Map<String, Integer> colors = new HashMap<>(); // Plain ol' map, so platforms can decide what to do with colors (if anything).
|
private Map<String, Integer> colors = new HashMap<>(); // Plain ol' map, so platforms can decide what to do with colors (if anything).
|
||||||
|
|
||||||
|
public BiomeTemplate(ConfigPack pack, TerraPlugin main) {
|
||||||
|
this.pack = pack;
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> getExtended() {
|
public List<String> getExtended() {
|
||||||
return extended;
|
return extended;
|
||||||
}
|
}
|
||||||
@@ -208,10 +212,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return doSlabs;
|
return doSlabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomeTemplate(ConfigPack pack, TerraPlugin main) {
|
|
||||||
this.pack = pack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<BlockType, Palette> getSlabPalettes() {
|
public Map<BlockType, Palette> getSlabPalettes() {
|
||||||
return slabPalettes;
|
return slabPalettes;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -21,9 +21,9 @@ public class AsyncBiomeFinder implements Runnable {
|
|||||||
protected final int centerX;
|
protected final int centerX;
|
||||||
protected final int centerZ;
|
protected final int centerZ;
|
||||||
protected final World world;
|
protected final World world;
|
||||||
|
protected final TerraPlugin main;
|
||||||
private final Consumer<Vector3> callback;
|
private final Consumer<Vector3> callback;
|
||||||
protected int searchSize = 1;
|
protected int searchSize = 1;
|
||||||
protected final TerraPlugin main;
|
|
||||||
|
|
||||||
public AsyncBiomeFinder(BiomeProvider provider, TerraBiome target, @NotNull Vector3 origin, World world, int startRadius, int maxRadius, Consumer<Vector3> callback, TerraPlugin main) {
|
public AsyncBiomeFinder(BiomeProvider provider, TerraBiome target, @NotNull Vector3 origin, World world, int startRadius, int maxRadius, Consumer<Vector3> callback, TerraPlugin main) {
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
@@ -52,6 +52,7 @@ public class AsyncBiomeFinder implements Runnable {
|
|||||||
public Vector3 finalizeVector(Vector3 orig) {
|
public Vector3 finalizeVector(Vector3 orig) {
|
||||||
return orig.multiply(main.getTerraConfig().getBiomeSearchResolution());
|
return orig.multiply(main.getTerraConfig().getBiomeSearchResolution());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
int x = centerX;
|
int x = centerX;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.addons.carver;
|
package com.dfsek.terra.addons.carver;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.carver;
|
package com.dfsek.terra.addons.carver;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.config.WorldConfig;
|
import com.dfsek.terra.api.config.WorldConfig;
|
||||||
import com.dfsek.terra.api.handle.WorldHandle;
|
import com.dfsek.terra.api.handle.WorldHandle;
|
||||||
import com.dfsek.terra.api.profiler.ProfileFrame;
|
import com.dfsek.terra.api.profiler.ProfileFrame;
|
||||||
|
|||||||
+1
-1
@@ -120,10 +120,10 @@ public class UserDefinedCarver extends Carver {
|
|||||||
private class UserDefinedWorm extends Worm {
|
private class UserDefinedWorm extends Worm {
|
||||||
private final Vector3 direction;
|
private final Vector3 direction;
|
||||||
private final Vector3 origin;
|
private final Vector3 origin;
|
||||||
|
private final long seed;
|
||||||
private int steps;
|
private int steps;
|
||||||
private int nextDirection = 0;
|
private int nextDirection = 0;
|
||||||
private double[] currentRotation = new double[3];
|
private double[] currentRotation = new double[3];
|
||||||
private final long seed;
|
|
||||||
|
|
||||||
public UserDefinedWorm(int length, Random r, Vector3 origin, int topCut, int bottomCut, long seed) {
|
public UserDefinedWorm(int length, Random r, Vector3 origin, int topCut, int bottomCut, long seed) {
|
||||||
super(length, r, origin);
|
super(length, r, origin);
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+1
-1
@@ -4,8 +4,8 @@ import com.dfsek.terra.api.TerraPlugin;
|
|||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.block.state.properties.base.Properties;
|
import com.dfsek.terra.api.block.state.properties.base.Properties;
|
||||||
import com.dfsek.terra.api.block.state.properties.enums.Direction;
|
import com.dfsek.terra.api.block.state.properties.enums.Direction;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.Flora;
|
import com.dfsek.terra.api.world.Flora;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
-1
@@ -2,7 +2,6 @@ package com.dfsek.terra.addons.noise;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
import com.dfsek.terra.api.config.ConfigType;
|
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+1
-5
@@ -24,23 +24,19 @@ import java.util.Map;
|
|||||||
|
|
||||||
@SuppressWarnings({"FieldMayBeFinal", "unused"})
|
@SuppressWarnings({"FieldMayBeFinal", "unused"})
|
||||||
public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFunction> implements ValidatedConfigTemplate {
|
public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFunction> implements ValidatedConfigTemplate {
|
||||||
|
private final Map<String, NoiseSeeded> otherFunctions;
|
||||||
@Value("variables")
|
@Value("variables")
|
||||||
@Default
|
@Default
|
||||||
private Map<String, Double> vars = new HashMap<>();
|
private Map<String, Double> vars = new HashMap<>();
|
||||||
|
|
||||||
@Value("equation")
|
@Value("equation")
|
||||||
private String equation;
|
private String equation;
|
||||||
|
|
||||||
@Value("functions")
|
@Value("functions")
|
||||||
@Default
|
@Default
|
||||||
private LinkedHashMap<String, NoiseSeeded> functions = new LinkedHashMap<>();
|
private LinkedHashMap<String, NoiseSeeded> functions = new LinkedHashMap<>();
|
||||||
|
|
||||||
@Value("expressions")
|
@Value("expressions")
|
||||||
@Default
|
@Default
|
||||||
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
||||||
|
|
||||||
private final Map<String, NoiseSeeded> otherFunctions;
|
|
||||||
|
|
||||||
public ExpressionFunctionTemplate(Map<String, NoiseSeeded> otherFunctions) {
|
public ExpressionFunctionTemplate(Map<String, NoiseSeeded> otherFunctions) {
|
||||||
this.otherFunctions = otherFunctions;
|
this.otherFunctions = otherFunctions;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-9
@@ -17,6 +17,14 @@ public class UserDefinedFunction implements DynamicFunction {
|
|||||||
this.args = args;
|
this.args = args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static UserDefinedFunction newInstance(FunctionTemplate template, Parser parser, Scope parent) throws ParseException {
|
||||||
|
|
||||||
|
Scope functionScope = new Scope().withParent(parent);
|
||||||
|
|
||||||
|
template.getArgs().forEach(functionScope::addInvocationVariable);
|
||||||
|
|
||||||
|
return new UserDefinedFunction(parser.parse(template.getFunction(), functionScope), template.getArgs().size());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double eval(double... args) {
|
public double eval(double... args) {
|
||||||
@@ -32,13 +40,4 @@ public class UserDefinedFunction implements DynamicFunction {
|
|||||||
public int getArgNumber() {
|
public int getArgNumber() {
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static UserDefinedFunction newInstance(FunctionTemplate template, Parser parser, Scope parent) throws ParseException {
|
|
||||||
|
|
||||||
Scope functionScope = new Scope().withParent(parent);
|
|
||||||
|
|
||||||
template.getArgs().forEach(functionScope::addInvocationVariable);
|
|
||||||
|
|
||||||
return new UserDefinedFunction(parser.parse(template.getFunction(), functionScope), template.getArgs().size());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.noise.samplers.noise;
|
package com.dfsek.terra.addons.noise.samplers.noise;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.addons.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation for Cellular (Voronoi/Worley) Noise.
|
* NoiseSampler implementation for Cellular (Voronoi/Worley) Noise.
|
||||||
|
|||||||
+8
-12
@@ -9,7 +9,15 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
protected static final int PRIME_X = 501125321;
|
protected static final int PRIME_X = 501125321;
|
||||||
protected static final int PRIME_Y = 1136930381;
|
protected static final int PRIME_Y = 1136930381;
|
||||||
protected static final int PRIME_Z = 1720413743;
|
protected static final int PRIME_Z = 1720413743;
|
||||||
|
static final int precision = 100;
|
||||||
|
static final int modulus = 360 * precision;
|
||||||
|
static final double[] sin = new double[360 * 100]; // lookup table
|
||||||
|
|
||||||
|
static {
|
||||||
|
for(int i = 0; i < sin.length; i++) {
|
||||||
|
sin[i] = (float) Math.sin((double) (i) / (precision));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected double frequency = 0.02d;
|
protected double frequency = 0.02d;
|
||||||
protected int seed;
|
protected int seed;
|
||||||
@@ -22,8 +30,6 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
return f >= 0 ? (int) f : (int) f - 1;
|
return f >= 0 ? (int) f : (int) f - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final int precision = 100;
|
|
||||||
|
|
||||||
protected static int hash(int seed, int xPrimed, int yPrimed, int zPrimed) {
|
protected static int hash(int seed, int xPrimed, int yPrimed, int zPrimed) {
|
||||||
int hash = seed ^ xPrimed ^ yPrimed ^ zPrimed;
|
int hash = seed ^ xPrimed ^ yPrimed ^ zPrimed;
|
||||||
|
|
||||||
@@ -38,8 +44,6 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final int modulus = 360 * precision;
|
|
||||||
|
|
||||||
protected static int fastRound(double f) {
|
protected static int fastRound(double f) {
|
||||||
return f >= 0 ? (int) (f + 0.5f) : (int) (f - 0.5);
|
return f >= 0 ? (int) (f + 0.5f) : (int) (f - 0.5);
|
||||||
}
|
}
|
||||||
@@ -77,14 +81,6 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
return FastMath.sqrt(f);
|
return FastMath.sqrt(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final double[] sin = new double[360 * 100]; // lookup table
|
|
||||||
|
|
||||||
static {
|
|
||||||
for(int i = 0; i < sin.length; i++) {
|
|
||||||
sin[i] = (float) Math.sin((double) (i) / (precision));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static int fastCeil(double f) {
|
protected static int fastCeil(double f) {
|
||||||
int i = (int) f;
|
int i = (int) f;
|
||||||
if(i < f) i++;
|
if(i < f) i++;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.ore;
|
package com.dfsek.terra.addons.ore;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.ore.ores.Ore;
|
||||||
|
import com.dfsek.terra.addons.ore.ores.VanillaOre;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.config.ConfigFactory;
|
import com.dfsek.terra.api.config.ConfigFactory;
|
||||||
import com.dfsek.terra.addons.ore.ores.Ore;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.VanillaOre;
|
|
||||||
|
|
||||||
public class OreFactory implements ConfigFactory<OreTemplate, Ore> {
|
public class OreFactory implements ConfigFactory<OreTemplate, Ore> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package com.dfsek.terra.addons.ore;
|
|||||||
import com.dfsek.tectonic.annotations.Abstractable;
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
import com.dfsek.terra.api.config.AbstractableTemplate;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.ore.ores;
|
package com.dfsek.terra.addons.ore.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
@@ -15,8 +15,8 @@ public abstract class Ore {
|
|||||||
private final BlockState material;
|
private final BlockState material;
|
||||||
private final MaterialSet replaceable;
|
private final MaterialSet replaceable;
|
||||||
private final boolean applyGravity;
|
private final boolean applyGravity;
|
||||||
protected TerraPlugin main;
|
|
||||||
private final Map<BlockType, BlockState> materials;
|
private final Map<BlockType, BlockState> materials;
|
||||||
|
protected TerraPlugin main;
|
||||||
|
|
||||||
public Ore(BlockState material, MaterialSet replaceable, boolean applyGravity, TerraPlugin main, Map<BlockType, BlockState> materials) {
|
public Ore(BlockState material, MaterialSet replaceable, boolean applyGravity, TerraPlugin main, Map<BlockType, BlockState> materials) {
|
||||||
this.material = material;
|
this.material = material;
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.ore.ores;
|
package com.dfsek.terra.addons.ore.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
-2
@@ -1,7 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.palette;
|
package com.dfsek.terra.addons.palette;
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.addons.palette.palette.PaletteImpl;
|
import com.dfsek.terra.addons.palette.palette.PaletteImpl;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
@@ -11,7 +10,6 @@ import com.dfsek.terra.api.config.ConfigType;
|
|||||||
import com.dfsek.terra.api.registry.OpenRegistry;
|
import com.dfsek.terra.api.registry.OpenRegistry;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class PaletteConfigType implements ConfigType<PaletteTemplate, Palette> {
|
public class PaletteConfigType implements ConfigType<PaletteTemplate, Palette> {
|
||||||
|
|||||||
+1
-1
@@ -54,8 +54,8 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
|
|||||||
*/
|
*/
|
||||||
public static class PaletteLayer {
|
public static class PaletteLayer {
|
||||||
private final boolean col; // Is layer using a collection?
|
private final boolean col; // Is layer using a collection?
|
||||||
private ProbabilityCollection<BlockState> collection;
|
|
||||||
private final NoiseSampler sampler;
|
private final NoiseSampler sampler;
|
||||||
|
private ProbabilityCollection<BlockState> collection;
|
||||||
private BlockState m;
|
private BlockState m;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+4
-3
@@ -14,17 +14,18 @@ import java.util.Map;
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
|
public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
|
||||||
private static final Type BLOCK_DATA_PROBABILITY_COLLECTION_TYPE;
|
private static final Type BLOCK_DATA_PROBABILITY_COLLECTION_TYPE;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private ProbabilityCollection<BlockState> blockStateProbabilityCollection;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
BLOCK_DATA_PROBABILITY_COLLECTION_TYPE = PaletteLayerLoader.class.getDeclaredField("blockStateProbabilityCollection").getGenericType();
|
BLOCK_DATA_PROBABILITY_COLLECTION_TYPE = PaletteLayerLoader.class.getDeclaredField("blockStateProbabilityCollection").getGenericType();
|
||||||
} catch(NoSuchFieldException e) {
|
} catch(NoSuchFieldException e) {
|
||||||
throw new Error("this should never happen. i dont know what you did to make this happen but something is very wrong.", e);
|
throw new Error("this should never happen. i dont know what you did to make this happen but something is very wrong.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private ProbabilityCollection<BlockState> blockStateProbabilityCollection;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PaletteLayerHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
public PaletteLayerHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||||
Map<String, Object> map = (Map<String, Object>) o;
|
Map<String, Object> map = (Map<String, Object>) o;
|
||||||
|
|||||||
+1
-1
@@ -3,8 +3,8 @@ package com.dfsek.terra.addons.structure;
|
|||||||
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
||||||
import com.dfsek.terra.api.structure.Structure;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.structure.StructureSpawn;
|
import com.dfsek.terra.api.structure.StructureSpawn;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
|
|
||||||
public class TerraStructure implements ConfiguredStructure {
|
public class TerraStructure implements ConfiguredStructure {
|
||||||
private final ProbabilityCollection<Structure> structure;
|
private final ProbabilityCollection<Structure> structure;
|
||||||
|
|||||||
+2
-1
@@ -17,9 +17,10 @@ public class AsyncStructureFinder implements Runnable {
|
|||||||
protected final int centerX;
|
protected final int centerX;
|
||||||
protected final int centerZ;
|
protected final int centerZ;
|
||||||
protected final World world;
|
protected final World world;
|
||||||
|
protected final TerraPlugin main;
|
||||||
private final Consumer<Vector3> callback;
|
private final Consumer<Vector3> callback;
|
||||||
protected int searchSize = 1;
|
protected int searchSize = 1;
|
||||||
protected final TerraPlugin main;
|
|
||||||
public AsyncStructureFinder(BiomeProvider provider, ConfiguredStructure target, @NotNull Vector3 origin, World world, int startRadius, int maxRadius, Consumer<Vector3> callback, TerraPlugin main) {
|
public AsyncStructureFinder(BiomeProvider provider, ConfiguredStructure target, @NotNull Vector3 origin, World world, int startRadius, int maxRadius, Consumer<Vector3> callback, TerraPlugin main) {
|
||||||
//setSearchSize(target.getSpawn().getWidth() + 2 * target.getSpawn().getSeparation());
|
//setSearchSize(target.getSpawn().getWidth() + 2 * target.getSpawn().getSeparation());
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.structure.command.structure;
|
package com.dfsek.terra.addons.structure.command.structure;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.block.entity.BlockEntity;
|
import com.dfsek.terra.api.block.entity.BlockEntity;
|
||||||
import com.dfsek.terra.api.block.entity.Sign;
|
import com.dfsek.terra.api.block.entity.Sign;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.command.CommandTemplate;
|
import com.dfsek.terra.api.command.CommandTemplate;
|
||||||
import com.dfsek.terra.api.command.annotation.Argument;
|
import com.dfsek.terra.api.command.annotation.Argument;
|
||||||
import com.dfsek.terra.api.command.annotation.Command;
|
import com.dfsek.terra.api.command.annotation.Command;
|
||||||
|
|||||||
+3
-3
@@ -1,12 +1,12 @@
|
|||||||
package com.dfsek.terra.addons.structure.structures.loot;
|
package com.dfsek.terra.addons.structure.structures.loot;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.api.inventory.Item;
|
|
||||||
import com.dfsek.terra.api.inventory.ItemStack;
|
|
||||||
import com.dfsek.terra.addons.structure.structures.loot.functions.AmountFunction;
|
import com.dfsek.terra.addons.structure.structures.loot.functions.AmountFunction;
|
||||||
import com.dfsek.terra.addons.structure.structures.loot.functions.DamageFunction;
|
import com.dfsek.terra.addons.structure.structures.loot.functions.DamageFunction;
|
||||||
import com.dfsek.terra.addons.structure.structures.loot.functions.EnchantFunction;
|
import com.dfsek.terra.addons.structure.structures.loot.functions.EnchantFunction;
|
||||||
import com.dfsek.terra.addons.structure.structures.loot.functions.LootFunction;
|
import com.dfsek.terra.addons.structure.structures.loot.functions.LootFunction;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.inventory.Item;
|
||||||
|
import com.dfsek.terra.api.inventory.ItemStack;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.json.simple.JSONArray;
|
import org.json.simple.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ group = "com.dfsek.terra.common"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shadedApi"(project(":common:api"))
|
"shadedApi"(project(":common:api"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"compileOnly"("com.google.guava:guava:30.0-jre")
|
"compileOnly"("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
"testImplementation"("com.google.guava:guava:30.0-jre")
|
"testImplementation"("com.google.guava:guava:30.0-jre")
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.tree;
|
package com.dfsek.terra.addons.tree;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.tree.tree.TerraTree;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.config.ConfigFactory;
|
import com.dfsek.terra.api.config.ConfigFactory;
|
||||||
import com.dfsek.terra.api.world.Tree;
|
import com.dfsek.terra.api.world.Tree;
|
||||||
import com.dfsek.terra.addons.tree.tree.TerraTree;
|
|
||||||
|
|
||||||
public class TreeFactory implements ConfigFactory<TreeTemplate, Tree> {
|
public class TreeFactory implements ConfigFactory<TreeTemplate, Tree> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-3
@@ -8,7 +8,6 @@ import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.Chunk;
|
import com.dfsek.terra.api.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.Flora;
|
|
||||||
import com.dfsek.terra.api.world.Tree;
|
import com.dfsek.terra.api.world.Tree;
|
||||||
|
|
||||||
public class TreeLayer {
|
public class TreeLayer {
|
||||||
@@ -45,9 +44,9 @@ public class TreeLayer {
|
|||||||
BlockState current;
|
BlockState current;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(int ignored : level) {
|
for(int ignored : level) {
|
||||||
current = chunk.getBlock((int) coords.getX(), level.getMax()-i, (int) coords.getZ());
|
current = chunk.getBlock((int) coords.getX(), level.getMax() - i, (int) coords.getZ());
|
||||||
if(item.getSpawnable().contains(current.getBlockType())) {
|
if(item.getSpawnable().contains(current.getBlockType())) {
|
||||||
item.plant(new Vector3((int) coords.getX(), level.getMax()-i, (int) coords.getZ()), chunk.getWorld(), PopulationUtil.getRandom(chunk, coords.hashCode()));
|
item.plant(new Vector3((int) coords.getX(), level.getMax() - i, (int) coords.getZ()), chunk.getWorld(), PopulationUtil.getRandom(chunk, coords.hashCode()));
|
||||||
}
|
}
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-14
@@ -42,6 +42,20 @@ public class Block implements Item<Block.ReturnInfo<?>> {
|
|||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ReturnLevel {
|
||||||
|
NONE(false), BREAK(false), CONTINUE(false), RETURN(true), FAIL(true);
|
||||||
|
|
||||||
|
private final boolean returnFast;
|
||||||
|
|
||||||
|
ReturnLevel(boolean returnFast) {
|
||||||
|
this.returnFast = returnFast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isReturnFast() {
|
||||||
|
return returnFast;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class ReturnInfo<T> {
|
public static class ReturnInfo<T> {
|
||||||
private final ReturnLevel level;
|
private final ReturnLevel level;
|
||||||
private final T data;
|
private final T data;
|
||||||
@@ -59,18 +73,4 @@ public class Block implements Item<Block.ReturnInfo<?>> {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ReturnLevel {
|
|
||||||
NONE(false), BREAK(false), CONTINUE(false), RETURN(true), FAIL(true);
|
|
||||||
|
|
||||||
private final boolean returnFast;
|
|
||||||
|
|
||||||
ReturnLevel(boolean returnFast) {
|
|
||||||
this.returnFast = returnFast;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isReturnFast() {
|
|
||||||
return returnFast;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.parser.lang.constants;
|
package com.dfsek.terra.addons.terrascript.parser.lang.constants;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
|
||||||
public class NumericConstant extends ConstantExpression<Number> {
|
public class NumericConstant extends ConstantExpression<Number> {
|
||||||
public NumericConstant(Number constant, Position position) {
|
public NumericConstant(Number constant, Position position) {
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.parser.lang.constants;
|
package com.dfsek.terra.addons.terrascript.parser.lang.constants;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
|
||||||
public class StringConstant extends ConstantExpression<String> {
|
public class StringConstant extends ConstantExpression<String> {
|
||||||
public StringConstant(String constant, Position position) {
|
public StringConstant(String constant, Position position) {
|
||||||
|
|||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script;
|
package com.dfsek.terra.addons.terrascript.script;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.api.structure.buffer.Buffer;
|
import com.dfsek.terra.api.structure.buffer.Buffer;
|
||||||
import com.dfsek.terra.api.structure.rotation.Rotation;
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.BiomeFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.BiomeFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,5 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.constants.BooleanConstant;
|
import com.dfsek.terra.addons.terrascript.parser.lang.constants.BooleanConstant;
|
||||||
@@ -9,6 +8,7 @@ import com.dfsek.terra.addons.terrascript.script.functions.AbstractBlockFunction
|
|||||||
import com.dfsek.terra.addons.terrascript.script.functions.BlockFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.BlockFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.DynamicBlockFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.DynamicBlockFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.CheckFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.CheckFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.EntityFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.EntityFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,13 +1,13 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.LootFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.LootFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structure.LootTable;
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.PullFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.PullFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.StateFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.StateFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,13 +1,13 @@
|
|||||||
package com.dfsek.terra.addons.terrascript.script.builders;
|
package com.dfsek.terra.addons.terrascript.script.builders;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
|
||||||
import com.dfsek.terra.api.structure.Structure;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||||
import com.dfsek.terra.addons.terrascript.script.functions.StructureFunction;
|
import com.dfsek.terra.addons.terrascript.script.functions.StructureFunction;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|||||||
+2
-2
@@ -2,11 +2,11 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+2
-2
@@ -3,12 +3,12 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,9 +4,9 @@ import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
|||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+4
-4
@@ -4,13 +4,13 @@ import com.dfsek.terra.addons.terrascript.buffer.items.BufferedEntity;
|
|||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.api.entity.EntityType;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+2
-2
@@ -3,14 +3,14 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
import com.dfsek.terra.addons.terrascript.buffer.items.BufferedLootApplication;
|
import com.dfsek.terra.addons.terrascript.buffer.items.BufferedLootApplication;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structure.LootTable;
|
import com.dfsek.terra.api.structure.LootTable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+4
-4
@@ -4,13 +4,13 @@ import com.dfsek.terra.addons.terrascript.buffer.items.BufferedPulledBlock;
|
|||||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+2
-2
@@ -3,11 +3,11 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
import com.dfsek.terra.addons.terrascript.buffer.items.BufferedStateManipulator;
|
import com.dfsek.terra.addons.terrascript.buffer.items.BufferedStateManipulator;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+2
-2
@@ -3,14 +3,14 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
import com.dfsek.terra.addons.terrascript.buffer.IntermediateBuffer;
|
import com.dfsek.terra.addons.terrascript.buffer.IntermediateBuffer;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||||
|
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
|
||||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||||
|
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.structure.Structure;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
import com.dfsek.terra.api.structure.rotation.Rotation;
|
import com.dfsek.terra.api.structure.rotation.Rotation;
|
||||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
|
||||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
|
||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
import com.dfsek.terra.api.vector.Vector2;
|
import com.dfsek.terra.api.vector.Vector2;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|||||||
+5
-5
@@ -6,11 +6,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public interface BooleanProperty extends Property<Boolean> {
|
public interface BooleanProperty extends Property<Boolean> {
|
||||||
@Override
|
|
||||||
default Class<Boolean> getType() {
|
|
||||||
return Boolean.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
static BooleanProperty of(String name) {
|
static BooleanProperty of(String name) {
|
||||||
return new BooleanProperty() {
|
return new BooleanProperty() {
|
||||||
private static final Collection<Boolean> BOOLEANS = Arrays.asList(true, false);
|
private static final Collection<Boolean> BOOLEANS = Arrays.asList(true, false);
|
||||||
@@ -26,4 +21,9 @@ public interface BooleanProperty extends Property<Boolean> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default Class<Boolean> getType() {
|
||||||
|
return Boolean.class;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -10,6 +10,7 @@ public interface EnumProperty<T extends Enum<T>> extends Property<T> {
|
|||||||
static <T extends Enum<T>> EnumProperty<T> of(String name, Class<T> clazz) {
|
static <T extends Enum<T>> EnumProperty<T> of(String name, Class<T> clazz) {
|
||||||
return new EnumProperty<T>() {
|
return new EnumProperty<T>() {
|
||||||
private final Lazy<Collection<T>> constants = Lazy.of(() -> Arrays.asList(clazz.getEnumConstants()));
|
private final Lazy<Collection<T>> constants = Lazy.of(() -> Arrays.asList(clazz.getEnumConstants()));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<T> getType() {
|
public Class<T> getType() {
|
||||||
return clazz;
|
return clazz;
|
||||||
|
|||||||
+5
-5
@@ -8,11 +8,6 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface IntProperty extends Property<Integer> {
|
public interface IntProperty extends Property<Integer> {
|
||||||
@Override
|
|
||||||
default Class<Integer> getType() {
|
|
||||||
return Integer.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
static IntProperty of(String name, int min, int max) {
|
static IntProperty of(String name, int min, int max) {
|
||||||
return new IntProperty() {
|
return new IntProperty() {
|
||||||
private final Collection<Integer> collection = Construct.construct(() -> {
|
private final Collection<Integer> collection = Construct.construct(() -> {
|
||||||
@@ -34,4 +29,9 @@ public interface IntProperty extends Property<Integer> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default Class<Integer> getType() {
|
||||||
|
return Integer.class;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ public enum Direction {
|
|||||||
case DOWN:
|
case DOWN:
|
||||||
return this;
|
return this;
|
||||||
default:
|
default:
|
||||||
return rotations[(this.rotation + rotation.getDegrees()/90) % 4];
|
return rotations[(this.rotation + rotation.getDegrees() / 90) % 4];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.dfsek.terra.api.config;
|
package com.dfsek.terra.api.config;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
||||||
import com.dfsek.terra.api.registry.meta.RegistryHolder;
|
import com.dfsek.terra.api.registry.meta.RegistryHolder;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderHolder;
|
import com.dfsek.terra.api.tectonic.LoaderHolder;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||||
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.dfsek.terra.api.config;
|
package com.dfsek.terra.api.config;
|
||||||
|
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.registry.OpenRegistry;
|
import com.dfsek.terra.api.registry.OpenRegistry;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -15,9 +15,9 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
*/
|
*/
|
||||||
public class LootPopulateEvent extends AbstractCancellable implements PackEvent, Cancellable {
|
public class LootPopulateEvent extends AbstractCancellable implements PackEvent, Cancellable {
|
||||||
private final Container container;
|
private final Container container;
|
||||||
private LootTable table;
|
|
||||||
private final ConfigPack pack;
|
private final ConfigPack pack;
|
||||||
private final Structure structure;
|
private final Structure structure;
|
||||||
|
private LootTable table;
|
||||||
|
|
||||||
public LootPopulateEvent(Container container, LootTable table, ConfigPack pack, Structure structure) {
|
public LootPopulateEvent(Container container, LootTable table, ConfigPack pack, Structure structure) {
|
||||||
this.container = container;
|
this.container = container;
|
||||||
|
|||||||
@@ -5,6 +5,30 @@ import com.dfsek.terra.api.vector.Vector2;
|
|||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
|
||||||
public interface NoiseSampler {
|
public interface NoiseSampler {
|
||||||
|
static NoiseSampler zero() {
|
||||||
|
return new NoiseSampler() {
|
||||||
|
@Override
|
||||||
|
public double getNoise(double x, double y) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getNoise(double x, double y, double z) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getNoiseSeeded(int seed, double x, double y) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getNoiseSeeded(int seed, double x, double y, double z) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2D noise at given position using current settings
|
* 2D noise at given position using current settings
|
||||||
* <p>
|
* <p>
|
||||||
@@ -30,28 +54,4 @@ public interface NoiseSampler {
|
|||||||
double getNoiseSeeded(int seed, double x, double y);
|
double getNoiseSeeded(int seed, double x, double y);
|
||||||
|
|
||||||
double getNoiseSeeded(int seed, double x, double y, double z);
|
double getNoiseSeeded(int seed, double x, double y, double z);
|
||||||
|
|
||||||
static NoiseSampler zero() {
|
|
||||||
return new NoiseSampler() {
|
|
||||||
@Override
|
|
||||||
public double getNoise(double x, double y) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getNoise(double x, double y, double z) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getNoiseSeeded(int seed, double x, double y) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getNoiseSeeded(int seed, double x, double y, double z) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import java.util.function.Function;
|
|||||||
public interface RegistryFactory {
|
public interface RegistryFactory {
|
||||||
/**
|
/**
|
||||||
* Create a generic OpenRegistry.
|
* Create a generic OpenRegistry.
|
||||||
|
*
|
||||||
* @param <T> Type of registry.
|
* @param <T> Type of registry.
|
||||||
* @return New OpenRegistry
|
* @return New OpenRegistry
|
||||||
*/
|
*/
|
||||||
@@ -18,8 +19,9 @@ public interface RegistryFactory {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an OpenRegistry with custom {@link TypeLoader}
|
* Create an OpenRegistry with custom {@link TypeLoader}
|
||||||
|
*
|
||||||
* @param loader Function to create loader.
|
* @param loader Function to create loader.
|
||||||
* @param <T> Type of registry.
|
* @param <T> Type of registry.
|
||||||
* @return New OpenRegistry.
|
* @return New OpenRegistry.
|
||||||
*/
|
*/
|
||||||
<T> OpenRegistry<T> create(Function<OpenRegistry<T>, TypeLoader<T>> loader);
|
<T> OpenRegistry<T> create(Function<OpenRegistry<T>, TypeLoader<T>> loader);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.structure;
|
package com.dfsek.terra.api.structure;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
|
|
||||||
public interface ConfiguredStructure {
|
public interface ConfiguredStructure {
|
||||||
ProbabilityCollection<Structure> getStructure();
|
ProbabilityCollection<Structure> getStructure();
|
||||||
|
|||||||
@@ -5,15 +5,16 @@ import com.dfsek.tectonic.loading.TypeLoader;
|
|||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
public interface LoaderHolder {
|
public interface LoaderHolder {
|
||||||
<T> LoaderHolder applyLoader(Type type, TypeLoader<T> loader);
|
<T> LoaderHolder applyLoader(Type type, TypeLoader<T> loader);
|
||||||
|
|
||||||
default <T> LoaderHolder applyLoader(Class<? extends T> type, TypeLoader<T> loader) {
|
default <T> LoaderHolder applyLoader(Class<? extends T> type, TypeLoader<T> loader) {
|
||||||
return applyLoader((Type) type, loader);
|
return applyLoader((Type) type, loader);
|
||||||
}
|
}
|
||||||
|
|
||||||
<T> LoaderHolder applyLoader(Type type, TemplateProvider<ObjectTemplate<T>> loader);
|
<T> LoaderHolder applyLoader(Type type, TemplateProvider<ObjectTemplate<T>> loader);
|
||||||
|
|
||||||
default <T> LoaderHolder applyLoader(Class<? extends T> type, TemplateProvider<ObjectTemplate<T>> loader) {
|
default <T> LoaderHolder applyLoader(Class<? extends T> type, TemplateProvider<ObjectTemplate<T>> loader) {
|
||||||
return applyLoader((Type) type, loader);
|
return applyLoader((Type) type, loader);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import com.dfsek.terra.api.transform.exception.TransformException;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public interface Validator<T> {
|
public interface Validator<T> {
|
||||||
boolean validate(T value) throws TransformException;
|
|
||||||
|
|
||||||
static <T> Validator<T> notNull() {
|
static <T> Validator<T> notNull() {
|
||||||
return Objects::nonNull;
|
return Objects::nonNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean validate(T value) throws TransformException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import java.lang.annotation.Annotation;
|
|||||||
import java.lang.reflect.AnnotatedElement;
|
import java.lang.reflect.AnnotatedElement;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|||||||
@@ -37,8 +37,6 @@ public final class RotationUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Axis getRotatedAxis(Axis orig, Rotation r) {
|
public static Axis getRotatedAxis(Axis orig, Rotation r) {
|
||||||
Axis other = orig;
|
Axis other = orig;
|
||||||
final boolean shouldSwitch = r.equals(Rotation.CW_90) || r.equals(Rotation.CCW_90);
|
final boolean shouldSwitch = r.equals(Rotation.CW_90) || r.equals(Rotation.CCW_90);
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ public final class Lazy<T> {
|
|||||||
this.valueSupplier = valueSupplier;
|
this.valueSupplier = valueSupplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> Lazy<T> of(Supplier<T> valueSupplier) {
|
||||||
|
return new Lazy<>(valueSupplier);
|
||||||
|
}
|
||||||
|
|
||||||
public T value() {
|
public T value() {
|
||||||
if(!got && value == null) {
|
if(!got && value == null) {
|
||||||
got = true;
|
got = true;
|
||||||
@@ -18,8 +22,4 @@ public final class Lazy<T> {
|
|||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> Lazy<T> of(Supplier<T> valueSupplier) {
|
|
||||||
return new Lazy<>(valueSupplier);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public final class ImmutablePair<L, R> {
|
public final class ImmutablePair<L, R> {
|
||||||
|
private static final ImmutablePair<?, ?> NULL = new ImmutablePair<>(null, null);
|
||||||
private final L left;
|
private final L left;
|
||||||
private final R right;
|
private final R right;
|
||||||
|
|
||||||
private static final ImmutablePair<?, ?> NULL = new ImmutablePair<>(null, null);
|
|
||||||
|
|
||||||
private ImmutablePair(L left, R right) {
|
private ImmutablePair(L left, R right) {
|
||||||
this.left = left;
|
this.left = left;
|
||||||
this.right = right;
|
this.right = right;
|
||||||
@@ -21,6 +20,12 @@ public final class ImmutablePair<L, R> {
|
|||||||
return new ImmutablePair<>(left, right);
|
return new ImmutablePair<>(left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Contract("-> new")
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static <L1, R1> ImmutablePair<L1, R1> ofNull() {
|
||||||
|
return (ImmutablePair<L1, R1>) NULL;
|
||||||
|
}
|
||||||
|
|
||||||
public R getRight() {
|
public R getRight() {
|
||||||
return right;
|
return right;
|
||||||
}
|
}
|
||||||
@@ -29,12 +34,6 @@ public final class ImmutablePair<L, R> {
|
|||||||
return left;
|
return left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Contract("-> new")
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static <L1, R1> ImmutablePair<L1, R1> ofNull() {
|
|
||||||
return (ImmutablePair<L1, R1>) NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Contract("-> new")
|
@Contract("-> new")
|
||||||
public Pair<L, R> mutable() {
|
public Pair<L, R> mutable() {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user