22 août 2019, 18:35

Sommaire du tutoriel

Introduction

Bonjour, Dans ce petit tutoriel on vas voir comment faire de la génération de minerais sur la forge 1.14.4.

Si vous avais vue le tuto de DailyCraft vous devais être à l’aise avec ce qui vas être montré ici.

Pré-requis

  • Avoir la base d’un mod
  • Avoir des block a générés dans le monde

Préparation du code nécessaire a la génération des minerais

Commencé d’abord par créer un class avec le nom que vous souhait (dans mon cas ModSetup).

Dès que vous avais votre class ajouté ce code si-dessous

public class ModSetup {

    public void init() {
        //OreGenerator
        for(Biome biome : ForgeRegistries.BIOMES) {

        }
    }
}

ce bout de code a pour but de donnée l’un après l’autre tout les biomes de Minecraft dans la variable biome.

Note

Vous pouvais utiliser Biomes au dehors du for pour cible un biome précis, ex: Biomes.JUNGLE

En suis vous aller dans la class principal de votre mod et dans setup pour appelés la fonction qui mes en place la génération des minerais (dans mon cas init()), ce qui donne:

[...]
public static ModSetup setup = new ModSetup();
[...]
private void setup(final FMLCommonSetupEvent event) {
    [...]
    setup.init();
    [...]
}
[...]

La génération de minerais dans l’Overworld

pour l’overworld vous utiliserais la majorité du temps cette ‘fonction’

biome.addFeature(
        GenerationStage.Decoration.UNDERGROUND_ORES,
        Biome.createDecoratedFeature(Feature.ORE,
                new OreFeatureConfig(
                        FillerBlockType.NATURAL_STONE,
                        MesBlocks.MON_BLOCK.getDefaultState(),
                        12/* *1 */),
                Placement.COUNT_RANGE,
                new CountRangeConfig(
                        34/* *2 */,
                        20/* *3 */,
                        0,
                        128/* *4 */
                )
        )
);

Donc cette fonction a pour but d’ajout en premier temps une GenerationStage au biome qui et dans notre cas GenerationStage.Decoration.UNDERGROUND_ORES (ceci correspond à la generation des sous-sol), après avoir donnée le type de GenerationStage nous lui donnons la Feature qu’il doit appliquer dans notre cas DecoratedFeature avec le type Feature.ORE après avoir donnée ceci on lui donnée les configs de cette Feature, dans notre cas on veut remplacer la stone(FillerBlockType.NATURAL_STONE) par notre block(MesBlocks.MON_BLOCK.getDefaultState()), et pour finaliser la generation il faut le paramettre de propabilité de placé la Feature dans votre monde, *1 c’est la taille maximale du group de minerais qu’il vas placer, *2 c’est le nombre de group de minerais dans un chunck, *3 c’est l’hauteur ninimium par rapport a y = 0 et enfin *4 c’est l’hauteur maximium par rapport a y = 0.

La génération de minerais dans le Nether

Alors pour le Nether ce là vas être rapide car c’est la même chose qu’audessu sauf que long doit changer FillerBlockType.NATURAL_STONE par FillerBlockType.NETHERRACK ce qui donne:

biome.addFeature(
        GenerationStage.Decoration.UNDERGROUND_ORES,
        Biome.createDecoratedFeature(Feature.ORE,
                new OreFeatureConfig(
                        FillerBlockType.NETHERRACK,
                        MesBlocks.MON_BLOCK.getDefaultState(),
                        12/* *1 */),
                Placement.COUNT_RANGE,
                new CountRangeConfig(
                        34/* *2 */,
                        20/* *3 */,
                        0,
                        128/* *4 */
                )
        )
);

Au niveau explication c’est la même chose que pour l’overworld, sauf que FillerBlockType.NETHERRACK a pour but de replacé la netherrack au lieu de la stone.

La génération de minerais dans l’End

Et pour terminer ce petit tutoriel on fini par l’end qui et différent des autres dimension car ‘FillerBlockType’ prend en conte que la stone et la netherrack, voici le code:

biome.addFeature(
        GenerationStage.Decoration.UNDERGROUND_DECORATION,
        Biome.createDecoratedFeature(Feature.EMERALD_ORE,
                new ReplaceBlockConfig(
                        Blocks.END_STONE.getDefaultState(),
                        MesBlocks.MON_BLOCK.getDefaultState()
                ),
                Placement.COUNT_RANGE,
                new CountRangeConfig(
                        32/* *2 */,
                        20/* *3 */,
                        0,
                        70/* *4 */)
        )
);

Ici nous utilisons ReplaceBlockConfig au lieu du OreFeatureConfig c’est pour cela que l’on a un Feature.EMERALD_ORE et non un Feature.ORE car Feature.ORE ne prend pas en charge le ReplaceBlockConfig,
donc avec cela on replacer un block d’end stone(Blocks.END_STONE.getDefaultState()) par notre block, et pour le reste c’est la même chose sauf que l’on ne peut faire des groupes de minerais.

Licence et attribution

Creative Commons

Ce tutoriel rédigé par AlasDiablo et publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

retourSommaire des tutoriels