how do i make piston pushers
G-LinuxorU made an awesome save all about PSTN and FRME:
If that doesn't satisfy your pushing needs you could check out the wiki page for PSTN.
I hope that information helps you build PSTN stuff!
what about subframe ones
Well do you know how to make solid spark using CONV yet? If you do, then you make a solid SPRK on PSCN and put that solid spark next to some PSTN. Here's a crappy demo save I put together in 10 seconds:
I made a save about fast(er) piston movers a while ago. It's possible to move at 1px/frame without going subframe. At least not Conv-Subframe.
Subframe relies on particle order. Each particle has an ID number. When you open a save, the IDs are assigned to numbers starting from #0 in this way: left to right, top to bottom. If there is an empty space, no ID is assigned there because it is an empty space, not a particle. Okay, so what is the ID for? It determines what order particles are evaluated. This means that if you have a CONV(PSCN) with an ID less than BTRY, the CONV(PSCN) will do whatever it needs to do (like convert its neighbours into PSCN) before the BTRY does its job (send sparks to conductors).
One more thing: powered materials (materials that need electricity to do their job, like ARAY, DRAY, PSTN, etc.) check their neighbours for spark with a life of 3. life???? Life is a property of all particles on screen. It is simply a number. When you put a spark on a pixel of METL, on the first frame its life is 4, then the next frame 3, then 2, and so on. The way conductors work (in tpt of course) is that you spark them, the conductor becomes a SPRK whose ctype is the conductor, the life of the SPRK decreases frame-by-frame starting from 4. When the life reaches 0, the SPRK then turns back into the original conductor, then the conductor's life decreases frame-by-frame starting from 4. Something that supplies constant sparks like BTRY has to wait for the conductor's life to reach 0 to give it a new spark, so this means that if you have a BTRY next to a conductor, the BTRY supplies a spark to it every 8 frames in total. Solid spark takes advantage of the fact that something like CONV(PSCN) can 'reset' a conductor to 0 life every frame, so you don't have to wait 8 frames for that!
OK, now that you are armed with this knowledge, let's explore subframe PSTN. The way it works is that first, the PSTN checks for SPRK with a life of 3. Then, CONV(PSCN) resets the life of the PSCN/SPRK to 0. Finally, the BTRY supplies a spark to the PSCN. So using the words highlighted with bold, we get this order:
PSTN -> CONV(PSCN) -> BTRY.
The PSCN can be kinda anywhere as long as it's touching the CONV(PSCN) and the BTRY can send sparks to it. So how do we get things to be in this order? Predictable particle IDs! Remember when I said that when you reload a save, particle IDs are assigned left to right, top to bottom? And how if a particle has a lower ID than another then it gets evaluated before that other particle? This means you can get a particle to have a lower ID than another by placing it either somewhere to the left of it, above it, or a combination of both left and above (diagonal). If you've successfully digested all this information, check out the save attached below and if it still doesn't make sense to you why it's arranged like that, PM me.
WAIT, one more thing, lol. You don't want the BTRY or PSTN to be touching the CONV(PSCN), or else the CONV(PSCN) will turn them into PSCN!!
thanks for that um....essay ive cracked it now
Also will it work with things like cray and tesc
It can work with any powered material (cray is a powered material) and you can create solid spark on TESC, but the TESC doesn't produce lightning