FILL - filler block

  • PowderChallenge
    28th Mar 2014 Member 7 Permalink

    Name: FILL

    Full Name: Filler

    Description: Filler is similar to INVS in that it's invisible to most particles, however it is in this state at all times, regardless of temperature or pressure. Filler can be solid to a single element determined by its ctype.

    Why?: When making piston contraptions, it would be nice to have bits and pieces that don't collide with other particles while still providing structure to complex shaped objects you want to move. This would allow for that to happen without needing to apply high pressure, which breaks many fragile materials.

  • minecraft-physics
    29th Mar 2014 Member 0 Permalink

    This would also be good for making a decorative backdrop for saves, if it could be decorated and the saving process tweaked to make sure that layered elements stay in the right quantities.

  • Schicko
    30th Mar 2014 Member 0 Permalink

    Moving lasers would be possible with this. And other possible moving creations that involve photons electrons neutrons and protons.

    Edited once by Schicko. Last: 30th Mar 2014
  • jklujm
    6th Apr 2014 Member 0 Permalink

    I think this would be good for TPT.

  • NF
    6th Apr 2014 Member 0 Permalink
    Brilliant. Just what color would it be?
  • greymatter
    6th Apr 2014 Member 0 Permalink
    @Schicko (View Post)
    Moving lasers are already possible.
    @PowderChallenge (View Post)
    Good idea!
  • belugawhale
    6th Apr 2014 Member 0 Permalink

    I was also thinking of a STRT (strut) element similar to this, although yours is more generic.

  • Amy
    6th Apr 2014 Member 1 Permalink

    If anyone wants, I'd be glad to try to program this for you. (Just post)

  • mniip
    7th Apr 2014 Developer 0 Permalink
    @Amy (View Post)
    I don't think it possible to luascript it.

    The action should happen in particle movement detection code, which is not available for lua modifications.
    Probably somewhere within this block: https://github.com/simtr/The-Powder-Toy/blob/develop/src/simulation/Simulation.cpp#L2085-L2399
  • jacob1
    7th Apr 2014 Developer 0 Permalink
    local fill = elements.allocate("Jacob1", "FILL")
    if fill == -1 then return end
    elements.element(fill, elements.element(elements.DEFAULT_PT_DMND))
    elements.property(fill, "Name", "FILL")
    if tpt.version.jacob1s_mod then
    elements.property(fill, "Description", "Filler, invisible to all particles and can't be destroyed.")
    else
    elements.property(fill, "Description", "Filler, invisible to all particles.")
    end
    elements.property(fill, "Color", 0xFF2020E0)
    for i=1,255 do
    sim.can_move(i,fill,2)
    end


    Really simple code that does this. It is possible to edit what mniip was saying with the new sim.can_move function. But there is one more major problem which is that particles can't move more than two spaces at a time inside of it. This is something that would need to be fixed on the c++ side (and is done with PINV in my mod which is essentially this)
    it's also a subliminal advertisement for my mod