diff --git a/src/main/java/org/ultramine/server/MultiWorld.java b/src/main/java/org/ultramine/server/MultiWorld.java index f8c194c..c8acf3f 100644 --- a/src/main/java/org/ultramine/server/MultiWorld.java +++ b/src/main/java/org/ultramine/server/MultiWorld.java @@ -70,6 +70,7 @@ public void handleServerWorldsInit() { + DimensionManager.registerProviderType(-10, org.ultramine.server.wempty.WorldProviderEmpty.class, false); DimensionManager.unregisterDimension(-1); DimensionManager.unregisterDimension(0); DimensionManager.unregisterDimension(1); diff --git a/src/main/java/org/ultramine/server/wempty/ChunkProviderEmpty.java b/src/main/java/org/ultramine/server/wempty/ChunkProviderEmpty.java new file mode 100644 index 0000000..1b5fdbe --- /dev/null +++ b/src/main/java/org/ultramine/server/wempty/ChunkProviderEmpty.java @@ -0,0 +1,125 @@ +package org.ultramine.server.wempty; + +import java.util.List; + +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Blocks; +import net.minecraft.util.IProgressUpdate; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; + +public class ChunkProviderEmpty implements IChunkProvider +{ + private World world; + + public ChunkProviderEmpty(World world) + { + this.world = world; + } + + @Override + public boolean chunkExists(int var1, int var2) + { + return true; + } + + @Override + public Chunk provideChunk(int par1, int par2) + { + Chunk chunk = new Chunk(this.world, par1, par2); + + byte[] arr = chunk.getBiomeArray(); + + for (int i = 0; i < arr.length; ++i) + { + arr[i] = (byte)BiomeGenBase.forest.biomeID; + } + + chunk.generateSkylightMap(); + + return chunk; + } + + @Override + public Chunk loadChunk(int var1, int var2) + { + return this.provideChunk(var1, var2); + } + + @Override + public void populate(IChunkProvider var1, int x, int z) + { + int bx = x << 4; + int bz = z << 4; + + if((x > -2 && x < 2) && (z > -2 && z < 2)) + { + for(int i = 0; i < 16; i++) + { + for(int j = 0; j < 16; j++) + { + world.setBlock(bx + i, 64, bz + j, Blocks.grass); + } + } + } + } + + @Override + public boolean saveChunks(boolean var1, IProgressUpdate var2) + { + return true; + } + + @Override + public boolean unloadQueuedChunks() + { + return false; + } + + @Override + public boolean canSave() + { + return true; + } + + @Override + public String makeString() + { + return "EmptyWorldSource"; + } + + @SuppressWarnings("rawtypes") + @Override + public List getPossibleCreatures(EnumCreatureType var1, int var2, int var3, int var4) + { + return null; + } + + @Override + public ChunkPosition func_147416_a(World var1, String var2, int var3, int var4, int var5) + { + return null; + } + + @Override + public int getLoadedChunkCount() + { + return 0; + } + + @Override + public void recreateStructures(int var1, int var2) + { + + } + + @Override + public void saveExtraData() + { + + } + +} diff --git a/src/main/java/org/ultramine/server/wempty/WorldProviderEmpty.java b/src/main/java/org/ultramine/server/wempty/WorldProviderEmpty.java new file mode 100644 index 0000000..8e08071 --- /dev/null +++ b/src/main/java/org/ultramine/server/wempty/WorldProviderEmpty.java @@ -0,0 +1,20 @@ +package org.ultramine.server.wempty; + +import net.minecraft.world.WorldProvider; +import net.minecraft.world.chunk.IChunkProvider; + +public class WorldProviderEmpty extends WorldProvider +{ + + public IChunkProvider createChunkGenerator() + { + return new ChunkProviderEmpty(worldObj); + } + + @Override + public String getDimensionName() + { + return "EmptyWorld"; + } + +}