multiple lightboxes for luminous actors

Former-commit-id: 7ee7d962a9da07d6b1a7936ee19a7458f390bbbc
Former-commit-id: c5c83ec33ecaade54a73bcc211318ecd4a473182
This commit is contained in:
Song Minjae
2016-07-05 02:21:15 +09:00
parent 2e46df67a8
commit 76453c82c2
15 changed files with 22 additions and 30 deletions

View File

@@ -174,16 +174,17 @@ object LightmapRenderer {
Terrarum.game.actorContainer.forEach { it ->
if (it is Luminous && it is Visible) {
// put lanterns to the area the luminantBox is occupying
val lightBox = it.lightBox
val lightBoxX = it.hitbox.posX + lightBox.posX
val lightBoxY = it.hitbox.posY + lightBox.posY
val lightBoxW = lightBox.width
val lightBoxH = lightBox.height
for (y in lightBoxY.div(TSIZE).floorInt()
..lightBoxY.plus(lightBoxH).div(TSIZE).floorInt())
for (x in lightBoxX.div(TSIZE).floorInt()
..lightBoxX.plus(lightBoxW).div(TSIZE).floorInt())
lanternMap.add(Lantern(x, y, it.luminosity))
for (lightBox in it.lightBoxList) {
val lightBoxX = it.hitbox.posX + lightBox.posX
val lightBoxY = it.hitbox.posY + lightBox.posY
val lightBoxW = lightBox.width
val lightBoxH = lightBox.height
for (y in lightBoxY.div(TSIZE).floorInt()
..lightBoxY.plus(lightBoxH).div(TSIZE).floorInt())
for (x in lightBoxX.div(TSIZE).floorInt()
..lightBoxX.plus(lightBoxW).div(TSIZE).floorInt())
lanternMap.add(Lantern(x, y, it.luminosity))
}
}
}