正在重建 /PowderToy/4/189.html ...

Note: "E189" is experimental, and very likely to be changed.
Note: Sorry for bad english.
* Red text = Element's type
* Blue text = Element's property
* Yellow text = Variable
Element number 189 (E189) usage:
  * PHOT can pass through it.
  * C++ identifier: ELEM_MULTIPP, not PT_XXXX
  life =  0: Complete pressure insulator (acts TTAN's .tmp = 0)
  life =  1: Complete pressure insulator (acts TTAN's .tmp = 1)
  life =  2: TRON portal/gate.
  life =  4: Photons laser
  life =  5: Photons direction/velocity changer
    if .tmp = 0, then:
      .tmp2 =  1: beam splitter (multiple functions)
      .tmp2 =  2: photons diode output
      .tmp2 =  7: transition to NEUT
      .tmp2 =  8: transition to ELEC
      .tmp2 =  9: transition to PROT
      .tmp2 = 10: transition to GRVT
      .tmp2 = 19: photons flip-flop switch
      .tmp2 = 20: conditional photon absorber
      .tmp2 = 25: scatters neutrons (range: Semicircle/quadrant)
      .tmp2 = 26: scatters photons (range: circle)
      .tmp2 = 27: photons splitter
    .tmp = 1: set velocity x and y
    .tmp = 2: accelerate velocity x and y
    .tmp = 3: velocity multipler
    .tmp = 4: photons reflector
    .tmp = 5: FILT wavelength changer ray
    .tmp = 6: turns PHOT into E195 (emitting particles)
    .tmp = 7: Lua function call when interact with photons
  life =  6: Heater (not powered material, if heat sim is on)
    * can conduct to HEAC rapidly.
  life =  7: Photons duplicator
  life =  8: More destructive VIBR (stable state)
    * When absorbs enough energy (or DEST), transform to excited state, and breaks activated electronics.
  life =  9: More destructive VIBR (excited state, decays into normal VIBR)
  life = 10: Electronics debugger, or element properties changer.
    .tmp = 0: turn system pause on
    .tmp = 1: turn advanced pause on
    .tmp = 2: enable turns any PHOT into NEUT (when passing through unpressurised INVS)
    .tmp = 3: disable turns any PHOT into NEUT (when passing through unpressurised INVS)
    .tmp = 4: toggle PHOT's slowed down flag
    .tmp = 5: toggle INVS's indestructible flag
    .tmp = 6: toggle PHOT's ignites flammable flag
    .tmp = 7: increment 'sim_max_pressure' by itself .temp
      (e.g. .temp = 4 C -> sim_max_pressure += 0.04.)
      when sparked by INST, increase 'sim_max_pressure' faster 
        (e.g. .temp = 4 C -> sim_max_pressure += 4.)
    .tmp = 8: decrement 'sim_max_pressure' by itself .temp
      (e.g. .temp = 4 C -> sim_max_pressure -= 0.04.)
      when sparked by INST, decrease 'sim_max_pressure' faster
         (e.g. .temp = 4 C -> sim_max_pressure -= 4.)
    .tmp = 9: set 'sim_max_pressure' value
    .tmp = 10: reset 'currentTick' value
      when sparked by INST, recounts any elements.
    .tmp = 11: set .ctype in debug HUD (for element)
      PSCN input: enable function 1
      NSCN input: disable function 1
      INWR input: toggle function 1
      STOR: function 1 = show .ctype as integer
      CRAY: function 1 = show .ctype as wavelengths
      DRAY: function 1 = show .ctype as special case
      e.g. PSCN input + STOR = enable show .ctype as integer
    .tmp = 12: turn system pause off
    .tmp = 13: STKM/STKM2 heal/harm tool
    .tmp = 14: set stickmen's element power, or rocket boots
      .ctype = GOL  (dec:   78) => SPC_AIR
      .ctype = HLIF (dec:  334) => SPC_VAC
      .ctype = ASIM (dec:  590) => SPC_ENABLE_E195
      .ctype = 2x2  (dec:  846) => SPC_DISABLE_E195
      .ctype = DANI (dec: 1102) => SPC_SUSPEND
      .ctype = AMOE (dec: 1358) => SPC_DISABLE_AIR
    .tmp = 15: temporary suspending TPT simulation (unit: ms)
    .tmp = 125: when triggered, clear simulation. include:
      * Particles
      * Air pressure and velocity
      * Ambient heat
      * Newtonian gravity
      * Walls and signs
    .tmp = 126: when SPRKed, fast exit TPT program
    .tmp = 127: reserved by 32-bit debugger (e.g. x32dbg)
    .tmp = 0x100-0x1FF: reserved by Lua and DLL
    if .temp > 1000 C, absorbs PROT
    if .temp < -200 C, clear PROT's .tmp2 = 1 flag.
  life = 11: Photons emitter
    when .tmp2 = 1 and PROT input: turn into PHOT and snap to pixel.
  life = 12: SPRK reflector. Also use by PSTN.
    * When .tmp = 2, also making FILT oscillator,
      or FILT bit shifter.
    * When .tmp = 5, expands single FILT's .ctype
  life = 13: Static decoration particle
    if .tmp2 = 3: use ARAY for decorate. (rewriting .dcolour)
  life = 14: Dynamic decoration particle
  life = 15: PROT reflector. Also allows PHOT.
  life = 16: Some electronics components (include subframe components):
    life = 16, ctype =  0: Logic gates:
      .tmp =  0: input 1 OR input 2
      .tmp =  1: input 1 AND input 2
      .tmp =  2: input 1 AND NOT input 2
      .tmp =  3: input 1 NOR NOT input 2
      .tmp =  4: input 1 XOR input 2
      .tmp =  5: return input 1
      .tmp =  6: return input 2
      .tmp =  7: undefined
      .tmp =  8: input 1 NOR input 2
      .tmp =  9: input 1 NAND input 2
      .tmp = 10: input 1 NAND NOT input 2
      .tmp = 11: input 1 OR NOT input 2
      .tmp = 12: input 1 XNOR input 2
      .tmp = 13: return NOT input 1
      .tmp = 14: return NOT input 2
      .tmp = 15: undefined
      * input 1 = PSCN (.tmp = 0) input
      * input 2 = PSCN (.tmp = 1) input
    life = 16, ctype =  1: Conductor -> insulator counter (.tmp = 0 for insulator)
      Use ARAY for increment .tmp value.
    life = 16, ctype =  2: Insulator -> conductor counter
    life = 16, ctype =  3: 2-state flip-flop (use .tmp for state number)
    life = 16, ctype =  4: SPRK-dependent virus curer
    life = 16, ctype =  5: Stickmen gate?
    life = 16, ctype =  6: Wire crossing particle
    life = 16, ctype =  7: Acts WireWorld's cross-shape conductor
    life = 16, ctype =  8: Write stickmen's flags (using SPRK)
    life = 16, ctype =  9: Read stickmen's flags (using powered materials: SWCH, LCRY, HSWC. not Metals, etc.)
    life = 16, ctype = 10: 2D duplicator (using SPRK and E189's .life = 17 (with 25))
    life = 16, ctype = 11: Reserved for E189's .life = 24.
    life = 16, ctype = 12: SPRK-dependent randomizer
    life = 16, ctype = 13: NSCN (.tmp = 0 <-> 1) flip-flop
    life = 16, ctype = 14: laser with pass through everything
    life = 16, ctype = 15: SPRK capacitor / multipler
    life = 16, ctype = 16: Sensors inverter switch
    life = 16, ctype = 17: SPRK-dependent FILT incrementer
      PSCN input: increment by 1
      NSCN input: decrement by 1
      INST input: rotate-left by 1
      INWR input: rotate-right by 1
      PTCT input: increment reversed int
      NTCT input: decrement reversed int
    life = 16, ctype = 18: SPRK-dependent FILT incrementer, or pumps .temp changer
      PSCN input: clear lowest bit
      NSCN input: set lowest bit
      INST input: reversing bits
      INWR input: toggle lowest bit
      PTCT input: logical shift left by 1
      NTCT input: logical shift right by 1
      this particle + WIFI + FILT: variable WIFI inputs
    life = 16, ctype = 19: Universal SPRK conductor
    life = 16, ctype = 20: Clock generator / phase equalizer
      * When BRAY pass through this, change DLAY's .life to "Clock generator" .tmp2 + 1.
    life = 16, ctype = 21: Subframe SPRK generator/remover, Conditions:
      if .temp < 0 C then remove active sparks;
      if .temp > ~100 C then set SPRK's .life = 3;
      otherwise, set SPRK's .life = 4;
    life = 16, ctype = 22: custom GOL type changer
      with PSCN input and FILT: set 'live' rule
      with NSCN input and FILT: set 'spawn' rule
      with any input and ACEL: increase custom GOL states
      with any input and DCEL: decrease custom GOL states
      with any input and FRAY: set custom GOL states
      with PSCN input and {DTEC, FILT}: get 'live' rule to FILT
      with NSCN input and {DTEC, FILT}: get 'spawn' rule to FILT
      with any input and {DTEC, FRAY}: get GOL states to FRAY's .tmp
    life = 16, ctype = 23: Powered BTRY / SR flip-flop
      * PSCN activate
      * NSCN deactivate
      * INST toggle
    life = 16, ctype = 24: Shift register (powered)
    life = 16, ctype = 25: Arrow key sensor
    life = 16, ctype = 26: SWCH toggler
    life = 16, ctype = 27: Powered BRAY shifter (red BRAY dependent)
    life = 16, ctype = 28: Edge detector / SPRK signal lengthener
      .tmp = 0: positive edge detector
      .tmp = 1: negative edge detector
      .tmp = 2: signal lengthener
      .tmp = 3: signal shortener
      .tmp = 4: double edge detector
      .tmp = 5: single SPRK detector
    life = 16, ctype = 29: Destroying FILT
      .tmp = How much space to leave before?
      .tmp2 = 'range' of 'deleting' beam
      * Also "scattering" PHOT without changing velocity.
    life = 16, ctype = 30: Checking simulation options, .tmp =
         0: "Sand effect" option
         1: "Draw gravity field" option
         2: "Draw decorations" option
         3: "Newtonian Gravity" option
         4: "Ambient heat" option
         5: "Heat simulation" option
         6: "Water equalization" option
         7: "Air updating" option
         8: "Air velocity" option
         9: "Air pressure" option
        10: "Vertical gravity" option
        11: "Radial gravity" option
        12: DLL exception flag
      0x80 mask = inverted flag
    life = 16, ctype = 31+: Undefined behavior in TPT
  life = 17: PHOT diode, absorbs E195
  life = 18: Decoration particle (.ctype = Red, .tmp = Green, .tmp2 = Blue)
  life = 19: Inverter input (unused)
    Use for (E189's .life = 16 .ctype = 1) modifier
  life = 20: Single particle emitter
    .ctype = new particle's type
      if (.ctype = FIRE) or (.ctype = PLSM), then set off flammable and explosives.
    .tmp = new particle's velocity (force)
    BRAY can be recolored passing through this.
  life = 21: MERC/DEUT/YEST expander, or SPNG "water releaser", or BTRY-based water splitter
    * when another particle is E189 (life = 38, ctype = RFRG), can making RFRG
  life = 22: Solid for allows/blocks enengy particles
    * (.tmp & 0x01): allows NEUT.
    * (.tmp & 0x02): allows ELEC.
    * when .tmp = 0x08, stops NEUT.
    * when .tmp = 0x10, condition:
      .temp < 7727 C, turns NEUT into PROT + scattered ELEC.
      .temp at 8000-9000 C: partial absorbs NEUT.
      .temp > 9000 C: absorbs all NEUT.
    * when .tmp = 0x18, it's reusable NEUT-breeding material.
      Also checking excessive dense NEUT
    * when .tmp = 0x20, slowing down NEUT (velocity), but it doesn't break under pressure.
  life = 23: Stickmen's jumper
  life = 24: Moving DRAY (duplicator ray) particle
  life = 25: Extension for E189's .life = 16 AND .tmp = 10
  life = 26: Button. Can be sparked just by clicking on it.
  life = 27: Stickmen's element power changer
  life = 28: ARAY/BRAY reflector
    .tmp = 8: Heats the front's ARAY/CRAY by it's .tmp2
    .tmp = 9: Cools the front's ARAY/CRAY by it's .tmp2
  life = 29: TRON emitter
  life = 30: TRON filter
  life = 31: TRON delayer
  life = 32: ARAY/BRAY property changer
    .tmp2 = 7: Remove front particle's spark/electricity
  life = 33: Second Wi-Fi. Has .temp and .ctype dependent channels.
  life = 34: Sub-frame filter incrementer or PHOT portal IN
  life = 35: CRAY/DRAY/RAYT's .ctype rewriter
  life = 36: show/hide .tmp2 in debug HUD (for element)
    PSCN input: show .tmp2
    NSCN input: hide .tmp2
    INWR input: toggle .tmp2's visibility
  life = 37: Particle form of Langton's ant, rule:
    NONE = state 0 particle
    INWR = state 1 particle
    .ctype = new particle's .dcolour
    .tmp = ant's state and direction
    .tmp2 = ant's rule number
  life = 38: Particle transfer medium (with diffusion)
    Can absorbs water from SPNG/GEL
  life = 39: Marked particle
    .ctype = marked particle's type
  life = 40: Particle with using Lua update function
  life = 41+: Reserved by Lua