How to make Photon-like Elements?

  • OmegaSupreme
    13th May 2014 Member 1 Permalink

    Using code such as the example below, how would I go about making "Radiation" type elements, as in Photons, Neutrons, Protons and Electrons?

    If possible, please include some helpful code that I could use, and/or make examples from.

    local upquark = elements.allocate("OSCE", "UQRK")
    elements.element(elements.OSCE_PT_UQRK, elements.element(elements.OSCE_PT_UQRK))
    elements.property(elements.OSCE_PT_UQRK, "Name", "UQRK")
    elements.property(elements.OSCE_PT_UQRK, "Description", "UQRK. Up Quark - Elementary Particle.")
    elements.property(elements.OSCE_PT_UQRK, "Colour", 0xFF0000)
    elements.property(elements.OSCE_PT_UQRK, "MenuVisible", 1)
    elements.property(elements.OSCE_PT_UQRK, "MenuSection", 3)
    elements.property(elements.OSCE_PT_UQRK, "Advection", 0)
    elements.property(elements.OSCE_PT_UQRK, "AirDrag", 0)
    elements.property(elements.OSCE_PT_UQRK, "AirLoss", 1.00)
    elements.property(elements.OSCE_PT_UQRK, "Loss", 0)
    elements.property(elements.OSCE_PT_UQRK, "Collision", 0)
    elements.property(elements.OSCE_PT_UQRK, "HeatConduct", 1)
    elements.property(elements.OSCE_PT_UQRK, "Gravity", 0)
    elements.property(elements.OSCE_PT_UQRK, "Diffusion", 0)
    elements.property(elements.OSCE_PT_UQRK, "HotAir", 0)
    elements.property(elements.OSCE_PT_UQRK, "Falldown", 0)
    elements.property(elements.OSCE_PT_UQRK, "Flammable", 0)
    elements.property(elements.OSCE_PT_UQRK, "Explosive", 0)
    elements.property(elements.OSCE_PT_UQRK, "Meltable", 0)
    elements.property(elements.OSCE_PT_UQRK, "Hardness", 0)
    elements.property(elements.OSCE_PT_UQRK, "Weight", 0)
    elements.property(elements.OSCE_PT_UQRK, "Temperature", 273.15)
    elements.property(elements.OSCE_PT_UQRK, "HeatConduct", 255)
    elements.property(elements.OSCE_PT_UQRK, "State", ST_GAS)
    elements.property(elements.OSCE_PT_UQRK, "Properties", TYPE_ENERGY)
    elements.property(elements.OSCE_PT_UQRK, "LowPressure", IPL)
    elements.property(elements.OSCE_PT_UQRK, "LowPressureTransition", NT)
    elements.property(elements.OSCE_PT_UQRK, "HighPressure", IPH)
    elements.property(elements.OSCE_PT_UQRK, "HighPressureTransition", NT)
    elements.property(elements.OSCE_PT_UQRK, "LowTemperature", ITL)
    elements.property(elements.OSCE_PT_UQRK, "LowTemperatureTransition", NT)
    elements.property(elements.OSCE_PT_UQRK, "HighTemperature", ITH)
    elements.property(elements.OSCE_PT_UQRK, "HighTemperatureTransition", NT)

  • CeeJayBee
    13th May 2014 Member 0 Permalink
    I'd take a look at https://github.com/simtr/The-Powder-Toy/blob/master/src/simulation/elements/PHOT.cpp and determine from there what to do. Look specifically at lines 5 - 43 for stuff that can be defined using lua scripting.
     
    Properties = TYPE_ENERGY|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;
    That seems useful

    MenuSection = SC_NUCLEAR;
    That also seems useful

    State = ST_GAS;
    That seems... strange.
     
    Try to replicate the update function, if you can.
    Edited 3 times by CeeJayBee. Last: 13th May 2014
  • OmegaSupreme
    14th May 2014 Member 0 Permalink

    Thanks! I Appreciate your help! I'll try my best and report back the results.