From c90bd9f7ec33d4244ab090d84505f8d912bd4c85 Mon Sep 17 00:00:00 2001 From: "Tai @ Flex" Date: Thu, 25 Aug 2016 16:48:58 +0100 Subject: [PATCH] moved to their own mods --- depends.txt | 21 -- falling_light.lua | 23 -- init.lua | 14 ++ nssm_coin.lua | 61 ----- sounds/vivarium_pom.ogg | Bin 16057 -> 0 bytes staves.lua | 450 ------------------------------------- textures/vivarium_coin.png | Bin 895 -> 0 bytes textures/water_staff.png | Bin 361 -> 0 bytes tincrafts.lua | 42 ---- 9 files changed, 14 insertions(+), 597 deletions(-) delete mode 100644 depends.txt delete mode 100644 falling_light.lua delete mode 100644 nssm_coin.lua delete mode 100644 sounds/vivarium_pom.ogg delete mode 100644 staves.lua delete mode 100644 textures/vivarium_coin.png delete mode 100644 textures/water_staff.png delete mode 100644 tincrafts.lua diff --git a/depends.txt b/depends.txt deleted file mode 100644 index f8d7d67..0000000 --- a/depends.txt +++ /dev/null @@ -1,21 +0,0 @@ -default -nssm? -dmobs? -mobs_animal? -mobs_bear? -mobs_creeper? -mobs_crocs? -mobs_deer? -mobs_giraffe? -mobs_jellyfish? -mobs_monster? -mobs_mr_goat? -mobs_sandworm? -mobs_senderman? -mobs_sharks? -mobs_slimes? -mobs_snowman? -mobs_turtles? -mobs_wolf? -mobs_yeti? -mobs_zombie? diff --git a/falling_light.lua b/falling_light.lua deleted file mode 100644 index 5caa360..0000000 --- a/falling_light.lua +++ /dev/null @@ -1,23 +0,0 @@ --- Falling Light --- A simple mod for explorers --- (C) Tai "DuCake" Kedzierski 2016 --- Provided to you under 3-Clause BSD - -minetest.register_alias("falling_light:light","vivarium:falling_light") - -minetest.register_node("vivarium:falling_light", { - description = "Falling Light", - paramtype = "light", - light_source = 14, - light_propagates = true, - sunlight_propagates = true, - tiles = {"default_sand.png"}, - groups = {crumbly = 3, falling_node = 1}, -}) - -minetest.register_craft ({ - output = "vivarium:falling_light", - type = "shapeless", - recipe = {"group:sand","default:torch"} -} -) diff --git a/init.lua b/init.lua index d9ad417..7293436 100644 --- a/init.lua +++ b/init.lua @@ -11,3 +11,17 @@ end if minetest.get_modpath("moreores") then dofile(minetest.get_modpath("vivarium") .. "/tincrafts.lua") end + +-- ++++ backwards compat with old deployments + +function vivarium:realias(newmod,toolname) + minetest.register_alias("vivarium:"..toolname,newmod..":"..toolname) +end + +vivarium:realias("petting","mobtamer") +vivarium:realias("staffmagic","staff_clone") +vivarium:realias("staffmagic","staff_stack") +vivarium:realias("staffmagic","staff_boom") +vivarium:realias("staffmagic","staff_creator") +vivarium:realias("staffmagic","staff_melt") +vivarium:realias("fallinglight","light") diff --git a/nssm_coin.lua b/nssm_coin.lua deleted file mode 100644 index 26cd620..0000000 --- a/nssm_coin.lua +++ /dev/null @@ -1,61 +0,0 @@ - --- +++++++++++++++++++++++++++++++++++++++++ -core.register_craft( { - - output = "nssm:surimi", - --type = "shapeless", - recipe = { - {"default:dirt","default:dirt","default:dirt"}, - {"default:grass","default:grass","default:grass"}, -- group grass? - {"group:sand","group:sand","group:sand"}, - } - -}) - -local metals = "default:steel_ingot" -if minetest.get_modpath("moreores") then - metals = "moreores:tin_ingot" -end - -function vivarium:register_coin(coinname,coindesc,cmaterial,overimg) - local coinimg = "vivarium_coin.png^"..overimg - --[[ - minetest.register_craftitem("vivarium:coin_"..coinname, { - description = coindesc, - }) - --]] - - minetest.register_node("vivarium:coin_"..coinname, { - description = coindesc, - drawtype = "plantlike", - paramtype = "light", - tiles = {coinimg}, - inventory_image = coingimg, - groups = {dig_immediate = 3}, - }) - - core.register_craft( { - - output = "vivarium:coin_"..coinname, - recipe = { - {metals,cmaterial,metals}, - {cmaterial,cmaterial,cmaterial}, - {metals,cmaterial,metals}, - } - - }) - - - core.register_craft( { - output = cmaterial.." 5", - type = "shapeless", - recipe = { - "vivarium:coin_"..coinname, - } - }) -end - -vivarium:register_coin("nyan","Nyan Coin","default:nyancat","default_nc_front.png") -vivarium:register_coin("ice","Ice Monster Coin","nssm:frosted_amphibian_heart","frosted_amphibian_heart.png") -vivarium:register_coin("worm","Worms Coin","nssm:worm_flesh","worm_flesh.png") -vivarium:register_coin("scrausics","Scrausics Coin","nssm:raw_scrausics_wing","raw_scrausics_wing.png") diff --git a/sounds/vivarium_pom.ogg b/sounds/vivarium_pom.ogg deleted file mode 100644 index 0e6df263f2ebd8bd0e9817eb542c9f1fbe13e17a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16057 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 UWtKz>{BblaRqs+p!(xR02jX#N#Q*>R diff --git a/staves.lua b/staves.lua deleted file mode 100644 index af9ca1d..0000000 --- a/staves.lua +++ /dev/null @@ -1,450 +0,0 @@ -minetest.register_privilege("staffer","Trust players to use staves") - -vivarium.forbidden_nodes = { - "default:stone_with", - "moreores:mineral_", - "default:nyancat", - "steel_bottle", - ".+steelblock", -- lua does not include the "|" operator which is a PAIN. - ".+copperblock", - "copperpatina", - ".+bronzeblock", - ".+goldblock", - ".+diamondblock", - ".+tin_block", - ".+silver_block", - ".+mithril_block", - "default:mese", - "protector:", - "basic_machines:", - "ethereal:crystal_spike", - ".+crystal_block", - "mobs:beehive", - "mobs:spawner", - "more_chests:", - "fire:basic_flame", - "fire:permanent_fire", -} - -function vivarium:tellem(player,message) - minetest.chat_send_player(player:get_player_name() , message) -end - -function vivarium:wearitem(itemstack,maxuses) - itemstack:add_wear(math.ceil(65536/maxuses)) - return itemstack -end - -function staffcheck(player) - local stafflevel = 0 - if minetest.check_player_privs(player:get_player_name(), {staffer=true}) then stafflevel = 1; end - if minetest.check_player_privs(player:get_player_name(), {creative=true}) then stafflevel = 100; end - --minetest.chat_send_all("Staff level : "..stafflevel) - return stafflevel -end - -function isforbidden(nodename) - for _,pat in pairs(vivarium.forbidden_nodes) do - if string.match(nodename,pat) then - --minetest.chat_send_all("Forbidden : "..nodename) - return true - end - end - return false -end - -function bomf(pos,radius) - minetest.add_particlespawner( - 200, --amount - 0.1, --time - {x=pos.x-radius/2, y=pos.y-radius/2, z=pos.z-radius/2}, --minpos - {x=pos.x+radius/2, y=pos.y+radius/2, z=pos.z+radius/2}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=1, y=1, z=1}, --maxvel - {x=-0.5,y=5,z=-0.5}, --minacc - {x=0.5,y=5,z=0.5}, --maxacc - 0.1, --minexptime - 1, --maxexptime - 3, --minsize - 4, --maxsize - false, --collisiondetection - "tnt_smoke.png" --texture - ) - - minetest.sound_play("vivarium_pom", { - pos = pos, - max_hear_distance = 10 - }) -end - -function vivarium:max(x,y) - if x < y then return y - else return x - end -end -function vivarium:min(x,y) - if x < y then return x - else return y - end -end - - -function vivarium:mobheal(user,luae) - if not luae.owner or user:get_player_name() ~= luae.owner then - vivarium:tellem(user,"This " ..luae.name .. " is not yours.") - return - end - if luae.health < luae.hp_min then - luae.health = luae.hp_min - vivarium:tellem(user,"Your " ..luae.name .. " has been healed.") - else - vivarium:tellem(user,"This " ..luae.name .. " does not need healing.") - end -end - -function vivarium:mobtransform(user,luae, forced) - if not forced and math.random(1,20) > 1 then return ; end -- 1:20 chance of transforming - - luae.state="walk" - - if luae.type == "monster" then - luae.type="npc" - luae.attacks_monsters=true - vivarium:tellem(user,luae.name .. " became a friendly NPC") - elseif luae.type == "npc" then - luae.type = "animal" - vivarium:tellem(user,luae.name .. " became a docile animal") - elseif luae.type == "animal" then - luae.type = "monster" - luae.passive = false - vivarium:tellem(user,luae.name .. " became a vicious monster") - end -end - --- Staff of X (based on Staff of Light by Xanthin) - -minetest.register_tool("vivarium:staff_stack", { -- this will be the wall staff - description = "Column Staff (make walls)", - inventory_image = "water_staff.png^[colorize:yellow:90", - wield_image = "water_staff.png^[colorize:yellow:90", - range = 12, - stack_max = 1, - on_use = function(itemstack, user, pointed_thing) - local stafflevel = staffcheck(user) - if stafflevel < 1 then return; end - - if pointed_thing.type ~= "node" then - if stafflevel < 2 then return; end - - if pointed_thing.type == "object" then - local newpos = pointed_thing.ref:getpos() - bomf(newpos,2 ) - local luae = pointed_thing.ref:get_luaentity() - - vivarium:mobtransform(user,luae,true) - end - return - end - - local pos = pointed_thing.under - local pname = user:get_player_name() - - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end - - - local height = 5 - local targetnode = minetest.get_node(pos).name - local userpos = user:getpos() - - local relpos = (userpos.y - pos.y)/math.sqrt((userpos.y - pos.y)^2) - local lower = 0 ; local higher = 0 - - if isforbidden(targetnode) and stafflevel < 2 then - targetnode = "default:dirt" - end - - - if relpos < 0 then - -- minetest.chat_send_player(pname, "Stack down") - lower = -1*height - elseif relpos >= 0 then - -- minetest.chat_send_player(pname, "Stack up") - higher = height - end - - local airnodes = minetest.find_nodes_in_area( - {x = pos.x, y = pos.y+lower, z = pos.z}, - {x = pos.x, y = pos.y+higher, z = pos.z}, - {"air","default:water_source","default:lava_source","default:river_water_source"} - ) - - bomf(pos,2) - for _,fpos in pairs(airnodes) do - minetest.swap_node(fpos, {name = targetnode }) - end - if staffcheck(user) < 90 then itemstack = vivarium:wearitem(itemstack,50); end - return itemstack - - end, -}) - -minetest.register_tool("vivarium:staff_clone", { -- this will be the floor staff - description = "Staff of Cloning (make floors)", - inventory_image = "water_staff.png^[colorize:green:90", - wield_image = "water_staff.png^[colorize:green:90", - range = 12, - stack_max = 1, - on_use = function(itemstack, user, pointed_thing) - local stafflevel = staffcheck(user) - if stafflevel < 1 then return; end - - if pointed_thing.type ~= "node" then - - if stafflevel < 2 then -- can only clone mobs if super staffer else abuse - return - end - if pointed_thing.type == "object" then - local newpos = pointed_thing.ref:getpos() - newpos = {x=newpos.x+math.random(-1,1), y=newpos.y+0.5, z=newpos.z+math.random(-1,1)} - bomf(newpos,2 ) - minetest.add_entity(newpos, pointed_thing.ref:get_luaentity().name) - end - return - end - - local pos = pointed_thing.under - local playerpos = user:getpos() - local pname = user:get_player_name() - - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end - - - local targetnode = minetest.get_node(pos).name - local userpos = user:getpos() - - local startpos = {x = vivarium:min(pos.x,playerpos.x),y = pos.y,z = vivarium:min(pos.z,playerpos.z)} - local endpos = {x = vivarium:max(pos.x,playerpos.x),y = pos.y,z = vivarium:max(pos.z,playerpos.z)} - - if isforbidden(targetnode) and stafflevel < 2 then - targetnode = "default:dirt" - end - - local airnodes = minetest.find_nodes_in_area( - startpos, - endpos, - {"air","default:water_source","default:lava_source","default:river_water_source"} - ) - - bomf({x = (playerpos.x+pos.x)/2 , y = (playerpos.y+pos.y)/2 , z = (playerpos.z+pos.z)/2},4) - - for _,fpos in pairs(airnodes) do - minetest.swap_node(fpos, {name = targetnode }) - end - - if staffcheck(user) < 90 then itemstack = vivarium:wearitem(itemstack,50); end - return itemstack - - end, -}) - -minetest.register_tool("vivarium:staff_creative", { -- this will be the super creative staff - description = "Creator Staff (make blocks or blocks)", - inventory_image = "water_staff.png^[colorize:purple:90", - wield_image = "water_staff.png^[colorize:purple:90", - range = 15, - stack_max = 1, - on_use = function(itemstack, user, pointed_thing) - local stafflevel = staffcheck(user) - if stafflevel < 50 then return; end -- really do not want to give this to regular staffers - - local playerpos = user:getpos() - local pname = user:get_player_name() - - if pointed_thing.type ~= "node" then - if pointed_thing.type == "object" then - local mobpos = pointed_thing.ref:getpos() - local newpos = mobpos - local distance = 30 - - while (vector.distance(playerpos,newpos) < distance/2) do - local airnodes = minetest.find_nodes_in_area( - {x = playerpos.x -distance, y = playerpos.y - 10, z = playerpos.z -distance}, - {x = playerpos.x +distance, y = playerpos.y + 10, z = playerpos.z +distance}, - {"air","default:water_source","default:lava_source","default:river_water_source"} - ) - newpos = airnodes[ math.random(1,#airnodes) ] - end - - bomf( mobpos , 3) - bomf( newpos , 5) - pointed_thing.ref:setpos(newpos) - end - return - end - - local pos = pointed_thing.under - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end - - - local targetnode = minetest.get_node(pos).name - local userpos = user:getpos() - - local startpos = {x = vivarium:min(pos.x,playerpos.x),y = vivarium:min(pos.y,playerpos.y),z = vivarium:min(pos.z,playerpos.z)} - local endpos = {x = vivarium:max(pos.x,playerpos.x),y = vivarium:max(pos.y,playerpos.y-1),z = vivarium:max(pos.z,playerpos.z)} - - if isforbidden(targetnode) and stafflevel < 2 then - targetnode = "default:dirt" - end - - local airnodes = minetest.find_nodes_in_area( - startpos, - endpos, - {"air","default:water_source","default:lava_source","default:river_water_source"} - ) - - bomf({x = (playerpos.x+pos.x)/2 , y = (playerpos.y+pos.y)/2 , z = (playerpos.z+pos.z)/2},4) - - for _,fpos in pairs(airnodes) do - minetest.swap_node(fpos, {name = targetnode }) - end - - if staffcheck(user) < 90 then itemstack = vivarium:wearitem(itemstack,50); end - return itemstack - - end, -}) - ---[[ - ---]] - -minetest.register_tool("vivarium:staff_boom", { - description = "Bomf Staff (delete nodes)", - inventory_image = "water_staff.png^[colorize:black:140", - wield_image = "water_staff.png^[colorize:black:140", - range = 12, - stack_max = 1, - on_use = function(itemstack, user, pointed_thing) - local stafflevel = staffcheck(user) - if stafflevel < 2 then return; end - - if pointed_thing.type ~= "node" then - if pointed_thing.type == "object" then - bomf(pointed_thing.ref:getpos(),1 ) - pointed_thing.ref:remove() - end - return - end - - local pos = pointed_thing.under - local pname = user:get_player_name() - - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end - - - local radius = 3 - local targetnode = minetest.get_node(pos).name - local userpos = user:getpos() - local targetnodes = minetest.find_nodes_in_area( - {x = pos.x - radius, y = pos.y-radius, z = pos.z - radius}, - {x = pos.x + radius, y = pos.y+radius, z = pos.z + radius}, - {targetnode} - ) - - bomf(pos,radius) - - for _,fpos in pairs(targetnodes) do - minetest.swap_node(fpos, {name = "air" }) - end - return itemstack - - end, -}) - --- quick and dirty tool to repair carnage caused by NSSM ice mobs -minetest.register_tool("vivarium:staff_melt", { - description = "Staff of Melting (Fix Ice Mobs damage)", - inventory_image = "water_staff.png^[colorize:blue:90", - wield_image = "water_staff.png^[colorize:blue:90", - range = 12, - stack_max = 1, - on_use = function(itemstack, user, pointed_thing) - - if pointed_thing.type ~= "node" then - if pointed_thing.type == "object" then - local newpos = pointed_thing.ref:getpos() - bomf(newpos,2 ) - local luae = pointed_thing.ref:get_luaentity() - - vivarium:mobheal(user,luae) - vivarium:mobtransform(user,luae) - end - return - end - - local pos = pointed_thing.under - local pname = user:get_player_name() - - if minetest.is_protected(pos, pname) then - minetest.record_protection_violation(pos, pname) - return - end - - - local breadth = 2 -- full square is 2*breadth+1 on side - local frostarea = minetest.find_nodes_in_area( - {x = pos.x - breadth, y = pos.y, z = pos.z - breadth}, - {x = pos.x + breadth, y = pos.y, z = pos.z + breadth}, - {"default:ice","default:snowblock"} - ) - - bomf(pos,breadth*2) - - for _,fpos in pairs(frostarea) do - local replname = minetest.get_node({x=fpos.x,y=fpos.y-1,z=fpos.z}).name - if replname == "default:ice" or replname == "default:snowblock" then - local newreplname = minetest.get_node({x=fpos.x,y=fpos.y+1,z=fpos.z}).name - if newreplname ~= "air" then -- don't dig down so much - -- TODO if replname == air, then get average node around that is not air, use that - replname = newreplname - end - end - local sealevel = 0 -- TODO get the custom setting for sealevel - if fpos.y > 0 and replname == "default:water_source" then -- don't bother with water above sea level - replname = "air" - end - --minetest.chat_send_all("Replicating "..replname) - if isforbidden(replname) then - replname = "default:dirt" - end - minetest.swap_node(fpos, {name = replname }) - end - - if staffcheck(user) < 90 then itemstack = vivarium:wearitem(itemstack,50); end - return itemstack - - end, -}) - -minetest.register_craft( -{ - output = "vivarium:staff_melt", - recipe = { - {"default:mese_crystal_fragment","bucket:bucket_lava","default:mese_crystal_fragment"}, - {"","default:obsidian_shard",""}, - {"","default:obsidian_shard",""}, - } -} -) diff --git a/textures/vivarium_coin.png b/textures/vivarium_coin.png deleted file mode 100644 index 692a43c2074c0509e9f556410719d2511f3a7684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmV-_1AzRAP)2DRXm6mDZP{u z^d=td&8ing#1_O$g!V582;wc^O+8t#>OmCIO0*=}+9ca-ntjgu@f%Nqe(#^-SK&Wh zzyAJ>ORt=}nipfjaD-{v1VKo5zeBxlA+S02*fU)FVD0ky`ugVpD!}UMYV*Q{^KZR$ z>G3O3)HA~{z;WxS8XR=G%*;(=J33)F;{MKWoLWA8HjemYb8|CR0bV@+{F|@6{@jP% zy^iTly7J84PyaGiT4eY#Po3<(+rmzIkfJeYH}S zuBJh?Qsd{J{-SD|%q=u9%MQ9JkrJk+UABM!6GfE>p|O18BI5Xx@y79E3$9hunO~gY zhwttprGneAD3{CFH4AH^N)mhMW`)+QgP=sGyWYQw4tx zJoW)_CoL3J5ClF#h!Q1D5Qho6p%8@;{oWYE)Nz~&Nm5XVi2aAVkfq2%BBi80Q6ZNR zLI{afHAwS};UH#i-o?;$%(6-tC4^y!KT6Q`3YKG0$b#iW0&oTlhgv*)V9f zZCbMp(kvmDIZIETz%X>W`#U5_M&JdcX^J8Ws+NIJa)jq42o!uTp`@t@QJ|^=8r7W+3j=K9g?LPW<@6mQdC`K=xw10 z$l`z`PRR>NmglIdLY7rfmrkB>re@nGbuBX~GSVcaJ?(OTd!H;VP?Q3*QXX2d~66l7?n2Dfi*eYCdr@q7Q8e*jX4 VZc|qhLMZ?M002ovPDHLkV1nC+s4xHk diff --git a/textures/water_staff.png b/textures/water_staff.png deleted file mode 100644 index 983a3dcfcdab5308df534a8a7d188b72ee0be519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmV-v0ha!WP)s27;B1>4fdYGL8NKtp&j}7TZL&65&vg)8Y^$3t}3Hh1Z#gzaVy3*`!k} z0|$~O7AHzyw22ldfZ}Z`G)zgooogo z!?A5;kKN}5N_Tk<&0JES%@V&A#;iAs1OS{uvzUD1NP}9{=PI}sr4$e0HmxuQ;5}b) zemdHt6V$3c)mmMYQbbXdf_^JE3GQ~g&baZC1fJ&s5ClPHIN8KPq3~zeb=~0zT5Cze zT5Bikg5``cVyz_&`@Wz3nv5~hXf&kX?~5@;raDPu%+&BVj>(5I=>epq00000NkvXX Hu0mjf%<7$a diff --git a/tincrafts.lua b/tincrafts.lua deleted file mode 100644 index e537c6a..0000000 --- a/tincrafts.lua +++ /dev/null @@ -1,42 +0,0 @@ ---some crafts to make tin less useless. - -local tin = "moreores:tin_ingot" -local dstone = "default:desert_stone" - -core.register_craft({ - output = "vivarium:strong_tin", - recipe = { - {tin,tin,tin}, - {tin,"default:coal_lump",tin}, - {tin,tin,tin}, - } -}) - -core.register_craft({ - output = "vivarium:softlock", - type = "cooking", - cooktime = 20, - recipe = "vivarium:strong_tin" -}) - -if minetest.get_modpath("protector") then - core.register_craft({ - output = "protector:protect2", - recipe = { - {dstone,dstone,dstone}, - {dstone,"vivarium:softlock",dstone}, - {dstone,dstone,dstone}, - } - }) - - minetest.register_craftitem("vivarium:softlock", { - description = "Malleable Lock", - inventory_image = "protector_logo.png^[colorize:blue:60" - }) -end - -minetest.register_craftitem("vivarium:strong_tin", { - description = "Strengthened tin", - inventory_image = "moreores_tin_ingot.png^[colorize:yellow:30" -}) -