poikilos
5 years ago
committed by
Jacob Gustafson
10 changed files with 1082 additions and 0 deletions
@ -0,0 +1,12 @@ |
|||
For license information, see the following files, where they exist, in |
|||
each modpack or mod: |
|||
|
|||
oldcoder.txt |
|||
LICENSE |
|||
LICENSE.txt |
|||
license.txt |
|||
README.md |
|||
README.txt |
|||
readme.txt |
|||
|
|||
and/or files with similar names. |
@ -0,0 +1,19 @@ |
|||
Name: coderwarp |
|||
Source: New mod incorporating old code |
|||
License: WTFPL |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
This mod will need changes to the world ".conf" file and to "init.lua" |
|||
for each world. |
|||
|
|||
By default, dynamic spawn management is used. To use a single fixed |
|||
spawnpoint, add two settings of the following form to the world |
|||
".conf" file: |
|||
|
|||
disable_multispawn = true |
|||
static_spawn_point = 10, 10, 5 |
|||
|
|||
The dynamic spawn management code is similar to code by Pitriss and |
|||
Octactian but is believed to have evolved independently and to be un- |
|||
der the WTFPL. |
@ -0,0 +1,471 @@ |
|||
-- =================================================================== |
|||
|
|||
local function is_empty (s) |
|||
if (s == nil) or (s == '') then return true end |
|||
return false |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local disable_multispawn = |
|||
minetest.setting_getbool ("disable_multispawn" ) |
|||
|
|||
local enable_bucket_city = |
|||
minetest.setting_getbool ("enable_bucket_city" ) |
|||
|
|||
local enable_edgylos = |
|||
minetest.setting_getbool ("enable_edgylos" ) |
|||
|
|||
local enable_moontest = |
|||
minetest.setting_getbool ("enable_moon" ) or |
|||
minetest.setting_getbool ("enable_moontest" ) |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_privilege ("spawn", |
|||
{ description = "Enables shortcut teleport commands" }) |
|||
|
|||
local teleport_to_spawn |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function CloneTable (original) |
|||
local copy = {} |
|||
for k, v in pairs (original) do |
|||
if type (v) == 'table' then |
|||
v = CloneTable (v) |
|||
end |
|||
copy [k] = v |
|||
end |
|||
return copy |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function setwarp (warpname, fullname) |
|||
|
|||
local s_point = "static_" .. warpname .. "_point" |
|||
local s_pos = minetest.setting_get_pos (s_point) |
|||
if s_pos == nil or s_pos == "" then return end |
|||
|
|||
minetest.register_chatcommand (warpname, { |
|||
description = "Teleport to " .. warpname , |
|||
params = "" , |
|||
privs = { interact=true } , |
|||
|
|||
func = function (name, params) |
|||
local key = warpname |
|||
local player = minetest.env:get_player_by_name (name) |
|||
local point = "static_" .. key .. "_point" |
|||
local pos = minetest.setting_get_pos (point) |
|||
|
|||
if pos then |
|||
minetest.chat_send_player (name, |
|||
"Teleporting to " .. fullname) |
|||
player:setpos (pos) |
|||
codersky.update_skybox (player) |
|||
return true |
|||
else |
|||
minetest.chat_send_player (name, |
|||
"ERROR: " .. key .. " point isn't set on this server") |
|||
return false |
|||
end |
|||
end |
|||
}) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_globalstep (function (dtime) |
|||
if collectgarbage ("count") > 307200 then collectgarbage() end |
|||
end) |
|||
|
|||
-- =================================================================== |
|||
|
|||
if enable_moontest then |
|||
setwarp ("earth" , "Earth" ) |
|||
setwarp ("moon" , "Moon" ) |
|||
else |
|||
setwarp ("earth" , "Earth 2" ) |
|||
end |
|||
|
|||
setwarp ("bron" , "BRON Realm" ) |
|||
setwarp ("tron" , "BRON Realm" ) |
|||
setwarp ("planetoid" , "Planetoids Realm" ) |
|||
setwarp ("planetoids" , "Planetoids Realm" ) |
|||
setwarp ("asteroid" , "Asteroids Realm" ) |
|||
setwarp ("asteroids" , "Asteroids Realm" ) |
|||
|
|||
-- Nyan RedIce World |
|||
setwarp ("atlantis" , "Atlantis" ) |
|||
setwarp ("corner" , "Corner of World" ) |
|||
setwarp ("lulu" , "lulululu offices" ) |
|||
setwarp ("oddsymbol" , "Odd Symbol" ) |
|||
setwarp ("palmcove" , "Palm Cove" ) |
|||
setwarp ("pierre" , "Pierre's Mines" ) |
|||
setwarp ("ramor" , "Ramor's Room" ) |
|||
setwarp ("skybase" , "Sky Base" ) |
|||
setwarp ("walle" , "Big Robot" ) |
|||
setwarp ("wallee" , "Big Robot" ) |
|||
|
|||
setwarp ("mauvebic" , "Mauvebic City" ) |
|||
setwarp ("russharbor" , "Russian Harbor" ) |
|||
setwarp ("russian" , "Russian Harbor" ) |
|||
|
|||
setwarp ("bremen" , "Bremen" ) |
|||
setwarp ("bucket" , "Bucket City" ) |
|||
setwarp ("bucketcity" , "Bucket City" ) |
|||
setwarp ("hometown" , "HomeTown" ) |
|||
setwarp ("karsthafen" , "Karsthafen" ) |
|||
setwarp ("leyadel" , "Leyadel" ) |
|||
setwarp ("liberty" , "Statue of Liberty" ) |
|||
setwarp ("shadow" , "Shadow City" ) |
|||
setwarp ("shadowcity" , "Shadow City" ) |
|||
setwarp ("shadownet" , "ShadowNet Central" ) |
|||
setwarp ("sonos" , "SONOS Capitol" ) |
|||
setwarp ("stadium" , "Veritas Stadium" ) |
|||
setwarp ("nyc" , "NYC Times Square" ) |
|||
setwarp ("timesquare" , "NYC Times Square" ) |
|||
setwarp ("timessquare" , "NYC Times Square" ) |
|||
setwarp ("ussent" , "NYC USS Enterprise" ) |
|||
|
|||
-- =================================================================== |
|||
-- Bucket City points of interest. |
|||
|
|||
setwarp ("angkor" , "Angkor Wat" ) |
|||
setwarp ("angkorwat" , "Angkor Wat" ) |
|||
setwarp ("angkorcross" , "Angkor Wat at Cross" ) |
|||
setwarp ("angkorhigh" , "Angkor Wat High Plaza" ) |
|||
|
|||
setwarp ("apartment" , "Apartment Block" ) |
|||
setwarp ("babylon" , "Hanging Gardens of Babylon" ) |
|||
setwarp ("bighouse" , "Big Manor House" ) |
|||
setwarp ("building" , "Strange Unfinished Building" ) |
|||
setwarp ("challenge" , "Community Challenge" ) |
|||
setwarp ("citadel" , "The Citadel" ) |
|||
|
|||
setwarp ("bigtemple" , "Huge Temple" ) |
|||
setwarp ("hugetemple" , "Huge Temple" ) |
|||
setwarp ("templecat" , "Temple of the Cat" ) |
|||
setwarp ("templelight" , "Temple of Light and Dark" ) |
|||
setwarp ("templewell" , "Temple of the Sacred Well" ) |
|||
|
|||
setwarp ("empty" , "Empty Town Garden" ) |
|||
setwarp ("emptygarden" , "Empty Town Garden" ) |
|||
setwarp ("farm" , "Farm of No Harm" ) |
|||
setwarp ("forum" , "The Minetest Forum" ) |
|||
setwarp ("gardencastle" , "Garden Castle" ) |
|||
|
|||
setwarp ("house1" , "House of Mysteries" ) |
|||
setwarp ("house2" , "House of Secrets" ) |
|||
setwarp ("house3" , "House of Lazy Sunday" ) |
|||
setwarp ("house01" , "House of Mysteries" ) |
|||
setwarp ("house02" , "House of Secrets" ) |
|||
setwarp ("house03" , "House of Lazy Sunday" ) |
|||
|
|||
setwarp ("kiosk" , "The Kiosk" ) |
|||
setwarp ("nother" , "Nother Castle" ) |
|||
setwarp ("palace" , "Buckinghuge Castle" ) |
|||
setwarp ("picnic" , "Public Picnic Grounds" ) |
|||
setwarp ("ranger" , "Ranger's Outpost" ) |
|||
setwarp ("tavern" , "Terry's Tavern" ) |
|||
setwarp ("tinyfort" , "Tiny Fort" ) |
|||
|
|||
setwarp ("townhall" , "Town Hall" ) |
|||
setwarp ("village" , "The Village" ) |
|||
setwarp ("beata" , "Villa Beata" ) |
|||
setwarp ("villa" , "Villa Beata" ) |
|||
|
|||
setwarp ("bluecottage" , "Blue Cottage" ) |
|||
setwarp ("clubhouse" , "Clubhouse" ) |
|||
setwarp ("decotower" , "Deco Tower" ) |
|||
setwarp ("desertmotel" , "Desert Motel" ) |
|||
setwarp ("diagonal" , "Diagonal Development" ) |
|||
setwarp ("dyersguild" , "Dyer's Guild" ) |
|||
|
|||
setwarp ("grandhall" , "Grand Hall" ) |
|||
setwarp ("poshdining" , "Posh Restaurant" ) |
|||
setwarp ("romanfort" , "Roman Fort" ) |
|||
setwarp ("stardome" , "The Stardome" ) |
|||
setwarp ("wizardskeep" , "Wizard's Keep" ) |
|||
|
|||
-- Possibly temporary aliases: |
|||
-- |
|||
setwarp ("cottage" , "Blue Cottage" ) |
|||
setwarp ("dyers" , "Dyer's Guild" ) |
|||
setwarp ("fort" , "Roman Fort" ) |
|||
setwarp ("motel" , "Desert Motel" ) |
|||
|
|||
-- =================================================================== |
|||
-- Legends of Survival. |
|||
|
|||
if enable_edgylos then |
|||
setwarp ("adam" , "Adam's Place" ) |
|||
setwarp ("bremen" , "Bremen" ) |
|||
setwarp ("newspawn" , "New Spawn" ) |
|||
setwarp ("robocop" , "Robo LEO" ) |
|||
setwarp ("ruslan1" , "Ruslan1's House" ) |
|||
setwarp ("tinytrain" , "Tiny Train" ) |
|||
setwarp ("village" , "Village" ) |
|||
setwarp ("zulfikar" , "Zulfikar's Place" ) |
|||
|
|||
setwarp ("armenia" , "Armenia" ) |
|||
setwarp ("bogdan" , "Bogdan 0575" ) |
|||
setwarp ("bogdan0575" , "Bogdan 0575" ) |
|||
setwarp ("zetg" , "zetg place" ) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local static_spawn_point = |
|||
minetest.settings:get ("static_spawn_point" ) |
|||
|
|||
local static_spawnpoint = |
|||
minetest.settings:get ("static_spawnpoint" ) |
|||
|
|||
if is_empty (static_spawn_point) then |
|||
static_spawn_point = static_spawnpoint |
|||
end |
|||
|
|||
if not is_empty (static_spawn_point) then |
|||
disable_multispawn = true |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
if disable_multispawn then |
|||
teleport_to_spawn = function (name) |
|||
if is_empty (static_spawn_point) then |
|||
return false |
|||
end |
|||
local pos = minetest.string_to_pos (static_spawn_point) |
|||
|
|||
if pos ~= nil then |
|||
local player = minetest.env:get_player_by_name (name) |
|||
player:setpos (pos) |
|||
codersky.update_skybox (player) |
|||
return true |
|||
end |
|||
|
|||
return false |
|||
end |
|||
|
|||
minetest.register_chatcommand ("spawn", { |
|||
description = "Teleport to spawnpoint" , |
|||
privs = {} , |
|||
func = function (name) |
|||
teleport_to_spawn (name) |
|||
end |
|||
}) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
if not disable_multispawn then |
|||
spawnpoints = {} |
|||
|
|||
spawnpoints.list = { |
|||
cid = 1 , |
|||
} |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function load_spawns() |
|||
local f = io.open (minetest.get_worldpath() .. "/spawnpoints", "r") |
|||
if not f then |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [1]") |
|||
return |
|||
end |
|||
|
|||
spawnpoints.list = minetest.deserialize (f:read ("*a")) |
|||
f:close() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function save_spawns() |
|||
local f = io.open (minetest.get_worldpath() .. "/spawnpoints", "w") |
|||
if not f then return end |
|||
f:write (minetest.serialize (spawnpoints.list)) |
|||
f:close() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
teleport_to_spawn = function (pname, id) |
|||
if #spawnpoints.list == 0 then |
|||
minetest.chat_send_player (pname, |
|||
"Sorry, there are no spawns set") |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [2]") |
|||
return |
|||
end |
|||
|
|||
local spawn = nil |
|||
|
|||
if id ~= nil then |
|||
for _, spwn in ipairs (spawnpoints.list) do |
|||
if spwn.id == id then |
|||
spawn = spwn |
|||
break |
|||
end |
|||
end |
|||
else |
|||
id = math.floor (math.random() * #spawnpoints.list) + 1 |
|||
minetest.chat_send_player (pname, |
|||
"Teleporting to spawn #" .. id) |
|||
spawn = spawnpoints.list [id] |
|||
end |
|||
|
|||
if not spawn then |
|||
minetest.chat_send_player (pname, |
|||
"Sorry, spawn #" .. id .. " doesn't exist") |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [3]") |
|||
return |
|||
end |
|||
|
|||
local player = minetest.get_player_by_name(pname) |
|||
player:setpos (spawn) |
|||
codersky.update_skybox (player) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_chatcommand ("spawn", { |
|||
params = "[id]", |
|||
description = "Teleport to spawnpoint", |
|||
privs = {}, |
|||
func = function(name, param) |
|||
local id = tonumber(param) |
|||
|
|||
if id == nil then |
|||
teleport_to_spawn (name) |
|||
else |
|||
teleport_to_spawn (name, id) |
|||
end |
|||
end, |
|||
}) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_addspawn = { |
|||
params = "<x> <y> <z>", |
|||
description = "Add a spawnpoint", |
|||
privs = {basic_privs=true}, |
|||
func = function(name, param) |
|||
local x, y, z = param:match ('(.-) (.-) (.*)') |
|||
x = tonumber (x) |
|||
y = tonumber (y) |
|||
z = tonumber (z) |
|||
|
|||
if not x or not y or not z then |
|||
x, y, z = param:match ('(.-) *, *(.-) *, *(.*)') |
|||
x = tonumber (x) |
|||
y = tonumber (y) |
|||
z = tonumber (z) |
|||
|
|||
if not x or not y or not z then |
|||
minetest.chat_send_player (name, |
|||
"Invalid coordinates") |
|||
return |
|||
end |
|||
end |
|||
|
|||
spawnpoints.list [#spawnpoints.list + 1] = { |
|||
x=x, y=y, z=z, id=spawnpoints.list.cid |
|||
} |
|||
|
|||
local id = spawnpoints.list.cid |
|||
spawnpoints.list.cid = spawnpoints.list.cid + 1 |
|||
minetest.chat_send_player (name, "Created new spawnpoint. ID: " .. id) |
|||
save_spawns() |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("add_spawn" , tb_addspawn) |
|||
minetest.register_chatcommand ("addspawn" , tb_addspawn) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_delspawn = { |
|||
params = "<id>", |
|||
description = "Delete a spawnpoint", |
|||
privs = { basic_privs=true } , |
|||
|
|||
func = function (name, param) |
|||
local id = tonumber (param) |
|||
if not id then |
|||
minetest.chat_send_player (name, "Invalid ID") |
|||
return |
|||
end |
|||
local del = false |
|||
local newlist = {} |
|||
|
|||
for i, sp in ipairs (spawnpoints.list) do |
|||
if sp.id == id then |
|||
del = true |
|||
else |
|||
newlist [#newlist + 1] = |
|||
CloneTable (spawnpoints.list [i]) |
|||
end |
|||
end |
|||
newlist.cid = spawnpoints.list.cid |
|||
spawnpoints.list = newlist |
|||
|
|||
if del then |
|||
minetest.chat_send_player (name, |
|||
"Deleted spawnpoint #" .. id) |
|||
save_spawns() |
|||
else |
|||
minetest.chat_send_player(name, |
|||
"There was no spawnpoint #" .. id) |
|||
end |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("del_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("delspawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("delete_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("deletespawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("rm_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("rmspawn" , tb_delspawn) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_listspawns = { |
|||
params = "", |
|||
description = "List spawnpoints" , |
|||
privs = {}, |
|||
func = function (name, param) |
|||
for _, sp in ipairs (spawnpoints.list) do |
|||
local str = minetest.pos_to_string (sp) .. " #" .. sp.id |
|||
minetest.chat_send_player (name, str) |
|||
end |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("list_spawn" , tb_listspawns) |
|||
minetest.register_chatcommand ("listspawn" , tb_listspawns) |
|||
minetest.register_chatcommand ("list_spawns" , tb_listspawns) |
|||
minetest.register_chatcommand ("listspawns" , tb_listspawns) |
|||
|
|||
-- =================================================================== |
|||
|
|||
load_spawns() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_on_newplayer (function (player) |
|||
teleport_to_spawn (player:get_player_name()) |
|||
return true |
|||
end) |
|||
|
|||
minetest.register_on_respawnplayer (function (player) |
|||
teleport_to_spawn (player:get_player_name()) |
|||
return true |
|||
end) |
|||
|
|||
minetest.log ("action", "Loaded coderwarp") |
@ -0,0 +1,19 @@ |
|||
Name: coderwarp |
|||
Source: New mod incorporating old code |
|||
License: WTFPL |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
This mod will need changes to the world ".conf" file and to "init.lua" |
|||
for each world. |
|||
|
|||
By default, dynamic spawn management is used. To use a single fixed |
|||
spawnpoint, add two settings of the following form to the world |
|||
".conf" file: |
|||
|
|||
disable_multispawn = true |
|||
static_spawn_point = 10, 10, 5 |
|||
|
|||
The dynamic spawn management code is similar to code by Pitriss and |
|||
Octactian but is believed to have evolved independently and to be un- |
|||
der the WTFPL. |
@ -0,0 +1,20 @@ |
|||
Name: stairs |
|||
Source: Modified upstream mod (do not replace) |
|||
License: See "license.txt" |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
1. This is a copy of the standard MT "stairs" mod from circa mid-2016. |
|||
It should not, ever, be synced with upstream or placing and/or screw- |
|||
driver may not work correctly. |
|||
|
|||
As a related note, the following upstream commit in "minetest_game", |
|||
which applies to "stairs", is bad and shouldn't be used: |
|||
|
|||
e6d0d775e3533b7b91b292e13c800b9737e057fd |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
2. Changes include: |
|||
|
|||
2a. Added the files "00README" and "oldcoder.txt" (this file). |
@ -0,0 +1,12 @@ |
|||
For license information, see the following files, where they exist, in |
|||
each modpack or mod: |
|||
|
|||
oldcoder.txt |
|||
LICENSE |
|||
LICENSE.txt |
|||
license.txt |
|||
README.md |
|||
README.txt |
|||
readme.txt |
|||
|
|||
and/or files with similar names. |
@ -0,0 +1,19 @@ |
|||
Name: coderwarp |
|||
Source: New mod incorporating old code |
|||
License: WTFPL |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
This mod will need changes to the world ".conf" file and to "init.lua" |
|||
for each world. |
|||
|
|||
By default, dynamic spawn management is used. To use a single fixed |
|||
spawnpoint, add two settings of the following form to the world |
|||
".conf" file: |
|||
|
|||
disable_multispawn = true |
|||
static_spawn_point = 10, 10, 5 |
|||
|
|||
The dynamic spawn management code is similar to code by Pitriss and |
|||
Octactian but is believed to have evolved independently and to be un- |
|||
der the WTFPL. |
@ -0,0 +1,471 @@ |
|||
-- =================================================================== |
|||
|
|||
local function is_empty (s) |
|||
if (s == nil) or (s == '') then return true end |
|||
return false |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local disable_multispawn = |
|||
minetest.setting_getbool ("disable_multispawn" ) |
|||
|
|||
local enable_bucket_city = |
|||
minetest.setting_getbool ("enable_bucket_city" ) |
|||
|
|||
local enable_edgylos = |
|||
minetest.setting_getbool ("enable_edgylos" ) |
|||
|
|||
local enable_moontest = |
|||
minetest.setting_getbool ("enable_moon" ) or |
|||
minetest.setting_getbool ("enable_moontest" ) |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_privilege ("spawn", |
|||
{ description = "Enables shortcut teleport commands" }) |
|||
|
|||
local teleport_to_spawn |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function CloneTable (original) |
|||
local copy = {} |
|||
for k, v in pairs (original) do |
|||
if type (v) == 'table' then |
|||
v = CloneTable (v) |
|||
end |
|||
copy [k] = v |
|||
end |
|||
return copy |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function setwarp (warpname, fullname) |
|||
|
|||
local s_point = "static_" .. warpname .. "_point" |
|||
local s_pos = minetest.setting_get_pos (s_point) |
|||
if s_pos == nil or s_pos == "" then return end |
|||
|
|||
minetest.register_chatcommand (warpname, { |
|||
description = "Teleport to " .. warpname , |
|||
params = "" , |
|||
privs = { interact=true } , |
|||
|
|||
func = function (name, params) |
|||
local key = warpname |
|||
local player = minetest.env:get_player_by_name (name) |
|||
local point = "static_" .. key .. "_point" |
|||
local pos = minetest.setting_get_pos (point) |
|||
|
|||
if pos then |
|||
minetest.chat_send_player (name, |
|||
"Teleporting to " .. fullname) |
|||
player:setpos (pos) |
|||
codersky.update_skybox (player) |
|||
return true |
|||
else |
|||
minetest.chat_send_player (name, |
|||
"ERROR: " .. key .. " point isn't set on this server") |
|||
return false |
|||
end |
|||
end |
|||
}) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_globalstep (function (dtime) |
|||
if collectgarbage ("count") > 307200 then collectgarbage() end |
|||
end) |
|||
|
|||
-- =================================================================== |
|||
|
|||
if enable_moontest then |
|||
setwarp ("earth" , "Earth" ) |
|||
setwarp ("moon" , "Moon" ) |
|||
else |
|||
setwarp ("earth" , "Earth 2" ) |
|||
end |
|||
|
|||
setwarp ("bron" , "BRON Realm" ) |
|||
setwarp ("tron" , "BRON Realm" ) |
|||
setwarp ("planetoid" , "Planetoids Realm" ) |
|||
setwarp ("planetoids" , "Planetoids Realm" ) |
|||
setwarp ("asteroid" , "Asteroids Realm" ) |
|||
setwarp ("asteroids" , "Asteroids Realm" ) |
|||
|
|||
-- Nyan RedIce World |
|||
setwarp ("atlantis" , "Atlantis" ) |
|||
setwarp ("corner" , "Corner of World" ) |
|||
setwarp ("lulu" , "lulululu offices" ) |
|||
setwarp ("oddsymbol" , "Odd Symbol" ) |
|||
setwarp ("palmcove" , "Palm Cove" ) |
|||
setwarp ("pierre" , "Pierre's Mines" ) |
|||
setwarp ("ramor" , "Ramor's Room" ) |
|||
setwarp ("skybase" , "Sky Base" ) |
|||
setwarp ("walle" , "Big Robot" ) |
|||
setwarp ("wallee" , "Big Robot" ) |
|||
|
|||
setwarp ("mauvebic" , "Mauvebic City" ) |
|||
setwarp ("russharbor" , "Russian Harbor" ) |
|||
setwarp ("russian" , "Russian Harbor" ) |
|||
|
|||
setwarp ("bremen" , "Bremen" ) |
|||
setwarp ("bucket" , "Bucket City" ) |
|||
setwarp ("bucketcity" , "Bucket City" ) |
|||
setwarp ("hometown" , "HomeTown" ) |
|||
setwarp ("karsthafen" , "Karsthafen" ) |
|||
setwarp ("leyadel" , "Leyadel" ) |
|||
setwarp ("liberty" , "Statue of Liberty" ) |
|||
setwarp ("shadow" , "Shadow City" ) |
|||
setwarp ("shadowcity" , "Shadow City" ) |
|||
setwarp ("shadownet" , "ShadowNet Central" ) |
|||
setwarp ("sonos" , "SONOS Capitol" ) |
|||
setwarp ("stadium" , "Veritas Stadium" ) |
|||
setwarp ("nyc" , "NYC Times Square" ) |
|||
setwarp ("timesquare" , "NYC Times Square" ) |
|||
setwarp ("timessquare" , "NYC Times Square" ) |
|||
setwarp ("ussent" , "NYC USS Enterprise" ) |
|||
|
|||
-- =================================================================== |
|||
-- Bucket City points of interest. |
|||
|
|||
setwarp ("angkor" , "Angkor Wat" ) |
|||
setwarp ("angkorwat" , "Angkor Wat" ) |
|||
setwarp ("angkorcross" , "Angkor Wat at Cross" ) |
|||
setwarp ("angkorhigh" , "Angkor Wat High Plaza" ) |
|||
|
|||
setwarp ("apartment" , "Apartment Block" ) |
|||
setwarp ("babylon" , "Hanging Gardens of Babylon" ) |
|||
setwarp ("bighouse" , "Big Manor House" ) |
|||
setwarp ("building" , "Strange Unfinished Building" ) |
|||
setwarp ("challenge" , "Community Challenge" ) |
|||
setwarp ("citadel" , "The Citadel" ) |
|||
|
|||
setwarp ("bigtemple" , "Huge Temple" ) |
|||
setwarp ("hugetemple" , "Huge Temple" ) |
|||
setwarp ("templecat" , "Temple of the Cat" ) |
|||
setwarp ("templelight" , "Temple of Light and Dark" ) |
|||
setwarp ("templewell" , "Temple of the Sacred Well" ) |
|||
|
|||
setwarp ("empty" , "Empty Town Garden" ) |
|||
setwarp ("emptygarden" , "Empty Town Garden" ) |
|||
setwarp ("farm" , "Farm of No Harm" ) |
|||
setwarp ("forum" , "The Minetest Forum" ) |
|||
setwarp ("gardencastle" , "Garden Castle" ) |
|||
|
|||
setwarp ("house1" , "House of Mysteries" ) |
|||
setwarp ("house2" , "House of Secrets" ) |
|||
setwarp ("house3" , "House of Lazy Sunday" ) |
|||
setwarp ("house01" , "House of Mysteries" ) |
|||
setwarp ("house02" , "House of Secrets" ) |
|||
setwarp ("house03" , "House of Lazy Sunday" ) |
|||
|
|||
setwarp ("kiosk" , "The Kiosk" ) |
|||
setwarp ("nother" , "Nother Castle" ) |
|||
setwarp ("palace" , "Buckinghuge Castle" ) |
|||
setwarp ("picnic" , "Public Picnic Grounds" ) |
|||
setwarp ("ranger" , "Ranger's Outpost" ) |
|||
setwarp ("tavern" , "Terry's Tavern" ) |
|||
setwarp ("tinyfort" , "Tiny Fort" ) |
|||
|
|||
setwarp ("townhall" , "Town Hall" ) |
|||
setwarp ("village" , "The Village" ) |
|||
setwarp ("beata" , "Villa Beata" ) |
|||
setwarp ("villa" , "Villa Beata" ) |
|||
|
|||
setwarp ("bluecottage" , "Blue Cottage" ) |
|||
setwarp ("clubhouse" , "Clubhouse" ) |
|||
setwarp ("decotower" , "Deco Tower" ) |
|||
setwarp ("desertmotel" , "Desert Motel" ) |
|||
setwarp ("diagonal" , "Diagonal Development" ) |
|||
setwarp ("dyersguild" , "Dyer's Guild" ) |
|||
|
|||
setwarp ("grandhall" , "Grand Hall" ) |
|||
setwarp ("poshdining" , "Posh Restaurant" ) |
|||
setwarp ("romanfort" , "Roman Fort" ) |
|||
setwarp ("stardome" , "The Stardome" ) |
|||
setwarp ("wizardskeep" , "Wizard's Keep" ) |
|||
|
|||
-- Possibly temporary aliases: |
|||
-- |
|||
setwarp ("cottage" , "Blue Cottage" ) |
|||
setwarp ("dyers" , "Dyer's Guild" ) |
|||
setwarp ("fort" , "Roman Fort" ) |
|||
setwarp ("motel" , "Desert Motel" ) |
|||
|
|||
-- =================================================================== |
|||
-- Legends of Survival. |
|||
|
|||
if enable_edgylos then |
|||
setwarp ("adam" , "Adam's Place" ) |
|||
setwarp ("bremen" , "Bremen" ) |
|||
setwarp ("newspawn" , "New Spawn" ) |
|||
setwarp ("robocop" , "Robo LEO" ) |
|||
setwarp ("ruslan1" , "Ruslan1's House" ) |
|||
setwarp ("tinytrain" , "Tiny Train" ) |
|||
setwarp ("village" , "Village" ) |
|||
setwarp ("zulfikar" , "Zulfikar's Place" ) |
|||
|
|||
setwarp ("armenia" , "Armenia" ) |
|||
setwarp ("bogdan" , "Bogdan 0575" ) |
|||
setwarp ("bogdan0575" , "Bogdan 0575" ) |
|||
setwarp ("zetg" , "zetg place" ) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local static_spawn_point = |
|||
minetest.settings:get ("static_spawn_point" ) |
|||
|
|||
local static_spawnpoint = |
|||
minetest.settings:get ("static_spawnpoint" ) |
|||
|
|||
if is_empty (static_spawn_point) then |
|||
static_spawn_point = static_spawnpoint |
|||
end |
|||
|
|||
if not is_empty (static_spawn_point) then |
|||
disable_multispawn = true |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
if disable_multispawn then |
|||
teleport_to_spawn = function (name) |
|||
if is_empty (static_spawn_point) then |
|||
return false |
|||
end |
|||
local pos = minetest.string_to_pos (static_spawn_point) |
|||
|
|||
if pos ~= nil then |
|||
local player = minetest.env:get_player_by_name (name) |
|||
player:setpos (pos) |
|||
codersky.update_skybox (player) |
|||
return true |
|||
end |
|||
|
|||
return false |
|||
end |
|||
|
|||
minetest.register_chatcommand ("spawn", { |
|||
description = "Teleport to spawnpoint" , |
|||
privs = {} , |
|||
func = function (name) |
|||
teleport_to_spawn (name) |
|||
end |
|||
}) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
if not disable_multispawn then |
|||
spawnpoints = {} |
|||
|
|||
spawnpoints.list = { |
|||
cid = 1 , |
|||
} |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function load_spawns() |
|||
local f = io.open (minetest.get_worldpath() .. "/spawnpoints", "r") |
|||
if not f then |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [1]") |
|||
return |
|||
end |
|||
|
|||
spawnpoints.list = minetest.deserialize (f:read ("*a")) |
|||
f:close() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
local function save_spawns() |
|||
local f = io.open (minetest.get_worldpath() .. "/spawnpoints", "w") |
|||
if not f then return end |
|||
f:write (minetest.serialize (spawnpoints.list)) |
|||
f:close() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
teleport_to_spawn = function (pname, id) |
|||
if #spawnpoints.list == 0 then |
|||
minetest.chat_send_player (pname, |
|||
"Sorry, there are no spawns set") |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [2]") |
|||
return |
|||
end |
|||
|
|||
local spawn = nil |
|||
|
|||
if id ~= nil then |
|||
for _, spwn in ipairs (spawnpoints.list) do |
|||
if spwn.id == id then |
|||
spawn = spwn |
|||
break |
|||
end |
|||
end |
|||
else |
|||
id = math.floor (math.random() * #spawnpoints.list) + 1 |
|||
minetest.chat_send_player (pname, |
|||
"Teleporting to spawn #" .. id) |
|||
spawn = spawnpoints.list [id] |
|||
end |
|||
|
|||
if not spawn then |
|||
minetest.chat_send_player (pname, |
|||
"Sorry, spawn #" .. id .. " doesn't exist") |
|||
minetest.log ("action", |
|||
"[coderwarp] Missing spawn data [3]") |
|||
return |
|||
end |
|||
|
|||
local player = minetest.get_player_by_name(pname) |
|||
player:setpos (spawn) |
|||
codersky.update_skybox (player) |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_chatcommand ("spawn", { |
|||
params = "[id]", |
|||
description = "Teleport to spawnpoint", |
|||
privs = {}, |
|||
func = function(name, param) |
|||
local id = tonumber(param) |
|||
|
|||
if id == nil then |
|||
teleport_to_spawn (name) |
|||
else |
|||
teleport_to_spawn (name, id) |
|||
end |
|||
end, |
|||
}) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_addspawn = { |
|||
params = "<x> <y> <z>", |
|||
description = "Add a spawnpoint", |
|||
privs = {basic_privs=true}, |
|||
func = function(name, param) |
|||
local x, y, z = param:match ('(.-) (.-) (.*)') |
|||
x = tonumber (x) |
|||
y = tonumber (y) |
|||
z = tonumber (z) |
|||
|
|||
if not x or not y or not z then |
|||
x, y, z = param:match ('(.-) *, *(.-) *, *(.*)') |
|||
x = tonumber (x) |
|||
y = tonumber (y) |
|||
z = tonumber (z) |
|||
|
|||
if not x or not y or not z then |
|||
minetest.chat_send_player (name, |
|||
"Invalid coordinates") |
|||
return |
|||
end |
|||
end |
|||
|
|||
spawnpoints.list [#spawnpoints.list + 1] = { |
|||
x=x, y=y, z=z, id=spawnpoints.list.cid |
|||
} |
|||
|
|||
local id = spawnpoints.list.cid |
|||
spawnpoints.list.cid = spawnpoints.list.cid + 1 |
|||
minetest.chat_send_player (name, "Created new spawnpoint. ID: " .. id) |
|||
save_spawns() |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("add_spawn" , tb_addspawn) |
|||
minetest.register_chatcommand ("addspawn" , tb_addspawn) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_delspawn = { |
|||
params = "<id>", |
|||
description = "Delete a spawnpoint", |
|||
privs = { basic_privs=true } , |
|||
|
|||
func = function (name, param) |
|||
local id = tonumber (param) |
|||
if not id then |
|||
minetest.chat_send_player (name, "Invalid ID") |
|||
return |
|||
end |
|||
local del = false |
|||
local newlist = {} |
|||
|
|||
for i, sp in ipairs (spawnpoints.list) do |
|||
if sp.id == id then |
|||
del = true |
|||
else |
|||
newlist [#newlist + 1] = |
|||
CloneTable (spawnpoints.list [i]) |
|||
end |
|||
end |
|||
newlist.cid = spawnpoints.list.cid |
|||
spawnpoints.list = newlist |
|||
|
|||
if del then |
|||
minetest.chat_send_player (name, |
|||
"Deleted spawnpoint #" .. id) |
|||
save_spawns() |
|||
else |
|||
minetest.chat_send_player(name, |
|||
"There was no spawnpoint #" .. id) |
|||
end |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("del_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("delspawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("delete_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("deletespawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("rm_spawn" , tb_delspawn) |
|||
minetest.register_chatcommand ("rmspawn" , tb_delspawn) |
|||
|
|||
-- =================================================================== |
|||
|
|||
local tb_listspawns = { |
|||
params = "", |
|||
description = "List spawnpoints" , |
|||
privs = {}, |
|||
func = function (name, param) |
|||
for _, sp in ipairs (spawnpoints.list) do |
|||
local str = minetest.pos_to_string (sp) .. " #" .. sp.id |
|||
minetest.chat_send_player (name, str) |
|||
end |
|||
end , |
|||
} |
|||
|
|||
minetest.register_chatcommand ("list_spawn" , tb_listspawns) |
|||
minetest.register_chatcommand ("listspawn" , tb_listspawns) |
|||
minetest.register_chatcommand ("list_spawns" , tb_listspawns) |
|||
minetest.register_chatcommand ("listspawns" , tb_listspawns) |
|||
|
|||
-- =================================================================== |
|||
|
|||
load_spawns() |
|||
end |
|||
|
|||
-- =================================================================== |
|||
|
|||
minetest.register_on_newplayer (function (player) |
|||
teleport_to_spawn (player:get_player_name()) |
|||
return true |
|||
end) |
|||
|
|||
minetest.register_on_respawnplayer (function (player) |
|||
teleport_to_spawn (player:get_player_name()) |
|||
return true |
|||
end) |
|||
|
|||
minetest.log ("action", "Loaded coderwarp") |
@ -0,0 +1,19 @@ |
|||
Name: coderwarp |
|||
Source: New mod incorporating old code |
|||
License: WTFPL |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
This mod will need changes to the world ".conf" file and to "init.lua" |
|||
for each world. |
|||
|
|||
By default, dynamic spawn management is used. To use a single fixed |
|||
spawnpoint, add two settings of the following form to the world |
|||
".conf" file: |
|||
|
|||
disable_multispawn = true |
|||
static_spawn_point = 10, 10, 5 |
|||
|
|||
The dynamic spawn management code is similar to code by Pitriss and |
|||
Octactian but is believed to have evolved independently and to be un- |
|||
der the WTFPL. |
@ -0,0 +1,20 @@ |
|||
Name: stairs |
|||
Source: Modified upstream mod (do not replace) |
|||
License: See "license.txt" |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
1. This is a copy of the standard MT "stairs" mod from circa mid-2016. |
|||
It should not, ever, be synced with upstream or placing and/or screw- |
|||
driver may not work correctly. |
|||
|
|||
As a related note, the following upstream commit in "minetest_game", |
|||
which applies to "stairs", is bad and shouldn't be used: |
|||
|
|||
e6d0d775e3533b7b91b292e13c800b9737e057fd |
|||
|
|||
---------------------------------------------------------------------- |
|||
|
|||
2. Changes include: |
|||
|
|||
2a. Added the files "00README" and "oldcoder.txt" (this file). |
Loading…
Reference in new issue