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