mirror of
https://github.com/dscalzi/HeliosLauncher.git
synced 2024-12-22 11:42:14 -08:00
Various optimizations related to library extraction.
Updated PackXZExtract to v1.0.1. If no files are queued for extraction, the step is skipped. The UI now shows some indication that the extraction is in progress.
This commit is contained in:
parent
d08cfbf248
commit
ea758aee1f
@ -1574,11 +1574,15 @@ class AssetGuard extends EventEmitter {
|
|||||||
self.progress -= self[identifier].dlsize
|
self.progress -= self[identifier].dlsize
|
||||||
self[identifier] = new DLTracker([], 0)
|
self[identifier] = new DLTracker([], 0)
|
||||||
if(self.totaldlsize === 0) {
|
if(self.totaldlsize === 0) {
|
||||||
self.emit('extracting')
|
if(self.extractQueue.length > 0){
|
||||||
AssetGuard._extractPackXZ(self.extractQueue, self.javaexec).then(() => {
|
self.emit('extracting')
|
||||||
self.extractQueue = []
|
AssetGuard._extractPackXZ(self.extractQueue, self.javaexec).then(() => {
|
||||||
|
self.extractQueue = []
|
||||||
|
self.emit('dlcomplete')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
self.emit('dlcomplete')
|
self.emit('dlcomplete')
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
|
@ -216,6 +216,8 @@ let serverStatusListener = setInterval(() => refreshServerStatus(true), 300000)
|
|||||||
let sysAEx
|
let sysAEx
|
||||||
let scanAt
|
let scanAt
|
||||||
|
|
||||||
|
let extractListener
|
||||||
|
|
||||||
function asyncSystemScan(launchAfter = true){
|
function asyncSystemScan(launchAfter = true){
|
||||||
|
|
||||||
setLaunchDetails('Please wait..')
|
setLaunchDetails('Please wait..')
|
||||||
@ -315,7 +317,17 @@ function asyncSystemScan(launchAfter = true){
|
|||||||
remote.getCurrentWindow().setProgressBar(-1)
|
remote.getCurrentWindow().setProgressBar(-1)
|
||||||
|
|
||||||
// Wait for extration to complete.
|
// Wait for extration to complete.
|
||||||
setLaunchDetails('Extracting..')
|
const eLStr = 'Extracting'
|
||||||
|
let dotStr = ''
|
||||||
|
setLaunchDetails(eLStr)
|
||||||
|
extractListener = setInterval(() => {
|
||||||
|
if(dotStr.length >= 3){
|
||||||
|
dotStr = ''
|
||||||
|
} else {
|
||||||
|
dotStr += '.'
|
||||||
|
}
|
||||||
|
setLaunchDetails(eLStr + dotStr)
|
||||||
|
}, 750)
|
||||||
|
|
||||||
} else if(m.task === 2){
|
} else if(m.task === 2){
|
||||||
|
|
||||||
@ -323,6 +335,11 @@ function asyncSystemScan(launchAfter = true){
|
|||||||
ConfigManager.setJavaExecutable(m.jPath)
|
ConfigManager.setJavaExecutable(m.jPath)
|
||||||
ConfigManager.save()
|
ConfigManager.save()
|
||||||
|
|
||||||
|
if(extractListener != null){
|
||||||
|
clearInterval(extractListener)
|
||||||
|
extractListener = null
|
||||||
|
}
|
||||||
|
|
||||||
setLaunchDetails('Java Installed!')
|
setLaunchDetails('Java Installed!')
|
||||||
|
|
||||||
if(launchAfter){
|
if(launchAfter){
|
||||||
@ -356,6 +373,8 @@ let serv
|
|||||||
let versionData
|
let versionData
|
||||||
let forgeData
|
let forgeData
|
||||||
|
|
||||||
|
let progressListener
|
||||||
|
|
||||||
function dlAsync(login = true){
|
function dlAsync(login = true){
|
||||||
|
|
||||||
// Login parameter is temporary for debug purposes. Allows testing the validation/downloads without
|
// Login parameter is temporary for debug purposes. Allows testing the validation/downloads without
|
||||||
@ -443,12 +462,26 @@ function dlAsync(login = true){
|
|||||||
} else if(m.task === 0.7){
|
} else if(m.task === 0.7){
|
||||||
|
|
||||||
// Download done, extracting.
|
// Download done, extracting.
|
||||||
setLaunchDetails('Extracting libraries..')
|
const eLStr = 'Extracting libraries'
|
||||||
|
let dotStr = ''
|
||||||
|
setLaunchDetails(eLStr)
|
||||||
|
progressListener = setInterval(() => {
|
||||||
|
if(dotStr.length >= 3){
|
||||||
|
dotStr = ''
|
||||||
|
} else {
|
||||||
|
dotStr += '.'
|
||||||
|
}
|
||||||
|
setLaunchDetails(eLStr + dotStr)
|
||||||
|
}, 750)
|
||||||
|
|
||||||
} else if(m.task === 1){
|
} else if(m.task === 1){
|
||||||
|
|
||||||
// Download will be at 100%, remove the loading from the OS progress bar.
|
// Download will be at 100%, remove the loading from the OS progress bar.
|
||||||
remote.getCurrentWindow().setProgressBar(-1)
|
remote.getCurrentWindow().setProgressBar(-1)
|
||||||
|
if(progressListener != null){
|
||||||
|
clearInterval(progressListener)
|
||||||
|
progressListener = null
|
||||||
|
}
|
||||||
|
|
||||||
setLaunchDetails('Preparing to launch..')
|
setLaunchDetails('Preparing to launch..')
|
||||||
aEx.send({task: 0, content: 'loadForgeData', argsArr: [serv.id]})
|
aEx.send({task: 0, content: 'loadForgeData', argsArr: [serv.id]})
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user