物品:

package com.example.mod.items;

import net.minecraft.item.Item;

public class ModItem extends Item {
    public ModItem(Properties properties) {
        super(properties);
    }
}

方块:

package com.example.mod.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class ModBlock extends Block {
    public ModBlock() {
        super(Properties.create(Material.ROCK));
    }
}

实体:

package com.example.mod.entities;

import net.minecraft.entity.EntityType;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.world.World;

public class ModEntity extends MonsterEntity {
    public ModEntity(EntityType<? extends MonsterEntity> entityType, World world) {
        super(entityType, world);
    }
}

群系:

package com.example.mod.biomes;

import net.minecraft.world.biome.Biome;

public class ModBiome extends Biome {
    public ModBiome(Builder biomeBuilder) {
        super(biomeBuilder);
    }
}

维度:

package com.example.mod.dimensions;

import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Features;
import net.minecraft.world.gen.feature.structure.StructureFeatures;
import net.minecraft.world.gen.settings.DimensionGeneratorSettings;
import net.minecraft.world.gen.settings.DimensionStructuresSettings;
import net.minecraftforge.common.world.ForgeWorldType;
import net.minecraftforge.common.world.WorldGenSettingsBuilder;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModDimension {
    public static final ForgeWorldType MOD_WORLD_TYPE = new ForgeWorldType(new ModWorldType());

    @SubscribeEvent
    public static void setupDimension(FMLCommonSetupEvent event) {
        DimensionGeneratorSettings.defaultSettings().withGeneratorSettings(
            new WorldGenSettingsBuilder().withStructureFeature(
                StructureFeatures.VILLAGE.withConfiguration(new VillageConfig("village/mod/town_centers", 6)))
            .build()
        ).build();

        DimensionStructuresSettings.field_236191_b_ = new DimensionStructuresSettings(
            true, // has stronghold
            0, // stronghold distance
            0, // stronghold count
            null // stronghold positions
        );

        GenerationStage.Decoration.SURFACE_STRUCTURES.withFeature(
            Features.VILLAGE.withConfiguration(new VillageConfig("village/mod/town_centers", 6))
        );
    }
}

UI:

package com.example.mod.client.gui;

import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.text.ITextComponent;

public class ModScreen extends Screen {
    public ModScreen(ITextComponent titleIn) {
        super(titleIn);
    }

    @Override
    public void render(int mouseX, int mouseY, float partialTicks) {
        // render UI here
    }
}

结构:

package com.example.mod.structures;

import net.minecraft.util.ResourceLocation;
import net.minecraft.world.gen.feature.structure.Structure;
import net.minecraft.world.gen.feature.structure.Structure.IStructurePieceType;

public class ModStructure extends Structure<ModStructureConfig> {
    public static final IStructurePieceType PIECE_TYPE = ModStructurePiece::new;

    public ModStructure() {
        super(ModStructureConfig.CODEC);
    }

    @Override
    public IStartFactory<ModStructureConfig> getStartFactory() {
        return ModStructureStart::new;
    }

    @Override
    public String getStructureName() {
        return new ResourceLocation("mod", "structure").toString();
    }

    @Override
    public int getSize() {
        return 0;
    }
}
``
Minecraft1122forge 完整实现新增一个物品一个方块一个实体一个群系一个维度一个UI一个结构 代码示例

原文地址: https://www.cveoy.top/t/topic/fj9q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录