Inheritance: MonoBehaviour
コード例 #1
0
ファイル: PBCounter.cs プロジェクト: PulseLane/CountersPlus
        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);
        }
コード例 #2
0
        public void RegisterNewCanvas(HUDCanvas canvasSettings, int id)
        {
            Canvas canvas = CreateCanvasWithConfig(canvasSettings);

            CanvasIDToCanvas.Add(id, canvas);
            CanvasToSettings.Add(canvas, canvasSettings);
        }
コード例 #3
0
        public Canvas CreateCanvasWithConfig(HUDCanvas canvasSettings)
        {
            GameObject CanvasGameObject = new GameObject($"Counters+ | {canvasSettings.Name} Canvas");

            Vector3 CanvasPos  = canvasSettings.Position;
            Vector3 CanvasRot  = canvasSettings.Rotation;
            float   CanvasSize = canvasSettings.Size;

            Canvas canvas = CanvasGameObject.AddComponent <Canvas>();

            canvas.renderMode = RenderMode.WorldSpace;

            CanvasGameObject.transform.localScale = Vector3.one / CanvasSize;
            CanvasGameObject.transform.position   = CanvasPos;
            CanvasGameObject.transform.rotation   = Quaternion.Euler(CanvasRot);

            // Inherit canvas properties from the Energy Bar to ignore the shockwave effect.
            // However, a caveat as that, when viewing through walls, UI elements will not appear.
            if (canvasSettings.IgnoreShockwaveEffect && energyCanvas != null)
            {
                canvas.overrideSorting  = energyCanvas.overrideSorting;
                canvas.sortingLayerID   = energyCanvas.sortingLayerID;
                canvas.sortingLayerName = energyCanvas.sortingLayerName;
                canvas.sortingOrder     = energyCanvas.sortingOrder;
                canvas.gameObject.layer = energyCanvas.gameObject.layer;
            }

            return(canvas);
        }
コード例 #4
0
    void Start()
    {
        //BUGFIX: Set the sprite sorting order
        GetComponentsInChildren <SpriterDotNetBehaviour>()[0].SortingLayer = "Player";

        //get the HUD
        hud = Object.FindObjectOfType <HUDCanvas>();

        DamageValue = 1;
        HealthValue = 4;

        //get and disable the damagers
        damagerControllers = GetComponentsInChildren <DamagerController>();
        foreach (DamagerController dmgr in damagerControllers)
        {
            dmgr.gameObject.SetActive(false);

            dmgr.PushOnTriggerEnter((Collider2D collider) => {
                if (collider.gameObject.tag == "Monster" && collider.gameObject.GetComponent <Creatures.ICreature>().HealthValue > 0)
                {
                    collider.gameObject.GetComponent <Creatures.ICreature>().HealthValue -= DamageValue;
                    hud.SparkLevel++;

                    //bounce on attack
                    Vector2 normal = collider.bounds.ClosestPoint(transform.position) - transform.position;
                    normal.Normalize();

                    if (normal.y < 0f)
                    {
                        jumping = true;
                    }
                }
            });
        }
    }
コード例 #5
0
 private void Awake()
 {
     HUDCanvas         = transform.Find("HUDCanvas");
     BuildPanel        = HUDCanvas.Find("BuildPanel").GetComponent <BuildPanel>();
     GameInfoPanel     = HUDCanvas.transform.Find("GameInfoPanel").GetComponent <GameInfoPanel>();
     SelectedInfoPanel = HUDCanvas.transform.Find("SelectedInfoPanel").GetComponent <SelectedInfoPanel>();
 }
コード例 #6
0
ファイル: PBCounter.cs プロジェクト: Caeden117/CountersPlus
        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);
        }
