Skip to content
Snippets Groups Projects
Commit 40f65795 authored by Peter Nerlich's avatar Peter Nerlich
Browse files

new structure, add many blocks to be ignored by trains, add /spawn command,...

new structure, add many blocks to be ignored by trains, add /spawn command, warn if default password
parent 6d6a085a
No related branches found
No related tags found
No related merge requests found
-- add blocks to be ignored by trains
local additional_nonblocknodes={
"digiterms:lcd_monitor",
"digiterms:beige_keyboard",
"digiterms:white_keyboard",
"digiterms:black_keyboard",
"digilines:lcd",
"homedecor:glowlight_quarter_14",
"mesecons_pressureplates:pressure_plate_wood",
"mesecons_pressureplates:pressure_plate_stone",
}
minetest.after(0, function()
local mods = {"moreblocks", "bakedclay", "building_blocks", "my_door_wood", "my_sliding_doors"}
local variants = {
micro_ = nil,
slope = nil,
slab_ = {"_1", "_2", "_quarter", "_two_sides", "_three_sides"},
stair_ = {"_alt", "_alt_1", "_alt_2", "_alt_4", "_outer"},
panel_ = {"_1", "_2", "_4"},
}
local to_add = {}
for i, mod in ipairs(mods) do
for variant, data in pairs(variants) do
if to_add[mod] == nil then
to_add[mod] = {}
end
to_add[mod][variant] = data
end
end
for name, def in pairs(minetest.registered_nodes) do
for mod, variants in pairs(to_add) do
if string.sub(name, 1, #mod+1) == mod .. ":" then
for variant, endings in pairs(variants) do
local prefix = mod .. ":" .. variant
if string.sub(name, 1, #prefix) == prefix then
if endings then
for _, ending in ipairs(endings) do
if string.sub(name, #name - #ending + 1, #name) == ending then
table.insert(additional_nonblocknodes, name)
end
end
else
table.insert(additional_nonblocknodes, name)
end
end
end
end
end
end
for _,name in ipairs(additional_nonblocknodes) do
if minetest.registered_nodes[name] then
minetest.registered_nodes[name].groups.not_blocking_trains=1
end
end
end)
-- stolen from pandorabox.io https://github.com/pandorabox-io/pandorabox_custom
local spawn_command = {}
spawn_command.pos = {x=-130, y=13, z=-62}
if minetest.setting_get_pos("static_spawnpoint") then
spawn_command.pos = minetest.setting_get_pos("static_spawnpoint")
end
local function teleport_to_spawn(name)
local player = minetest.get_player_by_name(name)
if player == nil then
return false
end
player:setpos(spawn_command.pos)
minetest.chat_send_player(name, "Teleported to spawn!")
end
minetest.register_chatcommand("spawn", {
description = "Teleports you to the spawn point.",
func = teleport_to_spawn,
})
-- stolen from pandorabox.io https://github.com/pandorabox-io/pandorabox_custom
local default_pw = minetest.settings:get("default_password")
minetest.register_on_joinplayer(function(player)
local playername = player:get_player_name()
local handler = minetest.get_auth_handler()
local entry = handler.get_auth(playername)
if entry and minetest.check_password_entry(playername, entry.password, default_pw) then
-- player has still the default password
minetest.chat_send_player(
playername,
minetest.colorize("#ff0000", "WARNING: You are using the default password! " ..
"Please change it for your own safety!" ..
"(press the escape-button and click on 'change password')")
)
end
end)
minetest.register_craft({
output = "digilines:lightsensor",
recipe = {
{"basic_materials:plastic_sheet", "xpanes:pane_flat", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "digilines:wire_std_00000000"}
}
})
minetest.register_craft({
output = "digilines:rtc",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "digilines:wire_std_00000000"}
}
})
minetest.register_craft({
output = "computer:tetris_arcade",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"},
{"dye:black", "default:glass", "dye:black"},
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"}
}
})
minetest.register_craft({
output = "computer:3dprinter_bedflinger",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:empty_spool", "default:mese_crystal_fragment"},
{"basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
}
})
kif = {}
local MP = minetest.get_modpath("kif_custom")
-- some items don't have recipes. fill them in
dofile(MP.."/missing_recipes.lua")
-- make trains ignore microblocks and some others
dofile(MP.."/advtrains/ignore_collisions.lua")
local additional_nonblocknodes={
"digiterms:lcd_monitor",
"digiterms:beige_keyboard",
"digiterms:white_keyboard",
"digiterms:black_keyboard",
"digilines:lcd",
"homedecor:glowlight_quarter_14",
"mesecons_pressureplates:pressure_plate_wood",
"mesecons_pressureplates:pressure_plate_stone",
}
minetest.after(0, function()
local mods = {"moreblocks", "bakedclay", "building_blocks", "my_door_wood", "my_sliding_doors"}
local variants = {
micro_ = nil,
slope = nil,
slab_ = {"_1", "_2", "_quarter", "_two_sides", "_three_sides"},
stair_ = {"_alt", "_alt_1", "_alt_2", "_alt_4", "_outer"},
panel_ = {"_1", "_2", "_4"},
}
local to_add = {}
for i, mod in ipairs(mods) do
for variant, data in pairs(variants) do
if to_add[mod] == nil then
-- warning message for default password (if set)
if minetest.settings:get("default_password") then
dofile(MP.."/default_password_warn.lua")
end
end
to_add[mod][variant] = data
end
end
for name, def in pairs(minetest.registered_nodes) do
for mod, variants in pairs(to_add) do
if string.sub(name, 1, #mod+1) == mod .. ":" then
for variant, endings in pairs(variants) do
local prefix = mod .. ":" .. variant
if string.sub(name, 1, #prefix) == prefix then
if endings then
for _, ending in ipairs(endings) do
if string.sub(name, #name - #ending + 1, #name) == ending then
table.insert(additional_nonblocknodes, name)
end
end
else
table.insert(additional_nonblocknodes, name)
end
end
end
end
end
end
for _,name in ipairs(additional_nonblocknodes) do
if minetest.registered_nodes[name] then
minetest.registered_nodes[name].groups.not_blocking_trains=1
end
end
-- /spawn command
dofile(MP.."/chat/spawn.lua")
minetest.register_craft({
output = "digilines:lightsensor",
recipe = {
{"basic_materials:plastic_sheet", "xpanes:pane_flat", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "digilines:wire_std_00000000"}
}
})
minetest.register_craft({
output = "digilines:rtc",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "digilines:wire_std_00000000"}
}
})
minetest.register_craft({
output = "computer:tetris_arcade",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"},
{"dye:black", "default:glass", "dye:black"},
{"basic_materials:plastic_sheet", "basic_materials:energy_crystal_simple", "basic_materials:plastic_sheet"}
}
})
minetest.register_craft({
output = "computer:3dprinter_bedflinger",
recipe = {
{"basic_materials:plastic_sheet", "basic_materials:empty_spool", "default:mese_crystal_fragment"},
{"basic_materials:plastic_sheet", "", "basic_materials:plastic_sheet"},
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
}
})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment