protected virtual void DoConfigInterface(Rect rect, Color baseColor) { rect.yMin += 29f; float y = rect.center.y; float num = rect.xMax - (rect.yMax - y); Widgets_Extensions.InfoCardButton(num - 12f, y - 12f, enchantmentTask); }
private static Ability DoActiveAbilityInterface(Rect abilityRect, Ability ability, Pawn pawn) { CompAbilityHolder abilityHolderComp = pawn.GetComp <CompAbilityHolder>(); GUI.BeginGroup(abilityRect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.MiddleLeft; GUI.color = Color.white; Rect iconRect = new Rect(0f, 0f, iconSize, iconSize); Widgets_Extensions.AbilityIcon(iconRect, ability); Rect labelRect = new Rect(iconRect.width + 2f, 0f, 120f, 32f); Widgets.Label(labelRect, ability.def.LabelCap); Rect upRect = new Rect(abilityRect.xMax - 24f - 24f - 34f, 0f, 24f, 24f); if (ability.gizmoOrder > 0) { if (Widgets.ButtonImage(upRect, Widgets_Extensions.reorderUpTex, Color.white)) { abilityHolderComp.ReorderClickable(ability, -1); } } Rect downRect = new Rect(abilityRect.xMax - 24f - 34f, 0f, 24f, 24f); if (ability.gizmoOrder != abilityHolderComp.LastGizmoNumber) { if (Widgets.ButtonImage(downRect, Widgets_Extensions.reorderDownTex, Color.white)) { abilityHolderComp.ReorderClickable(ability, 1); } } Rect deleteRect = new Rect(abilityRect.xMax - 34f, 0f, 24f, 24f); // 24f + 10f (scrollbar) = 34f if (Widgets.ButtonImage(deleteRect, Widgets_Extensions.deleteXTex, Color.white)) { abilityHolderComp.ToggleClickable(ability); } float effectsWidth = abilityRect.width - iconRect.width - labelRect.width - upRect.width - downRect.width - deleteRect.width; Rect effectsRect = new Rect(labelRect.x + labelRect.width + 2f, 0f, effectsWidth, 32f); Widgets.Label(effectsRect, ability.def.description); GUI.EndGroup(); if (Mouse.IsOver(abilityRect)) { return(ability); } return(null); }
private static Ability DoForgettingAbilityInterface(Rect abilityRect, Ability forgettingAbility, Pawn pawn) { CompAbilityHolder abilityHolderComp = pawn.GetComp <CompAbilityHolder>(); GUI.BeginGroup(abilityRect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.MiddleLeft; GUI.color = Color.white; Rect iconRect = new Rect(0f, 0f, iconSize, iconSize); Widgets_Extensions.AbilityIcon(iconRect, forgettingAbility); Rect labelRect = new Rect(iconRect.width + 2f, 0f, 120f, 32f); Widgets.Label(labelRect, forgettingAbility.def.LabelCap); Rect timerRect = new Rect(abilityRect.xMax - 180f - 34f, 0f, 180f, 24f); GUI.color = forgettingAbility.remainingTicksToForget > forgettingAbility.remainingTicksToForget * 0.5 ? Color.white : forgettingAbility.remainingTicksToForget > forgettingAbility.remainingTicksToForget * 0.2 ? Color.yellow : Color.red; Text.Anchor = TextAnchor.MiddleCenter; Text.Font = GameFont.Tiny; Widgets.Label(timerRect, GenDate.ToStringTicksToPeriod(forgettingAbility.remainingTicksToForget, true, true)); GUI.color = Color.white; Text.Anchor = TextAnchor.MiddleLeft; Text.Font = GameFont.Small; Rect deleteRect = new Rect(abilityRect.xMax - 34f, 0f, 24f, 24f); // 24f + 10f (scrollbar) = 34f if (Widgets.ButtonImage(deleteRect, Widgets_Extensions.deleteXTex, Color.white)) { abilityHolderComp.ToggleForgettable(forgettingAbility); } float effectsWidth = abilityRect.width - iconRect.width - labelRect.width - timerRect.width - deleteRect.width; Rect effectsRect = new Rect(labelRect.x + labelRect.width + 2f, 0f, effectsWidth, 32f); //Widgets.Label(effectsRect, forgettingAbility.def.description); GUI.EndGroup(); if (Mouse.IsOver(abilityRect)) { return(forgettingAbility); } return(null); }
public override void DoWindowContents(Rect inRect) { Text.Font = GameFont.Medium; Rect rect = new Rect(0f, 0f, 400f, 50f); Widgets.Label(rect, bill.LabelCap); Rect rect2 = new Rect(0f, 80f, 200f, inRect.height - 80f); Rect rect3 = new Rect(rect2.xMax + 17f, 50f, 180f, inRect.height - 50f - CloseButSize.y); Rect rect4 = new Rect(rect3.xMax + 17f, 50f, inRect.width - (rect3.xMax + 17f), inRect.height - 50f - CloseButSize.y); Text.Font = GameFont.Small; Listing_Standard listing_Standard = new Listing_Standard(); listing_Standard.Begin(rect3); if (bill.suspended) { if (listing_Standard.ButtonText("Suspended".Translate(), null)) { bill.suspended = false; } } else if (listing_Standard.ButtonText("NotSuspended".Translate(), null)) { bill.suspended = true; } string labelCap = bill.storeMode.LabelCap; if (listing_Standard.ButtonText(labelCap, null)) { List <FloatMenuOption> list = new List <FloatMenuOption>(); foreach (BillStoreModeDef current in from bsm in DefDatabase <BillStoreModeDef> .AllDefs orderby bsm.listOrder select bsm) { BillStoreModeDef smLocal = current; list.Add(new FloatMenuOption(smLocal.LabelCap, delegate { bill.storeMode = smLocal; }, MenuOptionPriority.Default, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(list)); } listing_Standard.Gap(12f); if (bill.workSkill != null) { listing_Standard.Label("AllowedSkillRange".Translate(new object[] { bill.workSkill.label }), -1f); listing_Standard.IntRange(ref bill.allowedSkillRange, 0, 20); } listing_Standard.End(); StringBuilder stringBuilder = new StringBuilder(); if (bill.enchantmentTask.description != null) { stringBuilder.AppendLine(bill.enchantmentTask.description); stringBuilder.AppendLine(); } stringBuilder.AppendLine("WorkAmount".Translate() + ": " + bill.enchantmentTask.WorkAmountTotal().ToStringWorkAmount()); stringBuilder.AppendLine(); // Display the item and the soul gem. if (!bill.enchantmentTask.skillRequirements.NullOrEmpty()) { stringBuilder.AppendLine("MinimumSkills".Translate()); stringBuilder.AppendLine(bill.enchantmentTask.MinSkillString); } Text.Font = GameFont.Small; string text5 = stringBuilder.ToString(); if (Text.CalcHeight(text5, rect2.width) > rect2.height) { Text.Font = GameFont.Tiny; } Widgets.Label(rect2, text5); Text.Font = GameFont.Small; if (bill.enchantmentTask.products.Count > 0) { Widgets_Extensions.InfoCardButton(rect2.x, rect4.y, bill.enchantmentTask.products); } }
private static Ability DoAbilityInterface(Rect abilityRect, Ability ability, Pawn pawn) { CompAbilityHolder abilityHolderComp = pawn.GetComp <CompAbilityHolder>(); GUI.BeginGroup(abilityRect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.MiddleLeft; GUI.color = Color.white; Rect iconRect = new Rect(0f, 0f, iconSize, iconSize); Widgets_Extensions.AbilityIcon(iconRect, ability); GUI.color = abilityHolderComp.ClickableAbilities.Contains(ability) ? Color.green : Color.white; Rect labelRect = new Rect(iconRect.width + 4f, 0f, 120f, 32f); Widgets.Label(labelRect, ability.def.LabelCap); GUI.color = Color.white; float deleteRectWidth = ability.lastAttemptedForget <= 0 ? 34f : 154f; Rect infoRect = new Rect(abilityRect.xMax - 24f - 24f - deleteRectWidth, 0f, 24f, 24f); if (Widgets.ButtonImage(infoRect, Widgets_Extensions.infoTex, Color.white)) { Log.Warning("clicked info"); } Rect addRect = new Rect(abilityRect.xMax - 24f - deleteRectWidth, 0f, 24f, 24f); if (Widgets.ButtonImage(addRect, Widgets_Extensions.plusTex, Color.white)) { abilityHolderComp.ToggleClickable(ability); } Rect deleteRect = new Rect(abilityRect.xMax - deleteRectWidth, 0f, deleteRectWidth - 10f, 24f); // 24f + 10f (scrollbar) = 34f if (ability.lastAttemptedForget <= 0) { if (Widgets.ButtonImage(deleteRect, Widgets_Extensions.deleteXTex, ability.forgetting ? new Color(0.2f, 0.2f, 0.2f) : Color.white)) { abilityHolderComp.ToggleForgettable(ability); } } else { Text.Anchor = TextAnchor.MiddleCenter; Text.Font = GameFont.Tiny; Widgets.Label(deleteRect, GenDate.ToStringTicksToPeriod(ability.lastAttemptedForget, true, true)); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.UpperLeft; } GUI.color = abilityHolderComp.ClickableAbilities.Contains(ability) ? Color.green : Color.white; float effectsWidth = abilityRect.width - iconRect.width - labelRect.width - infoRect.width - addRect.width - deleteRect.width - 8f; // 8f sum of gaps. Rect effectsRect = new Rect(labelRect.x + labelRect.width + 4f, 0f, effectsWidth, 32f); Widgets.Label(effectsRect, ability.def.description); GUI.color = Color.white; GUI.EndGroup(); if (ability.forgetting) { Text.Font = GameFont.Medium; Text.Anchor = TextAnchor.MiddleCenter; Rect forgettingRect = new Rect(abilityRect.x, abilityRect.y, abilityRect.width, abilityRect.height); GUI.DrawTexture(forgettingRect, TexUI.TextBGBlack); Widgets.Label(forgettingRect, "ForgettingAbility".Translate()); Text.Anchor = TextAnchor.UpperLeft; Text.Font = GameFont.Small; } if (Mouse.IsOver(abilityRect)) { return(ability); } return(null); }