From 8616ce6a0bfd4a6c31d4f6dded4137ad9eb2ba2f Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Tue, 13 Mar 2018 21:55:58 +0500 Subject: Optimized light parsing --- src/World.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/World.cpp') diff --git a/src/World.cpp b/src/World.cpp index 75e0b3f..f9eb560 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -416,7 +416,12 @@ unsigned char World::GetBlockLight(Vector pos) if (!section) return 0; - Vector directions[] = { + return GetBlockLight(blockPos, section, xp, xn, yp, yn, zp, zn); +} + +unsigned char World::GetBlockLight(const Vector &blockPos, const Section *section, const Section *xp, const Section *xn, const Section *yp, const Section *yn, const Section *zp, const Section *zn) +{ + const Vector directions[] = { Vector(0,0,0), Vector(1,0,0), Vector(-1,0,0), @@ -447,7 +452,7 @@ unsigned char World::GetBlockLight(Vector pos) dirValue = zp->GetBlockLight(Vector(vec.x, vec.y, 0)); } else dirValue = section->GetBlockLight(vec); - + value = _max(value, dirValue); } return value; @@ -472,7 +477,12 @@ unsigned char World::GetBlockSkyLight(Vector pos) if (!section) return 0; - Vector directions[] = { + return GetBlockSkyLight(blockPos, section, xp, xn, yp, yn, zp, zn); +} + +unsigned char World::GetBlockSkyLight(const Vector &blockPos, const Section *section, const Section *xp, const Section *xn, const Section *yp, const Section *yn, const Section *zp, const Section *zn) +{ + const Vector directions[] = { Vector(0,0,0), Vector(1,0,0), Vector(-1,0,0), @@ -508,4 +518,4 @@ unsigned char World::GetBlockSkyLight(Vector pos) value = _max(value, dirValue); } return value; -} \ No newline at end of file +} -- cgit v1.2.3