I was thinkingthat it'd be really useful if there was an Electronic Element that transfers sparks to a different metal each spark before repeating. I'll try to explain it the best I can.
Element Symbol: AMTC
Full Name: Alternating Metal Transfers Current
Element Description: Transfers current to it's 1st ctype when sparked once, then to it's second when sparked again.
Element Class: Sensor
Element Color: Red (When transfering spark to 1st ctype), Blue (When transfering spark to 2nd ctype), and Yellow (When transfering spark to it's 3rd ctype).
Element Type: Solid
Heat Conductivity: 0 (when "TMP" is "0"), 10 (when "TMP" is "1")
Element Temperature: 0.00C
Hot Temperature: 800.0C
Hot Temperature Transition: None (When "TMP" is "0"), LAVA (When "TMP" is "1" and temperature is met.)
High Pressure: 150.00 (When "TMP" is "1")
High Pressure Transition: BMTL (When "TMP" is "1")
OTHER INFO: If "TMP" is "2", it can transfer SPRK to the permitted element across a 1 pixel gap, and WILL NOT CONDUCT HEAT OR MELT.
If "TMP" is "3", it can transfer SPRK to the permitted element across a 1 pixel gap, and WILL CONDUCT HEAT AND MELT.
If "TMP" is "4", it can transfer SPRK to the permitted element across a 2 pixel gap, and WILL NOT CONDUCT HEAT OR MELT.
If "TMP" is "5", is can transfer SPRK to the permitted element across a 2 pixel gap, and WILL CONDUCT HEAT AND MELT.
"TMP2" will determine the Order in which it conducts, starting with "0" as the first "conductee"
I decided to add in the idea of using "TMP" value to determine if they conduct heat and if they transition. "0" is "False" while "1" is "True". This is so people that like creating destroyable stuff can have an option too, BUT ONLY IF IT'S POSSIBLE using "TMP".
HOW THE ELEMENT WILL WORK
First, the user pauses the simulation, then places AMTC. (Skip setting the 1st "TMP2", as it will be "0" by default). (The user then sets the "TMP" of AMTC from "0 to 5", depending on what they want. If not, leave as is if not). Then the user clicks on the 1st Desired Element, and set that as the AMTC's 1st "ctype".
Second, the user then set's the "TMP2" of the AMTC to "1"(and set the 2nd "ctype" and" TMP" to "()" and "0", respectively). The user then sets the "ctype" to the desired element, as well as setting the "TMP" the desired number. Then the user sets the 2nd "ctype" of AMTC.
Repeat for the 3rd and 4th ctypes if desired.
Once sparked, AMTC will transfer SPRK to its 1st ctype, before changing it's ctype to the 2nd. If sparked again, it will transfer SPRK to it's 2nd ctype, before switching to its 3rd, exc. After the 4th spark, its ctype will change back to the 1st ctype, repeating the cycle.
The "Life" between transfering sparks will be 0, so that adjacent allowed elements (either up, down, left, right, or elements positioned 2 pixels away in the 4 diagonal directions) can recieve SPRK without delay.
It can recieve SPRK from ALL CONDUCTIVE ELEMENTS, but will only Transfer SPRK to up to 4 Elements (one for each direction, up, down, left, and right).
This element could pave way to smaller electronic gadgets and even cooler creations. It can certainly help me out with 2 of my latest creations in the works.
I'm sorry for making it so long, but I'd appreciate the read and please feel free add comments and ask questions. I would program it myself, but I'm a novice at this type of stuff. :D
good job at explaining it :P that is so much confusing
if you are smart enough you maybe(6%)can do all of that without that element
and what is the possibilities that you can do with that ?
Could you perhaps explain this in terms of what it does, not how you want it to function in terms of use of values like tmp/tmp2/ctype? I'm finding it difficult to understand. Is this a bit like a demultiplexer (a thing that passes an input spark to one of several outputs) where the selected output changes each time the input is sparked?
There is only one ctype for each particle. Each particle has a fixed amount of memory where data about the particle is stored. One part of this memory is called ctype, and it can store a single 32 bit integer. And no, I don't wish to pack four 8 bit element IDs into that because that would be messy, would be an obstacle to raising the limit on the number of elements, and they would be difficult to set using the console or PROP tool.
Whilst element properties such as heat conductivity that change based on particle properties are possible in theory, they are a pain to implement and are likely to be confusing to use (if the 'destroyable' status cannot be determined from element graphics or by the name of the element). If there needs to be a destroyable version, it's much simpler to just make it a separate element.
I am confused by: 'The "Life" between transfering sparks will be 0, so that adjacent allowed elements can recieve SPRK without delay.' Does that mean, for example, that if AMTC receives an input and sparks output 1 in response, it can receive another input and spark output 2 on the next frame? If so, what stops it from detecting output 1 as an input on the next frame? What happens if there are 2 'input' sparks in a single frame?
I am also confused by 'adjacent allowed elements (either up, down, left, right, or elements positioned 2 pixels away in the 4 diagonal directions) can recieve SPRK'
which seems to conflict with the next sentence:
'will only Transfer SPRK to up to 4 Elements (one for each direction, up, down, left, and right)'
Exactly where particles must be positioned in order for this element to conduct to them?
Why is a variable transfer gap needed?
And finally, can you give specific details of how this would be useful?
Personally I don't much like the idea of elements that need people to use PROP or console to configure them. It makes them complicated to learn and to use. But let's see whether this suggestion really does need to be that complicated...
(The only existing element I can immediately think of that does need PROP/console is FILT, but that at least does something useful as soon as you draw it (PROP/console only needed for advanced modes), and if I could think of a convenient way of setting FILT mode that I could add without having to touch the GUI code too much, then I'd add it. Edit: there are probably a few small hidden features which most people never use for which PROP/console is helpful too, like zero life photons)
I agree with Jackson it's very confusing and i think all you want are some flip-flops, so here are some flip-flops;
Jackson - Your description is exactly right. also, to eliminate a magority of the coding problem, maybe it could be limited to just 2 elements.
PS: I'll post a private save describing in Pictographs how the element will work and be useful.