Written in C++ and using SDL, The Powder Toy is a desktop version of the classic 'falling sand' physics sandbox, it simulates air pressure and velocity as well as heat.
Go to file
Jacob1 be2fe943c0 Prevent accidental infinite loops in lua
Also fix glitch when step_functions[0] is unregistered but others aren't
2012-05-23 20:08:53 -04:00
build Remove Python console stuff 2011-10-26 14:50:50 +01:00
font Font editor makefile for Windows 2012-01-31 12:35:18 +00:00
includes Prevent accidental infinite loops in lua 2012-05-23 20:08:53 -04:00
src Prevent accidental infinite loops in lua 2012-05-23 20:08:53 -04:00
.gitignore Prevent accidental infinite loops in lua 2012-05-23 20:08:53 -04:00
LICENSE Change license from GPLv2+ to GPLv3+ 2012-05-06 02:20:57 +01:00
Makefile Compiler flag for gravity.c, to fix FFTW crash due to misaligned stack on Windows 2012-01-15 06:26:26 +08:00
README Updated README 2012-04-03 23:59:37 +01:00

The Powder Toy - October 2011

Get latest version here:  http://powdertoy.co.uk/Download.html


To use online features such as saving, you need to register at: http://powdertoy.co.uk/Register.html


Thanks:

---------------------------------------------------------------------------

Stanislaw K Skowronek - Designed the original
Simon Robertshaw
Skresanov Savely
cracker64
Bryan Hoyle
Nathan Cousins
jacksonmj
Lieuwe Mosch
Anthony Boot
Matthew Miller

Instructions:

---------------------------------------------------------------------------

Click on the elements with the mouse and draw in the field, like in MS Paint. The rest of the game is learning what happens next.



Controls:

---------------------------------------------------------------------------

Caps Lock 	Specific Element Erase
Insert 	Replace mode
TAB 		Switch between circle/square/triangle brush
Space 	Pause
Q 		Quit
Esc 		Quit
Z 		Zoom
S 		Save stamp (+ Ctrl when STK2 is out)
L 		Load last saved stamp
K 		Stamp library
C 		Cycle view mode
1-9 		Set view mode
P 		Save screenshot to .ppm
F 		Pause and go to next frame
G 		Grid
H 		Show/Hide HUD
Ctrl + H	Show intro text
F1		Show intro text
D 		Debug mode (+ Shift when STK2 is out)
I 		Invert Pressure and Velocity map
T 		Vine mode
W 		Toggle gravity modes (+ Ctrl when STK2 is out)
Y		Toggle air modes
R 		Reset LIFE generation
N		"Sand effect" for drawing powders
B		Decoration editor
Ctrl + B	Toggle decorations on/off
U		Toggle ambient heat on/off
M		switch left and right selected elements
N		Toggle pretty powders
Ctrl + I	Install powder toy for loading saves/stamps by double clicking
~ 		Console
= 		Reset pressure and velocity map
[ 		Decrease brush size
] 		Increase brush size
Alt + [	Decrease brush size by 1
Alt + ]	Increase brush size by 1

Ctrl + C/V/X 			Copy/Paste/Cut
Ctrl + Z 				Undo
Ctrl + Cursor drag 		Rectangle
Shift + Cursor drag 		Line
MMB / Alt + LMB click 	Sample element
Mouse scroll 			Change brush size
Ctrl + Mouse scroll 		Change vertical brush size
Shift + Mouse scroll 		Change horizontal brush size
Shift + Ctrl + R 		Horizontal mirror for selected area
Ctrl + R 				Rotate selected area counterclockwise
Ctrl + Left Alt			Select element for Specific Element erase
Ctrl + = 				Reset Electricity


Command Line:

---------------------------------------------------------------------------

scale:1 - Normal window resolution
scale:2 - Doubled window resolution
kiosk -   Fullscreen mode
proxy:<server>:<port> (ie, proxy:wwwcache.lancs.ac.uk:8080)
open <file> - Opens the file as a stamp or game save
ddir <directory> - Directory used for saving stamps and preferences
nohud - disables the hud
sound - enable sound to be played from console
scripts - enable scripts to be run from old console

History:

---------------------------------------------------------------------------
* Version 74.1
      o Icon for Force Elements
	  o Allow DEST to be used with clone elements.
* Version 74.0
      o Fixes for Triangle brush and minor electron bug
      o Debug lines for WiFi, Portal and Soap
      o Fusion for H2 at high temperature+high pressure
      o Ambient heat and Newtonian Gravity in Quick Options menu.
      o Smudge tool
      o Speed improvements for particle drawing
