[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / model / mapper / BlockMapper.kt
diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt b/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt
index 0838491c3fa173b2361f0174cd94dbabe8a6aebc..a122754caad73e972a6cb20f7155c6b76f02a9fd 100644 (file)
import ru.deadsoftware.cavedroid.game.model.block.*
import ru.deadsoftware.cavedroid.game.model.block.Block.*
import ru.deadsoftware.cavedroid.game.model.dto.BlockDto
-import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
+import ru.deadsoftware.cavedroid.misc.Assets
import javax.inject.Inject
@Reusable
-class BlockMapper @Inject constructor(
- private val assetLoader: AssetLoader,
-) {
+class BlockMapper @Inject constructor() {
fun map(key: String, dto: BlockDto): Block {
val commonBlockParams = mapCommonParams(key, dto)
return when (dto.meta) {
- "water" -> Water(commonBlockParams)
- "lava" -> Lava(commonBlockParams)
- "slab" -> Slab(commonBlockParams, requireNotNull(dto.fullBlock))
+ "water" -> Water(commonBlockParams, requireNotNull(dto.state))
+ "lava" -> Lava(commonBlockParams, requireNotNull(dto.state))
+ "slab" -> Slab(commonBlockParams, requireNotNull(dto.fullBlock), requireNotNull(dto.otherPart))
+ "none" -> None(commonBlockParams)
else -> Normal(commonBlockParams)
}
}
isTransparent = dto.transparent,
requiresBlock = dto.blockRequired,
animationInfo = mapBlockAnimationInfo(dto),
- texture = loadTexture(dto.texture),
+ texture = getTexture(dto.texture),
spriteMargins = BlockMargins(
left = dto.spriteLeft,
top = dto.spriteTop,
)
}
- private fun loadTexture(textureName: String): Texture? {
+ private fun getTexture(textureName: String): Texture? {
if (textureName == GameItemsHolder.FALLBACK_BLOCK_KEY) {
return null
}
- return Texture(assetLoader.getAssetHandle("textures/blocks/$textureName.png"))
+ return Assets.blockTextures[textureName]
}
}
\ No newline at end of file