[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 eb3080fd876233630c269753582beacca3ce9df6..667d92b0e897975a5ea05e75dcc304680fe97c8f 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.game.model.item.Item
import ru.deadsoftware.cavedroid.misc.Assets
import javax.inject.Inject
return when (dto.meta) {
"water" -> Water(commonBlockParams, requireNotNull(dto.state))
"lava" -> Lava(commonBlockParams, requireNotNull(dto.state))
- "slab" -> Slab(commonBlockParams, requireNotNull(dto.fullBlock))
+ "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,
right = dto.spriteRight,
bottom = dto.spriteBottom,
- )
+ ),
+ toolLevel = dto.toolLevel,
+ toolType = mapToolType(dto),
)
}
+ private fun mapToolType(dto: BlockDto): Class<out Item.Tool>? {
+ return when(dto.toolType) {
+ "shovel" -> Item.Shovel::class.java
+ "sword" -> Item.Sword::class.java
+ "pickaxe" -> Item.Pickaxe::class.java
+ "axe" -> Item.Axe::class.java
+ "shears" -> Item.Shears::class.java
+
+ else -> null
+ }
+ }
+
private fun mapBlockDropInfo(dto: BlockDto): BlockDropInfo? {
val drop = dto.drop
val dropCount = dto.dropCount
)
}
- private fun loadTexture(textureName: String): Texture? {
+ private fun getTexture(textureName: String): Texture? {
if (textureName == GameItemsHolder.FALLBACK_BLOCK_KEY) {
return null
}