[Changes] Adapted BCLPlacedFeatureBuilder
for DataGen pass
This commit is contained in:
parent
2e60364029
commit
271c974929
8 changed files with 93 additions and 69 deletions
|
@ -55,12 +55,12 @@ public class BCLConfigureFeature<F extends Feature<FC>, FC extends FeatureConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public BCLPlacedFeatureBuilder<F, FC> place(BCLPlacedFeatureBuilder.Context ctx) {
|
public BCLPlacedFeatureBuilder<F, FC> place() {
|
||||||
return place(ctx, this.id);
|
return place(this.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BCLPlacedFeatureBuilder<F, FC> place(BCLPlacedFeatureBuilder.Context ctx, ResourceLocation id) {
|
public BCLPlacedFeatureBuilder<F, FC> place(ResourceLocation id) {
|
||||||
return BCLPlacedFeatureBuilder.place(ctx, id, this);
|
return BCLPlacedFeatureBuilder.place(id, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLConfigureFeature<F, FC> create(Holder<ConfiguredFeature<FC, F>> registeredFeature) {
|
static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLConfigureFeature<F, FC> create(Holder<ConfiguredFeature<FC, F>> registeredFeature) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import org.betterx.bclib.api.v3.levelgen.features.features.*;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||||
|
@ -17,6 +18,25 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
public class BCLFeature<F extends Feature<FC>, FC extends FeatureConfiguration> {
|
public class BCLFeature<F extends Feature<FC>, FC extends FeatureConfiguration> {
|
||||||
|
public static class Unregistered<F extends Feature<FC>, FC extends FeatureConfiguration> extends BCLFeature<F, FC> {
|
||||||
|
Unregistered(
|
||||||
|
BCLConfigureFeature<F, FC> configuredFeature,
|
||||||
|
Holder<PlacedFeature> placed,
|
||||||
|
GenerationStep.Decoration decoration
|
||||||
|
) {
|
||||||
|
super(configuredFeature, placed, decoration);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BCLFeature<F, FC> register(BootstapContext<PlacedFeature> bootstrapContext) {
|
||||||
|
Holder<PlacedFeature> holder = BCLPlacedFeatureBuilder.register(
|
||||||
|
bootstrapContext,
|
||||||
|
getPlacedFeature()
|
||||||
|
);
|
||||||
|
return new BCLFeature<>(configuredFeature, holder, decoration);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static final Feature<PlaceFacingBlockConfig> PLACE_BLOCK = register(
|
public static final Feature<PlaceFacingBlockConfig> PLACE_BLOCK = register(
|
||||||
BCLib.makeID("place_block"),
|
BCLib.makeID("place_block"),
|
||||||
new PlaceBlockFeature<>(PlaceFacingBlockConfig.CODEC)
|
new PlaceBlockFeature<>(PlaceFacingBlockConfig.CODEC)
|
||||||
|
@ -102,4 +122,8 @@ public class BCLFeature<F extends Feature<FC>, FC extends FeatureConfiguration>
|
||||||
) {
|
) {
|
||||||
return Registry.register(BuiltInRegistries.FEATURE, location, feature);
|
return Registry.register(BuiltInRegistries.FEATURE, location, feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BCLFeature<F, FC> register(BootstapContext<PlacedFeature> bootstrapContext) {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,8 @@ public abstract class BCLFeatureBuilder<F extends Feature<FC>, FC extends Featur
|
||||||
B create(ResourceLocation id, Holder<ConfiguredFeature<FC, F>> configuredFeature);
|
B create(ResourceLocation id, Holder<ConfiguredFeature<FC, F>> configuredFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<BCLConfigureFeature.Unregistered<?, ?>> ALL_UNREGISTERED = new LinkedList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts a new {@link BCLFeature} builder.
|
* Starts a new {@link BCLFeature} builder.
|
||||||
*
|
*
|
||||||
|
@ -273,7 +275,7 @@ public abstract class BCLFeatureBuilder<F extends Feature<FC>, FC extends Featur
|
||||||
}
|
}
|
||||||
|
|
||||||
public BCLConfigureFeature.Unregistered<F, FC> build() {
|
public BCLConfigureFeature.Unregistered<F, FC> build() {
|
||||||
return buildAndCreateHolder(
|
final var res = buildAndCreateHolder(
|
||||||
(featureID, holder) -> new BCLConfigureFeature.Unregistered<>(featureID, holder),
|
(featureID, holder) -> new BCLConfigureFeature.Unregistered<>(featureID, holder),
|
||||||
(featureID, cFeature) -> (FullReferenceHolder<ConfiguredFeature<FC, F>>) (Object) FullReferenceHolder.create(
|
(featureID, cFeature) -> (FullReferenceHolder<ConfiguredFeature<FC, F>>) (Object) FullReferenceHolder.create(
|
||||||
Registries.CONFIGURED_FEATURE,
|
Registries.CONFIGURED_FEATURE,
|
||||||
|
@ -281,6 +283,12 @@ public abstract class BCLFeatureBuilder<F extends Feature<FC>, FC extends Featur
|
||||||
cFeature
|
cFeature
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
ALL_UNREGISTERED.add(res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void registerAll(BootstapContext<ConfiguredFeature<?, ?>> bootstapContext) {
|
||||||
|
ALL_UNREGISTERED.forEach(u -> u.register(bootstapContext));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BCLInlinePlacedBuilder<F, FC> inlinePlace() {
|
public BCLInlinePlacedBuilder<F, FC> inlinePlace() {
|
||||||
|
@ -290,7 +298,7 @@ public abstract class BCLFeatureBuilder<F extends Feature<FC>, FC extends Featur
|
||||||
|
|
||||||
public Holder<PlacedFeature> inlinePlace(BCLInlinePlacedBuilder<F, FC> placer) {
|
public Holder<PlacedFeature> inlinePlace(BCLInlinePlacedBuilder<F, FC> placer) {
|
||||||
BCLConfigureFeature<F, FC> f = buildInline();
|
BCLConfigureFeature<F, FC> f = buildInline();
|
||||||
return placer.build(f);
|
return placer.build(f).getPlacedFeature();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class AsOre extends BCLFeatureBuilder<OreFeature, OreConfiguration> {
|
public static class AsOre extends BCLFeatureBuilder<OreFeature, OreConfiguration> {
|
||||||
|
@ -914,7 +922,7 @@ public abstract class BCLFeatureBuilder<F extends Feature<FC>, FC extends Featur
|
||||||
if (isEmpty) blockFeature.isEmpty();
|
if (isEmpty) blockFeature.isEmpty();
|
||||||
if (groundType != null) blockFeature.isOn(groundType);
|
if (groundType != null) blockFeature.isOn(groundType);
|
||||||
|
|
||||||
return new RandomPatchConfiguration(tries, xzSpread, ySpread, blockFeature.build());
|
return new RandomPatchConfiguration(tries, xzSpread, ySpread, blockFeature.build().getPlacedFeature());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.betterx.bclib.api.v3.levelgen.features;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||||
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
||||||
|
@ -48,7 +49,7 @@ public class BCLInlinePlacedBuilder<F extends Feature<FC>, FC extends FeatureCon
|
||||||
* @return created {@link PlacedFeature} instance.
|
* @return created {@link PlacedFeature} instance.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Holder<PlacedFeature> build() {
|
public BCLFeature.Unregistered<F, FC> build() {
|
||||||
return build(cFeature);
|
return build(cFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,18 +58,13 @@ public class BCLInlinePlacedBuilder<F extends Feature<FC>, FC extends FeatureCon
|
||||||
*
|
*
|
||||||
* @return created {@link PlacedFeature} instance.
|
* @return created {@link PlacedFeature} instance.
|
||||||
*/
|
*/
|
||||||
public Holder<PlacedFeature> build(BCLConfigureFeature feature) {
|
public BCLFeature.Unregistered<F, FC> build(BCLConfigureFeature feature) {
|
||||||
return build(feature.configuredFeature);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds a new inline (not registered) {@link PlacedFeature}.
|
|
||||||
*
|
|
||||||
* @return created {@link PlacedFeature} instance.
|
|
||||||
*/
|
|
||||||
public Holder<PlacedFeature> build(Holder<ConfiguredFeature<FC, F>> feature) {
|
|
||||||
PlacementModifier[] modifiers = modifications.toArray(new PlacementModifier[modifications.size()]);
|
PlacementModifier[] modifiers = modifications.toArray(new PlacementModifier[modifications.size()]);
|
||||||
return PlacementUtils.inlinePlaced((Holder<ConfiguredFeature<?, ?>>) (Object) feature, modifiers);
|
Holder<PlacedFeature> holder = PlacementUtils.inlinePlaced(
|
||||||
|
feature.configuredFeature,
|
||||||
|
modifiers
|
||||||
|
);
|
||||||
|
return new BCLFeature.Unregistered<>(feature, holder, GenerationStep.Decoration.VEGETAL_DECORATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -83,7 +79,7 @@ public class BCLInlinePlacedBuilder<F extends Feature<FC>, FC extends FeatureCon
|
||||||
|
|
||||||
|
|
||||||
public BCLFeatureBuilder.RandomPatch inRandomPatch(ResourceLocation id) {
|
public BCLFeatureBuilder.RandomPatch inRandomPatch(ResourceLocation id) {
|
||||||
return BCLFeatureBuilder.startRandomPatch(id, build());
|
return BCLFeatureBuilder.startRandomPatch(id, build().getPlacedFeature());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BCLFeatureBuilder.RandomPatch randomBonemealDistribution(ResourceLocation id) {
|
public BCLFeatureBuilder.RandomPatch randomBonemealDistribution(ResourceLocation id) {
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package org.betterx.bclib.api.v3.levelgen.features;
|
package org.betterx.bclib.api.v3.levelgen.features;
|
||||||
|
|
||||||
|
import org.betterx.bclib.util.FullReferenceHolder;
|
||||||
|
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.data.worldgen.BootstapContext;
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||||
|
@ -12,18 +13,17 @@ import net.minecraft.world.level.levelgen.feature.Feature;
|
||||||
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
||||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class BCLPlacedFeatureBuilder<F extends Feature<FC>, FC extends FeatureConfiguration> extends CommonPlacedFeatureBuilder<F, FC, BCLPlacedFeatureBuilder<F, FC>> {
|
public class BCLPlacedFeatureBuilder<F extends Feature<FC>, FC extends FeatureConfiguration> extends CommonPlacedFeatureBuilder<F, FC, BCLPlacedFeatureBuilder<F, FC>> {
|
||||||
private final ResourceLocation featureID;
|
private final ResourceLocation featureID;
|
||||||
private GenerationStep.Decoration decoration = GenerationStep.Decoration.VEGETAL_DECORATION;
|
private GenerationStep.Decoration decoration = GenerationStep.Decoration.VEGETAL_DECORATION;
|
||||||
private final BCLConfigureFeature<F, FC> cFeature;
|
private final BCLConfigureFeature<F, FC> cFeature;
|
||||||
protected final BCLPlacedFeatureBuilder.Context ctx;
|
|
||||||
|
|
||||||
private BCLPlacedFeatureBuilder(
|
private BCLPlacedFeatureBuilder(
|
||||||
Context ctx,
|
|
||||||
ResourceLocation featureID,
|
ResourceLocation featureID,
|
||||||
BCLConfigureFeature<F, FC> cFeature
|
BCLConfigureFeature<F, FC> cFeature
|
||||||
) {
|
) {
|
||||||
this.ctx = ctx;
|
|
||||||
this.featureID = featureID;
|
this.featureID = featureID;
|
||||||
this.cFeature = cFeature;
|
this.cFeature = cFeature;
|
||||||
}
|
}
|
||||||
|
@ -48,11 +48,10 @@ public class BCLPlacedFeatureBuilder<F extends Feature<FC>, FC extends FeatureCo
|
||||||
* @return {@link CommonPlacedFeatureBuilder} instance.
|
* @return {@link CommonPlacedFeatureBuilder} instance.
|
||||||
*/
|
*/
|
||||||
public static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLPlacedFeatureBuilder<F, FC> place(
|
public static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLPlacedFeatureBuilder<F, FC> place(
|
||||||
Context ctx,
|
|
||||||
ResourceLocation featureID,
|
ResourceLocation featureID,
|
||||||
Holder<ConfiguredFeature<FC, F>> holder
|
Holder<ConfiguredFeature<FC, F>> holder
|
||||||
) {
|
) {
|
||||||
return place(ctx, featureID, BCLConfigureFeature.create(holder));
|
return place(featureID, BCLConfigureFeature.create(holder));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,43 +63,36 @@ public class BCLPlacedFeatureBuilder<F extends Feature<FC>, FC extends FeatureCo
|
||||||
* @return {@link CommonPlacedFeatureBuilder} instance.
|
* @return {@link CommonPlacedFeatureBuilder} instance.
|
||||||
*/
|
*/
|
||||||
static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLPlacedFeatureBuilder<F, FC> place(
|
static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLPlacedFeatureBuilder<F, FC> place(
|
||||||
Context ctx,
|
|
||||||
ResourceLocation featureID,
|
ResourceLocation featureID,
|
||||||
BCLConfigureFeature<F, FC> cFeature
|
BCLConfigureFeature<F, FC> cFeature
|
||||||
) {
|
) {
|
||||||
return new BCLPlacedFeatureBuilder(ctx, featureID, cFeature);
|
return new BCLPlacedFeatureBuilder(featureID, cFeature);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <F extends Feature<FC>, FC extends FeatureConfiguration> BCLPlacedFeatureBuilder<F, FC> place(
|
|
||||||
BCLPlacedFeatureBuilder.Context ctx,
|
|
||||||
ResourceLocation configuredFeature
|
|
||||||
) {
|
|
||||||
ResourceKey<ConfiguredFeature<?, ?>> key = ResourceKey.create(
|
|
||||||
Registries.CONFIGURED_FEATURE,
|
|
||||||
configuredFeature
|
|
||||||
);
|
|
||||||
Holder<ConfiguredFeature<FC, F>> holder = (Holder<ConfiguredFeature<FC, F>>) (Object) ctx.bootstrapContext
|
|
||||||
.lookup(Registries.CONFIGURED_FEATURE)
|
|
||||||
.get(key);
|
|
||||||
var cFeature = new BCLConfigureFeature<F, FC>(configuredFeature, holder, false);
|
|
||||||
return new BCLPlacedFeatureBuilder<F, FC>(ctx, configuredFeature, cFeature);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a new {@link BCLFeature} instance.
|
* Builds a new {@link BCLFeature} instance.
|
||||||
*
|
*
|
||||||
* @return created {@link BCLFeature} instance.
|
* @return created {@link BCLFeature} instance.
|
||||||
*/
|
*/
|
||||||
public Holder<PlacedFeature> build() {
|
public BCLFeature.Unregistered<F, FC> build() {
|
||||||
final ResourceKey<PlacedFeature> key = ResourceKey.create(Registries.PLACED_FEATURE, featureID);
|
final ResourceKey<PlacedFeature> key = ResourceKey.create(Registries.PLACED_FEATURE, featureID);
|
||||||
PlacementUtils.register(
|
PlacedFeature pFeature = new PlacedFeature(
|
||||||
ctx.bootstrapContext,
|
|
||||||
key,
|
|
||||||
(Holder<ConfiguredFeature<?, ?>>) (Object) cFeature.configuredFeature,
|
(Holder<ConfiguredFeature<?, ?>>) (Object) cFeature.configuredFeature,
|
||||||
modifications
|
List.copyOf(modifications)
|
||||||
);
|
);
|
||||||
return ctx.bootstrapContext.lookup(Registries.PLACED_FEATURE).get(key).orElseThrow();
|
FullReferenceHolder<PlacedFeature> holder = FullReferenceHolder.create(
|
||||||
|
Registries.PLACED_FEATURE,
|
||||||
|
featureID,
|
||||||
|
pFeature
|
||||||
|
);
|
||||||
|
return new BCLFeature.Unregistered<>(cFeature, holder, decoration);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Holder<PlacedFeature> register(
|
||||||
|
BootstapContext<PlacedFeature> bootstrapContext,
|
||||||
|
Holder<PlacedFeature> holder
|
||||||
|
) {
|
||||||
|
return bootstrapContext.register(holder.unwrapKey().orElseThrow(), holder.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,11 +102,7 @@ public class BCLPlacedFeatureBuilder<F extends Feature<FC>, FC extends FeatureCo
|
||||||
*
|
*
|
||||||
* @return created {@link BCLFeature} instance.
|
* @return created {@link BCLFeature} instance.
|
||||||
*/
|
*/
|
||||||
public BCLFeature<F, FC> buildAndRegister() {
|
public BCLFeature<F, FC> buildAndRegister(BootstapContext<PlacedFeature> bootstapContext) {
|
||||||
Holder<PlacedFeature> p = build();
|
return build().register(bootstapContext);
|
||||||
return new BCLFeature(cFeature, p, decoration);
|
|
||||||
}
|
|
||||||
|
|
||||||
public record Context(BootstapContext<PlacedFeature> bootstrapContext) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import org.betterx.bclib.api.v3.levelgen.features.placement.*;
|
||||||
import org.betterx.worlds.together.tag.v3.CommonBlockTags;
|
import org.betterx.worlds.together.tag.v3.CommonBlockTags;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Holder;
|
|
||||||
import net.minecraft.core.Vec3i;
|
import net.minecraft.core.Vec3i;
|
||||||
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
@ -424,5 +423,5 @@ abstract class CommonPlacedFeatureBuilder<F extends Feature<FC>, FC extends Feat
|
||||||
*
|
*
|
||||||
* @return created {@link PlacedFeature} instance.
|
* @return created {@link PlacedFeature} instance.
|
||||||
*/
|
*/
|
||||||
abstract Holder<PlacedFeature> build();
|
abstract BCLFeature.Unregistered<F, FC> build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,10 @@ import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.bclib.api.v3.levelgen.features.BCLConfigureFeature;
|
import org.betterx.bclib.api.v3.levelgen.features.BCLConfigureFeature;
|
||||||
import org.betterx.bclib.api.v3.levelgen.features.BCLFeatureBuilder;
|
import org.betterx.bclib.api.v3.levelgen.features.BCLFeatureBuilder;
|
||||||
|
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.data.worldgen.BootstapContext;
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
import net.minecraft.world.level.levelgen.feature.RandomPatchFeature;
|
import net.minecraft.world.level.levelgen.feature.RandomPatchFeature;
|
||||||
|
@ -19,9 +22,16 @@ public class TestConfiguredFeatures {
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
public static void bootstrap(BootstapContext<ConfiguredFeature<?, ?>> bootstrapContext) {
|
public static void bootstrap(BootstapContext<ConfiguredFeature<?, ?>> bootstrapContext) {
|
||||||
BCLib.LOGGER.info("Bootstrap CONFIGUREDFeatures");
|
Holder<ConfiguredFeature<?, ?>> holder = bootstrapContext.lookup(Registries.CONFIGURED_FEATURE)
|
||||||
|
.getOrThrow(ResourceKey.create(
|
||||||
|
Registries.CONFIGURED_FEATURE,
|
||||||
|
YELLOW_FEATURE.id
|
||||||
|
));
|
||||||
|
|
||||||
|
BCLib.LOGGER.info("Bootstrap CONFIGUREDFeatures" + holder);
|
||||||
if (BCLibDatagen.ADD_TESTS && BCLib.isDevEnvironment()) {
|
if (BCLibDatagen.ADD_TESTS && BCLib.isDevEnvironment()) {
|
||||||
YELLOW_FEATURE = YELLOW_FEATURE.register(bootstrapContext);
|
//YELLOW_FEATURE = YELLOW_FEATURE.register(bootstrapContext);
|
||||||
|
BCLFeatureBuilder.registerAll(bootstrapContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package org.betterx.bclib.datagen;
|
||||||
|
|
||||||
import org.betterx.bclib.BCLib;
|
import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.bclib.api.v3.levelgen.features.BCLFeature;
|
import org.betterx.bclib.api.v3.levelgen.features.BCLFeature;
|
||||||
import org.betterx.bclib.api.v3.levelgen.features.BCLPlacedFeatureBuilder;
|
|
||||||
|
|
||||||
import net.minecraft.data.worldgen.BootstapContext;
|
import net.minecraft.data.worldgen.BootstapContext;
|
||||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||||
|
@ -11,19 +10,19 @@ import net.minecraft.world.level.levelgen.feature.configurations.RandomPatchConf
|
||||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||||
|
|
||||||
public class TestPlacedFeatures {
|
public class TestPlacedFeatures {
|
||||||
static BCLFeature<RandomPatchFeature, RandomPatchConfiguration> YELLOW_PLACED;
|
static BCLFeature<RandomPatchFeature, RandomPatchConfiguration> YELLOW_PLACED = TestConfiguredFeatures
|
||||||
|
.YELLOW_FEATURE
|
||||||
|
.place()
|
||||||
|
.decoration(GenerationStep.Decoration.VEGETAL_DECORATION)
|
||||||
|
.vanillaNetherGround(8)
|
||||||
|
.isEmptyAndOnNetherGround()
|
||||||
|
.build();
|
||||||
|
|
||||||
public static void bootstrap(BootstapContext<PlacedFeature> bootstrapContext) {
|
public static void bootstrap(BootstapContext<PlacedFeature> bootstrapContext) {
|
||||||
BCLib.LOGGER.info("Bootstrap PLACEDFeatures");
|
BCLib.LOGGER.info("Bootstrap PLACEDFeatures");
|
||||||
|
|
||||||
if (BCLibDatagen.ADD_TESTS && BCLib.isDevEnvironment()) {
|
if (BCLibDatagen.ADD_TESTS && BCLib.isDevEnvironment()) {
|
||||||
final BCLPlacedFeatureBuilder.Context buildContext = new BCLPlacedFeatureBuilder.Context(bootstrapContext);
|
YELLOW_PLACED = YELLOW_PLACED.register(bootstrapContext);
|
||||||
YELLOW_PLACED = TestConfiguredFeatures.YELLOW_FEATURE
|
|
||||||
.place(buildContext)
|
|
||||||
.decoration(GenerationStep.Decoration.VEGETAL_DECORATION)
|
|
||||||
.vanillaNetherGround(8)
|
|
||||||
.isEmptyAndOnNetherGround()
|
|
||||||
.buildAndRegister();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue