diff --git a/gradle.properties b/gradle.properties index 77935cf..1885440 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,6 +15,6 @@ kotlin_version=2.0.21 fabric_kotlin_version=1.12.3 # mod properties -mod_version=1.8.1 +mod_version=1.9 maven_group=net.mcbrawls mod_id=slate diff --git a/src/main/kotlin/net/mcbrawls/slate/Slate.kt b/src/main/kotlin/net/mcbrawls/slate/Slate.kt index 3d1c8e9..c5b03c2 100644 --- a/src/main/kotlin/net/mcbrawls/slate/Slate.kt +++ b/src/main/kotlin/net/mcbrawls/slate/Slate.kt @@ -88,20 +88,37 @@ open class Slate { action.invoke(tiles) } + /** + * Adds a layer to this slate at the given tile index. + */ + fun addLayer(index: Int, layer: SlateLayer) { + layers.add(LayerWithIndex(index, layer)) + } + + /** + * Adds a layer to this slate at the given coordinates. + */ + fun addLayer(x: Int, y: Int, layer: SlateLayer) { + addLayer(TileGrid.toIndex(x, y, tiles.width), layer) + } + /** * Adds a layer to this slate. * @return the created layer */ - inline fun layer( + inline fun addLayer( index: Int, width: Int, height: Int, factory: SlateLayer.Factory = SlateLayer.Factory(::SlateLayer), builder: SlateLayer.() -> Unit, ) : SlateLayer { - val layer = factory.create(width, height) - layer.apply(builder) - layers.add(LayerWithIndex(index, layer)) + val layer = factory + .create(width, height) + .apply(builder) + + addLayer(index, layer) + return layer } @@ -109,7 +126,7 @@ open class Slate { * Adds a paged layer to this slate. * @return the created layer */ - inline fun pagedLayer( + inline fun addPagedLayer( index: Int, width: Int, height: Int, @@ -121,10 +138,9 @@ open class Slate { override fun createTile(index: Int): Tile? { return slotFactory.invoke(this, index) } - } + }.apply(builder) - layer.apply(builder) - layers.add(LayerWithIndex(index, layer)) + addLayer(index, layer) return layer } diff --git a/src/test/kotlin/net/mcbrawls/slate/test/SlateTest.kt b/src/test/kotlin/net/mcbrawls/slate/test/SlateTest.kt index ae28dc6..98fcb21 100644 --- a/src/test/kotlin/net/mcbrawls/slate/test/SlateTest.kt +++ b/src/test/kotlin/net/mcbrawls/slate/test/SlateTest.kt @@ -37,7 +37,7 @@ class SlateTest : ModInitializer { val slate = slate { title = Text.literal("Slate Innit") - layer(4, 3, 2) { + addLayer(4, 3, 2) { for (i in 0 until size) { tiles[i] = tile(Items.STONE) { tooltip(Text.literal("Layer tile at $i"))