From 864b6cd5a0bc3cc4f4778105c3696ec07ad3586b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 31 Jul 2019 01:38:27 +0900 Subject: [PATCH] tree impl test; falling blocks won't destroy transparent blocks --- assets/graphics/fonts/7x13_Tamzen7x14b.tga | 2 +- assets/hicolour.frag | 7 ++++--- assets/mods/basegame/blocks/64.tga | 2 +- assets/mods/basegame/blocks/65.tga | 3 +++ assets/mods/basegame/blocks/66.tga | 3 +++ assets/mods/basegame/blocks/67.tga | 3 +++ assets/mods/basegame/blocks/blocks.csv | 8 ++++---- src/net/torvald/terrarum/DefaultConfig.kt | 2 +- src/net/torvald/terrarum/PostProcessor.kt | 5 +++-- src/net/torvald/terrarum/blockproperties/BlockProp.kt | 4 ++++ .../terrarum/modulebasegame/gameworld/WorldSimulator.kt | 6 +++--- src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt | 3 ++- 12 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 assets/mods/basegame/blocks/65.tga create mode 100644 assets/mods/basegame/blocks/66.tga create mode 100644 assets/mods/basegame/blocks/67.tga diff --git a/assets/graphics/fonts/7x13_Tamzen7x14b.tga b/assets/graphics/fonts/7x13_Tamzen7x14b.tga index 13a03775b..74ef97d20 100644 --- a/assets/graphics/fonts/7x13_Tamzen7x14b.tga +++ b/assets/graphics/fonts/7x13_Tamzen7x14b.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:774287193d4e37023f2020484e0afbdd6c1c6b9ee31b21aa82099d7d53b49b96 +oid sha256:92c3a3ccf3803c9aca606f031e0c52eb6d679ed17f3a37524aeeaf8f9bd37990 size 93228 diff --git a/assets/hicolour.frag b/assets/hicolour.frag index ab971faa3..49a673f06 100644 --- a/assets/hicolour.frag +++ b/assets/hicolour.frag @@ -10,9 +10,9 @@ uniform sampler2D u_texture; // "steps" of R, G and B. Must be integer && equal or greater than 2 -uniform float rcount = 64.0; +uniform float rcount = 32.0; uniform float gcount = 64.0; -uniform float bcount = 64.0; +uniform float bcount = 32.0; uniform float acount = 1.0; int bayer[14 * 14] = int[](131,187,8,78,50,18,134,89,155,102,29,95,184,73,22,86,113,171,142,105,34,166,9,60,151,128,40,110,168,137,45,28,64,188,82,54,124,189,80,13,156,56,7,61,186,121,154,6,108,177,24,100,38,176,93,123,83,148,96,17,88,133,44,145,69,161,139,72,30,181,115,27,163,47,178,65,164,14,120,48,5,127,153,52,190,58,126,81,116,21,106,77,173,92,191,63,99,12,76,144,4,185,37,149,192,39,135,23,117,31,170,132,35,172,103,66,129,79,3,97,57,159,70,141,53,94,114,20,49,158,19,146,169,122,183,11,104,180,2,165,152,87,182,118,91,42,67,25,84,147,43,85,125,68,16,136,71,10,193,112,160,138,51,111,162,26,194,46,174,107,41,143,33,74,1,101,195,15,75,140,109,90,32,62,157,98,167,119,179,59,36,130,175,55,0,150); @@ -53,6 +53,7 @@ void main(void) { vec2 entry = mod(gl_FragCoord.xy, vec2(bayerSize, bayerSize)); - gl_FragColor = nearestColour(inColor + spread * (bayer[int(entry.y) * int(bayerSize) + int(entry.x)] / bayerDivider - 0.5)); + vec4 outColor = nearestColour(inColor + spread * (bayer[int(entry.y) * int(bayerSize) + int(entry.x)] / bayerDivider - 0.5)); + gl_FragColor = outColor; } \ No newline at end of file diff --git a/assets/mods/basegame/blocks/64.tga b/assets/mods/basegame/blocks/64.tga index 993ccf41f..8c9cd214b 100644 --- a/assets/mods/basegame/blocks/64.tga +++ b/assets/mods/basegame/blocks/64.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a1181d8c968bcf2d40086a7cfb4fb45427793ea21916794f87ef30295581fa39 +oid sha256:3e39c6e70247b43b8e453de3dc63ea38d06b12be381f288fa27b7ff2be4c704a size 50220 diff --git a/assets/mods/basegame/blocks/65.tga b/assets/mods/basegame/blocks/65.tga new file mode 100644 index 000000000..9efcc8f4b --- /dev/null +++ b/assets/mods/basegame/blocks/65.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d529c93e9b7325fc39087bbb3098f646ede7c6bc387cf8f9650746aeb2e18f +size 50220 diff --git a/assets/mods/basegame/blocks/66.tga b/assets/mods/basegame/blocks/66.tga new file mode 100644 index 000000000..c46d60bf1 --- /dev/null +++ b/assets/mods/basegame/blocks/66.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aedcb90e994e93dd1cc63db5c9ec6e9c66a96b72943ceebf24ecf1da96bbd6ba +size 50220 diff --git a/assets/mods/basegame/blocks/67.tga b/assets/mods/basegame/blocks/67.tga new file mode 100644 index 000000000..7d8afbfdd --- /dev/null +++ b/assets/mods/basegame/blocks/67.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:769635f83973904c797553a21c390442db4e24ac77b52e24ae56ff4b62ee7a8b +size 50220 diff --git a/assets/mods/basegame/blocks/blocks.csv b/assets/mods/basegame/blocks/blocks.csv index d4f8b48b6..46d25ddcc 100644 --- a/assets/mods/basegame/blocks/blocks.csv +++ b/assets/mods/basegame/blocks/blocks.csv @@ -18,10 +18,10 @@ "49";"49";"BLOCK_PLANK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" "50";"50";"BLOCK_PLANK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" "51";"51";"BLOCK_PLANK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" -"64";"64";"BLOCK_TRUNK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"1";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" -"65";"65";"BLOCK_TRUNK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" -"66";"66";"BLOCK_TRUNK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" -"67";"67";"BLOCK_TRUNK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" +"64";"64";"BLOCK_TRUNK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"0";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" +"65";"65";"BLOCK_TRUNK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"0";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" +"66";"66";"BLOCK_TRUNK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"0";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" +"67";"67";"BLOCK_TRUNK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"0";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" "80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" "81";"81";"BLOCK_SAND_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" "82";"82";"BLOCK_SAND_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A" diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index 8020e5eaf..bb439670b 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -101,7 +101,7 @@ object DefaultConfig { // "fancy" graphics settings - jsonObject.addProperty("fxdither", true) + jsonObject.addProperty("fxretro", false) //jsonObject.addProperty("fx3dlut", false) diff --git a/src/net/torvald/terrarum/PostProcessor.kt b/src/net/torvald/terrarum/PostProcessor.kt index d54f3671f..e642521b9 100644 --- a/src/net/torvald/terrarum/PostProcessor.kt +++ b/src/net/torvald/terrarum/PostProcessor.kt @@ -39,7 +39,7 @@ object PostProcessor : Disposable { private val debugUI = BasicDebugInfoWindow() - private var functionRowHelper = Texture(Gdx.files.internal("assets/graphics/function_row_help.png")) + private val functionRowHelper = Texture(Gdx.files.internal("assets/graphics/function_row_help.png")) init { AppLoader.disposableSingletonsPool.add(this) @@ -48,6 +48,7 @@ object PostProcessor : Disposable { override fun dispose() { batch.dispose() shapeRenderer.dispose() + functionRowHelper.dispose() try { lutTex.dispose() } @@ -117,7 +118,7 @@ object PostProcessor : Disposable { private fun postShader(projMat: Matrix4, fbo: FrameBuffer) { val shader: ShaderProgram? = - if (AppLoader.getConfigBoolean("fxdither")) + if (AppLoader.getConfigBoolean("fxretro")) AppLoader.shaderHicolour else AppLoader.shaderPassthruRGB diff --git a/src/net/torvald/terrarum/blockproperties/BlockProp.kt b/src/net/torvald/terrarum/blockproperties/BlockProp.kt index 8665ad7d3..3f89e2258 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockProp.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockProp.kt @@ -24,6 +24,10 @@ class BlockProp { var viscosity: Int = 0 var colour: Int = 0 + /** isSolid is NOT SAME AS !isOpaqueis + * Like, don't ever use this vars to tell this block should be removed by water or something, + * because PLANTS ARE ACTORS, TREES ARE BLOCKS, stupid myself! + */ var isSolid: Boolean = false //var isClear: Boolean = false var isPlatform: Boolean = false diff --git a/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt index 7ec1d1797..bd9569cd1 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameworld/WorldSimulator.kt @@ -194,7 +194,7 @@ object WorldSimulator { for (y in updateYTo downTo updateYFrom) { val currentTile = world.getTileFromTerrain(x, y) val prop = BlockCodex[currentTile] - val isSolid = prop.isSolid + val isAir = currentTile == Block.AIR val support = prop.maxSupport val isFallable = support != -1 @@ -211,10 +211,10 @@ object WorldSimulator { fallableStackProcessed = true } - else if (isSolid) { + else if (!isAir) { fallDownCounter = 0 } - else if (!isSolid && !isFallable && fallDownCounter < FALLABLE_MAX_FALL_SPEED) { + else if (!isFallable && fallDownCounter < FALLABLE_MAX_FALL_SPEED) { fallDownCounter += 1 } } diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index 1f7e8f4ab..229238a02 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -160,7 +160,8 @@ internal object BlocksDrawer { private val connectLut16 = intArrayOf(0,2,0,2,4,6,4,6,0,2,0,2,4,6,4,6,8,10,8,10,12,14,12,14,8,10,8,10,12,14,12,14,0,2,0,2,4,6,4,6,0,2,0,2,4,6,4,6,8,10,8,10,12,14,12,14,8,10,8,10,12,14,12,14,1,3,1,3,5,7,5,7,1,3,1,3,5,7,5,7,9,11,9,11,13,15,13,15,9,11,9,11,13,15,13,15,1,3,1,3,5,7,5,7,1,3,1,3,5,7,5,7,9,11,9,11,13,15,13,15,9,11,9,11,13,15,13,15,0,2,0,2,4,6,4,6,0,2,0,2,4,6,4,6,8,10,8,10,12,14,12,14,8,10,8,10,12,14,12,14,0,2,0,2,4,6,4,6,0,2,0,2,4,6,4,6,8,10,8,10,12,14,12,14,8,10,8,10,12,14,12,14,1,3,1,3,5,7,5,7,1,3,1,3,5,7,5,7,9,11,9,11,13,15,13,15,9,11,9,11,13,15,13,15,1,3,1,3,5,7,5,7,1,3,1,3,5,7,5,7,9,11,9,11,13,15,13,15,9,11,9,11,13,15,13,15) init { - assert(256 == connectLut47.size && 256 == connectLut16.size) + assert(256 == connectLut47.size) + assert(256 == connectLut16.size) } /**