mirror of
https://gitgud.io/AbstractConcept/rimworld-animations-patch.git
synced 2024-08-15 00:43:27 +00:00
v2.0.7
- Fixed issue where apparel settings were not being saved between sessions - Using the 'set all true / false' buttons in the apparel settings now only applies to the apparel that are currently displayed in the configuration table - Added default apparel settings for Biotech apparel - Set up the strings used in the apparel configuration table menu to be translatable
This commit is contained in:
parent
e139ff14fb
commit
91b3a80400
13 changed files with 193 additions and 199 deletions
|
@ -104,7 +104,7 @@ namespace Rimworld_Animations_Patch
|
|||
|
||||
if (comp == null) continue;
|
||||
if (apparel.def is bondage_gear_def) continue;
|
||||
if (ApparelSettings.GetRimNudeData(apparel) != null && ApparelSettings.GetRimNudeData(apparel).sexWear) continue;
|
||||
if (ApparelSettingsUtility.GetRimNudeData(apparel)?.sexWear == true) continue;
|
||||
|
||||
if (clothingPreference == RJWPreferenceSettings.Clothing.Nude || undressForRitual || undressForParty)
|
||||
{
|
||||
|
|
|
@ -32,189 +32,175 @@ namespace Rimworld_Animations_Patch
|
|||
cachedApparelTextures.Clear();
|
||||
}
|
||||
|
||||
public static bool IsApparelOfInterest(ThingDef thingDef)
|
||||
{
|
||||
if (thingDef.IsApparel == false) return false;
|
||||
|
||||
return thingDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Torso) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(PatchBodyPartGroupDefOf.GenitalsBPG) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(PatchBodyPartGroupDefOf.ChestBPG);
|
||||
}
|
||||
|
||||
public static List<ThingDef> GetApparelOfInterest()
|
||||
{
|
||||
List<ThingDef> thingDefs = new List<ThingDef>();
|
||||
|
||||
foreach (ThingDef thingDef in DefDatabase<ThingDef>.AllDefs)
|
||||
{
|
||||
if (thingDef.IsApparel &&
|
||||
(thingDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Torso) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(PatchBodyPartGroupDefOf.GenitalsBPG) ||
|
||||
thingDef.apparel.bodyPartGroups.Contains(PatchBodyPartGroupDefOf.ChestBPG)))
|
||||
if (IsApparelOfInterest(thingDef))
|
||||
{ thingDefs.Add(thingDef); }
|
||||
}
|
||||
|
||||
return thingDefs;
|
||||
}
|
||||
|
||||
// Resets all data
|
||||
public static void ResetRimNudeData(List<RimNudeData> rimNudeData)
|
||||
// Get data
|
||||
public static RimNudeData GetRimNudeData(ThingDef thingDef)
|
||||
{
|
||||
rimNudeData.Clear();
|
||||
List<ThingDef> thingDefs = GetApparelOfInterest();
|
||||
if (ApparelSettings.rimNudeData.NullOrEmpty()) ResetRimNudeData();
|
||||
if (IsApparelOfInterest(thingDef) == false) return null;
|
||||
|
||||
foreach (RimNudeData rimNudeData in ApparelSettings.rimNudeData)
|
||||
{
|
||||
if (rimNudeData.EquivalentTo(new RimNudeData(thingDef)))
|
||||
{ return rimNudeData; }
|
||||
}
|
||||
|
||||
var newRimNudeData = GetApparelDefault(thingDef);
|
||||
if (newRimNudeData == null) newRimNudeData = new RimNudeData(thingDef);
|
||||
|
||||
ApparelSettings.rimNudeData.Add(newRimNudeData);
|
||||
|
||||
return newRimNudeData;
|
||||
}
|
||||
|
||||
public static RimNudeData GetRimNudeData(Apparel apparel)
|
||||
{
|
||||
return GetRimNudeData(apparel.def);
|
||||
}
|
||||
|
||||
// Reset all data
|
||||
public static void ResetRimNudeData()
|
||||
{
|
||||
ApparelSettings.rimNudeData = new List<RimNudeData>();
|
||||
|
||||
foreach (ThingDef thingDef in GetApparelOfInterest())
|
||||
{
|
||||
var newRimNudeData = GetApparelDefault(thingDef);
|
||||
if (newRimNudeData == null) newRimNudeData = new RimNudeData(thingDef);
|
||||
|
||||
ApparelSettings.rimNudeData.Add(newRimNudeData);
|
||||
}
|
||||
}
|
||||
|
||||
// Reset some data
|
||||
public static void ResetRimNudeData(List<ThingDef> thingDefs)
|
||||
{
|
||||
if (ApparelSettings.rimNudeData.NullOrEmpty()) ResetRimNudeData();
|
||||
|
||||
foreach (ThingDef thingDef in thingDefs)
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{ rimNudeData.Add(new RimNudeData(thingDef)); }
|
||||
}
|
||||
var newRimNudeData = GetApparelDefault(thingDef);
|
||||
if (newRimNudeData == null) newRimNudeData = new RimNudeData(thingDef);
|
||||
|
||||
GetApparelDefaults(rimNudeData);
|
||||
RimNudeData rimNudeData = ApparelSettings.rimNudeData.FirstOrDefault(x => x.EquivalentTo(new RimNudeData(thingDef)));
|
||||
rimNudeData.coversGroin = newRimNudeData.coversGroin;
|
||||
rimNudeData.coversBelly = newRimNudeData.coversBelly;
|
||||
rimNudeData.coversChest = newRimNudeData.coversChest;
|
||||
rimNudeData.sexWear = newRimNudeData.sexWear;
|
||||
}
|
||||
}
|
||||
|
||||
// Update apparel data
|
||||
public static void UpdateRimNudeData(List<RimNudeData> rimNudeData, string thingDef, bool coversGroin, bool coversBelly, bool coversChest, bool sexWear)
|
||||
public static void SetAllCoversGroin(List<ThingDef> thingDefs, bool value)
|
||||
{
|
||||
for (int i = 0; i < rimNudeData.Count; i++)
|
||||
foreach (ThingDef thingDef in thingDefs)
|
||||
{
|
||||
RimNudeData apparelData = rimNudeData[i];
|
||||
|
||||
if (apparelData.thingDef == thingDef)
|
||||
{
|
||||
rimNudeData[i] = new RimNudeData(thingDef, coversGroin, coversBelly, coversChest, sexWear);
|
||||
return;
|
||||
}
|
||||
RimNudeData rimNudeApparel = ApparelSettings.rimNudeData.First(x => x.EquivalentTo(new RimNudeData(thingDef)));
|
||||
rimNudeApparel.coversGroin = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetAllCoversGroin(List<RimNudeData> rimNudeData, bool value)
|
||||
public static void SetAllCoversBelly(List<ThingDef> thingDefs, bool value)
|
||||
{
|
||||
foreach (RimNudeData rimNudeApparel in rimNudeData)
|
||||
{ rimNudeApparel.coversGroin = value; }
|
||||
foreach (ThingDef thingDef in thingDefs)
|
||||
{
|
||||
RimNudeData rimNudeApparel = ApparelSettings.rimNudeData.First(x => x.EquivalentTo(new RimNudeData(thingDef)));
|
||||
rimNudeApparel.coversBelly = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetAllCoversBelly(List<RimNudeData> rimNudeData, bool value)
|
||||
public static void SetAllCoversChest(List<ThingDef> thingDefs, bool value)
|
||||
{
|
||||
foreach (RimNudeData rimNudeApparel in rimNudeData)
|
||||
{ rimNudeApparel.coversBelly = value; }
|
||||
foreach (ThingDef thingDef in thingDefs)
|
||||
{
|
||||
RimNudeData rimNudeApparel = ApparelSettings.rimNudeData.First(x => x.EquivalentTo(new RimNudeData(thingDef)));
|
||||
rimNudeApparel.coversChest = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetAllCoversChest(List<RimNudeData> rimNudeData, bool value)
|
||||
public static void SetAllSexWear(List<ThingDef> thingDefs, bool value)
|
||||
{
|
||||
foreach (RimNudeData rimNudeApparel in rimNudeData)
|
||||
{ rimNudeApparel.coversChest = value; }
|
||||
foreach (ThingDef thingDef in thingDefs)
|
||||
{
|
||||
RimNudeData rimNudeApparel = ApparelSettings.rimNudeData.First(x => x.EquivalentTo(new RimNudeData(thingDef)));
|
||||
rimNudeApparel.sexWear = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetAllSexWear(List<RimNudeData> rimNudeData, bool value)
|
||||
public static RimNudeData GetApparelDefault(ThingDef thingDef)
|
||||
{
|
||||
foreach (RimNudeData rimNudeApparel in rimNudeData)
|
||||
{ rimNudeApparel.sexWear = value; }
|
||||
foreach(RimNudeData rimNudeData in apparelDefaults)
|
||||
{
|
||||
if (rimNudeData.thingDef == thingDef.defName)
|
||||
{ return rimNudeData; }
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void GetApparelDefaults(List<RimNudeData> rimNudeData)
|
||||
public static List<RimNudeData> apparelDefaults = new List<RimNudeData>()
|
||||
{
|
||||
//Apparel_BasicShirt
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_BasicShirt", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_CollarShirt
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_CollarShirt", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_FlakVest
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_FlakVest", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false);
|
||||
|
||||
//Apparel_Duster
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_Duster", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_Jacket
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_Jacket", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_TribalA
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_TribalA", coversGroin: true, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_BodyStrap
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_BodyStrap", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//Apparel_PsyfocusRobe
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_PsyfocusRobe", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_Cape
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_Cape", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false);
|
||||
|
||||
//Apparel_RobeRoyal
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_RobeRoyal", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//Apparel_Corset
|
||||
UpdateRimNudeData(rimNudeData, "Apparel_Corset", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//VAE_Apparel_Overalls
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_Overalls", coversGroin: true, coversBelly: true, coversChest: false, sexWear: false);
|
||||
|
||||
//VAE_Apparel_LabCoat
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_LabCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//VAE_Apparel_BuildersJacket
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_BuildersJacket", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//VAE_Apparel_Apron
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_Apron", coversGroin: true, coversBelly: true, coversChest: false, sexWear: false);
|
||||
|
||||
//VAE_Apparel_Tunic
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_Tunic", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//VAE_Apparel_PeltCoat
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_PeltCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//VAE_Apparel_WoodenArmor
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_WoodenArmor", coversGroin: false, coversBelly: true, coversChest: false, sexWear: false);
|
||||
|
||||
//VAE_Apparel_AdvancedVest
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_AdvancedVest", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false);
|
||||
|
||||
//VAE_Apparel_BulletproofVest
|
||||
UpdateRimNudeData(rimNudeData, "VAE_Apparel_BulletproofVest", coversGroin: false, coversBelly: true, coversChest: false, sexWear: false);
|
||||
|
||||
//VWE_Apparel_Exoframe
|
||||
UpdateRimNudeData(rimNudeData, "VWE_Apparel_Exoframe", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false);
|
||||
|
||||
//VFEM_Apparel_Tabard
|
||||
UpdateRimNudeData(rimNudeData, "VFEM_Apparel_Tabard", coversGroin: true, coversBelly: true, coversChest: true, sexWear: false);
|
||||
|
||||
//VFEV_Apparel_JarlCape
|
||||
UpdateRimNudeData(rimNudeData, "VFEV_Apparel_JarlCape", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//VFEV_Apparel_RoyalFurCoat
|
||||
UpdateRimNudeData(rimNudeData, "VFEV_Apparel_RoyalFurCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false);
|
||||
|
||||
//PrisonerChains
|
||||
UpdateRimNudeData(rimNudeData, "PrisonerChains", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_ChainHarnessA
|
||||
UpdateRimNudeData(rimNudeData, "S16_ChainHarnessA", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_NippleWristCuffs
|
||||
UpdateRimNudeData(rimNudeData, "S16_NippleWristCuffs", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_ServantGirlDress
|
||||
UpdateRimNudeData(rimNudeData, "S16_ServantGirlDress", coversGroin: true, coversBelly: true, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_ZDress
|
||||
UpdateRimNudeData(rimNudeData, "S16_ZDress", coversGroin: false, coversBelly: true, coversChest: true, sexWear: true);
|
||||
|
||||
//S16_MaidA
|
||||
UpdateRimNudeData(rimNudeData, "S16_MaidA", coversGroin: false, coversBelly: true, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_DiscoTop
|
||||
UpdateRimNudeData(rimNudeData, "S16_DiscoTop", coversGroin: false, coversBelly: false, coversChest: true, sexWear: true);
|
||||
|
||||
//S16_TransparentSkirt
|
||||
UpdateRimNudeData(rimNudeData, "S16_TransparentSkirt", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_Vibrator
|
||||
UpdateRimNudeData(rimNudeData, "S16_Vibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_VibratorDouble
|
||||
UpdateRimNudeData(rimNudeData, "S16_VibratorDouble", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_WiredVibrator
|
||||
UpdateRimNudeData(rimNudeData, "S16_WiredVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_DoubleWiredVibrator
|
||||
UpdateRimNudeData(rimNudeData, "S16_DoubleWiredVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
|
||||
//S16_WiredAnalVibrator
|
||||
UpdateRimNudeData(rimNudeData, "S16_WiredAnalVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true);
|
||||
}
|
||||
new RimNudeData("Apparel_BasicShirt", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_CollarShirt", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_FlakVest", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("Apparel_Duster", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_Jacket", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_TribalA", coversGroin: true, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_BodyStrap", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("Apparel_PsyfocusRobe", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_Cape", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("Apparel_RobeRoyal", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_Corset", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("Apparel_Bandolier", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("Apparel_Sash", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("Apparel_HeavyShield", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_Overalls", coversGroin: true, coversBelly: true, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_LabCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_BuildersJacket", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_Apron", coversGroin: true, coversBelly: true, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_Tunic", coversGroin: false, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_PeltCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_WoodenArmor", coversGroin: false, coversBelly: true, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_AdvancedVest", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VAE_Apparel_BulletproofVest", coversGroin: false, coversBelly: true, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VWE_Apparel_Exoframe", coversGroin: false, coversBelly: false, coversChest: false, sexWear: false),
|
||||
new RimNudeData("VFEM_Apparel_Tabard", coversGroin: true, coversBelly: true, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VFEV_Apparel_JarlCape", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("VFEV_Apparel_RoyalFurCoat", coversGroin: false, coversBelly: false, coversChest: true, sexWear: false),
|
||||
new RimNudeData("PrisonerChains", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_ChainHarnessA", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_NippleWristCuffs", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_ServantGirlDress", coversGroin: true, coversBelly: true, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_ZDress", coversGroin: false, coversBelly: true, coversChest: true, sexWear: true),
|
||||
new RimNudeData("S16_MaidA", coversGroin: false, coversBelly: true, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_DiscoTop", coversGroin: false, coversBelly: false, coversChest: true, sexWear: true),
|
||||
new RimNudeData("S16_TransparentSkirt", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_Vibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_VibratorDouble", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_WiredVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_DoubleWiredVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
new RimNudeData("S16_WiredAnalVibrator", coversGroin: false, coversBelly: false, coversChest: false, sexWear: true),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue