This commit is contained in:
1F616EMO 2024-01-30 20:15:57 +08:00
parent b03651c074
commit 11a441f274
No known key found for this signature in database
GPG Key ID: EF52EFA8E05859B2
14 changed files with 433 additions and 112 deletions

44
.gitignore vendored Normal file
View File

@ -0,0 +1,44 @@
# Compiled Lua sources
luac.out
# luarocks build files
*.src.rock
*.zip
*.tar.gz
# Object files
*.o
*.os
*.ko
*.obj
!models/*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
*.def
*.exp
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
*.tr.old

328
craft.lua
View File

@ -1,94 +1,234 @@
-- trainblocks/craft.lua -- trainblocks/craft.lua
-- Crafting recipes for trainblocks -- Crafting recipes for trainblocks
--[[ --[[
Copyright (C) 2018 maxx, LuLa, gpcf Copyright (C) 2018 maxx, LuLa, gpcf
Copyright (C) 2024 1F616EMO Copyright (C) 2024 1F616EMO
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
]] ]]
minetest.register_craft({ minetest.register_craft({
output = 'trainblocks:subwayblock', output = 'trainblocks:subwayblock',
recipe = { recipe = {
{ '', 'dye:blue', '' }, { '', 'dye:blue', '' },
{ 'dye:white', 'default:glass', 'dye:white' }, { 'dye:white', 'default:glass', 'dye:white' },
{ '', 'dye:blue', '' }, { '', 'dye:blue', '' },
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'trainblocks:sbahnblock', output = 'trainblocks:sbahnblock',
recipe = { recipe = {
{ '', 'dye:green', '' }, { '', 'dye:green', '' },
{ 'dye:white', 'default:glass', 'dye:white' }, { 'dye:white', 'default:glass', 'dye:white' },
{ '', 'dye:green', '' }, { '', 'dye:green', '' },
} }
}) })
--lineblocks from 1 to 10 -- lineblocks from 1 to 10
local dyes1 = { "blue", "red", "violet", "green", "orange", "yellow", "gray", "magenta", "cyan", "black" } -- gray -> grey from https://github.com/Montandalar/trainblocks/commit/5e6f906f7d5716127a4b760df8bc6ea1f61c84ea
local dyes2 = { "white", "white", "white", "white", "white", "black", "white", "white", "white", "white" } -- Bonus: Line 0
local dyes1 = { "blue", "blue", "red", "violet", "green", "orange", "yellow", "grey", "magenta", "cyan", "black" }
for count = 1, 10, 1 do local dyes2 = { "blue", "white", "white", "white", "white", "white", "black", "white", "white", "white", "white" }
minetest.register_craft({
output = "trainblocks:line" .. count .. " 4", for count = 0, 10, 1 do
recipe = { minetest.register_craft({
{ '', "dye:" .. dyes1[count], '' }, output = "trainblocks:line" .. count .. " 4",
{ "dye:" .. dyes2[count], 'default:glass', '' }, recipe = {
{ '', '', '' }, { '', "dye:" .. dyes1[count + 1], '' },
} { "dye:" .. dyes2[count + 1], 'default:glass', '' },
}) }
end })
end
--subway direction signs
--subway direction signs
minetest.register_craft({
output = 'trainblocks:subwaysignL 2', minetest.register_craft({
recipe = { output = 'trainblocks:subwaysignL 2',
{ '', '', '' }, recipe = {
{ 'dye:white', 'default:glass', 'dye:blue' }, { 'dye:white', 'default:glass', 'dye:blue' }
{ '', '', '' }, }
} })
})
minetest.register_craft({
minetest.register_craft({ output = 'trainblocks:subwaysignR 2',
output = 'trainblocks:subwaysignR 2', recipe = {
recipe = { { 'dye:blue', 'default:glass', 'dye:white' },
{ '', '', '' }, }
{ 'dye:blue', 'default:glass', 'dye:white' }, })
{ '', '', '' },
} --sbahn direction signs
})
minetest.register_craft({
--sbahn direction signs output = 'trainblocks:sbahnsignL 2',
recipe = {
minetest.register_craft({ { 'dye:white', 'default:glass', 'dye:green' },
output = 'trainblocks:sbahnsignL 2', }
recipe = { })
{ '', '', '' },
{ 'dye:white', 'default:glass', 'dye:green' }, minetest.register_craft({
{ '', '', '' }, output = 'trainblocks:sbahnsignR 2',
} recipe = {
}) { 'dye:blue', 'default:glass', 'dye:green' },
}
minetest.register_craft({ })
output = 'trainblocks:sbahnsignR 2',
recipe = { -- Switch betwen modern station direction signs and older style
{ '', '', '' }, -- from https://github.com/Montandalar/trainblocks/commit/4f4f6004e1e5067969fcc0efd8785a55ef36a6e2
{ 'dye:blue', 'default:glass', 'dye:green' },
{ '', '', '' }, minetest.register_craft({
} type = "shapeless",
}) output = 'trainblocks:stationsignR_modern',
recipe = {'trainblocks:stationsignR'}
})
minetest.register_craft({
type = "shapeless",
output = 'trainblocks:stationsignL_modern',
recipe = {'trainblocks:stationsignL'}
})
minetest.register_craft({
type = "shapeless",
recipe = {'trainblocks:stationsignR_modern'},
output = 'trainblocks:stationsignR'
})
minetest.register_craft({
type = "shapeless",
recipe = {'trainblocks:stationsignL_modern'},
output = 'trainblocks:stationsignL'
})
-- Platform signs 0-10
-- from https://github.com/Montandalar/trainblocks/commit/f5e86f18f437ba3cb3337369d0b009e94dd5a8f5
minetest.register_craft({
output = "trainblocks:platformsign0",
recipe = {
{'dye:blue', 'default:glass', ''},
{'', 'dye:white', ''},
}
})
minetest.register_craft({
output = "trainblocks:platformsign1",
recipe = {
{'dye:blue', 'default:glass', 'dye:white'},
{'', '', 'dye:white'},
{'', '' ,'dye:white'}
}
})
minetest.register_craft({
output = "trainblocks:platformsign2",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', 'dye:white', ''},
}
})
minetest.register_craft({
output = "trainblocks:platformsign3",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', 'dye:white', 'dye:white'},
}
})
minetest.register_craft({
output = "trainblocks:platformsign4",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', 'dye:white', ''},
{'dye:white', 'dye:white' ,''}
}
})
minetest.register_craft({
output = "trainblocks:platformsign5",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', 'dye:white', 'dye:white'},
{'dye:white', 'dye:white' ,''}
}
})
minetest.register_craft({
output = "trainblocks:platformsign6",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', 'dye:white', 'dye:white'},
{'dye:white', 'dye:white' ,'dye:white'}
}
})
minetest.register_craft({
output = "trainblocks:platformsign7",
recipe = {
{'dye:blue', 'default:glass', 'dye:white'},
{'', '', 'dye:white'},
{'', 'dye:white' ,''}
}
})
minetest.register_craft({
output = "trainblocks:platformsign8",
recipe = {
{'dye:blue', 'default:glass', 'dye:white'},
{'dye:white', '', 'dye:white'},
{'dye:white', 'dye:white' ,'dye:white'}
}
})
minetest.register_craft({
output = "trainblocks:platformsign9",
recipe = {
{'dye:blue', 'default:glass', 'dye:white'},
{'', 'dye:white', 'dye:white'},
{'', '' ,'dye:white'}
}
})
minetest.register_craft({
output = "trainblocks:platformsign10",
recipe = {
{'dye:blue', 'default:glass', ''},
{'dye:white', '', ''},
{'dye:white', '' ,'dye:white'}
}
})
-- Recipies for (modern) station blocks
-- from https://github.com/Montandalar/trainblocks/commit/735e61288ad55317d4fffcdb4e58b5feebc419d0
minetest.register_craft({
output = 'trainblocks:station_block',
recipe = {
{'', 'dye:black', ''},
{'dye:white', 'default:glass', 'dye:white'},
{'', 'dye:black', ''},
}
})
minetest.register_craft({
type = 'shapeless',
output = 'trainblocks:station_block_modern',
recipe = {'trainblocks:station_block'}
})
minetest.register_craft({
type = 'shapeless',
recipe = {'trainblocks:station_block_modern'},
output = 'trainblocks:station_block'
})

156
init.lua
View File

@ -2,6 +2,7 @@
-- Adds signs fitting the advtrains theme -- Adds signs fitting the advtrains theme
--[[ --[[
Copyright (C) 2018 maxx, LuLa, gpcf Copyright (C) 2018 maxx, LuLa, gpcf
Copyright (C) 2020, 2021 Montandalar/Blockhead
Copyright (C) 2024 1F616EMO Copyright (C) 2024 1F616EMO
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -36,23 +37,35 @@ minetest.register_node("trainblocks:subwayblock", {
drop = "trainblocks:subwayblock" drop = "trainblocks:subwayblock"
}) })
minetest.register_node("trainblocks:sbahnblock", { do
description = S("S-Bahn block"), -- Add a setting for legacy sbahnblock textures
light_source = 8, -- from https://github.com/Montandalar/trainblocks/commit/0fa3f52123bfe5aea386f987e7204c94aba72725
tiles = {
"down_sbahnblock.png",
"down_sbahnblock.png",
"front_sbahnblock.png",
"front_sbahnblock.png",
"front_sbahnblock.png",
"front_sbahnblock.png"
},
is_ground_content = true,
groups = { cracky = 3 },
drop = "trainblocks:sbahnblock"
})
for count = 1, 10, 1 do local sbahncolorize = ""
if minetest.settings:get_bool("trainblocks_legacy_sbahnblock", false) then
sbahncolorize = "^[colorize:#00DF11FF"
end --00E876FF
minetest.register_node("trainblocks:sbahnblock", {
description = S("S-Bahn block"),
light_source = 8,
tiles = {
"down_sbahnblock.png",
"down_sbahnblock.png" .. sbahncolorize,
"front_sbahnblock.png",
"front_sbahnblock.png",
"front_sbahnblock.png",
"front_sbahnblock.png"
},
is_ground_content = true,
groups = { cracky = 3 },
drop = "trainblocks:sbahnblock"
})
end
-- Platform 0 from https://github.com/Montandalar/trainblocks/commit/12a365d1c280d2b106621a8088229ee50937c488
-- Bonus: Line 0
for count = 0, 10, 1 do
minetest.register_node("trainblocks:line" .. count, { minetest.register_node("trainblocks:line" .. count, {
description = S("Line sign @1", count), description = S("Line sign @1", count),
tiles = { "front_line" .. count .. ".png" }, tiles = { "front_line" .. count .. ".png" },
@ -76,7 +89,6 @@ for count = 1, 10, 1 do
wall_top = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 }, wall_top = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 },
wall_bottom = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 }, wall_bottom = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 },
wall_side = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 }, wall_side = { -0.5, -0.25, -0.25, -0.4375, 0.25, 0.25 },
} }
}) })
@ -296,6 +308,114 @@ minetest.register_node("trainblocks:mr", {
drop = "trainblocks:sbahnblock" drop = "trainblocks:sbahnblock"
}) })
-- Modern station blocks
-- from https://github.com/Montandalar/trainblocks/commit/12a365d1c280d2b106621a8088229ee50937c488
minetest.register_node("trainblocks:stationsignL_modern", {
description = S("Modern Station Sign (Left)"),
tiles = {
"station_sign3.png",
"station_sign3.png",
"station_sign3.png",
"station_sign3.png",
"station_sign2_modern.png",
"station_sign2_modern.png^[transformFX",
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{ -8 / 16, -5 / 16, 6 / 16, 8 / 16, 5 / 16, 8 / 16 },
},
},
paramtype2 = "facedir",
paramtype = 'light',
light_source = 6,
is_ground_content = false,
groups = { cracky = 3 },
})
minetest.register_node("trainblocks:stationsignR_modern", {
description = S("Modern Station Sign (Right)"),
tiles = {
"station_sign3.png",
"station_sign3.png",
"station_sign3.png",
"station_sign3.png",
"station_sign2_modern.png",
"station_sign2_modern.png",
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{ -8 / 16, -5 / 16, 6 / 16, 8 / 16, 5 / 16, 8 / 16 },
},
},
paramtype2 = "facedir",
paramtype = 'light',
light_source = 6,
is_ground_content = false,
groups = { cracky = 3 },
})
minetest.register_node("trainblocks:station_block_modern", {
description = S("Modern Station Block"),
light_source = 8,
tiles = {
"down_station_sign.png",
"down_station_sign.png",
"front_station_sign_modern.png",
"front_station_sign_modern.png",
"front_station_sign_modern.png",
"front_station_sign_modern.png",
},
is_ground_content = true,
groups = { cracky = 3 },
drop = "trainblocks:station_block"
})
-- "No Pedestrains" signs
-- from https://github.com/Montandalar/trainblocks/commit/3e00d5cf40759c085deccc915f1fa6fb2c092523
-- train blocking fix from https://github.com/Montandalar/trainblocks/commit/a312afc27c2967e0ba04d6b4da3a074cf54f73df
local box_flat = {
type = "fixed",
fixed = { -0.5000, -0.4375, -0.5000, 0.5000, -0.4375, 0.5000 }
}
local pedsigns = {
{ name = "no_pedestrians", desc = S("No Pedestrians Sign") },
{ name = "durchgang_verboten", desc = S("No Pedestrians Sign (German)") }
}
for _, v in pairs(pedsigns) do
minetest.register_node("trainblocks:" .. v.name, {
description = v.desc,
light_source = 2,
drawtype = "signlike",
paramtype = "light",
paramtype2 = "wallmounted",
tiles = { v.name .. ".png" },
inventory_image = v.name .. ".png",
wield_image = v.name .. ".png",
groups = {
cracky = 3,
not_blocking_trains = 1,
},
drop = "trainblocks:" .. v.name,
is_ground_content = true,
node_box = box_flat,
selection_box = box_flat,
})
end
-- Add a setting to disable crafting recipes
-- from https://github.com/Montandalar/trainblocks/commit/15e2b88f44671aa68d1a758a6aca363b602a1282
if not minetest.settings:get_bool('trainblocks_disable_recipes', false) then
dofile(minetest.get_modpath("trainblocks") .. "/craft.lua")
end
dofile(minetest.get_modpath("trainblocks") .. "/craft.lua")
dofile(minetest.get_modpath("trainblocks") .. "/alias.lua") dofile(minetest.get_modpath("trainblocks") .. "/alias.lua")

View File

@ -1,4 +1,6 @@
# textdomain: trainblocks # textdomain: trainblocks
### init.lua ###
Subway block= Subway block=
S-Bahn block= S-Bahn block=
Line sign @1= Line sign @1=
@ -11,3 +13,6 @@ Station Sign (Left)=
Station Sign (Right)= Station Sign (Right)=
Station Block= Station Block=
Mountain Railway Block= Mountain Railway Block=
Modern Station Sign (Left)=
Modern Station Sign (Right)=
Modern Station Block=

View File

@ -1,4 +1,6 @@
# textdomain: trainblocks # textdomain: trainblocks
### init.lua ###
Subway block=地鐵方塊 Subway block=地鐵方塊
S-Bahn block=城鐵方塊 S-Bahn block=城鐵方塊
Line sign @1=路線告示牌 @1 Line sign @1=路線告示牌 @1
@ -11,3 +13,6 @@ Station Sign (Left)=車站告示牌(左)
Station Sign (Right)=車站告示牌(右) Station Sign (Right)=車站告示牌(右)
Station Block=車站方塊 Station Block=車站方塊
Mountain Railway Block=山區鐵路方塊 Mountain Railway Block=山區鐵路方塊
Modern Station Sign (Left)=現代車站告示牌(左)
Modern Station Sign (Right)=現代車站告示牌(右)
Modern Station Block=現代車站方塊

7
settingtypes.txt Normal file
View File

@ -0,0 +1,7 @@
# Disable crafting recipes. Server admins may want to disable crafting of the
# blocks in this mod to restrict their use.
trainblocks_disable_recipes (Disable crafting recipes) bool false
# Puts a vibrant green texture on top of the s-bahn block, which used to be a
# missing texture.
trainblocks_legacy_sbahnblock (Legacy S-Bahn block) bool false

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

BIN
textures/front_line0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

BIN
textures/no_pedestrians.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB