因此,我正在尝试制作具有随机生成矿石的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
我已经尝试过更新映射等,但是没有任何帮助。这个问题困扰了我好几天了。发生什么事了?
答案 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>