public void OnMouseButton(Vector3 mousePosition, StateInformation stateInformation)
 {
     if (leftMouseButton.GetState() == MouseButtonState.PRESSED && stateInformation.objectToPlace.Type == PrefabType.LEVELELEMENT)
     {
         objectPlacementModule.PlaceObject(stateInformation.objectToPlace, mousePosition);
     }
     else if (leftMouseButton.GetState() == MouseButtonState.DOWN)
     {
         objectPlacementModule.PlaceObject(stateInformation.objectToPlace, mousePosition);
     }
 }
    private void CreateOuterBoundWalls(IPlacedObject wallPrefabObject)
    {
        Vector2Int levelSize = level.GetLevelSize();
        Vector3    position;

        // Lower wall
        for (int x = 0; x < levelSize.x; ++x)
        {
            position = new Vector3(x, 0);
            objectPlacementModule.PlaceObject(wallPrefabObject, position);
        }

        // Left wall
        for (int y = 1; y < levelSize.y; ++y)
        {
            position = new Vector3(0, y);
            objectPlacementModule.PlaceObject(wallPrefabObject, position);
        }

        // Upper wall
        for (int x = 1; x < levelSize.x; ++x)
        {
            position = new Vector3(x, levelSize.y - 1);
            objectPlacementModule.PlaceObject(wallPrefabObject, position);
        }

        // right wall
        for (int y = 1; y < levelSize.y - 1; ++y)
        {
            position = new Vector3(levelSize.x - 1, y);
            objectPlacementModule.PlaceObject(wallPrefabObject, position);
        }
    }