summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt65
1 files changed, 25 insertions, 40 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt b/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt
index 78257c3..531a25f 100644
--- a/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt
+++ b/src/main/kotlin/io/dico/parcels2/defaultimpl/ParcelWorldImpl.kt
@@ -3,30 +3,27 @@
package io.dico.parcels2.defaultimpl
import io.dico.parcels2.*
-import io.dico.parcels2.blockvisitor.JobDispatcher
import io.dico.parcels2.options.RuntimeWorldOptions
import io.dico.parcels2.storage.Storage
import kotlinx.coroutines.CoroutineScope
+import org.bukkit.GameRule
import org.bukkit.World
import org.joda.time.DateTime
import java.util.UUID
-class ParcelWorldImpl(override val world: World,
- override val generator: ParcelGenerator,
- override var options: RuntimeWorldOptions,
- override val storage: Storage,
- override val globalPrivileges: GlobalPrivilegesManager,
- containerFactory: ParcelContainerFactory,
- coroutineScope: CoroutineScope,
- jobDispatcher: JobDispatcher)
- : ParcelWorld,
- ParcelWorldId,
- ParcelContainer, /* missing delegation */
- ParcelLocator /* missing delegation */ {
-
+class ParcelWorldImpl(
+ val plugin: ParcelsPlugin,
+ override val world: World,
+ override val generator: ParcelGenerator,
+ override var options: RuntimeWorldOptions,
+ containerFactory: ParcelContainerFactory
+) : ParcelWorld, ParcelWorldId, ParcelContainer, ParcelLocator {
override val id: ParcelWorldId get() = this
override val uid: UUID? get() = world.uid
+ override val storage get() = plugin.storage
+ override val globalPrivileges get() = plugin.globalPrivileges
+
init {
if (generator.world != world) {
throw IllegalArgumentException()
@@ -39,52 +36,40 @@ class ParcelWorldImpl(override val world: World,
override val blockManager: ParcelBlockManager
init {
- val pair = generator.makeParcelLocatorAndBlockManager(id, container, coroutineScope, jobDispatcher)
- locator = pair.first
- blockManager = pair.second
-
+ val (locator, blockManager) = generator.makeParcelLocatorAndBlockManager(plugin.parcelProvider, container, plugin, plugin.jobDispatcher)
+ this.locator = locator
+ this.blockManager = blockManager
enforceOptions()
}
fun enforceOptions() {
if (options.dayTime) {
- world.setGameRuleValue("doDaylightCycle", "false")
+ world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false)
world.setTime(6000)
}
if (options.noWeather) {
world.setStorm(false)
world.setThundering(false)
- world.weatherDuration = Integer.MAX_VALUE
+ world.weatherDuration = Int.MAX_VALUE
}
- world.setGameRuleValue("doTileDrops", "${options.doTileDrops}")
+ world.setGameRule(GameRule.DO_TILE_DROPS, options.doTileDrops)
}
- // Updated by ParcelProviderImpl
+ // Accessed by ParcelProviderImpl
override var creationTime: DateTime? = null
- /*
- Interface delegation needs to be implemented manually because JetBrains has yet to fix it.
- */
- // ParcelLocator interface
- override fun getParcelAt(x: Int, z: Int): Parcel? {
- return locator.getParcelAt(x, z)
- }
+ override fun getParcelAt(x: Int, z: Int): Parcel? = locator.getParcelAt(x, z)
- override fun getParcelIdAt(x: Int, z: Int): ParcelId? {
- return locator.getParcelIdAt(x, z)
- }
+ override fun getParcelIdAt(x: Int, z: Int): ParcelId? = locator.getParcelIdAt(x, z)
- // ParcelContainer interface
- override fun getParcelById(x: Int, z: Int): Parcel? {
- return container.getParcelById(x, z)
- }
+ override fun getParcelById(x: Int, z: Int): Parcel? = container.getParcelById(x, z)
- override fun nextEmptyParcel(): Parcel? {
- return container.nextEmptyParcel()
- }
+ override fun getParcelById(id: ParcelId): Parcel? = container.getParcelById(id)
+
+ override fun nextEmptyParcel(): Parcel? = container.nextEmptyParcel()
- override fun toString() = toStringExt()
+ override fun toString() = parcelWorldIdToString()
}