mirror of
https://github.com/minetest-mods/worldedge.git
synced 2024-11-18 08:00:30 +01:00
Cleanup
Add comments and TODO
This commit is contained in:
parent
b610aeb809
commit
6f6650c252
19
README.md
19
README.md
@ -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
|
||||
Modified by Don
|
||||
Written by Amaz
|
||||
Modified by Don
|
60
init.lua
60
init.lua
@ -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
|
||||
|
||||
-- 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
|
||||
--]]
|
||||
|
||||
|
||||
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 count < 5 then
|
||||
return
|
||||
end
|
||||
count = 0
|
||||
|
||||
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
|
||||
end)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user