From 2d0b51b8970abb16c166708988e46fe4df668d47 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Wed, 4 Jan 2017 19:10:03 +0100 Subject: Restructure mod directory --- advtrains/advtrains_train_steam/init.lua | 121 +++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 advtrains/advtrains_train_steam/init.lua (limited to 'advtrains/advtrains_train_steam/init.lua') diff --git a/advtrains/advtrains_train_steam/init.lua b/advtrains/advtrains_train_steam/init.lua new file mode 100644 index 0000000..ca52516 --- /dev/null +++ b/advtrains/advtrains_train_steam/init.lua @@ -0,0 +1,121 @@ +advtrains.register_wagon("newlocomotive", { + mesh="advtrains_engine_steam.b3d", + textures = {"advtrains_newlocomotive.png"}, + is_locomotive=true, + drives_on={default=true}, + max_speed=10, + 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", "advtrains_newlocomotive_inv.png") +advtrains.register_wagon("wagon_default", { + mesh="advtrains_wagon.b3d", + textures = {"advtrains_wagon.png"}, + drives_on={default=true}, + max_speed=10, + seats = { + { + name="Default Seat", + attach_offset={x=0, y=10, z=0}, + view_offset={x=0, y=6, z=0}, + }, + }, + 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"}, +}, "Passenger Wagon", "advtrains_wagon_inv.png") +advtrains.register_wagon("wagon_box", { + mesh="advtrains_wagon.b3d", + textures = {"advtrains_wagon_box.png"}, + drives_on={default=true}, + max_speed=10, + 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, + }, +}, "Box Wagon", "advtrains_wagon_box_inv.png") + +minetest.register_craft({ + output = 'advtrains:newlocomotive', + recipe = { + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + {'default:steelblock', 'dye:black', 'default:steelblock'}, + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + }, +}) +minetest.register_craft({ + output = 'advtrains:wagon_default', + recipe = { + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + {'default:steelblock', 'dye:dark_green', 'default:steelblock'}, + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + }, +}) +minetest.register_craft({ + output = 'advtrains:wagon_box', + recipe = { + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + {'default:steelblock', 'default:chest', 'default:steelblock'}, + {'default:steelblock', 'default:steelblock', 'default:steelblock'}, + }, +}) -- cgit v1.2.3 From 9bc069f825daded364b2b52d443c8cb7b45a5a15 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Fri, 6 Jan 2017 17:54:16 +0100 Subject: Add fancy passenger wagon --- advtrains/advtrains_train_steam/init.lua | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'advtrains/advtrains_train_steam/init.lua') diff --git a/advtrains/advtrains_train_steam/init.lua b/advtrains/advtrains_train_steam/init.lua index ca52516..5010902 100644 --- a/advtrains/advtrains_train_steam/init.lua +++ b/advtrains/advtrains_train_steam/init.lua @@ -57,19 +57,34 @@ advtrains.register_wagon("newlocomotive", { drops={"default:steelblock 4"}, }, "Steam Engine", "advtrains_newlocomotive_inv.png") advtrains.register_wagon("wagon_default", { - mesh="advtrains_wagon.b3d", + mesh="advtrains_passenger_wagon.b3d", textures = {"advtrains_wagon.png"}, drives_on={default=true}, max_speed=10, seats = { { - name="Default Seat", - attach_offset={x=0, y=10, z=0}, - view_offset={x=0, y=6, z=0}, + 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"}, }, "Passenger Wagon", "advtrains_wagon_inv.png") -- cgit v1.2.3 From b6e2aeea71394431889e9b554f190dda4adb0305 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Tue, 17 Jan 2017 21:54:50 +0100 Subject: Add animation for steam engine I needed to completely rewrite the animation because irrlicht couldn't handle the animation NathanS created. --- advtrains/advtrains_train_steam/init.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'advtrains/advtrains_train_steam/init.lua') diff --git a/advtrains/advtrains_train_steam/init.lua b/advtrains/advtrains_train_steam/init.lua index 5010902..232ffe1 100644 --- a/advtrains/advtrains_train_steam/init.lua +++ b/advtrains/advtrains_train_steam/init.lua @@ -21,12 +21,13 @@ advtrains.register_wagon("newlocomotive", { 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, + update_animation=function(self, velocity) + if self.old_anim_velocity~=advtrains.abs_ceil(velocity) then + atprint("set_anim",advtrains.abs_ceil(velocity)*15) + self.object:set_animation({x=1,y=80}, advtrains.abs_ceil(velocity)*15, 0, true) + self.old_anim_velocity=advtrains.abs_ceil(velocity) + end + end, custom_on_activate = function(self, staticdata_table, dtime_s) minetest.add_particlespawner({ amount = 10, -- cgit v1.2.3 From 2f5ebd63c38932dbda30b96e8ce20e70474b1f15 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Tue, 17 Jan 2017 22:31:29 +0100 Subject: Add detailed steam engine contributed by mbb and Krokoschlange --- advtrains/advtrains_train_steam/init.lua | 65 ++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) (limited to 'advtrains/advtrains_train_steam/init.lua') diff --git a/advtrains/advtrains_train_steam/init.lua b/advtrains/advtrains_train_steam/init.lua index 232ffe1..22f525f 100644 --- a/advtrains/advtrains_train_steam/init.lua +++ b/advtrains/advtrains_train_steam/init.lua @@ -1,6 +1,6 @@ advtrains.register_wagon("newlocomotive", { mesh="advtrains_engine_steam.b3d", - textures = {"advtrains_newlocomotive.png"}, + textures = {"advtrains_engine_steam.png"}, is_locomotive=true, drives_on={default=true}, max_speed=10, @@ -23,7 +23,6 @@ advtrains.register_wagon("newlocomotive", { 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 - atprint("set_anim",advtrains.abs_ceil(velocity)*15) self.object:set_animation({x=1,y=80}, advtrains.abs_ceil(velocity)*15, 0, true) self.old_anim_velocity=advtrains.abs_ceil(velocity) end @@ -56,7 +55,67 @@ advtrains.register_wagon("newlocomotive", { }) end, drops={"default:steelblock 4"}, -}, "Steam Engine", "advtrains_newlocomotive_inv.png") +}, "Steam Engine", "advtrains_engine_steam_inv.png") + +advtrains.register_wagon("detailed_steam_engine", { + mesh="advtrains_detailed_steam_engine.b3d", + textures = {"advtrains_detailed_steam_engine.png"}, + is_locomotive=true, + drives_on={default=true}, + max_speed=10, + 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=2.05, + 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=80}, advtrains.abs_ceil(velocity)*15, 0, true) + 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.3, z=1.45}, + maxpos = {x=0, y=2.3, z=1.4}, + 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"}, +}, "Detailed Steam Engine", "advtrains_engine_steam_inv.png") + advtrains.register_wagon("wagon_default", { mesh="advtrains_passenger_wagon.b3d", textures = {"advtrains_wagon.png"}, -- cgit v1.2.3