Feature fixes and enhancements, version change

This commit is contained in:
paulevsGitch 2021-12-20 04:52:07 +03:00
parent 572ee609d5
commit 8809151a8b
8 changed files with 48 additions and 38 deletions

View file

@ -11,7 +11,7 @@ loader_version= 0.12.12
fabric_version = 0.44.0+1.18 fabric_version = 0.44.0+1.18
# Mod Properties # Mod Properties
mod_version = 1.1.3 mod_version = 1.1.4
maven_group = ru.bclib maven_group = ru.bclib
archives_base_name = bclib archives_base_name = bclib

View file

@ -1,11 +1,9 @@
package ru.bclib.api.biomes; package ru.bclib.api.biomes;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications; import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.data.BuiltinRegistries; import net.minecraft.data.BuiltinRegistries;
import net.minecraft.data.worldgen.BiomeDefaultFeatures; import net.minecraft.data.worldgen.BiomeDefaultFeatures;
import net.minecraft.data.worldgen.placement.OrePlacements;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.Music; import net.minecraft.sounds.Music;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
@ -36,14 +34,12 @@ import ru.bclib.api.surface.SurfaceRuleBuilder;
import ru.bclib.entity.BCLEntityWrapper; import ru.bclib.entity.BCLEntityWrapper;
import ru.bclib.mixin.common.BiomeGenerationSettingsAccessor; import ru.bclib.mixin.common.BiomeGenerationSettingsAccessor;
import ru.bclib.util.ColorUtil; import ru.bclib.util.ColorUtil;
import ru.bclib.util.Pair;
import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.BCLFeature;
import ru.bclib.world.structures.BCLStructureFeature; import ru.bclib.world.structures.BCLStructureFeature;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.BiFunction; import java.util.function.BiFunction;

View file

@ -1,7 +1,6 @@
package ru.bclib.config; package ru.bclib.config;
import ru.bclib.BCLib; import ru.bclib.BCLib;
import ru.bclib.api.dataexchange.handler.autosync.AutoSync;
public class GeneratorConfig extends NamedPathConfig { public class GeneratorConfig extends NamedPathConfig {
public static final ConfigToken<Boolean> USE_OLD_GENERATOR = ConfigToken.Boolean(false, "useOldBiomeGenerator", "options"); public static final ConfigToken<Boolean> USE_OLD_GENERATOR = ConfigToken.Boolean(false, "useOldBiomeGenerator", "options");

View file

@ -9,9 +9,7 @@ import ru.bclib.integration.modmenu.ModMenuIntegration.ModMenuScreenFactory;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Proxy; import java.lang.reflect.Proxy;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
@Deprecated @Deprecated
class ModMenuScreenFactoryImpl { class ModMenuScreenFactoryImpl {

View file

@ -13,6 +13,7 @@ import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfigur
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
import net.minecraft.world.level.levelgen.placement.BiomeFilter; import net.minecraft.world.level.levelgen.placement.BiomeFilter;
import net.minecraft.world.level.levelgen.placement.CountOnEveryLayerPlacement;
import net.minecraft.world.level.levelgen.placement.CountPlacement; import net.minecraft.world.level.levelgen.placement.CountPlacement;
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; import net.minecraft.world.level.levelgen.placement.HeightRangePlacement;
import net.minecraft.world.level.levelgen.placement.InSquarePlacement; import net.minecraft.world.level.levelgen.placement.InSquarePlacement;
@ -61,6 +62,7 @@ public class BCLFeature {
public Decoration getDecoration() { public Decoration getDecoration() {
return featureStep; return featureStep;
} }
/** /**
* Will create a basic plant feature. * Will create a basic plant feature.
* @param id {@link ResourceLocation} feature ID. * @param id {@link ResourceLocation} feature ID.
@ -69,16 +71,28 @@ public class BCLFeature {
* @return new BCLFeature instance. * @return new BCLFeature instance.
*/ */
public static BCLFeature makeVegetationFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int density) { public static BCLFeature makeVegetationFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int density) {
PlacedFeature configured = feature return makeVegetationFeature(id, feature, density, false);
.configured(FeatureConfiguration.NONE) }
.placed(
CountPlacement.of(UniformInt.of(0, 4)), /**
* Will create a basic plant feature.
* @param id {@link ResourceLocation} feature ID.
* @param feature {@link Feature} with {@link NoneFeatureConfiguration} config.
* @param density iterations per chunk.
* @param allHeight if {@code true} will generate plant on all layers, if {@code false} - only on surface.
* @return new BCLFeature instance.
*/
public static BCLFeature makeVegetationFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int density, boolean allHeight) {
@SuppressWarnings("deprecation")
PlacementModifier count = allHeight ? CountOnEveryLayerPlacement.of(8) : CountPlacement.of(UniformInt.of(0, density));
return makeFeature(id, Decoration.VEGETAL_DECORATION, feature,
count,
InSquarePlacement.spread(), InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP, PlacementUtils.HEIGHTMAP,
BiomeFilter.biome() BiomeFilter.biome()
); );
return new BCLFeature(id, feature, Decoration.VEGETAL_DECORATION, configured);
} }
/** /**
* Will create a basic ore feature. * Will create a basic ore feature.
* @param id {@link ResourceLocation} feature ID. * @param id {@link ResourceLocation} feature ID.
@ -209,7 +223,9 @@ public class BCLFeature {
InSquarePlacement.spread(), InSquarePlacement.spread(),
rare ? RarityFilter.onAverageOnceEvery(veins) : CountPlacement.of(veins), rare ? RarityFilter.onAverageOnceEvery(veins) : CountPlacement.of(veins),
placement, placement,
BiomeFilter.biome()); BiomeFilter.biome()
);
return new BCLFeature( return new BCLFeature(
net.minecraft.world.level.levelgen.feature.Feature.ORE, net.minecraft.world.level.levelgen.feature.Feature.ORE,
Registry.register(BuiltinRegistries.PLACED_FEATURE, id, oreFeature), Registry.register(BuiltinRegistries.PLACED_FEATURE, id, oreFeature),
@ -244,10 +260,7 @@ public class BCLFeature {
* @return new BCLFeature instance. * @return new BCLFeature instance.
*/ */
public static BCLFeature makeChunkFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature) { public static BCLFeature makeChunkFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature) {
PlacedFeature configured = feature return makeFeature(id, step, feature, CountPlacement.of(1));
.configured(FeatureConfiguration.NONE)
.placed(CountPlacement.of(1));
return new BCLFeature(id, feature, step, configured);
} }
/** /**
@ -259,10 +272,7 @@ public class BCLFeature {
* @return new BCLFeature instance. * @return new BCLFeature instance.
*/ */
public static BCLFeature makeChancedFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature, int chance) { public static BCLFeature makeChancedFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature, int chance) {
PlacedFeature configured = feature return makeFeature(id, step, feature, RarityFilter.onAverageOnceEvery(chance));
.configured(FeatureConfiguration.NONE)
.placed(RarityFilter.onAverageOnceEvery(chance));
return new BCLFeature(id, feature, step, configured);
} }
/** /**
@ -274,11 +284,7 @@ public class BCLFeature {
* @return new BCLFeature instance. * @return new BCLFeature instance.
*/ */
public static BCLFeature makeCountFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature, int count) { public static BCLFeature makeCountFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature, int count) {
PlacedFeature configured = feature return makeFeature(id, step, feature, CountPlacement.of(count));
.configured(FeatureConfiguration.NONE)
.placed(CountPlacement.of(count));
//.decorated(FeatureDecorator.COUNT.configured(new CountConfiguration(count)));
return new BCLFeature(id, feature, step, configured);
} }
/** /**
@ -289,7 +295,19 @@ public class BCLFeature {
* @return new BCLFeature instance. * @return new BCLFeature instance.
*/ */
public static BCLFeature makeFeatureConfigured(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature) { public static BCLFeature makeFeatureConfigured(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature) {
PlacedFeature configured = feature.configured(FeatureConfiguration.NONE).placed(); return makeFeature(id, step, feature);
}
/**
* Creates and configures new BCLib feature.
* @param id {@link ResourceLocation} feature ID.
* @param step {@link Decoration} feature step.
* @param feature {@link Feature} with {@link NoneFeatureConfiguration} config.
* @param placementModifiers array of {@link PlacementModifier}
* @return new BCLFeature instance.
*/
public static BCLFeature makeFeature(ResourceLocation id, Decoration step, Feature<NoneFeatureConfiguration> feature, PlacementModifier... placementModifiers) {
PlacedFeature configured = feature.configured(FeatureConfiguration.NONE).placed(placementModifiers);
return new BCLFeature(id, feature, step, configured); return new BCLFeature(id, feature, step, configured);
} }
} }

