提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
19行目: 19行目:
 
#* 第五引数(boolean):ディメンションをアンロードしないかどうか
 
#* 第五引数(boolean):ディメンションをアンロードしないかどうか
 
# 「DimensionManager#registerDimension」を呼び出し、こちらにもディメンションを登録します。
 
# 「DimensionManager#registerDimension」を呼び出し、こちらにもディメンションを登録します。
 
 
<source lang="java" line>
 
package samplemod;
 
 
import net.minecraft.world.DimensionType;
 
import net.minecraftforge.common.DimensionManager;
 
import net.minecraftforge.fml.common.Mod;
 
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
 
import samplemod.world.sample.WorldProviderSample;
 
 
@Mod(modid = SampleMod.MOD_ID, name = SampleMod.MOD_NAME, version = SampleMod.MOD_VERSION)
 
public class SampleMod {
 
    public static final String MOD_ID = "samplemod";
 
    public static final String MOD_NAME = "Sample Mod";
 
    public static final String MOD_VERSION = "0.1.0";
 
 
    public static DimensionType SAMPLE_DIMENSION;
 
 
    @Mod.EventHandler
 
    public void preInit(FMLPreInitializationEvent event) {
 
        SAMPLE_DIMENSION = DimensionType.register("Sample Dimension", "_sample", DimensionManager.getNextFreeDimId(), WorldProviderSample.class, false);
 
        DimensionManager.registerDimension(SAMPLE_DIMENSION.getId(), SAMPLE_DIMENSION);
 
 
    }
 
 
}
 
 
</source>
 
  
 
==== WorldProvider ====
 
==== WorldProvider ====
56行目: 27行目:
 
# 「DimensionType」の項で得た、このWorldProviderに対応する「DimensionType」列挙子を「getDimensionType」から返します。
 
# 「DimensionType」の項で得た、このWorldProviderに対応する「DimensionType」列挙子を「getDimensionType」から返します。
  
{| class="wikitable"
+
{|
 
!フィールド名!!影響!!参考
 
!フィールド名!!影響!!参考
 
|-
 
|-
75行目: 46行目:
  
  
{| class="wikitable"
+
{|
 
!メソッド名!!影響!!参考
 
!メソッド名!!影響!!参考
 
|-
 
|-
124行目: 95行目:
 
### byte配列のindexに対応するバイオームIDをBiome配列から取り出して代入します(配列はオブジェクトなので、Chunkが持つ配列が変更されます)。
 
### byte配列のindexに対応するバイオームIDをBiome配列から取り出して代入します(配列はオブジェクトなので、Chunkが持つ配列が変更されます)。
  
{| class="wikitable"
+
{|
 
!メソッド名!!操作!!参考
 
!メソッド名!!操作!!参考
 
|-
 
|-
154行目: 125行目:
 
* net.minecraft.world.gen.structure#MapGenStructure#recursiveGenerate
 
* net.minecraft.world.gen.structure#MapGenStructure#recursiveGenerate
 
|}
 
|}
 
===== 例:岩盤の床だけのチャンクを生成する =====
 
Y=0に岩盤の床があるだけのチャンクを生成します。
 
 
ChunkGeneratorEmpty.java
 
<source lang="java" line>
 
package samplemod.world.empty;
 
 
import net.minecraft.entity.EnumCreatureType;
 
import net.minecraft.init.Blocks;
 
import net.minecraft.util.math.BlockPos;
 
import net.minecraft.world.World;
 
import net.minecraft.world.biome.Biome;
 
import net.minecraft.world.chunk.Chunk;
 
import net.minecraft.world.chunk.ChunkPrimer;
 
import net.minecraft.world.chunk.IChunkGenerator;
 
 
import javax.annotation.Nullable;
 
import java.util.List;
 
 
public class ChunkGeneratorEmpty implements IChunkGenerator {
 
    private World world;
 
 
    public ChunkGeneratorEmpty(World worldIn) {
 
        world = worldIn;
 
    }
 
 
    public void genSurface(Chunk chunk) {
 
        for (int x = 0; x < 16; x++)
 
            for (int z = 0; z < 16; z++)
 
                chunk.setBlockState(new BlockPos(x, 0, z), Blocks.BEDROCK.getDefaultState());
 
    }
 
 
    @Override
 
    public Chunk provideChunk(int x, int z) {
 
        ChunkPrimer chunkPrimer = new ChunkPrimer();
 
 
        Chunk chunk = new Chunk(world, chunkPrimer, x, z);
 
        genSurface(chunk);
 
 
        Biome[] abiome = world.getBiomeProvider().getBiomes(null, x * 16, z * 16, 16, 16);
 
        byte[] abyte = chunk.getBiomeArray();
 
 
        for (int i = 0; i < abiome.length; i++)
 
            abyte[i] = (byte) Biome.getIdForBiome(abiome[i]);
 
 
        chunk.resetRelightChecks();
 
        return chunk;
 
    }
 
 
    @Override
 
    public void populate(int x, int z) {
 
    }
 
 
    @Override
 
    public boolean generateStructures(Chunk chunkIn, int x, int z) {
 
        return false;
 
    }
 
 
    @Override
 
    public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) {
 
        return world.getBiome(pos).getSpawnableList(creatureType);
 
    }
 
 
    @Nullable
 
    @Override
 
    public BlockPos getStrongholdGen(World worldIn, String structureName, BlockPos position, boolean p_180513_4_) {
 
        return null;
 
    }
 
 
    @Override
 
    public void recreateStructures(Chunk chunkIn, int x, int z) {
 
 
    }
 
}
 
 
</source>
 
  
  
245行目: 139行目:
 
# 「makePortal」、「placeInExistingPortal」を再実装します。「placeInPortal」はエンドへの転送時の足場生成を変更する場合のみ、再実装するとよいでしょう。
 
# 「makePortal」、「placeInExistingPortal」を再実装します。「placeInPortal」はエンドへの転送時の足場生成を変更する場合のみ、再実装するとよいでしょう。
  
{| class="wikitable"
+
{|
 
!メソッド名!!操作
 
!メソッド名!!操作
 
|-
 
|-

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)