mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-19 06:54:05 +09:00
ore autotiling and tile randomiser to use BlockAddr
This commit is contained in:
@@ -9,6 +9,7 @@ import net.torvald.terrarum.gameitems.isOre
|
|||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
import net.torvald.terrarum.gameworld.fmod
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import net.torvald.terrarum.serialise.toBig64
|
import net.torvald.terrarum.serialise.toBig64
|
||||||
import net.torvald.terrarum.toInt
|
import net.torvald.terrarum.toInt
|
||||||
import net.torvald.terrarum.utils.OrePlacement
|
import net.torvald.terrarum.utils.OrePlacement
|
||||||
@@ -33,8 +34,7 @@ class OregenAutotiling(world: GameWorld, seed: Long, val tilingModes: HashMap<It
|
|||||||
Worldgen.threadExecutor.join()
|
Worldgen.threadExecutor.join()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getHashCoord(x: Int, y: Int, mod: Int) =
|
private fun getHashCoord(x: Int, y: Int, mod: Int) = (XXHash64.hash(LandUtil.getBlockAddr(world, x, y).toBig64(), mod.toLong()) fmod mod.toLong()).toInt()
|
||||||
(XXHash64.hash((y.toLong().shl(32) or x.toLong().and(0xFFFFFFFF)).toBig64(), mod.toLong()).and(0x7FFFFFFFFFFFFFFFL) % mod).toInt()
|
|
||||||
|
|
||||||
private fun draw(x: Int) {
|
private fun draw(x: Int) {
|
||||||
for (y in 0 until world.height) {
|
for (y in 0 until world.height) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import net.torvald.terrarum.gamecontroller.KeyToggler
|
|||||||
import net.torvald.terrarum.gameitems.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
import net.torvald.terrarum.gameworld.fmod
|
||||||
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import net.torvald.terrarum.serialise.toBig64
|
import net.torvald.terrarum.serialise.toBig64
|
||||||
import net.torvald.terrarum.worlddrawer.CreateTileAtlas.Companion.WALL_OVERLAY_COLOUR
|
import net.torvald.terrarum.worlddrawer.CreateTileAtlas.Companion.WALL_OVERLAY_COLOUR
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
@@ -306,15 +307,7 @@ internal object BlocksDrawer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun getHashCoord(x: Int, y: Int, mod: Int) =
|
private fun getHashCoord(x: Int, y: Int, mod: Int) = (XXHash64.hash(LandUtil.getBlockAddr(world, x, y).toBig64(), mod.toLong()) fmod mod.toLong()).toInt()
|
||||||
(XXHash64.hash(
|
|
||||||
(
|
|
||||||
y.fmod(world.height).toLong().shl(32) or
|
|
||||||
x.fmod(world.width).toLong().and(0xFFFFFFFF)
|
|
||||||
).toBig64(), mod.toLong()
|
|
||||||
).and(0x7FFFFFFFFFFFFFFFL) % mod
|
|
||||||
).toInt()
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Autotiling; writes to buffer. Actual draw code must be called after this operation.
|
* Autotiling; writes to buffer. Actual draw code must be called after this operation.
|
||||||
|
|||||||
Reference in New Issue
Block a user