Jump to content

Recommended Posts

14 hours ago, crow_mw said:

Hi all.

With some help on Dubs discord, I was able to improve on the massive FPS drop when selecting multiple pawns, by changing how Gizmos (buttons) are added. The previously existing read-and-change patch to GetGizmos was replaced with pass-through post-fixing.

 

On my laptop, this is a jump of 10 FPS when having 48 pawns selected.

 

Before the change, adding Gizmos was taking 7 ms:



 

  Reveal hidden contents

 

On the screenshot above disableGizmost is the slowest one, but when I experimentally removed it, the next gizmo-adding method just started taking as much time. Guess it is always the first one that realizes the IEnumerable.

 

After the change, down to 0.1ms for all gizmos we add.

 

  Reveal hidden contents

 

While testing this change, I have also realized that 'disableGizmos', which is a functionality that hides Draft button for non-hero pawns in HC mode, was not working. With this change it now works properly, so also an indirect fix (though does anyone really use this?).

 

The pull requiest is available for review: https://gitgud.io/Ed86/rjw/-/merge_requests/148

For those on Dubs discord, the changes and their progress were discussed here; https://discordapp.com/channels/241677926855081984/708435078614614116/794909754295582750

 

ohhh voodoo magic! can it be used to disable other widgets?

Link to comment
1 hour ago, Ed86 said:

ohhh voodoo magic! can it be used to disable other widgets?

In disableGizmos? Yes, any gizmo that is not 'yield returned' will be dropped. Just be sure to check if the gizmo is a Command, before casting to Command to check label, as without it an exception is thrown and result is a broken/empty gizmo list. I could also implement it if you tell me what exactly you would like to achieve.

Link to comment
2 hours ago, crow_mw said:

In disableGizmos? Yes, any gizmo that is not 'yield returned' will be dropped. Just be sure to check if the gizmo is a Command, before casting to Command to check label, as without it an exception is thrown and result is a broken/empty gizmo list. I could also implement it if you tell me what exactly you would like to achieve.

well.. ideally remove all gadgets for non heros, except droids, and maybe slaves

disable inventory buttons, etc

but all that is more of my multiplayer rpg fantasy, which will probably never happen so w/e

Link to comment

Trying to debug the whoring code a bit... I'm just curious as to the rationale on why you need a list of jobs which can be interrupted under:


 

public class JobDriver_WhoreInvitingVisitors : JobDriver

...

            if (!allowedjobs.contains(targetpawn.jobs.curjob.def))
            {
                if (rjwsettings.debugwhoring) modlog.message($" fail - not allowed job " + targetpawn.jobs.curjob.def);
                return false;
            }

