From 622105a4e5e6ef5a38f8cbfe49ffc5531e673f31 Mon Sep 17 00:00:00 2001 From: paramat Date: Thu, 21 Aug 2014 05:05:59 +0100 Subject: [PATCH] Acacialeaf, needles nodes to represent all biomes. Add desert stone. Add volcanos. Parameters match watershed 0.5.0 --- README.txt | 2 +- init.lua | 51 ++++++++++++++++++++++---- nodes.lua | 26 ++++++++++++- textures/watershedmini_acacialeaf.png | Bin 0 -> 340 bytes textures/watershedmini_freshice.png | Bin 780 -> 0 bytes textures/watershedmini_needles.png | Bin 0 -> 860 bytes 6 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 textures/watershedmini_acacialeaf.png delete mode 100644 textures/watershedmini_freshice.png create mode 100644 textures/watershedmini_needles.png diff --git a/README.txt b/README.txt index 1632eab..1df627f 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -watershedmini 0.2.0 by paramat +watershedmini 0.2.1 by paramat For latest stable Minetest back to 0.4.8 Depends default Licenses: code WTFPL, textures CC BY-SA diff --git a/init.lua b/init.lua index 6a41e51..c26bbfa 100644 --- a/init.lua +++ b/init.lua @@ -1,8 +1,13 @@ --- watershedmini 0.2.0 by paramat +-- watershedmini 0.2.1 by paramat -- For latest stable Minetest and back to 0.4.8 -- Depends default -- License: code WTFPL, textures CC BY-SA +-- acacialeaf and needles to mark all biomes +-- desert stone added +-- volcanos added +-- double biome size to match watershed 0.5.0 + -- Parameters local ZOOM = 16 -- Must be 2^n. Reduce octaves to avoid spread of highest octave being < 1 @@ -21,6 +26,7 @@ local ATANAMP = 1.1 -- Arctan function amplitude, smaller = more and larger floa local BLENEXP = 2 -- Terrain blend exponent local TRIVER = -0.028 -- Densitybase threshold for river surface local TSTREAM = -0.004 -- Densitymid threshold for stream surface +local TLAVA = 2 -- Maximum densitybase threshold for lava, small because grad is non-linear local HITET = 0.35 -- High temperature threshold local LOTET = -0.35 -- Low .. @@ -77,7 +83,7 @@ local np_xlscale = { local np_temp = { offset = 0, scale = 1, - spread = {x=512/ZOOM, y=512/ZOOM, z=512/ZOOM}, + spread = {x=1024/ZOOM, y=1024/ZOOM, z=1024/ZOOM}, seed = 9130, octaves = 3, persist = 0.5 @@ -88,12 +94,23 @@ local np_temp = { local np_humid = { offset = 0, scale = 1, - spread = {x=512/ZOOM, y=512/ZOOM, z=512/ZOOM}, + spread = {x=1024/ZOOM, y=1024/ZOOM, z=1024/ZOOM}, seed = -55500, octaves = 3, persist = 0.5 } +-- 2D noise for magma surface + +local np_magma = { + offset = 0, + scale = 1, + spread = {x=128/ZOOM, y=128/ZOOM, z=128/ZOOM}, + seed = -13, + octaves = 2, + persist = 0.5 +} + -- Stuff dofile(minetest.get_modpath("watershedmini").."/nodes.lua") @@ -129,8 +146,11 @@ minetest.register_on_generated(function(minp, maxp, seed) local c_water = minetest.get_content_id("default:water_source") local c_sand = minetest.get_content_id("default:sand") local c_desand = minetest.get_content_id("default:desert_sand") + local c_destone = minetest.get_content_id("default:desert_stone") local c_snowblock = minetest.get_content_id("default:snowblock") local c_ice = minetest.get_content_id("default:ice") + local c_obsidian = minetest.get_content_id("default:obsidian") + local c_lava = minetest.get_content_id("default:lava_source") local c_freshwater = minetest.get_content_id("watershedmini:freshwater") local c_stone = minetest.get_content_id("watershedmini:stone") @@ -138,7 +158,9 @@ minetest.register_on_generated(function(minp, maxp, seed) local c_drygrass = minetest.get_content_id("watershedmini:drygrass") local c_icydirt = minetest.get_content_id("watershedmini:icydirt") local c_appleaf = minetest.get_content_id("watershedmini:appleleaf") + local c_needles = minetest.get_content_id("watershedmini:needles") local c_junleaf = minetest.get_content_id("watershedmini:jungleleaf") + local c_acaleaf = minetest.get_content_id("watershedmini:acacialeaf") -- perlinmap stuff local sidelen = x1 - x0 + 1 -- chunk sidelength local chulens = {x=sidelen, y=sidelen, z=sidelen} -- chunk dimensions @@ -152,6 +174,7 @@ minetest.register_on_generated(function(minp, maxp, seed) local nvals_mid = minetest.get_perlin_map(np_mid, chulens):get2dMap_flat(minposxz) local nvals_base = minetest.get_perlin_map(np_base, chulens):get2dMap_flat(minposxz) local nvals_xlscale = minetest.get_perlin_map(np_xlscale, chulens):get2dMap_flat(minposxz) + local nvals_magma = minetest.get_perlin_map(np_magma, chulens):get2dMap_flat(minposxz) -- mapgen loop local nixyz = 1 -- 3D and 2D perlinmap indexes @@ -167,6 +190,7 @@ minetest.register_on_generated(function(minp, maxp, seed) local n_absmid = math.abs(nvals_mid[nixz]) local n_absbase = math.abs(nvals_base[nixz]) local n_xlscale = nvals_xlscale[nixz] + local n_magma = nvals_magma[nixz] local n_invbase = (1 - n_absbase) local terblen = (math.max(n_invbase, 0)) ^ BLENEXP @@ -179,6 +203,7 @@ minetest.register_on_generated(function(minp, maxp, seed) local triver = TRIVER * n_absbase -- river threshold local tstream = TSTREAM * (1 - n_absmid) -- stream threshold + local tlava = TLAVA * (1 - n_magma ^ 4 * terblen ^ 16 * 0.6) -- lava threshold local biome = false -- select biome for node if n_temp < LOTET then @@ -207,13 +232,25 @@ minetest.register_on_generated(function(minp, maxp, seed) end end - if density >= 0 then -- ground + if densitybase >= tlava then -- lava + if densitybase >= 0 then + data[vi] = c_lava + end + elseif densitybase >= tlava - math.min(0.6 + density * 6, 0.6) and density < 0 then -- obsidian + data[vi] = c_obsidian + elseif density >= 0 then -- ground if y < YWAT then data[vi] = c_sand - elseif biome == 2 or biome == 3 then + elseif biome == 2 then data[vi] = c_snowblock + elseif biome == 3 then + data[vi] = c_needles elseif grad < -1 then - data[vi] = c_stone + if biome == 7 then + data[vi] = c_destone + else + data[vi] = c_stone + end elseif biome == 1 then data[vi] = c_icydirt elseif biome == 4 then @@ -225,7 +262,7 @@ minetest.register_on_generated(function(minp, maxp, seed) elseif biome == 7 then data[vi] = c_desand elseif biome == 8 then - data[vi] = c_drygrass + data[vi] = c_acaleaf elseif biome == 9 then data[vi] = c_junleaf end diff --git a/nodes.lua b/nodes.lua index b7bedd1..a83cc88 100644 --- a/nodes.lua +++ b/nodes.lua @@ -14,7 +14,29 @@ minetest.register_node("watershedmini:appleleaf", { tiles = {"default_leaves.png"}, paramtype = "light", is_ground_content = false, - groups = {snappy=3, flammable=2, leaves=1}, + groups = {snappy=3}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("watershedmini:needles", { + description = "Pine needles", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"watershedmini_needles.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy=3}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("watershedmini:acacialeaf", { + description = "Acacia leaves", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tiles = {"watershedmini_acacialeaf.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy=3}, sounds = default.node_sound_leaves_defaults(), }) @@ -25,7 +47,7 @@ minetest.register_node("watershedmini:jungleleaf", { tiles = {"default_jungleleaves.png"}, paramtype = "light", is_ground_content = false, - groups = {snappy=3, flammable=2, leaves=1}, + groups = {snappy=3}, sounds = default.node_sound_leaves_defaults(), }) diff --git a/textures/watershedmini_acacialeaf.png b/textures/watershedmini_acacialeaf.png new file mode 100644 index 0000000000000000000000000000000000000000..08cf3998c0c8d47ae63ddcf51878b725faec497e GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPggK7CvSv7MGoE(}6-)JY5_^EKaYT zq$|{HAkZp5w`r}@W3A+()`T67MU&?&INtG?!?b|aN0qPlkkCfaxvjEY%GsaHZ~p!E z_O#UcjJZW$-cFEQzH*K7Gd=e}*AKQX63bWSx1V8iWhgj&bO&R@nG@-ecP)I6_ZLr3 zmJAkH6TB}~XH`e)9ZiOYlNGjEMROm_2y}Zas;e9j^6`Cdsh2V9%#VM6<+!Zj&n|JB z*ml6e*Gxm}b;YgaA^SgeEzw^mY*JUQ@ICYJ`Yzrsl~&#^x%0J7o*eJ?B(l$A{eC`g e>b@O5A6QpKmzL{@-S7eWkHOQ`&t;ucLK6V4LxIx( literal 0 HcmV?d00001 diff --git a/textures/watershedmini_freshice.png b/textures/watershedmini_freshice.png deleted file mode 100644 index bc1c285da43d381f354e48ea62bf03a390873d42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2i^n- z0x$)5d{4pv00N9jL_t(I%RQ4#ZyZGshM(&B?g2z>oK09`giw6q;GhJ{AdoEo%?R;F zA`TEt#KCKh;gs0PCQ5dJXs4&=qq{f^>yrA^Ri&z@-d7%7L{(L?MA*g{!MBbNYD*s= zH4t@rMy9`Q7~eWXgs(n!w7z50IF5E4)>_60-yaBFKad*GFfa@QWo5}ri-=&#%90vb ztSun~PVdz$)>H9b8F>7xK~TmBKYWpsWf@Un{-IFY3e)+PF+%5C&JJtNua$A=xmzo% zF2Pz$S>zn;IDUDd41GtQ!1X^pZ8uaZ{_Vi3RieVlzHqs&Ffsu{;QhQ-+`^bsdykQc$zp8@QE|@k-Dkp|>k^n4m@!TY133M%;QT5O z74o9wWMBCCuLj>b5+j@));zgVHjU$WE|ir;e!7g>^#c!PBNwX*-#W_5a>zkBE9dBmQFW4mb^nu?}Tg+d4$Bv`-}*dTVS`8WI|7A)Eoh$vE3 zQDsw9r?s8NV|%dYap!Sa1c|dhNBYh=g7a7(lm+j5E+>-#O{clZ3bM3dJoH(-m&vQc zDLakYlmJM8QK-3H<=o~KeIE`2m!E$;{q#C3IR5rXk6Z`2s!8jHV9!C%OO$Hiq_3qD zSjf?kw$nVB49F_Ux>EeQT3y~NOMdz8EL3$%XBa#k4;b$C=vvJncJX~1!GH2TOLS2- zh*YuvBxG^BgH_AXX~LW37N!Np$fk7+jCTcXWO4i`#z@kxHz_f6oPeRfoF1clOad3$K$S`5nxFHvB`9nQEN@q2h)@=uc!>j{`er) zzu$N6RJ?B*41r{N+M0L`o- z>h~bAXavljzZYDj!nB2;S`_HWqq*mD^=^&p?f_V3cW+A~mu!=v>XymSXP#GB=ZSt0 z`^a2(v|6yu6+cADS>ReEo{ej?lwC*s#aL%$jj$vdn7^2bec$0Da^9p{gnvHN^-Yc% z^)Q7X+!l2EeagHhN0Vd)tAUG+pwxG>^bE;A5%lF@W m{J^nI0N&0r4xdG6Q}QphLRcP}nEqP;0000