DEADSOFTWARE

Update version script
[cavedroid.git] / core / src / main / kotlin / ru / deadsoftware / cavedroid / game / objects / container / Chest.kt
1 package ru.deadsoftware.cavedroid.game.objects.container
3 import ru.deadsoftware.cavedroid.game.GameItemsHolder
4 import ru.deadsoftware.cavedroid.game.model.dto.SaveDataDto
5 import ru.deadsoftware.cavedroid.game.model.item.InventoryItem
6 import ru.deadsoftware.cavedroid.misc.Saveable
8 class Chest @JvmOverloads constructor(
9 gameItemsHolder: GameItemsHolder,
10 initialItems: List<InventoryItem>? = null
11 ) : Container(SIZE, gameItemsHolder, initialItems), Saveable {
13 override fun update(gameItemsHolder: GameItemsHolder) {
14 // no-op
15 }
17 override fun getSaveData(): SaveDataDto.ChestSaveData {
18 return SaveDataDto.ChestSaveData(
19 version = SAVE_DATA_VERSION,
20 size = size,
21 items = items.map(InventoryItem::getSaveData)
22 )
23 }
25 companion object {
26 private const val SAVE_DATA_VERSION = 1
27 private const val SIZE = 27
29 fun fromSaveData(saveData: SaveDataDto.ChestSaveData, gameItemsHolder: GameItemsHolder): Chest {
30 saveData.verifyVersion(SAVE_DATA_VERSION)
32 return Chest(
33 gameItemsHolder = gameItemsHolder,
34 initialItems = saveData.items.map { item -> InventoryItem.fromSaveData(item, gameItemsHolder) }
35 )
36 }
37 }
38 }