Biome def switch

This commit is contained in:
paulevsGitch 2021-06-07 14:19:22 +03:00
parent ff4ef86c6d
commit 1ad72cbe88
44 changed files with 170 additions and 284 deletions

View file

@ -17,5 +17,5 @@ archives_base_name = better-end
patchouli_version = 50-FABRIC patchouli_version = 50-FABRIC
fabric_version = 0.32.9+1.16 fabric_version = 0.32.9+1.16
canvas_version = 1.0.+ canvas_version = 1.0.+
bclib_version = 0.1.19 bclib_version = 0.1.24
rei_version = 5.8.10 rei_version = 5.8.10

View file

@ -1,5 +1,7 @@
package ru.betterend.client; package ru.betterend.client;
import java.util.List;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
@ -20,9 +22,12 @@ import ru.betterend.events.ItemTooltipCallback;
import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.IRenderTypeable;
import ru.betterend.interfaces.MultiModelItem; import ru.betterend.interfaces.MultiModelItem;
import ru.betterend.item.CrystaliteArmor; import ru.betterend.item.CrystaliteArmor;
import ru.betterend.registry.*; import ru.betterend.registry.EndBlockEntityRenders;
import ru.betterend.registry.EndBlocks;
import java.util.List; import ru.betterend.registry.EndEntitiesRenders;
import ru.betterend.registry.EndModelProviders;
import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndScreens;
public class BetterEndClient implements ClientModInitializer { public class BetterEndClient implements ClientModInitializer {
@Override @Override

View file

@ -7,10 +7,10 @@ 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 ru.bclib.world.biomes.BCLBiomeDef;
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.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class EterialGrove extends EndBiome { public class EterialGrove extends EndBiome {
@ -18,11 +18,11 @@ public class EterialGrove extends EndBiome {
super(makeDef()); super(makeDef());
} }
private static BiomeDefinition makeDef() { private static BCLBiomeDef makeDef() {
Biome biome = Integrations.BYG.getBiome("ethereal_islands"); Biome biome = Integrations.BYG.getBiome("ethereal_islands");
BiomeSpecialEffects effects = biome.getSpecialEffects(); BiomeSpecialEffects effects = biome.getSpecialEffects();
BiomeDefinition def = (BiomeDefinition) new BiomeDefinition("eterial_grove") BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("eterial_grove"))
.setSurface(biome.getGenerationSettings().getSurfaceBuilder().get()) .setSurface(biome.getGenerationSettings().getSurfaceBuilder().get())
.addFeature(BYGFeatures.BIG_ETHER_TREE); .addFeature(BYGFeatures.BIG_ETHER_TREE);

View file

@ -9,11 +9,11 @@ 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.world.biomes.BCLBiomeDef;
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.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class NightshadeRedwoods extends EndBiome { public class NightshadeRedwoods extends EndBiome {
@ -21,11 +21,11 @@ public class NightshadeRedwoods extends EndBiome {
super(makeDef()); super(makeDef());
} }
private static BiomeDefinition makeDef() { private static BCLBiomeDef makeDef() {
Biome biome = Integrations.BYG.getBiome("nightshade_forest"); Biome biome = Integrations.BYG.getBiome("nightshade_forest");
BiomeSpecialEffects effects = biome.getSpecialEffects(); BiomeSpecialEffects effects = biome.getSpecialEffects();
BiomeDefinition def = (BiomeDefinition) new BiomeDefinition("nightshade_redwoods") BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("nightshade_redwoods"))
.setFogColor(140, 108, 47) .setFogColor(140, 108, 47)
.setFogDensity(1.5F) .setFogDensity(1.5F)
.setWaterAndFogColor(55, 70, 186) .setWaterAndFogColor(55, 70, 186)

View file

@ -16,11 +16,11 @@ 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.feature.ConfiguredFeature;
import ru.bclib.world.biomes.BCLBiomeDef;
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.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class OldBulbisGardens extends EndBiome { public class OldBulbisGardens extends EndBiome {
@ -28,13 +28,13 @@ public class OldBulbisGardens extends EndBiome {
super(makeDef()); super(makeDef());
} }
private static BiomeDefinition makeDef() { private static BCLBiomeDef makeDef() {
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().getSurfaceBuilderConfig().getTopMaterial().getBlock();
BiomeDefinition def = (BiomeDefinition) new BiomeDefinition("old_bulbis_gardens") BCLBiomeDef def = new BCLBiomeDef(BetterEnd.makeID("old_bulbis_gardens"))
.setFogColor(215, 132, 207) .setFogColor(215, 132, 207)
.setFogDensity(1.8F) .setFogDensity(1.8F)
.setWaterAndFogColor(40, 0, 56) .setWaterAndFogColor(40, 0, 56)

View file

@ -1,6 +1,10 @@
package ru.betterend.integration.rei; package ru.betterend.integration.rei;
import java.util.List;
import java.util.stream.Collectors;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.api.RecipeHelper;
import me.shedaniel.rei.api.plugins.REIPluginV0; import me.shedaniel.rei.api.plugins.REIPluginV0;
@ -19,9 +23,6 @@ import ru.betterend.recipe.builders.AnvilRecipe;
import ru.betterend.recipe.builders.InfusionRecipe; import ru.betterend.recipe.builders.InfusionRecipe;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import java.util.List;
import java.util.stream.Collectors;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class REIPlugin implements REIPluginV0 { public class REIPlugin implements REIPluginV0 {

View file

@ -1,123 +0,0 @@
package ru.betterend.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.Util;
import net.minecraft.client.Camera;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.renderer.FogRenderer;
import net.minecraft.util.Mth;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
import net.minecraft.world.level.material.FluidState;
import ru.bclib.api.BiomeAPI;
import ru.bclib.world.biomes.BCLBiome;
import ru.betterend.client.ClientOptions;
import ru.betterend.util.BackgroundInfo;
@Mixin(FogRenderer.class)
public class BackgroundRendererMixin {
private static float lastFogDensity;
private static float fogDensity;
private static float lerp;
private static long time;
@Shadow
private static float fogRed;
@Shadow
private static float fogGreen;
@Shadow
private static float fogBlue;
@Inject(method = "setupColor", at = @At("RETURN"))
private static void be_onRender(Camera camera, float tickDelta, ClientLevel world, int i, float f, CallbackInfo info) {
long l = Util.getMillis() - time;
time += l;
lerp += l * 0.001F;
if (lerp > 1) lerp = 1;
FluidState fluidState = camera.getFluidInCamera();
if (fluidState.isEmpty() && world.dimension().equals(Level.END)) {
Entity entity = camera.getEntity();
boolean skip = false;
if (entity instanceof LivingEntity) {
MobEffectInstance effect = ((LivingEntity) entity).getEffect(MobEffects.NIGHT_VISION);
skip = effect != null && effect.getDuration() > 0;
}
if (!skip) {
fogRed *= 4;
fogGreen *= 4;
fogBlue *= 4;
}
}
BackgroundInfo.red = fogRed;
BackgroundInfo.green = fogGreen;
BackgroundInfo.blue = fogBlue;
}
@Inject(method = "setupFog", at = @At("HEAD"), cancellable = true)
private static void be_fogDensity(Camera camera, FogRenderer.FogMode fogType, float viewDistance, boolean thickFog, CallbackInfo info) {
Entity entity = camera.getEntity();
Biome biome = entity.level.getBiome(entity.blockPosition());
FluidState fluidState = camera.getFluidInCamera();
if (ClientOptions.useFogDensity() && biome.getBiomeCategory() == BiomeCategory.THEEND && fluidState.isEmpty()) {
BCLBiome endBiome = BiomeAPI.getRenderBiome(biome);
if (fogDensity == 0) {
fogDensity = endBiome.getFogDensity();
lastFogDensity = fogDensity;
}
if (lerp == 1) {
lastFogDensity = fogDensity;
fogDensity = endBiome.getFogDensity();
lerp = 0;
}
float fog = Mth.lerp(lerp, lastFogDensity, fogDensity);
BackgroundInfo.fog = fog;
float start = viewDistance * 0.75F / fog;
float end = viewDistance / fog;
if (entity instanceof LivingEntity) {
LivingEntity le = (LivingEntity) entity;
MobEffectInstance effect = le.getEffect(MobEffects.BLINDNESS);
if (effect != null) {
int duration = effect.getDuration();
if (duration > 20) {
start = 0;
end *= 0.03F;
BackgroundInfo.blindness = 1;
}
else {
float delta = (float) duration / 20F;
BackgroundInfo.blindness = delta;
start = Mth.lerp(delta, start, 0);
end = Mth.lerp(delta, end, end * 0.03F);
}
}
else {
BackgroundInfo.blindness = 0;
}
}
RenderSystem.fogStart(start);
RenderSystem.fogEnd(end);
RenderSystem.fogMode(GlStateManager.FogMode.LINEAR);
RenderSystem.setupNvFogDistance();
info.cancel();
}
}
}

View file

@ -29,10 +29,10 @@ import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.RenderBuffers; import net.minecraft.client.renderer.RenderBuffers;
import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import ru.bclib.util.BackgroundInfo;
import ru.bclib.util.MHelper; import ru.bclib.util.MHelper;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.client.ClientOptions; import ru.betterend.client.ClientOptions;
import ru.betterend.util.BackgroundInfo;
@Mixin(LevelRenderer.class) @Mixin(LevelRenderer.class)
public class WorldRendererMixin { public class WorldRendererMixin {
@ -149,11 +149,11 @@ public class WorldRendererMixin {
matrices.popPose(); matrices.popPose();
} }
float a = (BackgroundInfo.fog - 1F); float a = (BackgroundInfo.fogDensity - 1F);
if (a > 0) { if (a > 0) {
if (a > 1) a = 1; if (a > 1) a = 1;
textureManager.bind(FOG); textureManager.bind(FOG);
be_renderBuffer(matrices, fog, DefaultVertexFormat.POSITION_TEX, BackgroundInfo.red, BackgroundInfo.green, BackgroundInfo.blue, a); be_renderBuffer(matrices, fog, DefaultVertexFormat.POSITION_TEX, BackgroundInfo.fogColorRed, BackgroundInfo.fogColorGreen, BackgroundInfo.fogColorBlue, a);
} }
RenderSystem.disableTexture(); RenderSystem.disableTexture();

View file

@ -268,6 +268,7 @@ public class EndBiomes {
public static EndBiome registerSubBiome(Biome biome, EndBiome parent, float fogDensity, float genChance, boolean hasCaves) { public static EndBiome registerSubBiome(Biome biome, EndBiome parent, float fogDensity, float genChance, boolean hasCaves) {
EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getKey(biome), biome, fogDensity, genChance, hasCaves); EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getKey(biome), biome, fogDensity, genChance, hasCaves);
if (Configs.BIOME_CONFIG.getBoolean(endBiome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(endBiome.getID(), "enabled", true)) {
BiomeAPI.registerBiome(endBiome);
parent.addSubBiome(endBiome); parent.addSubBiome(endBiome);
SUBBIOMES.add(endBiome); SUBBIOMES.add(endBiome);
SUBBIOMES_UNMUTABLES.add(endBiome.getID()); SUBBIOMES_UNMUTABLES.add(endBiome.getID());
@ -284,7 +285,7 @@ public class EndBiomes {
*/ */
public static EndBiome registerSubBiome(EndBiome biome, EndBiome parent) { public static EndBiome registerSubBiome(EndBiome biome, EndBiome parent) {
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiomeDirectly(biome); BiomeAPI.registerBiome(biome);
parent.addSubBiome(biome); parent.addSubBiome(biome);
SUBBIOMES.add(biome); SUBBIOMES.add(biome);
SUBBIOMES_UNMUTABLES.add(biome.getID()); SUBBIOMES_UNMUTABLES.add(biome.getID());
@ -302,7 +303,7 @@ public class EndBiomes {
*/ */
public static EndBiome registerBiome(EndBiome biome, BiomeType type) { public static EndBiome registerBiome(EndBiome biome, BiomeType type) {
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiomeDirectly(biome); BiomeAPI.registerBiome(biome);
addToPicker(biome, type); addToPicker(biome, type);
ID_MAP.put(biome.getID(), biome); ID_MAP.put(biome.getID(), biome);
if (type == BiomeType.LAND) { if (type == BiomeType.LAND) {
@ -322,7 +323,7 @@ public class EndBiomes {
*/ */
public static EndBiome registerSubBiomeIntegration(EndBiome biome) { public static EndBiome registerSubBiomeIntegration(EndBiome biome) {
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiomeDirectly(biome); BiomeAPI.registerBiome(biome);
SUBBIOMES.add(biome); SUBBIOMES.add(biome);
SUBBIOMES_UNMUTABLES.add(biome.getID()); SUBBIOMES_UNMUTABLES.add(biome.getID());
ID_MAP.put(biome.getID(), biome); ID_MAP.put(biome.getID(), biome);
@ -364,7 +365,7 @@ public class EndBiomes {
public static EndCaveBiome registerCaveBiome(EndCaveBiome biome) { public static EndCaveBiome registerCaveBiome(EndCaveBiome biome) {
if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) { if (Configs.BIOME_CONFIG.getBoolean(biome.getID(), "enabled", true)) {
BiomeAPI.registerBiomeDirectly(biome); BiomeAPI.registerBiome(biome);
CAVE_BIOMES.addBiome(biome); CAVE_BIOMES.addBiome(biome);
ID_MAP.put(biome.getID(), biome); ID_MAP.put(biome.getID(), biome);
} }

View file

@ -7,7 +7,11 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EndStoneSmelter;
import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.blocks.basis.PedestalBlock;
import ru.betterend.blocks.entities.*; import ru.betterend.blocks.entities.BlockEntityHydrothermalVent;
import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity;
import ru.betterend.blocks.entities.EternalPedestalEntity;
import ru.betterend.blocks.entities.InfusionPedestalEntity;
import ru.betterend.blocks.entities.PedestalBlockEntity;
public class EndBlockEntities { public class EndBlockEntities {
public final static BlockEntityType<EndStoneSmelterBlockEntity> END_STONE_SMELTER = registerBlockEntity(EndStoneSmelter.ID, public final static BlockEntityType<EndStoneSmelterBlockEntity> END_STONE_SMELTER = registerBlockEntity(EndStoneSmelter.ID,

View file

@ -1,5 +1,10 @@
package ru.betterend.registry; package ru.betterend.registry;
import java.util.List;
import java.util.stream.Collectors;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
@ -7,7 +12,6 @@ import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.material.MaterialColor;
import org.jetbrains.annotations.NotNull;
import ru.bclib.blocks.BaseBarrelBlock; import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseChestBlock; import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseFurnaceBlock;
@ -16,16 +20,34 @@ import ru.bclib.registry.BaseBlockEntities;
import ru.bclib.registry.BlocksRegistry; import ru.bclib.registry.BlocksRegistry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.blocks.*; import ru.betterend.blocks.*;
import ru.betterend.blocks.basis.*; import ru.betterend.blocks.basis.EndCropBlock;
import ru.betterend.blocks.complex.*; import ru.betterend.blocks.basis.EndFurnaceBlock;
import ru.betterend.blocks.basis.EndLeavesBlock;
import ru.betterend.blocks.basis.EndOreBlock;
import ru.betterend.blocks.basis.EndPathBlock;
import ru.betterend.blocks.basis.EndPillarBlock;
import ru.betterend.blocks.basis.EndSlabBlock;
import ru.betterend.blocks.basis.EndStairsBlock;
import ru.betterend.blocks.basis.EndTerrainBlock;
import ru.betterend.blocks.basis.EndUnderwaterWallPlantBlock;
import ru.betterend.blocks.basis.EndWallPlantBlock;
import ru.betterend.blocks.basis.FurBlock;
import ru.betterend.blocks.basis.SimpleLeavesBlock;
import ru.betterend.blocks.basis.StalactiteBlock;
import ru.betterend.blocks.basis.StoneLanternBlock;
import ru.betterend.blocks.basis.TripleTerrainBlock;
import ru.betterend.blocks.basis.VineBlock;
import ru.betterend.blocks.basis.WallMushroomBlock;
import ru.betterend.blocks.complex.ColoredMaterial;
import ru.betterend.blocks.complex.CrystalSubblocksMaterial;
import ru.betterend.blocks.complex.MetalMaterial;
import ru.betterend.blocks.complex.StoneMaterial;
import ru.betterend.blocks.complex.WoodenMaterial;
import ru.betterend.config.Configs; import ru.betterend.config.Configs;
import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndArmorMaterial;
import ru.betterend.item.material.EndToolMaterial; import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.tab.CreativeTabs; import ru.betterend.tab.CreativeTabs;
import java.util.List;
import java.util.stream.Collectors;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class EndBlocks extends BlocksRegistry { public class EndBlocks extends BlocksRegistry {
// Terrain // // Terrain //

View file

@ -18,12 +18,11 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.levelgen.placement.FeatureDecorator; import net.minecraft.world.level.levelgen.placement.FeatureDecorator;
import ru.bclib.api.BiomeAPI; import ru.bclib.api.BiomeAPI;
import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.BCLFeature;
import ru.bclib.world.features.DefaultFeature; import ru.bclib.world.features.DefaultFeature;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.blocks.complex.StoneMaterial; import ru.betterend.blocks.complex.StoneMaterial;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.features.BiomeIslandFeature; import ru.betterend.world.features.BiomeIslandFeature;
import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.BlueVineFeature;
import ru.betterend.world.features.CavePumpkinFeature; import ru.betterend.world.features.CavePumpkinFeature;
@ -298,13 +297,11 @@ public class EndFeatures {
addFeature(CRASHED_SHIP, features); addFeature(CRASHED_SHIP, features);
BCLBiome bclbiome = BiomeAPI.getBiome(id); BCLBiome bclbiome = BiomeAPI.getBiome(id);
if (bclbiome instanceof EndBiome) { boolean hasCaves = bclbiome.getCustomData("has_caves", true);
EndBiome endBiome = (EndBiome) bclbiome; if (hasCaves && !EndBiomes.VOID_BIOMES.containsImmutable(id)) {
if (endBiome.hasCaves() && !EndBiomes.VOID_BIOMES.containsImmutable(id)) {
addFeature(ROUND_CAVE, features); addFeature(ROUND_CAVE, features);
addFeature(TUNEL_CAVE, features); addFeature(TUNEL_CAVE, features);
} }
}
BCLFeature feature = BiomeAPI.getBiome(id).getStructuresFeature(); BCLFeature feature = BiomeAPI.getBiome(id).getStructuresFeature();
if (feature != null) { if (feature != null) {
@ -312,13 +309,14 @@ public class EndFeatures {
} }
} }
public static void addDefaultFeatures(BiomeDefinition def) { public static void addDefaultFeatures(BCLBiomeDef def) {
def.addFeature(FLAVOLITE_LAYER); def.addFeature(FLAVOLITE_LAYER);
def.addFeature(THALLASIUM_ORE); def.addFeature(THALLASIUM_ORE);
def.addFeature(ENDER_ORE); def.addFeature(ENDER_ORE);
def.addFeature(CRASHED_SHIP); def.addFeature(CRASHED_SHIP);
if (def.hasCaves()) { boolean hasCaves = def.getCustomData("has_caves", true);
if (hasCaves) {
def.addFeature(ROUND_CAVE); def.addFeature(ROUND_CAVE);
def.addFeature(TUNEL_CAVE); def.addFeature(TUNEL_CAVE);
} }

View file

@ -1,5 +1,7 @@
package ru.betterend.registry; package ru.betterend.registry;
import java.util.List;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
@ -39,8 +41,6 @@ import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.item.tool.EndHammerItem; import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.tab.CreativeTabs; import ru.betterend.tab.CreativeTabs;
import java.util.List;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class EndItems extends ItemsRegistry { public class EndItems extends ItemsRegistry {
// Materials // // Materials //

View file

@ -1,6 +1,10 @@
package ru.betterend.registry; package ru.betterend.registry;
import java.util.List;
import java.util.function.Supplier;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.api.tag.TagRegistry;
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl; import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler; import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler;
@ -29,9 +33,6 @@ import ru.betterend.blocks.basis.VineBlock;
import ru.betterend.item.tool.EndHammerItem; import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.mixin.common.ComposterBlockAccessor; import ru.betterend.mixin.common.ComposterBlockAccessor;
import java.util.List;
import java.util.function.Supplier;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class EndTags { public class EndTags {
// Table with common (c) tags: // Table with common (c) tags:

View file

@ -1,9 +0,0 @@
package ru.betterend.util;
public class BackgroundInfo {
public static float red;
public static float green;
public static float blue;
public static float fog = 1;
public static float blindness;
}

View file

@ -1,33 +0,0 @@
package ru.betterend.world.biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.world.structures.EndStructureFeature;
public class BiomeDefinition extends BCLBiomeDef {
private boolean hasCaves = true;
public BiomeDefinition(String name) {
super(BetterEnd.makeID(name));
this.endBiome();
}
public BiomeDefinition setCaveBiome() {
this.setCategory(BiomeCategory.NONE);
return this;
}
public BiomeDefinition setCaves(boolean hasCaves) {
this.hasCaves = hasCaves;
return this;
}
public boolean hasCaves() {
return hasCaves;
}
public BCLBiomeDef addStructureFeature(EndStructureFeature structure) {
return addStructureFeature(structure.getFeatureConfigured());
}
}

View file

@ -3,22 +3,16 @@ package ru.betterend.world.biome;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biome;
import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.config.Configs; import ru.betterend.config.Configs;
public class EndBiome extends BCLBiome { public class EndBiome extends BCLBiome {
private final boolean hasCaves; public EndBiome(BCLBiomeDef definition) {
public EndBiome(BiomeDefinition definition) {
super(definition.loadConfigValues(Configs.BIOME_CONFIG)); super(definition.loadConfigValues(Configs.BIOME_CONFIG));
this.hasCaves = Configs.BIOME_CONFIG.getBoolean(mcID, "has_caves", definition.hasCaves());
} }
public EndBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance, boolean hasCaves) { public EndBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance, boolean hasCaves) {
super(id, biome, fogDensity, genChance); super(id, biome, fogDensity, genChance);
this.hasCaves = Configs.BIOME_CONFIG.getBoolean(mcID, "has_caves", hasCaves); this.addCustomData("has_caves", hasCaves);
}
public boolean hasCaves() {
return hasCaves;
} }
} }

View file

@ -1,17 +1,18 @@
package ru.betterend.world.biome.air; package ru.betterend.world.biome.air;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class BiomeIceStarfield extends EndBiome { public class BiomeIceStarfield extends EndBiome {
public BiomeIceStarfield() { public BiomeIceStarfield() {
super((BiomeDefinition) new BiomeDefinition("ice_starfield") super(new BCLBiomeDef(BetterEnd.makeID("ice_starfield"))
.setCaves(false) .addCustomData("has_caves", false)
.addStructureFeature(EndStructures.GIANT_ICE_STAR) .addStructureFeature(EndStructures.GIANT_ICE_STAR.getFeatureConfigured())
.setFogColor(224, 245, 254) .setFogColor(224, 245, 254)
.setTemperature(0F) .setTemperature(0F)
.setFogDensity(2.2F) .setFogDensity(2.2F)

View file

@ -1,12 +1,13 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.BiomeDefinition;
public class EmptyAuroraCaveBiome extends EndCaveBiome { public class EmptyAuroraCaveBiome extends EndCaveBiome {
public EmptyAuroraCaveBiome() { public EmptyAuroraCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("empty_aurora_cave") super(new BCLBiomeDef(BetterEnd.makeID("empty_aurora_cave"))
.setFogColor(150, 30, 68) .setFogColor(150, 30, 68)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setPlantsColor(108, 25, 46) .setPlantsColor(108, 25, 46)

View file

@ -1,11 +1,12 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.world.biome.BiomeDefinition;
public class EmptyEndCaveBiome extends EndCaveBiome { public class EmptyEndCaveBiome extends EndCaveBiome {
public EmptyEndCaveBiome() { public EmptyEndCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("empty_end_cave").setFogDensity(2.0F)); super(new BCLBiomeDef(BetterEnd.makeID("empty_end_cave")).setFogDensity(2.0F));
this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE, 1); this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE, 1);
this.addCeilFeature(EndFeatures.END_STONE_STALACTITE, 1); this.addCeilFeature(EndFeatures.END_STONE_STALACTITE, 1);
} }

View file

@ -1,12 +1,13 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.BiomeDefinition;
public class EmptySmaragdantCaveBiome extends EndCaveBiome { public class EmptySmaragdantCaveBiome extends EndCaveBiome {
public EmptySmaragdantCaveBiome() { public EmptySmaragdantCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("empty_smaragdant_cave") super(new BCLBiomeDef(BetterEnd.makeID("empty_smaragdant_cave"))
.setFogColor(0, 253, 182) .setFogColor(0, 253, 182)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setPlantsColor(0, 131, 145) .setPlantsColor(0, 131, 145)

View file

@ -4,13 +4,14 @@ import java.util.Random;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.ai.behavior.WeightedList; import net.minecraft.world.entity.ai.behavior.WeightedList;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.Feature;
import ru.bclib.api.BiomeAPI; import ru.bclib.api.BiomeAPI;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.BCLFeature;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature; import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature;
@ -18,16 +19,16 @@ public class EndCaveBiome extends EndBiome {
private WeightedList<Feature<?>> floorFeatures = new WeightedList<Feature<?>>(); private WeightedList<Feature<?>> floorFeatures = new WeightedList<Feature<?>>();
private WeightedList<Feature<?>> ceilFeatures = new WeightedList<Feature<?>>(); private WeightedList<Feature<?>> ceilFeatures = new WeightedList<Feature<?>>();
public EndCaveBiome(BiomeDefinition definition) { public EndCaveBiome(BCLBiomeDef definition) {
super(makeDef(definition)); super(makeDef(definition));
} }
private static BiomeDefinition makeDef(BiomeDefinition definition) { private static BCLBiomeDef makeDef(BCLBiomeDef definition) {
BCLFeature feature = BCLFeature.makeChunkFeature( BCLFeature feature = BCLFeature.makeChunkFeature(
BetterEnd.makeID(definition.getID().getPath() + "_cave_populator"), BetterEnd.makeID(definition.getID().getPath() + "_cave_populator"),
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(definition.getID())) new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(definition.getID()))
); );
definition.setCaveBiome().addFeature(feature); definition.setCategory(BiomeCategory.NONE).addFeature(feature);
definition.setMusic(EndSounds.MUSIC_CAVES); definition.setMusic(EndSounds.MUSIC_CAVES);
definition.setLoop(EndSounds.AMBIENT_CAVES); definition.setLoop(EndSounds.AMBIENT_CAVES);
return definition; return definition;

View file

@ -3,9 +3,10 @@ package ru.betterend.world.biome.cave;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.noise.OpenSimplexNoise;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.world.biome.BiomeDefinition;
public class JadeCaveBiome extends EndCaveBiome { public class JadeCaveBiome extends EndCaveBiome {
private static final OpenSimplexNoise WALL_NOISE = new OpenSimplexNoise("jade_cave".hashCode()); private static final OpenSimplexNoise WALL_NOISE = new OpenSimplexNoise("jade_cave".hashCode());
@ -13,7 +14,7 @@ public class JadeCaveBiome extends EndCaveBiome {
private static final BlockState[] JADE = new BlockState[3]; private static final BlockState[] JADE = new BlockState[3];
public JadeCaveBiome() { public JadeCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("jade_cave") super(new BCLBiomeDef(BetterEnd.makeID("jade_cave"))
.setFogColor(118, 150, 112) .setFogColor(118, 150, 112)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setWaterAndFogColor(95, 223, 255) .setWaterAndFogColor(95, 223, 255)

View file

@ -2,16 +2,17 @@ package ru.betterend.world.biome.cave;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties;
import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.BlockProperties.TripleShape;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.BiomeDefinition;
public class LushAuroraCaveBiome extends EndCaveBiome { public class LushAuroraCaveBiome extends EndCaveBiome {
public LushAuroraCaveBiome() { public LushAuroraCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("lush_aurora_cave") super(new BCLBiomeDef(BetterEnd.makeID("lush_aurora_cave"))
.setFogColor(150, 30, 68) .setFogColor(150, 30, 68)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setPlantsColor(108, 25, 46) .setPlantsColor(108, 25, 46)

View file

@ -1,13 +1,14 @@
package ru.betterend.world.biome.cave; package ru.betterend.world.biome.cave;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.world.biome.BiomeDefinition;
public class LushSmaragdantCaveBiome extends EndCaveBiome { public class LushSmaragdantCaveBiome extends EndCaveBiome {
public LushSmaragdantCaveBiome() { public LushSmaragdantCaveBiome() {
super((BiomeDefinition) new BiomeDefinition("lush_smaragdant_cave") super(new BCLBiomeDef(BetterEnd.makeID("lush_smaragdant_cave"))
.setFogColor(0, 253, 182) .setFogColor(0, 253, 182)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setPlantsColor(0, 131, 145) .setPlantsColor(0, 131, 145)

View file

@ -2,17 +2,18 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class AmberLandBiome extends EndBiome { public class AmberLandBiome extends EndBiome {
public AmberLandBiome() { public AmberLandBiome() {
super((BiomeDefinition) new BiomeDefinition("amber_land") super(new BCLBiomeDef(BetterEnd.makeID("amber_land"))
.setFogColor(255, 184, 71) .setFogColor(255, 184, 71)
.setFogDensity(2.0F) .setFogDensity(2.0F)
.setPlantsColor(219, 115, 38) .setPlantsColor(219, 115, 38)

View file

@ -1,17 +1,18 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class BlossomingSpiresBiome extends EndBiome { public class BlossomingSpiresBiome extends EndBiome {
public BlossomingSpiresBiome() { public BlossomingSpiresBiome() {
super((BiomeDefinition) new BiomeDefinition("blossoming_spires") super(new BCLBiomeDef(BetterEnd.makeID("blossoming_spires"))
.setCaves(false) .addCustomData("has_caves", false)
.setFogColor(241, 146, 229) .setFogColor(241, 146, 229)
.setFogDensity(1.7F) .setFogDensity(1.7F)
.setPlantsColor(122, 45, 122) .setPlantsColor(122, 45, 122)

View file

@ -5,16 +5,17 @@ import net.minecraft.data.worldgen.Features;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class ChorusForestBiome extends EndBiome { public class ChorusForestBiome extends EndBiome {
public ChorusForestBiome() { public ChorusForestBiome() {
super((BiomeDefinition) new BiomeDefinition("chorus_forest") super(new BCLBiomeDef(BetterEnd.makeID("chorus_forest"))
.setFogColor(87, 26, 87) .setFogColor(87, 26, 87)
.setFogDensity(1.5F) .setFogDensity(1.5F)
.setPlantsColor(122, 45, 122) .setPlantsColor(122, 45, 122)

View file

@ -1,17 +1,18 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class CrystalMountainsBiome extends EndBiome { public class CrystalMountainsBiome extends EndBiome {
public CrystalMountainsBiome() { public CrystalMountainsBiome() {
super((BiomeDefinition) new BiomeDefinition("crystal_mountains") super(new BCLBiomeDef(BetterEnd.makeID("crystal_mountains"))
.addStructureFeature(EndStructures.MOUNTAIN) .addStructureFeature(EndStructures.MOUNTAIN.getFeatureConfigured())
.setPlantsColor(255, 133, 211) .setPlantsColor(255, 133, 211)
.setSurface(EndBlocks.CRYSTAL_MOSS) .setSurface(EndBlocks.CRYSTAL_MOSS)
.setMusic(EndSounds.MUSIC_OPENSPACE) .setMusic(EndSounds.MUSIC_OPENSPACE)

View file

@ -1,16 +1,17 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DragonGraveyardsBiome extends EndBiome { public class DragonGraveyardsBiome extends EndBiome {
public DragonGraveyardsBiome() { public DragonGraveyardsBiome() {
super((BiomeDefinition) new BiomeDefinition("dragon_graveyards") super(new BCLBiomeDef(BetterEnd.makeID("dragon_graveyards"))
.setGenChance(0.1F) .setGenChance(0.1F)
.setFogColor(244, 46, 79) .setFogColor(244, 46, 79)
.setFogDensity(1.3F) .setFogDensity(1.3F)

View file

@ -2,15 +2,16 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DryShrublandBiome extends EndBiome { public class DryShrublandBiome extends EndBiome {
public DryShrublandBiome() { public DryShrublandBiome() {
super((BiomeDefinition) new BiomeDefinition("dry_shrubland") super(new BCLBiomeDef(BetterEnd.makeID("dry_shrubland"))
.setFogColor(132, 35, 13) .setFogColor(132, 35, 13)
.setFogDensity(1.2F) .setFogDensity(1.2F)
.setWaterAndFogColor(113, 88, 53) .setWaterAndFogColor(113, 88, 53)

View file

@ -3,14 +3,15 @@ package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class DustWastelandsBiome extends EndBiome { public class DustWastelandsBiome extends EndBiome {
public DustWastelandsBiome() { public DustWastelandsBiome() {
super((BiomeDefinition) new BiomeDefinition("dust_wastelands") super(new BCLBiomeDef(BetterEnd.makeID("dust_wastelands"))
.setFogColor(226, 239, 168) .setFogColor(226, 239, 168)
.setFogDensity(2) .setFogDensity(2)
.setWaterAndFogColor(192, 180, 131) .setWaterAndFogColor(192, 180, 131)

View file

@ -2,19 +2,20 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class FoggyMushroomlandBiome extends EndBiome { public class FoggyMushroomlandBiome extends EndBiome {
public FoggyMushroomlandBiome() { public FoggyMushroomlandBiome() {
super((BiomeDefinition) new BiomeDefinition("foggy_mushroomland") super(new BCLBiomeDef(BetterEnd.makeID("foggy_mushroomland"))
.addStructureFeature(EndStructures.GIANT_MOSSY_GLOWSHROOM) .addStructureFeature(EndStructures.GIANT_MOSSY_GLOWSHROOM.getFeatureConfigured())
.setPlantsColor(73, 210, 209) .setPlantsColor(73, 210, 209)
.setFogColor(41, 122, 173) .setFogColor(41, 122, 173)
.setFogDensity(3) .setFogDensity(3)

View file

@ -2,16 +2,17 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class GlowingGrasslandsBiome extends EndBiome { public class GlowingGrasslandsBiome extends EndBiome {
public GlowingGrasslandsBiome() { public GlowingGrasslandsBiome() {
super((BiomeDefinition) new BiomeDefinition("glowing_grasslands") super(new BCLBiomeDef(BetterEnd.makeID("glowing_grasslands"))
.setFogColor(99, 228, 247) .setFogColor(99, 228, 247)
.setFogDensity(1.3F) .setFogDensity(1.3F)
.setParticles(EndParticles.FIREFLY, 0.001F) .setParticles(EndParticles.FIREFLY, 0.001F)

View file

@ -2,16 +2,17 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class LanternWoodsBiome extends EndBiome { public class LanternWoodsBiome extends EndBiome {
public LanternWoodsBiome() { public LanternWoodsBiome() {
super((BiomeDefinition) new BiomeDefinition("lantern_woods") super(new BCLBiomeDef(BetterEnd.makeID("lantern_woods"))
.setFogColor(189, 82, 70) .setFogColor(189, 82, 70)
.setFogDensity(1.1F) .setFogDensity(1.1F)
.setWaterAndFogColor(171, 234, 226) .setWaterAndFogColor(171, 234, 226)

View file

@ -1,18 +1,19 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class MegalakeBiome extends EndBiome { public class MegalakeBiome extends EndBiome {
public MegalakeBiome() { public MegalakeBiome() {
super((BiomeDefinition) new BiomeDefinition("megalake") super(new BCLBiomeDef(BetterEnd.makeID("megalake"))
.addStructureFeature(EndStructures.MEGALAKE) .addStructureFeature(EndStructures.MEGALAKE.getFeatureConfigured())
.setPlantsColor(73, 210, 209) .setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248) .setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255) .setWaterAndFogColor(96, 163, 255)

View file

@ -1,19 +1,20 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class MegalakeGroveBiome extends EndBiome { public class MegalakeGroveBiome extends EndBiome {
public MegalakeGroveBiome() { public MegalakeGroveBiome() {
super((BiomeDefinition) new BiomeDefinition("megalake_grove") super(new BCLBiomeDef(BetterEnd.makeID("megalake_grove"))
.addStructureFeature(EndStructures.MEGALAKE_SMALL) .addStructureFeature(EndStructures.MEGALAKE_SMALL.getFeatureConfigured())
.setPlantsColor(73, 210, 209) .setPlantsColor(73, 210, 209)
.setFogColor(178, 209, 248) .setFogColor(178, 209, 248)
.setWaterAndFogColor(96, 163, 255) .setWaterAndFogColor(96, 163, 255)

View file

@ -3,15 +3,16 @@ package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class NeonOasisBiome extends EndBiome { public class NeonOasisBiome extends EndBiome {
public NeonOasisBiome() { public NeonOasisBiome() {
super((BiomeDefinition) new BiomeDefinition("neon_oasis") super(new BCLBiomeDef(BetterEnd.makeID("neon_oasis"))
.setGenChance(0.5F) .setGenChance(0.5F)
.setFogColor(226, 239, 168) .setFogColor(226, 239, 168)
.setFogDensity(2) .setFogDensity(2)

View file

@ -2,16 +2,17 @@ package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndStructures;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class PaintedMountainsBiome extends EndBiome { public class PaintedMountainsBiome extends EndBiome {
public PaintedMountainsBiome() { public PaintedMountainsBiome() {
super((BiomeDefinition) new BiomeDefinition("painted_mountains") super(new BCLBiomeDef(BetterEnd.makeID("painted_mountains"))
.addStructureFeature(EndStructures.PAINTED_MOUNTAIN) .addStructureFeature(EndStructures.PAINTED_MOUNTAIN.getFeatureConfigured())
.setFogColor(226, 239, 168) .setFogColor(226, 239, 168)
.setFogDensity(2) .setFogDensity(2)
.setWaterAndFogColor(192, 180, 131) .setWaterAndFogColor(192, 180, 131)

View file

@ -3,16 +3,17 @@ package ru.betterend.world.biome.land;
import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class ShadowForestBiome extends EndBiome { public class ShadowForestBiome extends EndBiome {
public ShadowForestBiome() { public ShadowForestBiome() {
super((BiomeDefinition) new BiomeDefinition("shadow_forest") super(new BCLBiomeDef(BetterEnd.makeID("shadow_forest"))
.setFogColor(0, 0, 0) .setFogColor(0, 0, 0)
.setFogDensity(2.5F) .setFogDensity(2.5F)
.setPlantsColor(45, 45, 45) .setPlantsColor(45, 45, 45)

View file

@ -1,18 +1,19 @@
package ru.betterend.world.biome.land; package ru.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndEntities;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.surface.SurfaceBuilders; import ru.betterend.world.surface.SurfaceBuilders;
public class SulphurSpringsBiome extends EndBiome { public class SulphurSpringsBiome extends EndBiome {
public SulphurSpringsBiome() { public SulphurSpringsBiome() {
super((BiomeDefinition) new BiomeDefinition("sulphur_springs") super(new BCLBiomeDef(BetterEnd.makeID("sulphur_springs"))
.setCaves(false) .addCustomData("has_caves", false)
.setSurface(SurfaceBuilders.SULPHURIC_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG)) .setSurface(SurfaceBuilders.SULPHURIC_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG))
.setMusic(EndSounds.MUSIC_OPENSPACE) .setMusic(EndSounds.MUSIC_OPENSPACE)
.setLoop(EndSounds.AMBIENT_SULPHUR_SPRINGS) .setLoop(EndSounds.AMBIENT_SULPHUR_SPRINGS)

View file

@ -2,16 +2,17 @@ package ru.betterend.world.biome.land;
import net.minecraft.data.worldgen.StructureFeatures; import net.minecraft.data.worldgen.StructureFeatures;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import ru.bclib.world.biomes.BCLBiomeDef;
import ru.betterend.BetterEnd;
import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndBlocks;
import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndFeatures;
import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndParticles;
import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndSounds;
import ru.betterend.world.biome.BiomeDefinition;
import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.EndBiome;
public class UmbrellaJungleBiome extends EndBiome { public class UmbrellaJungleBiome extends EndBiome {
public UmbrellaJungleBiome() { public UmbrellaJungleBiome() {
super((BiomeDefinition) new BiomeDefinition("umbrella_jungle") super(new BCLBiomeDef(BetterEnd.makeID("umbrella_jungle"))
.setFogColor(87, 223, 221) .setFogColor(87, 223, 221)
.setWaterAndFogColor(119, 198, 253) .setWaterAndFogColor(119, 198, 253)
.setFoliageColor(27, 183, 194) .setFoliageColor(27, 183, 194)

View file

@ -23,11 +23,11 @@ import ru.bclib.api.BiomeAPI;
import ru.bclib.api.TagAPI; import ru.bclib.api.TagAPI;
import ru.bclib.util.BlocksHelper; import ru.bclib.util.BlocksHelper;
import ru.bclib.util.MHelper; import ru.bclib.util.MHelper;
import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.features.DefaultFeature; import ru.bclib.world.features.DefaultFeature;
import ru.betterend.interfaces.IBiomeArray; import ru.betterend.interfaces.IBiomeArray;
import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBiomes;
import ru.betterend.util.BlockFixer; import ru.betterend.util.BlockFixer;
import ru.betterend.world.biome.EndBiome;
import ru.betterend.world.biome.cave.EndCaveBiome; import ru.betterend.world.biome.cave.EndCaveBiome;
public abstract class EndCaveFeature extends DefaultFeature { public abstract class EndCaveFeature extends DefaultFeature {
@ -230,8 +230,9 @@ public abstract class EndCaveFeature extends DefaultFeature {
for (int x = -2; x < 3; x++) { for (int x = -2; x < 3; x++) {
for (int z = -2; z < 3; z++) { for (int z = -2; z < 3; z++) {
Biome biome = world.getBiome(pos.offset(x << 4, 0, z << 4)); Biome biome = world.getBiome(pos.offset(x << 4, 0, z << 4));
EndBiome endBiome = (EndBiome) BiomeAPI.getFromBiome(biome); BCLBiome endBiome = BiomeAPI.getFromBiome(biome);
if (endBiome != null && !endBiome.hasCaves() && EndBiomes.LAND_BIOMES.containsImmutable(endBiome.getID())) { boolean hasCaves = endBiome.getCustomData("has_caves", true);
if (!hasCaves && EndBiomes.LAND_BIOMES.containsImmutable(endBiome.getID())) {
return true; return true;
} }
} }

View file

@ -8,7 +8,6 @@
"ClientPlayNetworkHandlerMixin", "ClientPlayNetworkHandlerMixin",
"HumanoidMobRendererMixin", "HumanoidMobRendererMixin",
"ArmorStandRendererMixin", "ArmorStandRendererMixin",
"BackgroundRendererMixin",
"ClientRecipeBookMixin", "ClientRecipeBookMixin",
"MinecraftClientMixin", "MinecraftClientMixin",
"ContextGsonAccessor", "ContextGsonAccessor",