Skip to content

Commit 6cc85d0

Browse files
committed
added features to all biomes
1 parent aec6f6e commit 6cc85d0

File tree

7 files changed

+66
-13
lines changed

7 files changed

+66
-13
lines changed

src/main/java/multiverse/common/Multiverse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ private void addRegistries(IEventBus bus) {
4949
BiomeSourceRegistry.SOURCES.register(bus);
5050
SurfaceRuleSourceRegistry.SOURCES.register(bus);
5151
EffectRegistry.EFFECTS.register(bus);
52+
BiomeModifierRegistry.TYPES.register(bus);
5253

5354
BiomeChunkGeneratorGeneratorTypeRegistry.TYPES.register(bus);
5455
BiomeDimensionGeneratorTypeRegistry.TYPES.register(bus);

src/main/java/multiverse/common/ServerConfigs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ public class ServerConfigs {
1515
}
1616

1717
public final ForgeConfigSpec.DoubleValue travelerSpawnChance, minRiftWidth, maxRiftWidth, fireworkRate, fireRate, minSpawnRadius, maxSpawnRadius, spawnOffset, swordMinWidth, swordMaxWidth, swordWidthRate, swordMinHeight, swordMaxHeight, swordHeightRate, swordSpawnDistance, coreRange, bountyRate, conquerorMinSpawnDist, conquerorMaxSpawnDist, conquerorMaxSpawnHDist, conquerorDistanceThreshold, shieldRange;
18-
public final ForgeConfigSpec.IntValue riftRange, minRiftHeight, maxRiftHeight, spawnPeriod, spawnCount, slowFalling, swordMinCharge, swordCooldown, armorMinOffset, armorMaxOffset, armorMaxSpawn, armorSpawnPeriod, doppelTimeout, travelerMaxDoppel, travelerDoppelPeriod, travelerMinRange, travelerMaxRange, conquerorMobThreshold, conquerorCastTime, conquerorCooldown, conquerorSlowFallingDuration, conquerorSlowFallingAmplifier, conquerorSpawnCount, warpRingCooldown;
18+
public final ForgeConfigSpec.IntValue riftRange, minRiftHeight, maxRiftHeight, spawnPeriod, spawnCount, slowFalling, swordMinCharge, swordCooldown, armorMinOffset, armorMaxOffset, armorMaxSpawn, armorSpawnPeriod, doppelTimeout, travelerMaxDoppel, travelerDoppelPeriod, travelerMinRange, travelerMaxRange, conquerorMobThreshold, conquerorCastTime, conquerorCooldown, conquerorSlowFallingDuration, conquerorSlowFallingAmplifier, conquerorSpawnCount, warpRingCooldown;
1919
public final ForgeConfigSpec.LongValue colorSeedOffset;
2020
public final ForgeConfigSpec.BooleanValue riftSwordTemporary, coreTemporary;
2121

2222
public ServerConfigs(ForgeConfigSpec.Builder builder) {
23-
builder.comment("Multiverse server-side configuration").push("Rifts");
23+
builder.comment("Multiverse server-side configuration").push("Rifts");
2424
riftRange = builder.comment("This is the range that is scanned for existing rifts using points of interest. ")
2525
.defineInRange("range", 128, 0, Integer.MAX_VALUE);
2626
colorSeedOffset = builder.comment("This is the factor that is added to the rift color seed. Change to modify all rift colors in the server. ")
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package multiverse.common.world.worldgen.biomes;
2+
3+
import com.mojang.serialization.Codec;
4+
import com.mojang.serialization.codecs.RecordCodecBuilder;
5+
import net.minecraft.core.Holder;
6+
import net.minecraft.core.HolderSet;
7+
import net.minecraft.world.level.biome.Biome;
8+
import net.minecraft.world.level.levelgen.GenerationStep;
9+
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
10+
import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder;
11+
import net.minecraftforge.common.world.BiomeModifier;
12+
import net.minecraftforge.common.world.ModifiableBiomeInfo;
13+
14+
public record AddFeaturesAllBiomeModifier(HolderSet<PlacedFeature> features,
15+
GenerationStep.Decoration step) implements BiomeModifier {
16+
17+
public static final Codec<AddFeaturesAllBiomeModifier> CODEC = RecordCodecBuilder.create(inst -> inst.group(
18+
PlacedFeature.LIST_CODEC.fieldOf("features").forGetter(AddFeaturesAllBiomeModifier::features),
19+
GenerationStep.Decoration.CODEC.fieldOf("step").forGetter(AddFeaturesAllBiomeModifier::step)
20+
).apply(inst, AddFeaturesAllBiomeModifier::new));
21+
22+
@Override
23+
public void modify(Holder<Biome> biome, Phase phase, ModifiableBiomeInfo.BiomeInfo.Builder builder) {
24+
if (phase == Phase.ADD) {
25+
BiomeGenerationSettingsBuilder settings = builder.getGenerationSettings();
26+
features().forEach(holder -> settings.addFeature(step(), holder));
27+
}
28+
}
29+
30+
@Override
31+
public Codec<? extends AddFeaturesAllBiomeModifier> codec() {
32+
return null;
33+
}
34+
35+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package multiverse.registration.worldgen;
2+
3+
import com.mojang.serialization.Codec;
4+
import multiverse.common.Multiverse;
5+
import multiverse.common.world.worldgen.biomes.AddFeaturesAllBiomeModifier;
6+
import net.minecraftforge.common.world.BiomeModifier;
7+
import net.minecraftforge.registries.DeferredRegister;
8+
import net.minecraftforge.registries.ForgeRegistries;
9+
import net.minecraftforge.registries.RegistryObject;
10+
11+
import java.util.function.Supplier;
12+
13+
public final class BiomeModifierRegistry {
14+
15+
public static final DeferredRegister<Codec<? extends BiomeModifier>> TYPES = DeferredRegister.create(ForgeRegistries.Keys.BIOME_MODIFIER_SERIALIZERS, Multiverse.MOD_ID);
16+
17+
public static final RegistryObject<Codec<AddFeaturesAllBiomeModifier>> ADD_ALL = register("add_features_all", () -> AddFeaturesAllBiomeModifier.CODEC);
18+
19+
private BiomeModifierRegistry() {
20+
}
21+
22+
private static <T extends BiomeModifier> RegistryObject<Codec<T>> register(String name, Supplier<Codec<T>> codec) {
23+
return TYPES.register(name, codec);
24+
}
25+
26+
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
2-
"type": "forge:add_features",
3-
"biomes": "#multiverse:multiverse",
2+
"type": "multiverse:add_features_all",
43
"features": "multiverse:kaleidite_cluster",
54
"step": "local_modifications"
65
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
2-
"type": "forge:add_features",
3-
"biomes": "#multiverse:multiverse",
2+
"type": "multiverse:add_features_all",
43
"features": "multiverse:rift",
54
"step": "local_modifications"
65
}

src/main/resources/data/multiverse/tags/worldgen/biome/multiverse.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)