diff --git a/res/graphics/fonts/numeric_small.png b/res/graphics/fonts/numeric_small.png new file mode 100644 index 000000000..851d2bc46 Binary files /dev/null and b/res/graphics/fonts/numeric_small.png differ diff --git a/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt b/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt index 49b7f2acb..7cae31f68 100644 --- a/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt +++ b/src/net/torvald/terrarum/mapdrawer/LightmapRenderer.kt @@ -619,8 +619,7 @@ object LightmapRenderer { val GREEN = 1 val BLUE = 2 - val screen_tiles: Int - get() = (for_x_end - for_x_start + 2) * (for_y_end - for_y_start + 2) + val screen_tiles: Int = (for_x_end - for_x_start + 2) * (for_y_end - for_y_start + 2) val brightest: Int get() { @@ -645,20 +644,7 @@ object LightmapRenderer { return CHANNEL_MAX } - val histogramMax: Int - get() { - var max = 0 - for (c in 0..2) { - for (i in 0..CHANNEL_MAX) { - val value = get(c)[i] - if (value > max) max = value - } - } - return max - } - - val range: Int - get() = reds.size + val range: Int = CHANNEL_MAX fun get(index: Int): IntArray { return when (index) { diff --git a/src/net/torvald/terrarum/mapdrawer/MapCamera.kt b/src/net/torvald/terrarum/mapdrawer/MapCamera.kt index 33e7948a7..38b3830b0 100644 --- a/src/net/torvald/terrarum/mapdrawer/MapCamera.kt +++ b/src/net/torvald/terrarum/mapdrawer/MapCamera.kt @@ -392,25 +392,28 @@ object MapCamera { nearbyTiles[NEARBY_TILE_KEY_BACK] = map.getTileFrom(WALL, x, y) ?: 4096 try { - if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_RIGHT]).isSolid - && TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_LEFT]).isSolid) { - if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_BACK]).isSolid) - return 0 - else - return 3 - } else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_RIGHT]).isSolid) { - return 2 - } else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_LEFT]).isSolid) { - return 1 - } else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_BACK]).isSolid) { + if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_DOWN]).isSolid) + // has tile on the bottom + return 3 + else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_RIGHT]).isSolid + && TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_LEFT]).isSolid) + // has tile on both sides return 0 - } else + else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_RIGHT]).isSolid) + // has tile on the right + return 2 + else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_LEFT]).isSolid) + // has tile on the left + return 1 + else if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_BACK]).isSolid) + // has tile on the back + return 0 + else return 3 } catch (e: ArrayIndexOutOfBoundsException) { - return if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_BACK]).isSolid) - 0 - else - 3 + return if (TilePropCodex.getProp(nearbyTiles[NEARBY_TILE_KEY_DOWN]).isSolid) + // has tile on the bottom + 3 else 0 } } diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index b42eb8cb0..507c70dd7 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -166,7 +166,10 @@ class BasicDebugInfoWindow : UICanvas { Lang["DEV_COLOUR_LEGEND_BLUE"] + " : nextHitbox", (Terrarum.WIDTH - 200).toFloat() , line(3).toFloat()) - drawHistogram(g, LightmapRenderer.histogram, Terrarum.WIDTH - 256 - 30, Terrarum.HEIGHT - 100 - 30) + drawHistogram(g, LightmapRenderer.histogram, + Terrarum.WIDTH - histogramW - 30, + Terrarum.HEIGHT - histogramH - 30 + ) } private fun printLine(g: Graphics, l: Int, s: String) { @@ -177,17 +180,19 @@ class BasicDebugInfoWindow : UICanvas { g.drawString(s, (20 + column(col)).toFloat(), line(row).toFloat()) } + val histogramW = 256 + val histogramH = 200 + private fun drawHistogram(g: Graphics, histogram: LightmapRenderer.Histogram, x: Int, y: Int) { - val uiColour = Color(0x99000000.toInt()) - val barR = Color(0xFF0000.toInt()) - val barG = Color(0x00FF00.toInt()) - val barB = Color(0x0000FF.toInt()) + val uiColour = Color(0xAA000000.toInt()) + val barR = Color(0xDD0000.toInt()) + val barG = Color(0x00DD00.toInt()) + val barB = Color(0x0000DD.toInt()) val barColour = arrayOf(barR, barG, barB) - val w = 256.toFloat() - val h = 100.toFloat() + val w = histogramW.toFloat() + val h = histogramH.toFloat() val range = histogram.range - val histogramMax = histogram.screen_tiles - //val histogramMax = histogram.histogramMax + val histogramMax = histogram.screen_tiles.toFloat() g.color = uiColour g.fillRect(x.toFloat(), y.toFloat(), w.plus(1).toFloat(), h.toFloat()) @@ -203,9 +208,10 @@ class BasicDebugInfoWindow : UICanvas { } val bar_x = x + (w / w.minus(1).toFloat()) * i.toFloat() - val bar_h = FastMath.ceil(h / histogramMax.toFloat()) * histogram_value.toFloat() - val bar_y = y + (h / histogramMax.toFloat()) - bar_h + h + val bar_h = FastMath.ceil(h / histogramMax * histogram_value.toFloat()).toFloat() + val bar_y = y + (h / histogramMax) - bar_h + h val bar_w = 1f + g.color = barColour[c] g.fillRect(bar_x, bar_y, bar_w, bar_h) } diff --git a/work_files/graphics/fonts/numeric_small.png b/work_files/graphics/fonts/numeric_small.png new file mode 100644 index 000000000..851d2bc46 Binary files /dev/null and b/work_files/graphics/fonts/numeric_small.png differ diff --git a/res/graphics/fonts/number_small.png b/work_files/graphics/fonts/numeric_small_old.png similarity index 100% rename from res/graphics/fonts/number_small.png rename to work_files/graphics/fonts/numeric_small_old.png