DEADSOFTWARE

Remove java color
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / misc / utils / RenderingUtils.kt
index 5849f03c79f02356a2e14a3f3c58df7102421f0a..8976c9963cd8935d64a373ee54db088513537662 100644 (file)
@@ -31,12 +31,12 @@ fun Rectangle.cycledInsideWorld(
 
 fun forEachBlockInArea(
     area: Rectangle,
-    func: (x: Int, y: Int) -> Unit
+    func: (x: Int, y: Int) -> Unit,
 ) {
     val startMapX = area.x.bl
-    val endMapX = startMapX + area.width.bl + 1
+    val endMapX = (area.x + area.width - 1f).bl
     val startMapY = area.y.bl
-    val endMapY = startMapY + area.height.bl + 1
+    val endMapY = (area.y + area.height - 1f).bl
 
     for (x in startMapX..endMapX) {
         for (y in startMapY..endMapY) {
@@ -50,3 +50,22 @@ fun SpriteBatch.drawString(str: String, x: Float, y: Float, color: Color = Color
     Assets.minecraftFont.color = color
     return Assets.minecraftFont.draw(this, str, x, y)
 }
+
+/**
+ * Parses hex color string into [Color]
+ * Format is strictly #FFFFFF
+ */
+fun colorFromHexString(hex: String): Color {
+    if (hex[0] != '#' || hex.length != 7) {
+        return Color.WHITE
+    }
+
+    var rgba = try {
+        hex.substring(1).toInt(16)
+    } catch (e: NumberFormatException) {
+        0xffffff
+    }
+
+    rgba = (rgba shl 8) or 0xFF
+    return Color(rgba)
+}