[1.0] sd Mods - mostly stuff

Started by sulusdacor, September 20, 2016, 08:43:31 AM

Previous topic - Next topic

Encrtia

Quote from: Encrtia on January 06, 2017, 10:19:00 PM
Unless I'm hitting a mod conflict, everytime the Solar Flare ends, I get an absolute non-stop spam-fest of "The Solar Flare is Ending". This doesn't happen to you?

Oh darn; apologies all - ignore that. Wrong mod. I thought SD did Solar Flare Shielding! Apologies again; though, I do use the Power Generator mod which is great xD
~When death is smiling at you, just smile on back.

PudgyElderGod

#61
Hey, I keep running into an issue with the pontoons. A small path I have of them, and only that path, isn't able to be destroyed or deconstructed by any means.

When shot to 0 health, it generates this error
QuoteException ticking Bullet_FNF2000_rt1109146: System.ArgumentNullException: Argument cannot be null.
Parameter name: key
  at System.Collections.Generic.Dictionary`2[System.String,Verse.TerrainDef].TryGetValue (System.String key, Verse.TerrainDef& value) [0x00000] in <filename unknown>:0
  at Verse.DefDatabase`1[Verse.TerrainDef].GetNamed (System.String defName, Boolean errorOnFail) [0x00000] in <filename unknown>:0
  at Verse.TerrainDef.Named (System.String defName) [0x00000] in <filename unknown>:0
  at sd_bridges.Building_sd_bridges_pontoonbridge.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at Verse.DamageWorker.Apply (DamageInfo dinfo, Verse.Thing victim) [0x00000] in <filename unknown>:0
  at Verse.DamageWorker_AddInjury.Apply (DamageInfo dinfo, Verse.Thing thing) [0x00000] in <filename unknown>:0
  at Verse.Thing.TakeDamage (DamageInfo dinfo) [0x00000] in <filename unknown>:0
  at RimWorld.Bullet.Impact (Verse.Thing hitThing) [0x00000] in <filename unknown>:0
  at Verse.Projectile.ImpactSomething () [0x00000] in <filename unknown>:0
  at Verse.Projectile.Tick () [0x00000] in <filename unknown>:0
  at Verse.TickList.Tick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:Update()
Verse.Root_Play:Update()

