softcoded rpc calls

Co-Authored-By: Ne_Eo <NeeEoo@users.noreply.github.com>
This commit is contained in:
⍚~Nex
2024-03-23 23:34:52 +01:00
co-authored by Ne_Eo
parent b7b1441e31
commit 5eac25a541
14 changed files with 75 additions and 7 deletions
+40
View File
@@ -0,0 +1,40 @@
function onGameOver() {
changePresence('Game Over', PlayState.SONG.meta.displayName + " (" + PlayState.difficulty + ")");
}
function onPlayStateUpdate() {
// Setting parent to make code cleaner
var old = __script__.interp.scriptObject;
__script__.interp.scriptObject = PlayState.instance;
DiscordUtil.changeSongPresence(detailsText, (paused ? "Paused - " : "") + SONG.meta.displayName + " (" + difficulty + ")", inst, getIconRPC());
__script__.interp.scriptObject = old;
}
function onMenuLoaded(name:String) {
// Name is either "Main Menu", "Freeplay", "Title Screen", "Options Menu", "Credits Menu"
changePresenceSince("In the Menus", null);
}
function onEditorTreeLoaded(name:String) {
switch(name) {
case "Character Editor":
changePresenceSince("Choosing a Character", null);
case "Chart Editor":
changePresenceSince("Choosing a Chart", null);
case "Stage Editor":
changePresenceSince("Choosing a Stage", null);
}
}
function onEditorLoaded(name:String, editingThing:String) {
switch(name) {
case "Character Editor":
changePresenceSince("Editing a Character", editingThing);
case "Chart Editor":
changePresenceSince("Editing a Chart", editingThing);
case "Stage Editor":
changePresenceSince("Editing a Stage", editingThing);
}
}
@@ -101,6 +101,7 @@ class DiscordUtil
script = FlxDestroyUtil.destroy(script);
}
script = Script.create(Paths.script('data/discord'));
script.setParent(DiscordUtil);
script.load();
}
@@ -137,6 +138,20 @@ class DiscordUtil
#end
}
public static function changePresenceSince(details:String, state:String, ?smallImageKey:String, ?offset:Float = 0)
{
#if DISCORD_RPC
var start:Float = Date.now().getTime() + offset;
changePresenceAdvanced({
state: state,
details: details,
smallImageKey: smallImageKey,
startTimestamp: Std.int(start / 1000)
});
#end
}
@:noCompletion public static function fixString(str:String)
{
return new cpp.ConstCharStar(cast(str, String));
@@ -224,7 +224,7 @@ class CharacterEditor extends UIState {
FlxG.cameras.add(uiCamera);
FlxG.cameras.add(animsCamera);
character = new Character(0,0,__character, false, false);
character = new Character(0,0, __character, false, false);
character.debugMode = true;
character.cameras = [charCamera];
@@ -257,6 +257,8 @@ class CharacterEditor extends UIState {
Framerate.memoryCounter.alpha = 0.4;
Framerate.codenameBuildField.alpha = 0.4;
}
DiscordUtil.call("onEditorLoaded", ["Character Editor", __character]);
}
override function destroy() {
@@ -33,6 +33,8 @@ class CharacterSelection extends EditorTreeMenu
}));
main = new OptionsScreen("Character Editor", "Select a character to edit", list);
DiscordUtil.call("onEditorTreeLoaded", ["Character Editor"]);
}
override function createPost() {
+2
View File
@@ -490,6 +490,8 @@ class Charter extends UIState {
Framerate.codenameBuildField.alpha = 0.4;
}
updateDisplaySprites();
DiscordUtil.call("onEditorLoaded", ["Chart Editor", __song + " (" + __diff + ")"]);
}
override function destroy() {
@@ -46,6 +46,8 @@ class CharterSelection extends EditorTreeMenu {
}));
main = new OptionsScreen("Chart Editor", "Select a song to modify the charts from.", list);
DiscordUtil.call("onEditorTreeLoaded", ["Chart Editor"]);
}
override function createPost() {
+1 -2
View File
@@ -87,8 +87,7 @@ class GameOverSubstate extends MusicBeatSubstate
lossSFX = FlxG.sound.play(Paths.sound(lossSFXName));
Conductor.changeBPM(gameOverSongBPM);
DiscordUtil.changePresence('Game Over', PlayState.SONG.meta.displayName + " (" + PlayState.difficulty + ")");
DiscordUtil.call("onGameOver", []);
gameoverScript.call("postCreate");
}
+1 -1
View File
@@ -784,7 +784,7 @@ class PlayState extends MusicBeatState
* This function is dynamic, which means you can do `updateDiscordPresence = function() {}` in scripts.
*/
public dynamic function updateDiscordPresence()
DiscordUtil.changeSongPresence(detailsText, (paused ? "Paused - " : "") + SONG.meta.displayName + " (" + difficulty + ")", inst, getIconRPC());
DiscordUtil.call("onPlayStateUpdate", []);
/**
* Starts a cutscene.
+1 -1
View File
@@ -116,7 +116,7 @@ class FreeplayState extends MusicBeatState
}
}
DiscordUtil.changePresence("In the Menus", null);
DiscordUtil.call("onMenuLoaded", ["Freeplay"]);
super.create();
+1 -1
View File
@@ -32,7 +32,7 @@ class MainMenuState extends MusicBeatState
{
super.create();
DiscordUtil.changePresence("In the Menus", null);
DiscordUtil.call("onMenuLoaded", ["Main Menu"]);
CoolUtil.playMenuSong();
+1 -1
View File
@@ -116,7 +116,7 @@ class StoryMenuState extends MusicBeatState {
changeWeek(0, true);
DiscordUtil.changePresence("In the Menus", null);
DiscordUtil.call("onMenuLoaded", ["Story Menu"]);
CoolUtil.playMenuSong();
}
+2
View File
@@ -36,6 +36,8 @@ class TitleState extends MusicBeatState
startIntro();
super.create();
DiscordUtil.call("onMenuLoaded", ["Title Screen"]);
}
var logoBl:FlxSprite;
@@ -43,6 +43,8 @@ class CreditsMain extends TreeMenu {
main = new OptionsScreen('Credits', 'The people who made this possible!', selectables);
super.create();
DiscordUtil.call("onMenuLoaded", ["Credits Menu"]);
}
/**
+2
View File
@@ -37,6 +37,8 @@ class OptionsMenu extends TreeMenu {
CoolUtil.playMenuSong();
DiscordUtil.call("onMenuLoaded", ["Options Menu"]);
var bg:FlxSprite = new FlxSprite(-80).loadAnimatedGraphic(Paths.image('menus/menuBGBlue'));
// bg.scrollFactor.set();
bg.scale.set(1.15, 1.15);