Miniaturize a whole logic network into a single entity to save place (similar to factorissimo but for signals).
Mods introducing new content into the game.
Entities which interact with the circuit network.
Signal Filter Combinator
by Gloin-The-Dark
Passes (whitelist) or excludes (blacklist) input signals based on the filter set provided.
Filters can be set via parameters or fed in on connection #2.
Mode can be set to whitelist or blacklist via parameter.
6 tick delay when filter changes, 4 otherwise.
Cannot filter or process the white-dot signal.
Blueprint string...
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
I use the easier combinators for filters beacuse I use them a lot and having less combs is better for performance.
There are 2 processors, both working in a "filter-match" way, one being safer (I/O connections are isolated) and with the display component listing filter (only 1st signal BTW), and the other being faster (3 ticks vs. 5). Both are tick-synchronized and change-safe (no state transition fluctuations behaviour) and can handle basically signal of any kind and (almost?) any magnitude. They are based on the signal multiplication trick described on wiki (though it uses slightly different formula and relies on 1^1 == 1
).
The "filter-out" variant can be added with +1 tick by multiplying the result by -1 and adding the input.
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
I get a crash when placing this blueprint, something about a Greek Phi signal. What mods does it require?
I get a crash when placing this blueprint, something about a Greek Phi signal. What mods does it require?
Ah, forgot to remove it (used only for logo).
That's the mod: https://mods.factorio.com/mod/SchallVirtualSignal
BTW, this should NOT cause the crash, only an error.
Here's the same without that additional mod:
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
@Gloin-the-Dark, fixed in 1.1.2: https://github.com/Telkine2018/compaktcircuit/issues/3
That's a cool filter circuit. Did you design it?
It's too bad that *^2 loses the top bit of the value.
That limits the numerical input range by half. (-1073741824 to 1073741823)
3 ticks is hard to beat.
That design got my brain buzzing. I wanted to figure out a way to eliminate the range restriction. I was able to achieve this and reduce the latency by 1 tick.
I have a whitelist, blacklist, and zebra versions in both fast(2 ticks) & slow (3 ticks). Zebra Circuit produces both a whitelist and a blacklist at the same time.
Take a look. Let me know what you think.
https://factorioprints.com/view/-NqWJxEd7HgBtTr0VNJX
Wow. That got me thinking. Finally, I've discovered that C's right shift keeps the sign, and so does Factorio.
Literally mind-blowing.
Beautified version of whitelist-fast (less wires, C&D and Y&Z are swapped (A-D are left combs, X-Z are right ones)):
0eNqllduum0YUhl/F4tY74WDMYUu9wAYMxoABn3BTRYAHGHOGAQPRfvfibCmJ2rRV2ztmHf71axb65gvmpy0oa5gj7PULdgNNUMMSwSLHXrFzDBFIYYNmstegj59yB0a5lzYzrwYzmAdpewO3WZGnwwyGMxSDYQb6ZznMn6dZCFME6tlTYWqmZggGSTN9ye/xzptGN7OsnTp8MCNmRT0jp/SnfAW8FsEQTur+MFOmcc2nHHvBYFDkDfb66xes+erkaRkNJZi8drBG7RR5wXIvewbeKz6csbepL7+BHnsl317+Raf8Qyf19tsLBnIEEQTvBr4ehs95m/mgnqS/dQdFVnoJCmAdtBB9KOsiAE1T1J/JnpxmlEUD36/3C/a0xHxcvmAD9vqB/ric5nVeDb33/CSJvKh5Fv6wI4wARp2eJWqfjYKFO53aL73mkQSRBUgt9Uqt8x1FqRrNBEJyKjLDXxlINs/47dFv02i1FVcdqtFhp0VXFt/4gMP1xhwP+3Wp7obY0W5FlOVScsRvdOxcA/2KV1eqdSXbjaomcSk3h8gmYwudioN9NewHuo1DLUKhJZEtp1qeigm7x10ormTZOZ0eiva4n7I+j/WVRDCxq1AmzlQSrJzIK20nO9/oNdmlF307jHdLXYuJpkCXoqqdCpZ3wY6KrrwwB07oqXui+vVF2BSykghRcbWIq5Suk+JoCz4XnNZSdOr7JgypebUoBME49d3qvHZpdTjO7SsTaWbkj87aQYFsaZsMrZmsMX0pgA9U+8rm7Hnx6X54+L5Lu3zesqlvsBoI7mR5H/JNU1FNuh9LVcnieMvv22FVsHOViL3daBsOsVZ2QRk7QelI+rY9PA4cXG2Yi04u1YMjNiO+Nxz+3ksgu2mEiczOadje6pltDiRGEEL7tqeHpiodS3H4o3luV/ojPwhKgc5pWHarTvP6UK+Wx7r0tOpUJBasAmmcq8szkAwS7K6kt9twYpWWvNpWW6HyS2oj2ucqWgf52TjrUqBsnZgTnYvlKsemqnX8PCgXjtjyTHSYy7yiQ7EoRYVgU2bX7RbpQ/UrKgHx4K7bPWVFYpzfD/bFXC4YrRIvPrdoOZZ18xs3trnSLowqyCr/IhFdgM5xsklGEp5ktL5Rx3tdsgBvLaXBgQ7HbpzTCVvLJ870dxne0I0saPgO37AKmDseszNq66B2saW7GUsf+3HMcnav9MYhHvvKS27BwD3S2qJYj3G2FOAStLVSHR7WtH4k3L0KeHFJH7Nib8vHQDMIM1zFZinMbc+Sk1Fec8ol8AiR4WTKU4oVMlkiwIugpLkzbiLPE9zRzo5WJRunZmwJRtqEckemMTNey11L0cuaYAKW3HfkZRtIq9AvNmYQ1xEeQuQF9025ZNkyCC8kLt42gUG7XsbVkOf0omfFishDi7HIxwLI3UU5AI5Hpg+oxait0IIayenHchU+u1fU0LJ8uF4f+tpUdw3RxQKjXHDVeCw6yl7ip9x3jURTjws6hFQVEnNxqt4mZRiUmV7rohfORwFljwuLizS7KDbRLxOIUs8H6Z8gPyWaiTQIUN/J+OEdiPg3ok5gmkg+UXG55Cn+Ca2JT5/hDXul356I/QMbqb9iIyzK4gm1n1GRIhYk9QMaf6K7+C+63yRZnuHYn+rS/0WXIwiW+yfHy//lmOR5ivzqeXqMphVlk873l+FvNtqBuvkqSXEkzfIUy9H8guGZt7ffATgZrLQ=
Code in C:
https://onlinegdb.com/orQKPIKM_
I prefer the wires not lying on top of each other. I like to be able to see where they are going without hovering.
C's >> preserves sign as long as the value is a signed type.
If you want to do an unsigned right shift on a signed int, you can cast it to an unsigned before the shift with no performance penalty.
Likewise for doing signed shifts on unsigned ints.
They do not have unsigned ints in Java, so they added >>> for unsigned shift right.
I prefer the wires not lying on top of each other. I like to be able to see where they are going without hovering.
Funny enough, that's the direct opposite of how it looks to me. When I see a wire mess, I can't trace any, and when there are less of them but each connected to multiple entities, I trace them with ease.
C's
>>
preserves sign as long as the value is a signed type.
If you want to do an unsigned right shift on a signed int, you can cast it to an unsigned before the shift with no performance penalty.
<...>
They do not have unsigned ints in Java, so they added>>>
for unsigned shift right.
Thanks, will know!
Likewise for doing signed shifts on unsigned ints.
But why on Earth do you need that?...
Sometimes you just want the behavior of replicating the high bit, without regard its use as the sign. Sometimes an int is just a collection of bits rather than a number.
@Gloin-the-Dark, wanted to say thank you for the BP for the filters using this wonderful mod. I've struggled to build my own for days, I know have a better understanding and yours are clean, elegant and appear to be bug free.
If you had any other nifty utility BPs using this cool mod, would love you to post them too.