- "#(array)" replaced with "#array"
- "(a and b) or c" replaced with "a and b or c"
- Cleaned some other places with unnecessary parenthesis
- "a,b" replaced with "a, b"
- "a+b" replaced with "a + b" (and for all other binops)
- "{a, b, c}" replaced with "{ a, b, c }"
- "-n + a" replaced with "a - n"
- Removed trailing whitespace
- Blank lines added in some very dense places
- Very long lines broken into shorter lines
- Use modern functions like vector.new and vector.round
- Align with spaces instead of tabs
Previously timers were not copied over to the new nodes when frames
move. This lead to blinky plants from mesecons to stop working after a
platform has moved, and buttons getting stuck in their pressed state.
Now the timers state for active timers are copied from the old node
positions to the new node positions.
(e.g. if there's room for 50 of some item, and you send a stack of 99,
50 are added to the chest and a stack of 49 is rejected and sent
on to the next destination)
have them deactivated by default due to a larger collection of associated issues
including but not limited to
* #170
* #216
* item duplication involving templates
* runaway machines
* traversal loop issues with huge machines leading to lag-outs
The new API function is now renamed to pipeworks.tube_inject_item(),
so use it under that name. If it is not available, synthesise the new
API in terms of the old one.
Make the injector's mode button lag-resistant. Display the mode on
the button, as is done with other machines' toggle buttons. Describe
the modes using the same words that are now used to distinguish the
corresponding pipeworks objects. Expand name to "self-contained
injector", now that the pipeworks objects are also called "injector".
Show injector item image along with the item name at the head of the form.
The injector was in no groups, and therefore not breakable by ordinary
means. This was because the code referred to a defined variable that
went away in the course of a rewrite of the chests code.