Skip to content

Commit 9b6359a

Browse files
committed
add a flag to optimize chunks
1 parent 35248b5 commit 9b6359a

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

src/main/kotlin/net/roxymc/slime/importer/cli/Importer.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import net.roxymc.slime.importer.SlimeImporter
44
import net.roxymc.slime.importer.anvil.SlimeAnvilImporter
55
import net.roxymc.slime.loader.SlimeLoader
66

7-
enum class Importer(private val importer: (SlimeLoader, Array<String>, Array<String>) -> SlimeImporter) {
8-
ANVIL({ slimeLoader, worldTags, chunkTags ->
7+
enum class Importer(private val importer: (SlimeLoader, Array<String>, Array<String>, Boolean) -> SlimeImporter) {
8+
ANVIL({ slimeLoader, worldTags, chunkTags, optimizeChunks ->
99
SlimeAnvilImporter.builder(slimeLoader)
1010
.preserveWorldTags(*worldTags)
1111
.preserveChunkTags(*chunkTags)
12+
.optimizeChunks(optimizeChunks)
1213
.build()
1314
});
1415

15-
fun build(slimeLoader: SlimeLoader, worldTags: Array<String>, chunkTags: Array<String>): SlimeImporter =
16-
importer(slimeLoader, worldTags, chunkTags)
16+
fun build(slimeLoader: SlimeLoader, worldTags: Array<String>, chunkTags: Array<String>, optimizeChunks: Boolean): SlimeImporter =
17+
importer(slimeLoader, worldTags, chunkTags, optimizeChunks)
1718
}

src/main/kotlin/net/roxymc/slime/importer/cli/Main.kt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import com.github.ajalt.clikt.core.main
55
import com.github.ajalt.clikt.parameters.options.*
66
import com.github.ajalt.clikt.parameters.types.enum
77
import com.github.ajalt.clikt.parameters.types.file
8-
import net.roxymc.slime.importer.cli.impl.world.SlimeHeightmaps
9-
import net.roxymc.slime.importer.cli.impl.world.SlimeWorld
10-
import net.roxymc.slime.importer.cli.impl.world.biome.SlimeBiomes
11-
import net.roxymc.slime.importer.cli.impl.world.block.entity.SlimeBlockEntity
12-
import net.roxymc.slime.importer.cli.impl.world.block.state.SlimeBlockStates
13-
import net.roxymc.slime.importer.cli.impl.world.chunk.SlimeChunk
14-
import net.roxymc.slime.importer.cli.impl.world.chunk.SlimeSection
15-
import net.roxymc.slime.importer.cli.impl.world.entity.SlimeEntity
8+
import net.roxymc.slime.importer.cli.world.impl.SlimeHeightmaps
9+
import net.roxymc.slime.importer.cli.world.impl.SlimeWorld
10+
import net.roxymc.slime.importer.cli.world.impl.biome.SlimeBiomes
11+
import net.roxymc.slime.importer.cli.world.impl.block.entity.SlimeBlockEntity
12+
import net.roxymc.slime.importer.cli.world.impl.block.state.SlimeBlockStates
13+
import net.roxymc.slime.importer.cli.world.impl.chunk.SlimeChunk
14+
import net.roxymc.slime.importer.cli.world.impl.chunk.SlimeSection
15+
import net.roxymc.slime.importer.cli.world.impl.entity.SlimeEntity
1616
import net.roxymc.slime.loader.SlimeLoader
1717

1818
class Main : CliktCommand() {
@@ -32,12 +32,15 @@ class Main : CliktCommand() {
3232
.required()
3333
private val worldTags by option()
3434
.split(",")
35-
.help("World tags to preserve")
35+
.help("World tags to preserve (supported only by Anvil)")
3636
.default(emptyList())
3737
private val chunkTags by option()
3838
.split(",")
39-
.help("Chunk tags to preserve")
39+
.help("Chunk tags to preserve (supported only by Anvil)")
4040
.default(emptyList())
41+
private val optimizeChunks by option()
42+
.help("Enables chunks optimization (skips empty chunks)")
43+
.flag()
4144

4245
private val slimeLoader = SlimeLoader.builder()
4346
.deserializers { builder ->
@@ -56,7 +59,7 @@ class Main : CliktCommand() {
5659
override fun run() {
5760
val importStart = System.currentTimeMillis()
5861

59-
val slimeImporter = importer.build(slimeLoader, worldTags.toTypedArray(), chunkTags.toTypedArray())
62+
val slimeImporter = importer.build(slimeLoader, worldTags.toTypedArray(), chunkTags.toTypedArray(), optimizeChunks)
6063
val result = try {
6164
slimeImporter.importWorld(source)
6265
} catch (e: Exception) {

0 commit comments

Comments
 (0)