diff --git a/.idea/artifacts/TerrarumBuild.xml b/.idea/artifacts/TerrarumBuild.xml index 614d8a898..d217a6054 100644 --- a/.idea/artifacts/TerrarumBuild.xml +++ b/.idea/artifacts/TerrarumBuild.xml @@ -13,8 +13,6 @@ - - @@ -85,9 +83,9 @@ - - - + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 010304a53..fdfef6106 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,13 +1,13 @@ - - - \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml index 328a61582..800ef4dcf 100644 --- a/.idea/libraries/KotlinJavaRuntime.xml +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -1,14 +1,23 @@ - + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/jetbrains_kotlin_reflect.xml b/.idea/libraries/jetbrains_kotlin_reflect.xml deleted file mode 100644 index 1383da43b..000000000 --- a/.idea/libraries/jetbrains_kotlin_reflect.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/jetbrains_kotlin_test.xml b/.idea/libraries/jetbrains_kotlin_test.xml deleted file mode 100644 index a2d579212..000000000 --- a/.idea/libraries/jetbrains_kotlin_test.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/jetbrains_kotlin_test1.xml b/.idea/libraries/jetbrains_kotlin_test1.xml deleted file mode 100644 index 869770c98..000000000 --- a/.idea/libraries/jetbrains_kotlin_test1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/ModuleComputers/ModuleComputers.iml b/ModuleComputers/ModuleComputers.iml index 9ea68e6e4..285b1150b 100644 --- a/ModuleComputers/ModuleComputers.iml +++ b/ModuleComputers/ModuleComputers.iml @@ -13,12 +13,9 @@ - - - - + \ No newline at end of file diff --git a/MusicPlayer/MusicPlayer.iml b/MusicPlayer/MusicPlayer.iml index 2f1cde801..dd8eeb3a2 100644 --- a/MusicPlayer/MusicPlayer.iml +++ b/MusicPlayer/MusicPlayer.iml @@ -7,13 +7,12 @@ - - + \ No newline at end of file diff --git a/MusicPlayer/src/net/torvald/terrarum/musicplayer/gui/MusicPlayerControl.kt b/MusicPlayer/src/net/torvald/terrarum/musicplayer/gui/MusicPlayerControl.kt index 52b0375a4..cac879812 100644 --- a/MusicPlayer/src/net/torvald/terrarum/musicplayer/gui/MusicPlayerControl.kt +++ b/MusicPlayer/src/net/torvald/terrarum/musicplayer/gui/MusicPlayerControl.kt @@ -94,8 +94,11 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { private var currentlySelectedAlbum: AlbumProp? = null /** Returns the internal playlist of the MusicGovernor */ - private val songsInGovernor: List - get() = ingame.backgroundMusicPlayer.extortField>("songs")!! + private val songsInGovernorrrrrrrrrr: List + get() = ingame.musicStreamer.extortField>("songs")!! + + // the value must be "latched" to stay consistent + private fun getCurrentPlaylist() = MusicService.currentPlaylist /*private val shouldPlayerBeDisabled: Boolean get() { @@ -107,7 +110,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { * is recommended as an ingame interaction may cancel the playback from the playlist from the MusicPlayer * (e.g. interacting with a jukebox) */ private val internalPlaylistName: String - get() = ingame.backgroundMusicPlayer.playlistName + get() = ingame.musicStreamer.playlistName fun registerPlaylist(path: String, fileToName: JsonValue?, shuffled: Boolean, diskJockeyingMode: String): TerrarumMusicPlaylist { fun String.isNum(): Boolean { @@ -120,7 +123,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { } } - val playlist = ingame.backgroundMusicPlayer.queueDirectory(path, shuffled, diskJockeyingMode, false) { filename -> + val playlist = ingame.musicStreamer.queueDirectory(path, shuffled, diskJockeyingMode, false) { filename -> fileToName?.get(filename).let { if (it == null) filename.substringBeforeLast('.').replace('_', ' ').split(" ").map { it.capitalize() }.let { @@ -136,19 +139,19 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { } } - ingame.backgroundMusicPlayer.addMusicStartHook { music -> + ingame.musicStreamer.addMusicStartHook { music -> setMusicName(music.name) if (mode <= MODE_PLAYING) transitionRequest = MODE_PLAYING } - ingame.backgroundMusicPlayer.addMusicStopHook { music -> + ingame.musicStreamer.addMusicStopHook { music -> setIntermission() if (mode <= MODE_PLAYING) transitionRequest = MODE_IDLE } - setPlaylistDisplayVars(songsInGovernor) + setPlaylistDisplayVars(playlist) return playlist } @@ -189,6 +192,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { override fun updateImpl(delta: Float) { val transactionLocked = MusicService.transactionLocked + val currentPlaylist = getCurrentPlaylist() // process transition request if (transitionRequest != null) { @@ -348,7 +352,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { // prev song if (mode < MODE_SHOW_LIST) { MusicService.playPrevSongInPlaylist { - ingame.backgroundMusicPlayer.startMusic(this) // required for "intermittent" mode + ingame.musicStreamer.startMusic(this) // required for "intermittent" mode iHitTheStopButton = false stopRequested = false } @@ -401,7 +405,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { // next song if (mode < MODE_SHOW_LIST) { MusicService.playNextSongInPlaylist { - ingame.backgroundMusicPlayer.startMusic(this) // required for "intermittent" mode + ingame.musicStreamer.startMusic(this) // required for "intermittent" mode iHitTheStopButton = false stopRequested = false } @@ -442,26 +446,27 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { // make playlist clicking (change song within the playlist) work else if (listViewPanelScroll == 1f && mouseOnList != null) { val index = playlistScroll + mouseOnList!! - val list = songsInGovernor - if (index < list.size) { - // if selected song != currently playing - if (App.audioMixer.musicTrack.currentTrack == null || list[index] != App.audioMixer.musicTrack.currentTrack) { - // FIXME the olde way -- must be replaced with one that utilises MusicService - // rebuild playlist - //ingame.backgroundMusicPlayer.queueIndexFromPlaylist(index) - // fade out - /*App.audioMixer.requestFadeOut(App.audioMixer.musicTrack, AudioMixer.DEFAULT_FADEOUT_LEN / 3f) { - if (!shouldPlayerBeDisabled) { - ingame.backgroundMusicPlayer.startMusic(this) // required for "intermittent" mode + if (currentPlaylist != null) { + if (index < currentPlaylist.musicList.size) { + // if selected song != currently playing + if (App.audioMixer.musicTrack.currentTrack == null || currentPlaylist.musicList[index] != App.audioMixer.musicTrack.currentTrack) { + // FIXME the olde way -- must be replaced with one that utilises MusicService + // rebuild playlist + //ingame.backgroundMusicPlayer.queueIndexFromPlaylist(index) + // fade out + /*App.audioMixer.requestFadeOut(App.audioMixer.musicTrack, AudioMixer.DEFAULT_FADEOUT_LEN / 3f) { + if (!shouldPlayerBeDisabled) { + ingame.backgroundMusicPlayer.startMusic(this) // required for "intermittent" mode + iHitTheStopButton = false + stopRequested = false + } + }*/ + + MusicService.playNthSongInPlaylist(index) { + ingame.musicStreamer.startMusic(this) // required for "intermittent" mode iHitTheStopButton = false stopRequested = false } - }*/ - - MusicService.playNthSongInPlaylist(index) { - ingame.backgroundMusicPlayer.startMusic(this) // required for "intermittent" mode - iHitTheStopButton = false - stopRequested = false } } } @@ -474,7 +479,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { if (index < list.size) { // if selected album is not the same album currently playing, queue that album immediately // (navigating into the selected album involves too much complication :p) - if (ingame.backgroundMusicPlayer.playlistSource != albumsList[index].canonicalPath) { + if (ingame.musicStreamer.playlistSource != albumsList[index].canonicalPath) { // FIXME the olde way -- must be replaced with one that utilises MusicService // fade out /*App.audioMixer.requestFadeOut(App.audioMixer.musicTrack, AudioMixer.DEFAULT_FADEOUT_LEN / 3f) { @@ -510,10 +515,10 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { ingame.backgroundMusicPlayer.stopMusic(this) } } - else*/ if (ingame.backgroundMusicPlayer.playCaller is PlaysMusic && !jukeboxStopMonitorAlert && !App.audioMixer.musicTrack.isPlaying) { + else*/ if (ingame.musicStreamer.playCaller is PlaysMusic && !jukeboxStopMonitorAlert && !App.audioMixer.musicTrack.isPlaying) { jukeboxStopMonitorAlert = true - val interval = ingame.backgroundMusicPlayer.getRandomMusicInterval() - ingame.backgroundMusicPlayer.stopMusic(this, false, interval) + val interval = ingame.musicStreamer.getRandomMusicInterval() + ingame.musicStreamer.stopMusic(this, false, interval) } else if (App.audioMixer.musicTrack.isPlaying) { jukeboxStopMonitorAlert = false @@ -525,7 +530,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { private var stopRequested = false private fun resetAlbumlistScroll() { - val currentlyPlaying = albumsList.indexOfFirst { it.canonicalPath.replace('\\', '/') == ingame.backgroundMusicPlayer.playlistSource } + val currentlyPlaying = albumsList.indexOfFirst { it.canonicalPath.replace('\\', '/') == ingame.musicStreamer.playlistSource } if (currentlyPlaying >= 0) { albumlistScroll = (currentlyPlaying / PLAYLIST_LINES) * PLAYLIST_LINES } @@ -535,9 +540,15 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { } private fun resetPlaylistScroll(song: MusicContainer? = null) { - val currentlyPlaying = songsInGovernor.indexOf(song ?: App.audioMixer.musicTrack.currentTrack) - if (currentlyPlaying >= 0) { - playlistScroll = (currentlyPlaying / PLAYLIST_LINES) * PLAYLIST_LINES + val currentPlaylist = getCurrentPlaylist() + if (currentPlaylist != null) { + val currentlyPlaying = currentPlaylist.musicList.indexOf(song ?: App.audioMixer.musicTrack.currentTrack) + if (currentlyPlaying >= 0) { + playlistScroll = (currentlyPlaying / PLAYLIST_LINES) * PLAYLIST_LINES + } + else { + playlistScroll = 0 + } } else { playlistScroll = 0 @@ -804,9 +815,9 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { albumlistNameOverflown.clear() } - private fun setPlaylistDisplayVars(plist: List) { + private fun setPlaylistDisplayVars(plist: TerrarumMusicPlaylist) { resetPlaylistDisplay() - plist.forEachIndexed { i, music -> + plist.musicList.forEachIndexed { i, music -> val len = App.fontGameFBO.getWidth(music.name) val overflown = (len >= playlistNameLenMax) playlistRealNameLen[i] = len @@ -828,26 +839,47 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { private fun drawPlayList(camera: OrthographicCamera, delta: Float, batch: SpriteBatch, x: Float, y: Float, alpha: Float, scale: Float) { batch.end() - playlistFBOs.forEachIndexed { i, it -> - val pnum = i + playlistScroll - it.inAction(camera, batch) { - batch.inUse { - batch.color = Color.WHITE - gdxClearAndEnableBlend(0f, 0f, 0f, 0f) - blendNormalStraightAlpha(batch) + val currentPlaylist = getCurrentPlaylist() - // draw text - App.fontGameFBO.draw(batch, if (pnum in songsInGovernor.indices) songsInGovernor[pnum].name else "", maskOffWidth - playlistNameScrolls[pnum], (PLAYLIST_LINE_HEIGHT - 24) / 2) + if (currentPlaylist != null) { + playlistFBOs.forEachIndexed { i, it -> + val pnum = i + playlistScroll + it.inAction(camera, batch) { + batch.inUse { + batch.color = Color.WHITE + gdxClearAndEnableBlend(0f, 0f, 0f, 0f) + blendNormalStraightAlpha(batch) - // mask off the area - batch.color = Color.WHITE - blendAlphaMask(batch) - batch.draw(textmask.get(0, 0), 0f, 0f, maskOffWidth.toFloat(), PLAYLIST_LINE_HEIGHT) - batch.draw(textmask.get(1, 0), maskOffWidth.toFloat(), 0f, PLAYLIST_NAME_LEN - 2f * maskOffWidth, PLAYLIST_LINE_HEIGHT) - batch.draw(textmask.get(2, 0), PLAYLIST_NAME_LEN - maskOffWidth.toFloat(), 0f, maskOffWidth.toFloat(), PLAYLIST_LINE_HEIGHT) + // draw text + App.fontGameFBO.draw( + batch, + if (pnum in currentPlaylist.musicList.indices) currentPlaylist.musicList[pnum].name else "", + maskOffWidth - playlistNameScrolls[pnum], + (PLAYLIST_LINE_HEIGHT - 24) / 2 + ) - blendNormalStraightAlpha(batch) // qnd hack to make sure this line gets called, otherwise the screen briefly goes blank when the playlist view is closed - Toolkit.fillArea(batch, 999f, 999f, 1f, 1f) + // mask off the area + batch.color = Color.WHITE + blendAlphaMask(batch) + batch.draw(textmask.get(0, 0), 0f, 0f, maskOffWidth.toFloat(), PLAYLIST_LINE_HEIGHT) + batch.draw( + textmask.get(1, 0), + maskOffWidth.toFloat(), + 0f, + PLAYLIST_NAME_LEN - 2f * maskOffWidth, + PLAYLIST_LINE_HEIGHT + ) + batch.draw( + textmask.get(2, 0), + PLAYLIST_NAME_LEN - maskOffWidth.toFloat(), + 0f, + maskOffWidth.toFloat(), + PLAYLIST_LINE_HEIGHT + ) + + blendNormalStraightAlpha(batch) // qnd hack to make sure this line gets called, otherwise the screen briefly goes blank when the playlist view is closed + Toolkit.fillArea(batch, 999f, 999f, 1f, 1f) + } } } } @@ -856,37 +888,40 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { blendNormalStraightAlpha(batch) if (alpha > 0f) { playlistFBOs.forEachIndexed { i, it -> - val alpha2 = alpha + (playListAnimAkku[i] * 0.2f) - val pnum = i + playlistScroll - val m1 = songsInGovernor.getOrNull(pnum) - val m2 = App.audioMixer.musicTrack.currentTrack - val currentlyPlaying = if (m1 == null || m2 == null) false else (m1 == m2) + if (currentPlaylist != null) { + val alpha2 = alpha + (playListAnimAkku[i] * 0.2f) + val pnum = i + playlistScroll - // print number + val m1 = currentPlaylist.musicList.getOrNull(pnum) + val m2 = App.audioMixer.musicTrack.currentTrack + val currentlyPlaying = if (m1 == null || m2 == null) false else (m1 == m2) - // print bars instead of numbers if the song is currently being played - if (currentlyPlaying) { - val xoff = 6 - val yoff = 5 + 7 + (PLAYLIST_LINE_HEIGHT - 24) / 2 - // it will set the colour on its own - drawFreqMeter(batch, x + xoff, y + yoff + PLAYLIST_LINE_HEIGHT * i * scale, alpha) + // print number + + // print bars instead of numbers if the song is currently being played + if (currentlyPlaying) { + val xoff = 6 + val yoff = 5 + 7 + (PLAYLIST_LINE_HEIGHT - 24) / 2 + // it will set the colour on its own + drawFreqMeter(batch, x + xoff, y + yoff + PLAYLIST_LINE_HEIGHT * i * scale, alpha) + } + else { + val xoff = maskOffWidth + (if (pnum < 9) 3 else 0) + val yoff = 7 + (PLAYLIST_LINE_HEIGHT - 24) / 2 + batch.color = Color(1f, 1f, 1f, alpha * 0.75f) + App.fontSmallNumbers.draw( + batch, + if (pnum in currentPlaylist.musicList.indices) "${pnum + 1}" else "", + x + xoff, + y + yoff + PLAYLIST_LINE_HEIGHT * i * scale + ) + } + + // print the name + batch.color = Color(1f, 1f, 1f, alpha2) + batch.draw(it.colorBufferTexture, x + PLAYLIST_LEFT_GAP * scale, y + PLAYLIST_LINE_HEIGHT * i * scale, it.width * scale, it.height * scale) } - else { - val xoff = maskOffWidth + (if (pnum < 9) 3 else 0) - val yoff = 7 + (PLAYLIST_LINE_HEIGHT - 24) / 2 - batch.color = Color(1f, 1f, 1f, alpha * 0.75f) - App.fontSmallNumbers.draw( - batch, - if (pnum in songsInGovernor.indices) "${pnum + 1}" else "", - x + xoff, - y + yoff + PLAYLIST_LINE_HEIGHT * i * scale - ) - } - - // print the name - batch.color = Color(1f, 1f, 1f, alpha2) - batch.draw(it.colorBufferTexture, x + PLAYLIST_LEFT_GAP * scale, y + PLAYLIST_LINE_HEIGHT * i * scale, it.width * scale, it.height * scale) // separator batch.color = Color(1f, 1f, 1f, alpha * 0.25f) @@ -936,7 +971,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { val pnum = i + albumlistScroll val currentlyPlaying = if (pnum in albumsList.indices) { - val m1 = ingame.backgroundMusicPlayer.playlistSource + val m1 = ingame.musicStreamer.playlistSource val m2 = albumsList[pnum].canonicalPath.replace('\\', '/') (m1 == m2) } @@ -1303,7 +1338,7 @@ class MusicPlayerControl(private val ingame: TerrarumIngame) : UICanvas() { track.doGaplessPlayback = (albumProp.diskJockeyingMode == "continuous") if (track.doGaplessPlayback) { track.pullNextTrack = { - track.currentTrack = ingame.backgroundMusicPlayer.pullNextMusicTrack(true) + track.currentTrack = ingame.musicStreamer.pullNextMusicTrack(true) setMusicName(track.currentTrack?.name ?: "") } } diff --git a/TerrarumBuild.iml b/TerrarumBuild.iml index e9a824dd5..0d7053020 100644 --- a/TerrarumBuild.iml +++ b/TerrarumBuild.iml @@ -18,17 +18,14 @@ - - - - + \ No newline at end of file diff --git a/lib/android-lint/common-31.0.1.jar b/lib/android-lint/common-31.0.1.jar deleted file mode 100644 index 0a9b6bade..000000000 --- a/lib/android-lint/common-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39b4cdcfc49c4e5724605c5d8b66f62907e80b9b33a23d4fbeda2f13e7ec739e -size 526635 diff --git a/lib/android-lint/guava-31.0.1-jre.jar b/lib/android-lint/guava-31.0.1-jre.jar deleted file mode 100644 index bf65e67c8..000000000 --- a/lib/android-lint/guava-31.0.1-jre.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9 -size 2974216 diff --git a/lib/android-lint/intellij-core-31.0.1.jar b/lib/android-lint/intellij-core-31.0.1.jar deleted file mode 100644 index 03ff042bf..000000000 --- a/lib/android-lint/intellij-core-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d258f6137c7585608ea43320cfa0a685d32a40e6dd4cd0c21f466e60fd01ace -size 22786526 diff --git a/lib/android-lint/kotlin-compiler-31.0.1.jar b/lib/android-lint/kotlin-compiler-31.0.1.jar deleted file mode 100644 index e41e02d2c..000000000 --- a/lib/android-lint/kotlin-compiler-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b1ff8dca59b78e59aaa02818e1aef4aa142302fdfa7fb9041ca0c342da0bbe3 -size 47773961 diff --git a/lib/android-lint/kxml2-2.3.0.jar b/lib/android-lint/kxml2-2.3.0.jar deleted file mode 100644 index 953572cc1..000000000 --- a/lib/android-lint/kxml2-2.3.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 -size 43858 diff --git a/lib/android-lint/layoutlib-api-31.0.1.jar b/lib/android-lint/layoutlib-api-31.0.1.jar deleted file mode 100644 index 60df2a14e..000000000 --- a/lib/android-lint/layoutlib-api-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3df9c0423d26dffae97d9d622492c817dd57ac2d46b15e077b2af5fd9bf8ac05 -size 118413 diff --git a/lib/android-lint/lint-31.0.1.pom b/lib/android-lint/lint-31.0.1.pom deleted file mode 100644 index ae75c8b19..000000000 --- a/lib/android-lint/lint-31.0.1.pom +++ /dev/null @@ -1,127 +0,0 @@ - - - 4.0.0 - com.android.tools.lint - lint - 31.0.1 - com.android.tools.lint.lint - Lint tools. Both a Command line tool and a library to add lint features to other tools - http://tools.android.com/ - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - The Android Open Source Project - - - - - com.android.tools.lint - lint-api - 31.0.1 - compile - - - com.android.tools.lint - lint-checks - 31.0.1 - compile - - - com.android.tools.external.com-intellij - intellij-core - 31.0.1 - runtime - - - com.android.tools.external.com-intellij - kotlin-compiler - 31.0.1 - runtime - - - com.android.tools.external.org-jetbrains - uast - 31.0.1 - runtime - - - com.android.tools.analytics-library - protos - 31.0.1 - runtime - - - com.android.tools.analytics-library - shared - 31.0.1 - runtime - - - com.android.tools.analytics-library - tracker - 31.0.1 - runtime - - - com.android.tools.build - manifest-merger - 31.0.1 - runtime - - - com.android.tools - common - 31.0.1 - runtime - - - com.android.tools.layoutlib - layoutlib-api - 31.0.1 - runtime - - - com.android.tools - sdk-common - 31.0.1 - runtime - - - com.android.tools - sdklib - 31.0.1 - runtime - - - com.google.guava - guava - 31.0.1-jre - runtime - - - net.sf.kxml - kxml2 - 2.3.0 - runtime - - - org.jetbrains.kotlin - kotlin-reflect - 1.7.10 - runtime - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.7.10 - runtime - - - diff --git a/lib/android-lint/lint-api-31.0.1.jar b/lib/android-lint/lint-api-31.0.1.jar deleted file mode 100644 index 11533eb83..000000000 --- a/lib/android-lint/lint-api-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b574c059dbe7c0bd5a8fb99b239e6ba844484a59c6622f2636c107eb87c3c24b -size 1228529 diff --git a/lib/android-lint/lint-checks-31.0.1.jar b/lib/android-lint/lint-checks-31.0.1.jar deleted file mode 100644 index d1d44103d..000000000 --- a/lib/android-lint/lint-checks-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:67d210b6331030d27b11d7e081a9d299eb1d7a5519304de5a2c00fbb19044d42 -size 5451675 diff --git a/lib/android-lint/manifest-merger-31.0.1.jar b/lib/android-lint/manifest-merger-31.0.1.jar deleted file mode 100644 index d7285880f..000000000 --- a/lib/android-lint/manifest-merger-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7082a48ad04dc93cbdf4247569c3ce1c25c1488724951f00c04f7253a9bfba5 -size 224062 diff --git a/lib/android-lint/protos-31.0.1.jar b/lib/android-lint/protos-31.0.1.jar deleted file mode 100644 index ebecce219..000000000 --- a/lib/android-lint/protos-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d074b93c2395722c6fff42b0397c5ba6cb2be44338a49a5133fbfb9b8191a68d -size 6268854 diff --git a/lib/android-lint/sdk-common-31.0.1.jar b/lib/android-lint/sdk-common-31.0.1.jar deleted file mode 100644 index c1bbbf5c6..000000000 --- a/lib/android-lint/sdk-common-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:766aa3b48b8c87adb8a1b0fed6689d48ec85ea803f85ab9f155c0e40c510e258 -size 1529180 diff --git a/lib/android-lint/sdklib-31.0.1.jar b/lib/android-lint/sdklib-31.0.1.jar deleted file mode 100644 index 70f86e235..000000000 --- a/lib/android-lint/sdklib-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9770b9aaedcb5543497b9abb79ac0e1ee5ba3a8197969b52aa51a06f6bc10964 -size 707911 diff --git a/lib/android-lint/shared-31.0.1.jar b/lib/android-lint/shared-31.0.1.jar deleted file mode 100644 index 8e5dd0ba5..000000000 --- a/lib/android-lint/shared-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d7efd1542cf705b1a0a46ac493849f7cf3d5e4b3bcdc78a4fa0478ea6c7caccb -size 122231 diff --git a/lib/android-lint/tracker-31.0.1.jar b/lib/android-lint/tracker-31.0.1.jar deleted file mode 100644 index 431000820..000000000 --- a/lib/android-lint/tracker-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a62bcf8ad3816bdc276999e80c8edd52bdb1a20bfd571d8f5f7e91fce1c74545 -size 40677 diff --git a/lib/android-lint/uast-31.0.1.jar b/lib/android-lint/uast-31.0.1.jar deleted file mode 100644 index d084eb4d5..000000000 --- a/lib/android-lint/uast-31.0.1.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4b1a74a712518c0dfd9930e9ffa69288ec84cf2fb55a5abd09f30b73ab0cac0 -size 2530116 diff --git a/src/net/torvald/parametricsky/Application.kt b/src/net/torvald/parametricsky/Application.kt index ee02beec5..ff7efaf64 100644 --- a/src/net/torvald/parametricsky/Application.kt +++ b/src/net/torvald/parametricsky/Application.kt @@ -240,8 +240,8 @@ class Application(val WIDTH: Int, val HEIGHT: Int) : Game() { } - ymaxDisp.text = "${ys.max()}" - ymaxDisp2.text = "${ys2.max()}" + ymaxDisp.text = "${ys.maxOrNull()}" + ymaxDisp2.text = "${ys2.maxOrNull()}" //System.exit(0) } diff --git a/src/net/torvald/terrarum/IngameInstance.kt b/src/net/torvald/terrarum/IngameInstance.kt index 238be60e4..f9099d3ba 100644 --- a/src/net/torvald/terrarum/IngameInstance.kt +++ b/src/net/torvald/terrarum/IngameInstance.kt @@ -581,7 +581,7 @@ open class IngameInstance(val batch: FlippingSpriteBatch, val isMultiplayer: Boo noticelet.sendNotification(itemID, itemCount) } - open val backgroundMusicPlayer: BackgroundMusicPlayer = BackgroundMusicPlayer() + open val musicStreamer: MusicStreamer = MusicStreamer() } inline fun Lock.lock(body: () -> Unit) { diff --git a/src/net/torvald/terrarum/MusicService.kt b/src/net/torvald/terrarum/MusicService.kt index 95542d739..d70e24c66 100644 --- a/src/net/torvald/terrarum/MusicService.kt +++ b/src/net/torvald/terrarum/MusicService.kt @@ -12,7 +12,7 @@ import net.torvald.terrarum.transaction.TransactionState */ object MusicService : TransactionListener() { - private var currentPlaylist: TerrarumMusicPlaylist? = null + var currentPlaylist: TerrarumMusicPlaylist? = null; private set override fun getCurrentStatusForTransaction(): TransactionState { return TransactionState( diff --git a/src/net/torvald/terrarum/BackgroundMusicPlayer.kt b/src/net/torvald/terrarum/MusicStreamer.kt similarity index 90% rename from src/net/torvald/terrarum/BackgroundMusicPlayer.kt rename to src/net/torvald/terrarum/MusicStreamer.kt index 963b64c70..0f5866a97 100644 --- a/src/net/torvald/terrarum/BackgroundMusicPlayer.kt +++ b/src/net/torvald/terrarum/MusicStreamer.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum -open class BackgroundMusicPlayer { +open class MusicStreamer { open fun update(ingameInstance: IngameInstance, delta: Float) { diff --git a/src/net/torvald/terrarum/audio/AudioMixer.kt b/src/net/torvald/terrarum/audio/AudioMixer.kt index ba7f92ff9..75ef7fc0b 100644 --- a/src/net/torvald/terrarum/audio/AudioMixer.kt +++ b/src/net/torvald/terrarum/audio/AudioMixer.kt @@ -123,8 +123,7 @@ class AudioMixer : Disposable { fun getFreeGuiTrackNoMatterWhat(): TerrarumAudioMixerTrack { synchronized(this) { - val it = getFreeGuiTrack() ?: guiTracks.minBy { it.playStartedTime }.also { it.checkedOutTime = System.nanoTime() } - return it + return getFreeGuiTrack() ?: guiTracks.minByOrNull { it.playStartedTime }.also { it!!.checkedOutTime = System.nanoTime() }!! } } @@ -142,7 +141,7 @@ class AudioMixer : Disposable { */ fun getFreeTrackNoMatterWhat(): TerrarumAudioMixerTrack { synchronized(this) { - return getFreeTrack() ?: dynamicTracks.minBy { it.playStartedTime }.also { it.checkedOutTime = System.nanoTime() } + return getFreeTrack() ?: dynamicTracks.minByOrNull { it.playStartedTime }.also { it!!.checkedOutTime = System.nanoTime() }!! } } diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 865a34540..e7a0aada2 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -62,7 +62,7 @@ class BuildingMaker(batch: FlippingSpriteBatch) : IngameInstance(batch) { lateinit var gameWorld: GameWorld - override val backgroundMusicPlayer = TerrarumBackgroundMusicPlayer() + override val musicStreamer = TerrarumMusicStreamer() init { gameUpdateGovernor = ConsistentUpdateRate @@ -396,7 +396,7 @@ class BuildingMaker(batch: FlippingSpriteBatch) : IngameInstance(batch) { } - backgroundMusicPlayer.update(this, delta) + musicStreamer.update(this, delta) } @@ -495,7 +495,7 @@ class BuildingMaker(batch: FlippingSpriteBatch) : IngameInstance(batch) { // blockMarkings.dispose() uiPenMenu.dispose() uiGetPoiName.dispose() - backgroundMusicPlayer.dispose() + musicStreamer.dispose() } fun getPoiNameForExport(w: Int, h: Int, callback: (String) -> Unit) { diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index 65fdbaf29..5b7f7cd74 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -262,7 +262,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) { override var gameFullyLoaded = false internal set - override val backgroundMusicPlayer = TerrarumBackgroundMusicPlayer() + override val musicStreamer = TerrarumMusicStreamer() ////////////// @@ -1006,7 +1006,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) { oldSelectedWireRenderClass = selectedWireRenderClass } - backgroundMusicPlayer.update(this, delta) + musicStreamer.update(this, delta) //////////////////////// // ui-related updates // @@ -1795,7 +1795,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) { catch (e: IllegalArgumentException) {} } - backgroundMusicPlayer.dispose() + musicStreamer.dispose() super.dispose() } } diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumBackgroundMusicPlayer.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicStreamer.kt similarity index 92% rename from src/net/torvald/terrarum/modulebasegame/TerrarumBackgroundMusicPlayer.kt rename to src/net/torvald/terrarum/modulebasegame/TerrarumMusicStreamer.kt index d54d97984..96d391f0f 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumBackgroundMusicPlayer.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicStreamer.kt @@ -11,7 +11,7 @@ import net.torvald.terrarum.audio.audiobank.MusicContainer import net.torvald.terrarum.gameworld.WorldTime.Companion.DAY_LENGTH import java.io.File -class TerrarumBackgroundMusicPlayer : BackgroundMusicPlayer() { +class TerrarumMusicStreamer : MusicStreamer() { private val STATE_INIT = 0 private val STATE_FIREPLAY = 1 private val STATE_PLAYING = 2 @@ -30,41 +30,7 @@ class TerrarumBackgroundMusicPlayer : BackgroundMusicPlayer() { private var shuffled = true private var diskJockeyingMode = "intermittent" // intermittent, continuous - private fun registerSongsFromDir(musicDir: String, fileToName: ((String) -> String)?) { - val musicDir = musicDir.replace('\\', '/') - playlistSource = musicDir - printdbg(this, "registerSongsFromDir $musicDir") - val fileToName = if (fileToName == null) { - { name: String -> name.substringBeforeLast('.').replace('_', ' ').split(" ").map { it.capitalize() }.joinToString(" ") } - } - else fileToName - - playlistName = musicDir.substringAfterLast('/') - - playlist = File(musicDir).listFiles()?.sortedBy { it.name }?.mapNotNull { - printdbg(this, "Music: ${it.absolutePath}") - try { - MusicContainer( - fileToName(it.name), - it - ).also { muscon -> - - printdbg(this, "MusicTitle: ${muscon.name}") - - muscon.songFinishedHook = { - if (App.audioMixer.musicTrack.currentTrack == it) { - stopMusic(this, true, getRandomMusicInterval()) - } - } - } - } - catch (e: GdxRuntimeException) { - e.printStackTrace() - null - } - } ?: emptyList() // TODO test code - } private fun restockMusicBin() { musicBin = ArrayList(if (shuffled) playlist.shuffled() else playlist.slice(playlist.indices)) @@ -232,7 +198,7 @@ class TerrarumBackgroundMusicPlayer : BackgroundMusicPlayer() { val timeNow = System.currentTimeMillis() val trackThis = App.audioMixer.musicTrack.currentTrack - if (caller is TerrarumBackgroundMusicPlayer) { + if (caller is TerrarumMusicStreamer) { if (stopCaller == null) { // printdbg(this, "Caller: this, prev caller: $stopCaller, len: $pauseLen, obliging stop request") stopMusic0(trackThis, callStopMusicHook, pauseLen) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureJukebox.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureJukebox.kt index 8c8b2e8c7..71e31d150 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureJukebox.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureJukebox.kt @@ -19,7 +19,7 @@ import net.torvald.terrarum.gameactors.Hitbox import net.torvald.terrarum.gameactors.Lightbox import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarum.modulebasegame.TerrarumBackgroundMusicPlayer +import net.torvald.terrarum.modulebasegame.TerrarumMusicStreamer import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef import net.torvald.terrarum.modulebasegame.gameitems.MusicDiscHelper @@ -106,7 +106,7 @@ class FixtureJukebox : Electric, PlaysMusic { // supress the normal background music playback if (musicIsPlaying && !flagDespawn) { - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, true) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, true) } } @@ -138,7 +138,7 @@ class FixtureJukebox : Electric, PlaysMusic { printdbg(this, "Stop music $title - $artist") // can't call stopDiscPlayback() because of the recursion - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, pauseLen = (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).getRandomMusicInterval()) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, pauseLen = (INGAME.musicStreamer as TerrarumMusicStreamer).getRandomMusicInterval()) } discCurrentlyPlaying = index @@ -185,7 +185,7 @@ class FixtureJukebox : Electric, PlaysMusic { */ fun stopGracefully() { stopDiscPlayback() - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, pauseLen = (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).getRandomMusicInterval()) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, pauseLen = (INGAME.musicStreamer as TerrarumMusicStreamer).getRandomMusicInterval()) } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureMusicalTurntable.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureMusicalTurntable.kt index d5964b70f..83a3be359 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureMusicalTurntable.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureMusicalTurntable.kt @@ -3,14 +3,13 @@ package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.spriteanimation.SheetSpriteAnimation import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE -import net.torvald.terrarum.audio.AudioMixer import net.torvald.terrarum.audio.audiobank.MusicContainer import net.torvald.terrarum.audio.TerrarumAudioMixerTrack import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.langpack.Lang -import net.torvald.terrarum.modulebasegame.TerrarumBackgroundMusicPlayer +import net.torvald.terrarum.modulebasegame.TerrarumMusicStreamer import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef import net.torvald.terrarum.modulebasegame.gameitems.MusicDiscHelper @@ -96,7 +95,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic { // supress the normal background music playback if (musicIsPlaying && !flagDespawn) { - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, true) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, true) } } @@ -122,7 +121,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic { App.printdbg(this, "Stop music $title - $artist") // can't call stopDiscPlayback() because of the recursion - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, pauseLen = (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).getRandomMusicInterval()) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, pauseLen = (INGAME.musicStreamer as TerrarumMusicStreamer).getRandomMusicInterval()) } @@ -163,7 +162,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic { */ fun stopGracefully() { stopDiscPlayback() - (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).stopMusic(this, pauseLen = (INGAME.backgroundMusicPlayer as TerrarumBackgroundMusicPlayer).getRandomMusicInterval()) + (INGAME.musicStreamer as TerrarumMusicStreamer).stopMusic(this, pauseLen = (INGAME.musicStreamer as TerrarumMusicStreamer).getRandomMusicInterval()) } diff --git a/src/net/torvald/terrarum/ui/UIItemSpinner.kt b/src/net/torvald/terrarum/ui/UIItemSpinner.kt index 884b20482..fe739c37e 100644 --- a/src/net/torvald/terrarum/ui/UIItemSpinner.kt +++ b/src/net/torvald/terrarum/ui/UIItemSpinner.kt @@ -72,7 +72,7 @@ class UIItemSpinner( val intermediate = (0..(maxd - mind).div(stepd).ceilToInt()).map { it to ((mind + stepd * it) - id).absoluteValue - }.minBy { it.second }.first * stepd + mind + }.minByOrNull { it.second }!!.first * stepd + mind initialValue = when (initialValue.javaClass.simpleName) { "Integer" -> intermediate.toInt() else -> intermediate