XML Auto-Documentation

Started by milon, July 15, 2016, 02:55:38 PM

Previous topic - Next topic

Spdskatr

Quote from: milon on March 03, 2017, 05:23:45 AM
Sorry for the belated reply - I haven't had time to dig into the XML to see what you're referring to. If you're asking for specific documentation of what it does, that would defeat the purpose of it being an Auto Doc. If you're asking for more detailed analysis/use of compProperties, could you elaborate a bit on what you're looking for?
Basically, in the same way you did ThingDef, maybe create a similar Autodoc for BuildingProperties and CompProperties, maybe StuffProperties (Include field names, where it is found)? Someone on discord was talking about how these classes were often used in defs without any proper documentation in the autodoc so I thought I would pass it over.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

milon

Ah, okay.  Thanks for passing that along.  I haven't been on Discord yet, and probably won't get into that, tbh.  I'm willing to add more parsing/tracking, but I need a little clarity yet.  (Sorry if I'm being thick-skulled here; I'm just still not getting it.)

Here's what I understand: According to the A16 XML, there's only 3 different attributes that show up in Core as Class="???Properties_..." and they are ALWAYS applied to a <comps><li ... > tag.  They are:
  • CompProperties_...
  • HediffCompProperties_...
  • StorytellerCompProperties_...
(Note: There is no BuildingProperties or StuffProperties in the A16 XML.  If you're referring to something that isn't public knowledge, please PM me rather than posting it publicly.)  The point of this isn't manual documentation, but I don't think that's what you're after.  These attributes are all grouped under comps<li> and they shouldn't be that hard to find.  Their names give really good clues as to what they do.  So what exactly are you asking me to track?  Again, I'm willing to make it happen, I'm just not sure what I'm being asked for.

Spdskatr

Quote from: milon on March 17, 2017, 03:02:45 PM
Ah, okay.  Thanks for passing that along.  I haven't been on Discord yet, and probably won't get into that, tbh.  I'm willing to add more parsing/tracking, but I need a little clarity yet.  (Sorry if I'm being thick-skulled here; I'm just still not getting it.)

Here's what I understand: According to the A16 XML, there's only 3 different attributes that show up in Core as Class="???Properties_..." and they are ALWAYS applied to a <comps><li ... > tag.  They are:
  • CompProperties_...
  • HediffCompProperties_...
  • StorytellerCompProperties_...
(Note: There is no BuildingProperties or StuffProperties in the A16 XML.  If you're referring to something that isn't public knowledge, please PM me rather than posting it publicly.)  The point of this isn't manual documentation, but I don't think that's what you're after.  These attributes are all grouped under comps<li> and they shouldn't be that hard to find.  Their names give really good clues as to what they do.  So what exactly are you asking me to track?  Again, I'm willing to make it happen, I'm just not sure what I'm being asked for.

Part 1 was: To possibly make another section for each CompProperties class so for example:

Class="CompProperties_Art"
Fields:

  • nameMaker (text: foo, bar)
  • descriptionMaker (text: foo, bar)
  • minQualityForArtistic (text: foo, bar)
  • mustBeFullGrave (text: foo, bar)
  • canBeEnjoyedAsArt (text: foo, bar)
  • compClass (text: foo, bar)
Examples:
(same as normal)



Part 2: I actually checked the newest version, this is already implemented under <building> and <stuffProps>. No further action needed :)
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

milon

Okay, I think I get what you're saying now. And that would probably be very useful to have. I'll think on it this week and do a little tweaking. I should have an update by the end of this week. Please bug me about it if it looks like I've forgotten (I do get sidetracked at times).

milon

Okay, I made a test build of the above.  It now parses separately any "special" tag (currently just <li> and <defName>) with an attribute containing 'Properties_' .  That seems to catch all of the various CompProperties without grabbing anything else.

Here's the test build (not updated on the main page): https://www.dropbox.com/s/q896td291evktld/CoreXML%20A16%20Test.html?dl=0

Let me know if that's what you're looking for, and if it's useful.  I don't want to get lost in the feature-creep end of things either.  ;)

Oh, and how's the overall formatting & usability?  Anyone have ideas how to improve the layout?  Having two pseudo-columns via Float in a >1MB HTML file isn't exactly ideal, but it's the best I can think of to allow independent vertical scrolling.

Spdskatr

Quote from: milon on March 22, 2017, 01:39:27 PM
Okay, I made a test build of the above.  It now parses separately any "special" tag (currently just <li> and <defName>) with an attribute containing 'Properties_' .  That seems to catch all of the various CompProperties without grabbing anything else.

Here's the test build (not updated on the main page): https://www.dropbox.com/s/q896td291evktld/CoreXML%20A16%20Test.html?dl=0

Let me know if that's what you're looking for, and if it's useful.  I don't want to get lost in the feature-creep end of things either.  ;)

Oh, and how's the overall formatting & usability?  Anyone have ideas how to improve the layout?  Having two pseudo-columns via Float in a >1MB HTML file isn't exactly ideal, but it's the best I can think of to allow independent vertical scrolling.

Perfect. Thanks, this is great.

Also, usability is fine, considering this is auto-documentation.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

milon

Alpha 17 auto doc is released.  I'm tracking all CompProperties attributes separately, and it seems to come out well.  Enjoy!

kaptain_kavern

Hey Milon you made us waiting long this time  ;D

THANK YOU very much for this, as usual.

You rocks, buddy !

milon

Wow, you jumped on this fast!  Glad to be of help, and sorry I kept you waiting a couple hours, LOL!  ;D

FYI, I haven't learned the new field-replacement technique for A17, but there either is or will be documentation coming out about that.  Some of the other modders were putting that together during A17 testing.

Finally, there's a new A17 mod announcement sticky thread:
https://ludeon.com/forums/index.php?topic=32817.0

milon


DestroyX


milon

Updated to A18.  I haven't *touched* A18 yet, beyond downloading and running the Auto-Doc on it.  I'm still "on vacation" because IRL is insane in milon-land.  Please PM me if there's any weirdness or anything else I should be alerted to.

Enjoy!

Dfid

Quote from: milon on November 20, 2017, 07:09:22 PM
Updated to A18.  I haven't *touched* A18 yet, beyond downloading and running the Auto-Doc on it.  I'm still "on vacation" because IRL is insane in milon-land.  Please PM me if there's any weirdness or anything else I should be alerted to.

Enjoy!

I know it seems kinda nickpicky but it isnt A18 its B18 now.

kaptain_kavern

Quote from: milon on November 20, 2017, 07:09:22 PM

Enjoy!

As always, many thanks man. You know I nearly started to think about how to do one myself this time? ;-)

And good luck with the IRL. It is what matters in the end

Cheers

larSyn

Quote from: milon on November 20, 2017, 07:09:22 PM
Updated to A18.

Nice. Thanks!  These are essential. 

Also want to say good luck w/ IRL. kaptain is right about it.