- Removed 'None' as a user specified option for sex type. Animations will now be automatically assigned a sex type of 'None' if they have no other sex type or interaction def specified
- Minor UI improvements
This commit is contained in:
AbstractConcept 2023-01-09 14:21:53 -06:00
parent 279823a390
commit b6d3df800d
76 changed files with 141 additions and 122 deletions

View file

@ -1412,8 +1412,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 145, y: -15}
m_SizeDelta: {x: 53.699097, y: 30}
m_AnchoredPosition: {x: 142.86, y: -15}
m_SizeDelta: {x: 49.426086, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &105454401
MonoBehaviour:
@ -1441,7 +1441,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 3
m_Alignment: 5
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@ -8150,7 +8150,7 @@ MonoBehaviour:
m_HorizontalScrollbarVisibility: 2
m_VerticalScrollbarVisibility: 2
m_HorizontalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -15
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@ -17352,7 +17352,7 @@ RectTransform:
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.99998623}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -20461,7 +20461,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -17, y: 0}
m_SizeDelta: {x: -5, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1144641953
MonoBehaviour:
@ -21024,7 +21024,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 922060209}
m_Direction: 2
m_Value: 0
m_Size: 0.99998623
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@ -25501,7 +25501,7 @@ MonoBehaviour:
m_HorizontalScrollbarVisibility: 2
m_VerticalScrollbarVisibility: 2
m_HorizontalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -15
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@ -26731,7 +26731,7 @@ RectTransform:
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.9999999}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -32426,7 +32426,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0.000049342736}
m_AnchoredPosition: {x: 0, y: 0.00014121436}
m_SizeDelta: {x: 0, y: 461.0254}
m_Pivot: {x: 0, y: 1}
--- !u!1 &1757069697 stripped
@ -35198,7 +35198,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -17, y: 0}
m_SizeDelta: {x: -5, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1895507858
MonoBehaviour:
@ -36089,8 +36089,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 240, y: -15}
m_SizeDelta: {x: 52.045288, y: 30}
m_AnchoredPosition: {x: 237.86, y: -15}
m_SizeDelta: {x: 47.77234, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1960844027
MonoBehaviour:
@ -36118,13 +36118,13 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 3
m_Alignment: 5
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Quickie
m_Text: Quick
--- !u!222 &1960844028
CanvasRenderer:
m_ObjectHideFlags: 0

View file

@ -170,8 +170,15 @@ namespace RimWorldAnimationStudio
{
SexTypes = SexTypes.Intersect(DefaultTags.sexTypes.Concat(CustomTags.sexTypes))?.ToList();
InteractionDefTypes = InteractionDefTypes.Intersect(DefaultTags.interactionDefTypes.Concat(CustomTags.interactionDefTypes))?.ToList();
if (SexTypes.NullOrEmpty() && InteractionDefTypes.NullOrEmpty())
{ SexTypes.Add("None"); }
}
public void OnPostLoad() { }
public void OnPostLoad()
{
if (SexTypes.Contains("None"))
{ SexTypes.Remove("None"); }
}
}
}

View file

@ -8,7 +8,7 @@ namespace RimWorldAnimationStudio
public static class Constants
{
// Project data
public static string currentVersion = "1.0.1";
public static string currentVersion = "1.0.2";
public static string projectHome = "https://gitgud.io/AbstractConcept/rimworld-animation-studio";
public static string projectWiki = "https://gitgud.io/AbstractConcept/rimworld-animation-studio/-/wikis/home";

View file

@ -12,7 +12,7 @@ namespace RimWorldAnimationStudio
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> sexTypes = new List<string>() { "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" };

View file

@ -69,10 +69,9 @@ namespace RimWorldAnimationStudio
{
Workspace.Reset();
Workspace.animationDef = animationDef;
UpdateCustomArrays(animationDef);
Workspace.animationDef = animationDef;
RunPostLoadOperations(animationDef);
UpdateCustomArrays(animationDef);
animationDef.Initialize();
Debug.Log("Loaded AnimationDef: " + animationDef.DefName);
@ -89,6 +88,22 @@ namespace RimWorldAnimationStudio
public void RunPostLoadOperations(AnimationDef animationDef)
{
animationDef.OnPostLoad();
foreach (AnimationStage stage in animationDef.AnimationStages)
{
stage.OnPostLoad();
foreach (PawnAnimationClip clip in stage.AnimationClips)
{
clip.OnPostLoad();
foreach (PawnKeyframe keyframe in clip.Keyframes)
{ keyframe.OnPostLoad(); }
}
}
// Adjustment to add absent quick animation length
if (animationDef.animationTimeTicksQuick <= 0)
{
if (animationDef.AnimationStages.Count > 1)
@ -103,9 +118,6 @@ namespace RimWorldAnimationStudio
else if (animationDef.AnimationStages.Count == 1)
{ animationDef.AnimationStages[0].PlayTimeTicksQuick = animationDef.AnimationStages[0].PlayTimeTicks; }
}
foreach (AnimationStage stage in animationDef.AnimationStages)
{ stage.OnPostLoad(); }
}
public void TryToSaveAnimation()