1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Support for building wegame specific version

This commit is contained in:
tobspr
2021-05-25 21:29:44 +02:00
parent 56214defaf
commit 291614cb3c
16 changed files with 895 additions and 419 deletions

View File

@@ -105,6 +105,10 @@ export class SteamAchievementProvider extends AchievementProviderInterface {
return Promise.resolve();
}
if (G_WEGAME_VERSION) {
return Promise.resolve();
}
this.ipc = getIPCRenderer();
return this.ipc.invoke("steam:is-initialized").then(initialized => {
@@ -125,6 +129,10 @@ export class SteamAchievementProvider extends AchievementProviderInterface {
activate(key) {
let promise;
if (G_WEGAME_VERSION) {
return Promise.resolve();
}
if (!this.initialized) {
promise = Promise.resolve();
} else {

View File

@@ -7,6 +7,24 @@ const logger = createLogger("electron-storage");
export class StorageImplElectron extends StorageInterface {
constructor(app) {
super(app);
/** @type {Object.<number, {resolve:Function, reject: Function}>} */
this.jobs = {};
this.jobId = 0;
getIPCRenderer().on("fs-response", (event, arg) => {
const id = arg.id;
if (!this.jobs[id]) {
logger.warn("Got unhandled FS response, job not known:", id);
return;
}
const { resolve, reject } = this.jobs[id];
if (arg.result.success) {
resolve(arg.result.data);
} else {
reject(arg.result.error);
}
});
}
initialize() {
@@ -15,53 +33,43 @@ export class StorageImplElectron extends StorageInterface {
writeFileAsync(filename, contents) {
return new Promise((resolve, reject) => {
getIPCRenderer()
.invoke("fs-job", {
type: "write",
filename,
contents,
})
.then(result => {
if (result.success) {
resolve(result.data);
} else {
reject(result.error);
}
});
// ipcMain
const jobId = ++this.jobId;
this.jobs[jobId] = { resolve, reject };
getIPCRenderer().send("fs-job", {
type: "write",
filename,
contents,
id: jobId,
});
});
}
readFileAsync(filename) {
return new Promise((resolve, reject) => {
getIPCRenderer()
.invoke("fs-job", {
type: "read",
filename,
})
.then(result => {
if (result.success) {
resolve(result.data);
} else {
reject(result.error);
}
});
// ipcMain
const jobId = ++this.jobId;
this.jobs[jobId] = { resolve, reject };
getIPCRenderer().send("fs-job", {
type: "read",
filename,
id: jobId,
});
});
}
deleteFileAsync(filename) {
return new Promise((resolve, reject) => {
getIPCRenderer()
.invoke("fs-job", {
type: "delete",
filename,
})
.then(result => {
if (result.success) {
resolve(result.data);
} else {
reject(result.error);
}
});
// ipcMain
const jobId = ++this.jobId;
this.jobs[jobId] = { resolve, reject };
getIPCRenderer().send("fs-job", {
type: "delete",
filename,
id: jobId,
});
});
}
}

View File

@@ -73,6 +73,10 @@ export class PlatformWrapperImplElectron extends PlatformWrapperImplBrowser {
initializeDlcStatus() {
const renderer = getIPCRenderer();
if (G_WEGAME_VERSION) {
return Promise.resolve();
}
logger.log("Checking DLC ownership ...");
// @todo: Don't hardcode the app id
return renderer.invoke("steam:check-app-ownership", 1625400).then(

View File

@@ -87,7 +87,7 @@ export class MainMenuState extends GameState {
<div class="mainContainer">
${
isSupportedBrowser()
G_IS_STANDALONE || isSupportedBrowser()
? ""
: `<div class="browserWarning">${T.mainMenu.browserWarning}</div>`
}