I like this and am posting to watch a fellow dragon modder. Any questions I can answer I will be happy to assist with as well.
As for your forge troubles, you can usually add the items to your entity and most things should show up properly where they should sensibly go. What shows up where is a slightly complicated combination of entity, materiel, and item tags.
Usually the game understands that weapons should be made out of metal with a maxedge value above a certain number, and the weapon is allowed in the entity file for example.
It's easy to understand once you get the general idea. But getting the general idea is tricky. Just copying an item that is closest to what you want and making adjustments seems to be a good way to go while learning.
----------------------------------------------------------------------------------------------------
As for workshops, there doesn't actually seem to be a page on modding them. Interesting...
This program has been very handy to me for generating the looks of a workshop. It was made for an earlier DF version, but it still works. It dosn't do all the work for you but it generates the big long [TILE: [COLOR: and [BLOCK: lines for you. Then you just copy the output, paste it into an actual raw file and edit it from there.
Here's a quick rundown on the other workshop tags that aren't immediately obvious.
- [DIM:X:X] The dimensions of the workshop. Most hardcoded workshops are [DIM:3:3] something like the kennel would be [DIM:5:5]. The numbers don't have to be equal. But the numbers do mess with the other tags in the raw. If you change the dimensions, you need to change TILE COLOR and BLOCK to compensate for the extra tiles.
- [WORK_LOCATION:X:X] The coordinates for where a dwarf is standing during construction or when doing work in the workshop in relation to the workshop. For example in a 3x3 workshop ":2:2]" is the middle. "1:1]" would be the top left, "2:3]" would be center right.
- [BUILD_LABOR:X] The labor used to build the workshop. For example SOAP_MAKER for a soaper. This has no effect on jobs done at the shop after construction, those are controlled by reactions.
- [BUILD_KEY:X] Which key is used as a keyboard shortcut for the building in the workshop menu. Can be :NONE]
- [BLOCK:N:X:X:X:......] Part of the workshop layout. This controls which tiles can be passed through once the workshop is finished. (Always make sure the WORK_LOCATION is unblocked or the workshop will never finish construction) "N" is the north/south coordinate, while the : each separate the next tile eastward. The values for "X" can either be 0 or 1. 1 indicates blocked, 0 is not. Look at the soap maker workshop in ../raws/building_custom.txt for an example. You need to account for the building dimensions here, adding more values as appropriate. Workshop workshop can generate this for you.
- [TILE:Y:N:X:X:X:.....] This controls which tiles are used to represent the workshop during various stages of construction. I highly recommend using workshop workshop to generate these. It can be done by hand, but it's tedious and requires a lot of refrencing the character table.
- "Y" is the stage of construction. 0 indicating what it looks like before it has begun construction, 3 indicating the final look. With 1 and 2 being what it looks like during the different stages of construction and deconstruction.
- "N" Is exactly like it is on the BLOCK entry. It is the north south tile number.
- "X" Is the tile used. Either a series of numbers relating to the character table or an actual typed in symbol surrounded by quotes.
- [COLOR:Y:N:X1:X2:X3:X1:X2:X3:X1:X2:X3:.....] The Color used to paint the tile, exactly like the creature color tag is the main respect, but in a similar setup to the workshop TILE tag. Y and N are the same as TILE, and X1:X2:X3: are the foreground, brightness, and background colors used to draw the tile same as the COLOR tag used in other raws. With each individual tile having it's own 3 values. You can also opt to replace the usual 3 part color entry with "MAT:" to have that tile use the color of the building materiel. Workshop workshop takes care of this for you, although it cannot handle color based on materiel, since that was implemented after the program came out.
- [BUILD_ITEM:X:X:.....] The items required to build the workshop. Exactly like the [REAGENT: line in a reaction. Can have multiple, though each diffrent item needs it's own [BUILD_ITEM: tag.