コード例 #7
0
        protected void AddCustomCounter(CustomCounter customCounter, Type counterType)
        {
            ConfigModel settings;

            if ((settings = Container.TryResolveId <ConfigModel>(customCounter.Name)) != null)
            {
                HUDCanvas canvasSettings = GrabCanvasForCounter(settings);

                if (!settings.Enabled || (!canvasSettings.IgnoreNoTextAndHUDOption && dataModel.playerData.playerSpecificSettings.noTextsAndHuds))
                {
                    return;
                }

                Plugin.Logger.Debug($"Loading counter {customCounter.Name}...");

                if (counterType.BaseType == typeof(MonoBehaviour))
                {
                    Container.BindInterfacesAndSelfTo(counterType).FromNewComponentOnRoot().AsSingle().NonLazy();
                }
                else
                {
                    Container.BindInterfacesAndSelfTo(counterType).AsSingle().NonLazy();
                }
            }
        }
コード例 #8
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();
        }
コード例 #9
0
        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();
        }
コード例 #10
0
        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();
            }
        }
コード例 #11
0
 // GameController initialization
 void initGameController()
 {
     gameController = this;
     hudCanvas      = HUDObject.GetComponent <HUDCanvas> ();
     hudCanvas.init();
     actionsMenuObject.GetComponent <ActionsMenu> ().init();
     gameObject.GetComponent <ShowMenu> ().setShowMenu();
 }
コード例 #12
0
        public override void InstallBindings()
        {
            MainConfigModel mainConfig = Plugin.MainConfig;

            hudConfig = Container.Resolve <HUDConfigModel>();
            dataModel = Container.Resolve <PlayerDataModel>();

            if (!mainConfig.Enabled)
            {
                return;
            }

            /// LOADING IMPORTANT SHIT LIKE CANVASES AND STUFF ///
            Container.Bind <CanvasUtility>().AsSingle();

            Container.Bind <NoteCountProcessor>().To <GenericNoteCountProcessor>().AsSingle();

            /// LOADING COUNTERS ///
            Plugin.Logger.Notice("Loading counters...");

            AddCounter <MissedConfigModel, MissedCounter>();
            AddCounter <NoteConfigModel, NotesCounter>();

            if (mainConfig.ProgressConfig.Mode != ProgressMode.BaseGame)
            {
                AddCounter <ProgressConfigModel, ProgressCounter>();
            }
            else
            {
                AddCounter <ProgressConfigModel, ProgressBaseGameCounter>();
            }

            AddCounter <ScoreConfigModel, ScoreCounter>();
            AddCounter <CutConfigModel, CutCounter>();
            AddCounter <FailConfigModel, FailCounter>();
            AddCounter <NotesLeftConfigModel, NotesLeftCounter>();
            AddCounter <SpeedConfigModel, SpeedCounter>();
            AddCounter <SpinometerConfigModel, Spinometer>();


            AddCounter <PBConfigModel, PBCounter>((settings) => {
                ScoreConfigModel scoreConfig = Container.Resolve <ScoreConfigModel>();
                HUDCanvas canvasSettings     = scoreConfig.CanvasID == -1 ? hudConfig.MainCanvasSettings : hudConfig.OtherCanvasSettings[scoreConfig.CanvasID];
                return(scoreConfig.Enabled && settings.UnderScore && (dataModel.playerData.playerSpecificSettings.noTextsAndHuds ? canvasSettings.IgnoreNoTextAndHUDOption : true));
            });

            foreach (Custom.CustomCounter customCounter in Plugin.LoadedCustomCounters.Values)
            {
                AddCustomCounter(customCounter, customCounter.CounterType);
            }

            /// LOADING BROADCASTERS WITH BROADCAST IN-GAME EVENTS TO COUNTERS AND STUFF ///
            Container.BindInterfacesAndSelfTo <CounterEventBroadcaster>().AsSingle().NonLazy();
            Container.BindInterfacesAndSelfTo <NoteEventBroadcaster>().AsSingle().NonLazy();
            Container.BindInterfacesAndSelfTo <ScoreEventBroadcaster>().AsSingle().NonLazy();
            Plugin.Logger.Notice("Counters loaded!");
        }
コード例 #13
0
 public void StartClick(BaseEventData data)
 {
     MenuCanvas.SetActive(false);
     HUDCanvas.SetActive(true);
     Player.SetActive(true);
     Generator.SetActive(true);
     Score = 0;
     Player.GetComponent<Player>().Prepare();
     StartCoroutine("CountDown");
 }