* Version 73.0
      o New elements: FRAY - Similar to ARAY but applies force, RPEL - Attract and repel particles
      o DEUT can be compressed by gravitational fields
      o Fix for "bumpy" streams of photons coming from PCLN
      o Lua methods for writing and reading the bmap and emap
* Version 72.0
      o More consistent spark speed (possibly affects existing circuits)
      o BRAY fire speed (Only shoots once per spark)
      o DLAY blocked by INSL
      o WIFI will always take one frame to transmit SPRK
      o Ambient heat blocked by walls.
*  Version 71.3
      o OPS format fixes
      o Figh drawn correctly in stamps
* Version 71.2
      o Enable use of caching server to improve performance or thumbnail retrieval
* Version 71.1
      o Fixes to OPS format
      o Fix issue where LRBD/RBDM isn't ignited by WATR
      o Fix crash on rotating a stamp with walls as wide as the window
      o Fix Invisible photons
      o Fix bug where WARP+SING destroys DMND
      o Fix issue where Lua can't create photons in glass
* Version 71.0
      o Update can_move, recount menu items, and clear graphics cache when tpt.el is changed
      o Fix creation of invalid sign walls
      o Added OPS format, disabled and not used
* Version 70.1
      o Support element names and hex constants in PROP tool
      o Fix TNT bug
      o Fix crash in clear_sim if gravity is not initialized
* Version 70.0
      o New element: ignition cord
      o Stickmen and fighter fixes
      o Fixed WIRE graphics
      o New elements: ACEL and DCEL, accelerate nearby photons
*  Version 69.1
      o New Lua API features, ability to edit particle properties from tpt.el... array, particles are exposed as an array now
*  Version 69.0
      o New element: TNT
      o Bug fix for LCRY and ELEC
      o Restore old LCRY/DECO rendering
      o Fix display modes on number hotkeys not saving correctly
*  Version 68.7
      o Additions to Lua API:
              o tpt.el: Table of element types, tpt.el.none = 0, tpt.el.dust = 1, etc.
              o tpt.version: Table of version info, tpt.el.major, minor, build
              o int tpt.element(string name): returns numeric ID of given element name, tpt.element("WATR") = tpt.el.watr
              o tpt.element_func(function func, int element, [boolean replace]) : Sets the update function for a specific element
              o tpt.element_func has the following args: (int index, int x, int y, int surround, int nt)
* Version 68.6
      o Add back number key hotkeys to change display modes
      o Add back blob and heat gradient display
      o Correct icons in render_ui
      o Add back portal effects
* Version 68.5
      o fix decorations
* Version 68.4
      o Stamp browser fixes
      o Remove some stuff from HUD to make it fit
      o Fix grid mode
      o Replace cmode with flexible render options
* Version 68.3
      o Pixel grid and cursor in zoom
* Version 68.1
      o CAUS killes stickmen they can also have gas powers now
      o Fix air inversion
* Version 68.0
      o Decorations appear on gases
      o Stickmen and fighter fixes
      o Fixed WIRE graphics
      o New elements: ACEL and DCEL, accelerate nearby photons
* Version 67.0
      o New element: ELEC
      o Changed now LCRY works
*  Version 66.1
      o Massive overhaul of graphics code, appearance of many elements changed
*  Version 65.5
      o Elements from Maksprog's mod
              o LIGH - Lightning
              o DEST - Variation of BOMB
              o TESC - Tesla coil, creates lightning
              o EMP - Destroys electronic components
      o Fix bug with infinite temperature
      o Fix beta enrolling
      o Add a new mode to filter, subtract (tmp of 3)
      o Quick options menu in top right, can toggle various options quickly
      o Lots and lots of fixes
*  Version 64.3
      o Decoration editor tool menu, with lighten and darken tools
      o Can type in decoration editor color boxes for specific RGB values, hit enter after typing a number to confirm
      o SOAP removes decoration, opposite of BIZR
      o Water equalization, turn on in options menu, or with tpt.watertest()
      o BUBW changes to be more realistic, can explode
      o New element CAUS, an acid like gas, created from ACID+WTRV
      o Can see selected elements from Lua, tpt.selectedl or tpt.selectedr
      o Saved settings are in JSON format, replaces powder.def
      o Can opt in to receive beta updates
      o QRTZ scatters photons.
      o New Tool, PROP, edit properties easily without console.
      o FILT has modes with .tmp (0,1,2). 0 is convert (old method). 1 will filter (only close color can pass). 2 is add color
      o 'Sign out' button in the login menu, instead of submitting blank data
      o Fancy colored powders, hit 'n' to toggle
*  Version 61.2
      o Fixed a Lua mouse event bug
      o Can set decoration layer "dcolour" property
      o Fixed some possible cases where particles disappear randomly
*  Version 61.1
      o Fix some memory leaks
      o STOR will absorb anything when no ctype set, and it's ctype can't be a solid element
*  Version 61.0
      o Added energy only wall (Photons, Neutrons, etc.) as replacement for gas only wall fix
      o STOR will change appearance when it holds a particle
*  Version 60.1
      o Tools menu for AIR, HEAT, COOL, etc.
      o tpt.getscript() to download from official script repository (not used)
      o tpt.setwindowsize(scale,fullscreen) to change scale (1 or 2) and fullscreen (0 or 1)
      o Selection for stamp/copy now by pixel
      o Water puts out fire better
      o New elements: CO2, BUBW, DRIC, STOR, PVOD, CONV
      o Zoom toggle: alt+z
      o BIZR acts as a dye
      o Many other various fixes and improvements
*  Version 57.5
      o Fix Lua keyevent function
*  Version 57.4
      o Fix STKM2 spaz
      o Fix bug where electrode (ETRD) would delete particles in replace mode
*  Version 57.3
      o Fix coal being invisible when first drawn
*  Version 57.2
      o Allow scrolling in the special menu
*  Version 57.1
      o Stops the client launching DDos attack on server when checking for updates
*  Version 57
      o Gravity tools (NGRV and PGRV)
      o Allow reloading of directly opened files
      o Graphical changes to coal
*  Version 56
      o New element: GBMB (gravity bomb), requires newtonian gravity
*  Version 55
      o New element: WIRE
      o Extra line tool info if you type tpt.setdebug(4) into the console
*  Version 53.3
      o New Lua API functions to get keyboard/mouse presses
*  Version 53.1
      o Fix old GOL + clone saves and other life visual imprivements
      o Fancy lensing for mewtonian gravity in fancy (7) display
      o New element: DLAY
      o New Lua API functions from me4502
*  Version 47.3
      o Enhanced visual effects for Portals
      o Glow now has more stimuli (Green: Pressure, Blue: Movement, Red: Heat)
      o Python console (Unavailable in current beta)
      o Fixed issue where you appear to be logged in but aren't.
      o Changes to Quartz (Grows like crystal when exposed to salt water)
      o Singularity explodes upon death
      o Save ID shown after saving and on Open Dialog
      o Rearrangement of some elements (Photons in Radioactive, Thunder in Explosive, etc)
*  Version 46.3
      o Major game engine and performance improvements.
      o New GOL elements.
      o More secure login system
* Version 45.2
      o Important! Fix for Auto-update in Linux.
* Version 45.1
      o Small bugfix for Lava and Portals.
      o Fix crash when 2 of the same stickman are somehow placed.
* Version 45.0
      o Fix bug where description would persist after a reset
      o ARAY now passes through INWR without interracting.
      o INST has been fixed and placed in the Electronics menu
      o Photons turn into neutrons when passing through INVS
      o Other small bug fixes.
* Version 44.7
      o Fix login and dialoq text box issues.
      o Small bugfixes to some elements.
      o Additional 'debug' information.
      o Increase WIFI channels
      o Add missing icons for menus and display modes.
* Version 44.6
      o Fix for brush issues when using small brushes.
      o Pause state saving modifications.
* Version 44.5
      o Fix corruption issues with FAN wall.
* Version 44.4
      o Many new elements from cracker64s mod.
      o Pause state is saved.
      o Particle properties are saved more accurately.
      o Improved search and save viewing, added descriptions and comments.
* Version 42.3
      o Changed internal temperature scale to kelvin.
      o Fixed physics bug with certain powders.
      o Fixed bug when loading saves with stickman in.
      o Added save history, the ability to view previous versions of saves.
* Version 42.0
      o New Elements: Brick, Glow, Diesel, many others.
      o Source code seperation
      o Lots of other stuff that I can't remember.
* Version 41.3
      o Fixes bug where Insulation would burst into flames randomly
      o Moves fancy new effects into a separate colour mode.
* Version 39.0
      o New element: Liquid Crystal
      o New element: Battery
      o New element: Noble Gas
      o Copy, cut and paste
* Version 38.0
      o New element: Nitrogen Ice
      o New element: Electrode (Allows currents to jump)
      o Adds a lock icon to private saves.
      o Binds the '[' and ']' keys to decrease/increase the cursor size for those without scroll wheels.
      o Fixes wall menu issue where walls would be selected by accident.
* Version 37.0
      o New element: Plasma
      o New element: Thunder/Lighting
      o New wall: Allows only gas
      o Fixes HUD bug.
* Version 36.3
      o Introduced public & private saving (more info here)
* Version 36.2
      o Fixes bug where rating would appear as Zero in search.
* Version 36.1
      o Feature: Particle sampling with middle click
      o Feature: Download from website, for information, see the "Announcement" forum section.
* Version 36.0
      o Changes to the menu
      o New elements for electronics
      o New voting system
      o Added functions for moderating
* Version 35.0
      o Added elements: White Hole, Black Hole, Rubidium and Liquid Rubidium
      o Fixed the OSX version
      o Some other bug fixes that I forgot.
* Version 34.0
      o Fixed certain graphical glitches
      o Changed menu categories
      o Increased menu hover size
* Version 33.2
      o Photons can now ignite flammable materials.
      o Distilled water will turn into water on contact with water.
      o Fixes burning broken metal
* Version 34.0 (Beta 6)
      o New element menu layout
      o New element: Liquid Nitrogen
* Version 34.0 (Beta 5)
      o Improvements to stamp browser
      o Added Glyphs for Blob and Heat view
      o Fixed bug that caused a crash on Windows systems when using the wall tool in the window edges.(Fixed more than last time)
      o Decreased/Increased Min/Max Temperatures.
* Version 34.0 (Beta 4)
      o Cool, heat and Air no longer crash upon flood fill
      o Fixed bug that caused a crash on Windows systems when using the wall tool in the window edges.
      o Stamp browser now allows multiple pages.
      o Improved the zoom features, allowing inspection.
      o Modification to temperature simulation, pressure is now taken into account with transitions from liquid to gas and vice-versa
      o Fixed bug where Salt-water would not leave salt upon evaporation
* Version 34.0 (Beta 3)
      o Bug fixes for uranium
      o Fixed bug where extremely hot objects would show as black
      o Fixed but where stamps would not be loaded
* Version 34.0 (Beta 2)
      o Bug fixes
      o Legacy Mode state is now saved and loaded
      o Fix "Cool" and "Heat" when drawing on walls.
      o Air now works.
* Version 34.0 (Beta 1)
      o Bug fixes
      o Legacy Mode (Older saves will load with legacy mode, preserving the functionality of the older powder toy)
      o Heat and Cool elements. (Air is broken until next beta.)
* Version 34.0 (Beta)
      o Heat Simulation (With free bugs and glitches)
      o New Element: Uranium, heats up when pressurised.
      o New button, AIR, provides instant air, the Alt+Click and Middle Click can be used as a shortcut
* Version 33.1
      o Masses of bug fixes
      o Broken metal and breakable metal fixed (conduction)
      o Liquid collisions fixed.
* Version 33.0
      o Added Photons, particles similar to neutrons that travel in straight lines
      o Added destructable metal
      o Fixed a glitch with diamond that would make it appear invisible to air pressure.
* Version 32.0
      o Added Diamond (Thanks to ief014)
      o Fixed packaging errors for the Windows release
* Version 31.0
      o Plutonium more powerful
      o Changes to the handling of lava (Now solidifies into the same material it was melted from).
      o New element: Salt.
      o New element: Salt water
* Version 30.0
      o Added the ability to change the zoom strength
      o Increased the maximum pen size.
      o New element: Concrete, tougher than stone, stackable.
      o New element: Distilled water, similar to water, but doesn't conduct electricity
      o Changed menu layout, walls at the bottom, elements at the top (to allow for more future elements)
      o 32bit colour for Macintosh versions.
* Version 28.4
      o Fixes crash when loading a save with acid.
      o Another tiny change for acid colour in blob mode
* Version 28.3
      o Fixes acid colour in blob mode
      o Fixes blob mode colour on Macintosh and 16bit colour systems
* Version 28.2
      o Quit confirmation dialogue when using the escape key
      o Walls are "blobbed" in Blob view
* Version 28.1
      o Steam rises
      o Acid drastically changed, now dilutes itself when dissolving other particles
* Version 28.0
      o "Yellow wall" bug fix, doesn't absorb particles when placed above another wall type.
      o New wall type added: E-Hole, absorbs particles when unpowered, released them when powered.