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)); } }