فهرست منبع

split generation into two stages

jstzwj 6 سال پیش
والد
کامیت
750593164a

+ 3 - 3
src/MineCase.Algorithm/World/Biomes/Biome.cs

@@ -226,7 +226,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        public void GenerateOre(MinableGenerator generator, IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos position, int count, int minHeight, int maxHeight)
+        public void GenerateOre(MinableGenerator generator, IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos position, int count, int minHeight, int maxHeight)
         {
             if (minHeight > maxHeight)
             {
@@ -254,7 +254,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 后期添加一些方块,Biome基类主要生成矿物
-        public virtual void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public virtual void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             GenerateOre(_dirtGen, world, grainFactory, chunk, rand, pos, _genSettings.DirtCount, _genSettings.DirtMaxHeight, _genSettings.DirtMinHeight);
             GenerateOre(_gravelOreGen, world, grainFactory, chunk, rand, pos, _genSettings.GravelCount, _genSettings.GravelMaxHeight, _genSettings.GravelMinHeight);
@@ -271,7 +271,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public virtual void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public virtual void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;

+ 3 - 3
src/MineCase.Algorithm/World/Biomes/BiomeDesert.cs

@@ -37,7 +37,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             GenCacti(world, grainFactory, chunk, rand, pos);
 
@@ -46,7 +46,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -61,7 +61,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenCacti(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenCacti(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int cactiMaxNum = random.Next(_cactiPerChunk);
 

+ 6 - 6
src/MineCase.Algorithm/World/Biomes/BiomeForest.cs

@@ -36,7 +36,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             float grassColor = (_grassColorNoise.Noise((pos.X + 8) / 200.0F, 0.0F, (pos.Z + 8) / 200.0F) - 0.5F) * 2;
 
@@ -88,7 +88,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -103,7 +103,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int grassMaxNum = random.Next(_grassPerChunk);
             GrassGenerator generator = new GrassGenerator();
@@ -122,7 +122,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int flowersMaxNum = random.Next(_flowersPerChunk);
             FlowersGenerator generator = new FlowersGenerator();
@@ -141,7 +141,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleFlowersGenerator generator = new DoubleFlowersGenerator(PlantsType.Sunflower);
             for (int flowersNum = 0; flowersNum < 10; ++flowersNum)
@@ -159,7 +159,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleGrassGenerator generator = new DoubleGrassGenerator(PlantsType.DoubleTallgrass);
             for (int grassNum = 0; grassNum < 2; ++grassNum)

+ 3 - 3
src/MineCase.Algorithm/World/Biomes/BiomeHill.cs

@@ -60,13 +60,13 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             GenTrees(world, grainFactory, chunk, rand, pos);
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -100,7 +100,7 @@ namespace MineCase.Algorithm.World.Biomes
             base.GenerateBiomeTerrain(seaLevel, rand, chunk, chunk_x, chunk_z, x_in_chunk, z_in_chunk, noiseVal);
         }
 
-        public void GenTrees(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        public void GenTrees(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int treesPerChunk = _treesPerChunk;
 

+ 1 - 1
src/MineCase.Algorithm/World/Biomes/BiomeOcean.cs

@@ -23,7 +23,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;

+ 6 - 6
src/MineCase.Algorithm/World/Biomes/BiomePlains.cs

@@ -35,7 +35,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             float grassColor = (_grassColorNoise.Noise((pos.X + 8) / 200.0F, 0.0F, (pos.Z + 8) / 200.0F) - 0.5F) * 2;
 
@@ -87,7 +87,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -102,7 +102,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int grassMaxNum = random.Next(_grassPerChunk);
             GrassGenerator generator = new GrassGenerator();
@@ -121,7 +121,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int flowersMaxNum = random.Next(_flowersPerChunk);
             FlowersGenerator generator = new FlowersGenerator();
@@ -140,7 +140,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleFlowersGenerator generator = new DoubleFlowersGenerator(PlantsType.Sunflower);
             for (int flowersNum = 0; flowersNum < 10; ++flowersNum)
@@ -158,7 +158,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleGrassGenerator generator = new DoubleGrassGenerator(PlantsType.DoubleTallgrass);
             for (int grassNum = 0; grassNum < 2; ++grassNum)

+ 6 - 6
src/MineCase.Algorithm/World/Biomes/BiomeSwamp.cs

@@ -38,7 +38,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             float grassColor = (_grassColorNoise.Noise((pos.X + 8) / 200.0F, 0.0F, (pos.Z + 8) / 200.0F) - 0.5F) * 2;
 
@@ -90,7 +90,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -105,7 +105,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int grassMaxNum = random.Next(_grassPerChunk);
             GrassGenerator generator = new GrassGenerator();
@@ -124,7 +124,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int flowersMaxNum = random.Next(_flowersPerChunk);
             FlowersGenerator generator = new FlowersGenerator();
@@ -143,7 +143,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleFlowersGenerator generator = new DoubleFlowersGenerator(PlantsType.Sunflower);
             for (int flowersNum = 0; flowersNum < 10; ++flowersNum)
@@ -161,7 +161,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleGrassGenerator generator = new DoubleGrassGenerator(PlantsType.DoubleTallgrass);
             for (int grassNum = 0; grassNum < 2; ++grassNum)

+ 6 - 6
src/MineCase.Algorithm/World/Biomes/BiomeTaiga.cs

@@ -71,7 +71,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加其他东西
-        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void Decorate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             float grassColor = (_grassColorNoise.Noise((pos.X + 8) / 200.0F, 0.0F, (pos.Z + 8) / 200.0F) - 0.5F) * 2;
 
@@ -136,7 +136,7 @@ namespace MineCase.Algorithm.World.Biomes
         }
 
         // 添加生物群系特有的生物
-        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos pos)
+        public override void SpawnMob(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos pos)
         {
             ChunkWorldPos chunkPos = pos.ToChunkWorldPos();
             int seed = chunkPos.Z * 16384 + chunkPos.X;
@@ -151,7 +151,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int grassMaxNum = random.Next(_grassPerChunk);
             GrassGenerator generator = new GrassGenerator();
@@ -170,7 +170,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int flowersMaxNum = random.Next(_flowersPerChunk);
             FlowersGenerator generator = new FlowersGenerator();
@@ -189,7 +189,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleFlowers(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleFlowersGenerator generator = new DoubleFlowersGenerator(PlantsType.Sunflower);
             for (int flowersNum = 0; flowersNum < 10; ++flowersNum)
@@ -207,7 +207,7 @@ namespace MineCase.Algorithm.World.Biomes
             }
         }
 
-        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        private void GenDoubleGrass(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             DoubleGrassGenerator generator = new DoubleGrassGenerator(PlantsType.DoubleTallgrass);
             for (int grassNum = 0; grassNum < 2; ++grassNum)

+ 1 - 1
src/MineCase.Algorithm/World/Mine/MinableGenerator.cs

@@ -17,7 +17,7 @@ namespace MineCase.Algorithm.World.Mine
             NumberOfBlocks = blockCount;
         }
 
-        public void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random rand, BlockWorldPos position)
+        public void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random rand, BlockWorldPos position)
         {
             // 在xz平面上的方向
             float angle = (float)rand.NextDouble() * (float)Math.PI;

+ 2 - 2
src/MineCase.Algorithm/World/Plants/CactiGenerator.cs

@@ -15,7 +15,7 @@ namespace MineCase.Algorithm.World.Plants
             _minCactiHeight = cactiHeight;
         }
 
-        public bool CanCactiGrow(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos, int height)
+        public bool CanCactiGrow(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos, int height)
         {
             bool result = true;
 
@@ -61,7 +61,7 @@ namespace MineCase.Algorithm.World.Plants
             }
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int height = random.Next(3) + _minCactiHeight;
             BlockChunkPos chunkPos = pos.ToBlockChunkPos();

+ 2 - 2
src/MineCase.Algorithm/World/Plants/DoubleFlowersGenerator.cs

@@ -17,7 +17,7 @@ namespace MineCase.Algorithm.World.Plants
             _flowersMaxNum = maxNum;
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int num = random.Next(_flowersMaxNum);
             for (int i = 0; i < num; ++i)
@@ -34,7 +34,7 @@ namespace MineCase.Algorithm.World.Plants
             }
         }
 