コード例 #14
0
        public override void InstallBindings()
        {
            MainConfigModel mainConfig = Plugin.MainConfig;

            if (!mainConfig.Enabled)
            {
                return;
            }

            /// LOADING IMPORTANT SHIT LIKE CANVASES AND STUFF ///
            Container.Bind <CanvasUtility>().AsSingle();

            Container.Bind <NoteCountProcessor>().To <GenericNoteCountProcessor>().AsSingle();

            /// LOADING COUNTERS ///
            Plugin.Logger.Notice("Loading counters...");

            AddCounter <MissedConfigModel, MissedCounter>();
            AddCounter <NoteConfigModel, NotesCounter>();

            if (mainConfig.ProgressConfig.Mode != ProgressMode.BaseGame)
            {
                AddCounter <ProgressConfigModel, ProgressCounter>();
            }
            else
            {
                AddCounter <ProgressConfigModel, ProgressBaseGameCounter>();
            }

            AddCounter <ScoreConfigModel, ScoreCounter>();
            AddCounter <CutConfigModel, CutCounter>();
            AddCounter <FailConfigModel, FailCounter>();
            AddCounter <NotesLeftConfigModel, NotesLeftCounter>();
            AddCounter <SpeedConfigModel, SpeedCounter>();
            AddCounter <SpinometerConfigModel, Spinometer>();

            AddCounter <PBConfigModel, PBCounter>((settings) => {
                ScoreConfigModel scoreConfig = Container.Resolve <ScoreConfigModel>();
                HUDCanvas canvasSettings     = GrabCanvasForCounter(scoreConfig);
                return(scoreConfig.Enabled && settings.UnderScore && (dataModel.playerData.playerSpecificSettings.noTextsAndHuds ? canvasSettings.IgnoreNoTextAndHUDOption : true));
            });

            InstallCustomCounters();

            if (mainConfig.AprilFoolsTomfoolery && mainConfig.IsAprilFools)
            {
                Container.BindInterfacesAndSelfTo <AprilFools>().AsSingle().NonLazy();
            }

            /// LOADING BROADCASTERS WITH BROADCAST IN-GAME EVENTS TO COUNTERS AND STUFF ///
            Container.BindInterfacesAndSelfTo <CounterEventBroadcaster>().AsSingle().NonLazy();
            Container.BindInterfacesAndSelfTo <NoteEventBroadcaster>().AsSingle().NonLazy();
            Container.BindInterfacesAndSelfTo <ScoreEventBroadcaster>().AsSingle().NonLazy();
        }
コード例 #15
0
        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();
        }
コード例 #16
0
 public void ExitToMenuClick()
 {
     Time.timeScale = 1;
     DestroyObjects();
     PausePanel.SetActive(false);
     MenuCanvas.SetActive(true);
     HUDCanvas.SetActive(false);
     LostPanel.SetActive(false);
     Player.SetActive(false);
     Generator.SetActive(false);
 }
コード例 #17
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();
        }
コード例 #18
0
ファイル: Counter.cs プロジェクト: nicoco007/CountersPlus
        protected void GenerateBasicText(string labelText, out TMP_Text count)
        {
            TMP_Text label = CanvasUtility.CreateTextFromSettings(Settings);

            label.fontSize = 3;
            label.text     = labelText;

            HUDCanvas canvas = CanvasUtility.GetCanvasSettingsFromID(Settings.CanvasID);

            count          = CanvasUtility.CreateTextFromSettings(Settings, new Vector3(0, -0.4f * (10 / canvas.PositionScale), 0));
            count.text     = "0";
            count.fontSize = 4;
        }
