mirror of
https://github.com/cmclark00/mintris.git
synced 2025-05-17 23:55:21 +01:00
62 lines
No EOL
1.9 KiB
Kotlin
62 lines
No EOL
1.9 KiB
Kotlin
package com.pixelmintdrop
|
|
|
|
import androidx.lifecycle.LiveData
|
|
import androidx.lifecycle.MutableLiveData
|
|
import androidx.lifecycle.ViewModel
|
|
|
|
class MainActivityViewModel : ViewModel() {
|
|
|
|
// Private MutableLiveData for internal updates
|
|
private val _currentScore = MutableLiveData<Long>(0L)
|
|
private val _currentLevel = MutableLiveData<Int>(1)
|
|
|
|
// Public LiveData for observation by the Activity
|
|
val currentScore: LiveData<Long> = _currentScore
|
|
val currentLevel: LiveData<Int> = _currentLevel
|
|
|
|
// --- Sound & Music State ---
|
|
private val _isSoundEnabled = MutableLiveData<Boolean>(true) // Default to true
|
|
val isSoundEnabled: LiveData<Boolean> = _isSoundEnabled
|
|
|
|
private val _isMusicEnabled = MutableLiveData<Boolean>(true) // Default to true
|
|
val isMusicEnabled: LiveData<Boolean> = _isMusicEnabled
|
|
// ---------------------------
|
|
|
|
// Example function to update the score (logic would be moved here)
|
|
fun incrementScore(points: Long) {
|
|
_currentScore.value = (_currentScore.value ?: 0L) + points
|
|
// Potentially add logic here to check for level up based on score
|
|
}
|
|
|
|
// Function to set the score directly
|
|
fun setScore(score: Long) {
|
|
_currentScore.value = score
|
|
}
|
|
|
|
// Example function to update the level
|
|
fun setLevel(level: Int) {
|
|
_currentLevel.value = level
|
|
}
|
|
|
|
fun resetGame() {
|
|
_currentScore.value = 0L
|
|
_currentLevel.value = 1
|
|
// Reset other game state within the ViewModel as needed
|
|
}
|
|
|
|
// --- Sound & Music Logic ---
|
|
fun toggleSound() {
|
|
_isSoundEnabled.value = !(_isSoundEnabled.value ?: true)
|
|
}
|
|
|
|
fun setMusicEnabled(enabled: Boolean) {
|
|
_isMusicEnabled.value = enabled
|
|
}
|
|
|
|
fun toggleMusic() {
|
|
setMusicEnabled(!(_isMusicEnabled.value ?: true))
|
|
}
|
|
// --------------------------
|
|
|
|
// Add other state variables and logic related to game state here
|
|
} |