Public Access
This commit is contained in:
1 parent
ee388f2b55
commit
0182684231
3 files changed
+11
-54
No files matched your search
@@ -248,6 +248,10 @@ honor the server's loaded data packs. Automated coverage also verifies that a
|
|||||||
live Age's seed equals its immutable saved definition; Dynamic Dimensions
|
live Age's seed equals its immutable saved definition; Dynamic Dimensions
|
||||||
derives both from the Overworld seed and the Age dimension identifier.
|
derives both from the Overworld seed and the Age dimension identifier.
|
||||||
|
|
||||||
|
Version 0.2.16.11 moves Cave and Island/Skylands Ages onto the standard
|
||||||
|
Overworld biome, terrain, surface, structure, and feature pipeline. They no
|
||||||
|
longer inherit Nether or End generation and dimension behavior.
|
||||||
|
|
||||||
Version 0.2.14.0 restores the legacy Linking and Descriptive Book artwork for
|
Version 0.2.14.0 restores the legacy Linking and Descriptive Book artwork for
|
||||||
inventory items and gives each book its matching open-book texture when placed
|
inventory items and gives each book its matching open-book texture when placed
|
||||||
on a Book Stand. Return Linking Books created inside another Age also retain and
|
on a Book Stand. Return Linking Books created inside another Age also retain and
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ mod_name=Rivencraft
|
|||||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||||
mod_license=LGPL-3.0-or-later
|
mod_license=LGPL-3.0-or-later
|
||||||
# The mod version. Rivencraft uses the x.y.z.b policy documented in README.md.
|
# The mod version. Rivencraft uses the x.y.z.b policy documented in README.md.
|
||||||
mod_version=0.2.16.10
|
mod_version=0.2.16.11
|
||||||
immersive_portals_version=6.0.7
|
immersive_portals_version=6.0.7
|
||||||
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
||||||
# This should match the base package used for the mod sources.
|
# This should match the base package used for the mod sources.
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import net.minecraft.world.level.block.Blocks;
|
|||||||
import net.minecraft.world.level.biome.Biomes;
|
import net.minecraft.world.level.biome.Biomes;
|
||||||
import net.minecraft.world.level.biome.MultiNoiseBiomeSource;
|
import net.minecraft.world.level.biome.MultiNoiseBiomeSource;
|
||||||
import net.minecraft.world.level.biome.MultiNoiseBiomeSourceParameterLists;
|
import net.minecraft.world.level.biome.MultiNoiseBiomeSourceParameterLists;
|
||||||
import net.minecraft.world.level.biome.TheEndBiomeSource;
|
|
||||||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||||
import net.minecraft.world.level.dimension.BuiltinDimensionTypes;
|
import net.minecraft.world.level.dimension.BuiltinDimensionTypes;
|
||||||
import net.minecraft.world.level.dimension.DimensionType;
|
import net.minecraft.world.level.dimension.DimensionType;
|
||||||
@@ -49,7 +48,7 @@ public final class AgeDimensionService {
|
|||||||
loader.loadDynamicDimension(
|
loader.loadDynamicDimension(
|
||||||
age.dimensionId(),
|
age.dimensionId(),
|
||||||
createGenerator(server, age),
|
createGenerator(server, age),
|
||||||
createDimensionType(server, age)
|
createDimensionType()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
synchronizeImmersivePortals(server);
|
synchronizeImmersivePortals(server);
|
||||||
@@ -86,7 +85,7 @@ public final class AgeDimensionService {
|
|||||||
ServerLevel loaded = DynamicDimensionRegistry.from(server).loadDynamicDimension(
|
ServerLevel loaded = DynamicDimensionRegistry.from(server).loadDynamicDimension(
|
||||||
definition.dimensionId(),
|
definition.dimensionId(),
|
||||||
createGenerator(server, definition),
|
createGenerator(server, definition),
|
||||||
createDimensionType(server, definition)
|
createDimensionType()
|
||||||
);
|
);
|
||||||
if (loaded == null) {
|
if (loaded == null) {
|
||||||
Rivencraft.LOGGER.error("Failed to load Age {} as {}", definition.id(), definition.dimensionId());
|
Rivencraft.LOGGER.error("Failed to load Age {} as {}", definition.id(), definition.dimensionId());
|
||||||
@@ -208,26 +207,15 @@ public final class AgeDimensionService {
|
|||||||
return new FlatLevelSource(settings);
|
return new FlatLevelSource(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
var biomes = server.registryAccess().lookupOrThrow(Registries.BIOME);
|
|
||||||
var biomeParameters = server.registryAccess()
|
var biomeParameters = server.registryAccess()
|
||||||
.lookupOrThrow(Registries.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST);
|
.lookupOrThrow(Registries.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST);
|
||||||
var noiseSettings = server.registryAccess().lookupOrThrow(Registries.NOISE_SETTINGS);
|
var noiseSettings = server.registryAccess().lookupOrThrow(Registries.NOISE_SETTINGS);
|
||||||
if (profile.equals(AgeGenerationProfiles.CAVE)) {
|
|
||||||
return new NoiseBasedChunkGenerator(
|
|
||||||
MultiNoiseBiomeSource.createFromPreset(
|
|
||||||
biomeParameters.getOrThrow(MultiNoiseBiomeSourceParameterLists.NETHER)),
|
|
||||||
noiseSettings.getOrThrow(NoiseGeneratorSettings.NETHER)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (profile.equals(AgeGenerationProfiles.ISLAND)) {
|
|
||||||
return new NoiseBasedChunkGenerator(
|
|
||||||
TheEndBiomeSource.create(biomes),
|
|
||||||
noiseSettings.getOrThrow(NoiseGeneratorSettings.END)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
ResourceKey<NoiseGeneratorSettings> settingsKey = profile.equals(AgeGenerationProfiles.AMPLIFIED)
|
ResourceKey<NoiseGeneratorSettings> settingsKey = profile.equals(AgeGenerationProfiles.AMPLIFIED)
|
||||||
? NoiseGeneratorSettings.AMPLIFIED
|
? NoiseGeneratorSettings.AMPLIFIED
|
||||||
: NoiseGeneratorSettings.OVERWORLD;
|
: NoiseGeneratorSettings.OVERWORLD;
|
||||||
|
// Cave and Island/Skylands currently describe an Age's theme. Their
|
||||||
|
// terrain, biomes, surfaces, structures, and features use the standard
|
||||||
|
// Overworld pipeline until their dedicated terrain modifiers land.
|
||||||
// random_vanilla is retained as a migration alias for existing Ages.
|
// random_vanilla is retained as a migration alias for existing Ages.
|
||||||
return new NoiseBasedChunkGenerator(
|
return new NoiseBasedChunkGenerator(
|
||||||
MultiNoiseBiomeSource.createFromPreset(
|
MultiNoiseBiomeSource.createFromPreset(
|
||||||
@@ -236,13 +224,7 @@ public final class AgeDimensionService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DimensionType createDimensionType(MinecraftServer server, AgeDefinition age) {
|
private static DimensionType createDimensionType() {
|
||||||
if (age.generationProfile().equals(AgeGenerationProfiles.CAVE)) {
|
|
||||||
return copyDimensionType(server.getLevel(Level.NETHER).dimensionType());
|
|
||||||
}
|
|
||||||
if (age.generationProfile().equals(AgeGenerationProfiles.ISLAND)) {
|
|
||||||
return copyDimensionType(server.getLevel(Level.END).dimensionType());
|
|
||||||
}
|
|
||||||
return new DimensionType(
|
return new DimensionType(
|
||||||
OptionalLong.empty(),
|
OptionalLong.empty(),
|
||||||
true,
|
true,
|
||||||
@@ -262,33 +244,4 @@ public final class AgeDimensionService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Dynamic Dimensions registers one dimension-type value per Age, so each needs a distinct instance graph. */
|
|
||||||
private static DimensionType copyDimensionType(DimensionType type) {
|
|
||||||
DimensionType.MonsterSettings monsters = type.monsterSettings();
|
|
||||||
return new DimensionType(
|
|
||||||
type.fixedTime(),
|
|
||||||
type.hasSkyLight(),
|
|
||||||
type.hasCeiling(),
|
|
||||||
type.ultraWarm(),
|
|
||||||
type.natural(),
|
|
||||||
type.coordinateScale(),
|
|
||||||
type.bedWorks(),
|
|
||||||
type.respawnAnchorWorks(),
|
|
||||||
type.minY(),
|
|
||||||
type.height(),
|
|
||||||
type.logicalHeight(),
|
|
||||||
type.infiniburn(),
|
|
||||||
type.effectsLocation(),
|
|
||||||
type.ambientLight(),
|
|
||||||
new DimensionType.MonsterSettings(
|
|
||||||
monsters.piglinSafe(),
|
|
||||||
monsters.hasRaids(),
|
|
||||||
UniformInt.of(
|
|
||||||
monsters.monsterSpawnLightTest().getMinValue(),
|
|
||||||
monsters.monsterSpawnLightTest().getMaxValue()
|
|
||||||
),
|
|
||||||
monsters.monsterSpawnBlockLightLimit()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user