コード例 #19
0
 protected void RefreshData()
 {
     data.data.Clear();
     for (int i = -1; i < hudConfig.OtherCanvasSettings.Count; i++)
     {
         HUDCanvas settings            = canvasUtility.GetCanvasSettingsFromID(i);
         int       countersUsingCanvas = flowCoordinator.Value.AllConfigModels.Count(x => x.CanvasID == i);
         var       info = new CustomListTableData.CustomCellInfo(
             settings?.Name ?? "Unknown",
             $"<i>{countersUsingCanvas} counter(s) use this Canvas.</i>", Texture2D.blackTexture);
         data.data.Add(info);
     }
     data.tableView.ReloadData();
 }
コード例 #20
0
        private void CreateNewCanvas(string name)
        {
            HUDCanvas settings = new HUDCanvas();

            if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
            {
                name = "New Canvas";
            }
            settings.Name = name;
            canvasUtility.RegisterNewCanvas(settings, hudConfig.OtherCanvasSettings.Count);
            hudConfig.OtherCanvasSettings.Add(settings);
            mainConfig.HUDConfig = hudConfig;
            RefreshData();
        }
コード例 #21
0
    public void ReceiveConnectionDetails(NetworkPlayer Player, NetworkViewID ViewID, Vector3 Position, Quaternion Rotation)
    {
        if (!Network.isClient)
        {
            return;
        }

        LocalPlayer = mSpawnHelper.CreateLocalPlayer(Player, ViewID, Position, Rotation);
        mNetworkview.RPC("ReceiveNewPlayer", RPCMode.Others, Player, ViewID, Position, Rotation);

        pHUD = GameObject.FindGameObjectWithTag("PlayerHUD").GetComponent <HUDCanvas>();
        ServerDetails.AddConnection(Player, LocalPlayer);
        mNetworkview.RPC("GetOtherPlayers", RPCMode.Server);
        LastPosition = LocalPlayer.GetComponent <PlayerMovement>().GetPosition();
        mNetworkview.RPC("PlayerAlive", RPCMode.Server, Player);
    }
コード例 #22
0
 private void Start()
 {
     ScoreText = GameObject.Find("ScoreText").GetComponent<Text>();
     FinalScoreText = GameObject.Find("FinalScoreText").GetComponent<Text>();
     HighScoreText = GameObject.Find("HighScoreText").GetComponent<Text>();
     CountDownText = GameObject.Find("CountDownText").GetComponent<Text>();
     Objects = GameObject.Find("Objects");
     LostPanel = GameObject.Find("Lost");
     Player = GameObject.Find("Player");
     Player.SetActive(false);
     LostPanel.SetActive(false);
     HUDCanvas.SetActive(false);
     CountDownText.gameObject.SetActive(false);
     HighScore = PlayerPrefs.GetInt("HighScore", 0);
     Play = false;
 }
コード例 #23
0
        public void ApplyCanvasForEditing(int id)
        {
            canvasID = id;
            HUDCanvas settings = canvasUtility.GetCanvasSettingsFromID(canvasID);

            if (currentlyEditing != null)
            {
                currentlyEditing.OnCanvasSettingsChanged -= CurrentlyEditing_OnCanvasSettingsChanged;
                currentlyEditing.OnCanvasSettingsApply   -= CurrentlyEditing_OnCanvasSettingsApply;
            }
            ClearScreen();
            BSMLParser.instance.Parse(SettingsBase, gameObject, settings);
            currentlyEditing = settings;
            currentlyEditing.OnCanvasSettingsChanged += CurrentlyEditing_OnCanvasSettingsChanged;
            currentlyEditing.OnCanvasSettingsApply   += CurrentlyEditing_OnCanvasSettingsApply;
        }
コード例 #24
0
        private void ReparentCanvas(Canvas canvas)
        {
            Canvas    currentCanvas   = CanvasUtility.GetCanvasFromID(Settings.CanvasID);
            HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromCanvas(currentCanvas);
            float     positionScale   = currentSettings?.PositionScale ?? 10;
            Vector2   anchoredPos     = CanvasUtility.GetAnchoredPositionFromConfig(Settings) * positionScale;

            canvas.transform.SetParent(currentCanvas.transform, true);

            RectTransform canvasRect = canvas.transform as RectTransform;

            canvasRect.anchoredPosition = anchoredPos;
            canvasRect.localPosition    = new Vector3(canvasRect.localPosition.x, canvasRect.localPosition.y, 0);
            canvasRect.localEulerAngles = Vector3.zero;

            PostReparent();
        }
