Skip to content

Commit 9983742

Browse files
committed
2 parents 2332a49 + 31fe413 commit 9983742

File tree

20 files changed

+1273
-181
lines changed

20 files changed

+1273
-181
lines changed

data/image/ui/settings.png

825 Bytes
Loading

data/materials/materials.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,25 @@
66
<title>New World</title>
77
<!-- Ne pas toucher -->
88

9+
<!--<test> FOR TEST PURPOSE ONLY
10+
<name>test_item</name>
11+
<id>TEST_item</id>
12+
<jobId>0</jobId>
13+
<image>iron_ingot.png</image>
14+
<related>
15+
<rel0>
16+
<id>SM_irnin</id>
17+
<number>3</number>
18+
<details>true</details>
19+
</rel0>
20+
<rel1>
21+
<id>SM_stlin</id>
22+
<number>3</number>
23+
<details>true</details>
24+
</rel1>
25+
</related>
26+
</test>-->
27+
928
<materials>
1029
<!-- Refining materials -->
1130
<obsidian_flux>

lang/ui/en-EN.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
<removeall>Remove All</removeall>
88
<titleItemBar>Items for</titleItemBar>
9+
<titleItemRarity>Rarity: </titleItemRarity>
910
<addItem>Add</addItem>
1011
<defaultTab>Default</defaultTab>
1112
<addTab>+ New tab</addTab>
@@ -14,7 +15,7 @@
1415
<cut>Cut gems</cut>
1516
<parameterTitle>Settings</parameterTitle>
1617
<parameterLang>Language: </parameterLang>
17-
<ParameterAutoUpdate>Auto-update on start-up: </ParameterAutoUpdate>
18+
<parameterAutoUpdate>Auto-update on start-up: </parameterAutoUpdate>
1819
<parameterWarning>Each change will AUTOMATICALLY restart the application!</parameterWarning>
1920
<aboutTitle>About</aboutTitle>
2021

main.js

Lines changed: 141 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ const { v4: uuidv4 } = require('uuid');
77

88
const fs = require('fs');
99

10-
const build = true
11-
1210
const path = require('path');
1311

1412
const {checkLang} = require("./script/lang/getLanguage");
@@ -28,6 +26,8 @@ let langUI;
2826
let updaterWindows;
2927
let mainWindows;
3028

