From abfeef9804958a3f42b2cc116a0bfdb08dcbc451 Mon Sep 17 00:00:00 2001 From: t3du <32546729+t3du@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:53:51 -0300 Subject: [PATCH 1/3] Update SpeakerObject.hx --- armory/Sources/iron/object/SpeakerObject.hx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/armory/Sources/iron/object/SpeakerObject.hx b/armory/Sources/iron/object/SpeakerObject.hx index 273717f20..6bcc2ab83 100644 --- a/armory/Sources/iron/object/SpeakerObject.hx +++ b/armory/Sources/iron/object/SpeakerObject.hx @@ -60,6 +60,20 @@ class SpeakerObject extends Object { channels.splice(0, channels.length); } + public function setSound(sound: String) { + if (sound == null) return; + + data.sound = sound; + + Data.getSound(sound, function(sound: kha.Sound) { + this.sound = sound; + }); + } + + public function setVolume(volume: FastFloat) { + data.volume = volume; + } + function update() { if (paused) return; for (c in channels) if (c.finished) channels.remove(c); From 3a55d35620752debaf767d02d103243a59dba14a Mon Sep 17 00:00:00 2001 From: t3du <32546729+t3du@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:55:46 -0300 Subject: [PATCH 2/3] Add files via upload --- .../logicnode/sound/LN_set_sound_speaker.py | 18 ++++++++++++++++++ .../logicnode/sound/LN_set_volume_speaker.py | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 armory/blender/arm/logicnode/sound/LN_set_sound_speaker.py create mode 100644 armory/blender/arm/logicnode/sound/LN_set_volume_speaker.py diff --git a/armory/blender/arm/logicnode/sound/LN_set_sound_speaker.py b/armory/blender/arm/logicnode/sound/LN_set_sound_speaker.py new file mode 100644 index 000000000..f049d30f8 --- /dev/null +++ b/armory/blender/arm/logicnode/sound/LN_set_sound_speaker.py @@ -0,0 +1,18 @@ +from arm.logicnode.arm_nodes import * + +class SetSoundSpeakerNode(ArmLogicTreeNode): + """sets sound name of the given speaker object. + + @seeNode Play Speaker + @seeNode Stop Speaker + """ + bl_idname = 'LNSetSoundNode' + bl_label = 'Set Sound Speaker' + arm_version = 1 + + def arm_init(self, context): + self.add_input('ArmNodeSocketAction', 'In') + self.add_input('ArmNodeSocketObject', 'Speaker') + self.add_input('ArmStringSocket', 'Sound Name') + + self.add_output('ArmNodeSocketAction', 'Out') diff --git a/armory/blender/arm/logicnode/sound/LN_set_volume_speaker.py b/armory/blender/arm/logicnode/sound/LN_set_volume_speaker.py new file mode 100644 index 000000000..de90925d6 --- /dev/null +++ b/armory/blender/arm/logicnode/sound/LN_set_volume_speaker.py @@ -0,0 +1,18 @@ +from arm.logicnode.arm_nodes import * + +class SetVolumeSoundNode(ArmLogicTreeNode): + """sets volume of the given speaker object. + + @seeNode Play Speaker + @seeNode Stop Speaker + """ + bl_idname = 'LNSetVolumeSoundNode' + bl_label = 'Set Volume Speaker' + arm_version = 1 + + def arm_init(self, context): + self.add_input('ArmNodeSocketAction', 'In') + self.add_input('ArmNodeSocketObject', 'Speaker') + self.add_input('ArmFloatSocket', 'Volume') + + self.add_output('ArmNodeSocketAction', 'Out') From 27e207bc6c8e4931056a1cc607a3822cbbced939 Mon Sep 17 00:00:00 2001 From: t3du <32546729+t3du@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:56:30 -0300 Subject: [PATCH 3/3] Add files via upload --- .../Sources/armory/logicnode/SetSoundNode.hx | 18 ++++++++++++++++++ .../armory/logicnode/SetVolumeSoundNode.hx | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 armory/Sources/armory/logicnode/SetSoundNode.hx create mode 100644 armory/Sources/armory/logicnode/SetVolumeSoundNode.hx diff --git a/armory/Sources/armory/logicnode/SetSoundNode.hx b/armory/Sources/armory/logicnode/SetSoundNode.hx new file mode 100644 index 000000000..f19f56962 --- /dev/null +++ b/armory/Sources/armory/logicnode/SetSoundNode.hx @@ -0,0 +1,18 @@ +package armory.logicnode; + +import iron.object.SpeakerObject; + +class SetSoundNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function run(from: Int) { + var object: SpeakerObject = cast(inputs[1].get(), SpeakerObject); + var sound: String = inputs[2].get(); + if (object == null || sound == null) return; + object.setSound(sound); + runOutput(0); + } +} diff --git a/armory/Sources/armory/logicnode/SetVolumeSoundNode.hx b/armory/Sources/armory/logicnode/SetVolumeSoundNode.hx new file mode 100644 index 000000000..4364d44ac --- /dev/null +++ b/armory/Sources/armory/logicnode/SetVolumeSoundNode.hx @@ -0,0 +1,17 @@ +package armory.logicnode; + +import iron.object.SpeakerObject; + +class SetVolumeSoundNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function run(from: Int) { + var object: SpeakerObject = cast(inputs[1].get(), SpeakerObject); + if (object == null) return; + object.setVolume(inputs[2].get()); + runOutput(0); + } +}