コード例 #25
0
        public void RefreshAllCanvases(HUDConfigModel hudConfig, GameplayCoreSceneSetupData data = null, CoreGameHUDController coreGameHUD = null)
        {
            CanvasIDToCanvas.Clear();
            CanvasToSettings.Clear();
            CanvasIDToCanvas.Add(-1, CreateCanvasWithConfig(hudConfig.MainCanvasSettings));
            CanvasToSettings.Add(CanvasIDToCanvas[-1], hudConfig.MainCanvasSettings);
            if (coreGameHUD != null && hudConfig.MainCanvasSettings.ParentedToBaseGameHUD)
            {
                Transform parent = coreGameHUD.transform;
                if (HUDType == GameplayCoreHUDInstaller.HudType.Flying)
                {
                    parent = coreGameHUD.transform.GetChild(0);
                }
                SoftParent softParent = CanvasIDToCanvas[-1].gameObject.AddComponent <SoftParent>();
                softParent.AssignParent(parent);

                // Base Game HUD is rotated backwards, so we have to reflect our vector to match.
                Vector3    posOofset = Vector3.Reflect(hudConfig.MainCanvasSettings.Position, Vector3.back); // yknow what, f**k it, its posOofset now.
                Quaternion rotOofset = Quaternion.Euler(Vector3.Reflect(hudConfig.MainCanvasSettings.Rotation, Vector3.back));

                if (HUDType == GameplayCoreHUDInstaller.HudType.Flying) // Special case for Main HUD w/360 environments
                {
                    posOofset = parent.up;
                    rotOofset = Quaternion.identity;
                }

                softParent.AssignOffsets(posOofset, rotOofset);
            }
            for (int i = 0; i < hudConfig.OtherCanvasSettings.Count; i++)
            {
                HUDCanvas canvasSettings = hudConfig.OtherCanvasSettings[i];
                RegisterNewCanvas(canvasSettings, i);

                if (coreGameHUD != null && hudConfig.OtherCanvasSettings[i].ParentedToBaseGameHUD)
                {
                    Transform parent = coreGameHUD.transform;
                    if (HUDType == GameplayCoreHUDInstaller.HudType.Flying)
                    {
                        parent = coreGameHUD.transform.GetChild(0);
                    }
                    SoftParent softParent = CanvasIDToCanvas[i].gameObject.AddComponent <SoftParent>();
                    softParent.AssignParent(parent);
                }
            }
        }
コード例 #26
0
        public override void CounterInit()
        {
            Canvas canvas = coreGameHUDController.GetComponentInChildren <SongProgressUIController>(true).GetComponent <Canvas>();

            canvas.gameObject.SetActive(true);

            Canvas    currentCanvas   = CanvasUtility.GetCanvasFromID(Settings.CanvasID);
            HUDCanvas currentSettings = CanvasUtility.GetCanvasSettingsFromCanvas(currentCanvas);
            float     positionScale   = currentSettings?.PositionScale ?? 10;
            Vector2   anchoredPos     = (CanvasUtility.GetAnchoredPositionFromConfig(Settings, currentSettings.IsMainCanvas) + offset) * positionScale;

            canvas.transform.SetParent(currentCanvas.transform, true);

            RectTransform canvasRect = canvas.transform as RectTransform;

            canvasRect.anchoredPosition = anchoredPos;
            canvasRect.localPosition    = new Vector3(canvasRect.localPosition.x, canvasRect.localPosition.y, 0);
            canvasRect.localEulerAngles = Vector3.zero;
        }
