X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmodel%2Fmapper%2FBlockMapper.kt;h=19d8c4757d125235a8dfd62b482bbfb467c87862;hb=refs%2Fheads%2Fmaster;hp=1b641ed338a420a3cf502af7a9cd50f3e92e98b0;hpb=cb0605053ce3de493b0d1f43cd7ec1e4a9cf0ac5;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt b/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt deleted file mode 100644 index 1b641ed..0000000 --- a/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt +++ /dev/null @@ -1,107 +0,0 @@ -package ru.deadsoftware.cavedroid.game.model.mapper - -import com.badlogic.gdx.graphics.Texture -import dagger.Reusable -import ru.deadsoftware.cavedroid.game.GameItemsHolder -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 ru.deadsoftware.cavedroid.misc.utils.AssetLoader -import javax.inject.Inject - -@Reusable -class BlockMapper @Inject constructor( - private val assetLoader: AssetLoader, -) { - - fun map(key: String, dto: BlockDto): Block { - val commonBlockParams = mapCommonParams(key, dto) - - return when (dto.meta) { - "water" -> Water(commonBlockParams, requireNotNull(dto.state)) - "lava" -> Lava(commonBlockParams, requireNotNull(dto.state)) - "slab" -> Slab(commonBlockParams, requireNotNull(dto.fullBlock), requireNotNull(dto.otherPart)) - "furnace" -> Furnace(commonBlockParams) - "chest" -> Chest(commonBlockParams) - "none" -> None(commonBlockParams) - else -> Normal(commonBlockParams) - } - } - - private fun mapCommonParams(key: String, dto: BlockDto): CommonBlockParams { - return CommonBlockParams( - key = key, - collisionMargins = BlockMargins( - left = dto.left, - top = dto.top, - right = dto.right, - bottom = dto.bottom - ), - hitPoints = dto.hp, - dropInfo = mapBlockDropInfo(dto), - hasCollision = dto.collision, - isBackground = dto.background, - isTransparent = dto.transparent, - requiresBlock = dto.blockRequired, - animationInfo = mapBlockAnimationInfo(dto), - texture = getTexture(dto.texture), - spriteMargins = BlockMargins( - left = dto.spriteLeft, - top = dto.spriteTop, - right = dto.spriteRight, - bottom = dto.spriteBottom, - ), - toolLevel = dto.toolLevel, - toolType = mapToolType(dto), - damage = dto.damage, - tint = dto.tint, - ) - } - - private fun mapToolType(dto: BlockDto): Class? { - 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 - - if (drop == GameItemsHolder.FALLBACK_ITEM_KEY || dropCount == 0) { - return null - } - - return BlockDropInfo( - itemKey = drop, - count = dropCount, - ) - } - - private fun mapBlockAnimationInfo(dto: BlockDto): BlockAnimationInfo? { - if (!dto.animated) { - return null - } - - return BlockAnimationInfo( - framesCount = dto.frames, - ) - } - - private fun getTexture(textureName: String): Texture? { - if (textureName == GameItemsHolder.FALLBACK_BLOCK_KEY) { - return null - } - - return Assets.resolveBlockTexture(assetLoader, textureName) - } - -} \ No newline at end of file