diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 253a013b4..b81f07b3c 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -7,6 +7,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.generators; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.access.WritableWorld; import net.jafama.FastMath; @@ -23,7 +24,6 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.util.math.Sampler; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -99,7 +99,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { } @Override - public Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, World world, int elevationSmooth) { + public Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, ServerWorld world, int elevationSmooth) { return new Sampler3D(chunkX, chunkZ, provider, world, elevationSmooth); } @@ -119,7 +119,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { } @Override - public BlockState getBlock(World world, int x, int y, int z) { + public BlockState getBlock(ServerWorld world, int x, int y, int z) { BiomeProvider provider = world.getBiomeProvider(); TerraBiome biome = provider.getBiome(x, z, world.getSeed()); Sampler sampler = world.getConfig().getSamplerCache().get(x, z); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java index 896950450..7fab9b358 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java @@ -7,6 +7,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; +import com.dfsek.terra.api.world.access.ServerWorld; import net.jafama.FastMath; import java.util.HashMap; @@ -15,7 +16,6 @@ import java.util.function.BiFunction; import com.dfsek.terra.api.util.mutable.MutableInteger; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkInterpolator; @@ -36,7 +36,7 @@ public class ChunkInterpolator2D implements ChunkInterpolator { * @param chunkZ Z coordinate of the chunk. * @param provider Biome Provider to use for biome fetching. */ - public ChunkInterpolator2D(World w, int chunkX, int chunkZ, BiomeProvider provider, + public ChunkInterpolator2D(ServerWorld w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { this.noiseGetter = noiseGetter; int xOrigin = chunkX << 4; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java index 2ca8cccf5..590c0cccc 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java @@ -7,6 +7,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; +import com.dfsek.terra.api.world.access.ServerWorld; import net.jafama.FastMath; import java.util.HashMap; @@ -15,7 +16,6 @@ import java.util.function.BiFunction; import com.dfsek.terra.api.util.mutable.MutableInteger; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkInterpolator; @@ -39,7 +39,7 @@ public class ChunkInterpolator3D implements ChunkInterpolator { * @param chunkZ Z coordinate of the chunk. * @param provider Biome Provider to use for biome fetching. */ - public ChunkInterpolator3D(World w, int chunkX, int chunkZ, BiomeProvider provider, + public ChunkInterpolator3D(ServerWorld w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { this.noiseGetter = noiseGetter; int xOrigin = chunkX << 4; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java index 1ea90d62a..6c0e3baea 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -15,7 +15,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public class ElevationInterpolator { private final double[][] values = new double[18][18]; - public ElevationInterpolator(World world, int chunkX, int chunkZ, BiomeProvider provider, int smooth) { + public ElevationInterpolator(ServerWorld world, int chunkX, int chunkZ, BiomeProvider provider, int smooth) { int xOrigin = chunkX << 4; int zOrigin = chunkZ << 4; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/Sampler3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/Sampler3D.java index 084bfb8de..1ba6059f6 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/Sampler3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/Sampler3D.java @@ -7,12 +7,12 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.samplers; +import com.dfsek.terra.api.world.access.ServerWorld; import net.jafama.FastMath; 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.util.math.Sampler; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -20,7 +20,7 @@ public class Sampler3D implements Sampler { private final ChunkInterpolator3D interpolator; private final ElevationInterpolator elevationInterpolator; - public Sampler3D(int x, int z, BiomeProvider provider, World world, int elevationSmooth) { + public Sampler3D(int x, int z, BiomeProvider provider, ServerWorld world, int elevationSmooth) { this.interpolator = new ChunkInterpolator3D(world, x, z, provider, (generator, coord) -> generator.getBaseSampler() .noise(coord, world.getSeed())); diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java index 4d2240cbc..712d27f0d 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java @@ -7,13 +7,14 @@ package com.dfsek.terra.addons.biome.command.biome; +import com.dfsek.terra.api.world.access.ServerWorld; + import org.jetbrains.annotations.NotNull; import java.util.function.Consumer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -29,12 +30,12 @@ public class AsyncBiomeFinder implements Runnable { protected final int maxRadius; protected final int centerX; protected final int centerZ; - protected final World world; + protected final ServerWorld world; protected final Platform platform; private final Consumer callback; protected int searchSize = 1; - public AsyncBiomeFinder(BiomeProvider provider, TerraBiome target, @NotNull Vector3 origin, World world, int startRadius, int maxRadius, + public AsyncBiomeFinder(BiomeProvider provider, TerraBiome target, @NotNull Vector3 origin, ServerWorld world, int startRadius, int maxRadius, Consumer callback, Platform platform) { this.provider = provider; this.target = target; @@ -105,7 +106,7 @@ public class AsyncBiomeFinder implements Runnable { return target; } - public World getWorld() { + public ServerWorld getWorld() { return world; } diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/AsyncStructureFinder.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/AsyncStructureFinder.java index eb22950cb..6b42e9559 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/AsyncStructureFinder.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/AsyncStructureFinder.java @@ -7,6 +7,8 @@ package com.dfsek.terra.addons.structure.command; +import com.dfsek.terra.api.world.access.ServerWorld; + import org.jetbrains.annotations.NotNull; import java.util.function.Consumer; @@ -14,7 +16,6 @@ import java.util.function.Consumer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.structure.configured.ConfiguredStructure; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -25,12 +26,12 @@ public class AsyncStructureFinder implements Runnable { protected final int maxRadius; protected final int centerX; protected final int centerZ; - protected final World world; + protected final ServerWorld world; protected final Platform platform; private final Consumer callback; protected int searchSize = 1; - public AsyncStructureFinder(BiomeProvider provider, ConfiguredStructure target, @NotNull Vector3 origin, World world, int startRadius, + public AsyncStructureFinder(BiomeProvider provider, ConfiguredStructure target, @NotNull Vector3 origin, ServerWorld world, int startRadius, int maxRadius, Consumer callback, Platform platform) { //setSearchSize(target.getSpawn().getWidth() + 2 * target.getSpawn().getSeparation()); this.provider = provider; @@ -99,7 +100,7 @@ public class AsyncStructureFinder implements Runnable { return target; } - public World getWorld() { + public ServerWorld getWorld() { return world; } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/IntermediateBuffer.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/IntermediateBuffer.java index 29eaf65f2..2b2813b0c 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/IntermediateBuffer.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/IntermediateBuffer.java @@ -10,8 +10,8 @@ package com.dfsek.terra.addons.terrascript.buffer; import com.dfsek.terra.api.structure.buffer.Buffer; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; public class IntermediateBuffer implements Buffer { @@ -29,7 +29,7 @@ public class IntermediateBuffer implements Buffer { } @Override - public void paste(Vector3 origin, World world) { + public void paste(Vector3 origin, ServerWorld world) { // no-op } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 2bf90078a..283a1e1e7 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -7,6 +7,7 @@ package com.dfsek.terra.addons.terrascript.script; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.access.WritableWorld; import com.google.common.cache.Cache; @@ -53,7 +54,6 @@ import com.dfsek.terra.api.structure.buffer.buffers.StructureBuffer; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -164,7 +164,7 @@ public class StructureScript implements Structure { } @SuppressWarnings("try") - public boolean test(Vector3 location, World world, Random random, Rotation rotation) { + public boolean test(Vector3 location, ServerWorld world, Random random, Rotation rotation) { try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_test:" + id)) { StructureBuffer buffer = computeBuffer(location, world, random, rotation); return buffer.succeeded(); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/core/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index ed76ce93c..2d8d71dcf 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -21,14 +21,14 @@ import com.dfsek.terra.api.tectonic.LoaderHolder; import com.dfsek.terra.api.tectonic.LoaderRegistrar; import com.dfsek.terra.api.util.StringIdentifiable; import com.dfsek.terra.api.util.reflection.TypeKey; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.api.world.generator.GenerationStageProvider; public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder, StringIdentifiable { - WorldConfig toWorldConfig(World world); + WorldConfig toWorldConfig(ServerWorld world); void registerConfigType(ConfigType type, String id, int priority); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/core/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index 485026516..e73dcb25f 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -11,7 +11,7 @@ import java.util.Map; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.util.StringIdentifiable; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; @@ -31,7 +31,7 @@ public interface WorldConfig extends StringIdentifiable { Registry getRegistry(Class clazz); - World getWorld(); + ServerWorld getWorld(); SamplerCache getSamplerCache(); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/entity/Entity.java b/common/api/core/src/main/java/com/dfsek/terra/api/entity/Entity.java index 0ffd5c0fa..df10c1fef 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/entity/Entity.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/entity/Entity.java @@ -8,7 +8,7 @@ package com.dfsek.terra.api.entity; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; public interface Entity extends CommandSender { @@ -16,7 +16,7 @@ public interface Entity extends CommandSender { void position(Vector3 position); - void world(World world); + void world(ServerWorld world); - World world(); + ServerWorld world(); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/Buffer.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/Buffer.java index 9f28df8d3..805dc34e9 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/Buffer.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/Buffer.java @@ -9,7 +9,7 @@ package com.dfsek.terra.api.structure.buffer; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import org.jetbrains.annotations.ApiStatus.Experimental; @@ -18,7 +18,7 @@ import org.jetbrains.annotations.ApiStatus.Experimental; public interface Buffer { void paste(Vector3 origin, Chunk chunk); - void paste(Vector3 origin, World world); + void paste(Vector3 origin, ServerWorld world); Buffer addItem(BufferedItem item, Vector3 location); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java index 5964926c7..d5e646cdd 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java @@ -15,7 +15,7 @@ import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.access.WritableWorld; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import org.jetbrains.annotations.ApiStatus.Experimental; @@ -40,7 +40,7 @@ public class DirectBuffer implements Buffer { } @Override - public void paste(Vector3 origin, World world) { + public void paste(Vector3 origin, ServerWorld world) { // no-op } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/StructureBuffer.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/StructureBuffer.java index b4d5643c8..5aa1e0f4f 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/StructureBuffer.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/StructureBuffer.java @@ -7,6 +7,8 @@ package com.dfsek.terra.api.structure.buffer.buffers; +import com.dfsek.terra.api.world.access.ServerWorld; + import net.jafama.FastMath; import java.util.LinkedHashMap; @@ -17,7 +19,6 @@ import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.structure.buffer.items.Cell; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; import org.jetbrains.annotations.ApiStatus.Experimental; @@ -41,7 +42,7 @@ public class StructureBuffer implements Buffer { })); } - public void paste(Vector3 origin, World world) { + public void paste(Vector3 origin, ServerWorld world) { bufferedItemMap.forEach(((vector3, item) -> item.paste(origin.clone().add(vector3), world))); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/Carver.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/Carver.java index 1ba4bc0db..ebd3b7083 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/Carver.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/Carver.java @@ -8,10 +8,10 @@ package com.dfsek.terra.api.world; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.ChunkAccess; public interface Carver { - void carve(World world, int chunkX, int chunkZ, ChunkAccess chunk); + void carve(ServerWorld world, int chunkX, int chunkZ, ChunkAccess chunk); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/Flora.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/Flora.java index 45fc8abe5..a945c8cd1 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/Flora.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/Flora.java @@ -11,12 +11,12 @@ import java.util.List; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; public interface Flora { - boolean plant(Vector3 l, World world); + boolean plant(Vector3 l, ServerWorld world); List getValidSpawnsAt(Chunk chunk, int x, int z, Range check); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/ServerWorld.java similarity index 90% rename from common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java rename to common/api/core/src/main/java/com/dfsek/terra/api/world/access/ServerWorld.java index fef6a659f..8ff9ab3a3 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/ServerWorld.java @@ -11,7 +11,7 @@ import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -public interface World extends WritableWorld { +public interface ServerWorld extends WritableWorld { Chunk getChunkAt(int x, int z); default Chunk getChunkAt(Vector3 location) { diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/Chunk.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/Chunk.java index 48e7abf85..4ec8c78c9 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/Chunk.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/Chunk.java @@ -9,7 +9,7 @@ package com.dfsek.terra.api.world.chunk; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import org.jetbrains.annotations.NotNull; @@ -27,5 +27,5 @@ public interface Chunk extends ChunkAccess { int getZ(); - World getWorld(); + ServerWorld getWorld(); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java index cdf136575..8df1ed4ac 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java @@ -9,6 +9,7 @@ package com.dfsek.terra.api.world.chunk.generation; import com.dfsek.terra.api.util.vector.integer.Vector3Int; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.access.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage; @@ -21,14 +22,13 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.util.math.Sampler; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface ChunkGenerator { void generateChunkData(@NotNull ProtoChunk chunk, @NotNull WritableWorld world, int chunkZ, int chunkX); - Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, World world, int elevationSmooth); + Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, ServerWorld world, int elevationSmooth); ConfigPack getConfigPack(); @@ -36,13 +36,13 @@ public interface ChunkGenerator { List getGenerationStages(); - BlockState getBlock(World world, int x, int y, int z); + BlockState getBlock(ServerWorld world, int x, int y, int z); - default BlockState getBlock(World world, Vector3 vector3) { + default BlockState getBlock(ServerWorld world, Vector3 vector3) { return getBlock(world, vector3.getBlockX(), vector3.getBlockY(), vector3.getBlockZ()); } - default BlockState getBlock(World world, Vector3Int vector3) { + default BlockState getBlock(ServerWorld world, Vector3Int vector3) { return getBlock(world, vector3.getX(), vector3.getY(), vector3.getZ()); } } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java index 088ba60b1..7e3e88644 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java @@ -1,6 +1,6 @@ package com.dfsek.terra.api.world.chunk.generation; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.access.WritableWorld; @@ -15,5 +15,5 @@ public interface ProtoWorld extends WritableWorld { * Do not read from/write to this world! * @return The world */ - World getWorld(); + ServerWorld getWorld(); } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyServerWorld.java similarity index 95% rename from common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java rename to common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyServerWorld.java index 1ad958991..e6ac38a09 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/dummy/DummyServerWorld.java @@ -22,14 +22,13 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; -import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; -public class DummyWorld implements World { +public class DummyServerWorld implements ServerWorld { @Override public Entity spawnEntity(double x, double y, double z, EntityType entityType) { throw new UnsupportedOperationException("Cannot spawn entity in DummyWorld"); diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index 658cd0fdc..782f2993c 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -30,6 +30,9 @@ import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.tectonic.yaml.YamlConfiguration; + +import com.dfsek.terra.api.world.access.ServerWorld; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,11 +76,10 @@ import com.dfsek.terra.api.registry.exception.DuplicateEntryException; import com.dfsek.terra.api.registry.meta.RegistryFactory; import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.api.util.reflection.ReflectionUtil; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.api.world.generator.GenerationStageProvider; -import com.dfsek.terra.config.dummy.DummyWorld; +import com.dfsek.terra.config.dummy.DummyServerWorld; import com.dfsek.terra.config.fileloaders.FolderLoader; import com.dfsek.terra.config.fileloaders.ZIPLoader; import com.dfsek.terra.config.loaders.GenericTemplateSupplierLoader; @@ -164,7 +166,7 @@ public class ConfigPackImpl implements ConfigPack { logger.error("Failed to load config pack from folder \"{}\"", folder.getAbsolutePath(), e); throw e; } - toWorldConfig(new DummyWorld()); // Build now to catch any errors immediately. + toWorldConfig(new DummyServerWorld()); // Build now to catch any errors immediately. } public ConfigPackImpl(ZipFile file, Platform platform) throws ConfigException { @@ -218,7 +220,7 @@ public class ConfigPackImpl implements ConfigPack { throw e; } - toWorldConfig(new DummyWorld()); // Build now to catch any errors immediately. + toWorldConfig(new DummyServerWorld()); // Build now to catch any errors immediately. } @Override @@ -244,7 +246,7 @@ public class ConfigPackImpl implements ConfigPack { } @Override - public WorldConfigImpl toWorldConfig(World world) { + public WorldConfigImpl toWorldConfig(ServerWorld world) { return new WorldConfigImpl(world, this, platform); } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java index 717ece2ab..f96d5415b 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java @@ -25,7 +25,7 @@ import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.registry.LockedRegistryImpl; @@ -37,12 +37,12 @@ public class WorldConfigImpl implements WorldConfig { private final BiomeProvider provider; - private final World world; + private final ServerWorld world; private final ConfigPackImpl pack; private final Map> registryMap = new HashMap<>(); - public WorldConfigImpl(World world, ConfigPackImpl pack, Platform platform) { + public WorldConfigImpl(ServerWorld world, ConfigPackImpl pack, Platform platform) { this.world = world; this.pack = pack; this.samplerCache = new SamplerCacheImpl(platform, world); @@ -89,7 +89,7 @@ public class WorldConfigImpl implements WorldConfig { } @Override - public World getWorld() { + public ServerWorld getWorld() { return world; } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index 69657f660..47eb2c0a6 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -17,6 +17,7 @@ package com.dfsek.terra.world; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.generator.SamplerCache; import com.google.common.cache.CacheBuilder; @@ -28,13 +29,12 @@ import org.jetbrains.annotations.NotNull; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.util.math.Sampler; -import com.dfsek.terra.api.world.access.World; public class SamplerCacheImpl implements SamplerCache { private final LoadingCache cache; - public SamplerCacheImpl(Platform platform, World world) { + public SamplerCacheImpl(Platform platform, ServerWorld world) { cache = CacheBuilder.newBuilder().maximumSize(platform.getTerraConfig().getSamplerCache()) .build(new CacheLoader<>() { @Override diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java index b7fa34bb4..6a0be2a04 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java @@ -21,7 +21,7 @@ import org.bukkit.Location; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.bukkit.world.BukkitAdapter; @@ -48,14 +48,14 @@ public class BukkitEntity implements Entity { } @Override - public void world(World world) { + public void world(ServerWorld world) { Location newLoc = entity.getLocation().clone(); newLoc.setWorld(BukkitAdapter.adapt(world)); entity.teleport(newLoc); } @Override - public World world() { + public ServerWorld world() { return BukkitAdapter.adapt(entity.getWorld()); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java index 58392146e..d41b140fa 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java @@ -21,7 +21,7 @@ import org.bukkit.Location; import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.bukkit.world.BukkitAdapter; @@ -49,14 +49,14 @@ public class BukkitPlayer implements Player { } @Override - public void world(World world) { + public void world(ServerWorld world) { Location newLoc = delegate.getLocation().clone(); newLoc.setWorld(BukkitAdapter.adapt(world)); delegate.teleport(newLoc); } @Override - public World world() { + public ServerWorld world() { return BukkitAdapter.adapt(delegate.getWorld()); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java index 466ceaed1..b1ca4d5c9 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java @@ -18,6 +18,8 @@ package com.dfsek.terra.bukkit.world; +import com.dfsek.terra.api.world.access.ServerWorld; + import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.TreeType; @@ -36,7 +38,6 @@ import com.dfsek.terra.api.inventory.ItemStack; import com.dfsek.terra.api.inventory.item.Enchantment; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.bukkit.BukkitCommandSender; import com.dfsek.terra.bukkit.BukkitEntity; import com.dfsek.terra.bukkit.BukkitPlayer; @@ -173,11 +174,11 @@ public final class BukkitAdapter { return ((BukkitCommandSender) sender).getHandle(); } - public static World adapt(org.bukkit.World world) { - return new BukkitWorld(world); + public static ServerWorld adapt(org.bukkit.World world) { + return new BukkitServerWorld(world); } - public static org.bukkit.World adapt(World world) { + public static org.bukkit.World adapt(ServerWorld world) { return (org.bukkit.World) world.getHandle(); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java index 12485aef0..90b0f102d 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java @@ -22,7 +22,7 @@ import com.dfsek.terra.api.world.chunk.Chunk; import org.jetbrains.annotations.NotNull; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; public class BukkitChunk implements Chunk { @@ -63,7 +63,7 @@ public class BukkitChunk implements Chunk { } @Override - public World getWorld() { + public ServerWorld getWorld() { return BukkitAdapter.adapt(delegate.getWorld()); } } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java index f9a4427f0..4737b162e 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java @@ -5,8 +5,7 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; -import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; @@ -99,7 +98,7 @@ public class BukkitProtoWorld implements ProtoWorld { } @Override - public World getWorld() { - return new BukkitWorld(delegate.getWorld()); + public ServerWorld getWorld() { + return new BukkitServerWorld(delegate.getWorld()); } } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitServerWorld.java similarity index 93% rename from platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java rename to platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitServerWorld.java index c69f42cb2..c7e576ff4 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitServerWorld.java @@ -25,9 +25,8 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; -import com.dfsek.terra.api.util.vector.Vector3; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.bukkit.BukkitEntity; @@ -38,10 +37,10 @@ import com.dfsek.terra.bukkit.world.entity.BukkitEntityType; import org.bukkit.Location; -public class BukkitWorld implements World { +public class BukkitServerWorld implements ServerWorld { private final org.bukkit.World delegate; - public BukkitWorld(org.bukkit.World delegate) { + public BukkitServerWorld(org.bukkit.World delegate) { this.delegate = delegate; } @@ -125,7 +124,7 @@ public class BukkitWorld implements World { @Override public boolean equals(Object obj) { - if(!(obj instanceof BukkitWorld other)) return false; + if(!(obj instanceof BukkitServerWorld other)) return false; return other.getHandle().equals(delegate); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 767e49135..f9f06a83b 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -17,13 +17,13 @@ package com.dfsek.terra.fabric.generation; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.block.BlockState; import net.minecraft.entity.SpawnGroup; -import net.minecraft.server.world.ServerWorld; import net.minecraft.structure.StructureManager; import net.minecraft.util.collection.Pool; import net.minecraft.util.math.BlockPos; @@ -56,7 +56,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.stage.Chunkified; @@ -90,7 +89,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C private final TerraBiomeSource biomeSource; private ChunkGenerator delegate; private ConfigPack pack; - private ServerWorld world; + private net.minecraft.server.world.ServerWorld world; public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) { super(biomeSource, new StructuresConfig(false)); @@ -228,9 +227,9 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C @Override public int getHeight(int x, int z, Heightmap.Type heightmap, HeightLimitView heightmapType) { - int height = ((World) world).getMaxHeight(); - while(height >= ((World) world).getMinHeight() && !heightmap.getBlockPredicate().test( - ((FabricBlockState) ((World) world).getGenerator().getBlock((World) world, x, height - 1, z)).getHandle())) { + int height = ((ServerWorld) world).getMaxHeight(); + while(height >= ((ServerWorld) world).getMinHeight() && !heightmap.getBlockPredicate().test( + ((FabricBlockState) ((ServerWorld) world).getGenerator().getBlock((ServerWorld) world, x, height - 1, z)).getHandle())) { height--; } return height; @@ -240,7 +239,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView view) { BlockState[] array = new BlockState[view.getHeight()]; for(int y = view.getBottomY() + view.getHeight() - 1; y >= view.getBottomY(); y--) { - array[y] = ((FabricBlockState) ((World) world).getGenerator().getBlock((World) world, x, y, z)).getHandle(); + array[y] = ((FabricBlockState) ((ServerWorld) world).getGenerator().getBlock((ServerWorld) world, x, y, z)).getHandle(); } return new VerticalBlockSample(view.getBottomY(), array); } @@ -268,7 +267,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C } - public void setWorld(ServerWorld world) { + public void setWorld(net.minecraft.server.world.ServerWorld world) { this.world = world; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java index 2d03837f8..747fc2e5e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java @@ -17,6 +17,7 @@ package com.dfsek.terra.fabric.mixin.implementations.chunk; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; import net.minecraft.util.math.BlockPos; @@ -29,7 +30,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.fabric.block.FabricBlockState; @@ -59,8 +59,8 @@ public abstract class ChunkRegionMixin { return centerPos.getPos().z; } - public World terraChunk$getWorld() { - return (World) this; + public ServerWorld terraChunk$getWorld() { + return (ServerWorld) this; } // getHandle already added in world/ChunkRegionMixin. diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/WorldChunkMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/WorldChunkMixin.java index 15cde57e6..432a155f8 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/WorldChunkMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/WorldChunkMixin.java @@ -17,6 +17,7 @@ package com.dfsek.terra.fabric.mixin.implementations.chunk; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; import net.minecraft.util.math.BlockPos; @@ -31,7 +32,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.fabric.block.FabricBlockState; @@ -69,8 +69,8 @@ public abstract class WorldChunkMixin { return ((net.minecraft.world.chunk.Chunk) (Object) this).getPos().z; } - public World terra$getWorld() { - return (World) world; + public ServerWorld terra$getWorld() { + return (ServerWorld) world; } @Intrinsic diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java index 5c99d9d67..2c4cd3a64 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java @@ -30,7 +30,7 @@ import org.spongepowered.asm.mixin.Shadow; import java.util.UUID; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.fabric.util.FabricAdapter; @@ -62,8 +62,8 @@ public abstract class EntityMixin { teleport(location.getX(), location.getY(), location.getZ()); } - public World terra$world() { - return (World) world; + public ServerWorld terra$world() { + return (ServerWorld) world; } public void terra$sendMessage(String message) { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index be6c76e63..10f6466fa 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -21,7 +21,6 @@ import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; import net.minecraft.block.FluidBlock; import net.minecraft.fluid.Fluid; -import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; @@ -48,7 +47,7 @@ import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; @@ -64,7 +63,7 @@ public abstract class ChunkRegionMixin { @Shadow @Final - private ServerWorld world; + private net.minecraft.server.world.ServerWorld world; @Shadow @Final @@ -79,9 +78,9 @@ public abstract class ChunkRegionMixin { @Inject(at = @At("RETURN"), method = "(Lnet/minecraft/server/world/ServerWorld;Ljava/util/List;Lnet/minecraft/world/chunk/ChunkStatus;I)V") - public void injectConstructor(ServerWorld world, List list, ChunkStatus chunkStatus, int i, + public void injectConstructor(net.minecraft.server.world.ServerWorld world, List list, ChunkStatus chunkStatus, int i, CallbackInfo ci) { - this.config = ((World) world).getConfig(); + this.config = ((ServerWorld) world).getConfig(); } @SuppressWarnings("deprecation") @@ -146,8 +145,8 @@ public abstract class ChunkRegionMixin { return centerPos.getPos().z; } - public World terraWorld$getWorld() { - return (World) world; + public ServerWorld terraWorld$getWorld() { + return (ServerWorld) world; } public WorldConfig terraWorld$getConfig() { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index 011c09f1b..47432372d 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -20,7 +20,6 @@ package com.dfsek.terra.fabric.mixin.implementations.world; import net.minecraft.server.MinecraftServer; import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.world.ServerChunkManager; -import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.ServerWorldAccess; @@ -49,7 +48,7 @@ import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; +import com.dfsek.terra.api.world.access.ServerWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; @@ -58,8 +57,8 @@ import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.util.FabricUtil; -@Mixin(ServerWorld.class) -@Implements(@Interface(iface = World.class, prefix = "terra$", remap = Interface.Remap.NONE)) +@Mixin(net.minecraft.server.world.ServerWorld.class) +@Implements(@Interface(iface = ServerWorld.class, prefix = "terra$", remap = Interface.Remap.NONE)) public abstract class ServerWorldMixin { private WorldConfig config; @Shadow @@ -81,20 +80,20 @@ public abstract class ServerWorldMixin { net.minecraft.world.gen.chunk.ChunkGenerator chunkGenerator, boolean debugWorld, long seed, List spawners, boolean shouldTickTime, CallbackInfo ci) { if(chunkGenerator instanceof FabricChunkGeneratorWrapper) { - config = ((FabricChunkGeneratorWrapper) chunkGenerator).getPack().toWorldConfig((World) this); + config = ((FabricChunkGeneratorWrapper) chunkGenerator).getPack().toWorldConfig((ServerWorld) this); } } public Entity terra$spawnEntity(Vector3 location, EntityType entityType) { - net.minecraft.entity.Entity entity = ((net.minecraft.entity.EntityType) entityType).create(((ServerWorld) (Object) this)); + net.minecraft.entity.Entity entity = ((net.minecraft.entity.EntityType) entityType).create(((net.minecraft.server.world.ServerWorld) (Object) this)); entity.setPos(location.getX(), location.getY(), location.getZ()); - ((ServerWorld) (Object) this).spawnEntity(entity); + ((net.minecraft.server.world.ServerWorld) (Object) this).spawnEntity(entity); return (Entity) entity; } public void terra$setBlockData(int x, int y, int z, BlockState data, boolean physics) { BlockPos pos = new BlockPos(x, y, z); - ((ServerWorld) (Object) this).setBlockState(pos, ((FabricBlockState) data).getHandle(), physics ? 3 : 1042); + ((net.minecraft.server.world.ServerWorld) (Object) this).setBlockState(pos, ((FabricBlockState) data).getHandle(), physics ? 3 : 1042); } @Intrinsic @@ -103,15 +102,15 @@ public abstract class ServerWorldMixin { } public int terra$getMaxHeight() { - return (((ServerWorld) (Object) this).getBottomY()) + ((ServerWorld) (Object) this).getHeight(); + return (((net.minecraft.server.world.ServerWorld) (Object) this).getBottomY()) + ((net.minecraft.server.world.ServerWorld) (Object) this).getHeight(); } public Chunk terra$getChunkAt(int x, int z) { - return (Chunk) ((ServerWorld) (Object) this).getChunk(x, z); + return (Chunk) ((net.minecraft.server.world.ServerWorld) (Object) this).getChunk(x, z); } public BlockState terra$getBlockData(int x, int y, int z) { - return new FabricBlockState(((ServerWorld) (Object) this).getBlockState(new BlockPos(x, y, z))); + return new FabricBlockState(((net.minecraft.server.world.ServerWorld) (Object) this).getBlockState(new BlockPos(x, y, z))); } public BlockEntity terra$getBlockState(int x, int y, int z) { @@ -119,7 +118,7 @@ public abstract class ServerWorldMixin { } public int terra$getMinHeight() { - return ((ServerWorld) (Object) this).getBottomY(); + return ((net.minecraft.server.world.ServerWorld) (Object) this).getBottomY(); } public ChunkGenerator terra$getGenerator() { @@ -127,7 +126,7 @@ public abstract class ServerWorldMixin { } public BiomeProvider terra$getBiomeProvider() { - return ((TerraBiomeSource) ((ServerWorld) (Object) this).getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); + return ((TerraBiomeSource) ((net.minecraft.server.world.ServerWorld) (Object) this).getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); } public WorldConfig terra$getConfig() {