* add mouse controller * support different control styles in options deprecate old input check methods * fully functional input actions system * btsds InputAction * blue bear InputAction * more games fix bugs with some input related systems * coin toss re-toss * cheer readers touch * dog ninja touch * multiple games * last of the easy games' touch * more specialized games * specialized games 2 * finish ktb games * remove legacy settings disclaimer * "only" two games left * karate man touch * rockers touch still needs fixes and bad judge strum * DSGuy flicking animation * playstyle chart property * improve performance of minigame preloading * improve look of cursor make assetbundles use chunk-based compression refactor assetbundle loading methods a bit * prime conductor stream playback to stabilize seeking operations * fix air rally swing on pad release * use virtual mouse pointer * add UniTask * make BeatAction use UniTask * implement UniTask to replace some coroutines * add touch style UI elements and effects games now support the ability to define two cursor colours if they need split screen touch inputs * update plugins and buildscript * implement thresholded pointer position clipping * fix clamping * instant show / hide fix discord game SDK crashes
		
			
				
	
	
		
			114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using UnityEngine;
 | 
						|
using UnityEngine.UI;
 | 
						|
using System.Text;
 | 
						|
using Discord;
 | 
						|
using System;
 | 
						|
 | 
						|
namespace HeavenStudio.DiscordRPC
 | 
						|
{
 | 
						|
    public class DiscordController : MonoBehaviour
 | 
						|
    {
 | 
						|
        public Discord.Discord discord;
 | 
						|
 | 
						|
        public static DiscordController instance { get; set; }
 | 
						|
 | 
						|
        private long lastStartTime;
 | 
						|
 | 
						|
        private bool quitting;
 | 
						|
 | 
						|
        private void Awake()
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        private void Start()
 | 
						|
        {
 | 
						|
            DontDestroyOnLoad(this.gameObject);
 | 
						|
            instance = this;
 | 
						|
        }
 | 
						|
 | 
						|
        // private void OnApplicationQuit()
 | 
						|
        // {
 | 
						|
        //     quitting = true;
 | 
						|
        // }
 | 
						|
 | 
						|
        public void Connect()
 | 
						|
        {
 | 
						|
            discord = new Discord.Discord(DiscordRPC.clientID, (System.UInt64)Discord.CreateFlags.NoRequireDiscord);
 | 
						|
            quitting = false;
 | 
						|
        }
 | 
						|
 | 
						|
        public void Disconnect()
 | 
						|
        {
 | 
						|
            if (discord != null)
 | 
						|
            {
 | 
						|
                discord.Dispose();
 | 
						|
                quitting = true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        public void UpdateActivity(string stateText, string stateDetails, bool updateTime = false)
 | 
						|
        {
 | 
						|
            var activityManager = discord.GetActivityManager();
 | 
						|
            var activity = new Activity { };
 | 
						|
 | 
						|
 | 
						|
            activity = new Activity
 | 
						|
            {
 | 
						|
                State = stateText,
 | 
						|
                Details = stateDetails,
 | 
						|
                Assets =
 | 
						|
                {
 | 
						|
                        LargeImage = "logo",
 | 
						|
                        LargeText = "Together now!"
 | 
						|
                },
 | 
						|
                Instance = true,
 | 
						|
            };
 | 
						|
 | 
						|
            if (updateTime == true)
 | 
						|
            {
 | 
						|
                lastStartTime = DateTimeOffset.Now.ToUnixTimeSeconds();
 | 
						|
                activity.Timestamps.Start = lastStartTime;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                activity.Timestamps.Start = lastStartTime;
 | 
						|
            }
 | 
						|
 | 
						|
            activityManager.UpdateActivity(activity, (result) => {
 | 
						|
                if (result == Discord.Result.Ok)
 | 
						|
                {
 | 
						|
                    Debug.Log("Update Success!");
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    Debug.Log("Update Failed");
 | 
						|
                }
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        public void ClearActivity()
 | 
						|
        {
 | 
						|
            var activityManager = discord.GetActivityManager();
 | 
						|
            activityManager.ClearActivity((result) => {
 | 
						|
                if (result == Discord.Result.Ok)
 | 
						|
                {
 | 
						|
                    Debug.Log("Clear Success!");
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    Debug.Log("Clear Failed");
 | 
						|
                }
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        void Update()
 | 
						|
        {
 | 
						|
            if ((!quitting) && discord != null)
 | 
						|
            {
 | 
						|
                discord.RunCallbacks();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |