So I'm moving somewhere in the next couple weeks and getting a new job. The predictable TL;DR here is that dev work will be on standby, and wouldn't you know it, I'm in the middle of something I wanted to offer. I've been posting code hereabouts as I finish it, but it is an unfortunate possibility that I am not going to be able to get it done.
The makerlathe project replaces fucking everything that should have been the same object type to begin with--autolathe, protolathe, mech fab, circuit fab, biogenerator, and it'd be as easy to make new ones as you could possibly wish. It has a lot of features like arbitrary costs for building things (it's all reagent based, and new "reagents" were added for things like glass and diamond sheets), using stock parts in the building of objects (and getting them back when you recycle the thing), converting reagents (nutriment into milk in the biogen), fill reagents like welding fuel and fire extinguisher water, reagents that are consumed making the thing and not recycled (acid -> circuit boards, circuit boards -/> acid), build queues, hacked product lists, researchable product lists, dumping stock back into sheets, bottling reagents, etc, usw.
It's done, and it's not done. The backend works, the UI I deem good enough, and it's easy to specify new machines; it's basically just filling out lists of typepaths. The problem isn't that, the problem is that I have to
- Attach a new cost list to virtually every item - note that these costs are not just iron and glass anymore, but can include custom and classy reagents such as leather, cloth, aluminum, and plastic, making clothing lathes an exciting future idea
- Create new reagents and make them sane (I would also like to add titanium and aluminum ores and sheets, and plastic and rubber sheets with some way to make that reagent--you can make leather sheets in the biogenerator, cloth would be a logical addition there too--these are all details that can be better integrated later as long as they are added). Note that making them sane means adding color and other details, and might involve fixing anything stupid I did that I haven't discovered yet.
- If I am replacing the protolathe and circuit fab, alter the R&D front end so the panel no longer accesses them, or something to that effect (the machines will sync with the robotics R&D server currently). I do not have a DA replacement, but if I did, the R&D rectangle could be completely replaced
- The code is not integrated--there is for example a file with all of the new reagents in the module folder instead of those reagents being put in the master reagents file. Another file has procs added to all items, which needs to be moved. The items are not currently on the map.
- Old code needs to be torn out - This replaces m/g_amt, cyborg/mecha construction cost list, makes unnecessary some variables in the research design datums, etc.
- There needs to be some thought given to the following ratios, and I do not want to do it:
- Sheets to reagents (currently 2000 reagents/1 sheet)
- Atmospherics gas to reagents (for filling air tanks, etc - currently 100 reagents / 1 mole gas)
- Cost of various manufactured diddys (since all makerlathes can recycle things into components--but only if they contain only parts/reagents that the makerlathe builds with); for example, it's obvious that you can recycle clothing to build other clothing, but you don't want to recycle jumpsuits to build rig suits; rig suits must require exotic materials, space suits less exotic but still not just cloth, etc.
- Component parts multipliers on costs/speed/etc (currently a little arbitrary)
Teaser code that actually defines the autolathe:
Spoiler: