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=a122754caad73e972a6cb20f7155c6b76f02a9fd;hpb=8b34480aaaf0112671d319accff573030079c7b6;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 a122754..0000000 --- a/core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt +++ /dev/null @@ -1,86 +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.misc.Assets -import javax.inject.Inject - -@Reusable -class BlockMapper @Inject constructor() { - - 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)) - "none" -> None(commonBlockParams) - else -> Normal(commonBlockParams) - } - } - - private fun mapCommonParams(key: String, dto: BlockDto): CommonBlockParams { - return CommonBlockParams( - id = dto.id, - 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, - ) - ) - } - - 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.blockTextures[textureName] - } - -} \ No newline at end of file