-        public bool CanFlowerGrow(PlantsType type, ChunkColumnStorage chunk, BlockChunkPos pos)
+        public bool CanFlowerGrow(PlantsType type, ChunkColumnCompactStorage chunk, BlockChunkPos pos)
         {
             if (chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.GrassBlock() ||
                 chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.Dirt())

+ 2 - 2
src/MineCase.Algorithm/World/Plants/DoubleGrassGenerator.cs

@@ -17,7 +17,7 @@ namespace MineCase.Algorithm.World.Plants
             _grassMaxNum = maxNum;
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int num = random.Next(_grassMaxNum);
             for (int i = 0; i < num; ++i)
@@ -34,7 +34,7 @@ namespace MineCase.Algorithm.World.Plants
             }
         }
 
-        public bool CanGrassGrow(PlantsType type, ChunkColumnStorage chunk, BlockChunkPos pos)
+        public bool CanGrassGrow(PlantsType type, ChunkColumnCompactStorage chunk, BlockChunkPos pos)
         {
             if (chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.GrassBlock() ||
                 chunk[pos.X, pos.Y - 1, pos.Z] == BlockStates.Dirt())

+ 1 - 1
src/MineCase.Algorithm/World/Plants/FlowersGenerator.cs

@@ -12,7 +12,7 @@ namespace MineCase.Algorithm.World.Plants
         {
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             BlockChunkPos chunkPos = pos.ToBlockChunkPos();
             int x = chunkPos.X;

+ 1 - 1
src/MineCase.Algorithm/World/Plants/GrassGenerator.cs

@@ -12,7 +12,7 @@ namespace MineCase.Algorithm.World.Plants
         {
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             BlockChunkPos chunkPos = pos.ToBlockChunkPos();
             int x = chunkPos.X;

+ 1 - 1
src/MineCase.Algorithm/World/Plants/PlantsGenerator.cs

@@ -26,7 +26,7 @@ namespace MineCase.Algorithm.World.Plants
         //    }
         //    return BlockState;
         // }
-        public virtual void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public virtual void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
         }
     }

+ 1 - 1
src/MineCase.Algorithm/World/Plants/Taiga2Generator.cs

@@ -26,7 +26,7 @@ namespace MineCase.Algorithm.World.Plants
             _leaves = BlockStates.Leaves(LeaveType.Spruce);
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int height = random.Next(4) + 6;
             int j = 1 + random.Next(2);

+ 1 - 1
src/MineCase.Algorithm/World/Plants/TaigaGenerator.cs

@@ -26,7 +26,7 @@ namespace MineCase.Algorithm.World.Plants
             _leaves = BlockStates.Leaves(LeaveType.Spruce);
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int height = random.Next(5) + 7;
             int heightLeaves = height - random.Next(2) - 3;

+ 2 - 2
src/MineCase.Algorithm/World/Plants/TreeGenerator.cs

@@ -40,7 +40,7 @@ namespace MineCase.Algorithm.World.Plants
             }
         }
 
