mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
74 lines
1.6 KiB
JavaScript
74 lines
1.6 KiB
JavaScript
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
const { ipcMain } = require("electron");
|
||
|
|
||
|
let greenworks = null;
|
||
|
let appId = null;
|
||
|
let initialized = false;
|
||
|
|
||
|
try {
|
||
|
greenworks = require("shapez.io-private-artifacts/steam/greenworks");
|
||
|
appId = parseInt(fs.readFileSync(path.join(__dirname, "steam_appid.txt"), "utf8"));
|
||
|
} catch (err) {
|
||
|
// greenworks is not installed
|
||
|
// throw err;
|
||
|
}
|
||
|
|
||
|
function init (isDev) {
|
||
|
if (!greenworks) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (!isDev) {
|
||
|
if (greenworks.restartAppIfNecessary(appId)) {
|
||
|
console.log("Restarting ...");
|
||
|
process.exit(0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!greenworks.init()) {
|
||
|
console.log("Failed to initialize greenworks");
|
||
|
process.exit(1);
|
||
|
}
|
||
|
|
||
|
initialized = true;
|
||
|
}
|
||
|
|
||
|
function listen () {
|
||
|
ipcMain.handle("steam:is-initialized", isInitialized);
|
||
|
|
||
|
if (!greenworks || !initialized) {
|
||
|
console.log("Ignoring Steam IPC events");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
ipcMain.handle("steam:get-achievement-names", getAchievementNames);
|
||
|
ipcMain.handle("steam:activate-achievement", activateAchievement);
|
||
|
}
|
||
|
|
||
|
function isInitialized(event) {
|
||
|
return Promise.resolve(initialized);
|
||
|
}
|
||
|
|
||
|
function getAchievementNames(event) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
try {
|
||
|
const achievements = greenworks.getAchievementNames()
|
||
|
resolve(achievements);
|
||
|
} catch (err) {
|
||
|
reject(err);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function activateAchievement(event, id) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
greenworks.activateAchievement(id, () => resolve(), err => reject(err))
|
||
|
});
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
init,
|
||
|
listen
|
||
|
};
|