Powder toy Mod changes

  • Redtiger46
    15th Mar 2013 Member 1 Permalink

    I opened this thread because I would like to see a change in how you can Mod the powder toy without being so  "complicated". The point I am tying to make is, do like WxSand does, and reads txt files so that the mod will always work without haveing compileing errors. but  you must still have rich enough format to make the elements look "Realistic". 

     

    Edit: This probobly can never happen but it would be alot easer to some people

     

    Also Devs please post your thoughts

     

     

  • jacob1
    15th Mar 2013 Developer 0 Permalink
    this is why we have the lua console, you create simple lua scripts to make new elements do things. You have to learn lua, but really it's just like learning whatever scripting format that other game uses (actually i've never used that game, so I don't know). Lua doesn't involve the complicated steps of compiling, and anyone can do it and run the scripts without downloading a separate program.
  • firefreak11
    15th Mar 2013 Member 0 Permalink

    I would rather do it in C like it is the official game, and it puts it all together nicely in one exe file, and static compiling lets you do that without all the complicated dll stuff.

  • Redtiger46
    19th Mar 2013 Member 0 Permalink

    What I am saying is, that it reads rich text format 

     

    For example here is the default physics file of the game 

     

    #wxSand: Owen Piette's Falling Sand Game
    #Version 4.4, File subversion 2
    #element element r g b gravity slip density conductivity visible
    #self probabilityOfChanging element [probabilityOfChangingIntoThisElement element] [...]
    #hotself tempAtWhichThisElementSelfProbabilityStartsToIncreaseTo100 element
    #hotcolor element r g b
    #neighbor probabilityOfReacting element1 element2 [probabilityOfChangingIntoTheseElements element1 element2] [...]
    #hotneighbor tempAtWhichThisElementSelfProbabilityStartsToIncreaseTo100 element1 element2
    #explosion neighbor1 neighbor2 xspeed<255 yspeed<255
    #pexplosion neighbor1 neighbor2 diameter element

    group Waters Water Steam Saltwater Spout
    group Fires Fire Torch TNT Ember FallingEmber
    sources Sand Water Salt Oil

    #Erases.
    element Empty 0 0 0 0.000000 1.000000 0.000000 0.000000 1
    #Eraser element.
    element Drain 10 10 10 0.000000 1.000000 0.000000 0.000000 1
    neighbor 1.0 Drain Water 1.0 Drain Empty
    neighbor 1.0 Drain Dust 1.0 Drain Empty
    neighbor 1.0 Drain Oil 1.0 Drain Empty
    neighbor 1.0 Drain Steam 1.0 Drain Empty
    neighbor 1.0 Drain Sand 1.0 Drain Empty
    neighbor 1.0 Drain Salt 1.0 Drain Empty
    neighbor 1.0 Drain Saltwater 1.0 Drain Empty
    neighbor 1.0 Drain MoltenCera 1.0 Drain Empty
    neighbor 1.0 Drain FallingEmber 1.0 Drain Empty
    neighbor 1.0 Drain ExplodingTNT 1.0 Drain Empty
    #A solid element which reacts with nothing.
    element Wall 128 128 128 0.000000 0.000000 1.000000 0.500000 1
    hotcolor Wall 255 0 0
    #Does nothing. Useful for explosion aftermaths
    element Dust 128 128 128 0.900000 0.000000 1.000000 0.500000 1
    #Burns other elements. Source of energy.
    element Fire 247 63 63 -1.000000 1.000000 0.000000 1.100000 1
    self 0.050000 Fire 1.0000 Empty
    hotcolor Fire 255 63 63
    neighbor 0.9 Fire Water 1.0 Empty Steam
    neighbor 0.75 Fire Oil 1.0 Fire Fire
    neighbor 1.0 Fire Plant 1.0 Fire Fire
    neighbor 0.005 Fire Cera 1.0 MoltenCera Ember
    neighbor 0.9 Fire TNT 1.0 ExplodingTNT Fire
    explosion Fire Oil 10 10
    explosion Fire TNT 100 100
    #Explodes
    element TNT 50 50 50 0.000000 0.000000 1.000000 0.000000 1
    #Explodes
    element ExplodingTNT 100 50 50 0.900000 1.000000 1.000000 0.000000 0
    self 0.02000 ExplodingTNT 1.0000 Fire
    neighbor 0.9 ExplodingTNT TNT 1.0 ExplodingTNT ExplodingTNT
    neighbor 1.0 ExplodingTNT Wall 1.0 ExplodingTNT Dust
    explosion ExplodingTNT TNT 100 100
    #Dissolves other elements. Turns to steam when heated.
    element Water 32 32 255 0.700000 1.000000 0.500000 0.400000 1
    hotcolor Water 200 200 255
    self 0.001 Water 1.0 Steam
    hotself 50 Water
    #Grows in water.
    element Plant 32 204 32 0.000000 0.000000 1.000000 0.000000 1
    neighbor 0.2 Plant Water 1.0 Plant Plant
    #Inert.
    element Sand 238 204 128 0.900000 0.500000 0.900000 0.000000 1
    #Source of water.
    element Spout 10 100 10 0.000000 0.000000 1.000000 0.000000 1
    neighbor 0.75 Spout Empty 1.0 Spout Water
    neighbor 0.5 Spout Sand 1.0 Empty Empty
    #Wax. Melts.
    element Cera 238 221 204 0.000000 0.000000 1.000000 0.000000 1
    #Destroys almost everything.
    element ??? 231 7 231 0.000000 1.000000 1.000000 0.000000 1
    self 0.100000 ??? 1.0000 Leftover???
    neighbor 1.0 ??? Empty 1.0 ??? ???
    neighbor 1.0 ??? Wall 1.0 ??? ???
    neighbor 1.0 ??? Fire 1.0 ??? ???
    neighbor 1.0 ??? Water 1.0 ??? ???
    neighbor 1.0 ??? Sand 1.0 ??? ???
    neighbor 1.0 ??? Spout 1.0 ??? ???
    neighbor 1.0 ??? Cera 1.0 ??? ???
    neighbor 1.0 ??? Oil 1.0 ??? ???
    neighbor 1.0 ??? Salt 1.0 ??? ???
    neighbor 1.0 ??? Ember 1.0 ??? ???
    neighbor 1.0 ??? MoltenCera 1.0 ??? ???
    neighbor 1.0 ??? Steam 1.0 ??? ???
    neighbor 1.0 ??? Saltwater 1.0 ??? ???
    neighbor 1.0 ??? Torch 1.0 ??? ???
    neighbor 0.2 ??? Leftover??? 1.0 Leftover??? Leftover???
    #Burns.
    element Oil 128 64 64 0.700000 1.000000 0.200000 0.000000 1
    #Soluable in water.
    element Salt 255 255 255 0.900000 0.400000 0.900000 0.000000 1
    #Burns for a little while.
    element Ember 200 50 50 0.000000 0.200000 1.000000 0.000000 1
    self 0.002000 Ember 1.0000 Fire
    neighbor 0.2 Ember Empty 1.0 Ember Fire
    neighbor 0.9 Ember Water 1.0 Empty Steam
    neighbor 0.75 Ember Oil 1.0 Ember Fire
    neighbor 1.0 Ember Plant 1.0 Ember Fire
    neighbor 0.005 Ember Cera 1.0 MoltenCera Ember
    #Burns for a little while.
    element FallingEmber 200 50 50 1.000000 0.200000 1.000000 0.000000 1
    self 0.002000 FallingEmber 1.0000 Fire
    neighbor 0.2 FallingEmber Empty 1.0 FallingEmber Fire
    neighbor 0.9 FallingEmber Water 1.0 Empty Steam
    neighbor 1.0 FallingEmber Oil 1.0 FallingEmber FallingEmber
    neighbor 1.0 FallingEmber Plant 1.0 FallingEmber Fire
    neighbor 0.005 FallingEmber Cera 1.0 MoltenCera Ember
    #Flowing cera. Will harden eventually.
    element MoltenCera 255 220 200 0.800000 1.000000 1.000000 0.000000 0
    neighbor 0.01 MoltenCera Wall 1.0 Cera Wall
    neighbor 0.01 MoltenCera Water 1.0 Cera Water
    neighbor 0.01 MoltenCera Sand 1.0 Cera Sand
    neighbor 0.01 MoltenCera Spout 1.0 Cera Spout
    neighbor 0.01 MoltenCera Cera 1.0 Cera Cera
    neighbor 0.01 MoltenCera Oil 1.0 Cera Oil
    neighbor 0.01 MoltenCera Salt 1.0 Cera Salt
    neighbor 0.01 MoltenCera Saltwater 1.0 Cera Saltwater
    #Will eventually condense.
    element Steam 85 85 255 -1.000000 1.000000 0.010000 0.000000 1
    self 0.001000 Steam 1.0000 Water
    #Salt will slowly come out of solution.
    element Saltwater 0 0 150 0.700000 0.000000 0.500000 0.600000 1
    self 0.00001 Saltwater 0.5 Water 0.5 Salt
    neighbor 0.004 Water Salt 1.0 Saltwater Saltwater
    neighbor 0.001 Saltwater Saltwater 1.0 Salt Steam
    neighbor 0.04 Saltwater Water 1.0 Water Saltwater
    neighbor 0.9 Saltwater Fire 1.0 Salt Steam
    hotneighbor 50 Saltwater Saltwater
    #Continuous fire.
    element Torch 100 0 0 0.000000 1.000000 1.000000 1.000000 1
    neighbor 0.2 Torch Empty 1.0 Torch Fire
    neighbor 0.2 Torch Water 1.0 Torch Steam
    neighbor 0.2 Torch Saltwater 0.5 Torch Steam 0.5 Torch Salt
    neighbor 0.2 Torch Oil 1.0 Torch Fire
    neighbor 0.2 Torch Plant 1.0 Torch Fire
    neighbor 0.2 Torch Cera 1.0 Torch MoltenCera
    #A helper element.
    element Leftover??? 200 0 0 0.000000 0.000000 1.000000 0.000000 0
    self 0.005000 Leftover??? 1.0000 Empty
    self 0.000001 Plant 1.0 Flower

    element FlowerPetalUncolored 255 255 255 0.000000 0.000000 1.000000 0.000000 0
    self 0.0001 FlowerPetalUncolored 0.33 FlowerPetalRed 0.33 FlowerPetalGreen 0.34 FlowerPetalBlue
    element FlowerPetalRed 208 108 108 0.000000 0.000000 1.000000 0.000000 0
    neighbor 1.0 FlowerPetalUncolored FlowerPetalRed 1.0 FlowerPetalRed FlowerPetalRed
    neighbor 1.0 Fire FlowerPetalRed 1.0 Fire Fire

    element FlowerPetalGreen 108 208 108 0.000000 0.000000 1.000000 0.000000 0
    neighbor 1.0 FlowerPetalUncolored FlowerPetalGreen 1.0 FlowerPetalGreen FlowerPetalGreen
    neighbor 1.0 Fire FlowerPetalGreen 1.0 Fire Fire

    element FlowerPetalBlue 108 108 208 0.000000 0.000000 1.000000 0.000000 0
    neighbor 1.0 FlowerPetalUncolored FlowerPetalBlue 1.0 FlowerPetalBlue FlowerPetalBlue
    neighbor 1.0 Fire FlowerPetalBlue 1.0 Fire Fire

    element FlowerBorderUncolored 255 255 255 0.000000 0.000000 1.000000 0.000000 0
    neighbor 1.0 Fire FlowerBorderUncolored 1.0 Fire Fire

    #A pretty flower
    item Flower 1
    FlowerBorderUncolored . FlowerPetalUncolored +
    " .......... .... ",
    " ..++++++......... ",
    " ...+++++++..+++... ",
    " ...++++++..++++... ",
    " ........+++++..+++++.. ",
    " ..++++..++++++++++++.. ",
    " .+++++++++++++++++... ",
    " .++++++++++++++++... ",
    " .++++++++++++++.... ",
    " .....++++++++++... ",
    " .....+++++++++..... ",
    " ...+++++++++++++++.... ",
    " ..++++++++++++++++++...",
    " ..+++++++++++++++++++..",
    " ..+++++++++++++++++++..",
    " ..+++.+++++++..++++++..",
    " ......+++++++....+.....",
    " .....++++++.. ....... ",
    " ..++++... ",
    " ........ ",
    " .... ",

  • jacob1
    19th Mar 2013 Developer 0 Permalink
    @Redtiger46 (View Post)
    tpt has a much, much simpler way of doing that, which is lua like I said. You have to learn a few basics, but you can probably do whatever that one does in a much simpler way. Lua code is much more readable than what that is. There is a little tutorial in the wiki, and some information in a few other places too on how to do it. Or you could look at examples of how other people have done it.
  • Redtiger46
    19th Mar 2013 Member 0 Permalink

    but how do you acces lua in game is it the same thing as the console or what

  • TPTROXRLYITSTRUE
    19th Mar 2013 Banned 0 Permalink
    This post is hidden because the user is banned
  • boxmein
    19th Mar 2013 Former Staff 0 Permalink
    @Redtiger46 (View Post)
    That's why the old console commands need a !.
    Also writing a backbone to even read all those configurations each time the game opens up makes the game much slower and creates unnecessary loading time for when you open up TPT.
  • Redtiger46
    23rd Mar 2013 Member 0 Permalink

    @boxmein (View Post)

     Actualy I have found my Computer to run it almost 3X faster than TPT.

  • boxmein
    23rd Mar 2013 Former Staff 1 Permalink
    @Redtiger46 (View Post)
    Yet do you have a clue how much faster wxSand would run when its entire code was compiled ahead of time instead of having to read through every file each time it launches? The fact that it runs faster than TPT is no indicator that the tactic they're using is faster than using machine code. They may have less elements and features,...
    Also, the very code below shows how ridiculous it can get.
    #hotneighbor tempAtWhichThisElementSelfProbabilityStartsToIncreaseTo100 element1 element2
Locked by jacob1: lock. deleting threads cause bugs, and someone might want to see this later