krokoschlange wrote:And great work on the textures and models.
Only on the locomotive I removed 113 vertices. :-)
DS-minetest wrote:Yes, just add another material, select the faces and attach them to the material and give the new material the glass texture. And don't forget the uv-map! With uv-maps you can give the trains nice textures, not only these boring, not nice looking colors you use.
textures = {"texture1.png", "texture2.png"}
krokoschlange wrote:DS-minetest wrote:Yes, just add another material, select the faces and attach them to the material and give the new material the glass texture. And don't forget the uv-map! With uv-maps you can give the trains nice textures, not only these boring, not nice looking colors you use.
Actually you don't need the materials. You can just make seems and go to the uv editor (split your screen) select the faces you want a texture on, press [u] > unwrap, again [u] > reset uv and rescale the single faces in the uv editor.
Later in the code you have to give all textures you used e.g.Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
textures = {"texture1.png", "texture2.png"}
There you have to figure out the right order, but thats easy.
Look at my Submarine Mod as an example
advtrains.register_wagon("steam_engine_black", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_black.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "smoke_puff.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Black", "advtrains_newlocomotive_black_inv.png")
advtrains.register_wagon("steam_engine_ltblue", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_ltblue.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "smoke_puff.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Lt Blue", "advtrains_newlocomotive_ltblue_inv.png")
advtrains.register_wagon("steam_engine_blue", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_blue.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "smoke_puff.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Blue", "advtrains_newlocomotive_blue_inv.png")
advtrains.register_wagon("steam_engine_green", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_green.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "smoke_puff.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Green", "advtrains_newlocomotive_green_inv.png")
advtrains.register_wagon("steam_engine_red", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_red.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "SmokePuff_02b_HD.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Red", "advtrains_newlocomotive_red_inv.png")
advtrains.register_wagon("steam_engine_pink", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_pink.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "SmokePuff_02b_HD.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Pink", "advtrains_newlocomotive_pink_inv.png")
advtrains.register_wagon("steam_engine_purple", {
mesh="advtrains_engine_steam.b3d",
textures = {"advtrains_newlocomotive_purple.png"},
is_locomotive=true,
drives_on={default=true},
max_speed=4,
seats = {
{
name="Driver Stand (left)",
attach_offset={x=-5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
{
name="Driver Stand (right)",
attach_offset={x=5, y=10, z=-10},
view_offset={x=0, y=6, z=0},
driving_ctrl_access=true,
},
},
visual_size = {x=1, y=1},
wagon_span=1.85,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
--[[
update_animation=function(self, velocity)
--if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then
self.object:set_animation({x=1,y=60}, 100)--math.floor(velocity))
--self.old_anim_velocity=advtrains.abs_ceil(velocity)
--end
end,
]]
custom_on_activate = function(self, staticdata_table, dtime_s)
minetest.add_particlespawner({
amount = 10,
time = 0,
-- ^ If time is 0 has infinite lifespan and spawns the amount on a per-second base
minpos = {x=0, y=2, z=1.2},
maxpos = {x=0, y=2, z=1.2},
minvel = {x=-0.2, y=1.8, z=-0.2},
maxvel = {x=0.2, y=2, z=0.2},
minacc = {x=0, y=-0.1, z=0},
maxacc = {x=0, y=-0.3, z=0},
minexptime = 2,
maxexptime = 4,
minsize = 1,
maxsize = 5,
-- ^ The particle's properties are random values in between the bounds:
-- ^ minpos/maxpos, minvel/maxvel (velocity), minacc/maxacc (acceleration),
-- ^ minsize/maxsize, minexptime/maxexptime (expirationtime)
collisiondetection = true,
-- ^ collisiondetection: if true uses collision detection
vertical = false,
-- ^ vertical: if true faces player using y axis only
texture = "SmokePuff_02b_HD.png",
-- ^ Uses texture (string)
attached = self.object,
})
end,
drops={"default:steelblock 4"},
}, "Steam Engine Purple", "advtrains_newlocomotive_purple_inv.png")
advtrains.register_wagon("steam_car_box", {
mesh="advtrains_wagon.b3d",
textures = {"advtrains_steam_car_box.png"},
drives_on={default=true},
max_speed=4,
seats = {},
visual_size = {x=1, y=1},
wagon_span=1.8,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
drops={"default:steelblock 4"},
has_inventory = true,
get_inventory_formspec = function(self)
return "size[8,11]"..
"list[detached:advtrains_wgn_"..self.unique_id..";box;0,0;8,6;]"..
"list[current_player;main;0,7;8,4;]"..
"listring[]"
end,
inventory_list_sizes = {
box=8*6,
},
}, "Steam Box Car", "advtrains_wagon_box_inv.png")
advtrains.register_wagon("steam_car_coach", {
mesh="advtrains_wagon.b3d",
textures = {"advtrains_steam_car_coach.png"},
drives_on={default=true},
max_speed=4,
--[[ seats = {
{
name="Default Seat",
attach_offset={x=0, y=10, z=0},
view_offset={x=0, y=6, z=0},
},
},
]]
seats = {
{
name="1",
attach_offset={x=-4, y=8, z=8},
view_offset={x=0, y=0, z=0},
},
{
name="2",
attach_offset={x=4, y=8, z=8},
view_offset={x=0, y=0, z=0},
},
{
name="3",
attach_offset={x=-4, y=8, z=-8},
view_offset={x=0, y=0, z=0},
},
{
name="4",
attach_offset={x=4, y=8, z=-8},
view_offset={x=0, y=0, z=0},
},
},
visual_size = {x=1, y=1},
--wagon_span=1.8,
wagon_span=3.1,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
drops={"default:steelblock 4"},
}, "Steam Passenger Coach", "advtrains_wagon_inv.png")
advtrains.register_wagon("steam_car_log", {
mesh="advtrains_wagon_wood.b3d",
textures = {"advtrains_steam_car_wood_green.png"},
drives_on={default=true},
max_speed=4,
seats = {},
--visual_size = {x=1, y=1},
visual_size = {x=0.85, y=0.85},
wagon_span=1.8,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
drops={"default:steelblock 4"},
has_inventory = true,
get_inventory_formspec = function(self)
return "size[8,11]"..
"list[detached:advtrains_wgn_"..self.unique_id..";box;0,0;8,6;]"..
"list[current_player;main;0,7;8,4;]"..
"listring[]"
end,
inventory_list_sizes = {
box=8*6,
},
}, "Steam Log Car", "advtrains_wagon_wood_green_inv.png")
advtrains.register_wagon("steam_car_tank", {
mesh="advtrains_wagon_tank.b3d",
textures = {"advtrains_steam_car_tank_yellow.png"},
drives_on={default=true},
max_speed=4,
seats = {},
--visual_size = {x=1, y=1},
visual_size = {x=0.85, y=0.85},
wagon_span=1.8,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
drops={"default:steelblock 4"},
has_inventory = true,
get_inventory_formspec = function(self)
return "size[8,11]"..
"list[detached:advtrains_wgn_"..self.unique_id..";box;0,0;8,6;]"..
"list[current_player;main;0,7;8,4;]"..
"listring[]"
end,
inventory_list_sizes = {
box=8*6,
},
}, "Steam Tank Car", "advtrains_wagon_tank_yellow_inv.png")
advtrains.register_wagon("steam_car_pullman", {
mesh="advtrains_passenger_wagon.b3d",
drives_on={default=true},
max_speed=4,
textures = {"advtrains_steam_pullman_car.png"},
seats = {
{
name="1",
attach_offset={x=-4, y=8, z=8},
view_offset={x=0, y=0, z=0},
},
{
name="2",
attach_offset={x=4, y=8, z=8},
view_offset={x=0, y=0, z=0},
},
{
name="3",
attach_offset={x=-4, y=8, z=-8},
view_offset={x=0, y=0, z=0},
},
{
name="4",
attach_offset={x=4, y=8, z=-8},
view_offset={x=0, y=0, z=0},
},
},
visual_size = {x=1, y=1},
wagon_span=3.1,
collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
drops={"default:steelblock 4"},
}, "Steam Pullman Coach", "advtrains_wagon_inv.png")
minetest.register_craft({
output = 'advtrains:steam_engine_black',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:black', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_ltblue',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:cyan', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_blue',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:blue', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_green',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:green', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_red',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:red', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_pink',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:pink', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_engine_purple',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'dye:violet', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_car_box',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'default:chest_locked', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_car_coach',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'default:book', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_car_log',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'group:tree', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_car_tank',
recipe = {
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'group:liquid', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
minetest.register_craft({
output = 'advtrains:steam_car_pullman',
recipe = {
{'default:steelblock', 'default:book', 'default:steelblock'},
{'default:steelblock', 'default:book', 'default:steelblock'},
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
},
})
ShadMOrdre wrote:mbb,
The colored trains were built for my five year old son, who loves trains and minetest. The original black engine wasn't enough for him, so I simply added colors, to make them more child friendly. Like Thomas the Tank Engine, and the Brio wooden railway train toys for children. The minetest world I used for taking those screenshots is actually using the phrase "TheIsleOfSodor" as the seed for a v6 map. I like it because there are several large villages near enough to make a railway.
However, I am salivating over the models that you are showing. The diesel engine above, and the detailed steam model further above are absolutely stunning. Do you only have the .blend files for those, or have you exported them to the .b3d format? I ask, because I am willing to help add the definitions to the code to include these beautiful models, and adding a more realistic train set to Minetest.
My son has been asking me for a coal car, aka, a tender, for the steam engines. All steamies need coal, and if the coal can't be carried on the engine, the engine must pull a tender. I would also like to see more train cars, like a flatbed, a hopper, a log car with logs, and maybe a better box car. As you see in my screenshots, the cars can be made interchangeable with the various types of trains available, ie, steam, electric, maglev. I would personally add a diesel definition in there, as the red industrial engine is a diesel, as is the model in the post directly above.
Anyways, now I think I'm just rambling on.....but.....would love to help where possible. I'm more of a code monkey than a graphics whiz. Not strong on Blender, per se, but know GIMP and Meshlab.
Shad MOrdre
I dont know how i can export the models to minetest B3D
advtrains
advtrains_train_steam
Users browsing this forum: No registered users and 67 guests