From ada9d80bc63863b9672ddfd9fb7049a8fa89fb6f Mon Sep 17 00:00:00 2001 From: Duane Date: Tue, 28 Jun 2016 13:53:08 -0500 Subject: [PATCH] Add owner to translocators. --- pyramid.lua | 1 + tesseract.lua | 26 +++++++++++++++++++++----- textures/fun_caves_pyramid_stone.png | Bin 0 -> 258 bytes textures/fun_caves_translocator.png | Bin 0 -> 357 bytes textures/image_credits.txt | 1 + 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 textures/fun_caves_pyramid_stone.png create mode 100644 textures/fun_caves_translocator.png diff --git a/pyramid.lua b/pyramid.lua index 26b1e2b..b2c41d6 100644 --- a/pyramid.lua +++ b/pyramid.lua @@ -3,6 +3,7 @@ local max_depth = 31000 -- pyramid stone newnode = fun_caves.clone_node("default:sandstone") newnode.description = "Pyramid Stone" +newnode.tiles = {'fun_caves_pyramid_stone.png'} newnode.groups.pyramid = 1 newnode.drop = 'default:sandstone' minetest.register_node("fun_caves:pyramid_1", newnode) diff --git a/tesseract.lua b/tesseract.lua index 3d01b79..2c284a2 100644 --- a/tesseract.lua +++ b/tesseract.lua @@ -362,6 +362,10 @@ local function trans_place(itemstack, placer, pointed_thing) if not (data and data.id) then return end + local player_name = placer:get_player_name() + if not data.owner or data.owner == '' then + data.owner = player_name + end local pos = pointed_thing.above local pair = fun_caves.db.translocators[tonumber(data.id)] if not pair or #pair > 1 then @@ -373,6 +377,7 @@ local function trans_place(itemstack, placer, pointed_thing) pair[#pair+1] = pos local meta = minetest.get_meta(pos) meta:set_string('id', data.id) + meta:set_string('owner', data.owner) end return ret, place_good end @@ -382,16 +387,25 @@ local function trans_dig(pos, node, digger) return end - if minetest.is_protected(pos, digger:get_player_name()) then + local player_name = digger:get_player_name() + if minetest.is_protected(pos, player_name) then return end local meta = minetest.get_meta(pos) local id = meta:get_string('id') - local data = { id = id } - if not (data and data.id) then + local owner = meta:get_string('owner') + local data = { id = id, owner = owner } + if not (data and data.id) or (data.owner ~= '' and data.owner ~= player_name) then + local privs = minetest.check_player_privs(player_name, {server=true}) + if privs then + minetest.remove_node(pos) + end return end + if data.owner == '' then + data.owner = player_name + end local pair = fun_caves.db.translocators[tonumber(data.id)] if not pair or #pair < 1 then print('* Fun Caves: low error in translocator storage') @@ -413,8 +427,9 @@ local function trans_dig(pos, node, digger) end end -newnode = fun_caves.clone_node("default:steelblock") +local newnode = fun_caves.clone_node("default:steelblock") newnode.description = "Translocator" +newnode.tiles = {'fun_caves_translocator.png'} newnode.on_rightclick = translocate newnode.on_use = trans_use newnode.on_place = trans_place @@ -440,8 +455,9 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv return end - data = {} + local data = {} data.id = string.format('%d', #fun_caves.db.translocators+1) + data.owner = player:get_player_name() fun_caves.db.translocators[#fun_caves.db.translocators+1] = {} local data_str = minetest.serialize(data) itemstack:set_metadata(data_str) diff --git a/textures/fun_caves_pyramid_stone.png b/textures/fun_caves_pyramid_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..16e3d13bef014091640abd33843e6c0ca0d1cc28 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMVJ#l2p>7&z+9PB%|yY=Xy ziHG)f@88vU?&O>^$7dee({b_4g5BGz3oCa_2CARw>Eal|aXndMrBRB2L8^IbMy8$! zPl{f7S_ZH7SFVtN2WcC0Hk4ctn))q)L)T!|jzxy54UN%9QkyC!OEEVeThgR*v~Q^= zPgdr-oO6>Hm3Vr3(i(a0Fin<>apmb&CdN%F4pR!lI(0nVFf>)YQPi zz`nk|mzS5;($UPy&dklt&dbT3o}QJJm6MZ`yS%!%xVW#cug}lU(9+E?z=xIq006y7 zL_t&-(+!MQmI5&h1Y5Es=P&`70PNoXl=!o|UKPrH?|1HdzxHvCoS|{SBf{+IoMWfB z7A!G>%rgMjkrDqQ5FN7tw&RLe08B{4At}m&@Zz~09kgy8W1=U`-v1Izq~Ocsyk}-l zNrEXl&F59=5vzEgc64h1Tcv77bt)%ScA!utk#B2(PUYa2nGZg-mQmdE;X@F4%huYe z_^?kR+dFTPWL+}`j*!y2eYPeN!az~gqFGNJUB_2{&Y}rno2~Oo00000NkvXXu0mjf DKu@$c literal 0 HcmV?d00001 diff --git a/textures/image_credits.txt b/textures/image_credits.txt index 7fed78e..0e02af1 100644 --- a/textures/image_credits.txt +++ b/textures/image_credits.txt @@ -9,3 +9,4 @@ Modified radioactive ore: everamzah Original DNA: Zephyris (cc-by-sa 3), https://en.wikipedia.org/wiki/File:DNA_Structure%2BKey%2BLabelled.pn_NoBB.png Original moonstone: Didier Descouens (cc-by-sa 4), https://en.wikipedia.org/wiki/File:Pierrelune.jpg Wallhammer images by the eminent DonBatman (DWYWPL), https://forum.minetest.net/viewtopic.php?f=11&t=13484&hilit=masonry+hammer +The pyramid and translocator textures are copied from the default sandstone and steel block, respectively.