From dc67ff7226a2836863a0e709a5b81c90c977f288 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Wed, 6 Dec 2017 13:23:55 +0100 Subject: Implement sound api and some sounds - Level crossing bell - Horns - Subway train driving and door sounds ...to be continued... --- advtrains_train_subway/init.lua | 30 ++++++++++++++++----- .../sounds/advtrains_subway_arrive.ogg | Bin 0 -> 22658 bytes .../sounds/advtrains_subway_dclose.ogg | Bin 0 -> 14298 bytes .../sounds/advtrains_subway_depart.ogg | Bin 0 -> 39161 bytes .../sounds/advtrains_subway_dopen.ogg | Bin 0 -> 14307 bytes .../sounds/advtrains_subway_horn.ogg | Bin 0 -> 14370 bytes .../sounds/advtrains_subway_loop.ogg | Bin 0 -> 19691 bytes 7 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 advtrains_train_subway/sounds/advtrains_subway_arrive.ogg create mode 100644 advtrains_train_subway/sounds/advtrains_subway_dclose.ogg create mode 100644 advtrains_train_subway/sounds/advtrains_subway_depart.ogg create mode 100644 advtrains_train_subway/sounds/advtrains_subway_dopen.ogg create mode 100644 advtrains_train_subway/sounds/advtrains_subway_horn.ogg create mode 100644 advtrains_train_subway/sounds/advtrains_subway_loop.ogg (limited to 'advtrains_train_subway') diff --git a/advtrains_train_subway/init.lua b/advtrains_train_subway/init.lua index e3c73c9..f8e5e3b 100644 --- a/advtrains_train_subway/init.lua +++ b/advtrains_train_subway/init.lua @@ -59,11 +59,13 @@ advtrains.register_wagon("subway_wagon", { doors={ open={ [-1]={frames={x=0, y=20}, time=1}, - [1]={frames={x=40, y=60}, time=1} + [1]={frames={x=40, y=60}, time=1}, + sound = "advtrains_subway_dopen", }, close={ [-1]={frames={x=20, y=40}, time=1}, - [1]={frames={x=60, y=80}, time=1} + [1]={frames={x=60, y=80}, time=1}, + sound = "advtrains_subway_dclose", } }, door_entry={-1, 1}, @@ -73,10 +75,26 @@ advtrains.register_wagon("subway_wagon", { collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0}, is_locomotive=true, drops={"default:steelblock 4"}, - --custom_on_activate = function(self, dtime_s) - -- atprint("subway custom_on_activate") - -- self.object:set_animation({x=1,y=80}, 15, 0, true) - --end, + horn_sound = "advtrains_subway_horn", + custom_on_velocity_change = function(self, velocity, old_velocity) + if old_velocity == 0 and velocity > 0 then + minetest.sound_play("advtrains_subway_depart", {object = self.object}) + end + if velocity < 2 and (old_velocity >= 2 or old_velocity == velocity) and not self.sound_arrive_handle then + self.sound_arrive_handle = minetest.sound_play("advtrains_subway_arrive", {object = self.object}) + elseif (velocity > old_velocity) and self.sound_arrive_handle then + minetest.sound_stop(self.sound_arrive_handle) + self.sound_arrive_handle = nil + end + if velocity > 0 and not self.sound_loop_handle then + self.sound_loop_handle = minetest.sound_play({name="advtrains_subway_loop", gain=0.3}, {object = self.object, loop=true}) + elseif velocity==0 then + if self.sound_loop_handle then + minetest.sound_stop(self.sound_loop_handle) + self.sound_loop_handle = nil + end + end + end, }, S("Subway Passenger Wagon"), "advtrains_subway_wagon_inv.png") --wagons diff --git a/advtrains_train_subway/sounds/advtrains_subway_arrive.ogg b/advtrains_train_subway/sounds/advtrains_subway_arrive.ogg new file mode 100644 index 0000000..71bb90e Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_arrive.ogg differ diff --git a/advtrains_train_subway/sounds/advtrains_subway_dclose.ogg b/advtrains_train_subway/sounds/advtrains_subway_dclose.ogg new file mode 100644 index 0000000..ffbc6ed Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_dclose.ogg differ diff --git a/advtrains_train_subway/sounds/advtrains_subway_depart.ogg b/advtrains_train_subway/sounds/advtrains_subway_depart.ogg new file mode 100644 index 0000000..aca8cbc Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_depart.ogg differ diff --git a/advtrains_train_subway/sounds/advtrains_subway_dopen.ogg b/advtrains_train_subway/sounds/advtrains_subway_dopen.ogg new file mode 100644 index 0000000..f1322df Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_dopen.ogg differ diff --git a/advtrains_train_subway/sounds/advtrains_subway_horn.ogg b/advtrains_train_subway/sounds/advtrains_subway_horn.ogg new file mode 100644 index 0000000..f4519a3 Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_horn.ogg differ diff --git a/advtrains_train_subway/sounds/advtrains_subway_loop.ogg b/advtrains_train_subway/sounds/advtrains_subway_loop.ogg new file mode 100644 index 0000000..1a7021a Binary files /dev/null and b/advtrains_train_subway/sounds/advtrains_subway_loop.ogg differ -- cgit v1.2.3