DEADSOFTWARE

MainComponent in kotlin
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / misc / utils / SpriteUtils.kt
index d9f52d522c090c8026362521318ee8807e1b6dc0..a26c5b95dd8b3699fb4bf8362b8e7c6ed890520d 100644 (file)
@@ -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