public override void CounterInit() { modifiersModel = SCGameplayModsModel(ref scoreController); IDifficultyBeatmap beatmap = data.difficultyBeatmap; int maxRawScore = ScoreModel.MaxRawScoreForNumberOfNotes(noteCountProcessor.NoteCount); maxPossibleScore = ScoreModel.GetModifiedScoreForGameplayModifiersScoreMultiplier(maxRawScore, modifiersModel.GetTotalMultiplier(data.gameplayModifiers)); stats = playerDataModel.playerData.GetPlayerLevelStatsData(beatmap); highScore = stats.highScore; if (scoreConfig.Enabled && Settings.UnderScore) { HUDCanvas scoreCanvas = CanvasUtility.GetCanvasSettingsFromID(scoreConfig.CanvasID); counter = CanvasUtility.CreateTextFromSettings(scoreConfig, SCORE_COUNTER_OFFSET * (3f / scoreCanvas.PositionScale)); } else { counter = CanvasUtility.CreateTextFromSettings(Settings); } counter.alignment = TextAlignmentOptions.Top; counter.fontSize = Settings.TextSize; pbRatio = (float)highScore / maxPossibleScore; SetPersonalBest((float)highScore / maxPossibleScore); ScoreUpdated(0); }
public override void CounterInit() { try { _logger.Debug("Attempting to Initialize FPS Counter"); _targetFramerate = (int)XRDevice.refreshRate; _logger.Debug($"Target framerate = {_targetFramerate}"); _counterText = CanvasUtility.CreateTextFromSettings(Settings); _counterText.color = Color.white; _counterText.fontSize = 2.5f; _counterText.lineSpacing = -50f; if (!_config.ShowRing) { return; } var canvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); if (canvas == null) { return; } _ringImage = _fpsCounterUtils.CreateRing(canvas); _ringImage.rectTransform.anchoredPosition = _counterText.rectTransform.anchoredPosition; _ringImage.transform.localScale = _ringSize / 10; } catch (Exception ex) { _logger.Error("FPS Counter Done"); _logger.Error(ex); } }
public override void CounterInit() { IDifficultyBeatmap beatmap = data.difficultyBeatmap; maxPossibleScore = ScoreModel.ComputeMaxMultipliedScoreForBeatmap(beatmapData); stats = playerDataModel.playerData.GetPlayerLevelStatsData(beatmap); highScore = stats.highScore; if (scoreConfig.Enabled && Settings.UnderScore) { HUDCanvas scoreCanvas = CanvasUtility.GetCanvasSettingsFromID(scoreConfig.CanvasID); counter = CanvasUtility.CreateTextFromSettings(scoreConfig, SCORE_COUNTER_OFFSET * (3f / scoreCanvas.PositionScale)); } else { counter = CanvasUtility.CreateTextFromSettings(Settings); } counter.alignment = TextAlignmentOptions.Top; counter.fontSize = Settings.TextSize; pbRatio = (float)highScore / maxPossibleScore; SetPersonalBest(pbRatio); ScoreUpdated(0); }
public override void CounterInit() { // Yeah this is required. // If the Score Counter is all alone on its own Canvas with nothing to accompany them, // I need to give 'em a friend or else they get shy and hide away in the void. _ = CanvasUtility.CreateTextFromSettings(Settings, null); ScoreUIController scoreUIController = coreGameHUD.GetComponentInChildren <ScoreUIController>(); TextMeshProUGUI old = ScoreUIText(ref scoreUIController); GameObject baseGameScore = RelativeScoreGO(ref coreGameHUD); relativeScoreText = baseGameScore.GetComponent <TextMeshProUGUI>(); relativeScoreText.color = Color.white; GameObject baseGameRank = ImmediateRankGO(ref coreGameHUD); rankText = baseGameRank.GetComponent <TextMeshProUGUI>(); rankText.color = Color.white; Canvas currentCanvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); old.rectTransform.SetParent(currentCanvas.transform, true); baseGameScore.transform.SetParent(old.transform, true); baseGameRank.transform.SetParent(old.transform, true); if (!mainConfig.ItalicText) { old.fontStyle = relativeScoreText.fontStyle = rankText.fontStyle = FontStyles.Normal; Vector3 localPosition = relativeScoreText.rectTransform.localPosition; relativeScoreText.rectTransform.localPosition = new Vector3(0, localPosition.y, localPosition.z); localPosition = rankText.rectTransform.localPosition; rankText.rectTransform.localPosition = new Vector3(0, localPosition.y, localPosition.z); } switch (Settings.Mode) { case ScoreMode.RankOnly: Object.Destroy(baseGameScore.gameObject); break; case ScoreMode.ScoreOnly: Object.Destroy(baseGameRank.gameObject); break; } RectTransform pointsTextTransform = old.rectTransform; HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID); Vector2 anchoredPos = CanvasUtility.GetAnchoredPositionFromConfig(Settings) + (offset * (3f / currentSettings.PositionScale)); pointsTextTransform.localPosition = anchoredPos * currentSettings.PositionScale; pointsTextTransform.localPosition = new Vector3(pointsTextTransform.localPosition.x, pointsTextTransform.localPosition.y, 0); pointsTextTransform.localEulerAngles = Vector3.zero; Object.Destroy(coreGameHUD.GetComponentInChildren <ImmediateRankUIPanel>()); relativeScoreAndImmediateRank.relativeScoreOrImmediateRankDidChangeEvent += UpdateText; UpdateText(); }
protected override void SpawnBackend(Entity target) { if (m_Canvas == null) { m_Canvas = CanvasUtility.Create(World, 0, "ServerRoom", defaultAddRaycaster: true); //CanvasUtility.DisableInteractionOnActivePopup(World, m_Canvas); } base.SpawnBackend(target); var rt = LastBackend.GetComponent <RectTransform>(); rt.SetParent(m_Canvas.transform, false); var folder = AddressBuilder.Client() .Interface() .Menu() .Folder("Screens") .Folder("SettingsScreen"); LastBackend.Data = new SettingsScreenData { Panels = new [] { folder.GetAsset("GraphicSettingsPanel"), folder.GetAsset("AudioSettingsPanel") } }; CanvasUtility.ExtendRectTransform(rt); }
private void InitClassicMode() { // Yeah this is required. // If the Score Counter is all alone on its own Canvas with nothing to accompany them, // I need to give 'em a friend or else they get shy and hide away in the void. _ = CanvasUtility.CreateTextFromSettings(Settings, null); ScoreUIController scoreUIController = coreGameHUD.GetComponentInChildren <ScoreUIController>(); TextMeshProUGUI old = ScoreUIText(ref scoreUIController); // Setup Score Text GameObject baseGameScore = RelativeScoreGO(ref coreGameHUD); relativeScoreText = baseGameScore.GetComponent <TextMeshProUGUI>(); relativeScoreText.color = Color.white; // Setup Rank Text GameObject baseGameRank = ImmediateRankGO(ref coreGameHUD); rankText = baseGameRank.GetComponent <TextMeshProUGUI>(); rankText.color = Color.white; // Set up parenting Canvas currentCanvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); old.rectTransform.SetParent(currentCanvas.transform, true); baseGameScore.transform.SetParent(old.transform, true); // Hide score if we're not using it. if (!Configuration.Instance.showScore) { UnityEngine.Object.Destroy(baseGameScore.gameObject); } // Adjust font sizes. // TODO: Pull this from config? relativeScoreText.fontSize = 10; rankText.fontSize = 30; baseGameRank.transform.SetParent(old.transform, true); RectTransform pointsTextTransform = old.rectTransform; HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID); Vector2 anchoredPos = CanvasUtility.GetAnchoredPositionFromConfig(Settings) + (offset * (3f / currentSettings.PositionScale)); pointsTextTransform.localPosition = anchoredPos * currentSettings.PositionScale; pointsTextTransform.localPosition = new Vector3(pointsTextTransform.localPosition.x, pointsTextTransform.localPosition.y, 0); pointsTextTransform.localEulerAngles = Vector3.zero; UnityEngine.Object.Destroy(coreGameHUD.GetComponentInChildren <ImmediateRankUIPanel>()); InitPercentageRing(); // Shift text into proper positions rankText.rectTransform.anchoredPosition += rankScoreOffset; relativeScoreText.rectTransform.anchoredPosition += rankScoreOffset; //relativeScoreAndImmediateRank.relativeScoreOrImmediateRankDidChangeEvent += UpdateClassicModeText; UpdateClassicModeText(); }
public override void CounterInit() { ColorUtility.TryParseHtmlString("#FFA500", out orange); modifiersModel = SCGameplayModsModel(ref scoreController); IDifficultyBeatmap beatmap = data.difficultyBeatmap; int maxRawScore = ScoreModel.MaxRawScoreForNumberOfNotes(beatmap.beatmapData.notesCount); maxPossibleScore = ScoreModel.GetModifiedScoreForGameplayModifiersScoreMultiplier(maxRawScore, modifiersModel.GetTotalMultiplier(data.gameplayModifiers)); stats = playerDataModel.playerData.GetPlayerLevelStatsData(beatmap); highScore = stats.highScore; if (scoreConfig.Enabled && Settings.UnderScore) { counter = CanvasUtility.CreateTextFromSettings(scoreConfig, SCORE_COUNTER_OFFSET); } else { counter = CanvasUtility.CreateTextFromSettings(Settings); } counter.alignment = TextAlignmentOptions.Top; counter.fontSize = Settings.TextSize; SetPersonalBest((float)highScore / maxPossibleScore); }
public override void CounterInit() { // Reposition/reparent rank counter to destination canvas var currentCanvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); var currentSettings = CanvasUtility.GetCanvasSettingsFromCanvas(currentCanvas); var positionScale = currentSettings?.PositionScale ?? 10; var anchoredPos = (CanvasUtility.GetAnchoredPositionFromConfig(Settings) + offset) * positionScale; multiplayerPositionHUDController.transform.SetParent(currentCanvas.transform, true); var rect = multiplayerPositionHUDController.transform as RectTransform; rect.anchoredPosition = anchoredPos; rect.localPosition = new Vector3(rect.localPosition.x, rect.localPosition.y, 0); rect.localEulerAngles = Vector3.zero; // Iterate existing text and set italic shit if (!mainConfig.ItalicText) { foreach (var childText in multiplayerPositionHUDController.GetComponentsInChildren <CurvedTextMeshPro>(true)) { childText.fontStyle = FontStyles.Normal; } } }
public override void CounterInit() { timeText = CanvasUtility.CreateTextFromSettings(Settings); timeText.fontSize = 4; length = atsc.songLength; songBPM = gcssd.difficultyBeatmap.level.beatsPerMinute; if (coreGameHUD != null) { GameObject baseGameProgress = SongProgressPanelGO(ref coreGameHUD); UnityEngine.Object.Destroy(baseGameProgress); // I'm sorry, little one. } if (Settings.Mode != ProgressMode.Percent) { var canvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); if (canvas != null) { ImageView backgroundImage = CreateRing(canvas); backgroundImage.rectTransform.anchoredPosition = timeText.rectTransform.anchoredPosition; backgroundImage.CrossFadeAlpha(0.05f, 1f, false); backgroundImage.transform.localScale = ringSize / 10; backgroundImage.type = Image.Type.Simple; progressRing = CreateRing(canvas); progressRing.rectTransform.anchoredPosition = timeText.rectTransform.anchoredPosition; progressRing.transform.localScale = ringSize / 10; } } }
public static NodePanel CreateDefaultNodePanel(Node node, CanvasState canvasState) { // create the nodePanel rect Rect nodePanelRect = new Rect(new Vector2(0, 0), new Vector2(BehaviourEditorStyles.NODE_DEFAULT_WIDTH, BehaviourEditorStyles.NODE_DEFAULT_HEIGHT)); int handleSize = 16; int handlePadding = 2; Rect inHandleRect = new Rect(Vector2.zero, new Vector2(handleSize, handleSize)); inHandleRect.center = new Vector2(nodePanelRect.width / 2, 0 - handleSize / 2 - handlePadding); Rect outHandleRect = new Rect(Vector2.zero, new Vector2(handleSize, handleSize)); outHandleRect.center = new Vector2(nodePanelRect.width / 2, (nodePanelRect.size.y) + (handleSize / 2) + handlePadding); //NodePanel nodePanel = new NodePanel(node, nodePanelRect, inHandleRect, outHandleRect); NodePanel nodePanel = node.CanHaveChildren ? new NodePanel(node, nodePanelRect, inHandleRect, outHandleRect, canvasState) : new NodePanel(node, nodePanelRect, inHandleRect, canvasState); nodePanel.SetIcon(CanvasUtility.GetIcon(node.GetType())); nodePanel.SetColours(Color.white, BehaviourEditorStyles.nodeNormalColour, 1); return(nodePanel); }
public override void CounterInit() { right = saberManager.rightSaber; left = saberManager.leftSaber; switch (Settings.Mode) { case SpeedMode.Average: case SpeedMode.SplitAverage: GenerateBasicText("Average Speed", out averageCounter); break; case SpeedMode.Top5Sec: GenerateBasicText("Recent Top Speed", out fastestCounter); break; case SpeedMode.Both: case SpeedMode.SplitBoth: GenerateBasicText("Average Speed", out averageCounter); var label = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -1, 0)); label.fontSize = 3; label.text = "Recent Top Speed"; fastestCounter = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -1.4f, 0)); fastestCounter.text = "0"; break; } }
public override void CounterInit() { string defaultValue = FormatLabel(0, 0, Settings.AveragePrecision); var label = CanvasUtility.CreateTextFromSettings(Settings); label.text = "Average Cut"; label.fontSize = 3; Vector3 leftOffset = Vector3.up * -0.2f; TextAlignmentOptions leftAlign = TextAlignmentOptions.Top; if (Settings.SeparateSaberCounts) { cutCounterRight = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0.2f, -0.2f, 0)); cutCounterRight.lineSpacing = -26; cutCounterRight.text = Settings.SeparateCutValues ? $"{defaultValue}\n{defaultValue}\n{defaultValue}" : $"{defaultValue}"; cutCounterRight.alignment = TextAlignmentOptions.TopLeft; leftOffset = new Vector3(-0.2f, -0.2f, 0); leftAlign = TextAlignmentOptions.TopRight; } cutCounterLeft = CanvasUtility.CreateTextFromSettings(Settings, leftOffset); cutCounterLeft.lineSpacing = -26; cutCounterLeft.text = Settings.SeparateCutValues ? $"{defaultValue}\n{defaultValue}\n{defaultValue}" : $"{defaultValue}"; cutCounterLeft.alignment = leftAlign; scoreController.scoringForNoteFinishedEvent += ScoreController_scoringForNoteFinishedEvent; }
public override void CounterInit() { string defaultValue = FormatTimeDependence(0, GetDecimals()); var label = CanvasUtility.CreateTextFromSettings(Settings); label.text = "Time Dependence"; label.fontSize = 3; Vector3 leftOffset = Vector3.up * -0.2f; TextAlignmentOptions leftAlign = TextAlignmentOptions.Top; if (Configuration.Instance.separateSaber) { _counterRight = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0.2f, -0.2f, 0)); _counterRight.lineSpacing = -26; _counterRight.text = defaultValue; _counterRight.alignment = TextAlignmentOptions.TopLeft; leftOffset = new Vector3(-0.2f, -0.2f, 0); leftAlign = TextAlignmentOptions.TopRight; } _counterLeft = CanvasUtility.CreateTextFromSettings(Settings, leftOffset); _counterLeft.lineSpacing = -26; _counterLeft.text = defaultValue; _counterLeft.alignment = leftAlign; }
public override void OnPointerDrag(PointerEvent evt) { NodeHandle handle = (NodeHandle)evt.downObject; Vector2 mousePos = evt.mousePos; if (_draggingHandle == null) { if (handle.type == NodeHandle.HandleType.Out) { _nodeCanvas.CreatePreviewConnection(handle, evt.mousePos); _draggingHandle = handle; } else { NodePanel parent = handle.NodePanel.Parent; if (parent != null) { _draggingHandle = parent.outHandle; _nodeCanvas.RemoveChild(handle.NodePanel); _nodeCanvas.CreatePreviewConnection(parent.outHandle, evt.mousePos); } } } if (_draggingHandle != null && _nodeCanvas.previewConnection != null) { _nodeCanvas.previewConnection.SetEndPosition(CanvasUtility.ScreenToCanvasPosition(mousePos, _nodeCanvas.canvasState)); _nodeCanvas.previewConnection.UpdatePoints(new List <NodeConnection>()); } }
private void InitPercentageRing() { if (Configuration.Instance.showPercentageRing) { // Create ring var canvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); if (canvas != null) { HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID); Vector2 ringAnchoredPos = CanvasUtility.GetAnchoredPositionFromConfig(Settings) * currentSettings.PositionScale; ImageView backgroundImage = CreateRing(canvas); backgroundImage.rectTransform.anchoredPosition = ringAnchoredPos; backgroundImage.CrossFadeAlpha(0.05f, 1f, false); backgroundImage.transform.localScale = ringSize / 10; backgroundImage.type = Image.Type.Simple; progressRing = CreateRing(canvas); progressRing.rectTransform.anchoredPosition = ringAnchoredPos; progressRing.transform.localScale = ringSize / 10; } //relativeScoreAndImmediateRank.relativeScoreOrImmediateRankDidChangeEvent += UpdateRing; UpdateRing(); } }
public override void CounterInit() { right = playerController.rightSaber; left = playerController.leftSaber; switch (Settings.Mode) { case SpeedMode.Average: case SpeedMode.SplitAverage: GenerateBasicText("Average Speed", out averageCounter); break; case SpeedMode.Top5Sec: GenerateBasicText("Recent Top Speed", out fastestCounter); SharedCoroutineStarter.instance.StartCoroutine(FastestSpeed()); break; case SpeedMode.Both: case SpeedMode.SplitBoth: GenerateBasicText("Average Speed", out averageCounter); var label = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -1, 0)); label.fontSize = 3; label.text = "Recent Top Speed"; fastestCounter = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -1.4f, 0)); SharedCoroutineStarter.instance.StartCoroutine(FastestSpeed()); break; } }
/// <summary> /// PutReference() /// Static method which is responsible /// for manually updating the patient list in Canvas Oncology App /// </summary> public static void doReferenceUpdate() { API settings = new API(); // make new canvas object Canvas c = new Canvas(); // set the rows for the object based on the data set CanvasUtility.SetCanvasRows(c); // set canvas url CanvasUtility.SetCanvasURL(c, Canvas.RequestType.ReferencePut); // don't process request if there are no rows avaliable if (c.Rows.Count == 0) { return; } // get the last identity Identity lastIdentity = IdentityController.GetLastIdentity(); // update the text file FileStoreUtility.UpdateIndex(lastIdentity.lastId.ToString()); // make xml XMLController.BuildXML(c); // get payload string XMLPayload = File.ReadAllText(settings.XML_FILE_NAME); // make request to update fields XMLController.doRequest(c, XMLPayload); }
public override void OnPointerDrag(PointerEvent evt) { if (evt.shift) { return; } if (topLevelPanels == null) { topLevelPanels = GetTopLevelPanels(_nodeCanvas.selectedPanels); } float factor = BehaviourEditor.SNAPPING_FACTOR; deltaPos += evt.deltaPos; float deltaX = Mathf.Abs(deltaPos.x) > factor ? deltaPos.x : 0; float deltaY = Mathf.Abs(deltaPos.y) > factor ? deltaPos.y : 0; for (int i = 0; i < topLevelPanels.Count; i++) { NodePanel draggingPanel = topLevelPanels[i]; draggingPanel.transform.position += new Vector2(deltaX, deltaY); draggingPanel.transform.position = CanvasUtility.SnapPosition(draggingPanel.transform.position, factor); if (draggingPanel.Parent != null) { draggingPanel.Parent.outHandle.UpdateConnections(); } draggingPanel.UpdateAllConnections(); } deltaPos = new Vector2(deltaX == 0 ? deltaPos.x : 0, deltaY == 0 ? deltaPos.y : 0); }
public override void CounterInit() { if (setupData.practiceSettings != null && setupData.practiceSettings.startInAdvanceAndClearNotes) { float startTime = setupData.practiceSettings.startSongTime; // This LINQ statement is to ensure compatibility with Practice Mode / Practice Plugin notesLeft = noteCountProcessor.Data.Count(x => x.time > startTime); } else { notesLeft = noteCountProcessor.NoteCount; } if (Settings.LabelAboveCount) { GenerateBasicText("Notes Remaining", out counter); counter.text = notesLeft.ToString(); } else { counter = CanvasUtility.CreateTextFromSettings(Settings); counter.text = $"Notes Remaining: {notesLeft}"; counter.fontSize = 2; } }
public override void CounterInit() { var header = CanvasUtility.CreateTextFromSettings(Settings); header.text = "William Gay"; header.fontSize = 3; williamGayness = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -0.4f, 0)); }
public override void CounterInit() { Logger.log.Debug("Creating nightscout counter..."); bgText = CanvasUtility.CreateTextFromSettings(Settings); bgText.text = "--- mg/dl"; bgText.color = Color.white; UpdateText(null, NightscoutDataService.cachedData); NightscoutDataService.BGEvent += UpdateText; }
public override void CounterInit() { ScoreUIController scoreUIController = coreGameHUD.GetComponentInChildren <ScoreUIController>(); TextMeshProUGUI old = ScoreUIText(ref scoreUIController); GameObject baseGameScore = RelativeScoreGO(ref coreGameHUD); relativeScoreText = baseGameScore.GetComponent <TextMeshProUGUI>(); relativeScoreText.color = Color.white; GameObject baseGameRank = ImmediateRankGO(ref coreGameHUD); rankText = baseGameRank.GetComponent <TextMeshProUGUI>(); rankText.color = Color.white; Canvas currentCanvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); old.rectTransform.SetParent(currentCanvas.transform, true); baseGameScore.transform.SetParent(old.transform, true); baseGameRank.transform.SetParent(old.transform, true); switch (Settings.Mode) { case ScoreMode.RankOnly: Object.Destroy(baseGameScore.gameObject); break; case ScoreMode.ScoreOnly: Object.Destroy(baseGameRank.gameObject); break; } RectTransform pointsTextTransform = old.rectTransform; HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID); float positionScale = currentSettings?.PositionScale ?? 10; Vector2 anchoredPos = (CanvasUtility.GetAnchoredPositionFromConfig(Settings, currentSettings.IsMainCanvas) + offset) * positionScale; Plugin.Logger.Warn(anchoredPos.ToString()); pointsTextTransform.anchoredPosition = anchoredPos; // I dont know why Personal Best has even the SLIGHTEST of influence on the position of Score Counter... but it does? if (!personalBest.Enabled) { pointsTextTransform.anchoredPosition -= new Vector2(0, 25); } pointsTextTransform.localPosition = new Vector3(pointsTextTransform.localPosition.x, pointsTextTransform.localPosition.y, 0); pointsTextTransform.localEulerAngles = Vector3.zero; Object.Destroy(coreGameHUD.GetComponentInChildren <ImmediateRankUIPanel>()); relativeScoreAndImmediateRank.relativeScoreOrImmediateRankDidChangeEvent += UpdateText; UpdateText(); }
private void DrawBoxSelection() { Rect r = CanvasUtility.WorldToCanvasRect(canvas.boxSelection, canvas.canvasState); GUI.color = BehaviourEditorStyles.BOX_SELECTION_COLOUR; GUI.DrawTexture(r, new Texture2D(5, 5)); Handles.color = BehaviourEditorStyles.BOX_SELECTION_OUTLINE_COLOUR; Handles.DrawLine(new Vector3(r.min.x, r.min.y, 0), new Vector3(r.max.x, r.min.y, 0)); Handles.DrawLine(new Vector3(r.max.x, r.min.y, 0), new Vector3(r.max.x, r.max.y, 0)); Handles.DrawLine(new Vector3(r.min.x, r.max.y, 0), new Vector3(r.max.x, r.max.y, 0)); Handles.DrawLine(new Vector3(r.min.x, r.min.y, 0), new Vector3(r.min.x, r.max.y, 0)); }
private void InitPercentMode() { // Required. We need to get a handle to the game's default score counter and destroy it. _ = CanvasUtility.CreateTextFromSettings(Settings, null); ScoreUIController scoreUIController = coreGameHUD.GetComponentInChildren <ScoreUIController>(); TextMeshProUGUI old = ScoreUIText(ref scoreUIController); GameObject baseGameScore = RelativeScoreGO(ref coreGameHUD); GameObject baseGameRank = ImmediateRankGO(ref coreGameHUD); // Set up parenting Canvas currentCanvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); old.rectTransform.SetParent(currentCanvas.transform, true); baseGameScore.transform.SetParent(old.transform, true); baseGameRank.transform.SetParent(old.transform, true); // Destroy Score UnityEngine.Object.Destroy(baseGameScore.gameObject); // Destroy Rank UnityEngine.Object.Destroy(baseGameRank.gameObject); if (!Configuration.Instance.showScore) { old.fontSize = 0; } percentMajorText = CanvasUtility.CreateTextFromSettings(Settings); percentMajorText.fontSize = 7; percentMinorText = CanvasUtility.CreateTextFromSettings(Settings); percentMinorText.fontSize = 3; RectTransform pointsTextTransform = old.rectTransform; HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID); Vector2 anchoredPos = CanvasUtility.GetAnchoredPositionFromConfig(Settings) + (offset * (3f / currentSettings.PositionScale)); pointsTextTransform.localPosition = anchoredPos * currentSettings.PositionScale; pointsTextTransform.localPosition = new Vector3(pointsTextTransform.localPosition.x, pointsTextTransform.localPosition.y, 0); pointsTextTransform.localEulerAngles = Vector3.zero; UnityEngine.Object.Destroy(coreGameHUD.GetComponentInChildren <ImmediateRankUIPanel>()); InitPercentageRing(); percentMajorText.rectTransform.anchoredPosition += new Vector2(0.0f, 0.7f); percentMinorText.rectTransform.anchoredPosition += new Vector2(0.0f, -3.0f); prevPercentMajor = -1; prevPercentMinor = -1; //relativeScoreAndImmediateRank.relativeScoreOrImmediateRankDidChangeEvent += UpdatePercentModeText; UpdatePercentModeText(); }
public static void Patch(HarmonyObj obj, CanvasUtility canvas, HUDConfigModel hud, MenuUIInstaller menuUIInstaller) { if (obj.GetPatchedMethods().Any(x => x == menuTransitions)) { obj.Unpatch(menuTransitions, transpiler); } canvasUtility = canvas; hudConfig = hud; menuInstaller = menuUIInstaller; obj.Patch(menuTransitions, null, null, new HarmonyMethod(transpiler)); }
protected override void SpawnBackend(Entity target) { if (m_Canvas == null) { m_Canvas = CanvasUtility.Create(World, 0, "ServerRoom", defaultAddRaycaster: true); } base.SpawnBackend(target); var rt = LastBackend.GetComponent <RectTransform>(); rt.SetParent(m_Canvas.transform, false); CanvasUtility.ExtendRectTransform(rt); }
protected override void OnCreate() { base.OnCreate(); EntityManager.CreateEntity(typeof(MenuData)); m_Canvas = CanvasUtility.Create(World, -1, "Background Canvas"); var bgGo = new GameObject("BackgroundQuad", typeof(RectTransform), typeof(CanvasRenderer), typeof(Image)); bgGo.transform.SetParent(m_Canvas.transform, false); m_QuadBackground = bgGo.GetComponent <Image>(); CanvasUtility.ExtendRectTransform(m_QuadBackground.GetComponent <RectTransform>()); SetBackgroundCanvasColor(Color.clear); }
protected override void SpawnBackend(Entity target) { base.SpawnBackend(target); var rt = LastBackend.GetComponent <RectTransform>(); CanvasUtility.ExtendRectTransform(rt); var layout = LastBackend.GetComponent <LayoutElement>(); layout.preferredHeight = 60; layout.minWidth = 125; layout.minHeight = 60; layout.flexibleWidth = 1; }
public override void CounterInit() { length = atsc.songLength; songBPM = gcssd.difficultyBeatmap.level.beatsPerMinute; timeText = CanvasUtility.CreateTextFromSettings(Settings); timeText.fontSize = 4; // Set default text, which is visible in Multiplayer // Missing cases are covered by the default "_" case timeText.text = Settings.Mode switch { ProgressMode.Percent when Settings.ProgressTimeLeft => "100%", ProgressMode.Percent when !Settings.ProgressTimeLeft => "0%", ProgressMode.TimeInBeats when Settings.ProgressTimeLeft => $"{Mathf.Round(songBPM / 60 * length / 0.25f) * 0.25f:F2}", ProgressMode.TimeInBeats when !Settings.ProgressTimeLeft => "0.00", _ when Settings.ProgressTimeLeft => $"{atsc.songLength:F2}", _ when !Settings.ProgressTimeLeft => "0:00" }; // I'm sorry, little one. GameObject baseGameProgress = SongProgressPanelGO(ref coreGameHUD); UnityEngine.Object.Destroy(baseGameProgress); if (Settings.Mode != ProgressMode.Percent) { var canvas = CanvasUtility.GetCanvasFromID(Settings.CanvasID); if (canvas != null) { ImageView backgroundImage = CreateRing(canvas); backgroundImage.rectTransform.anchoredPosition = timeText.rectTransform.anchoredPosition; backgroundImage.CrossFadeAlpha(0.05f, 1f, false); backgroundImage.transform.localScale = ringSize / 10; backgroundImage.type = Image.Type.Simple; progressRing = CreateRing(canvas); progressRing.rectTransform.anchoredPosition = timeText.rectTransform.anchoredPosition; progressRing.transform.localScale = ringSize / 10; // Start progress ring at 100% or 0%, depending on how the ring will behave progressRing.fillAmount = (Settings.ProgressTimeLeft && Settings.IncludeRing) ? 1 : 0; } } }
void CreatePattern(Texture2D pattern) { if (parent == null) { SetParent = CurrentRaycastObject().GetComponent <Image>().canvas.GetComponent <RectTransform>(); } GameObject go = new GameObject("Pattern"); Image image = go.AddComponent <Image>(); go.transform.SetParent(parent, false); go.GetComponent <RectTransform>().ScreenPointToRectPosition(pointerPosition, image.canvas.scaleFactor); image.sprite = CanvasUtility.GetSprite(TextureUtility.CopyTexture(pattern)); previousPosition = pointerPosition; }