Added custom processors for end village streets
This commit is contained in:
parent
a5b81f5870
commit
f2e8ccabae
5 changed files with 87 additions and 5 deletions
|
@ -0,0 +1,16 @@
|
|||
package org.betterx.betterend.registry;
|
||||
|
||||
import org.betterx.bclib.api.v3.datagen.ProcessorHelper;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList;
|
||||
|
||||
public class EndProcessors {
|
||||
public static final ResourceKey<StructureProcessorList> WEATHERED_10_PERCENT =
|
||||
ProcessorHelper.createKey(BetterEnd.makeID("weather_10_percent"));
|
||||
public static final ResourceKey<StructureProcessorList> CRACK_20_PERCENT =
|
||||
ProcessorHelper.createKey(BetterEnd.makeID("crack_20_percent"));
|
||||
public static final ResourceKey<StructureProcessorList> CRACK_AND_WEATHER =
|
||||
ProcessorHelper.createKey(BetterEnd.makeID("crack_and_weather"));
|
||||
}
|
|
@ -2,6 +2,7 @@ package org.betterx.betterend.world.structures.village;
|
|||
|
||||
import org.betterx.bclib.api.v2.levelgen.structures.StructurePools;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.registry.EndProcessors;
|
||||
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
import net.minecraft.core.Holder;
|
||||
|
@ -42,6 +43,10 @@ public class VillagePools {
|
|||
final Holder.Reference<StructureTemplatePool> emptyPool = poolGetter.getOrThrow(Pools.EMPTY);
|
||||
final Holder.Reference<StructureTemplatePool> terminatorPool = poolGetter.getOrThrow(VillagePools.TERMINATORS_KEY);
|
||||
|
||||
Holder.Reference<StructureProcessorList> mossify = processorGetter.getOrThrow(EndProcessors.WEATHERED_10_PERCENT);
|
||||
Holder.Reference<StructureProcessorList> crack = processorGetter.getOrThrow(EndProcessors.CRACK_20_PERCENT);
|
||||
Holder.Reference<StructureProcessorList> crackAndWeather = processorGetter.getOrThrow(EndProcessors.CRACK_AND_WEATHER);
|
||||
|
||||
final Holder.Reference<StructureProcessorList> emptyProcessor = processorGetter.getOrThrow(ProcessorLists.EMPTY);
|
||||
ctx.register(VillagePools.TERMINATORS_KEY, new StructureTemplatePool(
|
||||
emptyPool,
|
||||
|
@ -121,19 +126,19 @@ public class VillagePools {
|
|||
ctx.register(VillagePools.STREET_KEY, new StructureTemplatePool(
|
||||
terminatorPool,
|
||||
ImmutableList.of(Pair.of(
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/street_01"), emptyProcessor),
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/street_01"), crackAndWeather),
|
||||
6
|
||||
), Pair.of(
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/street_02"), emptyProcessor),
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/street_02"), crackAndWeather),
|
||||
4
|
||||
), Pair.of(
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/curve_01"), emptyProcessor),
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/curve_01"), crackAndWeather),
|
||||
3
|
||||
), Pair.of(
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/t_crossing_01"), emptyProcessor),
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/t_crossing_01"), crackAndWeather),
|
||||
1
|
||||
), Pair.of(
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/t_crossing_02"), emptyProcessor),
|
||||
StructurePools.single(BetterEnd.makeID("village/streets/t_crossing_02"), crackAndWeather),
|
||||
2
|
||||
)),
|
||||
StructureTemplatePool.Projection.TERRAIN_MATCHING
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
|
|||
public class BetterEndDatagen implements DataGeneratorEntrypoint {
|
||||
@Override
|
||||
public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) {
|
||||
|
||||
EndBiomesDataProvider.ensureStaticallyLoaded();
|
||||
EndRecipeDataProvider.buildRecipes();
|
||||
TemplatePoolDataProvider.buildStructures();
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
|||
import net.minecraft.world.level.levelgen.structure.Structure;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureSet;
|
||||
import net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorType;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -47,6 +48,11 @@ public class EndRegistrySupplier extends RegistrySupplier {
|
|||
ConfiguredFeature.DIRECT_CODEC,
|
||||
ConfiguredFeatureDataProvider::bootstrap
|
||||
),
|
||||
new RegistryInfo<>(
|
||||
Registries.PROCESSOR_LIST,
|
||||
StructureProcessorType.DIRECT_CODEC,
|
||||
ProcessorsDataProvider::bootstrap
|
||||
),
|
||||
new RegistryInfo<>(
|
||||
Registries.PLACED_FEATURE,
|
||||
PlacedFeature.DIRECT_CODEC,
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package org.betterx.datagen.betterend.worldgen;
|
||||
|
||||
import org.betterx.bclib.api.v3.datagen.ProcessorHelper;
|
||||
import org.betterx.bclib.complexmaterials.set.stone.StoneSlots;
|
||||
import org.betterx.betterend.registry.EndBlocks;
|
||||
import org.betterx.betterend.registry.EndProcessors;
|
||||
|
||||
import net.minecraft.data.worldgen.BootstapContext;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.*;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class ProcessorsDataProvider {
|
||||
|
||||
public static void bootstrap(BootstapContext<StructureProcessorList> bootstapContext) {
|
||||
ProcessorHelper.register(
|
||||
bootstapContext,
|
||||
EndProcessors.WEATHERED_10_PERCENT,
|
||||
ImmutableList.of(new RuleProcessor(ImmutableList.of(new ProcessorRule(
|
||||
new RandomBlockMatchTest(Blocks.END_STONE_BRICKS, 0.1f),
|
||||
AlwaysTrueTest.INSTANCE,
|
||||
EndBlocks.END_STONE_BRICK_VARIATIONS.getBlock(StoneSlots.WEATHERED).defaultBlockState()
|
||||
))))
|
||||
);
|
||||
|
||||
ProcessorHelper.register(
|
||||
bootstapContext,
|
||||
EndProcessors.CRACK_20_PERCENT,
|
||||
ImmutableList.of(new RuleProcessor(ImmutableList.of(new ProcessorRule(
|
||||
new RandomBlockMatchTest(Blocks.END_STONE_BRICKS, 0.2f),
|
||||
AlwaysTrueTest.INSTANCE,
|
||||
EndBlocks.END_STONE_BRICK_VARIATIONS.getBlock(StoneSlots.CRACKED).defaultBlockState()
|
||||
))))
|
||||
);
|
||||
|
||||
ProcessorHelper.register(
|
||||
bootstapContext,
|
||||
EndProcessors.CRACK_AND_WEATHER,
|
||||
ImmutableList.of(new RuleProcessor(ImmutableList.of(
|
||||
new ProcessorRule(
|
||||
new RandomBlockMatchTest(Blocks.END_STONE_BRICKS, 0.2f),
|
||||
AlwaysTrueTest.INSTANCE,
|
||||
EndBlocks.END_STONE_BRICK_VARIATIONS.getBlock(StoneSlots.CRACKED).defaultBlockState()
|
||||
),
|
||||
new ProcessorRule(
|
||||
new RandomBlockMatchTest(Blocks.END_STONE_BRICKS, 0.1f),
|
||||
AlwaysTrueTest.INSTANCE,
|
||||
EndBlocks.END_STONE_BRICK_VARIATIONS.getBlock(StoneSlots.WEATHERED).defaultBlockState()
|
||||
)
|
||||
)))
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue