public static void DrawBaseTextureOptions(Rect rect, string label, ApparelComposite composite, bool paintable = false) { float w = rect.width / 5; float w2 = (rect.width - w) / 4; float y = rect.y; float x = rect.x; Rect rect1 = new Rect(x, y, w, 30f); Widgets.Label(rect1, label); x += w; Rect rect2 = new Rect(x, y, w2, 30f); Widgets.Dropdown <ApparelComposite, AlternateApparelGraphic> ( rect2, composite, (ApparelComposite p) => p.ActiveAltGraphic, new Func <ApparelComposite, IEnumerable <Widgets.DropdownMenuElement <AlternateApparelGraphic> > >(DrawMainTexVariantButton_GenerateMenu), composite.ActiveAltGraphic?.label.CapitalizeFirst() ?? composite.AltGraphicsExt.defaultLabel.CapitalizeFirst(), null, null, null, delegate() { }, paintable ); x += w; }
private static IEnumerable <Widgets.DropdownMenuElement <AlternateApparelGraphic> > DrawMainTexVariantButton_GenerateMenu(ApparelComposite composite) { if (composite.ActiveAltGraphic != null) { yield return(new Widgets.DropdownMenuElement <AlternateApparelGraphic> { option = new FloatMenuOption(composite.AltGraphicsExt.defaultLabel.CapitalizeFirst(), delegate() { composite.ActiveAltGraphic = null; if (composite.Wearer != null) { UpdateApparelGraphicsFor(composite.Wearer); } }, composite.def, MenuOptionPriority.Default, null, null, 0f, null, null), payload = null }); } using (List <AlternateApparelGraphic> .Enumerator enumerator = composite.AltGraphics.GetEnumerator()) { while (enumerator.MoveNext()) { AlternateApparelGraphic variant = enumerator.Current; if (composite.ActiveAltGraphic != variant) { yield return(new Widgets.DropdownMenuElement <AlternateApparelGraphic> { option = new FloatMenuOption(variant.label.CapitalizeFirst() ?? variant.texPath.CapitalizeFirst(), delegate() { composite.ActiveAltGraphic = variant; if (composite.Wearer != null) { UpdateApparelGraphicsFor(composite.Wearer); } }, MenuOptionPriority.Default, null, null, 0f, null, null), payload = variant }); } } } yield break; }