I added a little snipped to debug which jobs seemed to fail as between that and a whore not being attractive, they seem to be my most common failures. I can't get the modlog to fire under non-attractiveness but for this, there are jobs added by other mods which I'd just add to the list, except they're not easily defined as they're not in the project scope initially (not sure if I'm describing it right - still a novice when it comes to code). E.g. I have vanilla furniture expanded installed and the job, "Play_Roulette" isn't considered defined in the project. Maybe I'm just even more of a novice at C# and there's a way to include it that I'm not familiar with.

Spending more time looking over the job list, I can definitely understand some not wanting to be interrupted - but is better to cause a fail state when such a job is encountered? E.g. the inverse instead of failing if it's not in the job list, failing if it's a bad job? Thus, it's more compatible with the base game and any jobs added by other mods should be overridden? I guess that's more EAFP rather than LBYL but thought I'd ask.

Thanks for your work!

Link to comment

Encountered this message when using dev mode to force my pawn to do someone but unsuccessful. 

Created FloatMenu with no options. Closing.
Verse.Log:Error(String, Boolean)
Verse.FloatMenu:.ctor(List`1)
RimWorld.FloatMenuUtility:MakeMenu(IEnumerable`1, Func`2, Func`2)
rjw.<>c__DisplayClass8_0:<GenerateSexOptions>b__3()
Verse.FloatMenuOption:Chosen(Boolean, FloatMenu)
Verse.FloatMenuOption:DoGUI(Rect, Boolean, FloatMenu)
Verse.FloatMenu:DoWindowContents(Rect)
Verse.FloatMenuMap:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

 

Link to comment
3 hours ago, Shodan123 said:

Is it possible to restrict non-forced sexual activity to pawn's rooms or, at the least, beds, kind of similar to how there's an option to restrict fapping to beds? I've got pawns fucking in all kinds of weird, public places.

yes, disable hooking

Link to comment
8 hours ago, syke said:

Trying to debug the whoring code a bit... I'm just curious as to the rationale on why you need a list of jobs which can be interrupted under:


 


public class JobDriver_WhoreInvitingVisitors : JobDriver

...

            if (!allowedjobs.contains(targetpawn.jobs.curjob.def))
            {
                if (rjwsettings.debugwhoring) modlog.message($" fail - not allowed job " + targetpawn.jobs.curjob.def);
                return false;
            }

I added a little snipped to debug which jobs seemed to fail as between that and a whore not being attractive, they seem to be my most common failures. I can't get the modlog to fire under non-attractiveness but for this, there are jobs added by other mods which I'd just add to the list, except they're not easily defined as they're not in the project scope initially (not sure if I'm describing it right - still a novice when it comes to code). E.g. I have vanilla furniture expanded installed and the job, "Play_Roulette" isn't considered defined in the project. Maybe I'm just even more of a novice at C# and there's a way to include it that I'm not familiar with.

Spending more time looking over the job list, I can definitely understand some not wanting to be interrupted - but is better to cause a fail state when such a job is encountered? E.g. the inverse instead of failing if it's not in the job list, failing if it's a bad job? Thus, it's more compatible with the base game and any jobs added by other mods should be overridden? I guess that's more EAFP rather than LBYL but thought I'd ask.

Thanks for your work!

well.. its easier to make whitelist and i dont want to deal with other mods broken jobs

and whoring should really only trigger for idle pawns - wandering caravan guards, guests, etc

i guess if someone really wants they can make xml list of (modded) jobs for comparison/interruption

Link to comment

Is there any way to adjust the fertility age for a animal outside the mod options? (setting it at 100% for animal fertility with life expectancy still isn't enough lol)

I have the Oni mod and they become 100% fertile at something like 100~ years. The thing is, I usually find them at ages around 1-20~ with something like 0% - 5% fertility.

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1418679519&searchtext=oni

 

I could always go into the character editor and manually adjust their ages but that doesn't sound very fun.

Is there some settings or values I can mess with to adjust an animal's fertility, or a mod out there that lets me rapidly age something.

 

I want to breed my oni but using the character editor isn't an ideal solution for me, I'd rather they be fertile as soon as they hit adult stage.

Link to comment
11 minutes ago, Refuto said:

Is there any way to adjust the fertility age for a animal outside the mod options? (setting it at 100% for animal fertility with life expectancy still isn't enough lol)

I have the Oni mod and they become 100% fertile at something like 100~ years. The thing is, I usually find them at ages around 1-20~ with something like 0% - 5% fertility.

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1418679519&searchtext=oni

 

I could always go into the character editor and manually adjust their ages but that doesn't sound very fun.

Is there some settings or values I can mess with to adjust an animal's fertility, or a mod out there that lets me rapidly age something.

 

I want to breed my oni but using the character editor isn't an ideal solution for me, I'd rather they be fertile as soon as they hit adult stage.

They have a life stage with a fertility tag.

Changing the age in which they enter that tag is what you can do.

Link to comment

i'm having an issue where , i only get a black box and no icons inside the black box where the RJW icons are ment to be. 

i have tried starting a new game without editing any pawns. 

as well as adding the organs during the after the game starts. 

still nothing. 

Link to comment

Feedback a frequent problem of rjw4.5.5

It seems that the frequency of pawn rape is higher than before, but this brings a new problem. When pawn mates with an animal, if it is raped by other pawns, then the animal has a great chance to stay in place until hunger leads to fainting

Why not let animals and people get threesome? so that there was no need to interrupt the animals mating.

and...

The 4.5.5 frequency of intercourse feels like wild mode

Link to comment
5 hours ago, Ed86 said:

well.. its easier to make whitelist and i dont want to deal with other mods broken jobs

and whoring should really only trigger for idle pawns - wandering caravan guards, guests, etc

i guess if someone really wants they can make xml list of (modded) jobs for comparison/interruption

Fair enough - I guess it's mostly that IMO one of the best mods to complement this mechanic is Hospitality, where pawns can be set to do work (though I assume recreation activities happen independent of being 'allowed work') and additional popular content mods (the vanilla series) do add jobs which dilute the pool of acceptable interrupted jobs. 

I can't seem to find a job.def for generic recreation - is there one? Looking into vanilla furniture expanded, it's either describe as 'facing/watching building' or 'playtoil'.

 

Link to comment
3 hours ago, comerjin said:

i'm having an issue where , i only get a black box and no icons inside the black box where the RJW icons are ment to be. 

i have tried starting a new game without editing any pawns. 

as well as adding the organs during the after the game starts. 

still nothing. 

did you enable bestiality, rape and hero mode in the options? because that is what creates those buttons.

Link to comment
On 12/31/2020 at 12:48 PM, onikujo said:

So what's the actual reason this is non-compat with Prepare Carefully? I'm just curious mostly.

PC doesn't write pawn data properly for the latest Rimworld versions for some reason. What it writes works-ish for vanilla, so taken on its own it appears to be working, but it tends to cause problems with other mods which are altering pawn data and writing (or expecting) correct data. It's not a hard incompatibility, more like little bugs that build up and eventually break things.

4 hours ago, AthelstanDied said:

Sorry if this has already been answered, did not find it in FAQ:

 

Will removing RJW from a existing save break the game?

Pretty likely. Removing a mod responsible for significant data on every pawn in the game can't be good for it.

Link to comment

Why is it that women are no longer capable of raping men besides by forcing a handjob on them? I'm pretty sure it is possible to forcibly ride someone, and I'm certain guys can be fisted by women. I thought it was a bug at first but it's persisted through several updates.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use