public void Add(WorldEditBlock worldEditBlock)
 {
     if (worldEditBlock.IsPlantBlock())
     {
         if (this.Plants.ContainsKey(worldEditBlock.Position))
         {
             return;
         }
         this.Add(this.Plants, worldEditBlock);
     }
     else if (worldEditBlock.IsWorldObjectBlock())
     {
         if (this.WorldObjects.ContainsKey(worldEditBlock.Position))
         {
             return;
         }
         this.Add(this.WorldObjects, worldEditBlock);
     }
     else
     {
         if (this.Blocks.ContainsKey(worldEditBlock.Position))
         {
             return;
         }
         this.Add(this.Blocks, worldEditBlock);
     }
 }
 public static void RestoreBlock(WorldEditBlock block, Vector3i position, UserSession session)
 {
     if (IsImpenetrable(position))
     {
         return;
     }
     ClearPosition(position);
     if (block.IsEmptyBlock())
     {
         RestoreEmptyBlock(position);
     }
     else if (block.IsPlantBlock())
     {
         RestorePlantBlock(block.BlockType, position, block.BlockData);
     }
     else if (block.IsWorldObjectBlock())
     {
         RestoreWorldObjectBlock(block.BlockType, position, block.BlockData, session);
     }
     else
     {
         RestoreBlock(block.BlockType, position);
     }
 }