trainpack/moretrains_vintage/init.lua

208 lines
5.1 KiB
Lua

local S
if minetest.get_modpath("intllib") then
S = intllib.Getter()
else
S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
end
advtrains.register_wagon("moretrains_draisine", {
mesh="moretrains_draisine.b3d",
textures = {"moretrains_vintage.png"},
drives_on={default=true},
max_speed=3,
seats = {
{
name=S("Driver stand"),
attach_offset={x=0, y=1, z=-8.7},
view_offset={x=0, y=1.5, z=-1},
group="dstand",
},
{
name="1",
attach_offset={x=0, y=1, z=8.7},
view_offset={x=0, y=1.5, z=1},
group="pass",
},
},
seat_groups = {
dstand={
name = "Driver Stand",
access_to = {"pass"},
require_doors_open=true,
driving_ctrl_access=true,
},
pass={
name = "Passenger area",
access_to = {"dstand"},
require_doors_open=true,
},
},
assign_to_seat_group = {"dstand", "pass"},
visual_size = {x=1, y=1},
wagon_span=1.12,
is_locomotive=true,
collisionbox = {-0.8,-0.5,-0.7, 0.8,2,0.7},
custom_on_velocity_change=function(self, velocity)
if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=80}, advtrains.abs_ceil(velocity)*14, 0, true)
self.old_anim_velocity=advtrains.abs_ceil(velocity)
end
end,
drops={"default:wood"},
}, S("Draisine"), "moretrains_draisine_inv.png")
advtrains.register_wagon("moretrains_minecart", {
mesh="moretrains_minecart.b3d",
textures = {"moretrains_vintage.png"},
drives_on={default=true},
max_speed=6,
seats = {},
visual_size = {x=1, y=1},
wagon_span=1.06,
collisionbox = {-0.8,-0.5,-0.7, 0.8,2,0.7},
drops={"default:wood"},
has_inventory = true,
get_inventory_formspec = function(self, pname, invname)
return "size[8,11]"..
"list["..invname..";box;0,0;8,3;]"..
"list[current_player;main;0,5;8,4;]"..
"listring[]"
end,
inventory_list_sizes = {
box=1*4,
},
}, S("Minecart"), "moretrains_minecart_inv.png")
advtrains.register_wagon("moretrains_minecart_loaded", {
mesh="moretrains_minecart_loaded.b3d",
textures = {"moretrains_vintage.png"},
drives_on={default=true},
max_speed=6,
seats = {},
visual_size = {x=1, y=1},
wagon_span=1.06,
collisionbox = {-0.8,-0.5,-0.7, 0.8,2,0.7},
drops={"default:wood"},
has_inventory = true,
get_inventory_formspec = function(self, pname, invname)
return "size[8,11]"..
"list["..invname..";box;0,0;8,3;]"..
"list[current_player;main;0,5;8,4;]"..
"listring[]"
end,
inventory_list_sizes = {
box=1*4,
},
}, S("Minecart (loaded)"), "moretrains_minecart_loaded_inv.png")
advtrains.register_wagon("moretrains_minecart_engine", {
mesh="moretrains_minecart_engine.b3d",
textures = {"moretrains_vintage.png"},
drives_on={default=true},
max_speed=6,
seats = {
{
name=S("Driver stand"),
attach_offset={x=0, y=2, z=5.5},
view_offset={x=0, y=1.5, z=-1},
group="dstand",
},
{
name="1",
attach_offset={x=0, y=2, z=0.5},
view_offset={x=0, y=1.5, z=1},
group="pass",
},
},
seat_groups = {
dstand={
name = "Driver Stand",
access_to = {"pass"},
require_doors_open=true,
driving_ctrl_access=true,
},
pass={
name = "Passenger area",
access_to = {"dstand"},
require_doors_open=true,
},
},
assign_to_seat_group = {"dstand", "pass"},
visual_size = {x=1, y=1},
wagon_span=1.06,
is_locomotive=true,
collisionbox = {-0.8,-0.5,-0.7, 0.8,2,0.7},
drops={"default:wood"},
}, S("Minecart with Engine"), "moretrains_minecart_engine_inv.png")
minetest.register_craftitem("moretrains_vintage:item_draisine_lever", {
description = S("lever for draisine"),
inventory_image = "moretrains_item_lever.png"
})
minetest.register_craft({
output = "moretrains_vintage:item_draisine_lever",
recipe = {
{"default:steel_ingot", "default:stick", "default:steel_ingot"},
{"", "default:stick", ""},
{"", "default:steel_ingot", ""},
},
})
minetest.register_craft({
output = 'advtrains:moretrains_draisine',
recipe = {
{'', 'moretrains_vintage:item_draisine_lever', ''},
{'group:wood', 'group:wood', 'group:wood'},
{'advtrains:wheel', '', 'advtrains:wheel'},
},
})
minetest.register_craft({
output = 'advtrains:moretrains_minecart',
recipe = {
{'group:wood', '', 'group:wood'},
{'default:steel_ingot', 'group:wood', 'default:steel_ingot'},
{'advtrains:wheel', '', 'advtrains:wheel'},
},
})
minetest.register_craft({
output = 'advtrains:moretrains_minecart_loaded',
recipe = {
{'group:wood', 'default:coalblock', 'group:wood'},
{'default:steel_ingot', 'group:wood', 'default:steel_ingot'},
{'advtrains:wheel', '', 'advtrains:wheel'},
},
})
minetest.register_craft({
output = 'advtrains:moretrains_minecart_engine',
recipe = {
{'group:wood', '', 'group:wood'},
{'default:steel_ingot', 'group:wood', 'default:steel_ingot'},
{'advtrains:wheel', 'default:steelblock', 'advtrains:wheel'},
},
})
minetest.register_craft({
output = "advtrains:moretrains_minecart_loaded",
type = "shapeless",
recipe = {"advtrains:moretrains_minecart", "default:coalblock"},
})
minetest.register_craft({
output = "advtrains:moretrains_minecart_engine",
type = "shapeless",
recipe = {"advtrains:moretrains_minecart", "default:steelblock"},
})