Anyone interesting in working on dfjobs.xml? If you have a google code account, that is a good thing, but not necessary.
It needs some love. Specifically relating to having more entries and organizing it.
It is pretty self explanatory. The name and category of a job doesn't do anything but change how it is displayed in the interface. If you're dealing with a custom reaction, you just use the name that is in the raws and that is all you have to do. Otherwise the type is a table of hard/coded values.
<Job id="0" name="Carve Fortification" />
<Job id="1" name="Detail Wall" />
<Job id="2" name="Detail Floor" />
<Job id="3" name="Dig" />
<Job id="4" name="Carve Upward Staircase" />
<Job id="5" name="Carve Downward Staircase" />
<Job id="6" name="Carve Up/Down Staircase" />
<Job id="7" name="Carve Ramp" />
<Job id="8" name="Dig Channel" />
<Job id="9" name="Fell Tree" />
<Job id="10" name="Gather Plants" />
<Job id="11" name="Remove Construction" />
<Job id="12" name="Collect Webs" />
<Job id="13" name="Bring Item to Depot" />
<Job id="14" name="Bring Item to Shop" />
<Job id="15" name="Eat" />
<Job id="16" name="Get Provisions" />
<Job id="17" name="Drink" />
<Job id="18" name="Drink" />
<Job id="19" name="Fill Waterskin" />
<Job id="20" name="Fill Waterskin" />
<Job id="21" name="Sleep" />
<Job id="22" name="Collect Sand" />
<Job id="23" name="Fish" />
<Job id="24" name="Hunt" />
<Job id="25" name="Hunt for Small Creature" />
<Job id="26" name="Kidnap" />
<Job id="27" name="Beat Criminal" />
<Job id="28" name="Starting Fist Fight" />
<Job id="29" name="Collect Taxes" />
<Job id="30" name="Guard Tax Collector" />
<Job id="31" name="Catch Live Land Animal" />
<Job id="32" name="Catch Live Fish" />
<Job id="33" name="Return Kill" />
<Job id="34" name="Check Chesk" />
<Job id="35" name="Store Owned Item" />
<Job id="36" name="Place Item in Tomb" />
<Job id="37" name="Store Item in Stockpile" />
<Job id="38" name="Store Item in Bag" />
<Job id="39" name="Store Item in Hospital" />
<Job id="40" name="Store Item in Chest" />
<Job id="41" name="Store Item in Cabinet" />
<Job id="42" name="Store Weapon" />
<Job id="43" name="Store Armor" />
<Job id="44" name="Store Item in Barrel" />
<Job id="45" name="Store Item in Bin" />
<Job id="46" name="Seek Artifact" />
<Job id="47" name="Seek Infant" />
<Job id="48" name="Attend Party" />
<Job id="49" name="Go Shopping" />
<Job id="50" name="Go Shopping" />
<Job id="51" name="Clean" />
<Job id="52" name="Rest" />
<Job id="53" name="Pickup Equipment" />
<Job id="54" name="Dump Item" />
<Job id="55" name="Strange Mood Crafter" />
<Job id="56" name="Strange Mood Jeweller" />
<Job id="57" name="Strange Mood Forge" />
<Job id="58" name="Strange Mood Magma Forge" />
<Job id="59" name="Strange Mood Brooding" />
<Job id="60" name="Strange Mood Fell" />
<Job id="61" name="Strange Mood Carpenter" />
<Job id="62" name="Strange Mood Mason" />
<Job id="63" name="Strange Mood Bowyer" />
<Job id="64" name="Strange Mood Tanner" />
<Job id="65" name="Strange Mood Weaver" />
<Job id="66" name="Strange Mood Glassmaker" />
<Job id="67" name="Strange Mood Mechanics" />
<Job id="68" name="Construct Building" />
<Job id="69" name="Construct Door" />
<Job id="70" name="Construct Floodgate" />
<Job id="71" name="Construct ?? Bed" />
<Job id="72" name="Construct ?? Chair/Throne" />
<Job id="73" name="Construct ?? Casket/Sarcophagus/Coffin" />
<Job id="74" name="Construct ?? Table" />
<Job id="75" name="Construct ?? Box/Chest/Bag/Coffer" />
<Job id="76" name="Construct ?? Bin" />
<Job id="77" name="Construct ?? Armor Stand" />
<Job id="78" name="Construct ?? Weapon Rack" />
<Job id="79" name="Construct ?? Cabinet" />
<Job id="80" name="Construct ?? Statue" />
<Job id="81" name="Construct ?? Blocks" />
<Job id="82" name="Make Raw ??" />
<Job id="83" name="Make ?? Crafts" />
<Job id="84" name="Mint ?? Coins" />
<Job id="85" name="Cut ?A?" />
<Job id="86" name="Cut ?B?" />
<Job id="87" name="Encrust ?something? with ?somethings?" />
<Job id="88" name="Encrust ?something? with ?somethings?" />
<Job id="89" name="Destroy Building" />
<Job id="90" name="Smelt Ore" />
<Job id="91" name="Melt a Metal Object" />
<Job id="92" name="Extract Metal Strands" />
<Job id="93" name="Plant Seeds" />
<Job id="94" name="Harvest Plants" />
<Job id="95" name="Train Hunting Animal" />
<Job id="96" name="Train War Animal" />
<Job id="99" name="Construct Catapult Parts" />
<Job id="100" name="Forge ?? Anvil" />
<Job id="101" name="Construct Catapult Parts" />
<Job id="102" name="Construct Ballista Parts" />
<Job id="103" name="Forge/Make A" />
<Job id="104" name="Stud with ?something?" />
<Job id="105" name="Butcher an Animal" />
<Job id="106" name="Prepare a Raw Fish" />
<Job id="107" name="Mill Plants" />
<Job id="108" name="Bait Trap with Meat/Gem/Fish" />
<Job id="109" name="Milk Creature" />
<Job id="110" name="Make Cheese" />
<Job id="111" name="Process Plants" />
<Job id="112" name="Process Plants (Bag)" />
<Job id="113" name="Process Plants (Vial)" />
<Job id="114" name="Process Plants (Barrel)" />
<Job id="115" name="Prepare ?? Meal" />
<Job id="116" name="Weave ?? into ??" />
<Job id="117" name="Forge/Make ?? something" />
<Job id="118" name="Weave Thread" />
<Job id="119" name="Forge/Make D" />
<Job id="120" name="Forge/Make E" />
<Job id="121" name="Forge/Make F" />
<Job id="122" name="Forge/Make Waterskin/Vial/Flask" />
<Job id="123" name="Forge Rope" />
<Job id="124" name="Forge Flask" />
<Job id="125" name="Forge Goblet" />
<Job id="126" name="Forge Instrument" />
<Job id="127" name="Forge Toy" />
<Job id="128" name="Forge Animal Trap" />
<Job id="129" name="Forge Barrel" />
<Job id="130" name="Make Totel" />
<Job id="131" name="Forge Bolts" />
<Job id="132" name="Decorate With ?something?" />
<Job id="133" name="Forge/Make G" />
<Job id="134" name="Decorate With Bone" />
<Job id="135" name="Make Backpack" />
<Job id="136" name="Make Quiver" />
<Job id="137" name="Load Catapult" />
<Job id="138" name="Load Ballista" />
<Job id="139" name="Fire Catapult" />
<Job id="140" name="Fire Ballista" />
<Job id="141" name="Construct Mechanisms" />
<Job id="142" name="Fire Ballista" />
<Job id="143" name="Load Cage Trap" />
<Job id="144" name="Load Stone Trap" />
<Job id="145" name="Load Weapon Trap" />
<Job id="146" name="Clean Trap" />
<Job id="147" name="Cast Spell" />
<Job id="148" name="Link a Building to Trigger" />
<Job id="149" name="Pull the Lever" />
<Job id="150" name="Brew Drink" />
<Job id="151" name="Extract from Plants" />
<Job id="152" name="Extract from Raw Fish" />
<Job id="153" name="Extract from Land Animal" />
<Job id="154" name="Tame Small Animal" />
<Job id="155" name="Tame ?something?" />
<Job id="156" name="Chain Animal" />
<Job id="157" name="Unchain Animal" />
<Job id="158" name="Unchain Pet" />
<Job id="159" name="Release Large Creature" />
<Job id="160" name="Release Pet" />
<Job id="161" name="Release Small Creature" />
<Job id="162" name="Handle Small Creature" />
<Job id="163" name="Handle Large Creature" />
<Job id="164" name="Cage Large Creature" />
<Job id="165" name="Cage Small Creature" />
<Job id="166" name="Recover Wounded" />
<Job id="167" name="Diagnose Patient" />
<Job id="168" name="Immobilize Break" />
<Job id="169" name="Dress Wound" />
<Job id="170" name="Clean Patient" />
<Job id="171" name="Surgery" />
<Job id="172" name="Suture" />
<Job id="173" name="Set Bone" />
<Job id="174" name="Place In Traction" />
<Job id="175" name="Drain Aquarium" />
<Job id="176" name="Fill Aquarium" />
<Job id="177" name="Fill Pond" />
<Job id="178" name="Give Water" />
<Job id="179" name="Give Food" />
<Job id="180" name="Give Water" />
<Job id="181" name="Give Food" />
<Job id="182" name="Recover Pet" />
<Job id="183" name="Pit/Pond Large Animal" />
<Job id="184" name="Pit/Pond Small Animal" />
<Job id="185" name="Slaughter Animal" />
<Job id="186" name="Make Charcoal" />
<Job id="187" name="Make Ash" />
<Job id="188" name="Make Lye" />
<Job id="189" name="Make Potash From Lye" />
<Job id="190" name="Fertilize Field" />
<Job id="191" name="Make Potash From Ash" />
<Job id="192" name="Dye Thread" />
<Job id="193" name="Dye Cloth" />
<Job id="194" name="Sew ?? Image" />
<Job id="195" name="Manage Work Orders" />
<Job id="196" name="Operate Pump" />
<Job id="197" name="Manage Work Orders" />
<Job id="198" name="Update Stockpile Records" />
<Job id="199" name="Trade at Depot" />
<Job id="200" name="Construct ?? Hatch Cover" />
<Job id="201" name="Construct ?? Grate" />
<Job id="202" name="Remove Stairs/Ramps" />
<Job id="203" name="Construct ?? Quern" />
<Job id="205" name="Upgrade Squad Equipment" />
<Job id="206" name="Prepare Equipment Manifests" />
<Job id="207" name="Construct ?? Splint" />
<Job id="208" name="Construct ?? Crutch" />
<Job id="209" name="Construct Traction Bench" />
<Job id="210" name="Clean Self" />
<Job id="211" name="Bring Crutch" />
<Job id="212" name="Apply Cast" />
<Job id="213" name="Reaction (other)" />
<Job id="214" name="Unknown Job" />
<Job id="215" name="Unknown Job" />
<Job id="216" name="Shear Creature" />
<Job id="217" name="Spin Thread" />
<Job id="218" name="Pen/Pasture Large Animal" />
<Job id="219" name="Pen/Pasture Small Animal" />
<Job id="220" name="Unknown Job" />
<Job id="221" name="Forge Tool" />
<Job id="222" name="Collect Clay" />
<Job id="223" name="Install Colony In Hive" />
<Job id="224" name="Collect Hive Products" />
Some jobs require a material, you can specify wood, bone, other, on inorganic. If you specify other or inorganic you also need to specify which other or inorganic material. Other is a hard coded list.
INORGANIC
AMBER
CORAL
GLASS_GREEN
GLASS_CLEAR
GLASS_CRYSTAL
WATER
COAL
POTASH
ASH
PEARLASH
LYE
MUD
VOMIT
SALT
FILTH_B
FILTH_Y
UNKNOWN_SUBSTANCE
GRIME
Inorganic materials are also specified by their raw names, you can see a list of them by using test.exe's dump materials function.
Stack is used for items that produce more than one item, such as arrows where each job makes 25 arrows.
Once you specify a job, you need to specify which items are produced when the job is done. You can specify 1 or more things here. If you're curious how Foreman views items, you can use the dump items feature of test.exe to see for sure. Furthermore, they are additional categories. Material of all matches all materials, other matches all "other" materials, etc for organic, inorganic, and creature. Creature means it is made from a creature and is useful for bones and such.
There are like a thousand jobs, and they all need to be tested hehe. It isn't that bad though, because we really don't need to support finished goods. The purpose of foreman is to prevent you from running out of stuff, not run your fort for you. You're either making crafts in your fort or you're not, no one ever needs 200 crafts on hand "just in case" lol.
I also haven't implemented subtypes for items yet. Items with subtypes are instruments, toys, weapons, armor, shoes, shields, helms, gloves, ammo, pants, siege ammo, traps, and food. As you see, most of those we don't care about but I already implemented a temporary hack for bolts and I might make one for siege ammo later...
Finally, gems are kind of weird and not really supported but it is irrelevant because I haven't implemented the "make all" feature yet. It would be like a reverse job, it would queue a job for each item that existed so you could automatically cut every gem you have hehe.
If someone worked on this, I could skip to working on new features.
Either way, I can't get much done in weekends so meh.