Example #1
0
 // RimWorld.AreaAllowedGUI
 private static void DoAreaSelector(Rect rect, ManagerJob job, Area area)
 {
     rect = rect.ContractedBy(1f);
     GUI.DrawTexture(rect, (area == null) ? BaseContent.GreyTex : area.ColorTexture);
     Text.Anchor = TextAnchor.MiddleLeft;
     string text = AreaUtility.AreaAllowedLabel_Area(area);
     Rect rect2 = rect;
     rect2.xMin += 3f;
     rect2.yMin += 2f;
     Widgets.Label(rect2, text);
     if (job.AreaRestriction == area)
     {
         Widgets.DrawBox(rect, 2);
     }
     if (Mouse.IsOver(rect))
     {
         if (area != null)
         {
             area.MarkForDraw();
         }
         if (Input.GetMouseButton(0) && job.AreaRestriction != area)
         {
             job.AreaRestriction = area;
             SoundDefOf.DesignateDragStandardChanged.PlayOneShotOnCamera();
         }
     }
     TooltipHandler.TipRegion(rect, text);
 }
Example #2
0
 // 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;
 }
Example #3
0
 public void Delete(ManagerJob job)
 {
     job.CleanUp();
     stack.Remove(job);
 }
Example #4
0
 public void Add(ManagerJob job)
 {
     job.Priority = stack.Count + 1;
     stack.Add(job);
 }