From 58271b510978244a683d24e8846393f7b4310e10 Mon Sep 17 00:00:00 2001 From: proller Date: Fri, 5 Jul 2013 00:36:20 +0400 Subject: [PATCH] Sponge for liquid_finite --- mods/sponge/README.txt | 16 +++ mods/sponge/depends.txt | 1 + mods/sponge/init.lua | 147 +++++++++++++++++++++++++++ mods/sponge/textures/iron_sponge.png | Bin 0 -> 942 bytes mods/sponge/textures/sponge.png | Bin 0 -> 942 bytes 5 files changed, 164 insertions(+) create mode 100644 mods/sponge/README.txt create mode 100644 mods/sponge/depends.txt create mode 100644 mods/sponge/init.lua create mode 100644 mods/sponge/textures/iron_sponge.png create mode 100644 mods/sponge/textures/sponge.png diff --git a/mods/sponge/README.txt b/mods/sponge/README.txt new file mode 100644 index 00000000..c6ed5516 --- /dev/null +++ b/mods/sponge/README.txt @@ -0,0 +1,16 @@ +Minetest 0.4 mod: flowers +========================= + +License of source code: +----------------------- +Copyright (C) 2012-2013 + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + +License of media (textures and sounds) +-------------------------------------- +WTFPL diff --git a/mods/sponge/depends.txt b/mods/sponge/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/sponge/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/sponge/init.lua b/mods/sponge/init.lua new file mode 100644 index 00000000..dc7f2ce1 --- /dev/null +++ b/mods/sponge/init.lua @@ -0,0 +1,147 @@ + +if minetest.setting_get("liquid_finite") then + +minetest.register_node("sponge:sponge", { + description = "Sponge", + drawtype = "normal", + tiles = {"sponge.png"}, + paramtype = 'light', + sunlight_propagates = true, + walkable = true, + pointable = true, + diggable = true, + buildable_to = false, + groups = {snappy=2, flammable=1}, +}) + +minetest.register_node("sponge:iron_sponge", { + description = "Iron Sponge", + drawtype = "normal", + tiles = {"iron_sponge.png"}, + paramtype = 'light', + sunlight_propagates = true, + walkable = true, + pointable = true, + diggable = true, + buildable_to = false, + groups = {cracky=2}, +}) + + +--[[ +minetest.register_node("sponge:fake_air", { + description = "Fake Air", + drawtype = "airlike", + paramtype = 'light', + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + groups = {not_in_creative_inventory=1}, +}) + +local replacewith = "sponge:fake_air" +if minetest.setting_get("liquid_finite") and minetest.setting_get("liquid_relax") > "0" then + replacewith = "air" +end +]] + +local replacewith = "air" + +minetest.register_abm({ + nodenames = {"default:water_source", "default:water_flowing"}, + neighbors = {"sponge:sponge", "sponge:iron_sponge"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:add_node(pos, {name=replacewith}) + end +}) + +minetest.register_abm( +{nodenames = {"sponge:sponge"}, +interval = 1.0, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + for i=-1,1 do + for j=-1,1 do + for k=-1,1 do + p = {x=pos.x+i, y=pos.y+j, z=pos.z+k} + n = minetest.env:get_node(p) + if (n.name=="default:water_flowing") + or (n.name == "default:water_source") then + minetest.env:add_node(p, {name=replacewith}) + end + end + end + end +end +}) + +minetest.register_abm( +{nodenames = {"sponge:iron_sponge"}, +interval = 1.0, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + for i=-2,2 do + for j=-2,2 do + for k=-2,2 do + p = {x=pos.x+i, y=pos.y+j, z=pos.z+k} + n = minetest.env:get_node(p) + if (n.name == "default:water_flowing") + or (n.name == "default:water_source") + or (n.name == "default:lava_source") + or (n.name == "default:lava_flowing") then + minetest.env:add_node(p, {name=replacewith}) + end + end + end + end +end +}) + +--[[ +minetest.register_abm( +{nodenames = {"sponge:fake_air"}, +interval = 1.0, +chance = 1, +action = function(pos, node, active_object_count, active_object_count_wider) + spongecount=0 + for i=-2,2 do + for j=-2,2 do + for k=-2,2 do + p = {x=pos.x+i, y=pos.y+j, z=pos.z+k} + n = minetest.env:get_node(p) + if (n.name=="sponge:iron_sponge") or (n.name == "sponge:sponge") then + spongecount=spongecount+1 + end + end + end + end + if (spongecount==0) then + minetest.env:add_node(pos, {name="air"}) + end +end +}) +]] + +minetest.register_craft({ + output = "sponge:sponge", + recipe = { + {'default:leaves', 'default:leaves', 'default:leaves'}, + {'default:leaves', 'default:mese', 'default:leaves'}, + {'default:leaves', 'default:leaves', 'default:leaves'}, + } +}) + +minetest.register_craft({ + output = "sponge:iron_sponge", + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'sponge:sponge', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +end diff --git a/mods/sponge/textures/iron_sponge.png b/mods/sponge/textures/iron_sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..55296b0c002f1a7e8fab2f9d519ab09f7ee015d5 GIT binary patch literal 942 zcmZuwOK%cU6ut-r3QPfqmXPwt$1?svcQxF=`U=0ZWv;4lzE zIAPi!#%`gX{t)z&r%PUJs?~7NN7g^|rEqA!JH5C{h>@qCiadMX4Nw;qW&^qnmD6l; zaEY-SfO?{Vh3M3s<>kmqluX@=T#rU>y6)eOF1doj?A-jr4m%<0UcrCv;$WxBqRvUG z2Wu-de!JGnTascLHWMq~k;@kUoc4EGVN3LStxnhG@pw#}L6W3n$B*J_K785h9cgiB z23&lLZ2$tVUaMEDb=WR<-*!5~c%@PW258Adf@WZB7<;>Au+_h1YcmaA|G)qia|0X5 zen~UI5bDO=#Mq?8%DLTc*k8ZIuvl#@PxH|%2GiXRTQ-xg*QCF}mfg%SG<0Hkc#xr6 z$qZwk_X({Kh{EiqgP4rR6F(Tl3V{9Y(;Mi}%mwINwtxm=QHP1~Gm4~?_o|(CD~_xO zqo>DrG6fu8zIuV2XvV3NbUf6Pfsvj3Hfb~fDYBv{4G1noF^+B_WWTdFpQE1TN)c_O z8Oo&!>wvB6u>Wk()@9LXG{7NReOpr8WHw7k9S{~8rOUGXU5w?jyY3@SAUN_okIYvu z-Qvs!EPw~J73lwh+5p0tW?;j^NSK@!+i29IHhT{yo>KQ8ol2!@H99{KnN%v(pLn|2 wYAO~=R~91gKfaYD8CPfn^uHw`Dr*4sK1fC%f0hsr;$kLNtEe$9(ouJJ@Sq|jt+bM!S3Gs6H*n!@Jg`r?!B9p ztjzy1SXJ#oT`s3*GRJjwPWaUJ_OdP)A$86O!;bz{ns#KhTFc5z@HaLNyk41QS@;fz87u1R>#r0kVP7)CFyQO@nayTe zSs{Y7wc#dAHmggL`9Gzpsn6hz#O!Q(clRWbAbbGD00sE6EOH!sNrzNQbGs!`6aczt z#SY8M`%6n1ny#sFQuOrnR~p&cI>MlSv7oWh(bQBFkrF_kPZ%qO_J