Skip to content

Commit f70cae0

Browse files
committed
[EntityCulling] Optimize math
1 parent 1a0fe06 commit f70cae0

File tree

1 file changed

+9
-9
lines changed
  • bukkit/version/v1_18/src/main/kotlin/io/github/rothes/esu/bukkit/module/networkthrottle/entityculling/v1_18

1 file changed

+9
-9
lines changed

bukkit/version/v1_18/src/main/kotlin/io/github/rothes/esu/bukkit/module/networkthrottle/entityculling/v1_18/RaytraceHandlerImpl.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ class RaytraceHandlerImpl: RaytraceHandler<RaytraceHandlerImpl.RaytraceConfig, E
246246
}
247247

248248
fun tickPlayer(player: ServerPlayer, bukkit: Player, userCullData: UserCullData, level: ServerLevel, entities: Iterable<Entity>) {
249-
val viewDistanceSquared = bukkit.viewDistance.let { it * it } shl 8
249+
val viewDistanceSquared = bukkit.viewDistance.square() shl 8
250250

251251
val predicatedPlayerPos = if (config.predicatePlayerPositon) {
252252
val velocity = playerVelocityGetter.getPlayerMoveVelocity(player)
@@ -276,13 +276,13 @@ class RaytraceHandlerImpl: RaytraceHandler<RaytraceHandlerImpl.RaytraceConfig, E
276276
// Get regions from entityLookup, then loop over each chunk to collect entities is 2x slower.
277277
for (entity in entities) {
278278
if (entity == player) continue
279-
val x = player.x - entity.x
280-
val z = player.z - entity.z
281-
val dist = x * x + z * z
279+
val dist = (player.x - entity.x).square() + (player.z - entity.z).square()
282280
if (dist > viewDistanceSquared) continue
283281

284-
val y = player.y - entity.y
285-
if (entity.isCurrentlyGlowing || config.visibleEntityTypes.contains(entity.type) || dist + y * y <= forceVisibleDistanceSquared) {
282+
if (entity.isCurrentlyGlowing
283+
|| config.visibleEntityTypes.contains(entity.type)
284+
|| dist + (player.y - entity.y).square() <= forceVisibleDistanceSquared
285+
) {
286286
userCullData.setCulled(entity.bukkitEntity, entity.id, false)
287287
continue
288288
}
@@ -414,9 +414,9 @@ class RaytraceHandlerImpl: RaytraceHandler<RaytraceHandlerImpl.RaytraceConfig, E
414414
val fromYAdj = from.y + adjY
415415
val fromZAdj = from.z + adjZ
416416

417-
var currX = Mth.floor(fromXAdj)
418-
var currY = Mth.floor(fromYAdj)
419-
var currZ = Mth.floor(fromZAdj)
417+
var currX = fromXAdj.floorI()
418+
var currY = fromYAdj.floorI()
419+
var currZ = fromZAdj.floorI()
420420

421421
val diffX = toXAdj - fromXAdj
422422
val diffY = toYAdj - fromYAdj

0 commit comments

Comments
 (0)