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 NightshadeRedwoods() {
super("nightshade_redwoods");
}
public class NightshadeRedwoods extends EndBiome { @Override
public NightshadeRedwoods() { protected void addCustomBuildData(BCLBiomeBuilder builder) {
super(makeDef()); Biome biome = Integrations.BYG.getBiome("nightshade_forest");
} BiomeSpecialEffects effects = biome.getSpecialEffects();
private static BCLBiomeDef makeDef() { builder.fogColor(140, 108, 47)
Biome biome = Integrations.BYG.getBiome("nightshade_forest"); .fogDensity(1.5F)
BiomeSpecialEffects effects = biome.getSpecialEffects(); .waterAndFogColor(55, 70, 186)
.foliageColor(122, 17, 155)
.particles(
ParticleTypes.REVERSE_PORTAL,
0.002F
)
//TODO: 1.18 surface rules
// .setSurface(biome.getGenerationSettings()
// .getSurfaceBuilder()
// .get())
.grassColor(48, 13, 89)
.plantsColor(200, 125, 9)
.feature(EndFeatures.END_LAKE_RARE)
.feature(BYGFeatures.NIGHTSHADE_REDWOOD_TREE)
.feature(BYGFeatures.NIGHTSHADE_MOSS_WOOD)
.feature(BYGFeatures.NIGHTSHADE_MOSS);
BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("nightshade_redwoods")).setFogColor(140, 108, 47) if (BCLib.isClient()) {
.setFogDensity(1.5F) SoundEvent loop = effects.getAmbientLoopSoundEvent()
.setWaterAndFogColor(55, 70, 186) .get();
.setFoliageColor(122, 17, 155) SoundEvent music = effects.getBackgroundMusic()
.setParticles( .get()
ParticleTypes.REVERSE_PORTAL, .getEvent();
0.002F SoundEvent additions = effects.getAmbientAdditionsSettings()
) .get()
.setSurface(biome.getGenerationSettings() .getSoundEvent();
.getSurfaceBuilder() SoundEvent mood = effects.getAmbientMoodSettings()
.get()) .get()
.setGrassColor(48, 13, 89) .getSoundEvent();
.setPlantsColor(200, 125, 9) builder.loop(loop)
.addFeature(EndFeatures.END_LAKE_RARE) .music(music)
.addFeature(BYGFeatures.NIGHTSHADE_REDWOOD_TREE) .additions(additions)
.addFeature(BYGFeatures.NIGHTSHADE_MOSS_WOOD) .mood(mood);
.addFeature(BYGFeatures.NIGHTSHADE_MOSS); }
biome.getGenerationSettings()
.features()
.forEach((list) -> {
list.forEach((feature) -> {
builder.feature(Decoration.VEGETAL_DECORATION, feature.get());
});
});
if (BCLib.isClient()) { for (MobCategory group : MobCategory.values()) {
SoundEvent loop = effects.getAmbientLoopSoundEvent().get(); List<SpawnerData> list = biome.getMobSettings()
SoundEvent music = effects.getBackgroundMusic().get().getEvent(); .getMobs(group)
SoundEvent additions = effects.getAmbientAdditionsSettings().get().getSoundEvent(); .unwrap();
SoundEvent mood = effects.getAmbientMoodSettings().get().getSoundEvent(); list.forEach((entry) -> {
def.setLoop(loop).setMusic(music).setAdditions(additions).setMood(mood); builder.spawn((EntityType<? extends Mob>) entry.type, 1, entry.minCount, entry.maxCount);
} });
biome.getGenerationSettings().features().forEach((list) -> { }
list.forEach((feature) -> { }
def.addFeature(Decoration.VEGETAL_DECORATION, feature.get());
});
});
for (MobCategory group : MobCategory.values()) {
List<SpawnerData> list = biome.getMobSettings().getMobs(group).unwrap();
list.forEach((entry) -> {
def.addMobSpawn(entry);
});
}
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; public OldBulbisGardens() {
super("old_bulbis_gardens");
}
static { @Override
shadowHEIGHTMAP_SQUARE = Decorators.HEIGHTMAP_SQUARE; protected void addCustomBuildData(BCLBiomeBuilder builder) {
} Biome biome = Integrations.BYG.getBiome("bulbis_gardens");
} BiomeSpecialEffects effects = biome.getSpecialEffects();
public class OldBulbisGardens extends EndBiome { Block ivis = Integrations.BYG.getBlock("ivis_phylium");
public OldBulbisGardens() { // Block origin = biome.getGenerationSettings()
super(makeDef()); // .getSurfaceBuilderConfig()
} // .getTopMaterial()
// .getBlock();
private static BCLBiomeDef makeDef() { builder.fogColor(215, 132, 207)
Biome biome = Integrations.BYG.getBiome("bulbis_gardens"); .fogDensity(1.8F)
BiomeSpecialEffects effects = biome.getSpecialEffects(); .waterAndFogColor(40, 0, 56)
.foliageColor(122, 17, 155)
Block ivis = Integrations.BYG.getBlock("ivis_phylium"); .particles(
Block origin = biome.getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial().getBlock(); ParticleTypes.REVERSE_PORTAL,
BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("old_bulbis_gardens")).setFogColor(215, 132, 207) 0.002F
.setFogDensity(1.8F) )
.setWaterAndFogColor(40, 0, 56) //TODO: 1.18 surface rules
.setFoliageColor(122, 17, 155) //.surface(ivis, origin)
.setParticles( .feature(EndFeatures.END_LAKE_RARE)
ParticleTypes.REVERSE_PORTAL, .feature(BYGFeatures.OLD_BULBIS_TREE);
0.002F
) if (BCLib.isClient()) {
.setSurface(ivis, origin) SoundEvent loop = effects.getAmbientLoopSoundEvent()
.addFeature(EndFeatures.END_LAKE_RARE) .get();
.addFeature(BYGFeatures.OLD_BULBIS_TREE); SoundEvent music = effects.getBackgroundMusic()
.get()
if (BCLib.isClient()) { .getEvent();
SoundEvent loop = effects.getAmbientLoopSoundEvent().get(); SoundEvent additions = effects.getAmbientAdditionsSettings()
SoundEvent music = effects.getBackgroundMusic().get().getEvent(); .get()
SoundEvent additions = effects.getAmbientAdditionsSettings().get().getSoundEvent(); .getSoundEvent();
SoundEvent mood = effects.getAmbientMoodSettings().get().getSoundEvent(); SoundEvent mood = effects.getAmbientMoodSettings()
def.setLoop(loop).setMusic(music).setAdditions(additions).setMood(mood); .get()
} .getSoundEvent();
builder.loop(loop)
for (MobCategory group : MobCategory.values()) { .music(music)
List<SpawnerData> list = biome.getMobSettings().getMobs(group).unwrap(); .additions(additions)
list.forEach((entry) -> { .mood(mood);
def.addMobSpawn(entry); }
});
} for (MobCategory group : MobCategory.values()) {
List<SpawnerData> list = biome.getMobSettings()
List<List<Supplier<ConfiguredFeature<?, ?>>>> features = biome.getGenerationSettings().features(); .getMobs(group)
List<Supplier<ConfiguredFeature<?, ?>>> vegetal = features.get(Decoration.VEGETAL_DECORATION.ordinal()); .unwrap();
if (vegetal.size() > 2) { list.forEach((entry) -> {
Supplier<ConfiguredFeature<?, ?>> getter; builder.spawn((EntityType<? extends Mob>) entry.type, 1, entry.minCount, entry.maxCount);
// Trees (first two features) });
// I couldn't process them with conditions, so that's why they are hardcoded (paulevs) }
for (int i = 0; i < 2; i++) {
getter = vegetal.get(i); List<List<Supplier<PlacedFeature>>> features = biome.getGenerationSettings()
ConfiguredFeature<?, ?> feature = getter.get(); .features();
ResourceLocation id = BetterEnd.makeID("obg_feature_" + i); List<Supplier<PlacedFeature>> vegetal = features.get(Decoration.VEGETAL_DECORATION.ordinal());
feature = Registry.register( if (vegetal.size() > 2) {
BuiltinRegistries.CONFIGURED_FEATURE, Supplier<PlacedFeature> getter;
id, // Trees (first two features)
feature.decorated(FeaturesAccesor.shadowHEIGHTMAP_SQUARE).countRandom(1) // I couldn't process them with conditions, so that's why they are hardcoded (paulevs)
); for (int i = 0; i < 2; i++) {
def.addFeature(Decoration.VEGETAL_DECORATION, feature); getter = vegetal.get(i);
} PlacedFeature feature = getter.get();
// Grasses and other features ResourceLocation id = BetterEnd.makeID("obg_feature_" + i);
for (int i = 2; i < vegetal.size(); i++) { feature = Registry.register(
getter = vegetal.get(i); BuiltinRegistries.PLACED_FEATURE,
ConfiguredFeature<?, ?> feature = getter.get(); id,
def.addFeature(Decoration.VEGETAL_DECORATION, feature); //TODO: 1.18 Check if this is correct
} feature//.decorated(FeaturesAccesor.shadowHEIGHTMAP_SQUARE).countRandom(1)
} );
builder.feature(Decoration.VEGETAL_DECORATION, feature);
def.addFeature(EndFeatures.PURPLE_POLYPORE) }
.addFeature(BYGFeatures.IVIS_MOSS_WOOD) // Grasses and other features
.addFeature(BYGFeatures.IVIS_MOSS) for (int i = 2; i < vegetal.size(); i++) {
.addFeature(BYGFeatures.IVIS_VINE) getter = vegetal.get(i);
.addFeature(BYGFeatures.IVIS_SPROUT); PlacedFeature feature = getter.get();
builder.feature(Decoration.VEGETAL_DECORATION, feature);
return def; }
} }
builder.feature(EndFeatures.PURPLE_POLYPORE)
.feature(BYGFeatures.IVIS_MOSS_WOOD)
.feature(BYGFeatures.IVIS_MOSS)
.feature(BYGFeatures.IVIS_VINE)
.feature(BYGFeatures.IVIS_SPROUT);
}
} }

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);
} }