import ru.deadsoftware.cavedroid.misc.Assets
import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin
+import ru.deadsoftware.cavedroid.misc.utils.colorFromHexString
import javax.inject.Inject
@Reusable
return when (dto.type) {
"normal" -> Normal(params, requireNotNull(loadSprite(dto)))
- "bucket" -> Bucket(params, requireNotNull(loadSprite(dto)), requireNotNull(dto.actionKey))
+ "usable" -> Usable(params, requireNotNull(loadSprite(dto)), requireNotNull(dto.actionKey))
"shovel" -> Shovel(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
"sword" -> Sword(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
"pickaxe" -> Pickaxe(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
"shears" -> Shears(params, requireNotNull(loadSprite(dto)), dto.mobDamageMultiplier, dto.blockDamageMultiplier, requireNotNull(dto.toolLevel))
"block" -> Block(params, requireNotNull(block))
"slab" -> Slab(params, requireNotNull(slabTopBlock), requireNotNull(slabBottomBlock))
+ "food" -> Food(params, requireNotNull(loadSprite(dto)), requireNotNull(dto.heal))
"none" -> None(params)
else -> throw IllegalArgumentException("Unknown item type ${dto.type}")
}
y = dto.origin_y,
),
maxStack = dto.maxStack,
+ burningTimeMs = dto.burningTime,
+ smeltProductKey = dto.smeltProduct,
)
}
val texture = Assets.resolveItemTexture(assetLoader, dto.texture)
return Sprite(texture)
- .apply { flip(false, true) }
+ .apply {
+ flip(false, true)
+ dto.tint?.let {
+ color = colorFromHexString(it)
+ }
+ }
}
}
\ No newline at end of file