fluidmap won't have errenous behaviour at the world edge; tga alpha fix

This commit is contained in:
Minjae Song
2018-12-19 01:53:09 +09:00
parent 23d557b6b2
commit 597e1acee4
6 changed files with 18 additions and 7 deletions

View File

@@ -4,13 +4,15 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.faction.FactionCodex
import net.torvald.terrarum.gameworld.BlockAddress
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.fmod
/**
* Created by minjaesong on 2016-03-27.
*/
object LandUtil {
fun getBlockAddr(world: GameWorld, x: Int, y: Int): BlockAddress =
(world.width * y).toLong() + x
// coercing and fmod-ing follows ROUNDWORLD rule
(world.width * y.coerceIn(0, world.height - 1)).toLong() + x.fmod(world.width)
fun resolveBlockAddr(world: GameWorld, t: BlockAddress): Pair<Int, Int> =
Pair((t % world.width).toInt(), (t / world.width).toInt())
@@ -26,4 +28,6 @@ object LandUtil {
Terrarum.ingame!!.getActorByID(id)
else
FactionCodex.getFactionByID(id)
}