private static bool StillValid(FloatMenuOption opt, List <FloatMenuOption> curOpts, Caravan forCaravan) { List <FloatMenuOption> list = null; Vector2 vector = new Vector2(-9999f, -9999f); return(FloatMenuWorld.StillValid(opt, curOpts, forCaravan, ref list, ref vector)); }
public override void DoWindowContents(Rect inRect) { Caravan caravan = Find.WorldSelector.SingleSelectedObject as Caravan; if (caravan == null) { Find.WindowStack.TryRemove(this, true); } else { if (Time.frameCount % 3 == 0) { Profiler.BeginSample("Float menu ChoicesAtFor()"); List <FloatMenuOption> list = FloatMenuMakerWorld.ChoicesAtFor(this.clickPos, caravan); Profiler.EndSample(); List <FloatMenuOption> list2 = list; Vector2 vector = this.clickPos; Profiler.BeginSample("StillValid()"); for (int i = 0; i < this.options.Count; i++) { if (!this.options[i].Disabled && !FloatMenuWorld.StillValid(this.options[i], list, caravan, ref list2, ref vector)) { this.options[i].Disabled = true; } } Profiler.EndSample(); } base.DoWindowContents(inRect); } }
private static bool StillValid(FloatMenuOption opt, List <FloatMenuOption> curOpts) { if (opt.revalidateWorldClickTarget == null) { for (int i = 0; i < curOpts.Count; i++) { if (FloatMenuWorld.OptionsMatch(opt, curOpts[i])) { return(true); } } } else { if (!opt.revalidateWorldClickTarget.Spawned) { return(false); } Vector2 mousePos = opt.revalidateWorldClickTarget.ScreenPos(); mousePos.y = (float)UI.screenHeight - mousePos.y; List <FloatMenuOption> list = FloatMenuMakerWorld.ChoicesAtFor(mousePos, (Caravan)Find.WorldSelector.SingleSelectedObject); for (int j = 0; j < list.Count; j++) { if (FloatMenuWorld.OptionsMatch(opt, list[j])) { return(true); } } } return(false); }
public override void PreOptionChosen(FloatMenuOption opt) { base.PreOptionChosen(opt); Caravan caravan = Find.WorldSelector.SingleSelectedObject as Caravan; if (!opt.Disabled && (caravan == null || !FloatMenuWorld.StillValid(opt, FloatMenuMakerWorld.ChoicesAtFor(this.clickPos, caravan), caravan))) { opt.Disabled = true; } }
public override void DoWindowContents(Rect inRect) { Caravan caravan = Find.WorldSelector.SingleSelectedObject as Caravan; if (caravan == null) { Find.WindowStack.TryRemove(this, true); return; } List <FloatMenuOption> curOpts = FloatMenuMakerWorld.ChoicesAtFor(this.clickPos, caravan); for (int i = 0; i < this.options.Count; i++) { if (!this.options[i].Disabled && !FloatMenuWorld.StillValid(this.options[i], curOpts)) { this.options[i].Disabled = true; } } base.DoWindowContents(inRect); }
private static bool StillValid(FloatMenuOption opt, List <FloatMenuOption> curOpts, Caravan forCaravan, ref List <FloatMenuOption> cachedChoices, ref Vector2 cachedChoicesForPos) { if (opt.revalidateWorldClickTarget == null) { for (int i = 0; i < curOpts.Count; i++) { if (FloatMenuWorld.OptionsMatch(opt, curOpts[i])) { return(true); } } } else { if (!opt.revalidateWorldClickTarget.Spawned) { return(false); } Vector2 vector = opt.revalidateWorldClickTarget.ScreenPos(); vector.y = (float)UI.screenHeight - vector.y; List <FloatMenuOption> list; if (vector == cachedChoicesForPos) { list = cachedChoices; } else { cachedChoices = FloatMenuMakerWorld.ChoicesAtFor(vector, forCaravan); cachedChoicesForPos = vector; list = cachedChoices; } for (int j = 0; j < list.Count; j++) { if (FloatMenuWorld.OptionsMatch(opt, list[j])) { return(!list[j].Disabled); } } } return(false); }