Minecraft1122forge 完整实现新增一个物品一个方块一个实体一个群系一个维度一个UI一个结构 代码示例
物品:
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;
}
}
``
原文地址: https://www.cveoy.top/t/topic/fj9q 著作权归作者所有。请勿转载和采集!