Add comments and TODO
This commit is contained in:
SmallJoker 2014-12-15 19:58:14 +01:00 committed by SmallJoker
parent b610aeb809
commit 6f6650c252
2 changed files with 34 additions and 45 deletions

View File

@ -1,20 +1,13 @@
worldedge
=========
A Minetest Mod that teleports you to the other side of the map when you reach the edge.
This mod makes it so when a player reaches the edge of the world they are teleported to the other side of the map.
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 2 numbers at the top of init.lua.
You can change the worlds edge by changing the first variable in init.lua
local edge = 30000
local edge = 30005
local newedge = 30000
License of code: WTFPL
set edge to where you want the edge of the map to be.
newedge sets where player teleports to. it needs to be less than edge by at least 1 block.
This mod is licenced as WTFPL
Writen by Amaz
Written by Amaz
Modified by Don

View File

@ -1,40 +1,36 @@
--------------
-- TODO: Check for terrain height
-- Defines the edge of a world
local edge = 30000
--------------
local count = 0
local edge = 30000 --sets the edge of map
local newedge = 29995 --sets the other side where player teleports to. Should be a few blocks less than edge
minetest.register_globalstep(function(dtime)
count = count + dtime
if count > 5 then
count = 0
local players = minetest.get_connected_players()
for _,player in pairs(players) do
local pos = player:getpos()
if pos.x >= edge then
player:moveto({x = -newedge, y = pos.y, z = pos.z})
end
if pos.x <= -edge then
player:moveto({x = newedge, y = pos.y, z = pos.z})
end
if count < 5 then
return
end
count = 0
-- This section is for the Y cord. It will move you from bottom to top or top to bottom of map
--[[
if pos.y >= edge then
player:moveto({x = pos.x, y = -newedge, z = pos.z})
end
if pos.y <= -edge then
player:moveto({x = pos.x, y = newedge, z = pos.z})
end
--]]
local newedge = edge - 5
-- Check if the players are near the edge and teleport them
local players = minetest.get_connected_players()
for _,player in pairs(players) do
local pos = player:getpos()
if pos.x >= edge then
player:moveto({x = -newedge, y = pos.y, z = pos.z})
end
if pos.x <= -edge then
player:moveto({x = newedge, y = pos.y, z = pos.z})
end
if pos.z >= edge then
player:moveto({x = pos.x, y = pos.y, z = -newedge})
end
if pos.z <= -edge then
player:moveto({x = pos.x, y = pos.y, z = newedge})
end
end
if pos.z >= edge then
player:moveto({x = pos.x, y = pos.y, z = -newedge})
end
if pos.z <= -edge then
player:moveto({x = pos.x, y = pos.y, z = newedge})
end
end
end)