mirror of
https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
synced 2024-08-15 00:43:27 +00:00
v 1.0.0
This commit is contained in:
parent
0828ecd037
commit
2998865184
9821 changed files with 90 additions and 90 deletions
43
Source/Assets/Scripts/Data/ActorPosition.cs
Normal file
43
Source/Assets/Scripts/Data/ActorPosition.cs
Normal file
|
@ -0,0 +1,43 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RimWorldAnimationStudio
|
||||
{
|
||||
public class ActorPosition
|
||||
{
|
||||
public float bodyOffsetX;
|
||||
public float bodyOffsetZ;
|
||||
public float bodyAngle;
|
||||
public float headBob;
|
||||
public float headAngle;
|
||||
public float genitalAngle;
|
||||
|
||||
public int bodyFacing;
|
||||
public int headFacing;
|
||||
|
||||
public ActorPosition(int actorID, int atTick)
|
||||
{
|
||||
PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID);
|
||||
|
||||
float clipPercent = (float)(atTick % clip.duration) / clip.duration;
|
||||
if (atTick > Constants.minTick && atTick == clip.duration) clipPercent = 1f;
|
||||
|
||||
if (Workspace.GetCurrentAnimationStage().IsLooping == false)
|
||||
{ clipPercent = (float)atTick / clip.duration; }
|
||||
|
||||
bodyOffsetX = clip.BodyOffsetX.Evaluate(clipPercent);
|
||||
bodyOffsetZ = clip.BodyOffsetZ.Evaluate(clipPercent);
|
||||
bodyAngle = clip.BodyAngle.Evaluate(clipPercent);
|
||||
headBob = clip.HeadBob.Evaluate(clipPercent);
|
||||
headAngle = clip.HeadAngle.Evaluate(clipPercent);
|
||||
genitalAngle = clip.GenitalAngle.Evaluate(clipPercent);
|
||||
|
||||
bodyFacing = (int)clip.BodyFacing.Evaluate(clipPercent);
|
||||
headFacing = (int)clip.HeadFacing.Evaluate(clipPercent);
|
||||
}
|
||||
}
|
||||
}
|
11
Source/Assets/Scripts/Data/ActorPosition.cs.meta
Normal file
11
Source/Assets/Scripts/Data/ActorPosition.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e2a9b0bb71978ea49909b3e1814303a5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
53
Source/Assets/Scripts/Data/Constants.cs
Normal file
53
Source/Assets/Scripts/Data/Constants.cs
Normal file
|
@ -0,0 +1,53 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml.Serialization;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RimWorldAnimationStudio
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
// Project data
|
||||
public static string currentVersion = "1.0.0";
|
||||
public static string projectHome = "https://gitgud.io/AbstractConcept/rimworld-animation-studio";
|
||||
public static string projectWiki = "https://gitgud.io/AbstractConcept/rimworld-animation-studio/-/wikis/home";
|
||||
|
||||
// Actions
|
||||
public static float actionRepeatSpeed = 0.250f;
|
||||
|
||||
// Animation defaults
|
||||
public static int defaultAnimationClipLength = 600;
|
||||
public static int minTick = 1;
|
||||
public static int minAnimationClipLength = 5;
|
||||
public static int maxAnimationClipLength = 9999;
|
||||
|
||||
// Lists
|
||||
public static Dictionary<string, string> bodyPartAnchorNames = new Dictionary<string, string>()
|
||||
{
|
||||
{ "none", "None" },
|
||||
{ "torso", "Torso"},
|
||||
{ "head", "Head"},
|
||||
{ "groin", "Groin"},
|
||||
{ "left breast", "Breast (left)"},
|
||||
{ "right breast", "Breast (right)"},
|
||||
};
|
||||
|
||||
// Colors used
|
||||
public static Color ColorWhite = new Color(1f, 1f, 1f);
|
||||
public static Color ColorGreen = new Color(0f, 1f, 0f);
|
||||
public static Color ColorLightGreen = new Color(0.75f, 1f, 0.75f);
|
||||
public static Color ColorGoldYellow = new Color(1f, 0.85f, 0f);
|
||||
public static Color ColorDarkGold = new Color(0.75f, 0.64f, 0f);
|
||||
public static Color ColorLightGrey = new Color(0.9f, 0.9f, 0.9f);
|
||||
public static Color ColorMidGrey = new Color(0.75f, 0.75f, 0.75f);
|
||||
public static Color ColorGrey = new Color(0.5f, 0.5f, 0.5f);
|
||||
public static Color ColorDarkGrey = new Color(0.2f, 0.2f, 0.2f);
|
||||
public static Color ColorPink = new Color(1.0f, 0.5f, 0.5f);
|
||||
public static Color ColorOrange = new Color(1.0f, 0.7f, 0.0f);
|
||||
public static Color ColorRichOrange = new Color(1.0f, 0.4f, 0.1f);
|
||||
public static Color ColorCyan = new Color(0.0f, 1.0f, 1.0f);
|
||||
public static Color ColorPurple = new Color(0.85f, 0.0f, 1.0f);
|
||||
public static Color ColorGhost = new Color(0.5f, 0f, 0f, 0.5f);
|
||||
public static Color ColorRed = new Color(0.9f, 0f, 0f);
|
||||
}
|
||||
}
|
11
Source/Assets/Scripts/Data/Constants.cs.meta
Normal file
11
Source/Assets/Scripts/Data/Constants.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5736ef91f32211942abe6c2f765da6c4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
44
Source/Assets/Scripts/Data/DefaultTags.cs
Normal file
44
Source/Assets/Scripts/Data/DefaultTags.cs
Normal file
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RimWorldAnimationStudio
|
||||
{
|
||||
public static class DefaultTags
|
||||
{
|
||||
public static List<string> defNames = new List<string>() { "Human", "Wolf_Timber", "Horse" };
|
||||
public static List<string> bodyParts = new List<string>() { "Penis", "Vagina", "Anus", "Breasts", "Mouth" };
|
||||
public static List<string> bodyDefTypes = new List<string>() { "Human", "Bird", "BeetleLike", "BeetleLikeWithClaw", "MechanicalCentipede", "MechanicalTermite", "Lancer", "Pikeman", "Monkey", "QuadrupedAnimalWithClawsTailAndJowl", "QuadrupedAnimalWithHooves", "QuadrupedAnimalWithHoovesAndHorn", "QuadrupedAnimalWithHoovesAndHump", "QuadrupedAnimalWithHoovesAndTusks", "QuadrupedAnimalWithHoovesTusksAndTrunk", "QuadrupedAnimalWithPaws", "QuadrupedAnimalWithPawsAndTail", "Scyther", "Snake", "TurtleLike" };
|
||||
public static List<string> sexTypes = new List<string>() { "None", "Vaginal", "Anal", "Oral", "Masturbation", "DoublePenetration", "Boobjob", "Handjob", "Footjob", "Fingering", "Scissoring", "MutualMasturbation", "Fisting", "MechImplant", "Rimming", "Fellatio", "Cunnilingus", "Sixtynine" };
|
||||
public static List<string> interactionDefTypes = new List<string>() { "Bestiality_Anal", "Bestiality_Double_Penetration_M", "Bestiality_Oral", "Bestiality_Vaginal", "Breeding_Lick", "Breeding_Fingering", "Breeding_OralS", "Bestiality_Reverse_Anal", "Bestiality_Reverse_Double_Penetration_M", "Bestiality_Reverse_Handjob", "Bestiality_Reverse_Oral", "Bestiality_Reverse_Oral_Service", "Bestiality_Reverse_Vaginal", "AnimalSexChat", "Masturbation_AutoBreastjob", "Masturbation_AutoFellatio", "Masturbation_Breastjob", "Masturbation_HandjobA", "Masturbation_HandjobP", "Masturbation_HandjobV", "rjw_interaction_template", "Necro_Anal", "Necro_DoublePenetration", "Necro_DoublePenetrationM", "Necro_Vaginal", "Necro_Reverse_Anal", "Necro_Reverse_DoublePenetration", "Necro_Reverse_DoublePenetrationM", "Necro_Reverse_Vaginal", "Rape_MechImplant", "Rape_Anal", "Rape_Beakjob", "Rape_Breastjob", "Rape_Cunnilingus", "Rape_DoublePenetration", "Rape_DoublePenetrationM", "Rape_Fellatio", "Rape_Fingering", "Rape_Fisting", "Rape_Footjob", "Rape_Handjob", "Rape_Oral", "Rape_Rimming", "Rape_Scissoring", "Rape_Vaginal", "Rape_Reverse_Anal", "Rape_Reverse_Beakjob", "Rape_Reverse_Breastjob", "Rape_Reverse_Cunnilingus", "Rape_Reverse_DoublePenetration", "Rape_Reverse_DoublePenetrationM", "Rape_Reverse_Fellatio", "Rape_Reverse_Fingering", "Rape_Reverse_Fisting", "Rape_Reverse_Footjob", "Rape_Reverse_Handjob", "Rape_Reverse_Rimming", "Rape_Reverse_Scissoring", "Rape_Reverse_Vaginal", "Sex_Reverse_Anal", "Sex_Reverse_Beakjob", "Sex_Reverse_Breastjob", "Sex_Reverse_Cunnilingus", "Sex_Reverse_DoublePenetration", "Sex_Reverse_DoublePenetrationM", "Sex_Reverse_Fellatio", "Sex_Reverse_Fingering", "Sex_Reverse_Fisting", "Sex_Reverse_Footjob", "Sex_Reverse_Handjob", "Sex_Reverse_Rimming", "Sex_Reverse_Vaginal", "Sex_Anal", "Sex_Beakjob", "Sex_Breastjob", "Sex_Cunnilingus", "Sex_DoublePenetration", "Sex_DoublePenetrationM", "Sex_Fellatio", "Sex_Fingering", "Sex_Fisting", "Sex_Footjob", "Sex_Handjob", "Sex_MutualMasturbation", "Sex_Rimming", "Sex_Scissoring", "Sex_Sixtynine", "Sex_Vaginal" };
|
||||
public static List<string> soundDefs = new List<string>() { "None", "Sex", "Fuck", "Slimy", "Suck", "Cum" };
|
||||
public static List<string> actorLayers = new List<string>() { "LayingPawn", "PawnRope", "Projectile", "Pawn", "PawnUnused" };
|
||||
public static List<string> bodyTypes = new List<string>() { "Male", "Female", "Fat", "Hulk", "Thin" };
|
||||
}
|
||||
|
||||
public static class CustomTags
|
||||
{
|
||||
public static List<string> defNames = new List<string>();
|
||||
public static List<string> bodyParts = new List<string>();
|
||||
public static List<string> bodyDefTypes = new List<string>();
|
||||
public static List<string> sexTypes = new List<string>();
|
||||
public static List<string> interactionDefTypes = new List<string>();
|
||||
public static List<string> soundDefs = new List<string>();
|
||||
public static List<string> bodyTypes = new List<string>();
|
||||
}
|
||||
|
||||
[XmlRoot("CustomTagsHelper", IsNullable = false)]
|
||||
public class CustomTagsHelper
|
||||
{
|
||||
[XmlArray("defNames"), XmlArrayItem("li")] public List<string> defNames = new List<string>();
|
||||
[XmlArray("bodyParts"), XmlArrayItem("li")] public List<string> bodyParts = new List<string>();
|
||||
[XmlArray("bodyDefTypes"), XmlArrayItem("li")] public List<string> bodyDefTypes = new List<string>();
|
||||
[XmlArray("sexTypes"), XmlArrayItem("li")] public List<string> sexTypes = new List<string>();
|
||||
[XmlArray("interactionDefTypes"), XmlArrayItem("li")] public List<string> interactionDefTypes = new List<string>();
|
||||
[XmlArray("soundDefs"), XmlArrayItem("li")] public List<string> soundDefs = new List<string>();
|
||||
[XmlArray("bodyTypes"), XmlArrayItem("li")] public static List<string> bodyTypes = new List<string>();
|
||||
}
|
||||
}
|
11
Source/Assets/Scripts/Data/DefaultTags.cs.meta
Normal file
11
Source/Assets/Scripts/Data/DefaultTags.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d2a4f1a7ea83f0544a350664fba7fc49
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
21
Source/Assets/Scripts/Data/Enums.cs
Normal file
21
Source/Assets/Scripts/Data/Enums.cs
Normal file
|
@ -0,0 +1,21 @@
|
|||
public enum ActorManipulationMode
|
||||
{
|
||||
Pan,
|
||||
Rotate,
|
||||
Face,
|
||||
}
|
||||
|
||||
public enum ActorGender
|
||||
{
|
||||
Female,
|
||||
None,
|
||||
Male,
|
||||
}
|
||||
|
||||
public enum CardinalDirection
|
||||
{
|
||||
North,
|
||||
East,
|
||||
South,
|
||||
West,
|
||||
}
|
11
Source/Assets/Scripts/Data/Enums.cs.meta
Normal file
11
Source/Assets/Scripts/Data/Enums.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ee120e06e7d8c1f45ad58fc6baab0d47
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
41
Source/Assets/Scripts/Data/SoundDef.cs
Normal file
41
Source/Assets/Scripts/Data/SoundDef.cs
Normal file
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RimWorldAnimationStudio
|
||||
{
|
||||
[Serializable]
|
||||
public class SoundDef
|
||||
{
|
||||
public string defName;
|
||||
public int maxSimultaneous;
|
||||
public int maxVoices;
|
||||
[XmlArray("subSounds"), XmlArrayItem("li")] public List<SubSoundDef> subSounds;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class SubSoundDef
|
||||
{
|
||||
[XmlArray("grains"), XmlArrayItem("li")] public List<AudioGrain> grains;
|
||||
public FloatRange volumeRange;
|
||||
public FloatRange pitchRange;
|
||||
public FloatRange distRange;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class AudioGrain
|
||||
{
|
||||
public string clipPath;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class FloatRange
|
||||
{
|
||||
public float min;
|
||||
public float max;
|
||||
}
|
||||
}
|
11
Source/Assets/Scripts/Data/SoundDef.cs.meta
Normal file
11
Source/Assets/Scripts/Data/SoundDef.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 809f70f9c2ecfe64e80d88134af30c81
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Add a link
Reference in a new issue