diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/Tile.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/Tile.kt similarity index 88% rename from editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/Tile.kt rename to editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/Tile.kt index 47df38b7..89a706a0 100755 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/Tile.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/Tile.kt @@ -1,12 +1,10 @@ -package com.bartlomiejpluta.base.editor.model.map.tileset +package com.bartlomiejpluta.base.editor.model.tileset import javafx.scene.image.Image import javafx.scene.image.PixelReader import javafx.scene.image.WritableImage -import javafx.scene.image.PixelWriter -import javafx.scene.paint.Color class Tile( diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/TileSet.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/TileSet.kt similarity index 85% rename from editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/TileSet.kt rename to editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/TileSet.kt index 54a9ebde..e7691f95 100755 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/map/tileset/TileSet.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/model/tileset/TileSet.kt @@ -1,4 +1,4 @@ -package com.bartlomiejpluta.base.editor.model.map.tileset +package com.bartlomiejpluta.base.editor.model.tileset import javafx.scene.image.Image import javafx.scene.image.PixelFormat @@ -28,8 +28,4 @@ class TileSet(private val image: Image, val rows: Int, val columns: Int) { fun getTile(row: Int, column: Int) = tiles[row][column] fun getTile(id: Int) = tiles[id / rows][id % columns] - - companion object { - val EMPTY = TileSet(Image("/textures/tileset.png"), 1, 1) - } } \ No newline at end of file diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/component/map/MapPane.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/component/map/MapPane.kt index 84e6084c..db6edea5 100755 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/component/map/MapPane.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/component/map/MapPane.kt @@ -2,15 +2,17 @@ package com.bartlomiejpluta.base.editor.view.component.map import com.bartlomiejpluta.base.editor.model.map.map.GameMap import com.bartlomiejpluta.base.editor.render.canvas.map.MapCanvas -import com.bartlomiejpluta.base.editor.view.render.renderer.Renderer +import javafx.event.EventHandler import javafx.scene.canvas.Canvas +import javafx.scene.input.MouseEvent -class MapPane : Canvas() { +class MapPane : Canvas(), EventHandler { private val mapCanvas = MapCanvas() - private val renderer = Renderer(graphicsContext2D, mapCanvas) init { - renderer.start() + onMouseMoved = this + onMouseClicked = this + onMouseDragged = this } fun updateMap(map: GameMap) { @@ -18,4 +20,13 @@ class MapPane : Canvas() { height = map.height.toDouble() mapCanvas.updateMap(map) } + + fun render() { + mapCanvas.render(graphicsContext2D) + } + + override fun handle(event: MouseEvent?) { + mapCanvas.handle(event) + mapCanvas.render(graphicsContext2D) + } } \ No newline at end of file diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/fragment/MapFragment.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/fragment/MapFragment.kt index b7b1d39a..7a87adae 100755 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/fragment/MapFragment.kt +++ b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/fragment/MapFragment.kt @@ -4,7 +4,10 @@ import com.bartlomiejpluta.base.editor.model.map.map.GameMap import com.bartlomiejpluta.base.editor.view.component.map.MapPane import javafx.beans.property.SimpleDoubleProperty import javafx.scene.transform.Scale -import tornadofx.* +import tornadofx.Fragment +import tornadofx.group +import tornadofx.plusAssign +import tornadofx.scrollpane class MapFragment : Fragment() { private val pane = MapPane() @@ -17,6 +20,7 @@ class MapFragment : Fragment() { fun updateMap(map: GameMap) { pane.updateMap(map) + pane.render() } override val root = scrollpane { diff --git a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/render/renderer/Renderer.kt b/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/render/renderer/Renderer.kt deleted file mode 100755 index abc61877..00000000 --- a/editor/src/main/kotlin/com/bartlomiejpluta/base/editor/view/render/renderer/Renderer.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.bartlomiejpluta.base.editor.view.render.renderer - -import com.bartlomiejpluta.base.editor.render.model.Renderable -import javafx.animation.AnimationTimer -import javafx.scene.canvas.GraphicsContext - -class Renderer( - private val gc: GraphicsContext, - private val renderable: Renderable -) : AnimationTimer() { - private var previous = System.nanoTime() - - override fun handle(now: Long) { - val dt = (now - previous) / 1000000000.0 - previous = now - - render() - } - - private fun render() { - gc.clearRect(0.0, 0.0, gc.canvas.width, gc.canvas.height); - - renderable.render(gc) - } -} \ No newline at end of file