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>
<texPath>Things/SexToys/Dildo</texPath>
<shaderType>CutoutComplex</shaderType>
<graphicClass>Graphic_Single</graphicClass>
<graphicClass>Graphic_Multi</graphicClass>
</graphicData>
<statBases>

View File

@ -72,7 +72,7 @@ namespace RJW_ToysAndMasturbation {
return false;
};
Predicate<Thing> validatorForBed = delegate (Thing t) {
Predicate<Thing> validatorForRoom = delegate (Thing t) {
if (t.TryGetComp<CompSexToy>() == null)
{
return false;
@ -81,7 +81,7 @@ namespace RJW_ToysAndMasturbation {
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.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;
}
@ -89,9 +89,9 @@ namespace RJW_ToysAndMasturbation {
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)

View File

@ -34,14 +34,12 @@ namespace RJW_ToysAndMasturbation {
else {
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) {
Building_Bed bed = down.Bed;
if (bed != null) {
Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, bed, bed.Position);
j.count = 1;
pawn.jobs.TryTakeOrderedJob(j);
}
Job j = JobMaker.MakeJob(MasturbateToyDefOf.MasturbateWithToy, parent, bed, bed.Position);
j.count = 1;
pawn.jobs.TryTakeOrderedJob(j);
}
else {
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