mirror of
https://github.com/SashLilac/cambridge.git
synced 2024-11-22 16:49:01 -06:00
Discord RPC cleanup
- Loading Discord RPC is now handled by `load/rpc.lua` - Removed `presence` global, call `DiscordRPC:update()` directly with what needs updating - Game doesn't crash anymore if the Discord RPC fails to load - Added RPC variables in the gamemode superclass to let each gamemode handle its special case
This commit is contained in:
parent
05230ac046
commit
5d32b6a3e7
56
load/rpc.lua
Normal file
56
load/rpc.lua
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
print("Loading discord RPC...")
|
||||||
|
DiscordRPC = {
|
||||||
|
loaded = false
|
||||||
|
}
|
||||||
|
local success, RPC = pcall(require, "libs.discordRPC")
|
||||||
|
if success then
|
||||||
|
DiscordRPC.loaded = true
|
||||||
|
DiscordRPC.appId = "599778517789573120"
|
||||||
|
|
||||||
|
function RPC.ready(userId, username, discriminator, avatar)
|
||||||
|
print(string.format("Discord: ready (%s, %s, %s, %s)", userId, username, discriminator, avatar))
|
||||||
|
end
|
||||||
|
|
||||||
|
function RPC.disconnected(errorCode, message)
|
||||||
|
print(string.format("Discord: disconnected (%d: %s)", errorCode, message))
|
||||||
|
end
|
||||||
|
|
||||||
|
function RPC.errored(errorCode, message)
|
||||||
|
print(string.format("Discord: error (%d: %s)", errorCode, message))
|
||||||
|
end
|
||||||
|
|
||||||
|
function RPC.joinGame(joinSecret)
|
||||||
|
print(string.format("Discord: join (%s)", joinSecret))
|
||||||
|
end
|
||||||
|
|
||||||
|
function RPC.spectateGame(spectateSecret)
|
||||||
|
print(string.format("Discord: spectate (%s)", spectateSecret))
|
||||||
|
end
|
||||||
|
|
||||||
|
function RPC.joinRequest(userId, username, discriminator, avatar)
|
||||||
|
print(string.format("Discord: join request (%s, %s, %s, %s)", userId, username, discriminator, avatar))
|
||||||
|
RPC.respond(userId, "yes")
|
||||||
|
end
|
||||||
|
|
||||||
|
RPC.initialize(DiscordRPC.appId, true)
|
||||||
|
local now = os.time(os.date("*t"))
|
||||||
|
RPC.updatePresence({
|
||||||
|
startTimestamp = now,
|
||||||
|
details = "Loading game...",
|
||||||
|
state = "",
|
||||||
|
largeImageKey = "icon2",
|
||||||
|
largeImageText = "Original game by Joe Zeng",
|
||||||
|
smallImageKey = "",
|
||||||
|
smallImageText = ""
|
||||||
|
})
|
||||||
|
|
||||||
|
DiscordRPC.RPC = RPC
|
||||||
|
print("DiscordRPC successfully loaded.")
|
||||||
|
else
|
||||||
|
print("DiscordRPC failed to load!")
|
||||||
|
print(RPC)
|
||||||
|
end
|
||||||
|
|
||||||
|
function DiscordRPC:update(newstuff)
|
||||||
|
if self.loaded then self.RPC.updatePresence(newstuff) end
|
||||||
|
end
|
41
main.lua
41
main.lua
@ -1,46 +1,7 @@
|
|||||||
function love.load()
|
function love.load()
|
||||||
discordRPC = require("libs.discordRPC")
|
|
||||||
discordRPC.appId = "599778517789573120"
|
|
||||||
|
|
||||||
function discordRPC.ready(userId, username, discriminator, avatar)
|
|
||||||
print(string.format("Discord: ready (%s, %s, %s, %s)", userId, username, discriminator, avatar))
|
|
||||||
end
|
|
||||||
|
|
||||||
function discordRPC.disconnected(errorCode, message)
|
|
||||||
print(string.format("Discord: disconnected (%d: %s)", errorCode, message))
|
|
||||||
end
|
|
||||||
|
|
||||||
function discordRPC.errored(errorCode, message)
|
|
||||||
print(string.format("Discord: error (%d: %s)", errorCode, message))
|
|
||||||
end
|
|
||||||
|
|
||||||
function discordRPC.joinGame(joinSecret)
|
|
||||||
print(string.format("Discord: join (%s)", joinSecret))
|
|
||||||
end
|
|
||||||
|
|
||||||
function discordRPC.spectateGame(spectateSecret)
|
|
||||||
print(string.format("Discord: spectate (%s)", spectateSecret))
|
|
||||||
end
|
|
||||||
|
|
||||||
function discordRPC.joinRequest(userId, username, discriminator, avatar)
|
|
||||||
print(string.format("Discord: join request (%s, %s, %s, %s)", userId, username, discriminator, avatar))
|
|
||||||
discordRPC.respond(userId, "yes")
|
|
||||||
end
|
|
||||||
|
|
||||||
discordRPC.initialize(discordRPC.appId, true)
|
|
||||||
local now = os.time(os.date("*t"))
|
|
||||||
presence = {
|
|
||||||
startTimestamp = now,
|
|
||||||
details = "Loading game...",
|
|
||||||
state = "",
|
|
||||||
largeImageKey = "icon2",
|
|
||||||
largeImageText = "Original game by Joe Zeng",
|
|
||||||
smallImageKey = "",
|
|
||||||
smallImageText = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
math.randomseed(os.time())
|
math.randomseed(os.time())
|
||||||
highscores = {}
|
highscores = {}
|
||||||
|
require "load.rpc"
|
||||||
require "load.graphics"
|
require "load.graphics"
|
||||||
require "load.fonts"
|
require "load.fonts"
|
||||||
require "load.sounds"
|
require "load.sounds"
|
||||||
|
@ -5,13 +5,10 @@ function GameScene:new(game_mode, ruleset)
|
|||||||
self.game = game_mode()
|
self.game = game_mode()
|
||||||
self.ruleset = ruleset()
|
self.ruleset = ruleset()
|
||||||
self.game:initialize(self.ruleset)
|
self.game:initialize(self.ruleset)
|
||||||
if game_mode.name == "Demon Mode" and math.random(1, 7) == 7 then
|
DiscordRPC:update({
|
||||||
presence.details = "Suffering"
|
details = self.game.rpc_details,
|
||||||
else
|
state = self.game.name,
|
||||||
presence.details = "In game"
|
})
|
||||||
end
|
|
||||||
presence.state = game_mode.name
|
|
||||||
discordRPC.updatePresence(presence)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function GameScene:update()
|
function GameScene:update()
|
||||||
|
@ -17,9 +17,10 @@ function ConfigScene:new()
|
|||||||
self.config = config.input
|
self.config = config.input
|
||||||
self.highlight = 1
|
self.highlight = 1
|
||||||
|
|
||||||
presence.details = "In menus"
|
DiscordRPC:update({
|
||||||
presence.state = "Changing game config"
|
details = "In menus",
|
||||||
discordRPC.updatePresence(presence)
|
state = "Changing game settings",
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function ConfigScene:update()
|
function ConfigScene:update()
|
||||||
|
@ -23,9 +23,10 @@ function ConfigScene:new()
|
|||||||
self.config = config.input
|
self.config = config.input
|
||||||
self.input_state = 1
|
self.input_state = 1
|
||||||
|
|
||||||
presence.details = "In menus"
|
DiscordRPC:update({
|
||||||
presence.state = "Changing input config"
|
details = "In menus",
|
||||||
discordRPC.updatePresence(presence)
|
state = "Changing input config",
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function ConfigScene:update()
|
function ConfigScene:update()
|
||||||
|
@ -47,9 +47,10 @@ function ModeSelectScene:new()
|
|||||||
ruleset = current_ruleset,
|
ruleset = current_ruleset,
|
||||||
select = "mode",
|
select = "mode",
|
||||||
}
|
}
|
||||||
presence.details = "In menus"
|
DiscordRPC:update({
|
||||||
presence.state = "Choosing a mode"
|
details = "In menus",
|
||||||
discordRPC.updatePresence(presence)
|
state = "Choosing a mode",
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function ModeSelectScene:update()
|
function ModeSelectScene:update()
|
||||||
|
@ -7,13 +7,27 @@ local main_menu_screens = {
|
|||||||
ExitScene,
|
ExitScene,
|
||||||
}
|
}
|
||||||
|
|
||||||
local mainmenuidle = {"Idle", "Twiddling their thumbs", "Admiring the main menu's BG", "Waiting for spring to come"}
|
local mainmenuidle = {
|
||||||
|
"Idle",
|
||||||
|
"On title screen",
|
||||||
|
"On main menu screen",
|
||||||
|
"Twiddling their thumbs",
|
||||||
|
"Admiring the main menu's BG",
|
||||||
|
"Waiting for spring to come",
|
||||||
|
"Actually not playing",
|
||||||
|
"Contemplating collecting stars",
|
||||||
|
"Preparing to put the block!!",
|
||||||
|
"Having a nap",
|
||||||
|
"In menus",
|
||||||
|
"Bottom text",
|
||||||
|
}
|
||||||
|
|
||||||
function TitleScene:new()
|
function TitleScene:new()
|
||||||
self.main_menu_state = 1
|
self.main_menu_state = 1
|
||||||
presence.details = "In menus"
|
DiscordRPC:update({
|
||||||
presence.state = mainmenuidle[math.random(#mainmenuidle)]
|
details = "In menus",
|
||||||
discordRPC.updatePresence(presence)
|
state = mainmenuidle[math.random(#mainmenuidle)],
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function TitleScene:update()
|
function TitleScene:update()
|
||||||
|
@ -11,9 +11,6 @@ DemonModeGame.name = "Demon Mode"
|
|||||||
DemonModeGame.hash = "DemonMode"
|
DemonModeGame.hash = "DemonMode"
|
||||||
DemonModeGame.tagline = "Can you handle the ludicrous speed past level 20?"
|
DemonModeGame.tagline = "Can you handle the ludicrous speed past level 20?"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function DemonModeGame:new()
|
function DemonModeGame:new()
|
||||||
DemonModeGame.super:new()
|
DemonModeGame.super:new()
|
||||||
self.roll_frames = 0
|
self.roll_frames = 0
|
||||||
@ -29,6 +26,9 @@ function DemonModeGame:new()
|
|||||||
self.enable_hold = true
|
self.enable_hold = true
|
||||||
self.lock_drop = true
|
self.lock_drop = true
|
||||||
self.next_queue_length = 3
|
self.next_queue_length = 3
|
||||||
|
if math.random() < 1/6.66 then
|
||||||
|
self.rpc_details = "Suffering"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function DemonModeGame:getARE()
|
function DemonModeGame:getARE()
|
||||||
|
@ -40,6 +40,7 @@ function GameMode:new()
|
|||||||
self.draw_section_times = false
|
self.draw_section_times = false
|
||||||
self.draw_secondary_section_times = false
|
self.draw_secondary_section_times = false
|
||||||
self.big_mode = false
|
self.big_mode = false
|
||||||
|
self.rpc_details = "In game"
|
||||||
-- variables related to configurable parameters
|
-- variables related to configurable parameters
|
||||||
self.drop_locked = false
|
self.drop_locked = false
|
||||||
self.hard_drop_locked = false
|
self.hard_drop_locked = false
|
||||||
|
Loading…
Reference in New Issue
Block a user