[Editor] Add tiled background to tileset
This commit is contained in:
@@ -8,8 +8,9 @@ import com.bartlomiejpluta.base.editor.render.model.Renderable
|
|||||||
import javafx.scene.canvas.GraphicsContext
|
import javafx.scene.canvas.GraphicsContext
|
||||||
import javafx.scene.input.MouseButton
|
import javafx.scene.input.MouseButton
|
||||||
import javafx.scene.input.MouseEvent
|
import javafx.scene.input.MouseEvent
|
||||||
|
import javafx.scene.paint.Color
|
||||||
|
|
||||||
class TileSetCanvas(tileSet: TileSet, selectionCallback: (Array<Array<Tile>>) -> Unit) : Renderable, MapMouseEventHandler {
|
class TileSetCanvas(private val tileSet: TileSet, selectionCallback: (Array<Array<Tile>>) -> Unit) : Renderable, MapMouseEventHandler {
|
||||||
private val tiles = tileSet.tiles
|
private val tiles = tileSet.tiles
|
||||||
private var selection = TileSetSelection(tileSet, selectionCallback)
|
private var selection = TileSetSelection(tileSet, selectionCallback)
|
||||||
|
|
||||||
@@ -26,6 +27,8 @@ class TileSetCanvas(tileSet: TileSet, selectionCallback: (Array<Array<Tile>>) ->
|
|||||||
private fun renderTiles(gc: GraphicsContext) {
|
private fun renderTiles(gc: GraphicsContext) {
|
||||||
for ((row, columns) in tiles.withIndex()) {
|
for ((row, columns) in tiles.withIndex()) {
|
||||||
for ((column, tile) in columns.withIndex()) {
|
for ((column, tile) in columns.withIndex()) {
|
||||||
|
gc.fill = if((row+column) % 2 == 0) BACKGROUND_COLOR1 else BACKGROUND_COLOR2
|
||||||
|
gc.fillRect(column * tile.image.width, row * tile.image.height, tileSet.tileWidth.toDouble(), tileSet.tileHeight.toDouble())
|
||||||
gc.drawImage(tile.image, column * tile.image.width, row * tile.image.height)
|
gc.drawImage(tile.image, column * tile.image.width, row * tile.image.height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -59,4 +62,10 @@ class TileSetCanvas(tileSet: TileSet, selectionCallback: (Array<Array<Tile>>) ->
|
|||||||
selection.finish(event.row.toDouble(), event.column.toDouble())
|
selection.finish(event.row.toDouble(), event.column.toDouble())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val BACKGROUND_COLOR1 = Color.color(1.0, 1.0, 1.0, 1.0)
|
||||||
|
private val BACKGROUND_COLOR2 = Color.color(0.95, 0.95, 0.95, 0.95)
|
||||||
|
private const val BACKGROUND_TILE_SIZE_FACTOR = 4.0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ class MapFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
right = drawer(multiselect = true) {
|
right = drawer(multiselect = true) {
|
||||||
item("Layers") {
|
item("Layers", expanded = true) {
|
||||||
borderpane {
|
borderpane {
|
||||||
center = listview(observableListOf("Layer 1", "Layer 2", "Layer 3", "Layer 4", "Layer 5", "Layer 6"))
|
center = listview(observableListOf("Layer 1", "Layer 2", "Layer 3", "Layer 4", "Layer 5", "Layer 6"))
|
||||||
bottom = hbox {
|
bottom = hbox {
|
||||||
@@ -64,7 +64,7 @@ class MapFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item("Tile Set") {
|
item("Tile Set", expanded = true) {
|
||||||
scrollpane {
|
scrollpane {
|
||||||
maxHeightProperty().bind(this@item.heightProperty())
|
maxHeightProperty().bind(this@item.heightProperty())
|
||||||
this += tileSetPane
|
this += tileSetPane
|
||||||
|
|||||||
Reference in New Issue
Block a user