diff --git a/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt b/core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt
index 72165e7cb196e4bf03dcb39fe8c7efb548aef05f..a26c5b95dd8b3699fb4bf8362b8e7c6ed890520d 100644 (file)
package ru.deadsoftware.cavedroid.misc.utils
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
import com.badlogic.gdx.graphics.g2d.Sprite
import com.badlogic.gdx.graphics.g2d.SpriteBatch
* Draw sprite at given position rotated by [rotation] degrees
*/
@JvmOverloads
* 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.setPosition(x, y)
+ sprite.setSize(width, height)
+ sprite.rotation = rotation
+ tint?.let(sprite::setColor)
+
sprite.draw(this)
sprite.draw(this)
+
+ sprite.setSize(sprite.regionWidth.toFloat(), sprite.regionHeight.toFloat())
+ sprite.rotation = 0f
+ sprite.color = oldColor
}
fun Sprite.applyOrigin(origin: SpriteOrigin) {
}
fun Sprite.applyOrigin(origin: SpriteOrigin) {
- setOrigin(width * origin.x, height * origin.y)
+ origin.applyToSprite(this)
}
\ No newline at end of file
}
\ No newline at end of file