From f84dcf0940a932729c4c252af169db640f4a9046 Mon Sep 17 00:00:00 2001 From: Nathan Fritzler Date: Sun, 19 Jun 2022 15:10:44 -0600 Subject: [PATCH] Use protection to make a worldborder --- mods/mcljepc_core/blocks.lua | 3 ++- mods/mcljepc_fakeworldborder/init.lua | 14 ++++++++++++++ mods/mcljepc_fakeworldborder/mod.conf | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 mods/mcljepc_fakeworldborder/init.lua create mode 100644 mods/mcljepc_fakeworldborder/mod.conf diff --git a/mods/mcljepc_core/blocks.lua b/mods/mcljepc_core/blocks.lua index b0dd16a03..86cb5308f 100644 --- a/mods/mcljepc_core/blocks.lua +++ b/mods/mcljepc_core/blocks.lua @@ -38,7 +38,8 @@ minetest.register_craftitem("mcljepc_core:block", { nodename = "mcljepc_core:grass" end - minetest.set_node(pointed_thing.above, { name = nodename }) + -- Unlike set node, this actually checks against protection + minetest.item_place(ItemStack(nodename), user, pointed_thing) end, on_drop = function(itemstack, dropper, pos) return itemstack diff --git a/mods/mcljepc_fakeworldborder/init.lua b/mods/mcljepc_fakeworldborder/init.lua new file mode 100644 index 000000000..3edb8c9dc --- /dev/null +++ b/mods/mcljepc_fakeworldborder/init.lua @@ -0,0 +1,14 @@ +local ymax = 21 +local ymin = mcljepc_mapgen.depth * -1 +local zmax = mcljepc_mapgen.size +local zmin = mcljepc_mapgen.size * -1 +local xmax = mcljepc_mapgen.size +local xmin = mcljepc_mapgen.size * -1 +local old_is_protected = minetest.is_protected +function minetest.is_protected(pos, name) + return old_is_protected(pos, name) or not ( + ymin < pos.y and pos.y < ymax + and zmin < pos.z and pos.z < zmax + and xmin < pos.x and pos.x < xmax + ) +end diff --git a/mods/mcljepc_fakeworldborder/mod.conf b/mods/mcljepc_fakeworldborder/mod.conf new file mode 100644 index 000000000..ef53dbb36 --- /dev/null +++ b/mods/mcljepc_fakeworldborder/mod.conf @@ -0,0 +1,2 @@ +name = mcljepc_fakeworldborder +depends = mcljepc_mapgen,mcljepc_core