|
|
|
|
@@ -14,13 +14,14 @@ import { listen } from '@tauri-apps/api/event'
|
|
|
|
|
import HelpButton from '../common/HelpButton'
|
|
|
|
|
|
|
|
|
|
const FULL_BUILD_DOWNLOAD = 'https://github.com/NotThorny/Grasscutter/releases/download/culti-aio/GrasscutterCulti.zip' // Change to link that can be updated without modifying here
|
|
|
|
|
const FULL_QUEST_DOWNLOAD = 'https://github.com/NotThorny/Grasscutter/releases/download/culti-aio/GrasscutterQuests.zip'
|
|
|
|
|
const STABLE_REPO_DOWNLOAD = 'https://github.com/Grasscutters/Grasscutter/archive/refs/heads/stable.zip'
|
|
|
|
|
const DEV_REPO_DOWNLOAD = 'https://github.com/Grasscutters/Grasscutter/archive/refs/heads/development.zip'
|
|
|
|
|
const STABLE_DOWNLOAD = 'https://nightly.link/Grasscutters/Grasscutter/workflows/build/stable/Grasscutter.zip'
|
|
|
|
|
const UNSTABLE_DOWNLOAD = 'https://nightly.link/Grasscutters/Grasscutter/workflows/build/unstable/Grasscutter.zip'
|
|
|
|
|
const DEV_DOWNLOAD = 'https://nightly.link/Grasscutters/Grasscutter/workflows/build/development/Grasscutter.zip'
|
|
|
|
|
const RESOURCES_DOWNLOAD = 'https://gitlab.com/YuukiPS/GC-Resources/-/archive/3.5/GC-Resources-3.5.zip' // Use Yuuki res as grasscutter crepe res are broken
|
|
|
|
|
const RESOURCES_DOWNLOAD = 'https://gitlab.com/YuukiPS/GC-Resources/-/archive/3.6/GC-Resources-3.6.zip' // Use Yuuki res as grasscutter crepe res are broken
|
|
|
|
|
const MIGOTO_DOWNLOAD =
|
|
|
|
|
'https://github.com/SilentNightSound/GI-Model-Importer/releases/download/V6.0/3dmigoto-GIMI-for-playing-mods.zip'
|
|
|
|
|
'https://github.com/SilentNightSound/GI-Model-Importer/releases/download/V7.0/3dmigoto-GIMI-for-playing-mods.zip'
|
|
|
|
|
|
|
|
|
|
interface IProps {
|
|
|
|
|
closeFn: () => void
|
|
|
|
|
@@ -55,9 +56,10 @@ export default class Downloads extends React.Component<IProps, IState> {
|
|
|
|
|
|
|
|
|
|
this.getGrasscutterFolder = this.getGrasscutterFolder.bind(this)
|
|
|
|
|
this.downloadGrasscutterFullBuild = this.downloadGrasscutterFullBuild.bind(this)
|
|
|
|
|
this.downloadGrasscutterFullQuest = this.downloadGrasscutterFullQuest.bind(this)
|
|
|
|
|
this.downloadGrasscutterStableRepo = this.downloadGrasscutterStableRepo.bind(this)
|
|
|
|
|
this.downloadGrasscutterDevRepo = this.downloadGrasscutterDevRepo.bind(this)
|
|
|
|
|
this.downloadGrasscutterStable = this.downloadGrasscutterStable.bind(this)
|
|
|
|
|
this.downloadGrasscutterUnstable = this.downloadGrasscutterUnstable.bind(this)
|
|
|
|
|
this.downloadGrasscutterLatest = this.downloadGrasscutterLatest.bind(this)
|
|
|
|
|
this.downloadResources = this.downloadResources.bind(this)
|
|
|
|
|
this.downloadMigoto = this.downloadMigoto.bind(this)
|
|
|
|
|
@@ -141,6 +143,16 @@ export default class Downloads extends React.Component<IProps, IState> {
|
|
|
|
|
this.toggleButtons()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async downloadGrasscutterFullQuest() {
|
|
|
|
|
const folder = await this.getGrasscutterFolder()
|
|
|
|
|
this.props.downloadManager.addDownload(FULL_QUEST_DOWNLOAD, folder + '\\GrasscutterQuests.zip', async () => {
|
|
|
|
|
await unzip(folder + '\\GrasscutterQuests.zip', folder + '\\', true)
|
|
|
|
|
this.toggleButtons()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
this.toggleButtons()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async downloadGrasscutterStableRepo() {
|
|
|
|
|
const folder = await this.getGrasscutterFolder()
|
|
|
|
|
this.props.downloadManager.addDownload(STABLE_REPO_DOWNLOAD, folder + '\\grasscutter_repo.zip', async () => {
|
|
|
|
|
@@ -161,16 +173,13 @@ export default class Downloads extends React.Component<IProps, IState> {
|
|
|
|
|
this.toggleButtons()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async downloadGrasscutterStable() {
|
|
|
|
|
async downloadGrasscutterUnstable() {
|
|
|
|
|
const folder = await this.getGrasscutterFolder()
|
|
|
|
|
this.props.downloadManager.addDownload(STABLE_DOWNLOAD, folder + '\\grasscutter.zip', async () => {
|
|
|
|
|
this.props.downloadManager.addDownload(UNSTABLE_DOWNLOAD, folder + '\\grasscutter.zip', async () => {
|
|
|
|
|
await unzip(folder + '\\grasscutter.zip', folder + '\\', true)
|
|
|
|
|
this.toggleButtons
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// Also add repo download
|
|
|
|
|
this.downloadGrasscutterStableRepo()
|
|
|
|
|
|
|
|
|
|
this.toggleButtons()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -270,29 +279,46 @@ export default class Downloads extends React.Component<IProps, IState> {
|
|
|
|
|
</BigButton>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<Divider />
|
|
|
|
|
|
|
|
|
|
{/* <div className="DownloadMenuSection" id="downloadMenuContainerGCStable">
|
|
|
|
|
<div className="DownloadLabel" id="downloadMenuLabelGCStable">
|
|
|
|
|
<Tr
|
|
|
|
|
text={this.state.grasscutter_set ? 'downloads.grasscutter_stable' : 'downloads.grasscutter_stable_update'}
|
|
|
|
|
/>
|
|
|
|
|
<HelpButton contents="help.gc_stable_jar" />
|
|
|
|
|
<div className="DownloadMenuSection" id="downloadMenuContainerGCFullQuest">
|
|
|
|
|
<div className="DownloadLabel" id="downloadMenuLabelGCFullQuest">
|
|
|
|
|
<Tr text={'downloads.grasscutter_fullquest'} />
|
|
|
|
|
<HelpButton contents="help.gc_fullbuild" />
|
|
|
|
|
</div>
|
|
|
|
|
<div className="DownloadValue" id="downloadMenuButtonGCStable">
|
|
|
|
|
<div className="DownloadValue" id="downloadMenuButtonGCFullQuest">
|
|
|
|
|
<BigButton
|
|
|
|
|
disabled={this.state.grasscutter_downloading}
|
|
|
|
|
onClick={this.downloadGrasscutterStable}
|
|
|
|
|
id="grasscutterStableBtn"
|
|
|
|
|
onClick={this.downloadGrasscutterFullQuest}
|
|
|
|
|
id="grasscutterFullBuildBtn"
|
|
|
|
|
>
|
|
|
|
|
<Tr text="components.download" />
|
|
|
|
|
</BigButton>
|
|
|
|
|
</div>
|
|
|
|
|
</div> */}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<Divider />
|
|
|
|
|
|
|
|
|
|
<div className="HeaderText" id="downloadMenuIndividualHeader">
|
|
|
|
|
<Tr text="downloads.individual_header" />
|
|
|
|
|
</div>
|
|
|
|
|
<div className="DownloadMenuSection" id="downloadMenuContainerGCUnstable">
|
|
|
|
|
<div className="DownloadLabel" id="downloadMenuLabelGCUnstable">
|
|
|
|
|
<Tr
|
|
|
|
|
text={
|
|
|
|
|
this.state.grasscutter_set ? 'downloads.grasscutter_unstable' : 'downloads.grasscutter_unstable_update'
|
|
|
|
|
}
|
|
|
|
|
/>
|
|
|
|
|
<HelpButton contents="help.gc_unstable_jar" />
|
|
|
|
|
</div>
|
|
|
|
|
<div className="DownloadValue" id="downloadMenuButtonGCUnstable">
|
|
|
|
|
<BigButton
|
|
|
|
|
disabled={this.state.grasscutter_downloading}
|
|
|
|
|
onClick={this.downloadGrasscutterUnstable}
|
|
|
|
|
id="grasscutterUnstableBtn"
|
|
|
|
|
>
|
|
|
|
|
<Tr text="components.download" />
|
|
|
|
|
</BigButton>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="DownloadMenuSection" id="downloadMenuContainerGCDev">
|
|
|
|
|
<div className="DownloadLabel" id="downloadMenuLabelGCDev">
|
|
|
|
|
<Tr
|
|
|
|
|
|