mirror of
https://github.com/DaanVandenBosch/phantasmal-world.git
synced 2025-04-05 07:18:29 +08:00
A default new quest is now loaded when the quest editor starts up.
This commit is contained in:
parent
b856a22851
commit
85df1015f8
@ -46,6 +46,7 @@ class QuestEditor(
|
|||||||
// Stores
|
// Stores
|
||||||
val areaStore = addDisposable(AreaStore(areaAssetLoader))
|
val areaStore = addDisposable(AreaStore(areaAssetLoader))
|
||||||
val questEditorStore = addDisposable(QuestEditorStore(
|
val questEditorStore = addDisposable(QuestEditorStore(
|
||||||
|
questLoader,
|
||||||
uiStore,
|
uiStore,
|
||||||
areaStore,
|
areaStore,
|
||||||
undoManager,
|
undoManager,
|
||||||
@ -56,7 +57,6 @@ class QuestEditor(
|
|||||||
val questEditorController = addDisposable(QuestEditorController(questEditorUiPersister))
|
val questEditorController = addDisposable(QuestEditorController(questEditorUiPersister))
|
||||||
val toolbarController = addDisposable(QuestEditorToolbarController(
|
val toolbarController = addDisposable(QuestEditorToolbarController(
|
||||||
uiStore,
|
uiStore,
|
||||||
questLoader,
|
|
||||||
areaStore,
|
areaStore,
|
||||||
questEditorStore,
|
questEditorStore,
|
||||||
))
|
))
|
||||||
|
@ -17,7 +17,6 @@ import world.phantasmal.observable.value.mutableVal
|
|||||||
import world.phantasmal.observable.value.value
|
import world.phantasmal.observable.value.value
|
||||||
import world.phantasmal.web.core.PwToolType
|
import world.phantasmal.web.core.PwToolType
|
||||||
import world.phantasmal.web.core.stores.UiStore
|
import world.phantasmal.web.core.stores.UiStore
|
||||||
import world.phantasmal.web.questEditor.loading.QuestLoader
|
|
||||||
import world.phantasmal.web.questEditor.models.AreaModel
|
import world.phantasmal.web.questEditor.models.AreaModel
|
||||||
import world.phantasmal.web.questEditor.stores.AreaStore
|
import world.phantasmal.web.questEditor.stores.AreaStore
|
||||||
import world.phantasmal.web.questEditor.stores.QuestEditorStore
|
import world.phantasmal.web.questEditor.stores.QuestEditorStore
|
||||||
@ -34,7 +33,6 @@ class AreaAndLabel(val area: AreaModel, val label: String)
|
|||||||
|
|
||||||
class QuestEditorToolbarController(
|
class QuestEditorToolbarController(
|
||||||
uiStore: UiStore,
|
uiStore: UiStore,
|
||||||
private val questLoader: QuestLoader,
|
|
||||||
private val areaStore: AreaStore,
|
private val areaStore: AreaStore,
|
||||||
private val questEditorStore: QuestEditorStore,
|
private val questEditorStore: QuestEditorStore,
|
||||||
) : Controller() {
|
) : Controller() {
|
||||||
@ -127,7 +125,7 @@ class QuestEditorToolbarController(
|
|||||||
suspend fun createNewQuest(episode: Episode) {
|
suspend fun createNewQuest(episode: Episode) {
|
||||||
setFilename("")
|
setFilename("")
|
||||||
setVersion(Version.BB)
|
setVersion(Version.BB)
|
||||||
setCurrentQuest(questLoader.loadDefaultQuest(episode))
|
questEditorStore.setDefaultQuest(episode)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun openFiles(files: List<File>) {
|
suspend fun openFiles(files: List<File>) {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package world.phantasmal.web.questEditor.stores
|
package world.phantasmal.web.questEditor.stores
|
||||||
|
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import mu.KotlinLogging
|
import mu.KotlinLogging
|
||||||
|
import world.phantasmal.lib.Episode
|
||||||
import world.phantasmal.observable.value.Val
|
import world.phantasmal.observable.value.Val
|
||||||
import world.phantasmal.observable.value.and
|
import world.phantasmal.observable.value.and
|
||||||
import world.phantasmal.observable.value.list.emptyListVal
|
import world.phantasmal.observable.value.list.emptyListVal
|
||||||
@ -12,12 +14,14 @@ import world.phantasmal.web.core.stores.UiStore
|
|||||||
import world.phantasmal.web.core.undo.UndoManager
|
import world.phantasmal.web.core.undo.UndoManager
|
||||||
import world.phantasmal.web.core.undo.UndoStack
|
import world.phantasmal.web.core.undo.UndoStack
|
||||||
import world.phantasmal.web.questEditor.QuestRunner
|
import world.phantasmal.web.questEditor.QuestRunner
|
||||||
|
import world.phantasmal.web.questEditor.loading.QuestLoader
|
||||||
import world.phantasmal.web.questEditor.models.*
|
import world.phantasmal.web.questEditor.models.*
|
||||||
import world.phantasmal.webui.stores.Store
|
import world.phantasmal.webui.stores.Store
|
||||||
|
|
||||||
private val logger = KotlinLogging.logger {}
|
private val logger = KotlinLogging.logger {}
|
||||||
|
|
||||||
class QuestEditorStore(
|
class QuestEditorStore(
|
||||||
|
private val questLoader: QuestLoader,
|
||||||
uiStore: UiStore,
|
uiStore: UiStore,
|
||||||
private val areaStore: AreaStore,
|
private val areaStore: AreaStore,
|
||||||
private val undoManager: UndoManager,
|
private val undoManager: UndoManager,
|
||||||
@ -87,6 +91,8 @@ class QuestEditorStore(
|
|||||||
_selectedEntity.value = null
|
_selectedEntity.value = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scope.launch { setDefaultQuest(Episode.I) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
@ -136,6 +142,12 @@ class QuestEditorStore(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun setDefaultQuest(episode: Episode) {
|
||||||
|
setCurrentQuest(
|
||||||
|
convertQuestToModel(questLoader.loadDefaultQuest(episode), areaStore::getVariant)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private fun setSectionOnQuestEntities(
|
private fun setSectionOnQuestEntities(
|
||||||
entities: List<QuestEntityModel<*, *>>,
|
entities: List<QuestEntityModel<*, *>>,
|
||||||
variant: AreaVariantModel,
|
variant: AreaVariantModel,
|
||||||
|
Loading…
Reference in New Issue
Block a user