This commit is contained in:
Zoë Gidiere
2025-06-18 11:43:35 -06:00
parent 3f77b4a975
commit 46e603d681
233 changed files with 824 additions and 818 deletions

View File

@@ -9,13 +9,12 @@ package com.dfsek.terra.api.config;
import ca.solostudios.strata.version.Version;
import ca.solostudios.strata.version.VersionRange;
import com.dfsek.paralithic.eval.parser.Parser.ParseOptions;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import com.dfsek.paralithic.eval.parser.Parser.ParseOptions;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.properties.PropertyHolder;
import com.dfsek.terra.api.registry.key.Keyed;

View File

@@ -7,8 +7,9 @@
package com.dfsek.terra.api.entity;
import com.dfsek.terra.api.Handle;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.world.ServerWorld;

View File

@@ -7,6 +7,7 @@
package com.dfsek.terra.api.event.events.world.generation;
import com.dfsek.seismic.type.vector.Vector3;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.block.entity.Container;
@@ -15,7 +16,6 @@ import com.dfsek.terra.api.event.events.AbstractCancellable;
import com.dfsek.terra.api.event.events.PackEvent;
import com.dfsek.terra.api.structure.LootTable;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.seismic.type.vector.Vector3;
/**

View File

@@ -7,11 +7,11 @@
package com.dfsek.terra.api.handle;
import java.util.Set;
import com.dfsek.terra.api.inventory.Item;
import com.dfsek.terra.api.inventory.item.Enchantment;
import java.util.Set;
public interface ItemHandle {

View File

@@ -7,14 +7,14 @@
package com.dfsek.terra.api.structure;
import com.dfsek.terra.api.inventory.Inventory;
import com.dfsek.terra.api.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus.Experimental;
import java.util.List;
import java.util.random.RandomGenerator;
import com.dfsek.terra.api.inventory.Inventory;
import com.dfsek.terra.api.inventory.ItemStack;
@Experimental
public interface LootTable {

View File

@@ -7,10 +7,11 @@
package com.dfsek.terra.api.structure;
import java.util.random.RandomGenerator;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.random.RandomGenerator;
import com.dfsek.terra.api.world.WritableWorld;

View File

@@ -7,9 +7,8 @@
package com.dfsek.terra.api.structure;
import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.seismic.type.vector.Vector3;
import org.jetbrains.annotations.ApiStatus.Experimental;
@Experimental

View File

@@ -12,8 +12,8 @@ import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.terra.api.registry.key.StringIdentifiable;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.StructureSpawn;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.range.Range;
@Experimental

View File

@@ -10,9 +10,9 @@ package com.dfsek.terra.api.structure.feature;
import java.util.function.BooleanSupplier;
import java.util.function.IntConsumer;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.function.IntToBooleanFunction;
import com.dfsek.terra.api.util.generic.Lazy;
import com.dfsek.terra.api.util.range.Range;
/**

View File

@@ -1,37 +1,35 @@
package com.dfsek.terra.api.util.cache;
public class SeededVector2Key {
public int x;
public int z;
public long seed;
public int x;
public int z;
public long seed;
public SeededVector2Key(int x, int z, long seed) {
this.x = x;
this.z = z;
this.seed = seed;
}
public void set(int x, int z, long seed) {
this.x = x;
this.z = z;
this.seed = seed;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof SeededVector2Key that) {
return this.z == that.z && this.x == that.x && this.seed == that.seed;
}
return false;
}
@Override
public int hashCode() {
int code = x;
code = 31 * code + z;
return 31 * code + (Long.hashCode(seed));
}
public SeededVector2Key(int x, int z, long seed) {
this.x = x;
this.z = z;
this.seed = seed;
}
public void set(int x, int z, long seed) {
this.x = x;
this.z = z;
this.seed = seed;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof SeededVector2Key that) {
return this.z == that.z && this.x == that.x && this.seed == that.seed;
}
return false;
}
@Override
public int hashCode() {
int code = x;
code = 31 * code + z;
return 31 * code + (Long.hashCode(seed));
}
}

View File

@@ -1,7 +1,6 @@
package com.dfsek.terra.api.util.cache;
public class SeededVector3Key {
public int x;
public int y;

View File

@@ -9,6 +9,8 @@ package com.dfsek.terra.api.util.collection;
import com.dfsek.seismic.math.normalization.NormalizationFunctions;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
@@ -22,8 +24,6 @@ import java.util.function.Function;
import java.util.random.RandomGenerator;
import com.dfsek.terra.api.util.mutable.MutableInteger;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
public class ProbabilityCollection<E> implements Collection<E> {
@@ -57,14 +57,16 @@ public class ProbabilityCollection<E> implements Collection<E> {
@SuppressWarnings("unchecked")
public E get(Sampler n, Vector3Int vector3Int, long seed) {
if(array.length == 0) return null;
return (E) array[(int) NormalizationFunctions.normalizeIndex(n.getSample(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()),
return (E) array[(int) NormalizationFunctions.normalizeIndex(
n.getSample(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()),
array.length)];
}
@SuppressWarnings("unchecked")
public E get(Sampler n, Vector3 vector3Int, long seed) {
if(array.length == 0) return null;
return (E) array[(int) NormalizationFunctions.normalizeIndex(n.getSample(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()),
return (E) array[(int) NormalizationFunctions.normalizeIndex(
n.getSample(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()),
array.length)];
}

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.api.world;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.Objects;
import com.dfsek.terra.api.block.entity.BlockEntity;
@@ -7,7 +9,6 @@ import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
import com.dfsek.terra.api.world.util.Interceptors;

View File

@@ -1,9 +1,10 @@
package com.dfsek.terra.api.world;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.block.entity.BlockEntity;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
/**

View File

@@ -8,6 +8,7 @@
package com.dfsek.terra.api.world;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.terra.api.world.chunk.Chunk;

View File

@@ -1,10 +1,11 @@
package com.dfsek.terra.api.world;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.chunk.generation.util.Column;

View File

@@ -7,17 +7,16 @@
package com.dfsek.terra.api.world.biome.generation;
import com.dfsek.terra.api.Platform;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import org.jetbrains.annotations.Contract;
import java.util.Optional;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.Column;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.info.WorldProperties;

View File

@@ -1,11 +1,5 @@
package com.dfsek.terra.api.world.biome.generation;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import com.dfsek.terra.api.util.cache.SeededVector3Key;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.util.generic.pair.Pair.Mutable;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.Scheduler;
@@ -13,6 +7,10 @@ import com.github.benmanes.caffeine.cache.Scheduler;
import java.util.Optional;
import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import com.dfsek.terra.api.util.cache.SeededVector3Key;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.util.generic.pair.Pair.Mutable;
import com.dfsek.terra.api.world.biome.Biome;
import static com.dfsek.terra.api.util.cache.CacheUtils.CACHE_EXECUTOR;
@@ -56,7 +54,6 @@ public class CachingBiomeProvider implements BiomeProvider, Handle {
});
}
private Optional<Biome> sampleBiome(SeededVector2Key vec) {

View File

@@ -7,11 +7,11 @@
package com.dfsek.terra.api.world.chunk.generation;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
import com.dfsek.terra.api.world.info.WorldProperties;