mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-14 16:14:48 +01:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -37,6 +37,7 @@ fn main() {
|
||||
req_get,
|
||||
get_bg_file,
|
||||
base64_decode,
|
||||
is_game_running,
|
||||
system_helpers::run_command,
|
||||
system_helpers::run_program,
|
||||
system_helpers::run_jar,
|
||||
@@ -91,6 +92,14 @@ fn process_watcher() {
|
||||
});
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn is_game_running() -> bool {
|
||||
// Grab the game process name
|
||||
let proc = WATCH_GAME_PROCESS.lock().unwrap().to_string();
|
||||
|
||||
return !&proc.is_empty();
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
fn enable_process_watcher(process: String) {
|
||||
*WATCH_GAME_PROCESS.lock().unwrap() = process;
|
||||
|
||||
@@ -19,6 +19,7 @@ import RightBar from './components/RightBar'
|
||||
import { getConfigOption, setConfigOption } from '../utils/configuration'
|
||||
import { invoke } from '@tauri-apps/api'
|
||||
import { dataDir } from '@tauri-apps/api/path'
|
||||
import { appWindow } from '@tauri-apps/api/window'
|
||||
|
||||
interface IProps {
|
||||
[key: string]: never;
|
||||
@@ -54,6 +55,21 @@ class App extends React.Component<IProps, IState> {
|
||||
listen('jar_extracted', ({ payload }) => {
|
||||
setConfigOption('grasscutter_path', payload)
|
||||
})
|
||||
|
||||
let min = false
|
||||
|
||||
// periodically check if we need to min/max based on whether the game is open
|
||||
setInterval(async () => {
|
||||
const gameOpen = await invoke('is_game_running')
|
||||
|
||||
if (gameOpen && !min) {
|
||||
appWindow.minimize()
|
||||
min = true
|
||||
} else if (!gameOpen && min) {
|
||||
appWindow.unminimize()
|
||||
min = false
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
@@ -83,6 +99,13 @@ class App extends React.Component<IProps, IState> {
|
||||
|
||||
await setConfigOption('cert_generated', true)
|
||||
}
|
||||
|
||||
// Period check to only show progress bar when downloading files
|
||||
setInterval(() => {
|
||||
this.setState({
|
||||
isDownloading: downloadHandler.getDownloads().filter(d => d.status !== 'finished')?.length > 0
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
render() {
|
||||
@@ -156,7 +179,9 @@ class App extends React.Component<IProps, IState> {
|
||||
<div id="DownloadProgress"
|
||||
onClick={() => this.setState({ miniDownloadsOpen: !this.state.miniDownloadsOpen })}
|
||||
>
|
||||
<MainProgressBar downloadManager={downloadHandler} />
|
||||
{ this.state.isDownloading ?
|
||||
<MainProgressBar downloadManager={downloadHandler} />
|
||||
: null }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -52,9 +52,6 @@ export default class ServerLaunchSection extends React.Component<IProps, IState>
|
||||
async componentDidMount() {
|
||||
const config = await getConfig()
|
||||
|
||||
console.log(config.last_ip)
|
||||
console.log(config.last_port)
|
||||
|
||||
this.setState({
|
||||
grasscutterEnabled: config.toggle_grasscutter,
|
||||
buttonLabel: await translate('main.launch_button'),
|
||||
|
||||
Reference in New Issue
Block a user