コード例 #27
0
        private void AddCustomCounter(Custom.CustomCounter customCounter, Type counterType)
        {
            ConfigModel settings = Container.TryResolveId <ConfigModel>(customCounter.Name);

            HUDCanvas canvasSettings = settings.CanvasID == -1 ? hudConfig.MainCanvasSettings : hudConfig.OtherCanvasSettings[settings.CanvasID];

            if (!settings.Enabled || (!canvasSettings.IgnoreNoTextAndHUDOption && dataModel.playerData.playerSpecificSettings.noTextsAndHuds))
            {
                return;
            }

            Plugin.Logger.Debug($"Loading counter {customCounter.Name}...");

            if (counterType.BaseType == typeof(MonoBehaviour))
            {
                Container.BindInterfacesAndSelfTo(counterType).FromNewComponentOnRoot().AsSingle().NonLazy();
            }
            else
            {
                Container.BindInterfacesAndSelfTo(counterType).AsSingle().NonLazy();
            }
        }
コード例 #28
0
        private void AddCounter <T, R>(Func <T, bool> additionalReasonToSpawn) where T : ConfigModel where R : ICounter
        {
            T settings = Container.Resolve <T>();

            HUDCanvas canvasSettings = settings.CanvasID == -1 ? hudConfig.MainCanvasSettings : hudConfig.OtherCanvasSettings[settings.CanvasID];

            if (!settings.Enabled || (!canvasSettings.IgnoreNoTextAndHUDOption && dataModel.playerData.playerSpecificSettings.noTextsAndHuds &&
                                      !additionalReasonToSpawn(settings)))
            {
                return;
            }

            Plugin.Logger.Debug($"Loading counter {settings.DisplayName}...");

            if (typeof(R).BaseType == typeof(MonoBehaviour))
            {
                Container.BindInterfacesAndSelfTo <R>().FromNewComponentOnRoot().AsSingle().NonLazy();
            }
            else
            {
                Container.BindInterfacesAndSelfTo <R>().AsSingle().NonLazy();
            }
        }
コード例 #29
0
        public void ApplyCanvasForEditing(int id)
        {
            if (id != canvasID)
            {
                hudList.Value.RefreshData();
            }
            canvasID = id;
            HUDCanvas settings = canvasUtility.GetCanvasSettingsFromID(canvasID);

            if (currentlyEditing != null)
            {
                currentlyEditing.OnCanvasSettingsChanged -= CurrentlyEditing_OnCanvasSettingsChanged;
                currentlyEditing.OnCanvasSettingsApply   -= CurrentlyEditing_OnCanvasSettingsApply;
            }
            ClearScreen();
            var param = BSMLParser.instance.Parse(SettingsBase, gameObject, settings);

            currentlyEditing = settings;
            currentlyEditing.OnCanvasSettingsChanged += CurrentlyEditing_OnCanvasSettingsChanged;
            currentlyEditing.OnCanvasSettingsApply   += CurrentlyEditing_OnCanvasSettingsApply;
            StringSetting nameFieldSetting = param.GetObjectsWithTag("name-field").First().GetComponent <StringSetting>();

            nameFieldSetting.interactable = !(currentlyEditing?.IsMainCanvas ?? true);
        }
コード例 #30
0
    public void ReceiveConnectionDetails(NetworkPlayer Player, NetworkViewID ViewID, Vector3 Position, Quaternion Rotation)
    {
        if (!Network.isClient) return;

        LocalPlayer = mSpawnHelper.CreateLocalPlayer(Player, ViewID, Position, Rotation);
        mNetworkview.RPC("ReceiveNewPlayer", RPCMode.Others, Player, ViewID, Position, Rotation);

        pHUD = GameObject.FindGameObjectWithTag("PlayerHUD").GetComponent<HUDCanvas>();
        ServerDetails.AddConnection(Player, LocalPlayer);
        mNetworkview.RPC("GetOtherPlayers", RPCMode.Server);
        LastPosition = LocalPlayer.GetComponent<PlayerMovement>().GetPosition();
        mNetworkview.RPC("PlayerAlive", RPCMode.Server, Player);
    }
コード例 #31
0
ファイル: HUDHandler.cs プロジェクト: jenfor/LikeToLearn-1
 public void CloseInventor()
 {
     inventoryCanvas.SetActive(false);
     HUDCanvas.SetActive(true);
 }