mirror of
				https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
				synced 2024-08-15 00:43:45 +00:00 
			
		
		
		
	voices
This commit is contained in:
		
							parent
							
								
									96986104d5
								
							
						
					
					
						commit
						0e9419b039
					
				
					 9 changed files with 120 additions and 3 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										21
									
								
								1.5/Defs/VoiceDefs/VoiceDef_Human.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								1.5/Defs/VoiceDefs/VoiceDef_Human.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<Rimworld_Animations.VoiceDef>
 | 
			
		||||
		<defName>Voice_HumanFemale</defName>
 | 
			
		||||
		<race>Human</race>
 | 
			
		||||
		<gender>Female</gender>
 | 
			
		||||
		<sounds>
 | 
			
		||||
			<!-- <li><key>Moan</key><value>FemaleMoanSoundDefHere</value></li> -->
 | 
			
		||||
		</sounds>
 | 
			
		||||
	</Rimworld_Animations.VoiceDef>
 | 
			
		||||
 | 
			
		||||
	<Rimworld_Animations.VoiceDef>
 | 
			
		||||
		<defName>Voice_HumanMale</defName>
 | 
			
		||||
		<race>Human</race>
 | 
			
		||||
		<gender>Male</gender>
 | 
			
		||||
		<sounds>
 | 
			
		||||
			<!-- <li><key>Moan</key><value>MaleMoanSoundDefHere</value></li> -->
 | 
			
		||||
		</sounds>
 | 
			
		||||
	</Rimworld_Animations.VoiceDef>
 | 
			
		||||
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										16
									
								
								1.5/Defs/VoiceDefs/VoiceDef_Orassan.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								1.5/Defs/VoiceDefs/VoiceDef_Orassan.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<!--
 | 
			
		||||
	<Rimworld_Animations.VoiceDef>
 | 
			
		||||
		<defName>Voice_Orassan</defName>
 | 
			
		||||
		<race>Alien_Orassan</race>
 | 
			
		||||
		<gender>Male</gender>
 | 
			
		||||
		<traitDefs>
 | 
			
		||||
			<li>Wimpy</li>
 | 
			
		||||
		</traitDefs>
 | 
			
		||||
		<sounds>
 | 
			
		||||
			<li><key>Moan</key><value>CatMoans</value></li>
 | 
			
		||||
		</sounds>
 | 
			
		||||
	</Rimworld_Animations.VoiceDef>
 | 
			
		||||
	-->
 | 
			
		||||
</Defs>
 | 
			
		||||
							
								
								
									
										6
									
								
								1.5/Defs/VoiceDefs/VoiceTagDef.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								1.5/Defs/VoiceDefs/VoiceTagDef.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<Rimworld_Animations.VoiceTagDef>
 | 
			
		||||
		<defName>Moan</defName>
 | 
			
		||||
	</Rimworld_Animations.VoiceTagDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +52,7 @@ namespace Rimworld_Animations
 | 
			
		|||
                {
 | 
			
		||||
                    if (context.AnimationPriority() > priority)
 | 
			
		||||
                    {
 | 
			
		||||
                        //get highest priority context for fitting animation
 | 
			
		||||
                        //get highest priority context for fitting animation, and its reorder
 | 
			
		||||
                        priority = context.AnimationPriority();
 | 
			
		||||
                        reorder = context.AnimationReorder();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -252,11 +252,11 @@ namespace Rimworld_Animations {
 | 
			
		|||
            //all voice options
 | 
			
		||||
            List<VoiceDef> voiceOptions =
 | 
			
		||||
                DefDatabase<VoiceDef>.AllDefsListForReading
 | 
			
		||||
                .FindAll(voiceDef => voice.VoiceFitsPawn(pawn));
 | 
			
		||||
                .FindAll(voiceDef => voiceDef.VoiceFitsPawn(pawn));
 | 
			
		||||
 | 
			
		||||
            //all voice options, with priority (for traitdef specific voices)
 | 
			
		||||
            List<VoiceDef> voiceOptionsWithPriority =
 | 
			
		||||
                voiceOptions.FindAll(voiceDef => voice.takesPriority);
 | 
			
		||||
                voiceOptions.FindAll(voiceDef => voiceDef.takesPriority);
 | 
			
		||||
 | 
			
		||||
            if (!voiceOptionsWithPriority.NullOrEmpty())
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								1.5/Source/Voices/VoiceDef.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								1.5/Source/Voices/VoiceDef.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class VoiceDef : Def
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public ThingDef race;
 | 
			
		||||
        public Gender gender = Gender.None;
 | 
			
		||||
        public List<TraitDef> traits = new List<TraitDef>();
 | 
			
		||||
        public bool takesPriority = false;
 | 
			
		||||
        public float randomChanceFactor = 1;
 | 
			
		||||
 | 
			
		||||
        public Dictionary<VoiceTagDef, SoundDef> sounds = new Dictionary<VoiceTagDef, SoundDef>();
 | 
			
		||||
 | 
			
		||||
        public bool VoiceFitsPawn(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            //doesn't match race
 | 
			
		||||
            if (pawn.def != race) return false;
 | 
			
		||||
 | 
			
		||||
            //doesn't match gender
 | 
			
		||||
            if (gender != Gender.None && pawn.gender != gender) return false;
 | 
			
		||||
 | 
			
		||||
            //if traits list is not empty, and pawn doesn't have any of the designated traits, doesn't match
 | 
			
		||||
            if (!traits.Empty() && !traits.Any(trait => pawn.story.traits.HasTrait(trait))) return false;
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								1.5/Source/Voices/VoiceDefOf.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								1.5/Source/Voices/VoiceDefOf.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using rjw;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    [DefOf]
 | 
			
		||||
    public static class VoiceDefOf
 | 
			
		||||
    {
 | 
			
		||||
        static VoiceDefOf()
 | 
			
		||||
        {
 | 
			
		||||
            DefOfHelper.EnsureInitializedInCtor(typeof(VoiceDefOf));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static VoiceDef Voice_HumanMale;
 | 
			
		||||
        public static VoiceDef Voice_HumanFemale;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								1.5/Source/Voices/VoiceTagDef.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								1.5/Source/Voices/VoiceTagDef.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class VoiceTagDef : Def
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue