Handle snow lighting special case

This commit is contained in:
Mike Primm 2011-07-19 17:45:05 -05:00
parent 3ef3f6cb61
commit 913a92a010

View File

@ -102,21 +102,28 @@ public class IsoHDPerspective implements HDPerspective {
*/ */
public final int getSkyLightLevel() { public final int getSkyLightLevel() {
int ll; int ll;
BlockStep ls = mapiter.unstepPosition(); BlockStep ls;
/* Some blocks are light blocking, but not fully blocking - this sucks */ /* Some blocks are light blocking, but not fully blocking - this sucks */
switch(mapiter.getBlockTypeID()) { switch(mapiter.getBlockTypeID()) {
case 53: /* Wood stairs */ case 53: /* Wood stairs */
case 44: /* Slabs */ case 44: /* Slabs */
case 67: /* Cobblestone stairs */ case 67: /* Cobblestone stairs */
ls = mapiter.unstepPosition();
mapiter.stepPosition(BlockStep.Y_PLUS); /* Look above */ mapiter.stepPosition(BlockStep.Y_PLUS); /* Look above */
ll = mapiter.getBlockSkyLight(); ll = mapiter.getBlockSkyLight();
mapiter.stepPosition(BlockStep.Y_MINUS); mapiter.stepPosition(BlockStep.Y_MINUS);
mapiter.stepPosition(ls);
break; break;
default: case 78: /* Snow */
ll = mapiter.getBlockSkyLight(); ll = mapiter.getBlockSkyLight();
break; break;
} default:
ls = mapiter.unstepPosition();
ll = mapiter.getBlockSkyLight();
mapiter.stepPosition(ls); mapiter.stepPosition(ls);
break;
}
return ll; return ll;
} }
/** /**
@ -124,21 +131,27 @@ public class IsoHDPerspective implements HDPerspective {
*/ */
public final int getEmittedLightLevel() { public final int getEmittedLightLevel() {
int ll; int ll;
BlockStep ls = mapiter.unstepPosition(); BlockStep ls;
/* Some blocks are light blocking, but not fully blocking - this sucks */ /* Some blocks are light blocking, but not fully blocking - this sucks */
switch(mapiter.getBlockTypeID()) { switch(mapiter.getBlockTypeID()) {
case 53: /* Wood stairs */ case 53: /* Wood stairs */
case 44: /* Slabs */ case 44: /* Slabs */
case 67: /* Cobblestone stairs */ case 67: /* Cobblestone stairs */
ls = mapiter.unstepPosition();
mapiter.stepPosition(BlockStep.Y_PLUS); /* Look above */ mapiter.stepPosition(BlockStep.Y_PLUS); /* Look above */
ll = mapiter.getBlockEmittedLight(); ll = mapiter.getBlockEmittedLight();
mapiter.stepPosition(BlockStep.Y_MINUS); mapiter.stepPosition(BlockStep.Y_MINUS);
mapiter.stepPosition(ls);
break; break;
default: case 78: /* Snow */
ll = mapiter.getBlockEmittedLight(); ll = mapiter.getBlockEmittedLight();
break; break;
} default:
ls = mapiter.unstepPosition();
ll = mapiter.getBlockEmittedLight();
mapiter.stepPosition(ls); mapiter.stepPosition(ls);
break;
}
return ll; return ll;
} }
/** /**