我的世界1.15.2的随机矿石生成遇到麻烦

时间:2020-02-23 19:01:16

标签: minecraft minecraft-forge

因此,我正在尝试制作具有随机生成矿石的Minecraft Mod。我在代码的这一部分遇到了问题。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
    int N,i,j,brojac=0;
    vector<string> recenice;
    string pom;
    cin>>N;

    for(i=0;i<N;i++){
        cin.ignore();
        getline(cin, pom);
        recenice.push_back(pom);
    }

    for(i=0;i<recenice.size();i++){
            for(j=0;j<recenice[i].size();j++){
                if(recenice[i][j]=='a' || recenice[i][j]=='e' || recenice[i][j]=='i' || recenice[i][j]=='o' || recenice[i][j]=='u' || recenice[i][j]=='A' || recenice[i][j]=='E' || recenice[i][j]=='I' || recenice[i][j]=='O' || recenice[i][j]=='U') ++brojac;
            }
            cout<<brojac<<endl<<endl;
            brojac=0;
    }

    return 0;
}

上面写着import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biomes; import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.OreFeatureConfig; import net.minecraft.world.gen.placement.ConfiguredPlacement; import net.minecraft.world.gen.placement.CountRangeConfig; import net.minecraft.world.gen.placement.Placement; import net.minecraftforge.registries.ForgeRegistries; public class ModOreGen { public static void generateOre() { for (Biome biome : ForgeRegistries.BIOMES) { if (biome == Biomes.BAMBOO_JUNGLE) { ConfiguredPlacement<CountRangeConfig> customConfig = Placement.COUNT_RANGE .func_227446_a_(new CountRangeConfig(9, 10, 10, 0)); biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES,Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE, blockinit.chocolate_ore.getDefaultState(), 10)).withPlacement(customConfig)); } } } } 的地方给了我错误:

.withConfiguration

我已经尝试过更新映射等,但是没有任何帮助。这个问题困扰了我好几天了。发生什么事了?

2 个答案:

答案 0 :(得分:0)

我的代码也遇到了同样的问题,终于解决了。试试吧!

import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biomes;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.placement.ConfiguredPlacement;
import net.minecraft.world.gen.placement.CountRangeConfig;
import net.minecraft.world.gen.placement.Placement;
import net.minecraftforge.registries.ForgeRegistries;

public class ModOreGen {
    public static void generateOre() {
        for (Biome biome : ForgeRegistries.BIOMES) {
            if(biome == Biomes.BAMBOO_JUNGLE) {  
                ConfiguredPlacement<?> customConfig = Placement.COUNT_RANGE
                    .configure(new CountRangeConfig(9, 10, 10, 0));
            biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(newOreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE,BlockInit.chocolate_ore.getDefaultState(), 10)).withPlacement(customConfig));
            }
        }
    }
}

答案 1 :(得分:0)

Sammerson所做的显而易见的事情是删除CountRangeConfig的强类型: ConfiguredPlacement<?>,但这没关系。

您看不到的是将Forge更新到1.15.2。

这很可能是您的最佳解决方案。在build.gradle中,靠近顶部的位置(我的行是28行),您可能已经将映射更新为:

    mappings channel: 'snapshot', version: '20200409-1.15.1'

但是您也想下降并更新Forge版本(对我来说这是第90行)。

    dependencies {
        minecraft 'net.minecraftforge:forge:1.15.2-31.1.0'
    }

您需要执行相同的操作

gradlew genEclipseRuns
gradlew eclipse

就像更新映射一样。

(您可以查看Forge页面,在其他人阅读此书时,可能会有比1.15.2更高的版本。我希望任何使用IntelliJ的人都可以弄清楚如何更新自己的映射/伪造。) / p>