better bed positioning + mirroring

This commit is contained in:
c0ffee 2022-01-25 12:35:15 -08:00
parent fbac7e273d
commit d617dc6a1b
10 changed files with 10 additions and 12 deletions

View file

@ -42,7 +42,7 @@
<graphicData> <graphicData>
<texPath>Things/SexToys/Dildo</texPath> <texPath>Things/SexToys/Dildo</texPath>
<shaderType>CutoutComplex</shaderType> <shaderType>CutoutComplex</shaderType>
<graphicClass>Graphic_Single</graphicClass> <graphicClass>Graphic_Multi</graphicClass>
</graphicData> </graphicData>
<statBases> <statBases>

View file

@ -72,7 +72,7 @@ namespace RJW_ToysAndMasturbation {
return false; return false;
}; };
Predicate<Thing> validatorForBed = delegate (Thing t) { Predicate<Thing> validatorForRoom = delegate (Thing t) {
if (t.TryGetComp<CompSexToy>() == null) if (t.TryGetComp<CompSexToy>() == null)
{ {
return false; return false;
@ -81,7 +81,7 @@ namespace RJW_ToysAndMasturbation {
if (t.TryGetComp<CompSexToy>().Props.primaryGender == p.gender || if (t.TryGetComp<CompSexToy>().Props.primaryGender == p.gender ||
(t.TryGetComp<CompSexToy>().Props.primaryGender == Gender.Male && xxx.can_fuck(p) && (RJWPreferenceSettings.FeMalesex == RJWPreferenceSettings.AllowedSex.All || RJWPreferenceSettings.FeMalesex == RJWPreferenceSettings.AllowedSex.Homo)) || (t.TryGetComp<CompSexToy>().Props.primaryGender == Gender.Male && xxx.can_fuck(p) && (RJWPreferenceSettings.FeMalesex == RJWPreferenceSettings.AllowedSex.All || RJWPreferenceSettings.FeMalesex == RJWPreferenceSettings.AllowedSex.Homo)) ||
(t.TryGetComp<CompSexToy>().Props.primaryGender == Gender.Female && xxx.can_be_fucked(p) && (RJWPreferenceSettings.Malesex == RJWPreferenceSettings.AllowedSex.All || RJWPreferenceSettings.Malesex == RJWPreferenceSettings.AllowedSex.Homo)) (t.TryGetComp<CompSexToy>().Props.primaryGender == Gender.Female && xxx.can_be_fucked(p) && (RJWPreferenceSettings.Malesex == RJWPreferenceSettings.AllowedSex.All || RJWPreferenceSettings.Malesex == RJWPreferenceSettings.AllowedSex.Homo))
&& t.GetRoom(RegionType.Set_All) == p.CurrentBed().GetRoom(RegionType.Set_All)) && t.GetRoom(RegionType.Set_All) == p.ownership.OwnedRoom)
{ {
return true; return true;
} }
@ -89,9 +89,9 @@ namespace RJW_ToysAndMasturbation {
return false; return false;
}; };
if (p.CurrentBed() != null) if (p.ownership.OwnedRoom != null)
{ {
sexToy = GenClosest.ClosestThingReachable(p.Position, p.Map, ThingRequest.ForGroup(ThingRequestGroup.HaulableAlways), PathEndMode.OnCell, TraverseParms.For(p), validator: validatorForBed, maxDistance: 100); sexToy = GenClosest.ClosestThingReachable(p.Position, p.Map, ThingRequest.ForGroup(ThingRequestGroup.HaulableAlways), PathEndMode.OnCell, TraverseParms.For(p), validator: validatorForRoom, maxDistance: 100);
} }
if(sexToy == null) if(sexToy == null)

View file

@ -34,14 +34,12 @@ namespace RJW_ToysAndMasturbation {
else { else {
yield return new FloatMenuOption(FloatMenuOptionLabel(pawn), delegate { yield return new FloatMenuOption(FloatMenuOptionLabel(pawn), delegate {
Building_Bed bed = pawn.ownership?.OwnedBed;
if (bed != null && (WanderUtility.InSameRoom(bed.Position, parent.Position, pawn.Map) || RJWPreferenceSettings.FapInBed && pawn.jobs.curDriver is JobDriver_LayDown)) {
if (RJWPreferenceSettings.FapInBed && pawn.jobs.curDriver is JobDriver_LayDown down) { Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, bed, bed.Position);
Building_Bed bed = down.Bed; j.count = 1;
if (bed != null) { pawn.jobs.TryTakeOrderedJob(j);
Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, bed, bed.Position);
j.count = 1;
pawn.jobs.TryTakeOrderedJob(j);
}
} }
else { else {
Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, null, FapLocation(pawn)); Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, null, FapLocation(pawn));

View file

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB