Explorar el Código

move blockstate and ready to add Block Class

JasonWang hace 6 años
padre
commit
3fbba065fd
Se han modificado 71 ficheros con 136 adiciones y 51 borrados
  1. 1 0
      src/MineCase.Algorithm/World/Biomes/Biome.cs
  2. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeBeach.cs
  3. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeDesert.cs
  4. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeForest.cs
  5. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeHill.cs
  6. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomePlains.cs
  7. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeSwamp.cs
  8. 1 0
      src/MineCase.Algorithm/World/Biomes/BiomeTaiga.cs
  9. 2 0
      src/MineCase.Algorithm/World/Generation/FlatGeneratorInfo.cs
  10. 1 0
      src/MineCase.Algorithm/World/Mine/CavesGenerator.cs
  11. 1 0
      src/MineCase.Algorithm/World/Mine/MinableGenerator.cs
  12. 1 0
      src/MineCase.Algorithm/World/Plants/AbstractTreeGenerator.cs
  13. 1 0
      src/MineCase.Algorithm/World/Plants/CactiGenerator.cs
  14. 1 0
      src/MineCase.Algorithm/World/Plants/DoubleFlowersGenerator.cs
  15. 1 0
      src/MineCase.Algorithm/World/Plants/DoubleGrassGenerator.cs
  16. 1 0
      src/MineCase.Algorithm/World/Plants/FlowersGenerator.cs
  17. 1 0
      src/MineCase.Algorithm/World/Plants/GrassGenerator.cs
  18. 1 0
      src/MineCase.Algorithm/World/Plants/PlantsGenerator.cs
  19. 1 0
      src/MineCase.Algorithm/World/Plants/Taiga2Generator.cs
  20. 1 0
      src/MineCase.Algorithm/World/Plants/TaigaGenerator.cs
  21. 1 0
      src/MineCase.Algorithm/World/Plants/TreeGenerator.cs
  22. 10 0
      src/MineCase.Core/Block/Block.cs
  23. 48 0
      src/MineCase.Core/Block/BlockState.cs
  24. 3 1
      src/MineCase.Core/Block/BlockStateExtensions.cs
  25. 1 1
      src/MineCase.Core/Block/BlockStates.cs
  26. 1 43
      src/MineCase.Core/Block/BlockType.cs
  27. 1 0
      src/MineCase.Core/CraftingRecipeLoader.cs
  28. 1 0
      src/MineCase.Core/FurnaceRecipeLoader.cs
  29. 1 0
      src/MineCase.Core/World/ChunkColumnCompactStorage.cs
  30. 1 0
      src/MineCase.Core/World/ChunkColumnStorage.cs
  31. 1 0
      src/MineCase.Core/World/Generation/GeneratorSettings.cs
  32. 1 0
      src/MineCase.Core/World/IChunkColumnStorage.cs
  33. 1 0
      src/MineCase.Server.Grains/Components/ChunkAccessorComponent.cs
  34. 1 0
      src/MineCase.Server.Grains/Game/BlockEntities/BlockEntity.cs
  35. 1 0
      src/MineCase.Server.Grains/Game/BlockEntities/Components/FurnaceComponent.cs
  36. 1 0
      src/MineCase.Server.Grains/Game/Blocks/BlockHandler.cs
  37. 1 0
      src/MineCase.Server.Grains/Game/Blocks/ChestBlockHandler.cs
  38. 1 0
      src/MineCase.Server.Grains/Game/Blocks/CraftingTableBlockHandler.cs
  39. 1 0
      src/MineCase.Server.Grains/Game/Blocks/FurnaceBlockHandler.cs
  40. 1 0
      src/MineCase.Server.Grains/Game/Entities/Components/BlockPlacementComponent.cs
  41. 1 0
      src/MineCase.Server.Grains/Game/Entities/Components/DiggingComponent.cs
  42. 1 0
      src/MineCase.Server.Grains/Game/Entities/Components/EntityAiComponent.cs
  43. 1 0
      src/MineCase.Server.Grains/Game/Items/ChestItemHandler.cs
  44. 1 0
      src/MineCase.Server.Grains/Game/Items/FurnaceItemHandler.cs
  45. 1 0
      src/MineCase.Server.Grains/Game/Items/ItemHandler.cs
  46. 1 0
      src/MineCase.Server.Grains/Network/Play/ClientPlayPacketGenerator.cs
  47. 1 0
      src/MineCase.Server.Grains/User/UserGrain.cs
  48. 1 0
      src/MineCase.Server.Grains/World/ChunkColumnGrain.cs
  49. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeDecoratorGrain.cs
  50. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeForestDecoratorGrain.cs
  51. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeHillDecoratorGrain.cs
  52. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeOceanDecoratorGrain.cs
  53. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomePlainsDecoratorGrain.cs
  54. 1 0
      src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeTaigaDecoratorGrain.cs
  55. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/AbstractTreeGeneratorGrain.cs
  56. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/FlowersGeneratorGrain.cs
  57. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/GrassGeneratorGrain.cs
  58. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/PlantsGeneratorGrain.cs
  59. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/Taiga2GeneratorGrain.cs
  60. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/TaigaGeneratorGrain.cs
  61. 1 0
      src/MineCase.Server.Grains/World/Decoration/Plants/TreeGeneratorGrain.cs
  62. 1 0
      src/MineCase.Server.Grains/World/Generation/ChunkGeneratorOverworldGrain.cs
  63. 1 0
      src/MineCase.Server.Interfaces/Game/BlockEntities/IBlockEntity.cs
  64. 1 0
      src/MineCase.Server.Interfaces/Game/BlockEntities/IChestBlockEntity.cs
  65. 1 0
      src/MineCase.Server.Interfaces/Game/BlockEntities/IFurnaceBlockEntity.cs
  66. 1 0
      src/MineCase.Server.Interfaces/World/EntitySpawner/MonsterSpawner.cs
  67. 1 0
      src/MineCase.Server.Interfaces/World/EntitySpawner/PassiveMobSpawner.cs
  68. 1 0
      src/MineCase.Server.Interfaces/World/IChunkColumn.cs
  69. 7 6
      src/MineCase.Server.Interfaces/World/WorldExtensions.cs
  70. 1 0
      tests/UnitTest/CraftingRecipeTest.cs
  71. 1 0
      tests/UnitTest/FurnaceRecipeTest.cs

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/Biome.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using MineCase.Algorithm.Noise;
 using MineCase.Algorithm.World.Mine;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeBeach.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using MineCase.Block;
 using MineCase.World.Biomes;
 using MineCase.World.Generation;
 

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeDesert.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeForest.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeHill.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomePlains.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeSwamp.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 1 - 0
src/MineCase.Algorithm/World/Biomes/BiomeTaiga.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Plants;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.Server.World.EntitySpawner;

+ 2 - 0
src/MineCase.Algorithm/World/Generation/FlatGeneratorInfo.cs

@@ -1,3 +1,5 @@
+using MineCase.Block;
+
 namespace MineCase.Algorithm.World.Generation
 {
     public class FlatGeneratorInfo

+ 1 - 0
src/MineCase.Algorithm/World/Mine/CavesGenerator.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 

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

@@ -1,4 +1,5 @@
 using System;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using Orleans;

+ 1 - 0
src/MineCase.Algorithm/World/Plants/AbstractTreeGenerator.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using MineCase.Block;
 using MineCase.World.Plants;
 
 namespace MineCase.Algorithm.World.Plants

+ 1 - 0
src/MineCase.Algorithm/World/Plants/CactiGenerator.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using Orleans;

+ 1 - 0
src/MineCase.Algorithm/World/Plants/DoubleFlowersGenerator.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

+ 1 - 0
src/MineCase.Algorithm/World/Plants/DoubleGrassGenerator.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

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

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

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

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using Orleans;

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

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using Orleans;

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

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

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

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

+ 1 - 0
src/MineCase.Algorithm/World/Plants/TreeGenerator.cs

@@ -1,5 +1,6 @@
 using System;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using MineCase.World.Plants;

+ 10 - 0
src/MineCase.Core/Block/Block.cs

@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace MineCase.Block
+{
+    public class Block
+    {
+    }
+}

+ 48 - 0
src/MineCase.Core/Block/BlockState.cs

@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace MineCase.Block
+{
+    public struct BlockState : IEquatable<BlockState>
+    {
+        public uint Id { get; set; }
+
+        public uint MetaValue { get; set; }
+
+        public bool IsSameId(BlockState other)
+        {
+            return Id == other.Id;
+        }
+
+        public override bool Equals(object obj)
+        {
+            return obj is BlockState && Equals((BlockState)obj);
+        }
+
+        public bool Equals(BlockState other)
+        {
+            return Id == other.Id &&
+                   MetaValue == other.MetaValue;
+        }
+
+        public override int GetHashCode()
+        {
+            var hashCode = -81208087;
+            hashCode = hashCode * -1521134295 + base.GetHashCode();
+            hashCode = hashCode * -1521134295 + Id.GetHashCode();
+            hashCode = hashCode * -1521134295 + MetaValue.GetHashCode();
+            return hashCode;
+        }
+
+        public static bool operator ==(BlockState state1, BlockState state2)
+        {
+            return state1.Equals(state2);
+        }
+
+        public static bool operator !=(BlockState state1, BlockState state2)
+        {
+            return !(state1 == state2);
+        }
+    }
+}

+ 3 - 1
src/MineCase.Server.Interfaces/World/BlockStateExtensions.cs → src/MineCase.Core/Block/BlockStateExtensions.cs

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
 using MineCase.World;
 using Orleans;
 
-namespace MineCase.Server.World
+namespace MineCase.Block
 {
     public static class BlockStateExtensions
     {
@@ -79,6 +79,7 @@ namespace MineCase.Server.World
                 !state.IsSameId(BlockStates.Dandelion());
         }
 
+        /*
         public static async Task<bool> CanBlockStay(this BlockState state, IWorld world, IGrainFactory grainFactory, int x, int y, int z)
         {
             if (state.IsSameId(BlockStates.Grass()))
@@ -100,6 +101,7 @@ namespace MineCase.Server.World
                 return true;
             }
         }
+        */
 
         public static uint ToUInt32(this BlockState blockState)
         {

+ 1 - 1
src/MineCase.Core/Blocks.cs → src/MineCase.Core/Block/BlockStates.cs

@@ -2,7 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.Text;
 
-namespace MineCase
+namespace MineCase.Block
 {
     public static class BlockStates
     {

+ 1 - 43
src/MineCase.Core/Block.cs → src/MineCase.Core/Block/BlockType.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 
-namespace MineCase
+namespace MineCase.Block
 {
     public enum BlockId : uint
     {
@@ -1249,46 +1249,4 @@ namespace MineCase
         VeryDamagedWE = 10,
         VeryDamagedSN = 11
     }
-
-    public struct BlockState : IEquatable<BlockState>
-    {
-        public uint Id { get; set; }
-
-        public uint MetaValue { get; set; }
-
-        public bool IsSameId(BlockState other)
-        {
-            return Id == other.Id;
-        }
-
-        public override bool Equals(object obj)
-        {
-            return obj is BlockState && Equals((BlockState)obj);
-        }
-
-        public bool Equals(BlockState other)
-        {
-            return Id == other.Id &&
-                   MetaValue == other.MetaValue;
-        }
-
-        public override int GetHashCode()
-        {
-            var hashCode = -81208087;
-            hashCode = hashCode * -1521134295 + base.GetHashCode();
-            hashCode = hashCode * -1521134295 + Id.GetHashCode();
-            hashCode = hashCode * -1521134295 + MetaValue.GetHashCode();
-            return hashCode;
-        }
-
-        public static bool operator ==(BlockState state1, BlockState state2)
-        {
-            return state1.Equals(state2);
-        }
-
-        public static bool operator !=(BlockState state1, BlockState state2)
-        {
-            return !(state1 == state2);
-        }
-    }
 }

+ 1 - 0
src/MineCase.Core/CraftingRecipeLoader.cs

@@ -6,6 +6,7 @@ using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 
 namespace MineCase
 {

+ 1 - 0
src/MineCase.Core/FurnaceRecipeLoader.cs

@@ -5,6 +5,7 @@ using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 
 namespace MineCase
 {

+ 1 - 0
src/MineCase.Core/World/ChunkColumnCompactStorage.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Text;
+using MineCase.Block;
 
 namespace MineCase.World
 {

+ 1 - 0
src/MineCase.Core/World/ChunkColumnStorage.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using MineCase.Block;
 
 namespace MineCase.World
 {

+ 1 - 0
src/MineCase.Core/World/Generation/GeneratorSettings.cs

@@ -1,4 +1,5 @@
 using System;
+using MineCase.Block;
 
 namespace MineCase.World.Generation
 {

+ 1 - 0
src/MineCase.Core/World/IChunkColumnStorage.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using MineCase.Block;
 
 namespace MineCase.World
 {

+ 1 - 0
src/MineCase.Server.Grains/Components/ChunkAccessorComponent.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Server.World;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/Game/BlockEntities/BlockEntity.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
 using System.Text;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.World;
 using Orleans;

+ 1 - 0
src/MineCase.Server.Grains/Game/BlockEntities/Components/FurnaceComponent.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Game.Windows;
 using MineCase.Server.Components;

+ 1 - 0
src/MineCase.Server.Grains/Game/Blocks/BlockHandler.cs

@@ -6,6 +6,7 @@ using System.Numerics;
 using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/Game/Blocks/ChestBlockHandler.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.BlockEntities;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;

+ 1 - 0
src/MineCase.Server.Grains/Game/Blocks/CraftingTableBlockHandler.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.Game.Entities.Components;
 using MineCase.Server.Game.Windows;

+ 1 - 0
src/MineCase.Server.Grains/Game/Blocks/FurnaceBlockHandler.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.BlockEntities;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;

+ 1 - 0
src/MineCase.Server.Grains/Game/Entities/Components/BlockPlacementComponent.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Server.Components;
 using MineCase.Server.Game.Blocks;

+ 1 - 0
src/MineCase.Server.Grains/Game/Entities/Components/DiggingComponent.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Server.Components;
 using MineCase.Server.Game.Items;

+ 1 - 0
src/MineCase.Server.Grains/Game/Entities/Components/EntityAiComponent.cs

@@ -6,6 +6,7 @@ using System.Threading.Tasks;
 using Microsoft.Extensions.Logging;
 using MineCase.Algorithm;
 using MineCase.Algorithm.Game.Entity.Ai.MobAi;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Graphics;
 using MineCase.Server.Components;

+ 1 - 0
src/MineCase.Server.Grains/Game/Items/ChestItemHandler.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Blocks;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.Game.Windows;

+ 1 - 0
src/MineCase.Server.Grains/Game/Items/FurnaceItemHandler.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Blocks;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World;

+ 1 - 0
src/MineCase.Server.Grains/Game/Items/ItemHandler.cs

@@ -6,6 +6,7 @@ using System.Numerics;
 using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Blocks;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.Game.Entities.Components;

+ 1 - 0
src/MineCase.Server.Grains/Network/Play/ClientPlayPacketGenerator.cs

@@ -6,6 +6,7 @@ using System.Numerics;
 using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Game.Windows;
 using MineCase.Protocol;
 using MineCase.Protocol.Play;

+ 1 - 0
src/MineCase.Server.Grains/User/UserGrain.cs

@@ -4,6 +4,7 @@ using System.Linq;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Protocol;
 using MineCase.Server.Components;
 using MineCase.Server.Game;

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

@@ -4,6 +4,7 @@ using System.Linq;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.BlockEntities;
 using MineCase.Server.Game.Blocks;
 using MineCase.Server.Game.Entities;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeDecoratorGrain.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using MineCase.Algorithm.Noise;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeForestDecoratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeHillDecoratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeOceanDecoratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomePlainsDecoratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Biomes/BiomeTaigaDecoratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.World.Decoration.Plants;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/AbstractTreeGeneratorGrain.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using MineCase.Block;
 using MineCase.World.Plants;
 
 namespace MineCase.Server.World.Decoration.Plants

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/FlowersGeneratorGrain.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.Extensions.Logging;
+using MineCase.Block;
 using MineCase.World;
 using MineCase.World.Plants;
 using Newtonsoft.Json;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/GrassGeneratorGrain.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.World;
 using Orleans.Concurrency;
 

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/PlantsGeneratorGrain.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Threading.Tasks;
 using MineCase.Algorithm.World.Biomes;
+using MineCase.Block;
 using MineCase.Server.World;
 using MineCase.Server.World.Decoration;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/Taiga2GeneratorGrain.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.Extensions.Logging;
+using MineCase.Block;
 using MineCase.World;
 using MineCase.World.Plants;
 using Newtonsoft.Json;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/TaigaGeneratorGrain.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.Extensions.Logging;
+using MineCase.Block;
 using MineCase.World;
 using MineCase.World.Plants;
 using Newtonsoft.Json;

+ 1 - 0
src/MineCase.Server.Grains/World/Decoration/Plants/TreeGeneratorGrain.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.Extensions.Logging;
+using MineCase.Block;
 using MineCase.World;
 using MineCase.World.Plants;
 using Newtonsoft.Json;

+ 1 - 0
src/MineCase.Server.Grains/World/Generation/ChunkGeneratorOverworldGrain.cs

@@ -11,6 +11,7 @@ using MineCase.Algorithm.World;
 using MineCase.Algorithm.World.Biomes;
 using MineCase.Algorithm.World.Layer;
 using MineCase.Algorithm.World.Mine;
+using MineCase.Block;
 using MineCase.Server.World.Decoration.Biomes;
 using MineCase.World;
 using MineCase.World.Biomes;

+ 1 - 0
src/MineCase.Server.Interfaces/Game/BlockEntities/IBlockEntity.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Engine;
 using MineCase.Server.World;
 using MineCase.World;

+ 1 - 0
src/MineCase.Server.Interfaces/Game/BlockEntities/IChestBlockEntity.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 
 namespace MineCase.Server.Game.BlockEntities

+ 1 - 0
src/MineCase.Server.Interfaces/Game/BlockEntities/IFurnaceBlockEntity.cs

@@ -1,4 +1,5 @@
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.Entities;
 
 namespace MineCase.Server.Game.BlockEntities

+ 1 - 0
src/MineCase.Server.Interfaces/World/EntitySpawner/MonsterSpawner.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.Game.Entities.Components;

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

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
+using MineCase.Block;
 using MineCase.Server.Game;
 using MineCase.Server.Game.Entities;
 using MineCase.Server.Game.Entities.Components;

+ 1 - 0
src/MineCase.Server.Interfaces/World/IChunkColumn.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Numerics;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.BlockEntities;
 using MineCase.Server.Game.Entities;
 using MineCase.World;

+ 7 - 6
src/MineCase.Server.Interfaces/World/WorldExtensions.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using MineCase.Block;
 using MineCase.Server.Game.BlockEntities;
 using MineCase.World;
 using Orleans;
@@ -11,7 +12,7 @@ namespace MineCase.Server.World
     public static class WorldExtensions
     {
         /// <summary>
-        /// Worlds to chunk.世界坐标转区块坐标
+        /// Worlds to chunk.世界坐标转区块坐标.
         /// </summary>
         /// <param name="n">The n.</param>
         public static int WorldToChunk(int n)
@@ -22,7 +23,7 @@ namespace MineCase.Server.World
         }
 
         /// <summary>
-        /// Worlds to block.世界坐标转区块内坐标
+        /// Worlds to block.世界坐标转区块内坐标.
         /// </summary>
         /// <param name="n">The n.</param>
         public static int WorldToBlock(int n)
@@ -40,7 +41,7 @@ namespace MineCase.Server.World
         /// <param name="x">The x.</param>
         /// <param name="y">The y.</param>
         /// <param name="z">The z.</param>
-        /// <returns>方块类型</returns>
+        /// <returns>方块类型.</returns>
         public static Task<BlockState> GetBlockState(this IWorld world, IGrainFactory grainFactory, int x, int y, int z)
         {
             var xOffset = MakeRelativeBlockOffset(x);
@@ -58,7 +59,7 @@ namespace MineCase.Server.World
         /// <param name="world">The world Grain.</param>
         /// <param name="grainFactory">The grain factory.</param>
         /// <param name="pos">The position.</param>
-        /// <returns>方块类型</returns>
+        /// <returns>方块类型.</returns>
         public static Task<BlockState> GetBlockState(this IWorld world, IGrainFactory grainFactory, BlockWorldPos pos)
         {
             var xOffset = MakeRelativeBlockOffset(pos.X);
@@ -149,7 +150,7 @@ namespace MineCase.Server.World
         /// <param name="x">The x.</param>
         /// <param name="y">The y.</param>
         /// <param name="z">The z.</param>
-        /// <returns>方块类型</returns>
+        /// <returns>方块类型.</returns>
         public static Task<IBlockEntity> GetBlockEntity(this IWorld world, IGrainFactory grainFactory, int x, int y, int z)
         {
             var xOffset = MakeRelativeBlockOffset(x);
@@ -167,7 +168,7 @@ namespace MineCase.Server.World
         /// <param name="world">The world Grain.</param>
         /// <param name="grainFactory">The grain factory.</param>
         /// <param name="pos">The position.</param>
-        /// <returns>方块类型</returns>
+        /// <returns>方块类型.</returns>
         public static Task<IBlockEntity> GetBlockEntity(this IWorld world, IGrainFactory grainFactory, BlockWorldPos pos)
         {
             var xOffset = MakeRelativeBlockOffset(pos.X);

+ 1 - 0
tests/UnitTest/CraftingRecipeTest.cs

@@ -6,6 +6,7 @@ using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 using MineCase.Algorithm;
+using MineCase.Block;
 using Xunit;
 
 namespace MineCase.UnitTest

+ 1 - 0
tests/UnitTest/FurnaceRecipeTest.cs

@@ -6,6 +6,7 @@ using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 using MineCase.Algorithm;
+using MineCase.Block;
 using Xunit;
 
 namespace MineCase.UnitTest