generated from neoforged/MDK
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bef7d0a
commit f2812e5
Showing
11 changed files
with
231 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 4 additions & 0 deletions
4
src/generated/resources/.cache/103d9f3f36b01595f1aa5172191e60eff02e6924
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// 1.21 2024-06-18T10:39:24.328623 Registries | ||
51c246da2a8401911dddf9e7dca704f328f19d5f data/tutorialmod/neoforge/biome_modifier/add_example_ore.json | ||
4b902e54f6d984a4c984ec22031f30ddac055f86 data/tutorialmod/worldgen/configured_feature/example_ore.json | ||
187f7785b65f6e275c61a5fa2253cd5b00a0f8c1 data/tutorialmod/worldgen/placed_feature/example_ore.json |
6 changes: 6 additions & 0 deletions
6
src/generated/resources/data/tutorialmod/neoforge/biome_modifier/add_example_ore.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"type": "neoforge:add_features", | ||
"biomes": "#minecraft:is_overworld", | ||
"features": "tutorialmod:example_ore", | ||
"step": "underground_ores" | ||
} |
27 changes: 27 additions & 0 deletions
27
src/generated/resources/data/tutorialmod/worldgen/configured_feature/example_ore.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"type": "minecraft:ore", | ||
"config": { | ||
"discard_chance_on_air_exposure": 0.0, | ||
"size": 4, | ||
"targets": [ | ||
{ | ||
"state": { | ||
"Name": "tutorialmod:example_ore" | ||
}, | ||
"target": { | ||
"predicate_type": "minecraft:tag_match", | ||
"tag": "minecraft:stone_ore_replaceables" | ||
} | ||
}, | ||
{ | ||
"state": { | ||
"Name": "tutorialmod:deepslate_example_ore" | ||
}, | ||
"target": { | ||
"predicate_type": "minecraft:tag_match", | ||
"tag": "minecraft:deepslate_ore_replaceables" | ||
} | ||
} | ||
] | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
src/generated/resources/data/tutorialmod/worldgen/placed_feature/example_ore.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"feature": "tutorialmod:example_ore", | ||
"placement": [ | ||
{ | ||
"type": "minecraft:count", | ||
"count": 3 | ||
}, | ||
{ | ||
"type": "minecraft:in_square" | ||
}, | ||
{ | ||
"type": "minecraft:height_range", | ||
"height": { | ||
"type": "minecraft:uniform", | ||
"max_inclusive": { | ||
"absolute": 20 | ||
}, | ||
"min_inclusive": { | ||
"absolute": -64 | ||
} | ||
} | ||
}, | ||
{ | ||
"type": "minecraft:biome" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
37 changes: 37 additions & 0 deletions
37
src/main/java/io/github/realyusufismail/tutorialmod/data/worldgen/ModBiomesModifiers.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package io.github.realyusufismail.tutorialmod.data.worldgen; | ||
|
||
import io.github.realyusufismail.tutorialmod.TutorialMod; | ||
import net.minecraft.core.HolderGetter; | ||
import net.minecraft.core.HolderSet; | ||
import net.minecraft.core.registries.Registries; | ||
import net.minecraft.data.worldgen.BootstrapContext; | ||
import net.minecraft.resources.ResourceKey; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.tags.BiomeTags; | ||
import net.minecraft.world.level.biome.Biome; | ||
import net.minecraft.world.level.levelgen.GenerationStep; | ||
import net.minecraft.world.level.levelgen.placement.PlacedFeature; | ||
import net.neoforged.neoforge.common.world.BiomeModifier; | ||
import net.neoforged.neoforge.common.world.BiomeModifiers; | ||
import net.neoforged.neoforge.registries.NeoForgeRegistries; | ||
|
||
public class ModBiomesModifiers { | ||
protected static ResourceKey<BiomeModifier> ADD_EXAMPLE_ORE = registerKey("add_example_ore"); | ||
|
||
public static void bootstrap(BootstrapContext<BiomeModifier> context) { | ||
HolderGetter<PlacedFeature> placedFeatures = context.lookup(Registries.PLACED_FEATURE); | ||
HolderGetter<Biome> biomes = context.lookup(Registries.BIOME); | ||
|
||
context.register( | ||
ADD_EXAMPLE_ORE, | ||
new BiomeModifiers.AddFeaturesBiomeModifier( | ||
biomes.getOrThrow(BiomeTags.IS_OVERWORLD), | ||
HolderSet.direct(placedFeatures.getOrThrow(ModPlacedFeatures.EXAMPLE_ORE)), | ||
GenerationStep.Decoration.UNDERGROUND_ORES)); | ||
} | ||
|
||
private static ResourceKey<BiomeModifier> registerKey(String name) { | ||
return ResourceKey.create( | ||
NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name)); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
src/main/java/io/github/realyusufismail/tutorialmod/data/worldgen/ModConfiguredFeatures.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package io.github.realyusufismail.tutorialmod.data.worldgen; | ||
|
||
import io.github.realyusufismail.tutorialmod.TutorialMod; | ||
import io.github.realyusufismail.tutorialmod.init.BlockInit; | ||
import net.minecraft.core.registries.Registries; | ||
import net.minecraft.data.worldgen.BootstrapContext; | ||
import net.minecraft.resources.ResourceKey; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.tags.BlockTags; | ||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; | ||
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.OreConfiguration; | ||
import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest; | ||
import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest; | ||
|
||
import java.util.List; | ||
|
||
public class ModConfiguredFeatures { | ||
|
||
protected static ResourceKey<ConfiguredFeature<?, ?>> OVERWORLD_EXAMPLE_ORE = createKey("example_ore"); | ||
|
||
public static void boostrap(BootstrapContext<ConfiguredFeature<?, ?>> context) { | ||
RuleTest stoneReplacable = new TagMatchTest(BlockTags.STONE_ORE_REPLACEABLES); | ||
RuleTest deepslateReplacable = new TagMatchTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES); | ||
|
||
List<OreConfiguration.TargetBlockState> exampleOre = List.of(OreConfiguration.target(stoneReplacable, BlockInit.EXAMPLE_ORE.get().defaultBlockState()), | ||
OreConfiguration.target(deepslateReplacable, BlockInit.DEEPSLATE_EXAMPLE_ORE.get().defaultBlockState())); | ||
|
||
register(context, OVERWORLD_EXAMPLE_ORE, Feature.ORE, new OreConfiguration(exampleOre, 4)); | ||
} | ||
|
||
|
||
private static ResourceKey<ConfiguredFeature<?, ?>> createKey(String name) { | ||
return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name)); | ||
} | ||
|
||
private static <FC extends FeatureConfiguration, F extends Feature<FC>> void register(BootstrapContext<ConfiguredFeature<?, ?>> context, ResourceKey<ConfiguredFeature<?, ?>> key, F feature, FC config) { | ||
context.register(key, new ConfiguredFeature<>(feature, config)); | ||
} | ||
} |
21 changes: 21 additions & 0 deletions
21
src/main/java/io/github/realyusufismail/tutorialmod/data/worldgen/ModOrePlacement.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package io.github.realyusufismail.tutorialmod.data.worldgen; | ||
|
||
import net.minecraft.world.level.levelgen.placement.*; | ||
|
||
import java.util.List; | ||
|
||
public class ModOrePlacement { | ||
|
||
private static List<PlacementModifier> orePlacements(PlacementModifier placementModifier, PlacementModifier placementModifier1) { | ||
return List.of(placementModifier, InSquarePlacement.spread(), placementModifier1, BiomeFilter.biome()); | ||
} | ||
|
||
|
||
public static List<PlacementModifier> commonOrePlacements(int count, PlacementModifier placementModifier) { | ||
return orePlacements(CountPlacement.of(count), placementModifier); | ||
} | ||
|
||
public static List<PlacementModifier> rareOrePlacements(int count, PlacementModifier placementModifier) { | ||
return orePlacements(RarityFilter.onAverageOnceEvery(count), placementModifier); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
src/main/java/io/github/realyusufismail/tutorialmod/data/worldgen/ModPlacedFeatures.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package io.github.realyusufismail.tutorialmod.data.worldgen; | ||
|
||
import io.github.realyusufismail.tutorialmod.TutorialMod; | ||
import net.minecraft.core.Holder; | ||
import net.minecraft.core.HolderGetter; | ||
import net.minecraft.core.registries.Registries; | ||
import net.minecraft.data.worldgen.BootstrapContext; | ||
import net.minecraft.resources.ResourceKey; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.world.level.levelgen.VerticalAnchor; | ||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; | ||
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; | ||
import net.minecraft.world.level.levelgen.placement.PlacedFeature; | ||
import net.minecraft.world.level.levelgen.placement.PlacementModifier; | ||
|
||
import java.util.List; | ||
|
||
public class ModPlacedFeatures { | ||
|
||
protected static ResourceKey<PlacedFeature> EXAMPLE_ORE = createKey("example_ore"); | ||
|
||
public static void bootstrap(BootstrapContext<PlacedFeature> context) { | ||
HolderGetter<ConfiguredFeature<?, ?>> configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE); | ||
|
||
Holder<ConfiguredFeature<?, ?>> holder = | ||
configuredFeatures.getOrThrow(ModConfiguredFeatures.OVERWORLD_EXAMPLE_ORE); | ||
|
||
// 3 veins per chunk, between y -64 and 20 | ||
register(context, EXAMPLE_ORE, holder, ModOrePlacement.commonOrePlacements(3, HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(20)))); | ||
} | ||
|
||
|
||
private static ResourceKey<PlacedFeature> createKey(String name) { | ||
return ResourceKey.create(Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name)); | ||
} | ||
|
||
|
||
private static void register(BootstrapContext<PlacedFeature> context, ResourceKey<PlacedFeature> key, Holder<ConfiguredFeature<?, ?>> feature, List<PlacementModifier> placements) { | ||
context.register(key, new PlacedFeature(feature, placements)); | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/io/github/realyusufismail/tutorialmod/data/worldgen/ModWorldGenProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package io.github.realyusufismail.tutorialmod.data.worldgen; | ||
|
||
import io.github.realyusufismail.tutorialmod.TutorialMod; | ||
import net.minecraft.core.HolderLookup; | ||
import net.minecraft.core.RegistrySetBuilder; | ||
import net.minecraft.core.registries.Registries; | ||
import net.minecraft.data.PackOutput; | ||
import net.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; | ||
import net.neoforged.neoforge.registries.NeoForgeRegistries; | ||
|
||
import java.util.Set; | ||
import java.util.concurrent.CompletableFuture; | ||
|
||
public class ModWorldGenProvider extends DatapackBuiltinEntriesProvider { | ||
public ModWorldGenProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) { | ||
super(output, registries, | ||
new RegistrySetBuilder() | ||
.add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::boostrap) | ||
.add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap) | ||
.add(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ModBiomesModifiers::bootstrap), | ||
Set.of(TutorialMod.MOD_ID)); | ||
} | ||
} |