View file

@ -4,7 +4,6 @@ import net.minecraft.core.Registry;
import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeSource; import net.minecraft.world.level.biome.BiomeSource;
import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.biomes.BiomeAPI;
import ru.bclib.config.Configs;
import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiome;
import java.util.List; import java.util.List;

View file

@ -12,9 +12,9 @@
"TextureAtlasMixin", "TextureAtlasMixin",
"AnvilScreenMixin", "AnvilScreenMixin",
"ModelBakeryMixin", "ModelBakeryMixin",
"WorldPresetMixin",
"MinecraftMixin", "MinecraftMixin",
"GameMixin", "GameMixin"
"WorldPresetMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1

View file

@ -10,6 +10,7 @@
"LayerLightSectionStorageMixin", "LayerLightSectionStorageMixin",
"NoiseBasedChunkGeneratorMixin", "NoiseBasedChunkGeneratorMixin",
"NoiseGeneratorSettingsMixin", "NoiseGeneratorSettingsMixin",
"SurfaceRulesContextAccessor",
"shears.TripWireBlockMixin", "shears.TripWireBlockMixin",
"StructureSettingsAccessor", "StructureSettingsAccessor",
"MobSpawnSettingsAccessor", "MobSpawnSettingsAccessor",
@ -35,12 +36,11 @@
"shears.SheepMixin", "shears.SheepMixin",
"PortalShapeMixin", "PortalShapeMixin",
"ServerLevelMixin", "ServerLevelMixin",
"BiomeSourceMixin",
"AnvilBlockMixin", "AnvilBlockMixin",
"AnvilMenuMixin", "AnvilMenuMixin",
"TagLoaderMixin", "TagLoaderMixin",
"MainMixin", "MainMixin"
"SurfaceRulesContextAccessor",
"BiomeSourceMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1