[Change] Restored BYG Integration Biomes

This commit is contained in:
Frank 2022-07-11 00:09:51 +02:00
parent de7b6afb5d
commit 6c60f422c8
5 changed files with 98 additions and 25 deletions

View file

@ -3,6 +3,7 @@ package org.betterx.betterend.integration.byg;
import org.betterx.bclib.integration.ModIntegration;
import org.betterx.betterend.integration.EndBiomeIntegration;
import org.betterx.betterend.integration.Integrations;
import org.betterx.betterend.integration.byg.biomes.BYGBiomes;
import org.betterx.betterend.integration.byg.features.BYGFeatures;
import org.betterx.worlds.together.tag.v3.CommonBlockTags;
import org.betterx.worlds.together.tag.v3.TagManager;
@ -22,11 +23,11 @@ public class BYGIntegration extends ModIntegration implements EndBiomeIntegratio
}
BYGBlocks.register();
BYGFeatures.register();
//BYGBiomes.register();
BYGBiomes.register();
}
@Override
public void addBiomes() {
//BYGBiomes.addBiomes();
BYGBiomes.addBiomes();
}
}

View file

@ -5,7 +5,10 @@ import org.betterx.betterend.integration.Integrations;
import org.betterx.betterend.registry.EndBiomes;
import org.betterx.betterend.world.biome.EndBiome;
import net.minecraft.world.level.levelgen.SurfaceRules;
public class BYGBiomes {
public static final SurfaceRules.ConditionSource BYG_WATER_CHECK = SurfaceRules.waterBlockCheck(-1, 0);
// New Biomes
public static final EndBiome OLD_BULBIS_GARDENS = EndBiomes.registerSubBiomeIntegration(new OldBulbisGardens());
public static final EndBiome NIGHTSHADE_REDWOODS = EndBiomes.registerSubBiomeIntegration(new NightshadeRedwoods());

View file

@ -2,6 +2,8 @@ package org.betterx.betterend.integration.byg.biomes;
import org.betterx.bclib.BCLib;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.integration.Integrations;
import org.betterx.betterend.integration.byg.features.BYGFeatures;
import org.betterx.betterend.registry.EndFeatures;
@ -16,7 +18,9 @@ import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSpecialEffects;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import net.minecraft.world.level.levelgen.SurfaceRules;
import java.util.List;
@ -38,10 +42,6 @@ public class NightshadeRedwoods extends EndBiome.Config {
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)
@ -84,4 +84,29 @@ public class NightshadeRedwoods extends EndBiome.Config {
});
}
}
@Override
protected SurfaceMaterialProvider surfaceMaterial() {
return new EndBiome.DefaultSurfaceMaterialProvider() {
@Override
public BlockState getTopMaterial() {
return Integrations.BYG.getBlock("nightshade_phylium").defaultBlockState();
}
@Override
public SurfaceRuleBuilder surface() {
return SurfaceRuleBuilder
.start()
.rule(4, SurfaceRules.sequence(SurfaceRules.ifTrue(
BYGBiomes.BYG_WATER_CHECK,
SurfaceRules.ifTrue(
SurfaceRules.ON_FLOOR,
SurfaceRules.state(getTopMaterial())
)
)
)
);
}
};
}
}

View file

