X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmodel%2Fitem%2FInventoryItem.kt;h=aa646cbe8fb88437cae365ea8c4c724fd335319d;hb=c1b8f5c93482cb9933dd608c48f41622ce2994c6;hp=6cb2a9d85bf5232fb8e7b37750c336f7e0aa0f38;hpb=f34df6e5eb1052467333f1461c67e75b21eb0d95;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt b/core/src/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt index 6cb2a9d..aa646cb 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt @@ -31,6 +31,21 @@ class InventoryItem @JvmOverloads constructor( item = gameItemsHolder.getItem(itemKey) } + @JvmOverloads + fun add(count: Int = 1) { + amount += count + } + + @JvmOverloads + fun subtract(count: Int = 1) { + add(-count) + } + + @JvmOverloads + fun canBeAdded(count: Int = 1): Boolean { + return !item.isTool() && amount + count <= item.params.maxStack + } + private fun drawAmountText(spriteBatch: SpriteBatch, text: String, x: Float, y: Float) { spriteBatch.drawString(text, x + 1, y + 1, Color.BLACK) spriteBatch.drawString(text, x, y, Color.WHITE) @@ -42,11 +57,14 @@ class InventoryItem @JvmOverloads constructor( } val sprite = item.sprite - sprite.setOriginCenter() - sprite.setPosition(x, y) - sprite.setScale(1.25f) - sprite.draw(spriteBatch) - sprite.setScale(1f) + val amountString = amount.toString() + spriteBatch.drawSprite(sprite, x - 10f, y - 10f, rotation = 0f, width = 20f, height = 20f) + drawAmountText( + spriteBatch = spriteBatch, + text = amountString, + x = x + 10f - Assets.getStringWidth(amountString) + 1f, + y = y + 10f - Assets.getStringHeight(amountString) + 1f + ) } fun draw(spriteBatch: SpriteBatch, shapeRenderer: ShapeRenderer, x: Float, y: Float) {