[B18] Advanced Animal Frameworks 1.0

Started by WalkingProblem, March 20, 2018, 01:46:38 PM

Previous topic - Next topic

WalkingProblem



This is the core framework that allows animals to carry weapons, do various work and for special autonomous animal-like vehicles. Does not add content on its own. It will power all the Walking Problem "animal mods" like Minions, Smurfs, RimSlaves, Trading Economy, etc in time to come.

This framework is also created to allow other modders to tap on the work that I have done, so that they need not reinvent the wheel.

Special Credit to Chjees for his GenericWorkGiver codes that powers most of the Animal Work Framework work abilities (that is part of this Advanced Animal Frameworks).

———

FORUM LINK: https://ludeon.com/forums/index.php?topic=40547.0
STEAM DOWNLOAD: https://steamcommunity.com/sharedfiles/filedetails/?id=1336991209
NON-STEAM DOWNLOAD: http://walkingproblem.com/sdm_downloads/b18-advanced-animal-frameworks-1-0/



OFFICIAL WEBSITE: http://walkingproblem.com/
DEVELOPER'S DISCORD: https://discord.gg/W2Vb27T
FACEBOOK PAGE: http://fb.com/walkingproblem
TWITTER: https://twitter.com/KingProDios
YOUTUBE: https://www.youtube.com/channel/UCgUW0Ls2wbY8h79pV9xnMjw
TWITCH: https://www.twitch.tv/walkingproblem

FUND MY MODS @ PATREON: https://www.patreon.com/walkingproblem
BUY ME A MEAL/COFFEE: https://ko-fi.com/walkingproblem


ZE


Ruisuki

they need only break it...

oh wrong show. Very cool of you to do this WP. I hope someone uses this to create brand new factions that aren't based on a show. Something like how Rooki the creator of rimsenal has done with his 4 weapon manafacturers. The factions in his mod are rich sources for expanding on the lore he established.  Bird up man.

Nekokon

Quick question, can you incorporate animal range attack framework into this ?
Reason I'm asking is because with animal range attack you can setup multiple attacks with separated chance, compare to using weapon which is limited to 1.

Obivion

Hello,

Love the work and currently use this along with Trading Economy (and a list full of mods).

I have come across a bug that the framework is causing (nothing in the logs). There appears to be an incompatibility with SeedsPlease. If this framework is loaded, then plants will still produce seeds upon harvest, but can be planted without seeds.

Modlist for testing purposes:
    <li>HugsLib</li>
    <li>JecsTools</li>
    <li>ModSwitch</li>
    <li>Advanced Animal Frameworks</li>
    <li>SeedsPlease</li>

Ive tried swapping the framework and SeedsPlease around with the same outcome, have tested with most of the base crops.

RBucci

There appears to be an issue with (not confirmed yet) either Hand me that Brick or Combat Extended. Whenever someone is issued a construction job, he picks up the raw material but doesn't spread the tiles with them, instead, he does it one by one dropping it as he works. On the other hand, for someone that's not assigned to construction, everything appears to be normal, they successfully spread the raw material through the "blueprint" so that the guy assigned to building "finishes" the job fluidly.

WalkingProblem

Quote from: Nekokon on March 22, 2018, 08:30:05 AM
Quick question, can you incorporate animal range attack framework into this ?
Reason I'm asking is because with animal range attack you can setup multiple attacks with separated chance, compare to using weapon which is limited to 1.

Because the animal range attack framework isnt created by me; so I cant put it in (and I dun really want to recreate the same framework, which is reinventing the wheel and to give respect to the work already done by the developer of that framework)

And actually just use his framework - it implements easily and works perfectly if I'm not mistaken (I havent try)

Quote from: Obivion on March 26, 2018, 06:23:31 PM
Hello,

Love the work and currently use this along with Trading Economy (and a list full of mods).

I have come across a bug that the framework is causing (nothing in the logs). There appears to be an incompatibility with SeedsPlease. If this framework is loaded, then plants will still produce seeds upon harvest, but can be planted without seeds.

Modlist for testing purposes:
    <li>HugsLib</li>
    <li>JecsTools</li>
    <li>ModSwitch</li>
    <li>Advanced Animal Frameworks</li>
    <li>SeedsPlease</li>

Ive tried swapping the framework and SeedsPlease around with the same outcome, have tested with most of the base crops.

Ah.... It could be a case where its not compatible... I will need to check the SeedsPlease codes in order to see how it addresses sowing. Because his codes might only patches for the human's sowing (as the animals have their very own sowing codes).

It could be a case where I can create a patch for it (like an add on)

Quote from: RBucci on March 26, 2018, 06:48:02 PM
There appears to be an issue with (not confirmed yet) either Hand me that Brick or Combat Extended. Whenever someone is issued a construction job, he picks up the raw material but doesn't spread the tiles with them, instead, he does it one by one dropping it as he works. On the other hand, for someone that's not assigned to construction, everything appears to be normal, they successfully spread the raw material through the "blueprint" so that the guy assigned to building "finishes" the job fluidly.

Yeah... thats the current "level" of spreading the tiles the slaves can do.... (still better than nothing); I havent figured out how to get these animals to spread the raw materials like a human pawn.

