任丘市奥力斯涂料厂

江门泡沫板胶价格 Minecraft Forge Mod Dev tutorial

发布日期:2026-04-20 07:14 点击次数:103 你的位置:任丘市奥力斯涂料厂 > 联系奥力斯 >
万能胶 自定义生物群系和世界类型

在这节中,我们将来学习如何添加个自定义的生物群系江门泡沫板胶价格,

和结构类似,先我们的新建个类,继承原版的生物群系。

public class ObsidianBiome extends Biome {
    protected ObsidianBiome(Builder biomeBuilder) {
        super(biomeBuilder);
        this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE, Blocks.GOLD_ORE.getDefaultState(), 9)).withPlacement(Placement.COUNT_RANGE.configure(new CountRangeConfig(2, 32, 32, 8))));
        this.addSpawn(EntityClassification.AMBIENT, new SpawnListEntry(EntityType.WITHER_SKELETON, 3, 5, 1));
        DefaultBiomeFeatures.addCarvers(this);
    }
}

可以看到这里的内容非常的简单,不过就是给我的的生物群系添加Feature子类的,之前已经写过自然生成的大对这些法并不陌生。唯个值得说的是DefaultBiomeFeatures,原版在这里定义了些预先设置好的Feature、Structure、Carvers和Spawn,大可以直接调用里面自带的法。

接下来就是注册我们的生物群系

public class BiomeRegistry {
    public static final DeferredRegister<Biome> BIOMES = new DeferredRegister<>(ForgeRegistries.BIOMES, "neutrino");
    public static RegistryObject<ObsidianBiome> obsidianBiome = BIOMES.register("obsidian_biome", () -> {
        return new ObsidianBiome(new Biome.Builder().category(Biome.Category.PLAINS)
                .surfaceBuilder(SurfaceBuilder.DEFAULT,
                        new SurfaceBuilderConfig(Blocks.OBSIDIAN.getDefaultState(), Blocks.STONE.getDefaultState(), Blocks.END_STONE.getDefaultState())
                )
                .scale(3f)
                .downfall(.5f)
                .precipitation(Biome.RainType.SNOW)
                .depth(1f)
                .temperature(.7f)
                .waterColor(xca15)
                .waterFogColor(x632ebf)
        );
    });
}

这里的内容也类似,因为这里的参数过多,很多参数也没发简单的解释,这里就不多加解释为什么了。我建议大自行参照原版的实现填写内容。

当然别忘了在Mod主类中,将BIOMES注册到Mod总线中。

创建完成之后,接下来就是将我们的生物群系添加到主世界的世界生成中。

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class CommonSetupEvent {
    @SubscribeEvent
    public static void onCommonSetup(FMLCommonSetupEvent event) {
        BiomeManager.addBiome(BiomeManager.BiomeType.COOL, new BiomeManager.BiomeEntry(BiomeRegistry.obsidianBiome.get(), 1));
    }
}

这里我们在FMLCommonSetupEvent世界中江门泡沫板胶价格,调用BiomeManager.addBiome添加了我们的生物群系,BiomeManager.BiomeEntry构造法的二个参数是权重,这里我们填的点让我们的生物群系容易被找到。

开游戏寻找下,万能胶生产厂家应该就能看见我们的生物群系了。

但是寻找生物群系有时候是非常麻烦的事情,我们可以创建个WorldType来帮助我们调试生物群系。所谓的WorldType就是原版中的默认、平坦、巨大化等。

当然,创建个自定义的也非常简单

public class ObsidianWorldType extends WorldType {
    public ObsidianWorldType() {
        super("neutrino_type");
    }

    @Override
    public ChunkGenerator<?> createChunkGenerator(World world) {
        OverworldGenSettings settings = new OverworldGenSettings();
        SingleBiomeProvider singleBiomeProvider = new SingleBiomeProvider(new SingleBiomeProviderSettings(world.getWorldInfo()).setBiome(BiomeRegistry.obsidianBiome.get()));
        return new OverworldChunkGenerator(world, singleBiomeProvider, settings);
    }
}

这里我们直接继承了WorldType类。

它的构造法里需要填入个名字,请注意这个名字不能过16个字符

然后就是他的createChunkGenerator法,这里需要返回个ChunkGenerator,因为我们希望能像原版主世界的样的地形起伏,所以返回的是OverworldChunkGenerator。因为我们只需要生成种生物群系,所以在这里用了 SingleBiomeProvider(单生物群系提供器)。还有个OverworldGenSettings就没什么好讲的了。

创建完成之后,我们只需要在你的主类中,创建个变量实例化它就行。

@Mod("neutrino")
public class Neutrino {
   public static final ObsidianWorldType obsidianWorldType = new ObsidianWorldType();
   public Neutrino() {
   ...代码省略...

此时开游戏,你应该就能看见新的世界类型了

奥力斯    保温护角专用胶批发    联系人:王经理    手机:13903175735(微信同号)    地址:河北省任丘市北辛庄乡南代河工业区

创建个存档试试吧。

源代码

相关词条:储罐保温     异型材设备     钢绞线厂家    玻璃丝棉厂家    万能胶厂家

1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。

热点资讯

推荐资讯

最新资讯