From 796914fc470b33a9df739c12b99efff42ed537d9 Mon Sep 17 00:00:00 2001 From: HeroOfTheWinds Date: Wed, 18 Jun 2014 14:24:04 -1000 Subject: [PATCH] Version 0.2 Beta Preliminary release for v. 0.2. New glow crystal texture, stalagmite generation added. --- init.lua | 77 +++++++++++++----- textures/caverealms_glow_crystal.png | Bin 472 -> 735 bytes textures/caverealms_grass.png | Bin 759 -> 0 bytes textures/caverealms_moss.png | Bin 0 -> 947 bytes ...rass_side.png => caverealms_moss_side.png} | Bin 5 files changed, 56 insertions(+), 21 deletions(-) delete mode 100644 textures/caverealms_grass.png create mode 100644 textures/caverealms_moss.png rename textures/{caverealms_grass_side.png => caverealms_moss_side.png} (100%) diff --git a/init.lua b/init.lua index 50063dd..e180289 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ --- caverealms 0.1.0 by HeroOfTheWinds +-- caverealms 0.1.1 by HeroOfTheWinds -- For latest stable Minetest and back to 0.4.8 -- Depends default -- License: code WTFPL @@ -22,11 +22,11 @@ local DIRTHR = 0.04 -- Dirt density threshold local STOTHR = 0.08 -- Stone density threshold local STABLE = 2 -- Minimum number of stacked stone nodes in column for dirt / sand on top -local STALAG = 0.02 --chance of stalagmites +local STAGCHA = 0.002 --chance of stalagmites local STALAC = 0.04 --chance of stalactites local H_LAG = 15 --max height for stalagmites local H_LAC = 20 --...stalactites -local CRYSTAL = 0.01 --chance of glow crystal formations +local CRYSTAL = 0.007 --chance of glow crystal formations local H_CRY = 6 --max height of glow crystals local GEMCHA = 0.03 --chance of small glow gems @@ -76,7 +76,7 @@ minetest.register_node("caverealms:glow_crystal", { tiles = {"caverealms_glow_crystal.png"}, is_ground_content = true, groups = {cracky=3}, - --sounds = "default_break_glass.1.ogg", --broken + sounds = default.node_sound_glass_defaults(), light_source = 13, paramtype = "light", use_texture_alpha = true, @@ -90,11 +90,9 @@ minetest.register_node("caverealms:glow_ore", { tiles = {"caverealms_glow_ore.png"}, is_ground_content = true, groups = {cracky=2}, - --sounds = "default_break_glass.1.ogg", --broken + sounds = default.node_sound_glass_defaults(), light_source = 10, paramtype = "light", - --use_texture_alpha = true, - --drawtype = "allfaces_optional", }) --glowing crystal @@ -105,7 +103,7 @@ minetest.register_node("caverealms:glow_gem", { wield_image = "caverealms_glow_gem.png", is_ground_content = true, groups = {cracky=3, oddly_breakable_by_hand=1}, - --sounds = "default_break_glass.1.ogg", --broken + sounds = default.node_sound_glass_defaults(), light_source = 11, paramtype = "light", drawtype = "plantlike", @@ -117,10 +115,10 @@ minetest.register_node("caverealms:glow_gem", { fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) ---cave dirt_with_grass - bluish? -minetest.register_node("caverealms:dirt_with_grass", { +--cave mossy cobble - bluish? +minetest.register_node("caverealms:stone_with_moss", { description = "Cave Dirt with Grass", - tiles = {"caverealms_grass.png", "default_dirt.png", "default_dirt.png^caverealms_grass_side.png"}, + tiles = {"default_cobble.png^caverealms_moss.png", "default_cobble.png", "default_cobble.png^caverealms_moss_side.png"}, is_ground_content = true, groups = {crumbly=3,soil=1}, drop = 'default:dirt', @@ -130,6 +128,39 @@ minetest.register_node("caverealms:dirt_with_grass", { }) --cave plants +--stalagmite spawner +function caverealms:stalagmite(x,y,z, area, data) + --contest ids + local c_stone = minetest.get_content_id("default:stone") + + local top = math.random(6,H_LAG) --grab a random height for the stalagmite + for j = 0, top do --y + for k = -3, 3 do + for l = -3, 3 do + if j == 0 then + if k*k + l*l <= 9 then + local vi = area:index(x+k, y+j, z+l-3) + data[vi] = c_stone + end + elseif j <= top/5 then + if k*k + l*l <= 4 then + local vi = area:index(x+k, y+j, z+l-3) + data[vi] = c_stone + end + elseif j <= top/5 * 3 then + if k*k + l*l <= 1 then + local vi = area:index(x+k, y+j, z+l-3) + data[vi] = c_stone + end + else + local vi = area:index(x, y+j, z-3) + data[vi] = c_stone + end + end + end + end +end + --glowing crystal stalagmite spawner function caverealms:crystal_stalagmite(x, y, z, area, data) --content IDs @@ -141,7 +172,7 @@ function caverealms:crystal_stalagmite(x, y, z, area, data) for l = -2, 2 do --z if j <= math.ceil(H_CRY / 4) then --base if k*k + l*l <= 4 then --make a circle - local vi = area:index(x+k, y+j, z+l) + local vi = area:index(x+k, y+j, z+l-2) if math.random(3) == 1 then data[vi] = c_crystal else @@ -152,14 +183,14 @@ function caverealms:crystal_stalagmite(x, y, z, area, data) if k >= -1 and k <= 1 then if l >= -1 and l <= 1 then if j <= H_CRY - 2 then - local vi = area:index(x+k, y+j, z+l) + local vi = area:index(x+k, y+j, z+l-2) if math.random(3) <= 2 then data[vi] = c_crystal else data[vi] = c_crystore end else - local vi = area:index(x, y+j, z) + local vi = area:index(x, y+j, z-2) data[vi] = c_crystal end end @@ -207,10 +238,10 @@ minetest.register_on_generated(function(minp, maxp, seed) local c_air = minetest.get_content_id("air") local c_crystal = minetest.get_content_id("caverealms:glow_crystal") local c_gem = minetest.get_content_id("caverealms:glow_gem") - local c_grass = minetest.get_content_id("caverealms:dirt_with_grass") + local c_moss = minetest.get_content_id("caverealms:stone_with_moss") --some mandatory values - local sidelen = x1 - x0 + 1 --usually equals 80 + local sidelen = x1 - x0 + 1 --usually equals 80 with default mapgen values. Always a multiple of 16. local chulens = {x=sidelen, y=sidelen, z=sidelen} --position table to pass to get3dMap_flat local minposxyz = {x=x0, y=y0, z=z0} local minposxz = {x=x0, y=z0} @@ -256,19 +287,23 @@ minetest.register_on_generated(function(minp, maxp, seed) local density = nvals_cave[nixyz] - grad --how dense is the emptiness? if density < 0 and density > -0.7 then -- if cavern "shell" data[vi] = c_air --make emptiness - if y < cavemid and density < STOTHR and stable[si] <= STABLE then + if density < STOTHR and stable[si] <= STABLE then dirt[si] = dirt[si] + 1 else stable[si] = stable[si] + 1 end - elseif y < cavemid and dirt[si] >= 1 then -- node above surface + elseif dirt[si] >= 1 then -- node above surface --place dirt on floor, add plants - data[vi] = c_grass + data[vi] = c_moss --on random chance, place glow crystal formations if math.random() <= CRYSTAL then caverealms:crystal_stalagmite(x, y, z, area, data) end + --randomly place stalagmites + if math.random() <= STAGCHA then + caverealms:stalagmite(x, y, z, area, data) + end --randomly place glow gems if math.random() < GEMCHA then local gi = area:index(x,y+1,z) @@ -282,9 +317,9 @@ minetest.register_on_generated(function(minp, maxp, seed) nixz = nixz + 1 --increment the 2D index vi = vi + 1 --increment the area index end - nixz = nixz - 80 --shift the 2D index down a layer + nixz = nixz - sidelen --shift the 2D index down a layer end - nixz = nixz + 80 --shift the 2D index up a layer + nixz = nixz + sidelen --shift the 2D index up a layer end --write these changes to the world diff --git a/textures/caverealms_glow_crystal.png b/textures/caverealms_glow_crystal.png index 0b748549e6b58444d7ff83cffb334a3126688b76..63ebb5cb5ee16ad2f8c350267dd4c3c5662be215 100644 GIT binary patch delta 665 zcmV;K0%rZ#1K$OZDlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^t~00(u?TPuG8LrFwIR5;6JlTAGQ{cEL%-g~Nw)B{$D3MMh}dT|m5qPU067wTMATF;E1_njRfKAnGM7BAmG z96%DzuP9XPnJ+d(^{|rZ+jUXcbhF>zf8Z(Yh>z!Acp4fW2atbFY;mCiIS;n>VU*Yg zo zzH8CDzM#0RFdaR`ZvzU@EQgh&kuC^H)@vh4O~l4-3)9iu{IW@<8pJ_a)Q=TOxR6z< z*+%OXP4_B7NbP^}Vgn!&J14CSE~drcDYDCNW!xNO6FoO}c6v%PG)R&#WT17{Yg>}P zKW)M&@o`+AIMCFaibBPDvrIA>Yst{G8JdWJ);Mk?UVmsk(|p_l)6qPod))nQQ`}bb zpCloYQVk|!jdY_KiP$+=G+BNZId2csu|!i})70{wfz zY5|JXCh@J$)6h`dRuro#aZn~-ER!#4`3z}hoC!1o{lBrMqlp7Wsphk?<^#w%ViGQz z%slB{MRZ-S79+NymzPbFgivp)`A1NgjwSJwosN)}V{ delta 400 zcmV;B0dM}_1=s_SDlq^6cmUKQACy`E000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^t_0|EynYaA4jTPuG7JV``BR5;6HWT?1O&p-s26)0(8uf(k(%g-vo$;!l$w(i-2 z*{9z>V4l_6T(SAamnVb_*nH#5lb?V7fB5t7{}(o9Mur4qL5F9b{ybpbEE1=ZYAUF3 z?%9tI$hKiK^xU%_9|Sp>8Ms)P7+{7l|35tSfZw7=8;}jzeB*!16Ldpy8Nzt$^^g0i zBJ2u`l~)_k6{ngCD$G9p{sA^GrJ4#VxTtU|Fy4Iq<31w;0|U8+Fde-2^~U*UKOWqE z^Yg*~c5Ms;W}kllAk|b*0Twpsa?G1W;#83RG|5jgpmFc(1L*$76*f#TllI*C`T(Cx zu(=3s040VnA^TJdpCQ=%&%nUIfRT{U;~5qvxY7m_HhyVZpy69XfwD5H{dKBxR*dt26PRQQp${skwr2reB&GU z|Nj5t$DeJ)0QS=nWi&zv+R@RU zMry9yUM|#JQC8D*7Jprk+trzMS}?A`9R}>^n9n!PzrJ7xM-GWFdz8^MLrcvCJ34fu zktG$*Pp>GWXu1}+@9@`|xCFX~5ve89Ul&qH)LbYjV@JpGegi-P=+;nDK{kpUGq*p^ zBp+!yyX~cfQgMfYS}S2*sTG72Xm{w5Qc_A`ofb+exP6D|E&e>S-aYNk5tl%iSMr+B zt-&37{P~WyeT%=&0OU21LPQw_QV{Peag7WgcG%Go<`tm?yT=2yR^k%S=ciX}-(q@8 zcNElGSuQh|FVD0)$LWVh5Q1>?#3cZbLL}TgLI^ZKt(A3J(9LF@+jkh(Y+#2LAp}xN z*2$A&BKf$ ztrfja3&Y1fwZgx?zKkIZYuVxBw;?eCN!m zbCZMUBiebrmO_-pxR2T1BT&vD3snL5O%$?ZE8818qs`MpmhocwaDiZb$_n{_GWH!6 z?2c>g*=AY|xDqJFWfDpxQOKKwkk7c}cWFNAeZmC4?phmzaqyjmEH#+mAcR1b8Y>sq zjV#oidb+sQ953%S$4j45LbqtaZDZc)7R@D7wM6I)TxCR-daXK~z2R!ZCg;zrnq_<7 zjr)oT{v*}wS>M?YWT`*0%dVu+$9HFY(=8?#vRp+y$bGkH_FZeg&nG1)r?NVl!&{$H zh+XvI7g_3m+LPrA04{L=6Rw1hKHg)J{~TPn(Vi^-jWPX@<+6@Gen=@jgP7ja!`@5n zypFapuQ0(mp#)qH3s6cIF~)1AYCn%Y?&(3UL?QET){ITvQPtPnwf0HdnDfDS&Xu5g zSfHEL;IdGpTQofY&j;gQ^VZ#Df^C74U00hoopH2xx*uezf3=MPVPvPjHbhDZuC?H^ zy(wg&GEvB#d_>NslpeM7W<39We?|4R8gH!ugupI4xYhyyymhe44ulYJ07xmpRBgsH zzD@{P*Mr;(oz0nGEbA#j2w{}c9aD8NI8S}&U>k$r0;uZinsRzumiktV@vnST+TrHP zpS?-{n-tO?i~Zv?zdr?6;$-y1>Q7AYTPJ@%Y^uW$9W z;zd~~n5w&8&llf%>+7tiHiQ(3at2XIu+^tFt}@9l0Jw~V=KwrL7#&mxvkQ7y^nwj= z#!=nR_hnDf=)#qJ)Y}ctXM_@vS3iC`xz;8Cu#Eu#lI0T7M?@dst%n}uPL}$nwr`0>I;T*nScNQ002ovPDHLkV1jf^u8#l! literal 0 HcmV?d00001 diff --git a/textures/caverealms_grass_side.png b/textures/caverealms_moss_side.png similarity index 100% rename from textures/caverealms_grass_side.png rename to textures/caverealms_moss_side.png