From c800084a328842024ef3d88f4af309a9e989ad8e Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 22 Apr 2024 16:14:04 -0700 Subject: [PATCH] playable sounds --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 38400 -> 39424 bytes 1.5/Defs/AnimationDefs/TestAnimation1.xml | 1 + .../AnimationWorker_KeyframesExtended.cs | 17 +++++++++ 1.5/Source/Comps/CompExtendedAnimator.cs | 34 ++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index 9ecd0832967adcf3ee268bfdf5a63adf8d6041b8..fa7e05c51ae2a9885f86e44f30b3396044771f0c 100644 GIT binary patch delta 17276 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 delta 16646 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 diff --git a/1.5/Defs/AnimationDefs/TestAnimation1.xml b/1.5/Defs/AnimationDefs/TestAnimation1.xml index 466bbb4..60362c4 100644 --- a/1.5/Defs/AnimationDefs/TestAnimation1.xml +++ b/1.5/Defs/AnimationDefs/TestAnimation1.xml @@ -12,6 +12,7 @@ Rimworld_Animations.AnimationWorker_KeyframesExtended
  • + Fuck 30 0 true diff --git a/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs b/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs index 1b41241..0b74719 100644 --- a/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs +++ b/1.5/Source/Animations/AnimationWorkers/AnimationWorker_KeyframesExtended.cs @@ -22,6 +22,23 @@ namespace Rimworld_Animations return base.OffsetAtTick(tick, parms); } + public SoundDef soundAtTick(int tick) + { + + //Verse.Keyframe keyframe = this.part.keyframes[0]; + Verse.Keyframe keyframe2 = this.part.keyframes[this.part.keyframes.Count - 1]; + foreach (Verse.Keyframe keyframe in this.part.keyframes) + { + if (tick == keyframe.tick) + { + return (keyframe as ExtendedKeyframe).sound; + } + + } + + return null; + } + //use extendedkeyframes to determine addon facing diff --git a/1.5/Source/Comps/CompExtendedAnimator.cs b/1.5/Source/Comps/CompExtendedAnimator.cs index 463dd3f..ed810fd 100644 --- a/1.5/Source/Comps/CompExtendedAnimator.cs +++ b/1.5/Source/Comps/CompExtendedAnimator.cs @@ -93,6 +93,9 @@ namespace Rimworld_Animations { StopAnimating(); } } + + CheckAndPlaySounds(); + } @@ -198,6 +201,37 @@ namespace Rimworld_Animations { } + public void CheckAndPlaySounds() + { + + PawnRenderNode rootNode = pawn.Drawer.renderer.renderTree.rootNode; + + //check if the rootnode has sounds; if so play it + if (rootNode.AnimationWorker is AnimationWorker_KeyframesExtended animWorker) + { + SoundDef sound = animWorker.soundAtTick(rootNode.tree.AnimationTick); + if (sound != null) + { + sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + } + + } + + //do the same for all the child nodes + foreach (PawnRenderNode node in rootNode.children) + { + if (node.AnimationWorker is AnimationWorker_KeyframesExtended childrenAnimWorker) + { + SoundDef sound = childrenAnimWorker.soundAtTick(node.tree.AnimationTick); + if (sound != null) + { + sound.PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); + } + + } + } + } + public bool AnimationMakesUseOfProp(AnimationPropDef animationProp) { // never true if not animating; anim props shouldn't be attached