Skip to content

Commit be64755

Browse files
committed
Tidy up
1 parent d6ec1b1 commit be64755

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

engine/src/main/kotlin/world/gregs/voidps/engine/data/definition/MapDefinitions.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,25 @@ package world.gregs.voidps.engine.data.definition
22

33
import com.github.michaelbull.logging.InlineLogger
44
import world.gregs.voidps.cache.Cache
5+
import world.gregs.voidps.cache.FileCache
56
import world.gregs.voidps.cache.Index
67
import world.gregs.voidps.cache.definition.decoder.MapTileDecoder
8+
import world.gregs.voidps.cache.definition.decoder.ObjectDecoder
79
import world.gregs.voidps.engine.client.ui.chat.plural
10+
import world.gregs.voidps.engine.client.update.batch.ZoneBatchUpdates
11+
import world.gregs.voidps.engine.data.Settings
812
import world.gregs.voidps.engine.entity.obj.GameObjects
913
import world.gregs.voidps.engine.map.collision.CollisionDecoder
14+
import world.gregs.voidps.engine.map.collision.Collisions
15+
import world.gregs.voidps.engine.map.collision.GameObjectCollisionAdd
16+
import world.gregs.voidps.engine.map.collision.GameObjectCollisionRemove
1017
import world.gregs.voidps.engine.map.obj.MapObjectsDecoder
1118
import world.gregs.voidps.engine.map.obj.MapObjectsRotatedDecoder
1219
import world.gregs.voidps.type.Region
1320
import world.gregs.voidps.type.Zone
21+
import world.gregs.yaml.Yaml
22+
import java.io.File
23+
import kotlin.time.measureTimedValue
1424

1525
/**
1626
* Loads map collision and objects fast and direct
@@ -80,4 +90,18 @@ class MapDefinitions(
8090
return settings
8191
}
8292

93+
companion object {
94+
@JvmStatic
95+
fun main(args: Array<String>) {
96+
val properties = Settings.load(File("./game/src/main/resources/game.properties").inputStream())
97+
// properties["storage.cache.path"] = "./data/cache-old/"
98+
val (cache, duration) = measureTimedValue { FileCache.load(properties) }
99+
println("Loaded cache in ${duration.inWholeMilliseconds}ms")
100+
val definitions = ObjectDefinitions(ObjectDecoder(member = true, lowDetail = false).load(cache)).load(Yaml(), "./data/definitions/objects.yml")
101+
val collisions = Collisions()
102+
val add = GameObjectCollisionAdd(collisions)
103+
val remove = GameObjectCollisionRemove(collisions)
104+
val defs = MapDefinitions(CollisionDecoder(collisions), definitions, GameObjects(add, remove, ZoneBatchUpdates(), definitions, storeUnused = true), cache).loadCache()
105+
}
106+
}
83107
}

engine/src/main/kotlin/world/gregs/voidps/engine/map/collision/CollisionDecoder.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class CollisionDecoder(private val collisions: Collisions) {
2828
if (--height < 0) {
2929
continue
3030
}
31-
collisions.allocateIfAbsent(x + localX, y + localY, height)
3231
}
3332
collisions.setUnsafe(x + localX, y + localY, height, CollisionFlag.FLOOR)
3433
}
@@ -65,9 +64,7 @@ class CollisionDecoder(private val collisions: Collisions) {
6564
}
6665
val rotX = rotateX(localX, localY, zoneRotation)
6766
val rotY = rotateY(localX, localY, zoneRotation)
68-
val tiles = collisions.flags[Zone.tileIndex(targetX + rotX, targetY + rotY, height)]!!
69-
val tileIndex = Tile.index(targetX + rotX, targetY + rotY)
70-
tiles[tileIndex] = tiles[tileIndex] or CollisionFlag.FLOOR
67+
collisions.setUnsafe(targetX + rotX, targetY + rotY, height, CollisionFlag.FLOOR)
7168
}
7269
}
7370
}

0 commit comments

Comments
 (0)