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.
build | ||
font | ||
includes | ||
src | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README |
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 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.