Remove worldedge mod

master
Jordan Irwin 2021-05-07 19:12:54 -07:00
parent 06a047c5fb
commit 4cad0dc34c
7 changed files with 0 additions and 165 deletions

View File

@ -179,7 +179,6 @@ The game includes the mods from the default [minetest_game](https://github.com/m
* [myroofs][] ([DWYWPL][lic.dwywpl]) -- version: [fe98461 Git][ver.myroofs] *2017-07-14*
* [mysheetmetal][] ([DWYWPL][lic.dwywpl]) -- version: [7c5ab71 Git][ver.mysheetmetal] *2016-04-12* ([patched][patch.mysheetmetal])
* [mywoodslopes][] ([DWYWPL][lic.dwywpl]) -- version: [3a1b531 Git][ver.mywoodslopes] *2016-03-23* (patched)
* [worldedge][] ([DWYWPL][lic.dwywpl]) -- version: [608462d Git][ver.worldedge] *2017-07-14*
* [technic][] ([LGPL][lic.lgpl2.0]) -- version: [43acec2 Git][ver.technic] *2021-02-09*
@ -368,7 +367,6 @@ The game includes the mods from the default [minetest_game](https://github.com/m
[whitelist]: https://forum.minetest.net/viewtopic.php?t=8434
[windmill]: https://forum.minetest.net/viewtopic.php?id=7440
[workbench]: https://forum.minetest.net/viewtopic.php?t=14085
[worldedge]: https://forum.minetest.net/viewtopic.php?t=10753
[xtraarmor]: https://forum.minetest.net/viewtopic.php?t=16645
[lic.3d_armor]: mods/modpacks/3d_armor/LICENSE.md
@ -593,7 +591,6 @@ The game includes the mods from the default [minetest_game](https://github.com/m
[ver.whitelist]: https://github.com/AntumMT/mod-whitelist/tree/b813b19
[ver.windmill]: https://github.com/Sokomine/windmill/tree/47b029d
[ver.workbench]: https://github.com/minetest-mods/workbench/tree/bd14f59
[ver.worldedge]: https://github.com/minetest-mods/worldedge/tree/608462d
[ver.zombie]: https://github.com/AntumMT/mod-cmer/tree/4edb18e
[patch.3d_armor]: https://github.com/AntumMT/mp-3d_armor/tree/19d1001

View File

@ -1,13 +0,0 @@
worldedge
=========
A Minetest Mod that teleports you to the other side of the map when you reach its edge.
This gives the illusion that that world is round and you can walk all the way around.
You can change the worlds edge by changing the first variable in init.lua
local edge = 30000
License of code: DWYWPL
Written by Amaz
Modified by Don

View File

@ -1 +0,0 @@
Allows you to limit the size of your world.

View File

@ -1,147 +0,0 @@
--------------
-- TODO: Check for terrain height
-- Defines the edge of a world
local edge = tonumber(minetest.settings:get("world_edge")) or 30000
-- Radius which should be checked for a good teleportation place
local radius = 2
--------------
if minetest.settings:get_bool("log_mods") then
minetest.log("action", "World edge: " .. edge)
end
local count = 0
local waiting_list = {}
--[[ Explanation of waiting_list table
Index = Player name
Value = {
player = Player to teleport
pos = Destination
obj = Attacked entity
notified = When the player must wait longer...
}
]]
minetest.register_globalstep(function(dtime)
count = count + dtime
if count < 3 then
return
end
count = 0
for k, v in pairs(waiting_list) do
if v.player and v.player:is_player() then
local pos = get_surface_pos(v.pos)
if pos then
v.obj:setpos(pos)
minetest.after(0.2, function(p, o)
p:set_detach()
o:remove()
end, v.player, v.obj)
waiting_list[k] = nil
elseif not v.notified then
v.notified = true
minetest.chat_send_player(k, "Sorry, we have not found a free place yet. Please be patient.")
end
else
v.obj:remove()
waiting_list[k] = nil
end
end
local newedge = edge - 5
-- Check if the players are near the edge and teleport them
local players = minetest.get_connected_players()
for i, player in ipairs(players) do
local name = player:get_player_name()
if not waiting_list[name] then
local pos = vector.round(player:getpos())
local newpos = nil
if pos.x >= edge then
newpos = {x = -newedge, y = 10, z = pos.z}
elseif pos.x <= -edge then
newpos = {x = newedge, y = 10, z = pos.z}
end
if pos.z >= edge then
newpos = {x = pos.x, y = 10, z = -newedge}
elseif pos.z <= -edge then
newpos = {x = pos.x, y = 10, z = newedge}
end
-- Teleport the player
if newpos then
minetest.chat_send_player(name, "Please wait a few seconds. We will teleport you soon.")
local obj = minetest.add_entity(newpos, "worldedge:lock")
player:set_attach(obj, "", {x=0, y=0, z=0}, {x=0, y=0, z=0})
waiting_list[name] = {
player = player,
pos = newpos,
obj = obj
}
obj:setpos(newpos)
end
end
end
end)
function get_surface_pos(pos)
local minp = {
x = pos.x - radius - 1,
y = -10,
z = pos.z - radius - 1
}
local maxp = {
x = pos.x + radius - 1,
y = 50,
z = pos.z + radius - 1
}
local c_air = minetest.get_content_id("air")
local c_ignore = minetest.get_content_id("ignore")
local vm = minetest.get_voxel_manip()
local emin, emax = vm:read_from_map(minp, maxp)
local area = VoxelArea:new{MinEdge = emin, MaxEdge = emax}
local data = vm:get_data()
local seen_air = false
local deepest_place = vector.new(pos)
deepest_place.y = 50
for x = minp.x, maxp.x do
for z = minp.z, maxp.z do
local solid = 0
for y = deepest_place.y, -10, -1 do
local node = data[area:index(x, y, z)]
if y < deepest_place.y and node == c_air then
deepest_place = vector.new(x, y, z)
seen_air = true
end
if solid > 5 then
-- Do not find caves!
break
end
if node ~= c_air and node ~= c_ignore then
solid = solid + 1
end
end
end
end
if seen_air then
return deepest_place
else
return false
end
end
minetest.register_entity("worldedge:lock", {
initial_properties = {
is_visible = false
},
on_activate = function(staticdata, dtime_s)
--self.object:set_armor_groups({immortal = 1})
end
})

View File

@ -1 +0,0 @@
name = worldedge

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB