Imported from trollstream "ContentDB"
commit
033e85d534
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 ymte
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
mcl_init
|
|
@ -0,0 +1,119 @@
|
||||||
|
local minx, minz, maxx, maxz
|
||||||
|
local border_name = "mcl_core:obsidian"
|
||||||
|
local border_built = false
|
||||||
|
|
||||||
|
function build_border()
|
||||||
|
if border_built then return end
|
||||||
|
border_built = true
|
||||||
|
|
||||||
|
-- place border
|
||||||
|
for dx=-1,16 do
|
||||||
|
local x = minx + dx
|
||||||
|
do
|
||||||
|
local z = maxz + 1
|
||||||
|
local y = minetest.get_spawn_level(x,z)
|
||||||
|
if y then
|
||||||
|
y = y - 2
|
||||||
|
minetest.set_node({x=x, y=y, z=z}, {name=border_name})
|
||||||
|
else
|
||||||
|
border_built = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
do
|
||||||
|
local z = minz - 1
|
||||||
|
local y = minetest.get_spawn_level(x,z)
|
||||||
|
if y then
|
||||||
|
y = y - 2
|
||||||
|
minetest.set_node({x=x, y=y, z=z}, {name=border_name})
|
||||||
|
else
|
||||||
|
border_built = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for dz=-1,16 do
|
||||||
|
local z = minz + dz
|
||||||
|
do
|
||||||
|
local x = maxx + 1
|
||||||
|
local y = minetest.get_spawn_level(x,z)
|
||||||
|
if y then
|
||||||
|
y = y - 2
|
||||||
|
minetest.set_node({x=x, y=y, z=z}, {name=border_name})
|
||||||
|
else
|
||||||
|
border_built = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
do
|
||||||
|
local x = minx - 1
|
||||||
|
local y = minetest.get_spawn_level(x,z)
|
||||||
|
if y then
|
||||||
|
y = y - 2
|
||||||
|
minetest.set_node({x=x, y=y, z=z}, {name=border_name})
|
||||||
|
else
|
||||||
|
border_built = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function gegenereerd()
|
||||||
|
if not minx or border_built then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
build_border()
|
||||||
|
end
|
||||||
|
|
||||||
|
function join(player)
|
||||||
|
local startpos = player:get_pos()
|
||||||
|
if not minx then
|
||||||
|
minx = math.floor(startpos.x / 16) * 16
|
||||||
|
minz = math.floor(startpos.z / 16) * 16
|
||||||
|
maxx = minx + 15
|
||||||
|
maxz = minz + 15
|
||||||
|
|
||||||
|
build_border()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mag(pos)
|
||||||
|
if pos.x < minx then return false end
|
||||||
|
if pos.z < minz then return false end
|
||||||
|
if pos.x > maxx then return false end
|
||||||
|
if pos.z > maxz then return false end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function inhoude(dtime)
|
||||||
|
local players = minetest.get_connected_players()
|
||||||
|
for _, player in pairs(players) do
|
||||||
|
local pos = player:get_pos()
|
||||||
|
if not mag(pos) then
|
||||||
|
if pos.x < minx then pos.x = minx end
|
||||||
|
if pos.z < minz then pos.z = minz end
|
||||||
|
if pos.x > maxx then pos.x = maxx end
|
||||||
|
if pos.z > maxz then pos.z = maxz end
|
||||||
|
player:set_pos(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function place(pos, newnode, placer, oldnode, stemstack, pointed_thing)
|
||||||
|
if not mag(pos) then
|
||||||
|
minetest.set_node(pos, oldnode)
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function dig(pos, oldnode, digger)
|
||||||
|
if not mag(pos) then
|
||||||
|
minetest.set_node(pos, oldnode)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_generated(gegenereerd)
|
||||||
|
minetest.register_globalstep(inhoude)
|
||||||
|
minetest.register_on_joinplayer(join)
|
||||||
|
minetest.register_on_placenode(place)
|
||||||
|
minetest.register_on_dignode(dig)
|
|
@ -0,0 +1,9 @@
|
||||||
|
name = spawn_chunk
|
||||||
|
title = Spawn Chunk
|
||||||
|
description = Limits the player and its actions to the spawn chunk. Works only for MineClone. Credits to MineClone 5 for the screenshot.
|
||||||
|
author = ymte
|
||||||
|
license = LICENSE.txt
|
||||||
|
forum = https://content.minetest.net/threads/2775/
|
||||||
|
version = 1.0-RC3
|
||||||
|
depends = mcl_init
|
||||||
|
optional_depends =
|
Binary file not shown.
After Width: | Height: | Size: 684 KiB |
Loading…
Reference in New Issue