mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 01:48:04 -04:00
improve testing performance
This commit is contained in:
parent
b502067f28
commit
c74e2f970f
@ -37,11 +37,11 @@ import de.bixilon.minosoft.test.IT
|
||||
object WorldTestUtil {
|
||||
|
||||
|
||||
fun createWorld(connection: PlayConnection?, light: Boolean = false): World {
|
||||
fun createWorld(connection: PlayConnection?, light: Boolean = false, capacity: Int = 0): World {
|
||||
val world = IT.OBJENESIS.newInstance(World::class.java)
|
||||
world::occlusion.forceSet(DataObserver(0))
|
||||
world::lock.forceSet(SimpleLock())
|
||||
world::chunks.forceSet(ChunkManager(world))
|
||||
world::chunks.forceSet(ChunkManager(world, maxOf(0, capacity), 0))
|
||||
world::border.forceSet(WorldBorder())
|
||||
world::dimension.forceSet(DataObserver(DimensionProperties(light = light, skyLight = light)))
|
||||
world::connection.forceSet(connection)
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.network.connection.play
|
||||
|
||||
import de.bixilon.kotlinglm.pow
|
||||
import de.bixilon.kutil.observer.DataObserver
|
||||
import de.bixilon.kutil.reflection.ReflectionUtil.forceSet
|
||||
import de.bixilon.minosoft.assets.TestAssetsManager
|
||||
@ -52,7 +53,7 @@ object ConnectionTestUtil {
|
||||
connection::version.forceSet(version)
|
||||
connection::registries.forceSet(Registries())
|
||||
connection.registries.parent = if (version == IT.VERSION) IT.REGISTRIES else ITUtil.loadPixlyzerData(version)
|
||||
connection::world.forceSet(createWorld(connection, light))
|
||||
connection::world.forceSet(createWorld(connection, light, (worldSize * 2 + 1).pow(2)))
|
||||
connection::player.forceSet(LocalPlayerEntity(connection.account, connection, SignatureKeyManagement(connection, TestAccount)))
|
||||
connection.player.startInit()
|
||||
connection::network.forceSet(TestNetwork())
|
||||
|
@ -61,7 +61,7 @@ class World(
|
||||
val lock = SimpleLock()
|
||||
val random = Random()
|
||||
var cacheBiomeAccessor: NoiseBiomeAccessor? = null
|
||||
val chunks = ChunkManager(this)
|
||||
val chunks = ChunkManager(this, 1000, 100)
|
||||
val entities = WorldEntities()
|
||||
var hardcore by observed(false)
|
||||
var dimension: DimensionProperties by observed(DimensionProperties())
|
||||
|
@ -32,9 +32,9 @@ import de.bixilon.minosoft.data.world.chunk.update.chunk.prototype.PrototypeChan
|
||||
import de.bixilon.minosoft.data.world.chunk.update.chunk.prototype.PrototypeChangeUpdate
|
||||
import de.bixilon.minosoft.data.world.positions.ChunkPosition
|
||||
|
||||
class ChunkManager(val world: World) {
|
||||
val chunks: LockMap<Vec2i, Chunk> = LockMap(hashMapOf(), world.lock)
|
||||
val prototypes: LockMap<Vec2i, ChunkPrototype> = LockMap(hashMapOf(), world.lock)
|
||||
class ChunkManager(val world: World, chunkCapacity: Int = 0, prototypeCapacity: Int = 0) {
|
||||
val chunks: LockMap<Vec2i, Chunk> = LockMap(HashMap(chunkCapacity), world.lock)
|
||||
val prototypes: LockMap<Vec2i, ChunkPrototype> = LockMap(HashMap(prototypeCapacity), world.lock)
|
||||
val size = WorldSizeManager(world)
|
||||
val ticker = ChunkTicker(this)
|
||||
var revision by observed(0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user