Code refactor

This commit is contained in:
AbstractConcept 2022-10-31 19:58:41 -05:00
parent e14a12f2ab
commit af4dab5546
278 changed files with 468 additions and 668 deletions

View file

@ -15,13 +15,12 @@ namespace RimWorldAnimationStudio
public int? anchoringActor;
public string anchorName;
public string layer = "Pawn";
public float? scale;
public GraphicData graphicData;
public bool? render;
// Data serialization control
public bool ShouldSerializeanchorName() { return string.IsNullOrEmpty(anchorName) == false && anchorName.ToLower() != "none"; }
public bool ShouldSerializeanchoringActor() { return anchoringActor.HasValue; }
public bool ShouldSerializescale() { return scale.HasValue; }
public bool ShouldSerializerender() { return render == true; }
// Data helper functions
@ -49,10 +48,11 @@ namespace RimWorldAnimationStudio
set { layer = value; }
}
[XmlIgnore] public float Scale
[XmlIgnore]
public GraphicData GraphicData
{
get { return scale.HasValue ? scale.Value : 0f; }
set { scale = value; }
get { return graphicData; }
set { graphicData = value; }
}
[XmlIgnore] public bool Render
@ -69,10 +69,10 @@ namespace RimWorldAnimationStudio
// Constructors
public ActorAddon() { }
public ActorAddon(string addonName, float scale = 1f)
public ActorAddon(ActorAddonDef actorAddonDef)
{
this.AddonName = addonName;
this.Scale = scale;
this.AddonName = actorAddonDef.addonName;
this.GraphicData = actorAddonDef.graphicData.Copy();
}
}
}

View file

@ -11,5 +11,7 @@ namespace RimWorldAnimationStudio
public string addonName;
public string label;
public float scale = 1f;
public GraphicData graphicData;
}
}

View file

@ -62,6 +62,10 @@ namespace RimWorldAnimationStudio
// Methods
public void BuildSimpleCurves()
{
// Add addon data (if missing)
foreach (ActorAddonDef actorAddonDef in ActorAddonDefs.allDefs)
{ AddActorAddon(actorAddonDef); }
// Clear simple curve data
BodyAngle.Clear();
HeadAngle.Clear();
@ -72,10 +76,6 @@ namespace RimWorldAnimationStudio
HeadBob.Clear();
GenitalAngle.Clear();
AddActorAddon("left hand", 0.667f);
AddActorAddon("right hand", 0.667f);
AddActorAddon("dildo");
foreach (ActorAddon addon in Addons)
{
addon.PosX.Clear();
@ -83,7 +83,7 @@ namespace RimWorldAnimationStudio
addon.Rotation.Clear();
}
// Start
// Start building simple curves
int keyframePosition = 0;
int duration = 0;
@ -151,17 +151,15 @@ namespace RimWorldAnimationStudio
}
}
public void AddActorAddon(string addonName, float scale = 1f)
public void AddActorAddon(ActorAddonDef actorAddonDef)
{
if (Addons.Any(x => x.AddonName == addonName) == false)
{
Addons.Add(new ActorAddon(addonName, scale));
}
if (Addons.Any(x => x.AddonName == actorAddonDef.addonName) == false)
{ Addons.Add(new ActorAddon(actorAddonDef)); }
foreach (PawnKeyframe keyframe in Keyframes)
{
if (keyframe.AddonKeyframes.Any(x => x.AddonName == addonName) == false)
{ keyframe.AddonKeyframes.Add(new AddonKeyframe(addonName)); }
if (keyframe.AddonKeyframes.Any(x => x.AddonName == actorAddonDef.addonName) == false)
{ keyframe.AddonKeyframes.Add(new AddonKeyframe(actorAddonDef.addonName)); }
}
}