X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fmisc%2Futils%2FSpriteUtils.kt;h=a26c5b95dd8b3699fb4bf8362b8e7c6ed890520d;hb=3a443514027417133d7a7e18766720dfea028a87;hp=d9f52d522c090c8026362521318ee8807e1b6dc0;hpb=e7a1e15a93abaafa8e2e0435336483a198cc697c;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt b/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt index d9f52d5..a26c5b9 100644 --- a/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt +++ b/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt @@ -1,5 +1,6 @@ package ru.deadsoftware.cavedroid.misc.utils +import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.Sprite import com.badlogic.gdx.graphics.g2d.SpriteBatch @@ -7,8 +8,29 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch * Draw sprite at given position rotated by [rotation] degrees */ @JvmOverloads -fun SpriteBatch.draw(sprite: Sprite, x: Float, y: Float, rotation: Float = 0f) { - sprite.rotation = rotation +fun SpriteBatch.drawSprite( + sprite: Sprite, + x: Float, + y: Float, + rotation: Float = 0f, + width: Float = sprite.regionWidth.toFloat(), + height: Float = sprite.regionHeight.toFloat(), + tint: Color? = null, +) { + val oldColor = sprite.color + sprite.setPosition(x, y) + sprite.setSize(width, height) + sprite.rotation = rotation + tint?.let(sprite::setColor) + sprite.draw(this) + + sprite.setSize(sprite.regionWidth.toFloat(), sprite.regionHeight.toFloat()) + sprite.rotation = 0f + sprite.color = oldColor } + +fun Sprite.applyOrigin(origin: SpriteOrigin) { + origin.applyToSprite(this) +} \ No newline at end of file