|
@@ -280,28 +280,34 @@ export function toggleTiles( tile, renderer ) {
|
|
const isUsed = isUsedThisFrame( tile, frameCount );
|
|
const isUsed = isUsedThisFrame( tile, frameCount );
|
|
if ( isUsed || tile.__usedLastFrame ) {
|
|
if ( isUsed || tile.__usedLastFrame ) {
|
|
|
|
|
|
- if ( ! isUsed ) {
|
|
|
|
|
|
+ let setActive = false;
|
|
|
|
+ let setVisible = false;
|
|
|
|
+ if ( isUsed ) {
|
|
|
|
|
|
- if ( ! tile.__contentEmpty && tile.__loadingState === LOADED ) {
|
|
|
|
|
|
+ // enable visibility if active due to shadows
|
|
|
|
+ setActive = tile.__active;
|
|
|
|
+ setVisible = tile.__active || tile.__visible;
|
|
|
|
|
|
- renderer.setTileVisible( tile, false );
|
|
|
|
- renderer.setTileActive( tile, false );
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
|
- tile.__usedLastFrame = false;
|
|
|
|
|
|
+ if ( ! tile.__contentEmpty && tile.__loadingState === LOADED ) {
|
|
|
|
+
|
|
|
|
+ if ( tile.__wasSetActive !== setActive ) {
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ renderer.setTileVisible( tile, setActive );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
- if ( ! tile.__contentEmpty && tile.__loadingState === LOADED ) {
|
|
|
|
|
|
+ if ( tile.__wasSetVisible !== setVisible ) {
|
|
|
|
|
|
- // enable visibility if active due to shadows
|
|
|
|
- renderer.setTileActive( tile, tile.__active );
|
|
|
|
- renderer.setTileVisible( tile, tile.__active || tile.__visible );
|
|
|
|
|
|
+ renderer.setTileActive( tile, setVisible );
|
|
|
|
|
|
}
|
|
}
|
|
- tile.__usedLastFrame = true;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ tile.__wasSetActive = setActive;
|
|
|
|
+ tile.__wasSetVisible = setVisible;
|
|
|
|
+ tile.__usedLastFrame = isUsed;
|
|
|
|
|
|
const children = tile.children;
|
|
const children = tile.children;
|
|
for ( let i = 0, l = children.length; i < l; i ++ ) {
|
|
for ( let i = 0, l = children.length; i < l; i ++ ) {
|