When attempting to deconstruct it, I get this error message:
QuoteArgument cannot be null.
Parameter name: key
  at System.Collections.Generic.Dictionary`2[System.String,Verse.TerrainDef].TryGetValue (System.String key, Verse.TerrainDef& value) [0x00000] in <filename unknown>:0
  at Verse.DefDatabase`1[Verse.TerrainDef].GetNamed (System.String defName, Boolean errorOnFail) [0x00000] in <filename unknown>:0
  at Verse.TerrainDef.Named (System.String defName) [0x00000] in <filename unknown>:0
  at sd_bridges.Building_sd_bridges_pontoonbridge.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at RimWorld.Designator_Deconstruct.DesignateThing (Verse.Thing t) [0x00000] in <filename unknown>:0
  at RimWorld.Designator_Deconstruct.DesignateSingleCell (IntVec3 loc) [0x00000] in <filename unknown>:0
  at Verse.Designator.DesignateMultiCell (IEnumerable`1 cells) [0x00000] in <filename unknown>:0
  at Verse.DesignatorManager.ProcessInputEvents () [0x00000] in <filename unknown>:0
  at RimWorld.MapInterface.HandleMapClicks () [0x00000] in <filename unknown>:0
  at RimWorld.UIRoot_Play.UIRootOnGUI () [0x00000] in <filename unknown>:0
  at Verse.Root.OnGUI () [0x00000] in <filename unknown>:0

When attempting to debug destroy a pontoon, I get this message:
QuoteArgument cannot be null.
Parameter name: key
  at System.Collections.Generic.Dictionary`2[System.String,Verse.TerrainDef].TryGetValue (System.String key, Verse.TerrainDef& value) [0x00000] in <filename unknown>:0
  at Verse.DefDatabase`1[Verse.TerrainDef].GetNamed (System.String defName, Boolean errorOnFail) [0x00000] in <filename unknown>:0
  at Verse.TerrainDef.Named (System.String defName) [0x00000] in <filename unknown>:0
  at sd_bridges.Building_sd_bridges_pontoonbridge.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at Verse.Dialog_DebugActionsMenu.<DoListingItems_MapTools>m__8DB () [0x00000] in <filename unknown>:0
  at Verse.DebugTool.DebugToolOnGUI () [0x00000] in <filename unknown>:0
  at Verse.DebugTools.DebugToolsOnGUI () [0x00000] in <filename unknown>:0
  at RimWorld.UIRoot_Play.UIRootOnGUI () [0x00000] in <filename unknown>:0
  at Verse.Root.OnGUI () [0x00000] in <filename unknown>:0

Any help you can give me would be appreciated, I'd rather not restart this colony.

EDIT:
I managed to fix the problem by going into the save file with Notepad++ and manually changing the buildings to seabridges, deleting them, and replacing them with seabridges legitimately. If the error still interests you, however, I have a copy of the save file that I could boot up/send to you.

sulusdacor

the save file edit would have been my suggestion too to fix it, if other things don't work.^^

as for the problem. it was like the game "forgetting" what the original floor was if you build other flooring under the pontoon bridge (if you saved and restarted the game). i could reproduce it with the old mod, so all good. thx for letting me know.

i added a xml line to prevent you from building floor over it for now. you can still do it with dev mode. i have to do some more testing, but it should be okay. I didn't get the error with the new version so should be fine.

BlackGyver

Hello!

So, I thought some more about foundations being generated within the world as structures, would simply switching the foundations to a wooden material prevent that from happening? The game doesn't generate natural wooden structures, so I assume something's in place to allow only stony and some metallic structures to appear, but no wooden ones. Could that be a workaround?

sulusdacor

#64
wow, thx. i kinda missed that fact with the woodwalls.

so the game checks for flammability (<0.5), since wood walls have 1 they are excluded. floors are determined after this wall material check, so no wood walls = no wood floors. i musst admit i definilty looked not carful enough last time. ::)

it's a quite nice workaround. i set the flammability to exact 0.5. so it's in the "not as ruins" range, but does not catch fire as easily. just loaded 6 maps and seems good. thx for the tip =)

Quoteedit: small addition to the ruins thing. this only counts for the base game map generation. any mod doing map generation and that does not check for that will still be able to build out of foundation material.






@pontoon bridge terrain bug thing:
if anyone has the similar problem and is wondering how to fix this.

i looked over this again. so i knida messed up in the code there. it's good with the new version now. you can still put floor over it with dev mode and if specail buildings generate floor/terrain they can too. keep in mind if you deconstruct/destroy the pontoon bridge it will place the terrain which was under it when build again.

for the error, you can only fix it by save file edit. since i forgot to store the old terrain name. so your option would be to either add the line for the variable and terrain or simply delete the pontoon bridge in the save file.

save files are (for windows) at: username/AppData/LocalLow/ludeon Studios/Rimworld by Ludeon Studios/Saves

just open with any texteditor programm and search for the section(s) defining the bridges. they should looke like this:
(old)
<thing Class="sd_bridges.Building_sd_bridges_pontoonbridge">
<def>sd_bridges_pontoonbridge</def>
<id>sd_bridges_pontoonbridge30844</id>
<map>0</map>
<pos>(140, 0, 130)</pos>
<health>100</health>
<stuff>WoodLog</stuff>
<faction>Faction_9</faction>
</thing>

delete this section or add a last line:
<TerrainTypeAtBaseCellDefAsString>Marsh</TerrainTypeAtBaseCellDefAsString>
that it looks like this:
(new)
<thing Class="sd_bridges.Building_sd_bridges_pontoonbridge">
<def>sd_bridges_pontoonbridge</def>
<id>sd_bridges_pontoonbridge30844</id>
<map>0</map>
<pos>(140, 0, 130)</pos>
<health>100</health>
<stuff>WoodLog</stuff>
<faction>Faction_9</faction>
<TerrainTypeAtBaseCellDefAsString>Marsh</TerrainTypeAtBaseCellDefAsString>
</thing>

For Marsh you can use any other terrain defname too.

BlackGyver

Quote from: sulusdacor on January 12, 2017, 12:34:43 PM
it's a quite nice workaround. i set the flammability to exact 0.5. so it's in the "not as ruins" range, but does not catch fire as easily. just loaded 6 maps and seems good. thx for the tip =)

Quoteedit: small addition to the ruins thing. this only counts for the base game map generation. any mod doing map generation and that does not check for that will still be able to build out of foundation material.

Awesome! Off to downloading the newest version then, thanks for the quick reply and efficient work! ;D

123nick

can you make medicaddons compatible with telkirs mod so colored beds can also be hooked up too the medical things?

BlackGyver

He did a tutorial on how to add it yourself to other mods;

https://ludeon.com/forums/index.php?topic=26276.msg273452#msg273452

Scroll down to "How to add the facilities to other mods?"

lllMWNlll

Hey, Sulusdacor

https://gist.github.com/ba9bc685af36733bc8f381d8ffccdc71

I got a red line from your mod. I'm testing a lot of mods together and their compatibility with this other mods, i still want to this with another 17 mods.

sulusdacor

if you did you posted the wrong error log. this one do not have any of my mods ;)

@medicaddons compstuff: as BlackGyver said wrote a short tutorial/explanation thing. is quite simply to do yourself. for other compatible version not sure, since it kinda goes up exponentianly with each bed mod and there for possible combinations ... i was thinking about some solutions for this, but not really got into it much other then some vague ideas. working on another mod currently, so will tak some while.

faltonico


tl;dr
I just wanted to take this out of my system and maybe, spark some interest in you and/or the readers, i'm not expecting you to do any of this: xD

I liked the idea of your luciferium producing mod very much, and i was thinking "what if i made a mod of your mod, but to produce a precursor to glitterworld medicine?".
I find it kind of ridiculous to use the regular stuff you have right now on game to make advanced items like those medicines, so i thought, ¿why not to use refined mechanites you extract from mechanoid oil? some inspiration came from the "Mechanite Augmentation" mod, but the means for extraction came from your mod...
My idea is to extract the oil from mechanoids as usual, and have "raw (or wild) mechanites" as a subproduct of the production of "raw luciferium batches", then make them go trough a process of reprogramming those wild mechanites at a machining table, to get refined mechanites, that you can use later to craft glitterworld medicine and maybe some other stuff.

The difficulty on crafting any of the products will not be measured by the amount of stuff you need to pour into them to craft them, but with the conditions the facilities have to maintain for you to be able to craft them. ("oh look, pouring 500 plasteel here makes it hard... right?" <= nono). Those refined mechanites would also serve as a material for crafting the items from the Mechanite Augmentation mod (i want a cyborg army to conquer the world >=D ).

FOR INSTANCE, mechanites have a hive-like mind, if they notice their neighbors having a change in their programming, they will attack and destroy any deviating sister, so, you need the facilities where you do the reprogramming to be at least -59°C at all times, so they are slumbered and don't react effectively to the tampering of their program. ALSO, the lighting of the room is a big problem, wavelengths of the visible spectrum causes the solvent in which refined mechanites are suspended to polymerize into a useless clump, so a new type of lamp has to be crafted to use together with a special visor to actually see what you are doing in there.
UNFORTUNATELY, you would need means for controlling said mechanites from escaping to the outside (sensory and fibrous mechanites are like a summer breeze on your face compared to raw mechanoid mechanites), so the room has to be constantly bombarded with a particular UVC radiation wavelenght in which they cease to work automatically if exposed to it (behavior imbued by their creators to control them), the intensity needed for that UVC "light" to work is very harmful to the eyes, and any unprotected pawn will get its sight severely damaged or blinded if exposed to it. Skin exposure to it would significantly raise the chances of getting cancer if your skin is not burned before that (there is no skin placeholder in Rimworld yet.. i think), so, full body protection is a must, and plasteel walls in the room are NEEDED to prevent the leakage of harmful radiation or loose mechanites. AND, the fumes of the solvent the refined mechanites are soaked in is extremely toxic as well, handling with care would be an understatement, OSHA and EPA would nag you every week if you handle that stuff on earth. Thankfully we are at a RimWorld, we can vent those fumes to the outside ;) managing exhaust rooms is necessary to improve the survivability of your workers, or you could expend a bit more money to build a scrubber, only if you are not like many other electronics manufacturers and your workers do worth the trouble. and YET AGAIN ANOTHER "AND", did i mentioned any dirt in the room area would ruin a whole batch?

Getting the knowledge to do all this is not easy, in fact, you can't really research it, you need somebody to share those secrets with you, like a "Navy Scientist" or a "Mad Scientist" pawn (they know how to do the good stuff) and then research it to actually know how to do it. You can get lucky and have one join you, or have a pirate trader to sell them to you, you could also steal them from another faction, or get it by... delivery *cofraidcof*.

I thinkTM i could probably (probably? maybe? ...perhaps?) edit all of your files to make a dumbed down version of that nonsense i just said (with only items and recipes)... eventually...
Though i wouldn't even know if it is possible to add those kinds of environmental or room conditions to working tables.

sulusdacor

QuoteI thinkTM i could probably (probably? maybe? ...perhaps?) edit all of your files to make a dumbed down version of that nonsense i just said (with only items and recipes)... eventually...
feel free to edit/use my mods(see lincense in first post of the topic). totaly fine with me ;)

thx for taking the time to give feedback and write your idea out. it seems super complex and interesting. Fun thing is i thought about the negative temperature thing for the destillation building when making the mod^^. The reason the production is not more complex is mainly, because i feel you should have an okay effort/result relation. so adding more complex production for all things would make it harder to produce, but what stops the player from just calling a trader and buying the thing or go trading himself. So the idea's with the toxic fumes + lights are quite good, but for glitterworld meds/luci i don't feel the incentive is there to go through the effort over just buying these. Maybe for more valuable items (some sort of adv bionics?robots?), which have only benefits and not so big/no drawbacks this would be okay.

another slight problem is see with this is the bad scenario situation. what if things go horrible wrong (hive/raid/fire etc.) and your workroom gets breached, it's rimworld overall^^. from your description i assume the "sleeping" mechaniodes would wake up and contact there brothers, gas would flood the base and things would go down hill. If you have a bigger stockpile (which is usally the case when late game and this would be a late game process i assume), then there would be quite a few mechs "waking up" in your base. these would trigger an outside mech raid and you have gas in your base, that slowly knocks out your colonists (if it lowers conciousness -> lower shooting acccuracy). not taking into account the actual incident, which triggered the breach in the first place, making the situation probably much worse then it already is. so there should probably be some sort failsafe somewhere, that not every breach of the production room would end your colony ;)

for possibility: you can add custom code to the game so all is possible. parts of the mechanics you described are in someway or form done by other mods. for example the check for safety gear was the way uranium was handeled in the hardcore sk. i think the rimushima mod uses that too. the fumes/gas stuck in room thing was in a way done by a mine/bomb mod, which had a sleeping/knock out gas mine you could use.

faltonico

Quote from: sulusdacor on January 25, 2017, 04:24:09 AM
-snip-
Thank you for reading that chunk of blabbering xD
Let me try to organize my thoughts here, first of all, at lategame, you don't have many things to worry about, running a dangerous enterprise would be good to keep you busy, the fact that is dangerous doesn't mean it would be hard to maintain, when you set all of your things all right you usually don't have to worry anymore, for the most part, just like Rimushima (though having 25 kW of spare power and RT Solar Flare Shield is a MUST otherwise your workers would be screwed by a solar flare).
Raids are, as everyone knows, a big trouble, more so with Cassandra extreme shoving you 500+ orassans the moment she can, the more pressure for you to survive and make a good shelter, and "protect that facility!". The picture you imagined is awesome example of things going wrong in the Rim!.
The result for taking that huge risk would be the possibility of pumping glitterworld medicine non stop, they are not as expensive, but a good amount would yield good benefit. Also, making Mechanite IV from the Mechanite Augmentation Mods, would be a nice addition, they give huge boosts and are not that common to see them around (and expensive asf). Using that other mod would be necessary... complicating things a bit. Having an army or augmented cyborgs to conquer the world would be awesome >=D

And that incident you mentioned is AWESOME, if you are not careful, shit is gonna get ugly, that is one of the reasons a find Rimushima to be so cool, a huge profit from maintaining the plant, but a manageable risk that everything could go wrong (as it did with my A15 colony when a 12 rod core blew up... because of not paying attention -_-'). Planning is a huge deal to avoid as much incidents as possible like infestations, fires, a pawn giving a tantrum and so forth.
The only failsafe i can think of, in the case you mentioned of a breach, when everything is lost, would be remote incendiary charges... burn that room and everything it has to hell! like A PANIC button xD  ...a second layer of non combustible wall surrounding the plasteel one would be necessary.

And yes, I would have to borrow a lot of stuff from other mods, like apparello, remote explosives, rimushima (though Rimushima has a complicated license, i don't know if "borrowing" could be done), but i'm pretty sure i can't do the more complicated coding stuff to actually make that work, and i'm REALLY slow, because i have to learn things on the go. Maybe I'll have something ready for A18 xDD


Trigon

Personally I feel like the hammocks should be tribal or medieval tech level as opposed to industrial but otherwise I think this is really cool. These mods add just that little bit of flavor. I'm a huge fan.

gendalf

medieval surgery lamp doesn't require refueling