[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / mapper / ItemMapper.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/mapper/ItemMapper.kt b/core/src/ru/deadsoftware/cavedroid/game/model/mapper/ItemMapper.kt
index 7646e22d70b756cb07082b2f6425b3eff03a0659..4d6d5512276af372e5be34f0acacfd98e92dd708 100644 (file)
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.model.item.Item.*
import ru.deadsoftware.cavedroid.misc.Assets
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.model.item.Item.*
import ru.deadsoftware.cavedroid.misc.Assets
+import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
import javax.inject.Inject
@Reusable
import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
import javax.inject.Inject
@Reusable
-class ItemMapper @Inject constructor() {
+class ItemMapper @Inject constructor(
+ private val assetLoader: AssetLoader,
+) {
fun map(key: String, dto: ItemDto, block: Block?, slabTopBlock: Block.Slab?, slabBottomBlock: Block.Slab?): Item {
val params = mapCommonParams(key, dto)
return when (dto.type) {
"bucket" -> Bucket(params, requireNotNull(loadSprite(dto)), requireNotNull(dto.actionKey))
fun map(key: String, dto: ItemDto, block: Block?, slabTopBlock: Block.Slab?, slabBottomBlock: Block.Slab?): Item {
val params = mapCommonParams(key, dto)
return when (dto.type) {
"bucket" -> Bucket(params, requireNotNull(loadSprite(dto)), requireNotNull(dto.actionKey))
- "shovel" -> Shovel(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier)
- "sword" -> Sword(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier)
+ "shovel" -> Shovel(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
+ "sword" -> Sword(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
+ "pickaxe" -> Pickaxe(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
+ "axe" -> Axe(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
+ "shears" -> Shears(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
"block" -> Block(params, requireNotNull(block))
"slab" -> Slab(params, requireNotNull(slabTopBlock), requireNotNull(slabBottomBlock))
"none" -> None(params)
"block" -> Block(params, requireNotNull(block))
"slab" -> Slab(params, requireNotNull(slabTopBlock), requireNotNull(slabBottomBlock))
"none" -> None(params)
inHandSpriteOrigin = SpriteOrigin(
x = dto.originX,
y = dto.origin_y,
inHandSpriteOrigin = SpriteOrigin(
x = dto.originX,
y = dto.origin_y,
- )
+ ),
+ maxStack = dto.maxStack,
)
}
)
}
return null
}
return null
}
- return Sprite(Assets.itemTextures[dto.texture])
+ val texture = Assets.resolveItemTexture(assetLoader, dto.texture)
+ return Sprite(texture)
.apply { flip(false, true) }
}
.apply { flip(false, true) }
}