Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Moogie

#1
I found and fixed a bug today that was letting wild eggs deterioriate still in Wild Breeding. For anyone using this mod, you will want to grab the fixed file from GitHub and replace your local copy.
#2
Thank you! And yeah, I can for sure create the assets. As for how the game picks an effect for the weather type, I think that's something a patch operation can take care of? In which case, I should be capable of that without any problems. I'll look into it.
#3
Sorry it took me so long to respond to this! I just went through upgrading my system from Win7 to Win10 and that put everything on hold for a while.

If you replace the contents of EnemyFriendNoDecay.xml with this, it should no longer give errors:

<?xml version="1.0" encoding="utf-8" ?>

<Patch>
<Operation Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationReplace">
<xpath>/Defs/FactionDef//goodwillDailyGain</xpath>
<value>
<goodwillDailyGain>0</goodwillDailyGain>
</value>
</li>
<li Class="PatchOperationReplace">
<xpath>/Defs/FactionDef//goodwillDailyFall</xpath>
<value>
<goodwillDailyFall>0</goodwillDailyFall>
</value>
</li>
<li Class="PatchOperationInsert">
<xpath>/Defs/FactionDef//permanentEnemy[.="true"]</xpath>
<value>
<mustStartOneEnemy>true</mustStartOneEnemy>
</value>
</li>
<li Class="PatchOperationReplace">
<xpath>/Defs/FactionDef//permanentEnemy</xpath>
<value>
<permanentEnemy>false</permanentEnemy>
</value>
</li>
<li Class="PatchOperationReplace">
<xpath>/Defs/QuestScriptDef/root[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_GetFaction"]/mustBePermanentEnemy</xpath>
<value>
<mustBePermanentEnemy>false</mustBePermanentEnemy>
</value>
</li>
<li Class="PatchOperationReplace">
<xpath>/Defs/QuestScriptDef/root[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_Delay"]/node[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_RandomNode"]/nodes/li[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_GetFaction"]/mustBePermanentEnemy</xpath>
<value>
<mustBePermanentEnemy>false</mustBePermanentEnemy>
</value>
</li>
<li Class="PatchOperationReplace">
<xpath>/Defs/QuestScriptDef/root[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_IsTrue"]/node[@Class="QuestNode_Sequence"]/nodes/li[@Class="QuestNode_Equal"]/node[@Class="QuestNode_GetFaction"]/mustBePermanentEnemy</xpath>
<value>
<mustBePermanentEnemy>false</mustBePermanentEnemy>
</value>
</li>
</operations>
</Operation>
</Patch>
#4
Wow! It's great to see this mod getting regular updates. I just came here to check after getting an error about headgears, and I'm blown away to see I'm already 6 versions behind!

Is it safe to update while I have visitors in my base? I'm currently on 1.1.1, if that makes any difference.

Edit: I went ahead and updated. No problems so far, although I've just got the same error about headgear as I had before. To be perfectly clear, I am now on version 1.1.7, and this is an entirely new set of guests that have arrived since I updated. Here's the error:

Failed to pocket headgear:
Object reference not set to an instance of an object
  at Hospitality.ItemUtility+<>c__DisplayClass1_0.<IsRequiredByRoyalty>b__0 (RimWorld.RoyalTitle title) [0x00000] in <a20d107dfae34012a7901a1f006be785>:0
  at System.Collections.Generic.List`1[T].FindIndex (System.Int32 startIndex, System.Int32 count, System.Predicate`1[T] match) [0x0003b] in <567df3e0919241ba98db88bec4c6696f>:0
  at System.Collections.Generic.List`1[T].FindIndex (System.Predicate`1[T] match) [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0
  at Verse.GenCollection.Any[T] (System.Collections.Generic.List`1[T] list, System.Predicate`1[T] predicate) [0x00000] in <8d0b3a569e0c4b80aa92d37ff9ce138c>:0
  at Hospitality.ItemUtility.IsRequiredByRoyalty (Verse.Pawn pawn, Verse.ThingDef apparelDef) [0x0002a] in <a20d107dfae34012a7901a1f006be785>:0
  at Hospitality.ItemUtility.PocketHeadgear (Verse.Pawn pawn) [0x0007e] in <a20d107dfae34012a7901a1f006be785>:0
  at Hospitality.GuestUtility.Arrive (Verse.Pawn pawn) [0x00014] in <a20d107dfae34012a7901a1f006be785>:0


The guest who failed to pocket his headgear is wearing a Cataphract Helmet.
#5
I'm willing if they are! :) I don't know anybody though, I've never really interacted with the community before I started tinkering.

Some tweaks to opacity have made snow less blinding and much more pleasant to look at now. I'm still debating whether to reduce the number of particles; I think I should also be able to use separate textures for gentle snow vs heavy (because they're currently the same effect).

Some clips (note: my game's a bit dark right now... volcanic winter... not as terrible as toxic fallout, though, for someone living in the middle of a desert):

https://streamable.com/wvtlm8
https://streamable.com/4fj2lf
https://streamable.com/sxzsz6
https://streamable.com/5jbs79
#6
A small mod that disables generation of random dirt particles (the kind you cannot clean, no matter how hard your pawns scrub) and little pebbles that don't actually count as cleanable rubble. Mostly visible when your map is covered in a fresh layer of snow, yet is still inexplicably smeared all over with dirt.

In other words, this mess:



Unlike a similar mod that exists on the Workshop, this does not require Harmony. Will not conflict with any other mod. A small performance boost has been noted on larger maps using this, plus... doesn't it just look a whole lot nicer? :)

You will still get regular dirt and blood everywhere, but at least you can clean that stuff. If you want.

Download: See attached, or Github
#7
A combo-mod that makes all vanilla factions marked as "PermanentEnemy = true" to no longer be true, and stops the gradual arbitrary gain/loss of faction reputation.

Quest scripts were patched to prevent generation errors (the "unresolvable description" errors) that occur when the game attempts to find a PermanentEnemy faction and fails to find one.

Factions that were previously marked as "PermanentEnemy = true" now have "mustStartOneEnemy = true" instead, as part of the effort to appease the quest scripts.

The end result of all this is that you will start a game with the same general setup of factions, allies and enemies, except you can now eventually befriend the Pirates and Savages factions if you wish, and these relationships won't decay without good reason. Additionally, you may now receive quests from previously enemy-only factions if your reputation with them isn't too terrible.

https://github.com/MoogieOuttaMyDepth/RimworldMods/tree/master/My%20Enemy%20is%20My%20Friend

Testers desired: I want to be sure there are no unforseen consequences to having no PermanentEnemy factions. The game will yellowtext warn in the logs about it, but aside from the quest system, I was unable to find any part of the game code that relies on the existence of a PermanentEnemy. So I think it should be okay, and I've been using it in my own game without any red errors popping up, but I want to be sure.
#8
Quote from: CyanSam on April 02, 2020, 04:44:44 PM
Pretty cool stuff, congrats.
There is a similar mod called Wild Animal Sex which kinda simulates predator-prey relations which spawns predators when prey population is high but due to the way it's designed or coded a ton of calculations happen when the mod is installed causing lag. Cool idea but poor execution.
Your take seems simpler and lighter on CPU load.

I saw it, that is partly why I went ahead and made a version of my own. It's cool the work they did on designing such a complex system, but I wanted to keep it simple.

By the way, I was just reminded that it would be a good idea to link the Github: https://github.com/MoogieOuttaMyDepth/RimworldMods Source is up there for anyone interested. My question re: the need for Harmony stands with regards to the breeding mods. I think I might need to use it for maximum compatibility? But also, it seems pretty complicated and I haven't taken a real stab at it yet.
#9
Help / Re: Need help creating Comp
April 02, 2020, 03:02:44 PM
I believe you need to be using .NET Framework 4.5 or later, the wiki is outdated in that respect.
#10
The player would need to download the UABE utility and load the patch into it. UABE is a standalone app, though, not something you have to install. So while it's not ideal, it's still a viable solution.

Because it directly modifies the resources.assets file, players would need to be sure to back up that file before running the patch, because there's no uninstaller for something like this.

Tweaked values in motion (may be a little too dim now):


(Larger, bigger filesize version viewable here)
#11
Turns out, sometimes the simplest solution is the best. :)



So, while UABE doesn't have a proper Material plugin, apparently you can just "export dump", edit the values, and then "import dump".

I had just assumed that the dump it created was some useless .txt report of the data, because well... that's exactly what it looks like. And the creator of UABE himself said that exporting Materials wasn't possible because the shaders are baked in as raw byte data, or somesuch.

But lo and behold, editing that .txt file and then reimporting it works like magic!

And I can still make a mod out of this; it will just have to be a UABE patch file. There's an option to create an .exe patcher too but there's no way I'm asking people to forget their basic internet safety 101. :) Also, this snow texture isn't final. Looks a bit too bright now. But I can tweak it until it's better.

Finally, snow that isn't just a field of dead pixels moving across the screen...
#12
Help / Re: Need help creating Comp
April 02, 2020, 11:51:30 AM
You might be able to examine the existing "Lightning Rod" mod on the Steam workshop to see how they accomplished this. It doesn't create fuel but it does attract lightning and I think it might also feed the gathered power to batteries? Or maybe it just disperses it, I forget.
#13
While I have dabbled in making a couple of assembly mods, what you describe sounds far above my level of ability. I struggle enough with XPaths. I would be happy enough to just be able to export and reimport the .mat file from the resources.assets like I can do already with the texture.

I will keep looking for a solution, but thank you for the information! It might come in useful. Maybe not to me, but surely to somebody with a suitable education. ;D
#14
Please excuse the toxic haze... Yeah, my colony is kinda in the middle of a thing at the moment.



I'm not sure what I'm doing wrong. First off, importing the texture into the resources.asset archive appears to be the only way to modify snow. Believe me, I've tried it the normal way--the game just ignores the files if you try to make a mod out of it. And while I've technically been able to import the texture, it doesn't appear right ingame.

I've used the PSD that comes with the art source zip that's floating around these forums as a base. As far as I can tell, my masking etc is identical.




The white of the snowflakes is 100% white and 100% opaque in the middle, with feathered edges.

I had to do the same thing for the snow ground texture, but that one turned out fine. Mostly. There are seams, but that is 100% the game's fault. My textures are seamless.



In any event, if that worked, why does the falling snow overlay not? My only guess at the moment is that I would need to edit the Material of it, but UABE cannot export .mat files into a readable/editable format. Have I hit a dead end, or is there something that I'm missing?
#15
Oh believe me, I've done a lot of Googling about xpaths before even considering posting threads about it. But when you're new to the syntax, looking up examples from wildly different contexts (such as websites or databases) just gets exponentially more confusing. Most guides of that nature also seem to be geared much more towards the experienced coder and not the lay idiot attempting to make game mods. :P

I wasn't aware that I could do /TraderKindDef/stockGenerators and it would not get confused that I didn't specify exactly where to go. I'm slowly understanding more about how it acts as a filter rather than a rigid pathing system. You saying that has definitely pushed my learning another step forwards. :)

Thanks!