public Area_Allowed(AreaManager areaManager, AllowedAreaMode mode, string label = null) : base(areaManager) { base.areaManager = areaManager; this.mode = mode; if (!label.NullOrEmpty()) { this.labelInt = label; } else { int num = 1; while (true) { if (mode == AllowedAreaMode.Animal) { this.labelInt = "AreaAnimalDefaultLabel".Translate(num); } else { this.labelInt = "AreaDefaultLabel".Translate(num); } if (areaManager.GetLabeled(this.labelInt) != null) { num++; continue; } break; } } this.colorInt = new Color(Rand.Value, Rand.Value, Rand.Value); this.colorInt = Color.Lerp(this.colorInt, Color.gray, 0.5f); }
private static void DrawAreaAllowed(WidgetRow row, Pawn pawn) { if (pawn.playerSettings != null && pawn.playerSettings.RespectsAllowedArea) { row.Gap(6f); bool flag = pawn.playerSettings != null && pawn.playerSettings.AreaRestriction != null; Texture2D fillTex = (!flag) ? BaseContent.GreyTex : pawn.playerSettings.AreaRestriction.ColorTexture; Rect rect = row.FillableBar(93f, 16f, 1f, AreaUtility.AreaAllowedLabel(pawn), fillTex, null); if (Mouse.IsOver(rect)) { if (flag) { pawn.playerSettings.AreaRestriction.MarkForDraw(); } Rect rect2 = rect.ContractedBy(-1f); Widgets.DrawBox(rect2, 1); } if (Widgets.ButtonInvisible(rect, false)) { AllowedAreaMode mode = (AllowedAreaMode)(pawn.RaceProps.Humanlike ? 1 : 2); AreaUtility.MakeAllowedAreaListFloatMenu(delegate(Area a) { pawn.playerSettings.AreaRestriction = a; }, mode, true, true, pawn.Map); } } }
public static void DoAllowedAreaHeaders(Rect rect, List <Pawn> pawns, AllowedAreaMode mode) { List <Area> allAreas = Find.AreaManager.AllAreas; int num = 1; for (int i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { num++; } } float num2 = rect.width / num; Text.WordWrap = false; Text.Font = GameFont.Tiny; Text.Anchor = TextAnchor.LowerCenter; Rect rect2 = new Rect(rect.x, rect.y, num2, rect.height); Widgets.Label(rect2, "NoAreaAllowed".Translate()); if (Widgets.InvisibleButton(rect2)) { for (int i = 0; i < pawns.Count; i++) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); pawns[i].playerSettings.AreaRestriction = null; } } if (Mouse.IsOver(rect2)) { GUI.DrawTexture(rect2, TexUI.HighlightTex); } TooltipHandler.TipRegion(rect2, "NoAreaAllowed".Translate()); int num3 = 1; foreach (Area area in allAreas) { if (area.AssignableAsAllowed(mode)) { float num4 = num3 * num2; Rect rect3 = new Rect(rect.x + num4, rect.y, num2, rect.height); Widgets.Label(rect3, area.Label); if (Widgets.InvisibleButton(rect3)) { foreach (Pawn p in pawns) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); p.playerSettings.AreaRestriction = area; } } TooltipHandler.TipRegion(rect3, "Fluffy.RestrictAllTo".Translate(area.Label)); if (Mouse.IsOver(rect3)) { GUI.DrawTexture(rect3, TexUI.HighlightTex); } num3++; } } Text.WordWrap = true; }
public static void DoAllowedAreaSelectors(Rect rect, Pawn p, AllowedAreaMode mode) { if (Find.VisibleMap != null) { List <Area> allAreas = Find.VisibleMap.areaManager.AllAreas; int num = 1; for (int i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { num++; } } float num2 = rect.width / (float)num; Text.WordWrap = false; Text.Font = GameFont.Tiny; Rect rect2 = new Rect(rect.x, rect.y, num2, rect.height); AreaAllowedGUI.DoAreaSelector(rect2, p, null); int num3 = 1; for (int j = 0; j < allAreas.Count; j++) { if (allAreas[j].AssignableAsAllowed(mode)) { float num4 = (float)num3 * num2; Rect rect3 = new Rect(rect.x + num4, rect.y, num2, rect.height); AreaAllowedGUI.DoAreaSelector(rect3, p, allAreas[j]); num3++; } } Text.WordWrap = true; Text.Font = GameFont.Small; } }
public static void MakeAllowedAreaListFloatMenu(Action <Area> selAction, AllowedAreaMode mode, bool addNullAreaOption, bool addManageOption, Map map) { List <FloatMenuOption> list = new List <FloatMenuOption>(); if (addNullAreaOption) { list.Add(new FloatMenuOption("NoAreaAllowed".Translate(), delegate { selAction(null); }, MenuOptionPriority.High, null, null, 0f, null, null)); } foreach (Area item2 in from a in map.areaManager.AllAreas where a.AssignableAsAllowed(mode) select a) { Area localArea = item2; FloatMenuOption item = new FloatMenuOption(localArea.Label, delegate { selAction(localArea); }, MenuOptionPriority.Default, delegate { localArea.MarkForDraw(); }, null, 0f, null, null); list.Add(item); } if (addManageOption) { list.Add(new FloatMenuOption("ManageAreas".Translate(), delegate { Find.WindowStack.Add(new Dialog_ManageAreas(map)); }, MenuOptionPriority.Low, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(list)); }
// RimWorld.AreaAllowedGUI public static void DoAllowedAreaSelectors(Rect rect, ManagerJob job, AllowedAreaMode mode = AllowedAreaMode.Humanlike) { List<Area> allAreas = Find.AreaManager.AllAreas; int areaCount = 1; for (int i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { areaCount++; } } float widthPerArea = rect.width / (float)areaCount; Text.WordWrap = false; Text.Font = GameFont.Tiny; Rect nullAreaRect = new Rect(rect.x, rect.y, widthPerArea, rect.height); AreaAllowedGUI.DoAreaSelector(nullAreaRect, job, null); int areaIndex = 1; for (int j = 0; j < allAreas.Count; j++) { if (allAreas[j].AssignableAsAllowed(mode)) { float xOffset = (float)areaIndex * widthPerArea; Rect areaRect = new Rect(rect.x + xOffset, rect.y, widthPerArea, rect.height); AreaAllowedGUI.DoAreaSelector(areaRect, job, allAreas[j]); areaIndex++; } } Text.WordWrap = true; }
// // Methods // public override void DoCell(Rect rect, Pawn pawn, PawnTable table) { // Allow robots to be assigned to any area AllowedAreaMode mode = AllowedAreaMode.Any; AreaAllowedGUI.DoAllowedAreaSelectors(rect, pawn, mode); }
public static Area DoAllowedAreaSelectors( Rect rect, Area areaIn, AllowedAreaMode mode = AllowedAreaMode.Humanlike, float lrMargin = 0 ) { Area areaIO = areaIn; DoAllowedAreaSelectors( rect, ref areaIO, mode, lrMargin ); return areaIO; }
public override void DoCell(Rect rect, Pawn pawn, PawnTable table) { if (pawn.Faction == Faction.OfPlayer) { AllowedAreaMode mode = (AllowedAreaMode)(pawn.RaceProps.Humanlike ? 1 : 2); AreaAllowedGUI.DoAllowedAreaSelectors(rect, pawn, mode); } }
public static void DoAllowedAreaHeaders(Rect rect, List<Pawn> pawns, AllowedAreaMode mode) { List<Area> allAreas = Find.AreaManager.AllAreas; int num = 1; for (int i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { num++; } } float num2 = rect.width / num; Text.WordWrap = false; Text.Font = GameFont.Tiny; Text.Anchor = TextAnchor.LowerCenter; Rect rect2 = new Rect(rect.x, rect.y, num2, rect.height); Widgets.Label(rect2, "NoAreaAllowed".Translate()); if (Widgets.InvisibleButton(rect2)) { for (int i = 0; i < pawns.Count; i++) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); pawns[i].playerSettings.AreaRestriction = null; } } if (Mouse.IsOver(rect2)) { GUI.DrawTexture(rect2, TexUI.HighlightTex); } TooltipHandler.TipRegion(rect2, "NoAreaAllowed".Translate()); int num3 = 1; foreach (Area area in allAreas) { if (area.AssignableAsAllowed(mode)) { float num4 = num3 * num2; Rect rect3 = new Rect(rect.x + num4, rect.y, num2, rect.height); Widgets.Label(rect3, area.Label); if (Widgets.InvisibleButton(rect3)) { foreach (Pawn p in pawns) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); p.playerSettings.AreaRestriction = area; } } TooltipHandler.TipRegion(rect3, "Fluffy.RestrictAllTo".Translate(area.Label)); if (Mouse.IsOver(rect3)) { GUI.DrawTexture(rect3, TexUI.HighlightTex); } num3++; } } Text.WordWrap = true; }
public override void DoCell(Rect rect, Pawn pawn, PawnTable table) { if (pawn.Faction != Faction.OfPlayer) { return; } AllowedAreaMode mode = (!pawn.RaceProps.Humanlike) ? AllowedAreaMode.Animal : AllowedAreaMode.Humanlike; AreaAllowedGUI.DoAllowedAreaSelectors(rect, pawn, mode); }
public static Area DoAllowedAreaSelectors(Rect rect, Area areaIn, Map map, AllowedAreaMode mode = AllowedAreaMode.Humanlike, float lrMargin = 0) { Area areaIO = areaIn; DoAllowedAreaSelectors(rect, ref areaIO, map, mode, lrMargin); return(areaIO); }
public bool TryMakeNewAllowed(AllowedAreaMode mode, out Area_Allowed area) { if (!this.CanMakeNewAllowed(mode)) { area = null; return(false); } area = new Area_Allowed(this, mode, null); this.areas.Add(area); this.SortAreas(); return(true); }
public static bool TryMakeNewStableArea(this AreaManager instance, AllowedAreaMode mode, out Area_Stable area) { /* * if (!instance.CanMakeNewAllowed(mode)) * { * area = null; * return false; * } */ area = new Area_Stable(instance); List <Area> areaManager_areas = Traverse.Create(instance).Field("areas").GetValue <List <Area> >(); areaManager_areas.Add(area); return(true); }
// RimWorld.AreaAllowedGUI public static void DoAllowedAreaSelectors(Rect rect, ref Area area, Map map, AllowedAreaMode mode = AllowedAreaMode.Humanlike, float lrMargin = 0) { if (lrMargin > 0) { rect.xMin += lrMargin; rect.width -= lrMargin * 2; } List <Area> allAreas = map.areaManager.AllAreas; var areaCount = 1; for (var i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { areaCount++; } } float widthPerArea = rect.width / areaCount; Text.WordWrap = false; Text.Font = GameFont.Tiny; var nullAreaRect = new Rect(rect.x, rect.y, widthPerArea, rect.height); DoAreaSelector(nullAreaRect, ref area, null); var areaIndex = 1; for (var j = 0; j < allAreas.Count; j++) { if (allAreas[j].AssignableAsAllowed(mode)) { float xOffset = areaIndex * widthPerArea; var areaRect = new Rect(rect.x + xOffset, rect.y, widthPerArea, rect.height); DoAreaSelector(areaRect, ref area, allAreas[j]); areaIndex++; } } Text.WordWrap = true; Text.Font = GameFont.Small; }
// RimWorld.AreaAllowedGUI public static void DoAllowedAreaSelectors( Rect rect, ref Area area, Map map, AllowedAreaMode mode = AllowedAreaMode.Humanlike, float lrMargin = 0 ) { if ( lrMargin > 0 ) { rect.xMin += lrMargin; rect.width -= lrMargin * 2; } List<Area> allAreas = map.areaManager.AllAreas; var areaCount = 1; for ( var i = 0; i < allAreas.Count; i++ ) { if ( allAreas[i].AssignableAsAllowed( mode ) ) { areaCount++; } } float widthPerArea = rect.width / areaCount; Text.WordWrap = false; Text.Font = GameFont.Tiny; var nullAreaRect = new Rect( rect.x, rect.y, widthPerArea, rect.height ); DoAreaSelector( nullAreaRect, ref area, null ); var areaIndex = 1; for ( var j = 0; j < allAreas.Count; j++ ) { if ( allAreas[j].AssignableAsAllowed( mode ) ) { float xOffset = areaIndex * widthPerArea; var areaRect = new Rect( rect.x + xOffset, rect.y, widthPerArea, rect.height ); DoAreaSelector( areaRect, ref area, allAreas[j] ); areaIndex++; } } Text.WordWrap = true; Text.Font = GameFont.Small; }
private static void DrawAreaAllowed(WidgetRow row, Pawn pawn) { if (pawn.playerSettings == null || pawn.HostFaction != null) { return; } row.DoGap(6f); bool flag = pawn.playerSettings != null && pawn.playerSettings.AreaRestriction != null; Texture2D fillTex; if (flag) { fillTex = pawn.playerSettings.AreaRestriction.ColorTexture; } else { fillTex = BaseContent.GreyTex; } Rect rect = row.DoBar(93f, 16f, 1f, AreaUtility.AreaAllowedLabel(pawn), fillTex, null); if (Mouse.IsOver(rect)) { if (flag) { pawn.playerSettings.AreaRestriction.MarkForDraw(); } Rect drawRect = rect.ContractedBy(-1f); Widgets.DrawBox(drawRect, 1); } if (Widgets.InvisibleButton(rect)) { AllowedAreaMode mode = pawn.RaceProps.Humanlike ? AllowedAreaMode.Humanlike : AllowedAreaMode.Animal; AreaUtility.MakeAllowedAreaListFloatMenu(delegate(Area a) { pawn.playerSettings.AreaRestriction = a; }, mode, true, true); } }
public override bool AssignableAsAllowed(AllowedAreaMode mode) { return(false); }
public override bool AssignableAsAllowed(AllowedAreaMode mode) { // nothing may be assigned to this area return(false); }
public virtual bool AssignableAsAllowed(AllowedAreaMode mode) { return(false); }
private void DrawColumnHeader_Areas( Rect rect, AllowedAreaMode mode = AllowedAreaMode.Animal ) { List<Area> allAreas = Find.AreaManager.AllAreas; var num = 1; foreach ( Area t in allAreas ) { if ( t.AssignableAsAllowed( mode ) ) { num++; } } float num2 = rect.width / num; Text.WordWrap = false; Text.Font = GameFont.Tiny; Text.Anchor = TextAnchor.LowerCenter; var rect2 = new Rect( rect.x, rect.y, num2, rect.height ); Widgets.Label( rect2, "NoAreaAllowed".Translate() ); if ( Widgets.ButtonInvisible( rect2 ) ) { foreach ( Pawn t in Pawns ) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); t.playerSettings.AreaRestriction = null; } } if ( Mouse.IsOver( rect2 ) ) { GUI.DrawTexture( rect2, TexUI.HighlightTex ); } TooltipHandler.TipRegion( rect2, "NoAreaAllowed".Translate() ); var num3 = 1; foreach ( Area area in allAreas ) { if ( area.AssignableAsAllowed( mode ) ) { float num4 = num3 * num2; var rect3 = new Rect( rect.x + num4, rect.y, num2, rect.height ); Widgets.Label( rect3, area.Label ); if ( Widgets.ButtonInvisible( rect3 ) ) { foreach ( Pawn p in Pawns ) { SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera(); p.playerSettings.AreaRestriction = area; } } TooltipHandler.TipRegion( rect3, "Fluffy.RestrictAllTo".Translate( area.Label ) ); if ( Mouse.IsOver( rect3 ) ) { GUI.DrawTexture( rect3, TexUI.HighlightTex ); } num3++; } } Text.WordWrap = true; Text.Font = GameFont.Small; Text.Anchor = TextAnchor.UpperLeft; GUI.color = Color.white; }
public bool CanMakeNewAllowed(AllowedAreaMode mode) { return((from a in this.areas where a is Area_Allowed && ((Area_Allowed)a).mode == mode select a).Count() < 5); }
public static void DoAllowedAreaSelectors(Rect rect, ref Area areaRestriction, AllowedAreaMode mode, IEnumerable <Pawn> pawns) { List <Area> allAreas = Find.AreaManager.AllAreas; int num = 1; for (int i = 0; i < allAreas.Count; i++) { if (allAreas[i].AssignableAsAllowed(mode)) { num++; } } float num2 = rect.width / (float)num; Text.WordWrap = false; Text.Font = GameFont.Tiny; Rect rect2 = new Rect(rect.x, rect.y, num2, rect.height); AreaAllowedGUI.DoAreaSelector(rect2, ref areaRestriction, null, pawns); int num3 = 1; for (int j = 0; j < allAreas.Count; j++) { if (allAreas[j].AssignableAsAllowed(mode)) { float num4 = (float)num3 * num2; Rect rect3 = new Rect(rect.x + num4, rect.y, num2, rect.height); AreaAllowedGUI.DoAreaSelector(rect3, ref areaRestriction, allAreas[j], pawns); num3++; } } Text.WordWrap = true; }
public override bool AssignableAsAllowed(AllowedAreaMode mode) { return((mode & AllowedAreaMode.Any) != (AllowedAreaMode)0); }
public new bool CanMakeNewAllowed(AllowedAreaMode mode) => true;
public override bool AssignableAsAllowed(AllowedAreaMode mode) { return((byte)(mode & this.mode) != 0); }
public bool CanMakeNewAllowed( AreaManager _this, AllowedAreaMode mode ) { return true; }