reformat code

This commit is contained in:
dfsek
2022-05-26 19:40:41 -07:00
parent 49857f6b91
commit ee373bbe4b
63 changed files with 214 additions and 242 deletions
@@ -7,9 +7,10 @@
package com.dfsek.terra.addons.noise.normalizer; package com.dfsek.terra.addons.noise.normalizer;
import net.jafama.FastMath;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import net.jafama.FastMath;
public class PosterizationNormalizer extends Normalizer { public class PosterizationNormalizer extends Normalizer {
private final double stepSize; private final double stepSize;
@@ -22,6 +22,7 @@ public class GaborNoiseSampler extends NoiseFunction {
private double impulseDensity = (impulsesPerKernel / (Math.PI * kernelRadius * kernelRadius)); private double impulseDensity = (impulsesPerKernel / (Math.PI * kernelRadius * kernelRadius));
private double impulsesPerCell = impulseDensity * kernelRadius * kernelRadius; private double impulsesPerCell = impulseDensity * kernelRadius * kernelRadius;
private double g = FastMath.exp(-impulsesPerCell); private double g = FastMath.exp(-impulsesPerCell);
private double omega0 = Math.PI * 0.25; private double omega0 = Math.PI * 0.25;
private boolean isotropic = true; private boolean isotropic = true;
@@ -13,9 +13,6 @@ import ca.solostudios.strata.version.VersionRange;
import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.exception.LoadException;
import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.ConfigLoader;
import com.dfsek.tectonic.yaml.YamlConfiguration; import com.dfsek.tectonic.yaml.YamlConfiguration;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -23,7 +20,6 @@ import java.io.IOException;
import java.io.UncheckedIOException; import java.io.UncheckedIOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.FileVisitOption; import java.nio.file.FileVisitOption;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@@ -41,6 +37,7 @@ import com.dfsek.terra.addons.manifest.impl.config.loaders.VersionRangeLoader;
import com.dfsek.terra.addons.manifest.impl.exception.AddonException; import com.dfsek.terra.addons.manifest.impl.exception.AddonException;
import com.dfsek.terra.addons.manifest.impl.exception.ManifestException; import com.dfsek.terra.addons.manifest.impl.exception.ManifestException;
import com.dfsek.terra.addons.manifest.impl.exception.ManifestNotPresentException; import com.dfsek.terra.addons.manifest.impl.exception.ManifestNotPresentException;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import com.dfsek.terra.api.addon.bootstrap.BootstrapBaseAddon; import com.dfsek.terra.api.addon.bootstrap.BootstrapBaseAddon;
@@ -7,13 +7,13 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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.Scope; import com.dfsek.terra.addons.terrascript.parser.lang.Scope;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public abstract class BinaryOperation<I, O> implements Returnable<O> { public abstract class BinaryOperation<I, O> implements Returnable<O> {
private final Returnable<I> left; private final Returnable<I> left;
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class BooleanAndOperation extends BinaryOperation<Boolean, Boolean> { public class BooleanAndOperation extends BinaryOperation<Boolean, Boolean> {
public BooleanAndOperation(Returnable<Boolean> left, Returnable<Boolean> right, Position start) { public BooleanAndOperation(Returnable<Boolean> left, Returnable<Boolean> right, Position start) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class BooleanOrOperation extends BinaryOperation<Boolean, Boolean> { public class BooleanOrOperation extends BinaryOperation<Boolean, Boolean> {
public BooleanOrOperation(Returnable<Boolean> left, Returnable<Boolean> right, Position start) { public BooleanOrOperation(Returnable<Boolean> left, Returnable<Boolean> right, Position start) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class ConcatenationOperation extends BinaryOperation<Object, Object> { public class ConcatenationOperation extends BinaryOperation<Object, Object> {
public ConcatenationOperation(Returnable<Object> left, Returnable<Object> right, Position position) { public ConcatenationOperation(Returnable<Object> left, Returnable<Object> right, Position position) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class DivisionOperation extends BinaryOperation<Number, Number> { public class DivisionOperation extends BinaryOperation<Number, Number> {
public DivisionOperation(Returnable<Number> left, Returnable<Number> right, Position position) { public DivisionOperation(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class ModuloOperation extends BinaryOperation<Number, Number> { public class ModuloOperation extends BinaryOperation<Number, Number> {
public ModuloOperation(Returnable<Number> left, Returnable<Number> right, Position start) { public ModuloOperation(Returnable<Number> left, Returnable<Number> right, Position start) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class MultiplicationOperation extends BinaryOperation<Number, Number> { public class MultiplicationOperation extends BinaryOperation<Number, Number> {
public MultiplicationOperation(Returnable<Number> left, Returnable<Number> right, Position position) { public MultiplicationOperation(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class NumberAdditionOperation extends BinaryOperation<Number, Number> { public class NumberAdditionOperation extends BinaryOperation<Number, Number> {
public NumberAdditionOperation(Returnable<Number> left, Returnable<Number> right, Position position) { public NumberAdditionOperation(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations; package com.dfsek.terra.addons.terrascript.parser.lang.operations;
import java.util.function.Supplier;
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; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class SubtractionOperation extends BinaryOperation<Number, Number> { public class SubtractionOperation extends BinaryOperation<Number, Number> {
public SubtractionOperation(Returnable<Number> left, Returnable<Number> right, Position position) { public SubtractionOperation(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -9,12 +9,12 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.function.Supplier;
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.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
import static com.dfsek.terra.api.util.MathUtil.EPSILON; import static com.dfsek.terra.api.util.MathUtil.EPSILON;
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import java.util.function.Supplier;
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.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class GreaterOrEqualsThanStatement extends BinaryOperation<Number, Boolean> { public class GreaterOrEqualsThanStatement extends BinaryOperation<Number, Boolean> {
public GreaterOrEqualsThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) { public GreaterOrEqualsThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import java.util.function.Supplier;
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.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class GreaterThanStatement extends BinaryOperation<Number, Boolean> { public class GreaterThanStatement extends BinaryOperation<Number, Boolean> {
public GreaterThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) { public GreaterThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import java.util.function.Supplier;
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.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class LessThanOrEqualsStatement extends BinaryOperation<Number, Boolean> { public class LessThanOrEqualsStatement extends BinaryOperation<Number, Boolean> {
public LessThanOrEqualsStatement(Returnable<Number> left, Returnable<Number> right, Position position) { public LessThanOrEqualsStatement(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import java.util.function.Supplier;
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.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import java.util.function.Supplier;
public class LessThanStatement extends BinaryOperation<Number, Boolean> { public class LessThanStatement extends BinaryOperation<Number, Boolean> {
public LessThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) { public LessThanStatement(Returnable<Number> left, Returnable<Number> right, Position position) {
@@ -7,14 +7,14 @@
package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements;
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.function.Supplier; import java.util.function.Supplier;
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation;
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import static com.dfsek.terra.api.util.MathUtil.EPSILON; import static com.dfsek.terra.api.util.MathUtil.EPSILON;
@@ -4,8 +4,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.function.Function;
import java.util.function.Supplier;
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler; import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
@@ -14,7 +12,6 @@ import com.dfsek.terra.addons.terrascript.parser.lang.constants.NumericConstant;
import com.dfsek.terra.addons.terrascript.parser.lang.constants.StringConstant; import com.dfsek.terra.addons.terrascript.parser.lang.constants.StringConstant;
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.tokenizer.Position; import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import com.dfsek.terra.api.noise.NoiseSampler;
public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number>> { public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number>> {
@@ -36,12 +33,15 @@ public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.a
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number> build(List<Returnable<?>> argumentList, Position position) { public com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number> build(List<Returnable<?>> argumentList,
Position position) {
Returnable<String> arg = (Returnable<String>) argumentList.get(0); Returnable<String> arg = (Returnable<String>) argumentList.get(0);
if(argumentList.size() == 3) { // 2D if(argumentList.size() == 3) { // 2D
if(arg instanceof StringConstant constant) { if(arg instanceof StringConstant constant) {
return new ConstantSamplerFunction(Objects.requireNonNull(samplers2d.get(constant.getConstant()), "No such 2D noise function " + constant.getConstant()).getSampler(), return new ConstantSamplerFunction(Objects.requireNonNull(samplers2d.get(constant.getConstant()),
"No such 2D noise function " + constant.getConstant())
.getSampler(),
(Returnable<Number>) argumentList.get(1), (Returnable<Number>) argumentList.get(1),
new NumericConstant(0, position), new NumericConstant(0, position),
(Returnable<Number>) argumentList.get(2), (Returnable<Number>) argumentList.get(2),
@@ -52,14 +52,17 @@ public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.a
(Returnable<Number>) argumentList.get(1), (Returnable<Number>) argumentList.get(1),
new NumericConstant(0, position), new NumericConstant(0, position),
(Returnable<Number>) argumentList.get(2), (Returnable<Number>) argumentList.get(2),
s -> Objects.requireNonNull(samplers2d.get(s.get()), "No such 2D noise function " + s.get()).getSampler(), s -> Objects.requireNonNull(samplers2d.get(s.get()), "No such 2D noise function " + s.get())
.getSampler(),
true, true,
position); position);
} }
} else { // 3D } else { // 3D
if(arg instanceof StringConstant constant) { if(arg instanceof StringConstant constant) {
return new ConstantSamplerFunction(Objects.requireNonNull(samplers3d.get(constant.getConstant()), "No such 2D noise function " + constant.getConstant()).getSampler(), return new ConstantSamplerFunction(Objects.requireNonNull(samplers3d.get(constant.getConstant()),
"No such 2D noise function " + constant.getConstant())
.getSampler(),
(Returnable<Number>) argumentList.get(1), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<Number>) argumentList.get(2),
(Returnable<Number>) argumentList.get(3), (Returnable<Number>) argumentList.get(3),
@@ -70,7 +73,8 @@ public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.a
(Returnable<Number>) argumentList.get(1), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<Number>) argumentList.get(2),
(Returnable<Number>) argumentList.get(3), (Returnable<Number>) argumentList.get(3),
s -> Objects.requireNonNull(samplers2d.get(s.get()), "No such 2D noise function " + s.get()).getSampler(), s -> Objects.requireNonNull(samplers2d.get(s.get()), "No such 2D noise function " + s.get())
.getSampler(),
true, true,
position); position);
} }
@@ -18,9 +18,6 @@
package com.dfsek.terra; package com.dfsek.terra;
import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.TypeRegistry;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -49,6 +46,7 @@ import com.dfsek.terra.addon.EphemeralAddon;
import com.dfsek.terra.addon.InternalAddon; import com.dfsek.terra.addon.InternalAddon;
import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.config.PluginConfig;
import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManager;
@@ -19,14 +19,12 @@ package com.dfsek.terra.addon;
import ca.solostudios.strata.Versions; import ca.solostudios.strata.Versions;
import ca.solostudios.strata.version.Version; import ca.solostudios.strata.version.Version;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.io.UncheckedIOException; import java.io.UncheckedIOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import java.nio.file.FileVisitOption; import java.nio.file.FileVisitOption;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@@ -35,6 +33,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import com.dfsek.terra.addon.exception.AddonLoadException; import com.dfsek.terra.addon.exception.AddonLoadException;
import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader;
import com.dfsek.terra.api.addon.bootstrap.BootstrapBaseAddon; import com.dfsek.terra.api.addon.bootstrap.BootstrapBaseAddon;
@@ -18,8 +18,6 @@
package com.dfsek.terra.bukkit.world; package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.world.info.WorldProperties;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.TreeType; import org.bukkit.TreeType;
@@ -40,6 +38,7 @@ import com.dfsek.terra.api.inventory.item.Enchantment;
import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.chunk.Chunk; import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.info.WorldProperties;
import com.dfsek.terra.bukkit.BukkitCommandSender; import com.dfsek.terra.bukkit.BukkitCommandSender;
import com.dfsek.terra.bukkit.BukkitEntity; import com.dfsek.terra.bukkit.BukkitEntity;
import com.dfsek.terra.bukkit.BukkitPlayer; import com.dfsek.terra.bukkit.BukkitPlayer;
@@ -17,12 +17,12 @@
package com.dfsek.terra.bukkit.world; package com.dfsek.terra.bukkit.world;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.chunk.Chunk; import com.dfsek.terra.api.world.chunk.Chunk;
import org.jetbrains.annotations.NotNull;
public class BukkitChunk implements Chunk { public class BukkitChunk implements Chunk {
private final org.bukkit.Chunk delegate; private final org.bukkit.Chunk delegate;
@@ -27,11 +27,10 @@ import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
public class BukkitProtoWorld implements ProtoWorld { public class BukkitProtoWorld implements ProtoWorld {
private static final Logger LOGGER = LoggerFactory.getLogger(BukkitProtoWorld.class); private static final Logger LOGGER = LoggerFactory.getLogger(BukkitProtoWorld.class);
private static final AtomicBoolean warn = new AtomicBoolean(true);
private final LimitedRegion delegate; private final LimitedRegion delegate;
private final BlockState air; private final BlockState air;
private static final AtomicBoolean warn = new AtomicBoolean(true);
public BukkitProtoWorld(LimitedRegion delegate, BlockState air) { public BukkitProtoWorld(LimitedRegion delegate, BlockState air) {
this.delegate = delegate; this.delegate = delegate;
this.air = air; this.air = air;
@@ -23,15 +23,11 @@ import ca.solostudios.strata.version.Version;
import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.TypeRegistry;
import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.depth.DepthTracker;
import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.exception.LoadException;
import com.dfsek.terra.fabric.util.FabricUtil;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.MinecraftVersion; import net.minecraft.MinecraftVersion;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.biome.Biome.Category; import net.minecraft.world.biome.Biome.Category;
import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.Biome.Precipitation;
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
@@ -53,6 +49,7 @@ import com.dfsek.terra.api.world.biome.PlatformBiome;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
import com.dfsek.terra.fabric.handle.FabricItemHandle; import com.dfsek.terra.fabric.handle.FabricItemHandle;
import com.dfsek.terra.fabric.handle.FabricWorldHandle; import com.dfsek.terra.fabric.handle.FabricWorldHandle;
import com.dfsek.terra.fabric.util.FabricUtil;
import com.dfsek.terra.fabric.util.ProtoPlatformBiome; import com.dfsek.terra.fabric.util.ProtoPlatformBiome;
@@ -7,7 +7,6 @@ import net.minecraft.structure.StructureSet;
import net.minecraft.util.dynamic.RegistryOps; import net.minecraft.util.dynamic.RegistryOps;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryCodecs; import net.minecraft.util.registry.RegistryCodecs;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
@@ -20,11 +20,11 @@ package com.dfsek.terra.fabric.generation;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryEntry; import net.minecraft.util.registry.RegistryEntry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler; import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
@@ -32,18 +32,14 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.fabric.data.Codecs; import com.dfsek.terra.fabric.data.Codecs;
import com.dfsek.terra.fabric.util.ProtoPlatformBiome; import com.dfsek.terra.fabric.util.ProtoPlatformBiome;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TerraBiomeSource extends BiomeSource { public class TerraBiomeSource extends BiomeSource {
private static final Logger LOGGER = LoggerFactory.getLogger(TerraBiomeSource.class);
private final Registry<net.minecraft.world.biome.Biome> biomeRegistry; private final Registry<net.minecraft.world.biome.Biome> biomeRegistry;
private final long seed; private final long seed;
private ConfigPack pack; private ConfigPack pack;
private static final Logger LOGGER = LoggerFactory.getLogger(TerraBiomeSource.class);
public TerraBiomeSource(Registry<net.minecraft.world.biome.Biome> biomes, long seed, ConfigPack pack) { public TerraBiomeSource(Registry<net.minecraft.world.biome.Biome> biomes, long seed, ConfigPack pack) {
super(StreamSupport super(StreamSupport
.stream(pack.getBiomeProvider() .stream(pack.getBiomeProvider()
@@ -26,7 +26,6 @@ import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.ChunkStatus;
import net.minecraft.world.tick.MultiTickScheduler; import net.minecraft.world.tick.MultiTickScheduler;
import net.minecraft.world.tick.OrderedTick; import net.minecraft.world.tick.OrderedTick;
import net.minecraft.world.tick.QueryableTickScheduler;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Implements;
import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Interface;
@@ -17,15 +17,12 @@
package com.dfsek.terra.fabric.mixin.implementations.world; package com.dfsek.terra.fabric.mixin.implementations.world;
import net.minecraft.server.world.ServerChunkManager;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldAccess;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Implements;
import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Interface;
import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Intrinsic;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.entity.BlockEntity;
import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.BlockState;
@@ -85,7 +82,8 @@ public abstract class ServerWorldMixin {
} }
public ChunkGenerator terra$getGenerator() { public ChunkGenerator terra$getGenerator() {
return ((FabricChunkGeneratorWrapper) ((net.minecraft.server.world.ServerWorld) (Object) this).getChunkManager().getChunkGenerator()).getHandle(); return ((FabricChunkGeneratorWrapper) ((net.minecraft.server.world.ServerWorld) (Object) this).getChunkManager()
.getChunkGenerator()).getHandle();
} }
public BiomeProvider terra$getBiomeProvider() { public BiomeProvider terra$getBiomeProvider() {
@@ -95,7 +93,8 @@ public abstract class ServerWorldMixin {
} }
public ConfigPack terra$getPack() { public ConfigPack terra$getPack() {
net.minecraft.world.gen.chunk.ChunkGenerator generator = (((net.minecraft.server.world.ServerWorld) (Object) this).getChunkManager()).getChunkGenerator(); net.minecraft.world.gen.chunk.ChunkGenerator generator =
(((net.minecraft.server.world.ServerWorld) (Object) this).getChunkManager()).getChunkGenerator();
if(generator instanceof FabricChunkGeneratorWrapper fabricChunkGeneratorWrapper) { if(generator instanceof FabricChunkGeneratorWrapper fabricChunkGeneratorWrapper) {
return fabricChunkGeneratorWrapper.getPack(); return fabricChunkGeneratorWrapper.getPack();
} }
@@ -1,7 +1,6 @@
package com.dfsek.terra.fabric.mixin.lifecycle; package com.dfsek.terra.fabric.mixin.lifecycle;
import net.minecraft.server.DataPackContents; import net.minecraft.server.DataPackContents;
import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -2,7 +2,6 @@ package com.dfsek.terra.fabric.mixin.lifecycle;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
@@ -17,28 +17,20 @@
package com.dfsek.terra.fabric.mixin.lifecycle.client; package com.dfsek.terra.fabric.mixin.lifecycle.client;
import com.dfsek.terra.fabric.util.FabricUtil;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.RunArgs; import net.minecraft.client.RunArgs;
import net.minecraft.client.world.GeneratorType; import net.minecraft.client.world.GeneratorType;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.util.registry.DynamicRegistryManager.Mutable;
import net.minecraft.util.registry.Registry;
import org.slf4j.Logger;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
import com.dfsek.terra.fabric.FabricEntryPoint; import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.generation.TerraGeneratorType; import com.dfsek.terra.fabric.generation.TerraGeneratorType;
import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor; import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor;
import com.dfsek.terra.fabric.util.FabricUtil;
@Mixin(MinecraftClient.class) @Mixin(MinecraftClient.class)
@@ -17,8 +17,6 @@
package com.dfsek.terra.fabric.mixin.lifecycle.server; package com.dfsek.terra.fabric.mixin.lifecycle.server;
import com.dfsek.terra.api.registry.CheckedRegistry;
import net.minecraft.server.dedicated.ServerPropertiesHandler; import net.minecraft.server.dedicated.ServerPropertiesHandler;
import net.minecraft.structure.StructureSet; import net.minecraft.structure.StructureSet;
import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.DynamicRegistryManager;
@@ -38,6 +36,7 @@ import java.util.Locale;
import java.util.Random; import java.util.Random;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.fabric.FabricEntryPoint; import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.PlatformImpl; import com.dfsek.terra.fabric.PlatformImpl;
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
@@ -17,30 +17,24 @@
package com.dfsek.terra.fabric.mixin.lifecycle.server; package com.dfsek.terra.fabric.mixin.lifecycle.server;
import com.dfsek.terra.fabric.util.FabricUtil;
import net.minecraft.server.Main; import net.minecraft.server.Main;
import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.util.registry.DynamicRegistryManager.Mutable;
import net.minecraft.util.registry.Registry;
import org.slf4j.Logger;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
import com.dfsek.terra.fabric.FabricEntryPoint; import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.util.FabricUtil;
@Mixin(Main.class) @Mixin(Main.class)
public class ServerMainMixin { public class ServerMainMixin {
@Inject(method = "main([Ljava/lang/String;)V", @Inject(method = "main([Ljava/lang/String;)V",
at = @At(value = "INVOKE", at = @At(value = "INVOKE",
target = "Lnet/minecraft/resource/ResourcePackManager;<init>(Lnet/minecraft/resource/ResourceType;[Lnet/minecraft/resource/ResourcePackProvider;)V") // after registry manager creation target = "Lnet/minecraft/resource/ResourcePackManager;<init>(Lnet/minecraft/resource/ResourceType;" +
"[Lnet/minecraft/resource/ResourcePackProvider;)V")
// after registry manager creation
) )
private static void injectConstructor(String[] args, CallbackInfo ci) { private static void injectConstructor(String[] args, CallbackInfo ci) {
FabricEntryPoint.getPlatform().getEventManager().callEvent( FabricEntryPoint.getPlatform().getEventManager().callEvent(
@@ -42,7 +42,6 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Stream;
import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.entity.BlockEntity;
import com.dfsek.terra.api.block.entity.Container; import com.dfsek.terra.api.block.entity.Container;
@@ -57,6 +56,8 @@ import com.dfsek.terra.fabric.config.VanillaBiomeProperties;
public final class FabricUtil { public final class FabricUtil {
private static final Logger logger = LoggerFactory.getLogger(FabricUtil.class); private static final Logger logger = LoggerFactory.getLogger(FabricUtil.class);
private static final Map<Identifier, List<Identifier>>
TERRA_BIOME_MAP = new HashMap<>();
public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) { public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) {
return pack.getID() return pack.getID()
@@ -71,10 +72,6 @@ public final class FabricUtil {
}); });
} }
private static final Map<Identifier, List<Identifier>>
TERRA_BIOME_MAP = new HashMap<>();
/** /**
* Clones a Vanilla biome and injects Terra data to create a Terra-vanilla biome delegate. * Clones a Vanilla biome and injects Terra data to create a Terra-vanilla biome delegate.
* *
@@ -95,9 +92,14 @@ public final class FabricUtil {
Identifier identifier = new Identifier("terra", FabricUtil.createBiomeID(pack, id)); Identifier identifier = new Identifier("terra", FabricUtil.createBiomeID(pack, id));
if(registry.containsId(identifier)) { if(registry.containsId(identifier)) {
((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(FabricUtil.getEntry(registry, identifier).orElseThrow().getKey().orElseThrow()); ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(FabricUtil.getEntry(registry, identifier)
.orElseThrow()
.getKey()
.orElseThrow());
} else { } else {
((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(BuiltinRegistries.add(registry, registerKey(identifier).getValue(), minecraftBiome).getKey().orElseThrow()); ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(BuiltinRegistries.add(registry,
registerKey(identifier).getValue(),
minecraftBiome).getKey().orElseThrow());
} }
TERRA_BIOME_MAP.computeIfAbsent(vanilla.getValue(), i -> new ArrayList<>()).add(identifier); TERRA_BIOME_MAP.computeIfAbsent(vanilla.getValue(), i -> new ArrayList<>()).add(identifier);
@@ -19,7 +19,6 @@ package com.dfsek.terra.fabric.util;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryEntry;
import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;