29+
let autoUpdate = false;
30+
3131
autoUpdater.on('error', (err)=>{
3232
updaterWindows.webContents.send('update_error', err);
3333
})
@@ -125,20 +125,43 @@ async function checkDataFile(){
125125

126126
function createWindow(){
127127
mainWindows = new BrowserWindow({
128-
width: 800,
129-
height: 400,
128+
minWidth: 1600,
129+
minHeight: 800,
130130
autoHideMenuBar: true,
131131
webPreferences:{
132132
nodeIntegration: false, // is default value after Electron v5
133133
contextIsolation: true, // protect against prototype pollution
134134
enableRemoteModule: false, // turn off remote
135135
preload: path.join(__dirname, "/script/preload.js"), // use a preload script
136136
nativeWindowOpen: true
137-
}
137+
},
138+
titleBarStyle: 'hidden'
138139
})
139140

140141
mainWindows.loadFile('pages/index.html');
141142

143+
mainWindows.on('unmaximize', (e)=>{
144+
145+
mainWindows.webContents.send('minSizeResponse');
146+
147+
e.returnValue = null;
148+
})
149+
mainWindows.on('maximize', (e)=>{
150+
151+
mainWindows.webContents.send('maxSizeResponse');
152+
153+
e.returnValue = null;
154+
})
155+
let handleRedirect = (e, url) => {
156+
if(url !== webContents.getURL()) {
157+
e.preventDefault()
158+
require('electron').shell.openExternal(url)
159+
}
160+
}
161+
162+
mainWindows.webContents.on('will-navigate', handleRedirect)
163+
mainWindows.webContents.on('new-window', handleRedirect)
164+
142165
}
143166
function createLoader(){
144167
updaterWindows = new BrowserWindow({
@@ -164,31 +187,72 @@ function createLoader(){
164187
updaterWindows.loadFile('pages/update.html');
165188

166189
updaterWindows.once("ready-to-show", ()=>{
167-
autoUpdater.checkForUpdatesAndNotify();
190+
191+
fs.access(app.getPath('userData')+"/data/settings.json", async (err) => {
192+
193+
if (err !== null) {
194+
195+
console.error(err);
196+
197+
let data = {
198+
"settings":
199+
{
200+
"lang": "en-EN",
201+
"autoupdate": false
202+
}
203+
}
204+
205+
await mkdirp(app.getPath('userData') + "/data/");
206+
fs.writeFile(app.getPath('userData') + "/data/settings.json", JSON.stringify(data), (err1) => {
207+
208+
checkDataFile()
209+
210+
})
211+
} else {
212+
213+
fs.readFile(app.getPath('userData') + "/data/settings.json", (err1, data) => {
214+
215+
let result = JSON.parse(data.toString("utf-8"))
216+
217+
let setting = result['settings']
218+
219+
lang = setting['lang'];
220+
autoUpdate = setting['autoupdate'];
221+
222+
if (!autoUpdate) {
223+
224+
checkDataFile()
225+
226+
} else {
227+
228+
autoUpdater.checkForUpdatesAndNotify();
229+
230+
}
231+
})
232+
233+
}
234+
});
168235

169236
})
170237

171-
if(!build) checkDataFile();
172238

173239
}
174240

175241
app.whenReady().then(() => {
242+
process.setMaxListeners(0)
176243
createLoader()
177244

178245
app.on('activate', function () {
179246
if (BrowserWindow.getAllWindows().length === 0) createWindow()
180247
})
181248

182-
183249
})
184250
app.on('window-all-closed', function () {
185251
if (process.platform !== 'darwin') app.quit()
186252
})
187253

188254
ipcMain.on('getAllJobs', async (ipc)=>{
189255

190-
console.log('receive getAllJobs');
191-
192256
mainWindows.webContents.send('getAllJobsResponse', jobData);
193257

194258
})
@@ -203,12 +267,8 @@ ipcMain.on('getUID', (ipc)=>{
203267

204268
ipcMain.on('getDataFrom', async (ipc, path)=>{
205269

206-
console.log('execute getDataFrom function');
207-
208270
await getDataFrom(path, (data) => {
209271

210-
console.log('return of getDataFrom function');
211-
212272
mainWindows.webContents.send('getDataFromResponse', data);
213273

214274
})
@@ -217,16 +277,12 @@ ipcMain.on('getDataFrom', async (ipc, path)=>{
217277

218278
ipcMain.on('getAllItems', async (ipc)=>{
219279

220-
console.log('receive getAllItem');
221-
222280
mainWindows.webContents.send('getAllItemsResponse', materialsData);
223281

224282
})
225283

226284
ipcMain.on("getLang", async (ipc, type, elem = null, key = -1)=>{
227285

228-
console.log('execute getLang function');
229-
230286
switch (type) {
231287

232288
case "jobs":{
@@ -244,8 +300,6 @@ ipcMain.on("getLang", async (ipc, type, elem = null, key = -1)=>{
244300

245301
mainWindows.webContents.send('getLangResponse', type, job);
246302

247-
console.trace(elem);
248-
249303
break;
250304
}
251305
case "rarity":{
@@ -260,8 +314,6 @@ ipcMain.on("getLang", async (ipc, type, elem = null, key = -1)=>{
260314

261315
mainWindows.send('getLangResponse', type, rarity, key);
262316

263-
console.trace(rarity)
264-
265317
break;
266318
}
267319
case "item":{
@@ -270,25 +322,22 @@ ipcMain.on("getLang", async (ipc, type, elem = null, key = -1)=>{
270322
id: elem.id,
271323
jobId: elem.jobId,
272324
image: elem.image,
273-
related: elem.related
325+
related: elem.related,
326+
cat: elem.cat
274327
};
275328

276-
console.trace(langMaterials);
329+
material.name = langMaterials["materials"][0][elem.name.toLowerCase()];
277330

278-
material.name = langMaterials["materials"][0][elem.name.toLowerCase()][0];
279331

280332
if(material.name === undefined){
281333
material.name = `lang: ${lang} ${elem.name.toLowerCase()}`;
282334
}
283335

284336
mainWindows.webContents.send('getLangResponse', type, material, key);
285337

286-
console.trace(material);
287-
288338
break;
289339
}
290340
case "ui":{
291-
console.trace(langUI["default"][0]);
292341

293342
mainWindows.webContents.send('getLangResponse', type, langUI["default"][0], key);
294343
}
@@ -299,9 +348,7 @@ ipcMain.on("getLang", async (ipc, type, elem = null, key = -1)=>{
299348

300349
ipcMain.on('getSavedTab', async (ipc)=>{
301350

302-
console.log("getSavedTab");
303-
304-
fs.access(process.cwd()+"/data/save/tabs.json", async (err) => {
351+
fs.access(app.getPath('userData')+"/data/save/tabs.json", async (err) => {
305352

306353
if(err !== null){
307354

@@ -313,18 +360,15 @@ ipcMain.on('getSavedTab', async (ipc)=>{
313360
}
314361
}
315362

316-
await mkdirp(process.cwd()+"/data/save/");
317-
fs.writeFile(process.cwd()+"/data/save/tabs.json", JSON.stringify(data), (err1)=>{
318-
319-
console.log("writeFile");
320-
console.error(err1);
363+
await mkdirp(app.getPath('userData')+"/data/save/");
364+
fs.writeFile(app.getPath('userData')+"/data/save/tabs.json", JSON.stringify(data), (err1)=>{
321365

322366
mainWindows.webContents.send('getSavedTabResponse', data, false);
323367

324368
})
325369
} else {
326370

327-
fs.readFile(process.cwd()+"/data/save/tabs.json", (err1, data) => {
371+
fs.readFile(app.getPath('userData')+"/data/save/tabs.json", (err1, data) => {
328372

329373
mainWindows.webContents.send('getSavedTabResponse', JSON.parse(data.toString("utf-8")), true);
330374

@@ -340,24 +384,78 @@ ipcMain.on('getSavedTab', async (ipc)=>{
340384

341385
ipcMain.on('deleteTab', (ipc, data)=>{
342386

343-
console.log("deleteTab");
344-
345-
fs.writeFile(process.cwd()+"/data/save/tabs.json", "", ()=>{
387+
fs.writeFile(app.getPath('userData')+"/data/save/tabs.json", "", ()=>{
346388
mainWindows.webContents.send('deleteTabResponse');
347389
})
348390

349391
})
350392

351393
ipcMain.on('saveTab', (ipc, data)=>{
352394

353-
console.log("saveTab");
354-
355-
fs.writeFile(process.cwd()+"/data/save/tabs.json", JSON.stringify(data), ()=>{
395+
fs.writeFile(app.getPath('userData')+"/data/save/tabs.json", JSON.stringify(data), ()=>{
356396
mainWindows.webContents.send('saveTabResponse');
357397
})
358398

359399
})
360400

401+
ipcMain.once('closeApp', (ipc)=>{
402+
403+
app.quit();
404+
405+
})
406+
407+
ipcMain.on('minApp', (ipc)=>{
408+
409+
mainWindows.minimize();
410+
411+
})
412+
413+
ipcMain.on('maxSize', (ipc)=>{
414+
415+
mainWindows.maximize();
416+
417+
})
418+
419+
ipcMain.on('minSize', (ipc)=>{
420+
421+
mainWindows.unmaximize();
422+
423+
})
424+
425+
ipcMain.once('restartApp', (ipc)=>{
426+
427+
app.relaunch();
428+
app.exit();
429+
430+
})
431+
432+
ipcMain.on('getLanguage', (ipc)=>{
433+
434+
checkLang((langs)=>{
435+
436+
mainWindows.webContents.send('getLanguageResponse', {'chosen': lang, 'langs': langs});
437+
438+
})
439+
440+
})
441+
442+
ipcMain.on('getAutoUpdate', (ipc)=>{
443+
444+
mainWindows.webContents.send('getAutoUpdateResponse', autoUpdate);
445+
446+
});
447+
448+
ipcMain.on('setSettings', (ipc, setting)=>{
449+
450+
fs.writeFile(app.getPath('userData')+'/data/settings.json', JSON.stringify(setting), ()=>{
451+
452+
mainWindows.webContents.send('setSettingsResponse');
453+
454+
455+
456+
})
457+
458+
})
361459

362460
// Function for the auto-updater
363461
ipcMain.on('installUpdate', (ipc)=>{

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "new-world-refining-calculator",
3-
"version": "1.0.6",
3+
"version": "0.0.9",
44
"description": "",
55
"main": "main.js",
66
"scripts": {
@@ -13,7 +13,7 @@
1313
"build": {
1414
"appId": "fr.new-world-refining-calculator.ward",
1515
"directories": {
16-
"buildResources": "resources"
16+
"buildResources": "build"
1717
},
1818
"extraFiles": [
1919
"data",

0 commit comments

Comments
 (0)