@ -2,6 +2,9 @@ package org.betterx.betterend.integration.byg.biomes;
import org.betterx.bclib.BCLib;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.rules.RoughNoiseCondition;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.integration.Integrations;
import org.betterx.betterend.integration.byg.features.BYGFeatures;
import org.betterx.betterend.registry.EndFeatures;
@ -17,12 +20,13 @@ import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSpecialEffects;
import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import net.minecraft.world.level.levelgen.Noises;
import net.minecraft.world.level.levelgen.SurfaceRules;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import java.util.List;
import java.util.function.Supplier;
public class OldBulbisGardens extends EndBiome.Config {
@ -35,12 +39,6 @@ public class OldBulbisGardens extends EndBiome.Config {
Holder<Biome> biome = Integrations.BYG.getBiome("bulbis_gardens");
BiomeSpecialEffects effects = biome.value().getSpecialEffects();
Block ivis = Integrations.BYG.getBlock("ivis_phylium");
// Block origin = biome.value()
// .getGenerationSettings()
// .getSurfaceBuilderConfig()
// .getTopMaterial()
// .getBlock();
builder.fogColor(215, 132, 207)
.fogDensity(1.8F)
.waterAndFogColor(40, 0, 56)
@ -49,8 +47,6 @@ public class OldBulbisGardens extends EndBiome.Config {
ParticleTypes.REVERSE_PORTAL,
0.002F
)
//TODO: 1.18 surface rules
//.surface(ivis, origin)
.feature(EndFeatures.END_LAKE_RARE)
.feature(BYGFeatures.OLD_BULBIS_TREE);
@ -85,12 +81,11 @@ public class OldBulbisGardens extends EndBiome.Config {
List<HolderSet<PlacedFeature>> features = biome.value().getGenerationSettings()
.features();
HolderSet<PlacedFeature> vegetal = features.get(Decoration.VEGETAL_DECORATION.ordinal());
if (vegetal.size() > 2) {
Supplier<PlacedFeature> getter;
//TODO: 1.18.2 BRING BACK FEATURE COPY CODE
for (var placed : vegetal) {
System.out.print(placed);
}
// if (vegetal.size() > 2) {
// Supplier<PlacedFeature> getter;
for (var feature : vegetal) {
builder.feature(Decoration.VEGETAL_DECORATION, feature);
}
// // 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++) {
@ -110,7 +105,7 @@ public class OldBulbisGardens extends EndBiome.Config {
// Holder<PlacedFeature> feature = getter.get();
// builder.feature(Decoration.VEGETAL_DECORATION, feature);
// }
}
// }
builder.feature(EndFeatures.PURPLE_POLYPORE)
.feature(BYGFeatures.IVIS_MOSS_WOOD)
@ -118,4 +113,41 @@ public class OldBulbisGardens extends EndBiome.Config {
.feature(BYGFeatures.IVIS_VINE)
.feature(BYGFeatures.IVIS_SPROUT);
}
@Override
protected SurfaceMaterialProvider surfaceMaterial() {
return new EndBiome.DefaultSurfaceMaterialProvider() {
@Override
public BlockState getTopMaterial() {
return Integrations.BYG.getBlock("ivis_phylium").defaultBlockState();
}
@Override
public BlockState getAltTopMaterial() {
return Integrations.BYG.getBlock("bulbis_phycelium").defaultBlockState();
}
@Override
public SurfaceRuleBuilder surface() {
return SurfaceRuleBuilder
.start()
.rule(4, SurfaceRules.sequence(SurfaceRules.ifTrue(
BYGBiomes.BYG_WATER_CHECK,
SurfaceRules.ifTrue(
SurfaceRules.ON_FLOOR,
SurfaceRules.sequence(
SurfaceRules.ifTrue(
new RoughNoiseCondition(Noises.NETHERRACK, 0.19),
SurfaceRules.state(getTopMaterial())
),
SurfaceRules.state(getAltTopMaterial())
)
)
)
)
);
}
};
}
}

View file

@ -56,14 +56,26 @@ public class BYGFeatures {
8
);
public static final NightshadeRedwoodTreeFeature NIGHTSHADE_REDWOOD_TREE_FEATURE =
EndFeatures.inlineBuild(
"nightshade_redwood_tree",
new NightshadeRedwoodTreeFeature()
);
public static final BCLFeature<NightshadeRedwoodTreeFeature, NoneFeatureConfiguration> NIGHTSHADE_REDWOOD_TREE = redisterVegetation(
"nightshade_redwood_tree",
new NightshadeRedwoodTreeFeature(),
NIGHTSHADE_REDWOOD_TREE_FEATURE,
1
);
public static final BigEtherTreeFeature BIG_ETHER_TREE_FEATURE =
EndFeatures.inlineBuild(
"big_ether_tree",
new BigEtherTreeFeature()
);
public static final BCLFeature<BigEtherTreeFeature, NoneFeatureConfiguration> BIG_ETHER_TREE = redisterVegetation(
"big_ether_tree",
new BigEtherTreeFeature(),
BIG_ETHER_TREE_FEATURE,
1
);