mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 06:40:55 +00:00
Reformat
This commit is contained in:
@@ -27,7 +27,8 @@ fun Project.configureDistribution() {
|
|||||||
group = "terra"
|
group = "terra"
|
||||||
doFirst {
|
doFirst {
|
||||||
file("${buildDir}/resources/main/packs/").deleteRecursively()
|
file("${buildDir}/resources/main/packs/").deleteRecursively()
|
||||||
val defaultPackUrl = URL("https://github.com/PolyhedralDev/TerraOverworldConfig/releases/download/" + Versions.Terra.overworldConfig + "/default.zip")
|
val defaultPackUrl =
|
||||||
|
URL("https://github.com/PolyhedralDev/TerraOverworldConfig/releases/download/" + Versions.Terra.overworldConfig + "/default.zip")
|
||||||
downloadPack(defaultPackUrl, project)
|
downloadPack(defaultPackUrl, project)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline.v2.api.biome;
|
package com.dfsek.terra.addons.biome.pipeline.v2.api.biome;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
public final class DelegatedPipelineBiome implements PipelineBiome {
|
public final class DelegatedPipelineBiome implements PipelineBiome {
|
||||||
private final Biome biome;
|
private final Biome biome;
|
||||||
|
|||||||
+5
-5
@@ -7,17 +7,17 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.addons.biome.pipeline.v2.stage.mutators;
|
package com.dfsek.terra.addons.biome.pipeline.v2.stage.mutators;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.v2.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.v2.api.Stage;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.v2.api.biome.PipelineBiome;
|
import com.dfsek.terra.addons.biome.pipeline.v2.api.biome.PipelineBiome;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.v2.pipeline.BiomeChunkImpl;
|
import com.dfsek.terra.addons.biome.pipeline.v2.pipeline.BiomeChunkImpl;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
|
||||||
public class ReplaceListStage implements Stage {
|
public class ReplaceListStage implements Stage {
|
||||||
private final Map<PipelineBiome, ProbabilityCollection<PipelineBiome>> replace;
|
private final Map<PipelineBiome, ProbabilityCollection<PipelineBiome>> replace;
|
||||||
|
|||||||
+2
-2
@@ -6,6 +6,8 @@ import cloud.commandframework.arguments.standard.EnumArgument;
|
|||||||
import cloud.commandframework.arguments.standard.LongArgument;
|
import cloud.commandframework.arguments.standard.LongArgument;
|
||||||
import cloud.commandframework.context.CommandContext;
|
import cloud.commandframework.context.CommandContext;
|
||||||
|
|
||||||
|
import java.util.random.RandomGenerator;
|
||||||
|
import java.util.random.RandomGeneratorFactory;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
||||||
import com.dfsek.terra.api.Platform;
|
import com.dfsek.terra.api.Platform;
|
||||||
@@ -21,8 +23,6 @@ import com.dfsek.terra.api.structure.Structure;
|
|||||||
import com.dfsek.terra.api.util.Rotation;
|
import com.dfsek.terra.api.util.Rotation;
|
||||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||||
|
|
||||||
import java.util.random.RandomGenerator;
|
|
||||||
import java.util.random.RandomGeneratorFactory;
|
|
||||||
|
|
||||||
public class StructureCommandAddon implements AddonInitializer {
|
public class StructureCommandAddon implements AddonInitializer {
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ public class PaddedGridDistributor implements Distributor {
|
|||||||
int cellZ = Math.floorDiv(z, cellWidth);
|
int cellZ = Math.floorDiv(z, cellWidth);
|
||||||
|
|
||||||
RandomGenerator random = RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus").create(
|
RandomGenerator random = RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus").create(
|
||||||
(MathUtil.murmur64(MathUtil.squash(cellX, cellZ)) ^ seed) + salt);
|
(MathUtil.murmur64(MathUtil.squash(cellX, cellZ)) ^ seed) + salt);
|
||||||
|
|
||||||
int pointX = random.nextInt(width) + cellX * cellWidth;
|
int pointX = random.nextInt(width) + cellX * cellWidth;
|
||||||
int pointZ = random.nextInt(width) + cellZ * cellWidth;
|
int pointZ = random.nextInt(width) + cellZ * cellWidth;
|
||||||
|
|||||||
+3
-3
@@ -87,9 +87,9 @@ public class TerraFlora implements Structure {
|
|||||||
location.getZ(), world.getSeed());
|
location.getZ(), world.getSeed());
|
||||||
if(doRotation) {
|
if(doRotation) {
|
||||||
Direction oneFace = new ArrayList<>(faces).get(
|
Direction oneFace = new ArrayList<>(faces).get(
|
||||||
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus")
|
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus")
|
||||||
.create(location.getX() ^ location.getZ())
|
.create(location.getX() ^ location.getZ())
|
||||||
.nextInt(faces.size())); // Get RandomGenerator face.
|
.nextInt(faces.size())); // Get RandomGenerator face.
|
||||||
}
|
}
|
||||||
world.setBlockState(location.mutable().add(0, i + c, 0).immutable(), data, physics);
|
world.setBlockState(location.mutable().add(0, i + c, 0).immutable(), data, physics);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.addons.ore.utils;
|
package com.dfsek.terra.addons.ore.utils;
|
||||||
|
|
||||||
|
import java.util.random.RandomGenerator;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.world.WritableWorld;
|
import com.dfsek.terra.api.world.WritableWorld;
|
||||||
|
|
||||||
import java.util.random.RandomGenerator;
|
|
||||||
|
|
||||||
|
|
||||||
public class VanillaOreUtils {
|
public class VanillaOreUtils {
|
||||||
private static boolean shouldExpose(RandomGenerator random, double exposedChance) {
|
private static boolean shouldExpose(RandomGenerator random, double exposedChance) {
|
||||||
@@ -14,7 +14,8 @@ public class VanillaOreUtils {
|
|||||||
return random.nextFloat() < exposedChance;
|
return random.nextFloat() < exposedChance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean shouldPlace(MaterialSet replaceable, BlockType type, Double exposedChance, RandomGenerator random, WritableWorld world,
|
public static boolean shouldPlace(MaterialSet replaceable, BlockType type, Double exposedChance, RandomGenerator random,
|
||||||
|
WritableWorld world,
|
||||||
int x,
|
int x,
|
||||||
int y, int z) {
|
int y, int z) {
|
||||||
if(!replaceable.contains(type)) return false;
|
if(!replaceable.contains(type)) return false;
|
||||||
|
|||||||
+31
-31
@@ -53,37 +53,37 @@ public class FeatureGenerationStage implements GenerationStage, StringIdentifiab
|
|||||||
int tx = cx + chunkX;
|
int tx = cx + chunkX;
|
||||||
int tz = cz + chunkZ;
|
int tz = cz + chunkZ;
|
||||||
world.getBiomeProvider()
|
world.getBiomeProvider()
|
||||||
.getColumn(tx, tz, world)
|
.getColumn(tx, tz, world)
|
||||||
.forRanges(resolution, (min, max, biome) -> {
|
.forRanges(resolution, (min, max, biome) -> {
|
||||||
for(int subChunkX = 0; subChunkX < resolution; subChunkX++) {
|
for(int subChunkX = 0; subChunkX < resolution; subChunkX++) {
|
||||||
for(int subChunkZ = 0; subChunkZ < resolution; subChunkZ++) {
|
for(int subChunkZ = 0; subChunkZ < resolution; subChunkZ++) {
|
||||||
int x = subChunkX + tx;
|
int x = subChunkX + tx;
|
||||||
int z = subChunkZ + tz;
|
int z = subChunkZ + tz;
|
||||||
long coordinateSeed = (seed * 31 + x) * 31 + z;
|
long coordinateSeed = (seed * 31 + x) * 31 + z;
|
||||||
Column<WritableWorld> column = world.column(x, z);
|
Column<WritableWorld> column = world.column(x, z);
|
||||||
biome.getContext()
|
biome.getContext()
|
||||||
.get(biomeFeaturesKey)
|
.get(biomeFeaturesKey)
|
||||||
.getFeatures()
|
.getFeatures()
|
||||||
.getOrDefault(this, Collections.emptyList())
|
.getOrDefault(this, Collections.emptyList())
|
||||||
.forEach(feature -> {
|
.forEach(feature -> {
|
||||||
platform.getProfiler().push(feature.getID());
|
platform.getProfiler().push(feature.getID());
|
||||||
if(feature.getDistributor().matches(x, z, seed)) {
|
if(feature.getDistributor().matches(x, z, seed)) {
|
||||||
feature.getLocator()
|
feature.getLocator()
|
||||||
.getSuitableCoordinates(column.clamp(min, max))
|
.getSuitableCoordinates(column.clamp(min, max))
|
||||||
.forEach(y -> feature.getStructure(world, x, y, z)
|
.forEach(y -> feature.getStructure(world, x, y, z)
|
||||||
.generate(Vector3Int.of(x, y, z),
|
.generate(Vector3Int.of(x, y, z),
|
||||||
world,
|
world,
|
||||||
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of(
|
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of(
|
||||||
"Xoroshiro128PlusPlus")
|
"Xoroshiro128PlusPlus")
|
||||||
.create(coordinateSeed * 31 + y),
|
.create(coordinateSeed * 31 + y),
|
||||||
Rotation.NONE)
|
Rotation.NONE)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
platform.getProfiler().pop(feature.getID());
|
platform.getProfiler().pop(feature.getID());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
platform.getProfiler().pop(profile);
|
platform.getProfiler().pop(profile);
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,5 @@
|
|||||||
package com.dfsek.terra.addons.structure.mutator;
|
package com.dfsek.terra.addons.structure.mutator;
|
||||||
|
|
||||||
import java.util.random.RandomGenerator;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.registry.key.Keyed;
|
import com.dfsek.terra.api.registry.key.Keyed;
|
||||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||||
import com.dfsek.terra.api.structure.Structure;
|
import com.dfsek.terra.api.structure.Structure;
|
||||||
@@ -11,6 +9,8 @@ import com.dfsek.terra.api.world.WritableWorld;
|
|||||||
import com.dfsek.terra.api.world.util.ReadInterceptor;
|
import com.dfsek.terra.api.world.util.ReadInterceptor;
|
||||||
import com.dfsek.terra.api.world.util.WriteInterceptor;
|
import com.dfsek.terra.api.world.util.WriteInterceptor;
|
||||||
|
|
||||||
|
import java.util.random.RandomGenerator;
|
||||||
|
|
||||||
|
|
||||||
public class MutatedStructure implements Structure, Keyed<MutatedStructure> {
|
public class MutatedStructure implements Structure, Keyed<MutatedStructure> {
|
||||||
private final RegistryKey key;
|
private final RegistryKey key;
|
||||||
|
|||||||
+29
-29
@@ -10,6 +10,9 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.random.RandomGenerator;
|
||||||
|
import java.util.random.RandomGeneratorFactory;
|
||||||
|
|
||||||
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;
|
||||||
@@ -28,9 +31,6 @@ import com.dfsek.terra.api.util.RotationUtil;
|
|||||||
import com.dfsek.terra.api.util.vector.Vector2;
|
import com.dfsek.terra.api.util.vector.Vector2;
|
||||||
import com.dfsek.terra.api.util.vector.Vector3;
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
|
|
||||||
import java.util.random.RandomGenerator;
|
|
||||||
import java.util.random.RandomGeneratorFactory;
|
|
||||||
|
|
||||||
|
|
||||||
public class LootFunction implements Function<Void> {
|
public class LootFunction implements Function<Void> {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(LootFunction.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(LootFunction.class);
|
||||||
@@ -65,35 +65,35 @@ public class LootFunction implements Function<Void> {
|
|||||||
|
|
||||||
|
|
||||||
registry.get(RegistryKey.parse(id))
|
registry.get(RegistryKey.parse(id))
|
||||||
.ifPresentOrElse(table -> {
|
.ifPresentOrElse(table -> {
|
||||||
Vector3 apply = Vector3.of((int) Math.round(xz.getX()),
|
Vector3 apply = Vector3.of((int) Math.round(xz.getX()),
|
||||||
y.apply(implementationArguments, scope)
|
y.apply(implementationArguments, scope)
|
||||||
.intValue(),
|
.intValue(),
|
||||||
(int) Math.round(xz.getZ())).mutable().add(arguments.getOrigin()).immutable();
|
(int) Math.round(xz.getZ())).mutable().add(arguments.getOrigin()).immutable();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
BlockEntity data = arguments.getWorld().getBlockEntity(apply);
|
BlockEntity data = arguments.getWorld().getBlockEntity(apply);
|
||||||
if(!(data instanceof Container container)) {
|
if(!(data instanceof Container container)) {
|
||||||
LOGGER.error("Failed to place loot at {}; block {} is not a container",
|
LOGGER.error("Failed to place loot at {}; block {} is not a container",
|
||||||
apply, data);
|
apply, data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
LootPopulateEvent event = new LootPopulateEvent(container, table,
|
LootPopulateEvent event = new LootPopulateEvent(container, table,
|
||||||
arguments.getWorld().getPack(), script);
|
arguments.getWorld().getPack(), script);
|
||||||
platform.getEventManager().callEvent(event);
|
platform.getEventManager().callEvent(event);
|
||||||
if(event.isCancelled()) return;
|
if(event.isCancelled()) return;
|
||||||
|
|
||||||
event.getTable().fillInventory(container.getInventory(),
|
event.getTable().fillInventory(container.getInventory(),
|
||||||
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of(
|
RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of(
|
||||||
"Xoroshiro128PlusPlus").create(apply.hashCode()));
|
"Xoroshiro128PlusPlus").create(apply.hashCode()));
|
||||||
data.update(false);
|
data.update(false);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
LOGGER.error("Could not apply loot at {}", apply, e);
|
LOGGER.error("Could not apply loot at {}", apply, e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
() -> LOGGER.error("No such loot table {}", id));
|
() -> LOGGER.error("No such loot table {}", id));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,6 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.api;
|
package com.dfsek.terra.api;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.MetaPack;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -16,6 +14,7 @@ import java.io.File;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.addon.BaseAddon;
|
import com.dfsek.terra.api.addon.BaseAddon;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
import com.dfsek.terra.api.config.MetaPack;
|
||||||
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;
|
||||||
import com.dfsek.terra.api.handle.ItemHandle;
|
import com.dfsek.terra.api.handle.ItemHandle;
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.dfsek.terra.api.config;
|
|||||||
|
|
||||||
import ca.solostudios.strata.version.Version;
|
import ca.solostudios.strata.version.Version;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.dfsek.terra.api.properties.PropertyHolder;
|
import com.dfsek.terra.api.properties.PropertyHolder;
|
||||||
import com.dfsek.terra.api.registry.key.Keyed;
|
import com.dfsek.terra.api.registry.key.Keyed;
|
||||||
import com.dfsek.terra.api.registry.meta.CheckedRegistryHolder;
|
import com.dfsek.terra.api.registry.meta.CheckedRegistryHolder;
|
||||||
@@ -9,8 +11,6 @@ import com.dfsek.terra.api.registry.meta.RegistryProvider;
|
|||||||
import com.dfsek.terra.api.tectonic.ConfigLoadingDelegate;
|
import com.dfsek.terra.api.tectonic.ConfigLoadingDelegate;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
public interface MetaPack extends LoaderRegistrar,
|
public interface MetaPack extends LoaderRegistrar,
|
||||||
ConfigLoadingDelegate,
|
ConfigLoadingDelegate,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public final class PopulationUtil {
|
|||||||
|
|
||||||
public static RandomGenerator getRandom(Chunk c, long salt) {
|
public static RandomGenerator getRandom(Chunk c, long salt) {
|
||||||
return RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus").create(
|
return RandomGeneratorFactory.<RandomGenerator.SplittableGenerator>of("Xoroshiro128PlusPlus").create(
|
||||||
getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt));
|
getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,10 +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.config.MetaPack;
|
|
||||||
import com.dfsek.terra.registry.master.MetaConfigRegistry;
|
|
||||||
|
|
||||||
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;
|
||||||
@@ -55,6 +51,7 @@ 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.addon.bootstrap.BootstrapAddonClassLoader;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
import com.dfsek.terra.api.config.MetaPack;
|
||||||
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;
|
||||||
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
|
import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent;
|
||||||
@@ -77,6 +74,7 @@ import com.dfsek.terra.registry.LockedRegistryImpl;
|
|||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||||
import com.dfsek.terra.registry.master.ConfigRegistry;
|
import com.dfsek.terra.registry.master.ConfigRegistry;
|
||||||
import com.dfsek.terra.registry.master.ConfigRegistry.PackLoadFailuresException;
|
import com.dfsek.terra.registry.master.ConfigRegistry.PackLoadFailuresException;
|
||||||
|
import com.dfsek.terra.registry.master.MetaConfigRegistry;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -168,7 +166,6 @@ public abstract class AbstractPlatform implements Platform {
|
|||||||
.global();
|
.global();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
logger.info("Terra addons successfully loaded.");
|
logger.info("Terra addons successfully loaded.");
|
||||||
logger.info("Finished initialization.");
|
logger.info("Finished initialization.");
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-34
@@ -1,8 +1,16 @@
|
|||||||
package com.dfsek.terra.config.pack;
|
package com.dfsek.terra.config.pack;
|
||||||
|
|
||||||
import ca.solostudios.strata.version.Version;
|
import ca.solostudios.strata.version.Version;
|
||||||
|
import com.dfsek.tectonic.api.TypeRegistry;
|
||||||
|
import com.dfsek.tectonic.api.config.Configuration;
|
||||||
|
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
||||||
|
import com.dfsek.tectonic.api.loader.AbstractConfigLoader;
|
||||||
|
import com.dfsek.tectonic.api.loader.ConfigLoader;
|
||||||
|
import com.dfsek.tectonic.api.loader.type.TypeLoader;
|
||||||
|
import com.dfsek.tectonic.yaml.YamlConfiguration;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
@@ -18,58 +26,34 @@ import java.util.Map;
|
|||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import com.dfsek.tectonic.api.TypeRegistry;
|
|
||||||
import com.dfsek.tectonic.api.config.Configuration;
|
|
||||||
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
|
||||||
import com.dfsek.tectonic.api.loader.AbstractConfigLoader;
|
|
||||||
import com.dfsek.tectonic.api.loader.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.api.loader.type.TypeLoader;
|
|
||||||
import com.dfsek.tectonic.yaml.YamlConfiguration;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.Platform;
|
import com.dfsek.terra.api.Platform;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.config.ConfigType;
|
|
||||||
import com.dfsek.terra.api.config.MetaPack;
|
import com.dfsek.terra.api.config.MetaPack;
|
||||||
import com.dfsek.terra.api.properties.Context;
|
import com.dfsek.terra.api.properties.Context;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.OpenRegistry;
|
import com.dfsek.terra.api.registry.OpenRegistry;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||||
import com.dfsek.terra.api.tectonic.ConfigLoadingDelegate;
|
|
||||||
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
|
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
|
||||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||||
import com.dfsek.terra.config.loaders.GenericTemplateSupplierLoader;
|
import com.dfsek.terra.config.loaders.GenericTemplateSupplierLoader;
|
||||||
import com.dfsek.terra.config.loaders.config.BufferedImageLoader;
|
|
||||||
import com.dfsek.terra.registry.CheckedRegistryImpl;
|
import com.dfsek.terra.registry.CheckedRegistryImpl;
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||||
|
|
||||||
import com.dfsek.terra.registry.master.ConfigRegistry;
|
import com.dfsek.terra.registry.master.ConfigRegistry;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
|
|
||||||
public class MetaPackImpl implements MetaPack {
|
public class MetaPackImpl implements MetaPack {
|
||||||
|
|
||||||
private static final Pattern PATTERN = Pattern.compile(", ");
|
private static final Pattern PATTERN = Pattern.compile(", ");
|
||||||
private final MetaPackTemplate template = new MetaPackTemplate();
|
|
||||||
|
|
||||||
private final Platform platform;
|
|
||||||
|
|
||||||
private final Path rootPath;
|
|
||||||
|
|
||||||
private final Map<String, ConfigPack> packs = new HashMap<>();
|
|
||||||
|
|
||||||
private final ConfigLoader selfLoader = new ConfigLoader();
|
|
||||||
|
|
||||||
private final Context context = new Context();
|
|
||||||
|
|
||||||
private final RegistryKey key;
|
|
||||||
|
|
||||||
private final Map<Type, CheckedRegistryImpl<?>> registryMap = new HashMap<>();
|
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MetaPackImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(MetaPackImpl.class);
|
||||||
|
private final MetaPackTemplate template = new MetaPackTemplate();
|
||||||
|
private final Platform platform;
|
||||||
|
private final Path rootPath;
|
||||||
|
private final Map<String, ConfigPack> packs = new HashMap<>();
|
||||||
|
private final ConfigLoader selfLoader = new ConfigLoader();
|
||||||
|
private final Context context = new Context();
|
||||||
|
private final RegistryKey key;
|
||||||
|
private final Map<Type, CheckedRegistryImpl<?>> registryMap = new HashMap<>();
|
||||||
private final AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader();
|
private final AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader();
|
||||||
private final String author;
|
private final String author;
|
||||||
|
|
||||||
@@ -121,7 +105,7 @@ public class MetaPackImpl implements MetaPack {
|
|||||||
|
|
||||||
template.getPacks().forEach((k, v) -> {
|
template.getPacks().forEach((k, v) -> {
|
||||||
RegistryKey registryKey = RegistryKey.parse(v);
|
RegistryKey registryKey = RegistryKey.parse(v);
|
||||||
if (configRegistry.contains(registryKey)) {
|
if(configRegistry.contains(registryKey)) {
|
||||||
packs.put(k, configRegistry.get(registryKey).get());
|
packs.put(k, configRegistry.get(registryKey).get());
|
||||||
logger.info("Linked config pack \"{}\" to metapack \"{}:{}\".", v, namespace, id);
|
logger.info("Linked config pack \"{}\" to metapack \"{}:{}\".", v, namespace, id);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
-3
@@ -18,7 +18,6 @@
|
|||||||
package com.dfsek.terra.registry.master;
|
package com.dfsek.terra.registry.master;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serial;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -26,10 +25,8 @@ import java.util.List;
|
|||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import com.dfsek.terra.api.Platform;
|
import com.dfsek.terra.api.Platform;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
|
||||||
import com.dfsek.terra.api.config.MetaPack;
|
import com.dfsek.terra.api.config.MetaPack;
|
||||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||||
import com.dfsek.terra.config.pack.ConfigPackImpl;
|
|
||||||
import com.dfsek.terra.config.pack.MetaPackImpl;
|
import com.dfsek.terra.config.pack.MetaPackImpl;
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||||
import com.dfsek.terra.registry.master.ConfigRegistry.PackLoadFailuresException;
|
import com.dfsek.terra.registry.master.ConfigRegistry.PackLoadFailuresException;
|
||||||
|
|||||||
+2
-2
@@ -5,12 +5,12 @@ import org.bukkit.generator.LimitedRegion;
|
|||||||
import org.bukkit.generator.WorldInfo;
|
import org.bukkit.generator.WorldInfo;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitProtoWorld;
|
import com.dfsek.terra.bukkit.world.BukkitProtoWorld;
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
|
|
||||||
public class BukkitBlockPopulator extends BlockPopulator {
|
public class BukkitBlockPopulator extends BlockPopulator {
|
||||||
private final BlockState air;
|
private final BlockState air;
|
||||||
|
|||||||
-1
@@ -28,7 +28,6 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.random.RandomGenerator;
|
import java.util.random.RandomGenerator;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
|||||||
+2
-2
@@ -61,8 +61,8 @@ public class BukkitWorldHandle implements WorldHandle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull EntityType getEntity(@NotNull String id) {
|
public @NotNull EntityType getEntity(@NotNull String id) {
|
||||||
if (!id.contains(":")) { //TODO: remove in 7.0
|
if(!id.contains(":")) { //TODO: remove in 7.0
|
||||||
String newid = "minecraft:" + id.toLowerCase();;
|
String newid = "minecraft:" + id.toLowerCase();
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"Translating " + id + " to " + newid + ". In 1.20.3 entity parsing was reworked" +
|
"Translating " + id + " to " + newid + ". In 1.20.3 entity parsing was reworked" +
|
||||||
". You are advised to preform this rename in your config backs as this translation will be removed in the next major " +
|
". You are advised to preform this rename in your config backs as this translation will be removed in the next major " +
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.cli.handle;
|
package com.dfsek.terra.cli.handle;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.handle.ItemHandle;
|
import com.dfsek.terra.api.handle.ItemHandle;
|
||||||
import com.dfsek.terra.api.inventory.Item;
|
import com.dfsek.terra.api.inventory.Item;
|
||||||
import com.dfsek.terra.api.inventory.item.Enchantment;
|
import com.dfsek.terra.api.inventory.item.Enchantment;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
public class CLIItemHandle implements ItemHandle {
|
public class CLIItemHandle implements ItemHandle {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -19,13 +19,6 @@ package com.dfsek.terra.mod;
|
|||||||
|
|
||||||
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.config.ConfigPack;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.util.MinecraftUtil;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -38,6 +31,7 @@ import com.dfsek.terra.api.world.biome.Biome;
|
|||||||
import com.dfsek.terra.mod.config.PostLoadCompatibilityOptions;
|
import com.dfsek.terra.mod.config.PostLoadCompatibilityOptions;
|
||||||
import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions;
|
import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions;
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
||||||
|
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
||||||
|
|
||||||
|
|
||||||
public abstract class MinecraftAddon implements BaseAddon {
|
public abstract class MinecraftAddon implements BaseAddon {
|
||||||
@@ -52,16 +46,16 @@ public abstract class MinecraftAddon implements BaseAddon {
|
|||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
modPlatform.getEventManager()
|
modPlatform.getEventManager()
|
||||||
.getHandler(FunctionalEventHandler.class)
|
.getHandler(FunctionalEventHandler.class)
|
||||||
.register(this, ConfigPackPostLoadEvent.class)
|
.register(this, ConfigPackPostLoadEvent.class)
|
||||||
.then(event -> event.getPack().getContext().put(event.loadTemplate(new VanillaWorldProperties())))
|
.then(event -> event.getPack().getContext().put(event.loadTemplate(new VanillaWorldProperties())))
|
||||||
.priority(100)
|
.priority(100)
|
||||||
.global();
|
.global();
|
||||||
modPlatform.getEventManager()
|
modPlatform.getEventManager()
|
||||||
.getHandler(FunctionalEventHandler.class)
|
.getHandler(FunctionalEventHandler.class)
|
||||||
.register(this, ConfigPackPreLoadEvent.class)
|
.register(this, ConfigPackPreLoadEvent.class)
|
||||||
.then(event -> event.getPack().getContext().put(event.loadTemplate(new PreLoadCompatibilityOptions())))
|
.then(event -> event.getPack().getContext().put(event.loadTemplate(new PreLoadCompatibilityOptions())))
|
||||||
.global();
|
.global();
|
||||||
|
|
||||||
modPlatform.getEventManager()
|
modPlatform.getEventManager()
|
||||||
.getHandler(FunctionalEventHandler.class)
|
.getHandler(FunctionalEventHandler.class)
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.dfsek.tectonic.api.exception.LoadException;
|
|||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.entity.SpawnGroup;
|
import net.minecraft.entity.SpawnGroup;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.sound.BiomeAdditionsSound;
|
import net.minecraft.sound.BiomeAdditionsSound;
|
||||||
import net.minecraft.sound.BiomeMoodSound;
|
import net.minecraft.sound.BiomeMoodSound;
|
||||||
@@ -22,7 +21,6 @@ import net.minecraft.world.biome.BiomeParticleConfig;
|
|||||||
import net.minecraft.world.biome.SpawnSettings;
|
import net.minecraft.world.biome.SpawnSettings;
|
||||||
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
|
import net.minecraft.world.biome.SpawnSettings.SpawnEntry;
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.WorldPreset;
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
@@ -70,7 +68,7 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
});
|
});
|
||||||
getRawConfigRegistry()
|
getRawConfigRegistry()
|
||||||
.forEach(pack -> {
|
.forEach(pack -> {
|
||||||
if (!configPacksInMetaPack.contains(pack.getID())) {
|
if(!configPacksInMetaPack.contains(pack.getID())) {
|
||||||
PresetUtil.createDefault(pack, this).apply(registerFunction);
|
PresetUtil.createDefault(pack, this).apply(registerFunction);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
-6
@@ -2,15 +2,10 @@ package com.dfsek.terra.mod.config;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
||||||
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
||||||
|
|
||||||
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
|
||||||
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
|
||||||
|
|
||||||
import net.minecraft.world.dimension.DimensionType.MonsterSettings;
|
|
||||||
|
|
||||||
|
|
||||||
public class MonsterSettingsConfig implements ObjectTemplate<MonsterSettingsConfig> {
|
public class MonsterSettingsConfig implements ObjectTemplate<MonsterSettingsConfig> {
|
||||||
@Value("piglin-safe")
|
@Value("piglin-safe")
|
||||||
@@ -46,7 +41,6 @@ public class MonsterSettingsConfig implements ObjectTemplate<MonsterSettingsConf
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MonsterSettingsConfig get() {
|
public MonsterSettingsConfig get() {
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
+1
-9
@@ -3,15 +3,7 @@ package com.dfsek.terra.mod.config;
|
|||||||
import com.dfsek.tectonic.api.config.template.ConfigTemplate;
|
import com.dfsek.tectonic.api.config.template.ConfigTemplate;
|
||||||
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
||||||
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
||||||
|
|
||||||
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
|
||||||
|
|
||||||
import net.minecraft.client.gl.Uniform;
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.intprovider.IntProvider;
|
|
||||||
import net.minecraft.util.math.intprovider.IntProviderType;
|
|
||||||
import net.minecraft.util.math.random.Random;
|
|
||||||
import net.minecraft.world.dimension.DimensionType.MonsterSettings;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.properties.Properties;
|
import com.dfsek.terra.api.properties.Properties;
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
@@ -134,7 +126,7 @@ public class VanillaWorldProperties implements ConfigTemplate, Properties {
|
|||||||
|
|
||||||
public ConstantRange getHeight() {
|
public ConstantRange getHeight() {
|
||||||
//TODO THIS IS BAD
|
//TODO THIS IS BAD
|
||||||
if (height != null) {
|
if(height != null) {
|
||||||
return new ConstantRange(height.getMin(), height.getMax());
|
return new ConstantRange(height.getMin(), height.getMax());
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -1,20 +1,16 @@
|
|||||||
package com.dfsek.terra.mod.data;
|
package com.dfsek.terra.mod.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.generation.GenerationSettings;
|
|
||||||
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||||
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
import com.dfsek.terra.mod.CommonPlatform;
|
import com.dfsek.terra.mod.CommonPlatform;
|
||||||
|
import com.dfsek.terra.mod.generation.GenerationSettings;
|
||||||
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
||||||
|
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
||||||
|
|
||||||
|
|
||||||
public final class Codecs {
|
public final class Codecs {
|
||||||
@@ -75,6 +71,7 @@ public final class Codecs {
|
|||||||
|
|
||||||
public static final Codec<TerraIntProvider> TERRA_CONSTANT_RANGE_INT_PROVIDER_TYPE = RecordCodecBuilder.create(range -> range.group(
|
public static final Codec<TerraIntProvider> TERRA_CONSTANT_RANGE_INT_PROVIDER_TYPE = RecordCodecBuilder.create(range -> range.group(
|
||||||
Codec.INT.fieldOf("min").stable().forGetter(TerraIntProvider::getMin),
|
Codec.INT.fieldOf("min").stable().forGetter(TerraIntProvider::getMin),
|
||||||
Codec.INT.fieldOf("max").stable().forGetter(TerraIntProvider::getMax)).apply(range, range.stable((min, max) -> new TerraIntProvider(new ConstantRange(
|
Codec.INT.fieldOf("max").stable().forGetter(TerraIntProvider::getMax))
|
||||||
|
.apply(range, range.stable((min, max) -> new TerraIntProvider(new ConstantRange(
|
||||||
min, max)))));
|
min, max)))));
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -1,7 +1,6 @@
|
|||||||
package com.dfsek.terra.mod.generation;
|
package com.dfsek.terra.mod.generation;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
import com.dfsek.terra.api.util.Range;
|
|
||||||
|
|
||||||
|
|
||||||
public record GenerationSettings(ConstantRange height, Integer sealevel, Boolean mobGeneration) {
|
public record GenerationSettings(ConstantRange height, Integer sealevel, Boolean mobGeneration) {
|
||||||
|
|||||||
-6
@@ -17,11 +17,6 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.mod.generation;
|
package com.dfsek.terra.mod.generation;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
|
||||||
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
@@ -44,7 +39,6 @@ import net.minecraft.world.gen.GenerationStep.Carver;
|
|||||||
import net.minecraft.world.gen.StructureAccessor;
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
import net.minecraft.world.gen.StructureWeightSampler;
|
import net.minecraft.world.gen.StructureWeightSampler;
|
||||||
import net.minecraft.world.gen.chunk.Blender;
|
import net.minecraft.world.gen.chunk.Blender;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
|
||||||
import net.minecraft.world.gen.chunk.VerticalBlockSample;
|
import net.minecraft.world.gen.chunk.VerticalBlockSample;
|
||||||
import net.minecraft.world.gen.densityfunction.DensityFunction.UnblendedNoisePos;
|
import net.minecraft.world.gen.densityfunction.DensityFunction.UnblendedNoisePos;
|
||||||
import net.minecraft.world.gen.noise.NoiseConfig;
|
import net.minecraft.world.gen.noise.NoiseConfig;
|
||||||
|
|||||||
+2
-2
@@ -64,8 +64,8 @@ public class MinecraftWorldHandle implements WorldHandle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull EntityType getEntity(@NotNull String id) {
|
public @NotNull EntityType getEntity(@NotNull String id) {
|
||||||
if (!id.contains(":")) { //TODO: remove in 7.0
|
if(!id.contains(":")) { //TODO: remove in 7.0
|
||||||
String newid = "minecraft:" + id.toLowerCase();;
|
String newid = "minecraft:" + id.toLowerCase();
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"Translating " + id + " to " + newid + ". In 1.20.3 entity parsing was reworked" +
|
"Translating " + id + " to " + newid + ". In 1.20.3 entity parsing was reworked" +
|
||||||
". You are advised to preform this rename in your config packs as this translation will be removed in the next major " +
|
". You are advised to preform this rename in your config packs as this translation will be removed in the next major " +
|
||||||
|
|||||||
+3
-4
@@ -1,9 +1,5 @@
|
|||||||
package com.dfsek.terra.mod.implmentation;
|
package com.dfsek.terra.mod.implmentation;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.util.MinecraftAdapter;
|
|
||||||
|
|
||||||
import net.minecraft.util.math.intprovider.IntProvider;
|
import net.minecraft.util.math.intprovider.IntProvider;
|
||||||
import net.minecraft.util.math.intprovider.IntProviderType;
|
import net.minecraft.util.math.intprovider.IntProviderType;
|
||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
@@ -11,6 +7,9 @@ import net.minecraft.util.math.random.Random;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.Range;
|
||||||
|
import com.dfsek.terra.mod.util.MinecraftAdapter;
|
||||||
|
|
||||||
|
|
||||||
public class TerraIntProvider extends IntProvider {
|
public class TerraIntProvider extends IntProvider {
|
||||||
public static final Map<Class, IntProviderType> TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE = new HashMap<>();
|
public static final Map<Class, IntProviderType> TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE = new HashMap<>();
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity {
|
|||||||
|
|
||||||
public void terra$setSpawnedType(@NotNull EntityType creatureType) {
|
public void terra$setSpawnedType(@NotNull EntityType creatureType) {
|
||||||
Random rand;
|
Random rand;
|
||||||
if (hasWorld()) {
|
if(hasWorld()) {
|
||||||
rand = world.getRandom();
|
rand = world.getRandom();
|
||||||
} else {
|
} else {
|
||||||
rand = Random.create();
|
rand = Random.create();
|
||||||
|
|||||||
-2
@@ -3,8 +3,6 @@ package com.dfsek.terra.mod.mixin.lifecycle;
|
|||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import com.dfsek.terra.mod.util.MinecraftUtil;
|
|
||||||
|
|
||||||
import net.minecraft.server.DataPackContents;
|
import net.minecraft.server.DataPackContents;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
|||||||
@@ -1,34 +1,25 @@
|
|||||||
package com.dfsek.terra.mod.util;
|
package com.dfsek.terra.mod.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
|
||||||
import com.dfsek.terra.mod.ModPlatform;
|
|
||||||
import com.dfsek.terra.mod.config.MonsterSettingsConfig;
|
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
|
||||||
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
|
||||||
|
|
||||||
import net.minecraft.registry.BuiltinRegistries;
|
|
||||||
import net.minecraft.registry.Registries;
|
|
||||||
import net.minecraft.registry.Registry;
|
|
||||||
import net.minecraft.registry.RegistryKey;
|
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.registry.tag.TagKey;
|
import net.minecraft.registry.tag.TagKey;
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
|
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.dimension.DimensionType.MonsterSettings;
|
import net.minecraft.world.dimension.DimensionType.MonsterSettings;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.OptionalLong;
|
import java.util.OptionalLong;
|
||||||
|
|
||||||
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
|
import com.dfsek.terra.mod.config.MonsterSettingsConfig;
|
||||||
|
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
||||||
|
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
||||||
|
|
||||||
|
|
||||||
public class DimensionUtil {
|
public class DimensionUtil {
|
||||||
public static DimensionType createDimension(VanillaWorldProperties vanillaWorldProperties, DimensionType defaultDimension, ModPlatform platform) {
|
public static DimensionType createDimension(VanillaWorldProperties vanillaWorldProperties, DimensionType defaultDimension,
|
||||||
|
ModPlatform platform) {
|
||||||
|
|
||||||
MonsterSettingsConfig monsterSettingsConfig;
|
MonsterSettingsConfig monsterSettingsConfig;
|
||||||
if (vanillaWorldProperties.getMonsterSettings() != null) {
|
if(vanillaWorldProperties.getMonsterSettings() != null) {
|
||||||
monsterSettingsConfig = vanillaWorldProperties.getMonsterSettings();
|
monsterSettingsConfig = vanillaWorldProperties.getMonsterSettings();
|
||||||
} else {
|
} else {
|
||||||
monsterSettingsConfig = new MonsterSettingsConfig();
|
monsterSettingsConfig = new MonsterSettingsConfig();
|
||||||
@@ -43,13 +34,21 @@ public class DimensionUtil {
|
|||||||
vanillaWorldProperties.getHasCeiling() == null ? defaultDimension.hasCeiling() : vanillaWorldProperties.getHasCeiling(),
|
vanillaWorldProperties.getHasCeiling() == null ? defaultDimension.hasCeiling() : vanillaWorldProperties.getHasCeiling(),
|
||||||
vanillaWorldProperties.getUltraWarm() == null ? defaultDimension.ultrawarm() : vanillaWorldProperties.getUltraWarm(),
|
vanillaWorldProperties.getUltraWarm() == null ? defaultDimension.ultrawarm() : vanillaWorldProperties.getUltraWarm(),
|
||||||
vanillaWorldProperties.getNatural() == null ? defaultDimension.natural() : vanillaWorldProperties.getNatural(),
|
vanillaWorldProperties.getNatural() == null ? defaultDimension.natural() : vanillaWorldProperties.getNatural(),
|
||||||
vanillaWorldProperties.getCoordinateScale() == null ? defaultDimension.coordinateScale() : vanillaWorldProperties.getCoordinateScale(),
|
vanillaWorldProperties.getCoordinateScale() == null
|
||||||
|
? defaultDimension.coordinateScale()
|
||||||
|
: vanillaWorldProperties.getCoordinateScale(),
|
||||||
vanillaWorldProperties.getBedWorks() == null ? defaultDimension.bedWorks() : vanillaWorldProperties.getBedWorks(),
|
vanillaWorldProperties.getBedWorks() == null ? defaultDimension.bedWorks() : vanillaWorldProperties.getBedWorks(),
|
||||||
vanillaWorldProperties.getRespawnAnchorWorks() == null ? defaultDimension.respawnAnchorWorks() : vanillaWorldProperties.getRespawnAnchorWorks(),
|
vanillaWorldProperties.getRespawnAnchorWorks() == null
|
||||||
|
? defaultDimension.respawnAnchorWorks()
|
||||||
|
: vanillaWorldProperties.getRespawnAnchorWorks(),
|
||||||
vanillaWorldProperties.getHeight() == null ? defaultDimension.minY() : vanillaWorldProperties.getHeight().getMin(),
|
vanillaWorldProperties.getHeight() == null ? defaultDimension.minY() : vanillaWorldProperties.getHeight().getMin(),
|
||||||
vanillaWorldProperties.getHeight() == null ? defaultDimension.height() : vanillaWorldProperties.getHeight().getRange(),
|
vanillaWorldProperties.getHeight() == null ? defaultDimension.height() : vanillaWorldProperties.getHeight().getRange(),
|
||||||
vanillaWorldProperties.getLogicalHeight() == null ? defaultDimension.logicalHeight() : vanillaWorldProperties.getLogicalHeight(),
|
vanillaWorldProperties.getLogicalHeight() == null
|
||||||
vanillaWorldProperties.getInfiniburn() == null ? defaultDimension.infiniburn() : TagKey.of(RegistryKeys.BLOCK, vanillaWorldProperties.getInfiniburn()),
|
? defaultDimension.logicalHeight()
|
||||||
|
: vanillaWorldProperties.getLogicalHeight(),
|
||||||
|
vanillaWorldProperties.getInfiniburn() == null
|
||||||
|
? defaultDimension.infiniburn()
|
||||||
|
: TagKey.of(RegistryKeys.BLOCK, vanillaWorldProperties.getInfiniburn()),
|
||||||
vanillaWorldProperties.getEffects() == null ? defaultDimension.effects() : vanillaWorldProperties.getEffects(),
|
vanillaWorldProperties.getEffects() == null ? defaultDimension.effects() : vanillaWorldProperties.getEffects(),
|
||||||
vanillaWorldProperties.getAmbientLight() == null ? defaultDimension.ambientLight() : vanillaWorldProperties.getAmbientLight(),
|
vanillaWorldProperties.getAmbientLight() == null ? defaultDimension.ambientLight() : vanillaWorldProperties.getAmbientLight(),
|
||||||
monsterSettings
|
monsterSettings
|
||||||
@@ -66,7 +65,9 @@ public class DimensionUtil {
|
|||||||
monsterSettingsConfig.getHasRaids() == null ? defaultMonsterSettings.hasRaids() : monsterSettingsConfig.getHasRaids(),
|
monsterSettingsConfig.getHasRaids() == null ? defaultMonsterSettings.hasRaids() : monsterSettingsConfig.getHasRaids(),
|
||||||
monsterSettingsConfig.getMonsterSpawnLight() == null ? defaultMonsterSettings.monsterSpawnLightTest() : new TerraIntProvider(
|
monsterSettingsConfig.getMonsterSpawnLight() == null ? defaultMonsterSettings.monsterSpawnLightTest() : new TerraIntProvider(
|
||||||
monsterSettingsConfig.getMonsterSpawnLight()),
|
monsterSettingsConfig.getMonsterSpawnLight()),
|
||||||
monsterSettingsConfig.getMonsterSpawnBlockLightLimit() == null ? defaultMonsterSettings.monsterSpawnBlockLightLimit() : monsterSettingsConfig.getMonsterSpawnBlockLightLimit()
|
monsterSettingsConfig.getMonsterSpawnBlockLightLimit() == null
|
||||||
|
? defaultMonsterSettings.monsterSpawnBlockLightLimit()
|
||||||
|
: monsterSettingsConfig.getMonsterSpawnBlockLightLimit()
|
||||||
);
|
);
|
||||||
return monsterSettings;
|
return monsterSettings;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
import net.minecraft.world.HeightLimitView;
|
import net.minecraft.world.HeightLimitView;
|
||||||
|
|
||||||
|
import java.util.random.RandomGenerator;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.vector.Vector3;
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.info.WorldProperties;
|
import com.dfsek.terra.api.world.info.WorldProperties;
|
||||||
|
|
||||||
import java.util.random.RandomGenerator;
|
|
||||||
|
|
||||||
|
|
||||||
public final class MinecraftAdapter {
|
public final class MinecraftAdapter {
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
package com.dfsek.terra.mod.util;
|
package com.dfsek.terra.mod.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
|
||||||
import com.dfsek.terra.mod.data.Codecs;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
|
||||||
|
|
||||||
import net.minecraft.block.entity.LootableContainerBlockEntity;
|
import net.minecraft.block.entity.LootableContainerBlockEntity;
|
||||||
import net.minecraft.block.entity.MobSpawnerBlockEntity;
|
import net.minecraft.block.entity.MobSpawnerBlockEntity;
|
||||||
import net.minecraft.block.entity.SignBlockEntity;
|
import net.minecraft.block.entity.SignBlockEntity;
|
||||||
@@ -15,14 +10,11 @@ import net.minecraft.registry.RegistryKeys;
|
|||||||
import net.minecraft.registry.entry.RegistryEntry;
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
import net.minecraft.util.math.intprovider.IntProviderType;
|
import net.minecraft.util.math.intprovider.IntProviderType;
|
||||||
|
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.biome.Biome.Builder;
|
import net.minecraft.world.biome.Biome.Builder;
|
||||||
import net.minecraft.world.biome.BiomeEffects;
|
import net.minecraft.world.biome.BiomeEffects;
|
||||||
|
|
||||||
import net.minecraft.world.biome.GenerationSettings;
|
import net.minecraft.world.biome.GenerationSettings;
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||||
@@ -41,7 +33,10 @@ import com.dfsek.terra.api.block.entity.Container;
|
|||||||
import com.dfsek.terra.api.block.entity.MobSpawner;
|
import com.dfsek.terra.api.block.entity.MobSpawner;
|
||||||
import com.dfsek.terra.api.block.entity.Sign;
|
import com.dfsek.terra.api.block.entity.Sign;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
||||||
|
import com.dfsek.terra.mod.data.Codecs;
|
||||||
|
import com.dfsek.terra.mod.implmentation.TerraIntProvider;
|
||||||
import com.dfsek.terra.mod.mixin.access.BiomeAccessor;
|
import com.dfsek.terra.mod.mixin.access.BiomeAccessor;
|
||||||
import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder;
|
import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder;
|
||||||
|
|
||||||
@@ -105,7 +100,7 @@ public final class MinecraftUtil {
|
|||||||
|
|
||||||
public static void registerIntProviderTypes() {
|
public static void registerIntProviderTypes() {
|
||||||
IntProviderType<TerraIntProvider> CONSTANT = IntProviderType.register("terra:constant_range",
|
IntProviderType<TerraIntProvider> CONSTANT = IntProviderType.register("terra:constant_range",
|
||||||
Codecs.TERRA_CONSTANT_RANGE_INT_PROVIDER_TYPE);
|
Codecs.TERRA_CONSTANT_RANGE_INT_PROVIDER_TYPE);
|
||||||
|
|
||||||
TerraIntProvider.TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE.put(ConstantRange.class, CONSTANT);
|
TerraIntProvider.TERRA_RANGE_TYPE_TO_INT_PROVIDER_TYPE.put(ConstantRange.class, CONSTANT);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
package com.dfsek.terra.mod.util;
|
package com.dfsek.terra.mod.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.ConstantRange;
|
|
||||||
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
|
||||||
|
|
||||||
import com.dfsek.terra.mod.generation.GenerationSettings;
|
|
||||||
|
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.registry.entry.RegistryEntry;
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSource;
|
||||||
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
||||||
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterLists;
|
||||||
|
import net.minecraft.world.biome.source.TheEndBiomeSource;
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
import net.minecraft.world.dimension.DimensionOptions;
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.dimension.DimensionTypes;
|
import net.minecraft.world.dimension.DimensionTypes;
|
||||||
import net.minecraft.world.gen.WorldPreset;
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
|
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -27,17 +27,14 @@ import java.util.Locale;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.config.MetaPack;
|
import com.dfsek.terra.api.config.MetaPack;
|
||||||
|
import com.dfsek.terra.api.util.ConstantRange;
|
||||||
import com.dfsek.terra.api.util.generic.pair.Pair;
|
import com.dfsek.terra.api.util.generic.pair.Pair;
|
||||||
import com.dfsek.terra.mod.ModPlatform;
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
|
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
||||||
|
import com.dfsek.terra.mod.generation.GenerationSettings;
|
||||||
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
import com.dfsek.terra.mod.generation.TerraBiomeSource;
|
||||||
|
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSource;
|
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterLists;
|
|
||||||
import net.minecraft.world.biome.source.TheEndBiomeSource;
|
|
||||||
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
|
||||||
|
|
||||||
|
|
||||||
public class PresetUtil {
|
public class PresetUtil {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class);
|
||||||
@@ -59,7 +56,8 @@ public class PresetUtil {
|
|||||||
|
|
||||||
insertCustom(platform, "minecraft:overworld", pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
insertCustom(platform, "minecraft:overworld", pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
||||||
|
|
||||||
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(),
|
||||||
|
dimensionMap);
|
||||||
|
|
||||||
WorldPreset preset = new WorldPreset(dimensionMap);
|
WorldPreset preset = new WorldPreset(dimensionMap);
|
||||||
LOGGER.info("Created world type \"{}\"", generatorID);
|
LOGGER.info("Created world type \"{}\"", generatorID);
|
||||||
@@ -72,8 +70,9 @@ public class PresetUtil {
|
|||||||
Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists =
|
Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists =
|
||||||
platform.multiNoiseBiomeSourceParameterListRegistry();
|
platform.multiNoiseBiomeSourceParameterListRegistry();
|
||||||
|
|
||||||
Identifier generatorID = Identifier.of("terra", metaPack.getID().toLowerCase(Locale.ROOT) + "/" + metaPack.getNamespace().toLowerCase(
|
Identifier generatorID = Identifier.of("terra",
|
||||||
Locale.ROOT));
|
metaPack.getID().toLowerCase(Locale.ROOT) + "/" + metaPack.getNamespace().toLowerCase(
|
||||||
|
Locale.ROOT));
|
||||||
|
|
||||||
PRESETS.add(generatorID);
|
PRESETS.add(generatorID);
|
||||||
|
|
||||||
@@ -83,7 +82,8 @@ public class PresetUtil {
|
|||||||
insertCustom(platform, key, pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
insertCustom(platform, key, pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
||||||
});
|
});
|
||||||
|
|
||||||
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(),
|
||||||
|
dimensionMap);
|
||||||
|
|
||||||
WorldPreset preset = new WorldPreset(dimensionMap);
|
WorldPreset preset = new WorldPreset(dimensionMap);
|
||||||
LOGGER.info("Created world type \"{}\"", generatorID);
|
LOGGER.info("Created world type \"{}\"", generatorID);
|
||||||
@@ -97,7 +97,7 @@ public class PresetUtil {
|
|||||||
|
|
||||||
VanillaWorldProperties vanillaWorldProperties;
|
VanillaWorldProperties vanillaWorldProperties;
|
||||||
|
|
||||||
if (pack.getContext().has(VanillaWorldProperties.class)) {
|
if(pack.getContext().has(VanillaWorldProperties.class)) {
|
||||||
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
||||||
} else {
|
} else {
|
||||||
vanillaWorldProperties = new VanillaWorldProperties();
|
vanillaWorldProperties = new VanillaWorldProperties();
|
||||||
@@ -108,8 +108,9 @@ public class PresetUtil {
|
|||||||
assert defaultDimension != null;
|
assert defaultDimension != null;
|
||||||
|
|
||||||
DimensionType dimensionType = DimensionUtil.createDimension(vanillaWorldProperties, defaultDimension, platform);
|
DimensionType dimensionType = DimensionUtil.createDimension(vanillaWorldProperties, defaultDimension, platform);
|
||||||
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("terra", pack.getID().toLowerCase(
|
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(
|
||||||
Locale.ROOT)));
|
new Identifier("terra", pack.getID().toLowerCase(
|
||||||
|
Locale.ROOT)));
|
||||||
|
|
||||||
Registry.registerReference(dimensionTypeRegistry, dimensionTypeRegistryKey, dimensionType);
|
Registry.registerReference(dimensionTypeRegistry, dimensionTypeRegistryKey, dimensionType);
|
||||||
|
|
||||||
@@ -117,12 +118,19 @@ public class PresetUtil {
|
|||||||
|
|
||||||
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> defaultGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(chunkGeneratorSettingsRegistry.get(new Identifier(vanillaWorldProperties.getVanillaGeneration())));
|
RegistryEntry<ChunkGeneratorSettings> defaultGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||||
|
chunkGeneratorSettingsRegistry.get(new Identifier(vanillaWorldProperties.getVanillaGeneration())));
|
||||||
|
|
||||||
GenerationSettings generatorSettings = new GenerationSettings(
|
GenerationSettings generatorSettings = new GenerationSettings(
|
||||||
vanillaWorldProperties.getHeight() == null ? new ConstantRange(defaultGeneratorSettings.value().generationShapeConfig().minimumY(), defaultGeneratorSettings.value().generationShapeConfig().height()) : vanillaWorldProperties.getHeight(),
|
vanillaWorldProperties.getHeight() == null ? new ConstantRange(
|
||||||
vanillaWorldProperties.getSealevel() == null ? defaultGeneratorSettings.value().seaLevel() : vanillaWorldProperties.getSealevel(),
|
defaultGeneratorSettings.value().generationShapeConfig().minimumY(),
|
||||||
vanillaWorldProperties.getMobGeneration() == null ? !defaultGeneratorSettings.value().mobGenerationDisabled() : vanillaWorldProperties.getMobGeneration());
|
defaultGeneratorSettings.value().generationShapeConfig().height()) : vanillaWorldProperties.getHeight(),
|
||||||
|
vanillaWorldProperties.getSealevel() == null
|
||||||
|
? defaultGeneratorSettings.value().seaLevel()
|
||||||
|
: vanillaWorldProperties.getSealevel(),
|
||||||
|
vanillaWorldProperties.getMobGeneration() == null
|
||||||
|
? !defaultGeneratorSettings.value().mobGenerationDisabled()
|
||||||
|
: vanillaWorldProperties.getMobGeneration());
|
||||||
|
|
||||||
ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, generatorSettings);
|
ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, generatorSettings);
|
||||||
|
|
||||||
@@ -131,41 +139,52 @@ public class PresetUtil {
|
|||||||
dimensionMap.put(dimensionOptionsRegistryKey, dimensionOptions);
|
dimensionMap.put(dimensionOptionsRegistryKey, dimensionOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void insertDefaults(Registry<DimensionType> dimensionTypeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists, Registry<Biome> biomeRegistry, HashMap<RegistryKey<DimensionOptions>, DimensionOptions> map) {
|
private static void insertDefaults(Registry<DimensionType> dimensionTypeRegistry,
|
||||||
if (!map.containsKey(DimensionOptions.OVERWORLD)) {
|
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry,
|
||||||
|
Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists,
|
||||||
|
Registry<Biome> biomeRegistry, HashMap<RegistryKey<DimensionOptions>, DimensionOptions> map) {
|
||||||
|
if(!map.containsKey(DimensionOptions.OVERWORLD)) {
|
||||||
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
RegistryEntry<DimensionType> overworldDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.OVERWORLD).orElseThrow();
|
||||||
|
|
||||||
RegistryEntry.Reference<MultiNoiseBiomeSourceParameterList> overworldChunkBiomeReference = multiNoiseBiomeSourceParameterLists.getEntry(
|
RegistryEntry.Reference<MultiNoiseBiomeSourceParameterList> overworldChunkBiomeReference =
|
||||||
MultiNoiseBiomeSourceParameterLists.OVERWORLD).orElseThrow();
|
multiNoiseBiomeSourceParameterLists.getEntry(
|
||||||
|
MultiNoiseBiomeSourceParameterLists.OVERWORLD).orElseThrow();
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> overworldChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.OVERWORLD)
|
RegistryEntry<ChunkGeneratorSettings> overworldChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||||
|
ChunkGeneratorSettings.OVERWORLD)
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
|
|
||||||
|
|
||||||
DimensionOptions overworldDimensionOptions = new DimensionOptions(overworldDimensionType, (new NoiseChunkGenerator(MultiNoiseBiomeSource.create(overworldChunkBiomeReference), overworldChunkGeneratorSettings)));
|
DimensionOptions overworldDimensionOptions = new DimensionOptions(overworldDimensionType,
|
||||||
|
(new NoiseChunkGenerator(MultiNoiseBiomeSource.create(overworldChunkBiomeReference), overworldChunkGeneratorSettings)));
|
||||||
map.put(DimensionOptions.OVERWORLD, overworldDimensionOptions);
|
map.put(DimensionOptions.OVERWORLD, overworldDimensionOptions);
|
||||||
}
|
}
|
||||||
if (!map.containsKey(DimensionOptions.NETHER)) {
|
if(!map.containsKey(DimensionOptions.NETHER)) {
|
||||||
RegistryEntry<DimensionType> netherDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow();
|
RegistryEntry<DimensionType> netherDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow();
|
||||||
|
|
||||||
RegistryEntry.Reference<MultiNoiseBiomeSourceParameterList> netherChunkBiomeReference = multiNoiseBiomeSourceParameterLists.getEntry(
|
RegistryEntry.Reference<MultiNoiseBiomeSourceParameterList> netherChunkBiomeReference =
|
||||||
MultiNoiseBiomeSourceParameterLists.NETHER).orElseThrow();
|
multiNoiseBiomeSourceParameterLists.getEntry(
|
||||||
|
MultiNoiseBiomeSourceParameterLists.NETHER).orElseThrow();
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> netherChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.NETHER)
|
RegistryEntry<ChunkGeneratorSettings> netherChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||||
|
ChunkGeneratorSettings.NETHER)
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
|
|
||||||
|
|
||||||
DimensionOptions overworldDimensionOptions = new DimensionOptions(netherDimensionType, (new NoiseChunkGenerator(MultiNoiseBiomeSource.create(netherChunkBiomeReference), netherChunkGeneratorSettings)));
|
DimensionOptions overworldDimensionOptions = new DimensionOptions(netherDimensionType,
|
||||||
|
(new NoiseChunkGenerator(MultiNoiseBiomeSource.create(netherChunkBiomeReference), netherChunkGeneratorSettings)));
|
||||||
map.put(DimensionOptions.NETHER, overworldDimensionOptions);
|
map.put(DimensionOptions.NETHER, overworldDimensionOptions);
|
||||||
}
|
}
|
||||||
if (!map.containsKey(DimensionOptions.END)) {
|
if(!map.containsKey(DimensionOptions.END)) {
|
||||||
RegistryEntry<DimensionType> endDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow();
|
RegistryEntry<DimensionType> endDimensionType = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow();
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.END)
|
RegistryEntry<ChunkGeneratorSettings> endChunkGeneratorSettings = chunkGeneratorSettingsRegistry.getEntry(
|
||||||
|
ChunkGeneratorSettings.END)
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
|
|
||||||
|
|
||||||
DimensionOptions overworldDimensionOptions = new DimensionOptions(endDimensionType, (new NoiseChunkGenerator(TheEndBiomeSource.createVanilla(biomeRegistry.getReadOnlyWrapper()), endChunkGeneratorSettings)));
|
DimensionOptions overworldDimensionOptions = new DimensionOptions(endDimensionType,
|
||||||
|
(new NoiseChunkGenerator(TheEndBiomeSource.createVanilla(biomeRegistry.getReadOnlyWrapper()), endChunkGeneratorSettings)));
|
||||||
map.put(DimensionOptions.END, overworldDimensionOptions);
|
map.put(DimensionOptions.END, overworldDimensionOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -5,14 +5,11 @@ import ca.solostudios.strata.parser.tokenizer.ParseException;
|
|||||||
import ca.solostudios.strata.version.Version;
|
import ca.solostudios.strata.version.Version;
|
||||||
import net.minecraft.MinecraftVersion;
|
import net.minecraft.MinecraftVersion;
|
||||||
import net.minecraft.registry.DynamicRegistryManager;
|
import net.minecraft.registry.DynamicRegistryManager;
|
||||||
import net.minecraft.registry.Registries;
|
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
|
||||||
import net.minecraft.world.dimension.DimensionOptionsRegistryHolder;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|||||||
-1
@@ -7,7 +7,6 @@ import net.minecraft.registry.RegistryKey;
|
|||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.registry.RegistryLoader;
|
import net.minecraft.registry.RegistryLoader;
|
||||||
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList;
|
||||||
import net.minecraft.world.dimension.DimensionOptions;
|
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraft.world.gen.WorldPreset;
|
import net.minecraft.world.gen.WorldPreset;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
|
|||||||
+1
-2
@@ -2,11 +2,10 @@ package com.dfsek.terra.lifecycle.util;
|
|||||||
|
|
||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import com.dfsek.terra.mod.util.MinecraftUtil;
|
|
||||||
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import com.dfsek.terra.mod.data.Codecs;
|
import com.dfsek.terra.mod.data.Codecs;
|
||||||
|
import com.dfsek.terra.mod.util.MinecraftUtil;
|
||||||
|
|
||||||
|
|
||||||
public final class RegistryUtil {
|
public final class RegistryUtil {
|
||||||
|
|||||||
Reference in New Issue
Block a user