dvgrn wrote:EDIT2 10/5/2017 10pm: Fixed all problems causing errors or warnings. Script now generates 177 guns.

Haven't picked up this project for a while. There must be something else even less pleasant that I should really be doing, like updating my resume.

I got tired of copying and pasting RLE into the script, so the multistate template guns are in a "template" folder that the script expects to be pointed at. The script can now build 700 guns -- or actually it can build 358 guns, and it more or less knows where 342 more of them are, so they can be copied verbatim out of the "fixed" or "variable" folders. The script doesn't do that yet, but it will -- the goal is to run the script and get a single folder containing the latest-and-greatest thousand guns less thirteen.

The next hundred guns will be easy to add, since they're in families with seven to nine guns each. The next hundred are in families with four to six guns each, so they aren't too horrible either. But the last hundred are a big pile of one-off (or two-off) adjustments. If anyone else wants to work on coloring in some of the remaining gun templates, please be my guest! I can even provide documentation -- on request. All the current code is in the attached file.

Originally I was getting dozens of warnings, because I had made sub-optimal adjustments to some guns:

`bad size 370 (6018, 'p00652_11_p00370'): really 6120`

I figured them all out eventually, but it sure took a while.

I'm finding it a little hard to imagine a script that knows how to figure out all the minimal adjustments for some of these ant's-nest pretzel loop guns. I guess a reasonable way to do it would be to generate all possible adjustments in a large range, and then just run each one and find out how long it turned out to be, and pick out the smallest bounding box for the period you want. But I think that implies some general knowledge of what pieces can be welded to what other pieces, at what depth.

It would be painful and bug-ridden code if I wrote it, that's for sure. It's much easier to just build "alt" gun templates by hand, really, especially for the custom weld cases. Speaking of which, I'm in great need of a competent welder for p00498alt1. My welding job got a little out of hand, and I refused to care because it didn't change the bounding box:

`x = 70, y = 51, rule = LifeHistory`

34.C11.2C$11.C11.C.C7.C.C10.2C$9.3C11.2C.C.2C3.C.C$8.C5.2C10.C.C.C.2C

.2C$8.2C5.C7.2C.C3.C.C$15.C.2C3.C2.C.4C2.C.2C$16.C.C4.C3.C3.C.C.2C$

18.C.3C3.C3.C.C26.2A$17.2C.C4.C3.C.C27.2A6.2A$3.2C20.2C3.C25.A9.A.A$

2.C2.C50.5A5.A$2.C2.C53.A3.2A.2A$3.2C51.2A3.A2.A$C37.2C16.A3.3A.A$38.

2C18.A4.A$53.2C2.5A$52.C2.C5.2A3.2A$53.2C.2C2A3.A2.A$54.C.C2.A.2A.A.A

$54.C.C3.A.A.A.2A$41.2C12.C7.2A.A2.A$42.C25.2A$39.3C$10.2C15.2C10.C$

10.2C2.2C11.C.C16.2A5.2E$14.2C13.C17.A5.E.E$6.2C21.2C16.A.A3.E$6.C2.

2C26.A10.2A16.2A$7.3C.C23.3A28.2A$12.C21.A$7.5C22.2A$7.C11.2A$10.2C8.

A45.2A$10.2C8.A.2A42.2A$21.A2.A$22.2A$37.2A$37.2A2$66.A$65.A.A$46.A3.

2A14.A$45.A.A3.A$44.A.A3.A$40.2A.A.A3.A$40.2A.A2.4A.A4.2A$44.A.A3.2A

3.A.A$40.2A.2A.A.A6.A$41.A.A3.A.3A2.2A11.D$29.2A10.A.A4.A2.A16.D$29.

2A11.A6.2A15.3D!

I learned another thing or two on this little excursion. Where I've been using the 3-way Snark weld on the left, which I freehand-drew and memorized years ago, I should be using the simpler and more sensible one on the right, e.g., in p00564alt0:

`x = 28, y = 11, rule = LifeHistory`

5.2A18.2A$6.A19.A$3.3A17.3A$3.A19.A$2C.A16.2C.A$C.C.2A.2A.A9.C.C.2C$

2.C2.A.A.2A11.C3.C$2.2CA2.C14.3C2.C$5.3C17.3C$4.C19.C$4.2C18.2C!