public BlockStateMachine(BlockForm block)
 {
     QuestionBlock = new QuestionBlockState(this, block);
     UsedBlock     = new UsedBlockState(this, block);
     BrickBlock    = new BrickBlockState(this, block);
     FloorBlock    = new FloorBlockState(this, block);
     PyramidBlock  = new PyramidBlockState(this, block);
     HiddenBlock   = new HiddenBlockState(this, block);
     VMovingBlock  = new VMovingBlockState(this, block);
     HMovingBlock  = new HMovingBlockState(this, block);
 }
 public MovingBlockEntity(ObstacleFactory factory, Vector2 position, Entity ItemEnt, float speed, bool hMovement, float start, float finish)
     : base(factory, ItemEnt)
 {
     Start           = start;
     Finish          = finish;
     Speed           = speed;
     isHMovement     = hMovement;
     Block           = (AbstractObstacle)SpriteFactory.getSprite((int)obstacleTypes.USEDBLOCK);
     Block.Position  = position;
     Sprite.Position = position;
     Block.Velocity  = Vector2.Zero;
     BlockSM         = new BlockStateMachine(this);
     if (hMovement)
     {
         CurrentBlockState = new HMovingBlockState(BlockSM, this);
     }
     else
     {
         CurrentBlockState = new VMovingBlockState(BlockSM, this);
     }
 }