Difference between revisions of "Subframe"

From The Powder Toy
Jump to: navigation, search
(Page about Subframe (work in progress))
 
(Grammar/Spelling/General Looks changes.)
Line 4: Line 4:
  
 
== Particle Order ==
 
== Particle Order ==
Every frame in The Powder Toy all the particles are updated one after another according to their ID.
+
Every frame in The Powder Toy, all the particles are updated one after another according to their ID.
  
When you hover over a particle the ID is visible next to X and Y values but only when the debug HUD (toggle it with "D" key) is enabled.
+
When you hover over a particle with debug mode ("D" key to toggle) the ID is visible next to the X and Y values.
  
 
Every time you load a save all the particles are ordered from left to right and top to bottom.
 
Every time you load a save all the particles are ordered from left to right and top to bottom.
That means they will also be updated in that order. You should always assume that order or your contraptions can break when reloading the save.
+
That means they will also be updated in that order. You should always assume that the order of your contraptions can break when reloading the save.
  
 
[[File:ParticleUpdateOrder.gif]]
 
[[File:ParticleUpdateOrder.gif]]
  
 
== Solid Spark ==
 
== Solid Spark ==
Solid sparks are used to activate other particles like {{MaterialBtn | ARAY}}, {{MaterialBtn | DRAY}}, {{MaterialBtn | CRAY}} etc. every frame. It can bypass the spark cooldown and how spark normally blinks.
+
Solid sparks are used to activate powered materials every frame. It can bypass the spark cooldown (which is why spark blinks).
  
 
[[File:SolidSpark.gif]]
 
[[File:SolidSpark.gif]]
  
 
'''How to build it:'''
 
'''How to build it:'''
 +
 
A solid spark is made using at least 3 particles:  
 
A solid spark is made using at least 3 particles:  
  
 
1. Any element that can be sparked (like {{MaterialBtn | METL}})
 
1. Any element that can be sparked (like {{MaterialBtn | METL}})
  
2. {{MaterialBtn | CONV}} with the CTYPE of the element above
+
2. {{MaterialBtn | CONV}} with the CTYPE of the element above (if you place this while unpaused, it automatically sets the CTYPE, assuming there are no other elements nearby)
  
 
3. {{MaterialBtn | BTRY}} or {{MaterialBtn | CONV}} with CTYPE of {{MaterialBtn | SPRK}}
 
3. {{MaterialBtn | BTRY}} or {{MaterialBtn | CONV}} with CTYPE of {{MaterialBtn | SPRK}}
Line 31: Line 32:
  
 
'''How it works:'''
 
'''How it works:'''
 +
 
In the first frame nothing happens and at the end the 1st particle gets sparked by the 3rd particle.
 
In the first frame nothing happens and at the end the 1st particle gets sparked by the 3rd particle.
  

Revision as of 04:34, 19 November 2023

What's Subframe?

Subframe is a general name for technology that abuses particle update order.

Particle Order

Every frame in The Powder Toy, all the particles are updated one after another according to their ID.

When you hover over a particle with debug mode ("D" key to toggle) the ID is visible next to the X and Y values.

Every time you load a save all the particles are ordered from left to right and top to bottom. That means they will also be updated in that order. You should always assume that the order of your contraptions can break when reloading the save.

ParticleUpdateOrder.gif

Solid Spark

Solid sparks are used to activate powered materials every frame. It can bypass the spark cooldown (which is why spark blinks).

SolidSpark.gif

How to build it:

A solid spark is made using at least 3 particles:

1. Any element that can be sparked (like METL.png)

2. CONV.png with the CTYPE of the element above (if you place this while unpaused, it automatically sets the CTYPE, assuming there are no other elements nearby)

3. BTRY.png or CONV.png with CTYPE of SPRK.png

Their IDs have to be in that order to work

ID of 1 < ID of 2 < ID of 3

How it works:

In the first frame nothing happens and at the end the 1st particle gets sparked by the 3rd particle.

In the second frame:

1st particle (now being a SPRK) life decreases (from 4 to 3) and now can trigger elements like ARAY.png, DRAY.png etc.

2nd particle replaces the sparked 1st particle, so its not sparked anymore.

Now that the 1st particle isn't sparked the 3rd particle can spark it again (thus avoiding the spark cooldown and blinking).

So the 1st particle gets sparked, the spark is replaced, and gets sparked again.


Language: English