mintris/app/src/main/java/com/pixelmintdrop/MainActivityViewModel.kt

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
}