Esempio n. 1
0
    public CharactersMenuLevel(FigureDefinition definition, FigureModel model)
    {
        var materialSetDict = definition.MaterialSetOptions.ToDictionary(item => item.Label, item => item);

        var shapesMenuLevel    = new ShapesMenuLevel(definition, model);
        var materialsMenuLevel = new MaterialsMenuLevel(definition, model);
        var advancedMenuLevel  = new StaticMenuLevel(
            new SubLevelMenuItem("Shape", shapesMenuLevel),
            new SubLevelMenuItem("Skin", materialsMenuLevel)
            );

        var detailsMenuLevel = new MaterialSetVariantsMenuLevel(definition, model);

        items = new List <IMenuItem> {
        };
        items.Add(new SubLevelMenuItem("Mix & Match", advancedMenuLevel));
        items.Add(new SubLevelMenuItem("Character Details", detailsMenuLevel));
        foreach (var shape in definition.ShapeOptions)
        {
            if (materialSetDict.TryGetValue(shape.Label, out var materialSet))
            {
                items.Add(new CharacterMenuItem(model, shape, materialSet));
            }
        }
    }
    public static IMenuLevel MakeHairMenuLevel(FigureFacade hairFigure)
    {
        if (hairFigure == null)
        {
            return(null);
        }

        var shapesMenuLevel    = new ShapesMenuLevel(hairFigure.Definition, hairFigure.Model);
        var materialsMenuLevel = new MaterialsMenuLevel(hairFigure.Definition, hairFigure.Model);

        var hairMenuLevel = new StaticMenuLevel(
            new SubLevelMenuItem("Style", shapesMenuLevel),
            new SubLevelMenuItem("Color", materialsMenuLevel)
            );

        return(hairMenuLevel);
    }
    public CharactersMenuLevel(List <Character> characters, FigureDefinition definition, FigureModel model)
    {
        var shapesMenuLevel    = new ShapesMenuLevel(definition, model);
        var materialsMenuLevel = new MaterialsMenuLevel(definition, model);
        var advancedMenuLevel  = new StaticMenuLevel(
            new SubLevelMenuItem("Shape", shapesMenuLevel),
            new SubLevelMenuItem("Skin", materialsMenuLevel)
            );

        var detailsMenuLevel = new MaterialSetVariantsMenuLevel(definition, model);

        items = new List <IMenuItem> {
        };
        items.Add(new SubLevelMenuItem("Mix & Match", advancedMenuLevel));
        items.Add(new SubLevelMenuItem("Character Details", detailsMenuLevel));
        foreach (var character in characters)
        {
            items.Add(new CharacterMenuItem(model, character));
        }
    }