public override void Render() { Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha)); base.Render(); if (remappingEase <= 0.0) { return; } Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase)); Vector2 position = new Vector2(1920f, 1080f) * 0.5f; if (remappingKeyboard || Input.GuiInputController()) { ActiveFont.Draw( remappingKeyboard ? Dialog.Get(DialogIds.KeyConfigChanging) : Dialog.Get(DialogIds.BtnConfigChanging), position + new Vector2(0.0f, -8f), new Vector2(0.5f, 1f), Vector2.One * 0.7f, Color.LightGray * Ease.CubeIn(remappingEase)); ActiveFont.Draw(ButtonInfos[remappingType].GetLabel(), position + new Vector2(0.0f, 8f), new Vector2(0.5f, 0.0f), Vector2.One * 2f, Color.White * Ease.CubeIn(remappingEase)); } else { ActiveFont.Draw(Dialog.Clean(DialogIds.BtnConfigNoController), position, new Vector2(0.5f, 0.5f), Vector2.One, Color.White * Ease.CubeIn(remappingEase)); } }
private void AreaCompleteDrawHash(On.Celeste.AreaComplete.orig_VersionNumberAndVariants orig, string version, float ease, float alpha) { orig(version, ease, alpha); var settings = this.endingSettings; var session = SaveData.Instance?.CurrentSession; if (settings != null) { var text = settings.Seed; if (settings.Rules != Ruleset.Custom) { text += " " + settings.Rules.ToString(); if (session?.SeedCleanRandom() ?? false) { text += "!"; } } text += "\n#" + settings.Hash; text += "\nrando " + this.VersionString; var variants = SaveData.Instance?.VariantMode ?? false; ActiveFont.DrawOutline(text, new Vector2(1820f + 300f * (1f - Ease.CubeOut(ease)), variants ? 810f : 894f), new Vector2(0.5f, 0f), Vector2.One * 0.5f, settings.SpawnGolden ? Calc.HexToColor("fad768") : Color.White, 2f, Color.Black); } }
public override IEnumerator Enter(Oui from) { ReloadMenu(); menu.Visible = Visible = true; menu.Focused = false; if (from is OuiRandoRecords) { savedMenuIndex = menu.LastPossibleSelection; } // restore selection if coming from a submenu. if (savedMenuIndex != -1) { menu.Selection = Math.Min(savedMenuIndex, menu.LastPossibleSelection); menu.Position.Y = menu.ScrollTargetY; } for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; }
public override void Render() { if (Everest.Flags.IsDisabled) { orig_Render(); return; } orig_Render(); if (maplistEase > 0f) { Vector2 pos = new Vector2(128f * Ease.CubeOut(maplistEase), 1080f - 128f); if (journalEnabled) { pos.Y -= 128f; } GFX.Gui["menu/maplist"].DrawCentered(pos, Color.White * Ease.CubeOut(maplistEase)); (Input.GuiInputController() ? Input.GuiButton(Input.Pause) : Input.GuiButton(Input.ESC)).Draw(pos, Vector2.Zero, Color.White * Ease.CubeOut(maplistEase)); } if (levelsetEase > 0f) { Vector2 pos = new Vector2(1920f - 64f * Ease.CubeOut(maplistEase), 1080f - 128f); string line = DialogExt.CleanLevelSet(currentLevelSet); ActiveFont.DrawOutline(line, pos, new Vector2(1f, 0.5f), Vector2.One * 0.7f, Color.White * Ease.CubeOut(maplistEase), 2f, Color.Black * Ease.CubeOut(maplistEase)); Vector2 lineSize = ActiveFont.Measure(line) * 0.7f; Input.GuiDirection(new Vector2(0f, -1f)).DrawCentered(pos + new Vector2(-lineSize.X * 0.5f, -lineSize.Y * 0.5f - 16f), Color.White * Ease.CubeOut(maplistEase), 0.5f); Input.GuiDirection(new Vector2(0f, +1f)).DrawCentered(pos + new Vector2(-lineSize.X * 0.5f, +lineSize.Y * 0.5f + 16f), Color.White * Ease.CubeOut(maplistEase), 0.5f); } }
public override IEnumerator Enter(Oui from) { Overworld.ShowInputUI = true; fromModOptions = from is OuiModOptions; if (fromModOptions) { Add(new Coroutine(FadeBgTo(1f))); } else { fade = 1f; } steps.Clear(); step = 0; ReloadMenu(); menu.Visible = Visible = true; menu.Focused = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenRightX - 1920f * Ease.CubeOut(p); yield return(null); } menu.Focused = true; }
public override IEnumerator Enter(Oui from) { if (!Everest.Flags.IsDisabled) { TextInput.OnInput += OnTextInput; } ReloadMenu(); menu.Visible = (Visible = true); menu.Focused = false; cameraStart = Overworld.Mountain.UntiltedCamera; cameraEnd = cameraStart; cameraEnd.Position = cameraEnd.Position + -cameraStart.Rotation.Forward() * 1f; Overworld.Mountain.EaseCamera(Overworld.Mountain.Area, cameraEnd, 2f); Overworld.Mountain.AllowUserRotation = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; }
public override IEnumerator Enter(Oui from) { Everest.Loader.AutoLoadNewMods = false; menu = new TextMenu(); // display the title and a dummy "Fetching" button menu.Add(new TextMenu.Header(Dialog.Clean("MODUPDATECHECKER_MENU_TITLE"))); menu.Add(subHeader = new TextMenuExt.SubHeaderExt(Dialog.Clean("MODUPDATECHECKER_MENU_HEADER"))); fetchingButton = new TextMenu.Button(Dialog.Clean("MODUPDATECHECKER_FETCHING")); fetchingButton.Disabled = true; menu.Add(fetchingButton); Scene.Add(menu); currentCheckForUpdates = new CheckForUpdates(); task = new Task(() => currentCheckForUpdates.Fetch()); task.Start(); menu.Visible = Visible = true; menu.Focused = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; menuOnScreen = true; }
static public int CubeOut_s(IntPtr l) { try { #if DEBUG var method = System.Reflection.MethodBase.GetCurrentMethod(); string methodName = GetMethodName(method); #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.BeginSample(methodName); #else Profiler.BeginSample(methodName); #endif #endif System.Single a1; checkType(l, 1, out a1); var ret = Ease.CubeOut(a1); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } #if DEBUG finally { #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.EndSample(); #else Profiler.EndSample(); #endif } #endif }
public IEnumerator FastIntroRoutine() { if (!loaded) { loadingTextures = GFX.Overworld.GetAtlasSubtextures("loading/"); Image img = new Image(loadingTextures[0]); img.CenterOrigin(); img.Scale = Vector2.One * 0.5f; handler.Add(img); while (!loaded || loadingAlpha > 0f) { loadingFrame += Engine.DeltaTime * 10f; loadingAlpha = Calc.Approach(loadingAlpha, loaded ? 0f : 1f, Engine.DeltaTime * 4f); img.Texture = loadingTextures[(int)(loadingFrame % loadingTextures.Count)]; img.Color = Color.White * Ease.CubeOut(loadingAlpha); img.Position = new Vector2(1792f, 1080f - 128f * Ease.CubeOut(loadingAlpha)); yield return(null); } img = null; } Engine.Scene = new OverworldLoader(Overworld.StartMode.Titlescreen, Snow); }
public void Render() { if (ease <= 0f) { return; } Vector2 scale = Vector2.One * (1f + (1f - Ease.CubeOut(ease))) * 1.5f; ActiveFont.DrawOutline(Text, Position + new Vector2(Width / 2f, ActiveFont.LineHeight * 0.5f * 1.5f), new Vector2(0.5f, 0.5f), scale, Color.White, 2f, Color.Black); }
public override void Render() { base.Render(); if (journalEase > 0f) { Vector2 position = new Vector2(128f * Ease.CubeOut(journalEase), 952f); GFX.Gui ["menu/journal"].DrawCentered(position, Color.White * Ease.CubeOut(journalEase)); Input.GuiButton(Input.MenuJournal, "controls/keyboard/oemquestion").Draw(position, Vector2.Zero, Color.White * Ease.CubeOut(journalEase)); } }
private IEnumerator CameraUp() { easingCamera = true; Level level = SceneAs <Level>(); for (float p = 0f; p < 1f; p += Engine.DeltaTime * 1.5f) { level.Camera.Y = level.Bounds.Bottom - 180 + 64f * (1f - Ease.CubeOut(p)); yield return(null); } }
public override void Render() { base.Render(); if (this.JournalEase > 0f) { var position = new Vector2(128f * Ease.CubeOut(this.JournalEase), 952f); var color = Color.White * Ease.CubeOut(this.JournalEase); GFX.Gui["menu/journal"].DrawCentered(position, color); Input.GuiButton(Input.MenuJournal, Input.PrefixMode.Latest).Draw(position, Vector2.Zero, color); } }
public override void Render() { Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha)); RenderTextMenu(); if (remappingEase > 0f) { Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase)); Vector2 value = new Vector2(1920f, 1080f) * 0.5f; ActiveFont.Draw(additiveRemap ? Dialog.Get("KEY_CONFIG_ADDING") : Dialog.Get("KEY_CONFIG_CHANGING"), value + new Vector2(0f, -8f), new Vector2(0.5f, 1f), Vector2.One * 0.7f, Color.LightGray * Ease.CubeIn(remappingEase)); ActiveFont.Draw(GetLabel(currentlyRemapping), value + new Vector2(0f, 8f), new Vector2(0.5f, 0f), Vector2.One * 2f, Color.White * Ease.CubeIn(remappingEase)); } }
public override void Render() { Vector2 vector = Position + new Vector2(128f, 120f); float num = Ease.CubeInOut(Math.Max(0f, turningScale)); float num2 = Ease.CubeInOut(Math.Abs(Math.Min(0f, turningScale))); if (SaveData.Instance.CheatMode) { MTN.FileSelect["cheatmode"].DrawCentered(vector + new Vector2(80f, 360f), Color.White, 1f, 1.57079637f); } if (SaveData.Instance.AssistMode) { MTN.FileSelect["assist"].DrawCentered(vector + new Vector2(100f, 370f), Color.White, 1f, 1.57079637f); } MTexture mtexture = MTN.Journal["edge"]; mtexture.Draw(vector + new Vector2((float)-mtexture.Width, 0f), Vector2.Zero, Color.White, 1f, rotation); if (PageIndex > 0) { MTN.Journal[PrevPage.PageTexture].Draw(vector, Vector2.Zero, backColor, new Vector2(-1f, 1f), rotation); } if (turningPage) { MTN.Journal[NextPage.PageTexture].Draw(vector, Vector2.Zero, Color.White, 1f, rotation); Draw.SpriteBatch.Draw(NextPageBuffer, vector, new Rectangle?(NextPageBuffer.Bounds), Color.White, rotation, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f); } if (turningPage && num2 > 0f) { MTN.Journal[Page.PageTexture].Draw(vector, Vector2.Zero, backColor, new Vector2(-1f * num2, 1f), rotation); } if (num > 0f) { MTN.Journal[Page.PageTexture].Draw(vector, Vector2.Zero, Color.White, new Vector2(num, 1f), rotation); //Page.Redraw(CurrentPageBuffer); Draw.SpriteBatch.Draw(CurrentPageBuffer, vector, new Rectangle?(CurrentPageBuffer.Bounds), Color.White, rotation, Vector2.Zero, new Vector2(num, 1f), SpriteEffects.None, 0f); } if (Pages.Count > 0) { int count = Pages.Count; MTexture mtexture2 = GFX.Gui["dot_outline"]; int num3 = mtexture2.Width * count; Vector2 value = new Vector2(960f, 1040f - 40f * Ease.CubeOut(dotEase)); for (int i = 0; i < count; i++) { mtexture2.DrawCentered(value + new Vector2((float)(-(float)num3 / 2) + mtexture2.Width * (i + 0.5f), 0f), Color.White * 0.25f); } float x = 1f + Calc.YoYo(dot % 1f) * 4f; mtexture2.DrawCentered(value + new Vector2((float)(-(float)num3 / 2) + mtexture2.Width * (dot + 0.5f), 0f), Color.White, new Vector2(x, 1f)); GFX.Gui["dotarrow_outline"].DrawCentered(value + new Vector2((float)(-(float)num3 / 2 - 50), 32f * (1f - Ease.CubeOut(leftArrowEase))), Color.White * leftArrowEase, new Vector2(-1f, 1f)); GFX.Gui["dotarrow_outline"].DrawCentered(value + new Vector2(num3 / 2 + 50, 32f * (1f - Ease.CubeOut(rightArrowEase))), Color.White * rightArrowEase); } }
public override void Render() { float num = Ease.CubeOut(alpha); float textCol = Ease.CubeOut(textAlpha); Vector2 value = Celeste.Celeste.TargetCenter + new Vector2(0f, 64f); Vector2 value2 = Vector2.UnitY * 64f * (1f - num); Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * num * 0.8f); GFX.Gui[menuSprite].DrawJustified(value - value2 + new Vector2(0f, 32f), new Vector2(0.5f, 1f), Color.White * num); ActiveFont.Draw(text[Math.Min(textIndex, text.Length - 1)], value + value2, new Vector2(0.5f, 0f), Vector2.One, Color.White * textCol); if (waitForKeyPress) { GFX.Gui["textboxbutton"].DrawCentered(new Vector2(1824f, 984 + ((timer % 1f < 0.25f) ? 6 : 0))); } }
public override IEnumerator Enter(Oui from) { ReloadMenu(); menu.Visible = (Visible = true); menu.Focused = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; }
public Vector2 getScreenPosition(Vector2 originalPosition) { if (Settings.ZoomLevel == 10) { // nothing to do, spare us some processing. return(originalPosition); } // compute the size difference between regular screen and zoomed in screen Vector2 screenSize = new Vector2(320f, 180f) * Settings.ZoomLevel / 10f; Vector2 diff = screenSize - new Vector2(320f, 180f); Player player = Engine.Scene.Tracker.GetEntity <Player>(); if (Settings.ZoomLevel > 10 && player != null) { // if the player is on the left of the screen, we shouldn't move the screen (left is aligned with left side of the screen). // if they are on the right, we should move it left by the difference (right is aligned with right side of the screen). // in between, just lerp diff *= new Vector2( Calc.ClampedMap(player.CenterX, (Engine.Scene as Level).Bounds.Left, (Engine.Scene as Level).Bounds.Right), Calc.ClampedMap(player.CenterY, (Engine.Scene as Level).Bounds.Top, (Engine.Scene as Level).Bounds.Bottom)); } else { // no player, or < 1x zoom: center the screen. diff *= 0.5f; } if (player == null || player.Dead) { // no player: no target, don't move diff = previousDiff; } else if (transitionPercent == 1) { // save the position in case we're transitioning later previousDiff = diff; } else { // lerp in the same way transitions do, synchronized with the transition: this allows for a seemless realignment. diff = Vector2.Lerp(previousDiff, diff, Ease.CubeOut(transitionPercent)); } return(originalPosition - diff); }
public override IEnumerator Enter(Oui from) { Overworld.ShowInputUI = false; audioPrevMusic = Audio.GetEventName(Audio.CurrentMusicEventInstance); Audio.SetMusic(null); audioPrevAmbience = Audio.GetEventName(Audio.CurrentAmbienceEventInstance); Audio.SetAmbience(null); Visible = true; for (float t = 0f; t < 1f; t += Engine.DeltaTime * 4f) { alpha = Ease.CubeOut(t); yield return(null); } }
public override IEnumerator Enter(Oui from) { this.Visible = true; this.Menu = this.ReloadMenu(); this.Scene.Add(this.Menu); var fromRight = this.IsDeeperThan(from); var OffScreenX = fromRight ? OffScreenXGeneric : -OffScreenXGeneric; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { this.Menu.X = OffScreenX + (OnScreenX - OffScreenX) * Ease.CubeOut(p); yield return(null); } this.Menu.X = OnScreenX; this.Menu.Active = true; }
public override void Render() { base.Render(); float currentWiggle = wiggler.Value * 8f; if (openingEase > 0f) { float openingEaseEased = Ease.CubeOut(openingEase); Vector2 anchor = new Vector2(960f, 540f); float lineHeight = ActiveFont.LineHeight; // draw background Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * openingEaseEased * 0.9f); // draw text ActiveFont.Draw(Dialog.Clean("collabutils2_assist_skip_confirm"), position: anchor + new Vector2( x: 0f, y: -16f - 64f * (1f - openingEaseEased)), justify: new Vector2(0.5f, 1f), scale: Vector2.One, color: Color.White * openingEaseEased); ActiveFont.DrawOutline(Dialog.Clean("collabutils2_assist_skip_confirm_yes"), position: anchor + new Vector2( x: ((opened && currentlySelectedOption == 0) ? currentWiggle : 0f) * 1.2f * openingEaseEased, y: 16f + 64f * (1f - openingEaseEased)), justify: new Vector2(0.5f, 0f), scale: Vector2.One * 0.8f, color: opened ? selectionColor(currentlySelectedOption == 0) : Color.Gray, stroke: 2f, strokeColor: Color.Black * openingEaseEased); ActiveFont.DrawOutline(Dialog.Clean("collabutils2_assist_skip_confirm_no"), position: anchor + new Vector2( x: ((opened && currentlySelectedOption == 1) ? currentWiggle : 0f) * 1.2f * openingEaseEased, y: 16f + lineHeight + 64f * (1f - openingEaseEased)), justify: new Vector2(0.5f, 0f), scale: Vector2.One * 0.8f, color: opened ? selectionColor(currentlySelectedOption == 1) : Color.Gray, stroke: 2f, strokeColor: Color.Black * openingEaseEased); } }
public override void Render() { if (!loading && screenBuffer != null && !screenBuffer.IsDisposed) { float num = ScreenWidth * Ease.CubeOut(Calc.ClampedMap(ease, 0f, 0.5f, 0f, 1f)); float num2 = ScreenHeight * Ease.CubeInOut(Calc.ClampedMap(ease, 0.5f, 1f, 0.2f, 1f)); Rectangle rectangle = new Rectangle((int)((1920f - num) / 2f), (int)((1080f - num2) / 2f), (int)num, (int)num2); Draw.SpriteBatch.Draw(screenBuffer, rectangle, Color.White); if (ShowInput && waitingForInputTime > 0.2f) { GFX.Gui["textboxbutton"].DrawCentered(new Vector2(1856f, 1016 + ((Scene.TimeActive % 1f < 0.25f) ? 6 : 0)), Color.Black); } if ((Scene as Level).Paused) { Draw.Rect(rectangle, Color.Black * 0.7f); } } }
private IEnumerator FadeIn(int i, TextMenuExt.IItemExt item) { yield return(0.03f * i); float ease = 0f; Vector2 offset = item.Offset; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { ease = Ease.CubeOut(p); item.Alpha = ease; item.Offset = offset + new Vector2(0f, 64f * (1f - ease)); yield return(null); } item.Alpha = 1f; item.Offset = offset; }
public void AreaCompleteDrawHash(On.Celeste.AreaComplete.orig_VersionNumberAndVariants orig, string version, float ease, float alpha) { if (this.InRandomizer) { SaveData.Instance.VariantMode = false; } orig(version, ease, alpha); if (this.InRandomizer) { var text = this.Settings.Seed; if (this.Settings.Rules != Ruleset.Custom) { text += " " + this.Settings.Rules.ToString(); } text += "\n#" + this.Settings.Hash.ToString(); ActiveFont.DrawOutline(text, new Vector2(1820f + 300f * (1f - Ease.CubeOut(ease)), 925f), new Vector2(0.5f, 0f), Vector2.One * 0.5f, Color.White, 2f, Color.Black); } }
public override IEnumerator Enter(Oui from) { Everest.Loader.AutoLoadNewMods = false; menu = new TextMenu(); // display the title and a dummy "Fetching" button menu.Add(new TextMenu.Header(Dialog.Clean("MODUPDATECHECKER_MENU_TITLE"))); menu.Add(subHeader = new TextMenuExt.SubHeaderExt(Dialog.Clean("MODUPDATECHECKER_MENU_HEADER"))); fetchingButton = new TextMenu.Button(Dialog.Clean("MODUPDATECHECKER_FETCHING")); fetchingButton.Disabled = true; menu.Add(fetchingButton); Scene.Add(menu); menu.Visible = Visible = true; menu.Focused = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; menuOnScreen = true; task = new Task(() => { // 1. Download the mod updates database updateCatalog = ModUpdaterHelper.DownloadModUpdateList(); // 2. Find out what actually has been updated if (updateCatalog != null) { availableUpdatesCatalog = ModUpdaterHelper.ListAvailableUpdates(updateCatalog); } }); task.Start(); }
public override void Render() { Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha)); Vector2 center = new Vector2(1920f, 1080f) * 0.5f; if (Input.GuiInputController()) { RenderTextMenu(); if (remappingEase > 0f) { Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase)); ActiveFont.Draw(Dialog.Get("BTN_CONFIG_CHANGING"), center + new Vector2(0f, -8f), new Vector2(0.5f, 1f), Vector2.One * 0.7f, Color.LightGray * Ease.CubeIn(remappingEase)); ActiveFont.Draw(GetLabel(currentlyRemapping), center + new Vector2(0f, 8f), new Vector2(0.5f, 0f), Vector2.One * 2f, Color.White * Ease.CubeIn(remappingEase)); } } else { ActiveFont.Draw(Dialog.Clean("BTN_CONFIG_NOCONTROLLER"), center, new Vector2(0.5f, 0.5f), Vector2.One, Color.White * Ease.CubeOut(Alpha)); } }
public override bool Update(TouchCollection state, TouchLocation touch) { bool enabled = TouchInputManager.IsTouch; if (enabled && Condition != null) { enabled = Condition(this); } if (!enabled) { touch = default; } TouchPrev = Touch; Touch = touch; alphaTime = Calc.Clamp(alphaTime + Engine.RawDeltaTime * (enabled ? 1f : -1f), 0f, 0.3f); alpha = Ease.CubeOut(alphaTime / 0.3f); colorTime = Calc.Clamp(colorTime + Engine.RawDeltaTime * (touch.State != TouchLocationState.Invalid ? 1f : -1f), 0f, 0.1f); int colorMulDown = (int)Math.Round(colorTime / 0.1f * 255f); int colorMulUp = 255 - colorMulDown; color = new Color( ((ColorUp.R * colorMulUp + ColorDown.R * colorMulDown) / 2) / 65025, ((ColorUp.G * colorMulUp + ColorDown.G * colorMulDown) / 2) / 65025, ((ColorUp.B * colorMulUp + ColorDown.B * colorMulDown) / 2) / 65025, ((ColorUp.A * colorMulUp + ColorDown.A * colorMulDown) / 2) / 65025 ); bool consumed = false; if (touch.State != TouchLocationState.Invalid) { consumed = OnTouch?.InvokeWhileFalse(this, touch) ?? true; } return(consumed); }
public override IEnumerator Enter(Oui from) { // build the menu menu = new TextMenu(); menu.Add(new TextMenu.Header(MenuName)); addOptionsToMenu(menu); // add it to the scene Scene.Add(menu); menu.Visible = Visible = true; menu.Focused = false; // transition in for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } // give control to the player menu.Focused = true; }
public override IEnumerator Enter(Oui from) { ReloadMenu(); // restore selection if coming from a submenu. if (savedMenuIndex != -1 && typeof(ISubmenu).IsAssignableFrom(from.GetType())) { menu.Selection = Math.Min(savedMenuIndex, menu.LastPossibleSelection); menu.Position.Y = menu.ScrollTargetY; } menu.Visible = Visible = true; menu.Focused = false; for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f) { menu.X = offScreenX + -1920f * Ease.CubeOut(p); alpha = Ease.CubeOut(p); yield return(null); } menu.Focused = true; }
public override void Render(Vector2 position, bool highlighted) { Color textColor = Color.Gray * Ease.CubeOut(Container.Alpha); Color strokeColor = Color.Black * Ease.CubeOut(Container.Alpha); Color btnColor = Color.White * Ease.CubeOut(Container.Alpha); float taken = 0f; for (int i = 0; i < info.Count; i++) { if (info[i] is string text) { taken += ActiveFont.Measure(text).X * 0.6f; } else if (info[i] is VirtualButton btn) { taken += Input.GuiButton(btn).Width * 0.6f; } } Vector2 pos = position + new Vector2(Container.Width - taken, 0f) / 2f; for (int i = 0; i < info.Count; i++) { if (info[i] is string text) { ActiveFont.DrawOutline(text, pos, new Vector2(0f, 0.5f), Vector2.One * 0.6f, textColor, 2f, strokeColor); pos.X += ActiveFont.Measure(text).X * 0.6f; } else if (info[i] is VirtualButton btn) { MTexture tex = Input.GuiButton(btn); tex.DrawJustified(pos, new Vector2(0f, 0.5f), btnColor, 0.6f); pos.X += tex.Width * 0.6f; } } }