diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml
index 393fff4..63ef00e 100644
--- a/composeApp/src/commonMain/composeResources/values/strings.xml
+++ b/composeApp/src/commonMain/composeResources/values/strings.xml
@@ -316,8 +316,8 @@
Identifiant de l'objet
Nom
Description
- Image url
- Vignette url
+ Url de l'image
+ Url de la vignette
Empilable
Équipable
Consommable
@@ -337,4 +337,19 @@
Montrer le groupe de npcs
Montrer le panneau latéral droit pour tous les joueurs.
+ Identifiant de la carte
+ Nom de la carte
+ Camera
+ Zoom
+ X
+ Y
+ Taille
+ Largeur
+ Hauteur
+ Carte
+ Region
+ Identifiant de la couche
+ Nom de la couche
+ Url de l'image
+
\ No newline at end of file
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/Module.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/Module.kt
index 937d51c..98bf693 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/Module.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/Module.kt
@@ -37,19 +37,6 @@ import com.pixelized.desktop.lwa.ui.composable.character.purse.PurseDialogViewMo
import com.pixelized.desktop.lwa.ui.composable.image.ImagerModelConverter
import com.pixelized.desktop.lwa.ui.overlay.portrait.PortraitOverlayViewModel
import com.pixelized.desktop.lwa.ui.overlay.roll.RollViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailPanelViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.header.CharacterDetailHeaderFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.inventory.CharacterDetailInventoryFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.CharacterDetailSheetFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.CharacterRibbonFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.NpcRibbonViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.PlayerRibbonViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.chatbox.CampaignChatViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.chatbox.TextMessageFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.CampaignToolbarViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.links.ResourcesViewModel
-import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkFactory
-import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.AdminViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.action.GMActionUseCase
import com.pixelized.desktop.lwa.ui.screen.admin.action.GMActionViewModel
@@ -68,8 +55,25 @@ import com.pixelized.desktop.lwa.ui.screen.admin.item.edit.GMItemEditFactory
import com.pixelized.desktop.lwa.ui.screen.admin.item.edit.GMItemEditViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.item.list.GMItemFactory
import com.pixelized.desktop.lwa.ui.screen.admin.item.list.GMItemViewModel
+import com.pixelized.desktop.lwa.ui.screen.admin.map.edit.GMMapEditFactory
+import com.pixelized.desktop.lwa.ui.screen.admin.map.edit.GMMapEditViewModel
+import com.pixelized.desktop.lwa.ui.screen.admin.map.list.GMMapFactory
+import com.pixelized.desktop.lwa.ui.screen.admin.map.list.GMMapViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.chatbox.CampaignChatViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.chatbox.TextMessageFactory
import com.pixelized.desktop.lwa.ui.screen.campaign.map.MapSceneFactory
import com.pixelized.desktop.lwa.ui.screen.campaign.map.MapSceneViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailPanelViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.header.CharacterDetailHeaderFactory
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.inventory.CharacterDetailInventoryFactory
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.sheet.CharacterDetailSheetFactory
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.CharacterRibbonFactory
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.NpcRibbonViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.player.ribbon.PlayerRibbonViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.CampaignToolbarViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.links.ResourcesViewModel
+import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkFactory
+import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkViewModel
import com.pixelized.desktop.lwa.ui.screen.levelup.LevelUpFactory
import com.pixelized.desktop.lwa.ui.screen.levelup.LevelUpViewModel
import com.pixelized.desktop.lwa.ui.screen.settings.SettingsViewModel
@@ -174,6 +178,8 @@ val factoryDependencies
factoryOf(::GMAlterationEditFactory)
factoryOf(::GMItemFactory)
factoryOf(::GMItemEditFactory)
+ factoryOf(::GMMapFactory)
+ factoryOf(::GMMapEditFactory)
}
val viewModelDependencies
@@ -206,6 +212,8 @@ val viewModelDependencies
viewModelOf(::GMAlterationEditViewModel)
viewModelOf(::GMItemViewModel)
viewModelOf(::GMItemEditViewModel)
+ viewModelOf(::GMMapViewModel)
+ viewModelOf(::GMMapEditViewModel)
}
val useCaseDependencies
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClient.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClient.kt
index c7952c0..063c375 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClient.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClient.kt
@@ -177,6 +177,10 @@ interface LwaClient {
create: Boolean,
): APIResponse
+ suspend fun deleteMap(
+ mapId: String,
+ ): APIResponse
+
companion object {
fun error(error: APIResponse<*>): Nothing = throw LwaNetworkException(error)
}
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClientImpl.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClientImpl.kt
index 991805b..018265e 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClientImpl.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/network/LwaClientImpl.kt
@@ -299,9 +299,16 @@ class LwaClientImpl(
mapJson: MapJson,
create: Boolean,
): APIResponse = client
- .put("$root/map/update") {
+ .put("$root/map/update?create=$create") {
contentType(ContentType.Application.Json)
setBody(mapJson)
}
.body>()
+
+ @Throws
+ override suspend fun deleteMap(
+ mapId: String,
+ ): APIResponse = client
+ .delete("$root/map/delete?mapId=$mapId")
+ .body>()
}
\ No newline at end of file
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapRepository.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapRepository.kt
index 60a9c2d..4955581 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapRepository.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapRepository.kt
@@ -35,4 +35,11 @@ class MapRepository(
create = create,
)
}
+
+ @Throws
+ suspend fun deleteMap(
+ mapId: String,
+ ) {
+ mapStore.deleteMap(mapId = mapId)
+ }
}
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapStore.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapStore.kt
index 8313659..355645d 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapStore.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/map/MapStore.kt
@@ -80,6 +80,18 @@ class MapStore(
}
}
+ @Throws
+ suspend fun deleteMap(
+ mapId: String,
+ ) {
+ val request = client.deleteMap(
+ mapId = mapId,
+ )
+ if (request.success.not()) {
+ LwaClient.error(error = request)
+ }
+ }
+
// region: WebSocket & data update.
private suspend fun handleMessage(message: SocketMessage) {
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/tag/TagStore.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/tag/TagStore.kt
index 0cb0ca3..61a0faf 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/tag/TagStore.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/tag/TagStore.kt
@@ -15,6 +15,7 @@ class TagStore(
private val characterTagsFlow = MutableStateFlow