Skip to content

Commit eb7e61c

Browse files
committed
Fix progress bar issues
1 parent 5530a5a commit eb7e61c

File tree

7 files changed

+34
-15
lines changed

7 files changed

+34
-15
lines changed

exporters/datapackExporter/exporter/gen/datapack.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,12 @@ export async function generateDatapack(exportData: ExportData) {
9898
console.log(folders.datapack)
9999

100100
const writeProgress = new AnimatedJava.API.ProgressBarController(
101-
'Writing datapack to disk',
101+
'Writing Data Pack to disk',
102102
folders.datapack.childCount
103103
)
104-
await folders.datapack.writeChildrenToDisk(G.DATAPACK_EXPORT_PATH, { skipEmptyFolders: true })
104+
await folders.datapack.writeChildrenToDisk(G.DATAPACK_EXPORT_PATH, {
105+
progress: writeProgress,
106+
skipEmptyFolders: true,
107+
})
105108
writeProgress.finish()
106109
}

src/global.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { addTranslations, translate } from './util/translation'
66
import type { formatStr, roundTo, roundToN } from './util/misc'
77
import type { ProgressBarController } from './util/progress'
88
import type { VariantsContainer } from './variants'
9+
import { Writable } from 'svelte/store'
910

1011
declare global {
1112
type NotUndefined<T> = T extends undefined ? never : T
@@ -25,6 +26,8 @@ declare global {
2526
loaded?: boolean
2627
docClick: (link: string) => void
2728
events: typeof import('./events')
29+
progress: Writable<number>
30+
progress_text: Writable<string>
2831

2932
API: {
3033
Exporter: typeof AnimatedJavaExporter

src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import { openUnexpectedErrorDialog } from './ui/popups/unexpectedError'
5050
import * as minecraft from './minecraft'
5151
import { openAJExportInProgressDialog } from './ui/ajExportInProgress'
5252
import { AJMetaFile } from './ajmeta'
53+
import { writable } from 'svelte/store'
5354

5455
Prism.languages.mcfunction = {}
5556

@@ -75,6 +76,8 @@ globalThis.AnimatedJava = {
7576
events,
7677
openUnexpectedErrorDialog,
7778
openAJExportInProgressDialog,
79+
progress: writable<number>(),
80+
progress_text: writable<string>(),
7881

7982
API: {
8083
addTranslations,

src/resourcePackExporter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,16 +310,16 @@ export async function exportResources(
310310
progress.finish()
311311
} else {
312312
console.log('Writing Resource Pack to Disk')
313-
const progress = new ProgressBarController(
314-
'Writing Resource Pack to Disk',
315-
assetsFolder.childCount
316-
)
317-
progress.update()
318313

319314
const filePaths = resourcePackFolder.getAllFilePaths()
320315

321316
await processAJMeta(filePaths)
322317

318+
const progress = new ProgressBarController(
319+
'Writing Resource Pack to Disk',
320+
assetsFolder.childCount
321+
)
322+
323323
await assetsFolder.writeToDisk(resourcePackPath, { progress, skipEmptyFolders: true })
324324

325325
progress.finish()

src/ui/components/exportInProgress.svelte

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
<script lang="ts">
77
import { onDestroy } from 'svelte'
8+
let text = AnimatedJava.progress_text
9+
let value = AnimatedJava.progress
810
911
jQuery('.dialog_close_button').remove()
1012
@@ -14,8 +16,9 @@
1416
})
1517
1618
const interval = setInterval(() => {
17-
// @ts-ignore
18-
progress.set(Prop.progress)
19+
if ($value < $progress) {
20+
progress.set($value, { duration: 0 })
21+
} else progress.set($value)
1922
}, 16)
2023
2124
onDestroy(() => {
@@ -24,16 +27,18 @@
2427
</script>
2528

2629
<div class="progress-bar-container">
30+
<p>{$text || 'Exporting...'}</p>
2731
<progress value={$progress} />
2832
</div>
2933

3034
<style>
3135
.progress-bar-container {
3236
display: flex;
33-
flex-direction: row;
37+
flex-direction: column;
3438
align-items: center;
3539
}
3640
progress {
3741
flex-grow: 1;
42+
width: 100%;
3843
}
3944
</style>

src/util/progress.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,26 @@ export class ProgressBarController {
22
progress: number
33
constructor(public message: string, public total: number) {
44
this.progress = 0
5-
Blockbench.setStatusBarText(message)
5+
AnimatedJava.progress.set(0)
6+
AnimatedJava.progress_text.set(message)
67
}
78

89
add(change: number) {
910
this.progress += change
1011
}
1112

1213
update() {
13-
Blockbench.setProgress(this.progress / this.total)
14+
AnimatedJava.progress.set(this.progress / this.total)
1415
}
1516

1617
setMessage(message: string) {
1718
this.message = message
18-
Blockbench.setStatusBarText(message)
19+
AnimatedJava.progress_text.set(message)
1920
}
2021

2122
finish() {
2223
this.progress = 0
23-
Blockbench.setProgress(0)
24-
Blockbench.setStatusBarText()
24+
AnimatedJava.progress.set(0)
25+
AnimatedJava.progress_text.set('')
2526
}
2627
}

src/util/virtualFileSystem.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ export class VirtualFolder extends VirtualNode {
182182
}
183183

184184
async writeToDisk(outputFolder: string, writeOptions: VirtualFileSystemWriteOptions) {
185+
// await new Promise(resolve => setTimeout(resolve, 100))
186+
185187
if (writeOptions.skipEmptyFolders && this.children.length === 0) return
186188
const path = PathModule.join(outputFolder, this.name)
187189
await fs.promises.mkdir(path, { recursive: true })
@@ -233,6 +235,8 @@ export class VirtualFile extends VirtualNode {
233235
}
234236

235237
async writeToDisk(outputFolder: string, writeOptions: VirtualFileSystemWriteOptions) {
238+
// await new Promise(resolve => setTimeout(resolve, 100))
239+
236240
const path = PathModule.join(outputFolder, this.fileName)
237241

238242
let content: string | Buffer | Uint8Array

0 commit comments

Comments
 (0)