BYG-Integration compile fixes

This commit is contained in:
Frank 2021-12-07 12:35:05 +01:00
parent 016a3048bd
commit 6a8ad29a70
4 changed files with 166 additions and 139 deletions

View file

@ -1,5 +1,6 @@
package ru.betterend.integration.byg.biomes; package ru.betterend.integration.byg.biomes;
import ru.betterend.BetterEnd;
import ru.betterend.integration.Integrations; import ru.betterend.integration.Integrations;
import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBiomes;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
@ -11,7 +12,7 @@ public class BYGBiomes {
//public static final EndBiome ETHERIAL_GROVE = EndBiomes.registerSubBiomeIntegration(new EterialGrove()); //public static final EndBiome ETHERIAL_GROVE = EndBiomes.registerSubBiomeIntegration(new EterialGrove());
public static void register() { public static void register() {
System.out.println("Registered " + OLD_BULBIS_GARDENS); BetterEnd.LOGGER.info("Registered " + OLD_BULBIS_GARDENS);
} }
public static void addBiomes() { public static void addBiomes() {

View file

@ -1,69 +1,84 @@
package ru.betterend.integration.byg.biomes; package ru.betterend.integration.byg.biomes;
import java.util.List;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSpecialEffects; import net.minecraft.world.level.biome.BiomeSpecialEffects;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData; import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import ru.bclib.BCLib; import ru.bclib.BCLib;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd;
import ru.betterend.integration.Integrations; import ru.betterend.integration.Integrations;
import ru.betterend.integration.byg.features.BYGFeatures; import ru.betterend.integration.byg.features.BYGFeatures;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import java.util.List; public class NightshadeRedwoods extends EndBiome.Config {
public class NightshadeRedwoods extends EndBiome {
public NightshadeRedwoods() { public NightshadeRedwoods() {
super(makeDef()); super("nightshade_redwoods");
} }
private static BCLBiomeDef makeDef() { @Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
Biome biome = Integrations.BYG.getBiome("nightshade_forest"); Biome biome = Integrations.BYG.getBiome("nightshade_forest");
BiomeSpecialEffects effects = biome.getSpecialEffects(); BiomeSpecialEffects effects = biome.getSpecialEffects();
BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("nightshade_redwoods")).setFogColor(140, 108, 47) builder.fogColor(140, 108, 47)
.setFogDensity(1.5F) .fogDensity(1.5F)
.setWaterAndFogColor(55, 70, 186) .waterAndFogColor(55, 70, 186)
.setFoliageColor(122, 17, 155) .foliageColor(122, 17, 155)
.setParticles( .particles(
ParticleTypes.REVERSE_PORTAL, ParticleTypes.REVERSE_PORTAL,
0.002F 0.002F
) )
.setSurface(biome.getGenerationSettings() //TODO: 1.18 surface rules
.getSurfaceBuilder() // .setSurface(biome.getGenerationSettings()
.get()) // .getSurfaceBuilder()
.setGrassColor(48, 13, 89) // .get())
.setPlantsColor(200, 125, 9) .grassColor(48, 13, 89)
.addFeature(EndFeatures.END_LAKE_RARE) .plantsColor(200, 125, 9)
.addFeature(BYGFeatures.NIGHTSHADE_REDWOOD_TREE) .feature(EndFeatures.END_LAKE_RARE)
.addFeature(BYGFeatures.NIGHTSHADE_MOSS_WOOD) .feature(BYGFeatures.NIGHTSHADE_REDWOOD_TREE)
.addFeature(BYGFeatures.NIGHTSHADE_MOSS); .feature(BYGFeatures.NIGHTSHADE_MOSS_WOOD)
.feature(BYGFeatures.NIGHTSHADE_MOSS);
if (BCLib.isClient()) { if (BCLib.isClient()) {
SoundEvent loop = effects.getAmbientLoopSoundEvent().get(); SoundEvent loop = effects.getAmbientLoopSoundEvent()
SoundEvent music = effects.getBackgroundMusic().get().getEvent(); .get();
SoundEvent additions = effects.getAmbientAdditionsSettings().get().getSoundEvent(); SoundEvent music = effects.getBackgroundMusic()
SoundEvent mood = effects.getAmbientMoodSettings().get().getSoundEvent(); .get()
def.setLoop(loop).setMusic(music).setAdditions(additions).setMood(mood); .getEvent();
SoundEvent additions = effects.getAmbientAdditionsSettings()
.get()
.getSoundEvent();
SoundEvent mood = effects.getAmbientMoodSettings()
.get()
.getSoundEvent();
builder.loop(loop)
.music(music)
.additions(additions)
.mood(mood);
} }
biome.getGenerationSettings().features().forEach((list) -> { biome.getGenerationSettings()
.features()
.forEach((list) -> {
list.forEach((feature) -> { list.forEach((feature) -> {
def.addFeature(Decoration.VEGETAL_DECORATION, feature.get()); builder.feature(Decoration.VEGETAL_DECORATION, feature.get());
}); });
}); });
for (MobCategory group : MobCategory.values()) { for (MobCategory group : MobCategory.values()) {
List<SpawnerData> list = biome.getMobSettings().getMobs(group).unwrap(); List<SpawnerData> list = biome.getMobSettings()
.getMobs(group)
.unwrap();
list.forEach((entry) -> { list.forEach((entry) -> {
def.addMobSpawn(entry); builder.spawn((EntityType<? extends Mob>) entry.type, 1, entry.minCount, entry.maxCount);
}); });
} }
return def;
} }
} }

View file

@ -1,107 +1,117 @@
package ru.betterend.integration.byg.biomes; package ru.betterend.integration.byg.biomes;
import java.util.List;
import java.util.function.Supplier;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.BuiltinRegistries; import net.minecraft.data.BuiltinRegistries;
import net.minecraft.data.worldgen.Features;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSpecialEffects; import net.minecraft.world.level.biome.BiomeSpecialEffects;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData; import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraft.world.level.levelgen.placement.ConfiguredDecorator;
import ru.bclib.BCLib; import ru.bclib.BCLib;
import ru.bclib.world.biomes.BCLBiomeDef; import ru.bclib.api.biomes.BCLBiomeBuilder;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.integration.Integrations; import ru.betterend.integration.Integrations;
import ru.betterend.integration.byg.features.BYGFeatures; import ru.betterend.integration.byg.features.BYGFeatures;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import java.util.List;
import java.util.function.Supplier;
class FeaturesAccesor extends Features { public class OldBulbisGardens extends EndBiome.Config {
static ConfiguredDecorator<?> shadowHEIGHTMAP_SQUARE;
static {
shadowHEIGHTMAP_SQUARE = Decorators.HEIGHTMAP_SQUARE;
}
}
public class OldBulbisGardens extends EndBiome {
public OldBulbisGardens() { public OldBulbisGardens() {
super(makeDef()); super("old_bulbis_gardens");
} }
private static BCLBiomeDef makeDef() { @Override
protected void addCustomBuildData(BCLBiomeBuilder builder) {
Biome biome = Integrations.BYG.getBiome("bulbis_gardens"); Biome biome = Integrations.BYG.getBiome("bulbis_gardens");
BiomeSpecialEffects effects = biome.getSpecialEffects(); BiomeSpecialEffects effects = biome.getSpecialEffects();
Block ivis = Integrations.BYG.getBlock("ivis_phylium"); Block ivis = Integrations.BYG.getBlock("ivis_phylium");
Block origin = biome.getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial().getBlock(); // Block origin = biome.getGenerationSettings()
BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("old_bulbis_gardens")).setFogColor(215, 132, 207) // .getSurfaceBuilderConfig()
.setFogDensity(1.8F) // .getTopMaterial()
.setWaterAndFogColor(40, 0, 56) // .getBlock();
.setFoliageColor(122, 17, 155) builder.fogColor(215, 132, 207)
.setParticles( .fogDensity(1.8F)
.waterAndFogColor(40, 0, 56)
.foliageColor(122, 17, 155)
.particles(
ParticleTypes.REVERSE_PORTAL, ParticleTypes.REVERSE_PORTAL,
0.002F 0.002F
) )
.setSurface(ivis, origin) //TODO: 1.18 surface rules
.addFeature(EndFeatures.END_LAKE_RARE) //.surface(ivis, origin)
.addFeature(BYGFeatures.OLD_BULBIS_TREE); .feature(EndFeatures.END_LAKE_RARE)
.feature(BYGFeatures.OLD_BULBIS_TREE);
if (BCLib.isClient()) { if (BCLib.isClient()) {
SoundEvent loop = effects.getAmbientLoopSoundEvent().get(); SoundEvent loop = effects.getAmbientLoopSoundEvent()
SoundEvent music = effects.getBackgroundMusic().get().getEvent(); .get();
SoundEvent additions = effects.getAmbientAdditionsSettings().get().getSoundEvent(); SoundEvent music = effects.getBackgroundMusic()
SoundEvent mood = effects.getAmbientMoodSettings().get().getSoundEvent(); .get()
def.setLoop(loop).setMusic(music).setAdditions(additions).setMood(mood); .getEvent();
SoundEvent additions = effects.getAmbientAdditionsSettings()
.get()
.getSoundEvent();
SoundEvent mood = effects.getAmbientMoodSettings()
.get()
.getSoundEvent();
builder.loop(loop)
.music(music)
.additions(additions)
.mood(mood);
} }
for (MobCategory group : MobCategory.values()) { for (MobCategory group : MobCategory.values()) {
List<SpawnerData> list = biome.getMobSettings().getMobs(group).unwrap(); List<SpawnerData> list = biome.getMobSettings()
.getMobs(group)
.unwrap();
list.forEach((entry) -> { list.forEach((entry) -> {
def.addMobSpawn(entry); builder.spawn((EntityType<? extends Mob>) entry.type, 1, entry.minCount, entry.maxCount);
}); });
} }
List<List<Supplier<ConfiguredFeature<?, ?>>>> features = biome.getGenerationSettings().features(); List<List<Supplier<PlacedFeature>>> features = biome.getGenerationSettings()
List<Supplier<ConfiguredFeature<?, ?>>> vegetal = features.get(Decoration.VEGETAL_DECORATION.ordinal()); .features();
List<Supplier<PlacedFeature>> vegetal = features.get(Decoration.VEGETAL_DECORATION.ordinal());
if (vegetal.size() > 2) { if (vegetal.size() > 2) {
Supplier<ConfiguredFeature<?, ?>> getter; Supplier<PlacedFeature> getter;
// Trees (first two features) // Trees (first two features)
// I couldn't process them with conditions, so that's why they are hardcoded (paulevs) // I couldn't process them with conditions, so that's why they are hardcoded (paulevs)
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
getter = vegetal.get(i); getter = vegetal.get(i);
ConfiguredFeature<?, ?> feature = getter.get(); PlacedFeature feature = getter.get();
ResourceLocation id = BetterEnd.makeID("obg_feature_" + i); ResourceLocation id = BetterEnd.makeID("obg_feature_" + i);
feature = Registry.register( feature = Registry.register(
BuiltinRegistries.CONFIGURED_FEATURE, BuiltinRegistries.PLACED_FEATURE,
id, id,
feature.decorated(FeaturesAccesor.shadowHEIGHTMAP_SQUARE).countRandom(1) //TODO: 1.18 Check if this is correct
feature//.decorated(FeaturesAccesor.shadowHEIGHTMAP_SQUARE).countRandom(1)
); );
def.addFeature(Decoration.VEGETAL_DECORATION, feature); builder.feature(Decoration.VEGETAL_DECORATION, feature);
} }
// Grasses and other features // Grasses and other features
for (int i = 2; i < vegetal.size(); i++) { for (int i = 2; i < vegetal.size(); i++) {
getter = vegetal.get(i); getter = vegetal.get(i);
ConfiguredFeature<?, ?> feature = getter.get(); PlacedFeature feature = getter.get();
def.addFeature(Decoration.VEGETAL_DECORATION, feature); builder.feature(Decoration.VEGETAL_DECORATION, feature);
} }
} }
def.addFeature(EndFeatures.PURPLE_POLYPORE) builder.feature(EndFeatures.PURPLE_POLYPORE)
.addFeature(BYGFeatures.IVIS_MOSS_WOOD) .feature(BYGFeatures.IVIS_MOSS_WOOD)
.addFeature(BYGFeatures.IVIS_MOSS) .feature(BYGFeatures.IVIS_MOSS)
.addFeature(BYGFeatures.IVIS_VINE) .feature(BYGFeatures.IVIS_VINE)
.addFeature(BYGFeatures.IVIS_SPROUT); .feature(BYGFeatures.IVIS_SPROUT);
return def;
} }
} }

View file

@ -124,10 +124,11 @@ public class EndBiomes {
/** /**
* Put integration sub-biome {@link EndBiome} into subbiomes list and registers it. * Put integration sub-biome {@link EndBiome} into subbiomes list and registers it.
* *
* @param biome - {@link EndBiome} instance * @param biomeConfig - {@link EndBiome.Config} instance
* @return registered {@link EndBiome} * @return registered {@link EndBiome}
*/ */
public static EndBiome registerSubBiomeIntegration(EndBiome biome) { public static EndBiome registerSubBiomeIntegration(EndBiome.Config biomeConfig) {
EndBiome biome = EndBiome.create(biomeConfig);
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiome(biome); BiomeAPI.registerBiome(biome);
} }