Tenshi~Akari

Quote from: Walking Problem on March 28, 2018, 03:52:42 AM
Quote from: RBucci on March 26, 2018, 06:48:02 PM
There appears to be an issue with (not confirmed yet) either Hand me that Brick or Combat Extended. Whenever someone is issued a construction job, he picks up the raw material but doesn't spread the tiles with them, instead, he does it one by one dropping it as he works. On the other hand, for someone that's not assigned to construction, everything appears to be normal, they successfully spread the raw material through the "blueprint" so that the guy assigned to building "finishes" the job fluidly.

Yeah... thats the current "level" of spreading the tiles the slaves can do.... (still better than nothing); I havent figured out how to get these animals to spread the raw materials like a human pawn.


Just want to mention I also had this issue, but got beat to the punch. I also noticed that all my Miscellaneous Robots/Robots++ were able to do the blueprint material spread but my current run with a test animal using your framework had the same problem of dropping & hauling the remaining materials back. Perhaps Haplo might have the key in how that works out for modded animal hauling?  :)

Thank you for sharing this by the way! I've been wanting to try the advanced animal based mods you've been working on, but me and my choosy self not being a huge fan of Minions and all...  :-[ At least it's working fairly well with what I'm doing with that custom animal I mentioned save for that small hauling issue.

WalkingProblem

Quote from: Tenshi~Akari on March 30, 2018, 07:35:58 AM
Just want to mention I also had this issue, but got beat to the punch. I also noticed that all my Miscellaneous Robots/Robots++ were able to do the blueprint material spread but my current run with a test animal using your framework had the same problem of dropping & hauling the remaining materials back. Perhaps Haplo might have the key in how that works out for modded animal hauling?  :)

Thank you for sharing this by the way! I've been wanting to try the advanced animal based mods you've been working on, but me and my choosy self not being a huge fan of Minions and all...  :-[ At least it's working fairly well with what I'm doing with that custom animal I mentioned save for that small hauling issue.

Yeah, my bad~

The other mods uses "human AI" as the basis for those robots (if i'm not mistaken), while this is using animal's AI (which I need to custom code). Because they arent humans, there is alot of problem with the AI codings... and yeah, I kindda hit my threshold for my coding for now....

But usually, by the time I'm back on it again, I might have level up enough again to try to fix it~ LOL

RBucci

Big, huge and gigantic thumbs up for the set of mods you've developed, man. You must need a king-sized bed only for your head LOL

I don't really understand modding yet. But I think your mod is on a direct approach to the AI task, maybe a passive one would help? Again, I might be spewing dirt here but that's how my logic works haha..

Thanks a million for this, man.

WalkingProblem

Quote from: RBucci on April 01, 2018, 12:28:09 AM
Big, huge and gigantic thumbs up for the set of mods you've developed, man. You must need a king-sized bed only for your head LOL

I don't really understand modding yet. But I think your mod is on a direct approach to the AI task, maybe a passive one would help? Again, I might be spewing dirt here but that's how my logic works haha..

Thanks a million for this, man.

Yeah, some AI stuffs; mainly those that is seen in my mods~

I plan to update on this thread how to use the framework.. but real life is a little busy now...

Tenshi~Akari

#12
Just one more thing to note that I think has been causing me additional hauling issues as of late, now that I have started a new game... since I have Fluffy's Work Tab activated, I've noticed that certain work priorities have doubled up, and apparently Work Tab is not only showing the human work givers, but the ones from this framework for animals as well. My colonists have been doing the same "drop resources on blueprint" bug and I've had the "Never Haulable *resource/chunk* blocking Wall_Blueprint" red errors pop up... sometimes builders would still build while the dropped resources were still on the blueprint, and as soon as the wall is up, the resources are "destroyed". I've tried swapping between the duplicated jobs, but I'm not 100% but it seems hit or miss. Every other colonist will do it successfully, while the others have butterfingers.  :P

Is there a way to either hide them from being seen from the tab? Or a way to note them as animal framework priorities in the labels? I'm trying to figure out for a temporary fix, if only to at least note which Haul/Deliver resources/etc. jobs are which. EDIT: Nevermind, I forgot, the labels for those are in the Workgivers def file...

ertzuiop

Hi
Looks like there is an issue regarding the "sow crops" workgiver from this mod.
It overrides the def of SeedsPlease, making farming vanilla like.
Follow from here:
https://ludeon.com/forums/index.php?topic=24443.msg449719#msg449719

Maeyanie

It could be a mod interaction, but it looks like this causes an error when someone tries to feed a patient, but there isn't any food available.

Stack trace:
Exception in Verse.AI.ThinkNode_PrioritySorter TryIssueJobPackage: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.WorkGiver_WPFeedPatient.JobOnThing (Verse.Pawn,Verse.Thing,bool) <0x001f1>
at (wrapper dynamic-method) RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1 (object,Verse.Pawn,Verse.AI.JobIssueParams) <0x021bf>
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0x0056b>

Verse.Log:Error(String, Boolean)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch5(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob_Patch1(Object, JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()