private static PropSdo ConvertPropForSaving(Prop prop)
    {
        if (prop == null)
        {
            return(null);
        }

        var propType = prop.GetType();

        PropSdo sdo = null;

        if (propType == typeof(CheeseTree))
        {
            sdo = new CheeseTreeSdo();
        }
        else if (propType == typeof(Chest))
        {
            sdo = new ChestSdo((Chest)prop);
        }
        else if (propType == typeof(Field))
        {
            sdo = new FieldSdo((Field)prop);
        }
        else if (propType == typeof(Grave))
        {
            sdo = new GraveSdo((Grave)prop);
        }
        else if (propType == typeof(Furniture))
        {
            sdo = new FurnitureSdo((Furniture)prop);
        }

        return(sdo);
    }
    private static Prop ConvertPropForPlaying(PropSdo sdo)
    {
        var sdoType = sdo.GetType();

        if (sdoType == typeof(CheeseTreeSdo))
        {
            return(new CheeseTree());
        }

        if (sdoType == typeof(ChestSdo))
        {
            return(new Chest((ChestSdo)sdo));
        }

        if (sdoType == typeof(FieldSdo))
        {
            return(new Field((FieldSdo)sdo));
        }

        if (sdoType == typeof(GraveSdo))
        {
            return(new Grave((GraveSdo)sdo));
        }

        if (sdoType == typeof(FurnitureSdo))
        {
            return(new Furniture((FurnitureSdo)sdo));
        }

        return(null);
    }
    public static PropSdo[] ConvertPropsForSaving(Prop[,] props)
    {
        var height = props.GetLength(0);
        var width  = props.GetLength(1);

        var propSdos = new PropSdo[height, width];

        for (var row = 0; row < height; row++)
        {
            for (var column = 0; column < width; column++)
            {
                var prop = props[row, column];

                propSdos[row, column] = ConvertPropForSaving(prop);
            }
        }

        return(GlobalHelper.Convert2dArrayTo1dArray(propSdos));
    }