-        public bool CanTreeGrow(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos, int height)
+        public bool CanTreeGrow(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos, int height)
         {
             bool result = true;
 
@@ -88,7 +88,7 @@ namespace MineCase.Algorithm.World.Plants
             return result;
         }
 
-        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Biome biome, Random random, BlockWorldPos pos)
+        public override void Generate(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Biome biome, Random random, BlockWorldPos pos)
         {
             int height = random.Next(3) + _minTreeHeight;
 

+ 2 - 0
src/MineCase.Server.Grains/World/ChunkColumnGrain.cs

@@ -194,6 +194,8 @@ namespace MineCase.Server.World
 
         internal class StateHolder
         {
+            public bool Populated { get; set; }
+
             public bool Generated { get; set; }
 
             public ChunkColumnCompactStorage Storage { get; set; }

+ 3 - 2
src/MineCase.Server.Grains/World/Generation/ChunkGeneratorOverworldGrain.cs

@@ -90,7 +90,8 @@ namespace MineCase.Server.World.Generation
                 Seed = await world.GetSeed()
             };
             GenerateChunk(info, chunkColumn, x, z, settings);
-            PopulateChunk(world, chunkColumn, x, z, settings);
+
+            // PopulateChunk(world, chunkColumn, x, z, settings);
             return chunkColumn.Compact();
         }
 
@@ -146,7 +147,7 @@ namespace MineCase.Server.World.Generation
             GenerateSkylightMap(chunk);
         }
 
-        public void PopulateChunk(IWorld world, ChunkColumnStorage chunk, int x, int z, GeneratorSettings settings)
+        public void PopulateChunk(IWorld world, ChunkColumnCompactStorage chunk, int x, int z, GeneratorSettings settings)
         {
             int blockX = x * 16;
             int blockZ = z * 16;

+ 2 - 2
src/MineCase.Server.Interfaces/World/EntitySpawner/PassiveMobSpawner.cs

@@ -22,7 +22,7 @@ namespace MineCase.Server.World.EntitySpawner
             _groupMaxNum = groupMaxNum;
         }
 
-        public async void Spawn(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockWorldPos pos)
+        public async void Spawn(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockWorldPos pos)
         {
             int num = random.Next(_groupMaxNum);
             for (int n = 0; n < num; ++n)
@@ -64,7 +64,7 @@ namespace MineCase.Server.World.EntitySpawner
             }
         }
 
-        public bool CanMobStand(IWorld world, IGrainFactory grainFactory, ChunkColumnStorage chunk, Random random, BlockChunkPos pos)
+        public bool CanMobStand(IWorld world, IGrainFactory grainFactory, ChunkColumnCompactStorage chunk, Random random, BlockChunkPos pos)
         {
             // TODO 以后结合boundbox判断
             if (pos.Y <= 0 || pos.Y >= 255)