[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 796fc8b28fdb25a81f6c59477d7e42c56ffb2788..ad79cbd824e01f6b0308f3d04e190f9952f16f29 100644 (file)
package ru.deadsoftware.cavedroid.game.model.mapper
-import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.Sprite
import dagger.Reusable
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.model.item.CommonItemParams
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.model.item.Item.*
-import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
+import ru.deadsoftware.cavedroid.misc.Assets
import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
import javax.inject.Inject
@Reusable
-class ItemMapper @Inject constructor(
- private val assetLoader: AssetLoader,
-) {
+class ItemMapper @Inject constructor() {
fun map(key: String, dto: ItemDto, block: Block?): Item {
val params = mapCommonParams(key, dto)
"shovel" -> Shovel(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier)
"sword" -> Sword(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier)
"block" -> Placeable(params, requireNotNull(block))
+ "none" -> None(params)
else -> throw IllegalArgumentException("Unknown item type ${dto.type}")
}
}
}
private fun loadSprite(dto: ItemDto): Sprite? {
- if (dto.type == "block" || dto.texture == GameItemsHolder.FALLBACK_ITEM_KEY) {
+ if (dto.type == "none" || dto.type == "block" || dto.texture == GameItemsHolder.FALLBACK_ITEM_KEY) {
return null
}
- return Sprite(Texture(assetLoader.getAssetHandle("textures/items/${dto.texture}.png")))
+ return Sprite(Assets.itemTextures[dto.texture])
+ .apply { flip(false, true) }
}
}
\ No newline at end of file