Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy

This commit is contained in:
Simon Robertshaw 2013-05-04 14:42:23 +01:00
commit cab667001d
113 changed files with 321 additions and 167 deletions

4
README
View File

@ -1,4 +1,4 @@
The Powder Toy - March 2013
The Powder Toy - May 2013
Get the latest version here: http://powdertoy.co.uk/Download.html
@ -23,11 +23,13 @@ Catelite
Bryan Hoyle
Nathan Cousins
jacksonmj
Felix Wallin
Lieuwe Mosch
Anthony Boot
Matthew Miller
MaksProg
jacob1
mniip
Instructions:

View File

@ -9,18 +9,18 @@ static const char *introTextData =
"Shift+drag will create straight lines of particles.\n"
"Ctrl+drag will result in filled rectangles.\n"
"Ctrl+Shift+click will flood-fill a closed area.\n"
"Ctrl+Z will act as Undo.\n"
"Use the mouse scroll wheel, or '[' and ']', to change the tool size for particles.\n"
"Middle click or Alt+Click to \"sample\" the particles.\n"
"Ctrl+Z will act as Undo.\n"
"\n\boUse 'Z' for a zoom tool. Click to make the drawable zoom window stay around. Use the wheel to change the zoom strength\n"
"The spacebar can be used to pause physics.\n"
"Use 'S' to save parts of the window as 'stamps'.\n"
"'L' will load the most recent stamp, 'K' shows a library of stamps you saved.\n"
"Use the mouse scroll wheel to change the tool size for particles.\n"
"The spacebar can be used to pause physics.\n"
"'P' will take a screenshot and save it into the current directory.\n"
"\n"
"Contributors: \bgStanislaw K Skowronek (\brhttp://powder.unaligned.org\bg, \bbirc.unaligned.org #wtf\bg),\n"
"Contributors: \bgStanislaw K Skowronek (Designed the original Powder Toy),\n"
"\bgSimon Robertshaw, Skresanov Savely, cracker64, Catelite, Bryan Hoyle, Nathan Cousins, jacksonmj,\n"
"\bgLieuwe Mosch, Anthony Boot, Matthew \"me4502\", MaksProg, jacob1\n"
"\bgFelix Wallin, Lieuwe Mosch, Anthony Boot, Matthew \"me4502\", MaksProg, jacob1, mniip\n"
"\n"
"\bgTo use online features such as saving, you need to register at: \brhttp://powdertoy.co.uk/Register.html\n"
"\n"

View File

@ -53,10 +53,6 @@ Atom XA_CLIPBOARD, XA_TARGETS;
char *clipboardText = NULL;
#ifdef WIN
extern "C" IMAGE_DOS_HEADER __ImageBase;
#endif
int desktopWidth = 1280, desktopHeight = 1024;
SDL_Surface * sdl_scrn;
@ -276,8 +272,11 @@ int SDLOpen()
exit(-1);
}
HWND WindowHandle = SysInfo.window;
HICON hIconSmall = (HICON)LoadImage(reinterpret_cast<HMODULE>(&__ImageBase), MAKEINTRESOURCE(101), IMAGE_ICON, 16, 16, LR_SHARED);
HICON hIconBig = (HICON)LoadImage(reinterpret_cast<HMODULE>(&__ImageBase), MAKEINTRESOURCE(101), IMAGE_ICON, 32, 32, LR_SHARED);
// Use GetModuleHandle to get the Exe HMODULE/HINSTANCE
HMODULE hModExe = GetModuleHandle(NULL);
HICON hIconSmall = (HICON)LoadImage(hModExe, MAKEINTRESOURCE(101), IMAGE_ICON, 16, 16, LR_SHARED);
HICON hIconBig = (HICON)LoadImage(hModExe, MAKEINTRESOURCE(101), IMAGE_ICON, 32, 32, LR_SHARED);
SendMessage(WindowHandle, WM_SETICON, ICON_SMALL, (LPARAM)hIconSmall);
SendMessage(WindowHandle, WM_SETICON, ICON_BIG, (LPARAM)hIconBig);
#elif defined(LIN)
@ -543,6 +542,87 @@ int GetModifiers()
return SDL_GetModState();
}
#ifdef WIN
// Returns true if the loaded position was set
// Returns false if something went wrong: SDL_GetWMInfo failed or the loaded position was invalid
bool LoadWindowPosition(int scale)
{
SDL_SysWMinfo sysInfo;
SDL_VERSION(&sysInfo.version);
if (SDL_GetWMInfo(&sysInfo) > 0)
{
int windowW = (XRES + BARSIZE) * scale;
int windowH = (YRES + MENUSIZE) * scale;
int savedWindowX = Client::Ref().GetPrefInteger("WindowX", INT_MAX);
int savedWindowY = Client::Ref().GetPrefInteger("WindowY", INT_MAX);
// Center the window on the primary desktop by default
int newWindowX = (desktopWidth - windowW) / 2;
int newWindowY = (desktopHeight - windowH) / 2;
bool success = false;
if (savedWindowX != INT_MAX && savedWindowY != INT_MAX)
{
POINT windowPoints[] = {
{savedWindowX, savedWindowY}, // Top-left
{savedWindowX + windowW, savedWindowY + windowH} // Bottom-right
};
MONITORINFO monitor;
monitor.cbSize = sizeof(monitor);
if (GetMonitorInfo(MonitorFromPoint(windowPoints[0], MONITOR_DEFAULTTONEAREST), &monitor) != 0)
{
// Only use the saved window position if it lies inside the visible screen
if (PtInRect(&monitor.rcMonitor, windowPoints[0]) && PtInRect(&monitor.rcMonitor, windowPoints[1]))
{
newWindowX = savedWindowX;
newWindowY = savedWindowY;
success = true;
}
else
{
// Center the window on the nearest monitor
newWindowX = monitor.rcMonitor.left + (monitor.rcMonitor.right - monitor.rcMonitor.left - windowW) / 2;
newWindowY = monitor.rcMonitor.top + (monitor.rcMonitor.bottom - monitor.rcMonitor.top - windowH) / 2;
}
}
}
SetWindowPos(sysInfo.window, 0, newWindowX, newWindowY, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
// True if we didn't use the default, i.e. the position was valid
return success;
}
return false;
}
// Returns true if the window position was saved
bool SaveWindowPosition()
{
SDL_SysWMinfo sysInfo;
SDL_VERSION(&sysInfo.version);
if (SDL_GetWMInfo(&sysInfo) > 0)
{
WINDOWPLACEMENT placement;
placement.length = sizeof(placement);
GetWindowPlacement(sysInfo.window, &placement);
Client::Ref().SetPref("WindowX", placement.rcNormalPosition.left);
Client::Ref().SetPref("WindowY", placement.rcNormalPosition.top);
return true;
}
return false;
}
#endif
int main(int argc, char * argv[])
{
currentWidth = XRES+BARSIZE;
@ -602,7 +682,11 @@ int main(int argc, char * argv[])
tempScale = 1;
int sdlStatus = SDLOpen();
#ifdef WIN
LoadWindowPosition(tempScale);
#endif
sdl_scrn = SDLSetScreen(tempScale, tempFullscreen);
#ifdef OGLI
SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1);
//glScaled(2.0f, 2.0f, 1.0f);
@ -734,6 +818,10 @@ int main(int argc, char * argv[])
EngineProcess();
#ifdef WIN
SaveWindowPosition();
#endif
ui::Engine::Ref().CloseWindow();
delete gameController;
delete ui::Engine::Ref().g;

View File

@ -514,7 +514,7 @@ int luacon_keyevent(int key, int modifier, int event)
callret = lua_pcall(l, 4, 1, 0);
if (callret)
{
if (!strcmp(luaL_optstring(l, -1, ""), "Error: Script not responding"))
if (!strcmp(luacon_geterror(), "Error: Script not responding"))
{
ui::Engine::Ref().LastTick(clock());
for(j=i;j<=c-1;j++)
@ -566,7 +566,7 @@ int luacon_mouseevent(int mx, int my, int mb, int event, int mouse_wheel)
callret = lua_pcall(l, 5, 1, 0);
if (callret)
{
if (!strcmp(luaL_optstring(l, -1, ""), "Error: Script not responding"))
if (!strcmp(luacon_geterror(), "Error: Script not responding"))
{
ui::Engine::Ref().LastTick(clock());
for(j=i;j<=c-1;j++)
@ -579,7 +579,7 @@ int luacon_mouseevent(int mx, int my, int mb, int event, int mouse_wheel)
c--;
i--;
}
luacon_ci->Log(CommandInterface::LogError, luaL_optstring(l, -1, ""));
luacon_ci->Log(CommandInterface::LogError, luacon_geterror());
lua_pop(l, 1);
}
else
@ -627,7 +627,7 @@ int luacon_step(int mx, int my, std::string selectl, std::string selectr, std::s
callret = lua_pcall(l, 0, 0, 0);
if (callret)
{
if (!strcmp(luaL_optstring(l, -1, ""), "Error: Script not responding"))
if (!strcmp(luacon_geterror(), "Error: Script not responding"))
{
ui::Engine::Ref().LastTick(clock());
for(j=i;j<=c-1;j++)
@ -640,7 +640,7 @@ int luacon_step(int mx, int my, std::string selectl, std::string selectr, std::s
c--;
i--;
}
luacon_ci->Log(CommandInterface::LogError, luaL_optstring(l, -1, ""));
luacon_ci->Log(CommandInterface::LogError, luacon_geterror());
lua_pop(l, 1);
}
}
@ -664,12 +664,32 @@ void luacon_hook(lua_State * l, lua_Debug * ar)
}
}
char *luacon_geterror(){
char *error = (char*)lua_tostring(luacon_ci->l, -1);
if(error==NULL || !error[0]){
error = "failed to execute";
int luaL_tostring (lua_State *L, int n) {
luaL_checkany(L, n);
switch (lua_type(L, n)) {
case LUA_TNUMBER:
lua_pushstring(L, lua_tostring(L, n));
break;
case LUA_TSTRING:
lua_pushvalue(L, n);
break;
case LUA_TBOOLEAN:
lua_pushstring(L, (lua_toboolean(L, n) ? "true" : "false"));
break;
case LUA_TNIL:
lua_pushliteral(L, "nil");
break;
default:
lua_pushfstring(L, "%s: %p", luaL_typename(L, n), lua_topointer(L, n));
break;
}
return error;
return 1;
}
char *luacon_geterror(){
luaL_tostring(luacon_ci->l, -1);
char* err = (char*)luaL_optstring(luacon_ci->l, -1, "failed to execute");
lua_pop(luacon_ci->l, 1);
return err;
}
/*void luacon_close(){
lua_close(l);
@ -776,7 +796,7 @@ int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS, int i)
callret = lua_pcall(luacon_ci->l, 4, 10, 0);
if (callret)
{
luacon_ci->Log(CommandInterface::LogError, luaL_optstring(luacon_ci->l, -1, ""));
luacon_ci->Log(CommandInterface::LogError, luacon_geterror());
lua_pop(luacon_ci->l, 1);
}
else
@ -923,27 +943,6 @@ int luatpt_setconsole(lua_State* l)
luacon_controller->HideConsole();
return 0;
}
static int luaL_tostring (lua_State *L, int n) {
luaL_checkany(L, n);
switch (lua_type(L, n)) {
case LUA_TNUMBER:
lua_pushstring(L, lua_tostring(L, n));
break;
case LUA_TSTRING:
lua_pushvalue(L, n);
break;
case LUA_TBOOLEAN:
lua_pushstring(L, (lua_toboolean(L, n) ? "true" : "false"));
break;
case LUA_TNIL:
lua_pushliteral(L, "nil");
break;
default:
lua_pushfstring(L, "%s: %p", luaL_typename(L, n), lua_topointer(L, n));
break;
}
return 1;
}
int luatpt_log(lua_State* l)
{
int args = lua_gettop(l);
@ -958,7 +957,11 @@ int luatpt_log(lua_State* l)
lua_pop(l, 2);
}
if((*luacon_currentCommand))
(*luacon_lastError) = text;
{
if(luacon_lastError->length())
*luacon_lastError += "; ";
*luacon_lastError += text;
}
else
luacon_ci->Log(CommandInterface::LogNotice, text.c_str());
return 0;

View File

@ -9,6 +9,7 @@ extern Graphics * luacon_g;
extern Renderer * luacon_ren;
extern bool *luacon_currentCommand;
extern int luaL_tostring(lua_State* l, int n);
extern std::string *luacon_lastError;
extern int *lua_el_func, *lua_el_mode, *lua_gr_func;

View File

@ -57,6 +57,7 @@ Renderer * luacon_ren;
bool *luacon_currentCommand;
std::string *luacon_lastError;
std::string lastCode;
int *lua_el_func, *lua_el_mode, *lua_gr_func;
@ -178,6 +179,8 @@ LuaScriptInterface::LuaScriptInterface(GameController * c, GameModel * m):
luacon_currentCommand = &currentCommand;
luacon_lastError = &lastError;
lastCode = "";
//Replace print function with our screen logging thingy
lua_pushcfunction(l, luatpt_log);
lua_setglobal(l, "print");
@ -2119,14 +2122,53 @@ int LuaScriptInterface::Command(std::string command)
}
else
{
int ret;
int level = lua_gettop(l), ret;
std::string text = "";
lastError = "";
currentCommand = true;
if(lastCode.length())
lastCode += "\n";
lastCode += command;
std::string tmp = "return " + lastCode;
ui::Engine::Ref().LastTick(clock());
if((ret = luaL_dostring(l, command.c_str())))
luaL_loadbuffer(l, tmp.c_str(), tmp.length(), "@console");
if(lua_type(l, -1) != LUA_TFUNCTION)
{
lua_pop(l, 1);
luaL_loadbuffer(l, lastCode.c_str(), lastCode.length(), "@console");
}
if(lua_type(l, -1) != LUA_TFUNCTION)
{
lastError = luacon_geterror();
//Log(LogError, lastError);
if(std::string(lastError).find("near '<eof>'")!=-1) //the idea stolen from lua-5.1.5/lua.c
lastError = "...";
else
lastCode = "";
}
else
{
lastCode = "";
ret = lua_pcall(l, 0, LUA_MULTRET, 0);
if(ret)
lastError = luacon_geterror();
else
{
for(level++;level<=lua_gettop(l);level++)
{
luaL_tostring(l, level);
if(text.length())
text += ", " + std::string(luaL_optstring(l, -1, ""));
else
text = std::string(luaL_optstring(l, -1, ""));
lua_pop(l, 1);
}
if(text.length())
if(lastError.length())
lastError += "; " + text;
else
lastError = text;
}
}
currentCommand = false;
return ret;

View File

@ -137,7 +137,7 @@ int TPTScriptInterface::parseNumber(char * stringData)
if(cc >= '0' && cc <= '9')
currentNumber += cc - '0';
else if(cc >= 'a' && cc <= 'f')
currentNumber += (cc - 'A') + 10;
currentNumber += (cc - 'a') + 10;
else if(cc >= 'A' && cc <= 'F')
currentNumber += (cc - 'A') + 10;
else

View File

@ -249,23 +249,26 @@ void ServerSaveActivity::Exit()
void ServerSaveActivity::ShowRules()
{
const char *rules =
"These are the rules you should follow when uploading saves. They may change at any time as new problems arise, and how each rule is handled changes depending on the situation.\n"
"These are the rules you should follow when uploading saves to avoid having them deleted or otherwise hidden from public view. If you fail to follow them, don't be surprised if your saves get lousy votes, unpublished, or removed from the front page should they make it there. They may change at any time as new problems arise, and how each rule is handled changes depending on the situation.\n"
"\n"
"\bt1. No image plotting.\bw If you use a program to draw out pixels from an image outside of TPT without drawing it by hand, then don't be surprised when it gets deleted and you get banned.\n"
"\bt2. No self voting.\bw This means making more than one account, and then using that account to vote on any save multiple times. We can see this stuff, and people get banned for doing this. Don't do it.\n"
"\bt3. No hate saves.\bw This means things like shooting Jews or killing Beiber, these will not be allowed.\n"
"\bt4. No penis drawings.\bw Or any other explicit or non-explicit sex please. We like to think this is a game that kids can play, don't post anything too inappropriate for children.\n"
"\bt5. Don't ask people to vote.\bw If your stuff is awesome, you shouldn't have to beg for popularity to make it so. People tend to downvote when they see a lot of vote begging anyway.\n"
"\bt1. No image plotting.\bw If you use a program to draw out pixels from an image outside of TPT without drawing it by hand, don't be surprised when it gets deleted and you get banned.\n"
"\bt2. No self voting.\bw This means making more than one account, and then using that account to vote on any save multiple times. We can see this stuff, and people get banned for doing it. Don't do it.\n"
"\bt3. No hate saves.\bw This means things like shooting Jews or killing Beiber; these will not be allowed.\n"
"\bt4. No penis drawings.\bw Or any other explicit or non-explicit sex please. We like to think this is a game that kids can play with their family around, don't post anything too inappropriate.\n"
"\bt5. Don't ask people to vote.\bw If your stuff is awesome, you shouldn't have to beg for popularity to get votes. People tend to downvote when they see vote begging anyway.\n"
"- This includes vote signs in the game, drawings of vote arrows, and comments on the save telling people to vote up.\n"
"- Gimmicks for getting votes like '100 votes and I'll make a better version' are similarly frowned upon.\n"
"\bt6. Keep the number of logos and signs to a minimum.\bw They not only slow the game down, but it makes saves unappealing for people to use. \n"
"\bt6. Keep the number of logos and signs to a minimum.\bw They not only slow the game down, but it can also make saves unappealing for people to use. \n"
"- Please do not make fake update or similar update signs either.\n"
"\bt7. Please don't swear excessively.\bw Saves containing excessive swearing or rude language will be unpublished. Don't make rude or offensive comments either.\n"
"\bt8. Don't make text only saves.\bw Saves are much better when they actually use some of the features in the game. Text only saves will be removed from the front page if they should get there.\n"
"- This also relates to art on the front page. Art saves that rely only on the deco layer are generally removed. Other art using elements may stay longer if they are more impressive.\n"
"\bt9. Don't claim other's work as your own.\bw If you didn't make it, don't resave it for yourself. You can fav. a save if you want to see it later instead of publishing a copy.\n"
"- This doesn't mean you can't modify or improve saves, building on the works of others in encouraged. If you give credit to the original author, it is usually ok to do resave unless the author specifically prohibits it.\n"
"\bt8. Don't make text only saves.\bw Saves are much better when they actually use some of the features in the game. Text only saves will be removed from the front page should they ever get there.\n"
"- Also, element suggestion saves will be removed from the front page. It's recommended you make a thread on the forum instead so you can get actual criticism from other users and devs.\n"
"- This is also related to art on the front page. Art saves that only rely on the deco layer are generally removed. Art using elements may stay longer if it's more impressive.\n"
"\bt9. Don't claim others' work as your own.\bw If you didn't make it, don't resave it for yourself. You can fav. a save instead of publishing a copy if you want to see it later.\n"
"- This doesn't mean you can't modify or improve saves; building on the works of others in encouraged. If you give credit to the original author, it is usually OK to resave unless the author specifically prohibits it.\n"
"\bt10. Do not make laggy saves.\bw If a save is so laggy that it crashes the game for some people, it's just really annoying. Saves that do make it to the front page that purposely lag the game will be demoted.\n"
"\n"
"You can report a save breaking any one of these rules, the moderators are busy in real life too and don't always have the time to search through all the saves for these kinds of things. If reporting a copied save, just give the id of the original, but if not an id isn't needed.";
"You can report a save breaking any one of these rules, as the moderators are busy in real life too and don't always have the time to search through all saves for these kinds of things. If reporting a copied save, just give the ID of the original, but if not an ID isn't needed.";
new InformationMessage("Save Uploading Rules", rules, true);
}

View File

@ -28,7 +28,7 @@ Element_116::Element_116()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Shared velocity test";
Description = "A failed shared velocity test.";
State = ST_SOLID;
Properties = TYPE_PART;

View File

@ -28,7 +28,7 @@ Element_ACEL::Element_ACEL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Accelerator";
Description = "Accelerator, speeds up nearby elements.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_AMTR::Element_AMTR()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Anti-Matter, Destroys a majority of particles";
Description = "Anti-Matter, destroys a majority of particles.";
State = ST_NONE;
Properties = TYPE_PART;

View File

@ -28,7 +28,7 @@ Element_ARAY::Element_ARAY()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Ray Emitter. Rays create points when they collide";
Description = "Ray Emitter. Rays create points when they collide.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_BANG::Element_BANG()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 88;
Description = "Explosive.";
Description = "TNT, explodes all at once.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_BGLA::Element_BGLA()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 150;
Description = "Broken Glass, Heavy particles. Meltable. Bagels.";
Description = "Broken Glass, heavy particles formed when glass breaks under pressure. Meltable. Bagels.";
State = ST_SOLID;
Properties = TYPE_PART | PROP_HOT_GLOW;

View File

@ -28,7 +28,7 @@ Element_BIZR::Element_BIZR()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 29;
Description = "Bizarre... contradicts the normal state changes.";
Description = "Bizarre... contradicts the normal state changes. Paints other elements with its deco color.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_BIZRG::Element_BIZRG()
Temperature = R_TEMP-200.0f+273.15f;
HeatConduct = 42;
Description = "Bizarre gas";
Description = "Bizarre gas.";
State = ST_GAS;
Properties = TYPE_GAS;

View File

@ -28,7 +28,7 @@ Element_BIZRS::Element_BIZRS()
Temperature = R_TEMP+300.0f+273.15f;
HeatConduct = 251;
Description = "Bizarre solid";
Description = "Bizarre solid.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_BOMB::Element_BOMB()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Bomb.";
Description = "Bomb. Explodes and destroys all surrounding particles when it touches something.";
State = ST_NONE;
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC|PROP_SPARKSETTLE;

View File

@ -28,7 +28,7 @@ Element_BRAY::Element_BRAY()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Ray Point. Rays create points when they collide";
Description = "Ray Point. Rays create points when they collide.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC|PROP_LIFE_KILL;

View File

@ -28,7 +28,7 @@ Element_BTRY::Element_BTRY()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Solid. Generates Electricity.";
Description = "Solid. Generates infinite electricity.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_C5::Element_C5()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 88;
Description = "Cold explosive";
Description = "Cold explosive, set off by anything cold.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_CAUS::Element_CAUS()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Caustic Gas, acts like Acid";
Description = "Caustic Gas, acts like ACID.";
State = ST_GAS;
Properties = TYPE_GAS|PROP_DEADLY;

View File

@ -28,7 +28,7 @@ Element_CBNW::Element_CBNW()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Carbonated water. Conducts electricity. Freezes. Extinguishes fires.";
Description = "Carbonated water. Slowly releases CO2.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_CONDUCTS|PROP_LIFE_DEC|PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_CO2::Element_CO2()
Temperature = R_TEMP+273.15f;
HeatConduct = 88;
Description = "Carbon Dioxide";
Description = "Carbon Dioxide. Heavy gas, drifts downwards. Carbonates water and turns to dry ice when cold.";
State = ST_GAS;
Properties = TYPE_GAS;

View File

@ -28,7 +28,7 @@ Element_COAL::Element_COAL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 200;
Description = "Solid. Burns slowly.";
Description = "Coal, Burns very slowly. Gets red when hot.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_CRAY::Element_CRAY()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Particle Ray Emitter. Creates a beam of particles set by ctype, range is set by tmp";
Description = "Particle Ray Emitter. Creates a beam of particles set by its ctype, range is set by tmp.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_DCEL::Element_DCEL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Decelerator";
Description = "Decelerator, slows down nearby elements.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_DESL::Element_DESL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 42;
Description = "Liquid. Explodes under high pressure and temperatures";
Description = "Liquid diesel. Explodes under high pressure and temperatures.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_DEST::Element_DEST()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 150;
Description = "More destructive Bomb.";
Description = "More destructive Bomb, can break through virtually anything.";
State = ST_SOLID;
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_DMG::Element_DMG()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "DMG.";
Description = "Generates damaging pressure and breaks elements it hits.";
State = ST_NONE;
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC|PROP_SPARKSETTLE;

View File

@ -28,7 +28,7 @@ Element_DRIC::Element_DRIC()
Temperature = 172.65f;
HeatConduct = 2;
Description = "Dry Ice.";
Description = "Dry Ice, formed when CO2 is cooled.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_DTEC::Element_DTEC()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Creates a spark when something with its ctype is nearby";
Description = "Detector, creates a spark when something with its ctype is nearby.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_ELEC::Element_ELEC()
Temperature = R_TEMP+200.0f+273.15f;
HeatConduct = 251;
Description = "Electrons";
Description = "Electrons. Sparks electronics, reacts with NEUT and WATR.";
State = ST_GAS;
Properties = TYPE_ENERGY|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_EMP::Element_EMP()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 121;
Description = "Breaks activated electronics.";
Description = "Electromagnetic pulse. Breaks activated electronics.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_EXOT::Element_EXOT()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 250;
Description = "Exotic matter. Explodes with excess exposure to electrons.";
Description = "Exotic matter. Explodes with excess exposure to electrons. Has many other odd reactions.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_FIGH::Element_FIGH()
Temperature = R_TEMP+14.6f+273.15f;
HeatConduct = 0;
Description = "Fighter. Tries to kill stickmen.";
Description = "Fighter. Tries to kill stickmen. You must first give it an element to kill him with.";
State = ST_NONE;
Properties = 0;

View File

@ -32,7 +32,7 @@ Element_FIRW::Element_FIRW()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Fireworks!";
Description = "Fireworks! Colorful, set off by fire";
State = ST_SOLID;
Properties = TYPE_PART|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_FOG::Element_FOG()
Temperature = 243.15f;
HeatConduct = 100;
Description = "Not quite Steam";
Description = "Fog, created when an electric current is passed through RIME.";
State = ST_GAS;
Properties = TYPE_GAS|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_FRAY::Element_FRAY()
Temperature = 20.0f+0.0f +273.15f;
HeatConduct = 0;
Description = "Force Emitter. Push or pull objects based on temp value, use like ARAY";
Description = "Force Emitter. Pushes or pulls objects based on its temp value, use like ARAY.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_FRME::Element_FRME()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Frame, can be used with pistons to push many particles";
Description = "Frame, can be used with pistons to push many particles.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_FSEP::Element_FSEP()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Fuse Powder. See FUSE.";
Description = "Fuse Powder. Burns slowly like FUSE.";
State = ST_SOLID;
Properties = TYPE_PART;

View File

@ -28,7 +28,7 @@ Element_FUSE::Element_FUSE()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 200;
Description = "Solid. Burns slowly. Ignites at somewhat high temperatures and electricity.";
Description = "Burns slowly. Ignites at somewhat high temperatures or with electricity.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_FWRK::Element_FWRK()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 100;
Description = "First fireworks made, activated by heat/neutrons.";
Description = "Original version of fireworks, activated by heat/neutrons.";
State = ST_SOLID;
Properties = TYPE_PART|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_GAS::Element_GAS()
Temperature = R_TEMP+2.0f +273.15f;
HeatConduct = 42;
Description = "Gas. Diffuses. Flammable. Liquefies under pressure.";
Description = "Diffuses quickly and flammable. Liquefies into OIL under pressure.";
State = ST_GAS;
Properties = TYPE_GAS | PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_GBMB::Element_GBMB()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Sticks to first object it touches then produces strong gravity push.";
Description = "Gravity bomb. Sticks to the first object it touches then produces a strong gravity push.";
State = ST_NONE;
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_GEL::Element_GEL()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Gel. A liquid with variable viscosity and heat conductivity";
Description = "Gel. A liquid with variable viscosity and heat conductivity.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_LIFE_DEC|PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_GLAS::Element_GLAS()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 150;
Description = "Solid. Meltable. Shatters under pressure";
Description = "Glass. Meltable. Shatters under pressure, and refracts photons.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPASS | PROP_HOT_GLOW | PROP_SPARKSETTLE;

View File

@ -28,7 +28,7 @@ Element_GLOW::Element_GLOW()
Temperature = R_TEMP+20.0f+273.15f;
HeatConduct = 44;
Description = "Glow, Glows under pressure";
Description = "Glow, Glows under pressure.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_LIFE_DEC;

View File

@ -32,7 +32,7 @@ Element_GOLD::Element_GOLD()
Description = "Corrosion resistant metal, will reverse corrosion of iron";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_HOT_GLOW|PROP_LIFE_DEC;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_HOT_GLOW|PROP_LIFE_DEC|PROP_NEUTPASS;
LowPressure = IPL;
LowPressureTransition = NT;
@ -44,7 +44,7 @@ Element_GOLD::Element_GOLD()
HighTemperatureTransition = PT_LAVA;
Update = &Element_GOLD::update;
Graphics = &Element_GOLD::graphics;
}
//#TPT-Directive ElementHeader Element_GOLD static int update(UPDATE_FUNC_ARGS)
@ -85,8 +85,23 @@ int Element_GOLD::update(UPDATE_FUNC_ARGS)
}
}
}
if ((sim->photons[y][x]&0xFF) == PT_NEUT)
{
if (!(rand()%7))
{
sim->kill_part(sim->photons[y][x]>>8);
}
}
return 0;
}
//#TPT-Directive ElementHeader Element_GOLD static int graphics(GRAPHICS_FUNC_ARGS)
int Element_GOLD::graphics(GRAPHICS_FUNC_ARGS)
{
*colr += rand()%10-5;
*colg += rand()%10-5;
*colb += rand()%10-5;
return 0;
}
Element_GOLD::~Element_GOLD() {}

View File

@ -28,7 +28,7 @@ Element_GOO::Element_GOO()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 75;
Description = "Solid. Deforms and disappears under pressure.";
Description = "Deforms and disappears under pressure.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPENETRATE|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_GPMP::Element_GPMP()
Temperature = 0.0f +273.15f;
HeatConduct = 0;
Description = "Changes gravity to its temp when activated. (use HEAT/COOL).";
Description = "Gravity pump. Changes gravity to its temp when activated. (use HEAT/COOL)";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_GUNP::Element_GUNP()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 97;
Description = "Light dust. Explosive.";
Description = "Gunpowder. Light dust, explosive.";
State = ST_SOLID;
Properties = TYPE_PART;

View File

@ -28,7 +28,7 @@ Element_H2::Element_H2()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Combines with O2 to make WATR";
Description = "Hydrogen. Combusts with OXYG to make WATR. Undergoes fusion at high temperature and pressure";
State = ST_GAS;
Properties = TYPE_GAS;

View File

@ -28,7 +28,7 @@ Element_HSWC::Element_HSWC()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Heat switch. Conducts Heat only when activated";
Description = "Heat switch. Conducts heat only when activated.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_ICEI::Element_ICEI()
Temperature = R_TEMP-50.0f+273.15f;
HeatConduct = 46;
Description = "Solid. Freezes water. Crushes under pressure. Cools down air.";
Description = "Crushes under pressure. Cools down air.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC|PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_IGNT::Element_IGNT()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 88;
Description = "Ignition cord.";
Description = "Ignition cord. Burns slowly with fire and sparks.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPENETRATE | PROP_SPARKSETTLE | PROP_LIFE_KILL;

View File

@ -28,7 +28,7 @@ Element_INSL::Element_INSL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Insulator, does not conduct heat or electricity.";
Description = "Insulator, does not conduct heat and blocks electricity.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_INVIS::Element_INVIS()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 164;
Description = "Invisible to everything while under pressure.";
Description = "Invisible to particles while under pressure.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_IRON::Element_IRON()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Rusts with salt, can be used for electrolysis of WATR";
Description = "Rusts with salt, can be used for electrolysis of WATR.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC|PROP_HOT_GLOW;

View File

@ -28,7 +28,7 @@ Element_ISOZ::Element_ISOZ()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Radioactive liquid";
Description = "Radioactive liquid. Decays into photons when touching PHOT or under negative pressure.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_ISZS::Element_ISZS()
Temperature = 140.00f;
HeatConduct = 251;
Description = "Solid form of ISOZ, slowly decays.";
Description = "Solid form of ISOZ, slowly decays into PHOT.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_LAVA::Element_LAVA()
Temperature = R_TEMP+1500.0f+273.15f;
HeatConduct = 60;
Description = "Heavy liquid. Ignites flammable materials. Solidifies when cold.";
Description = "Molten lava. Ignites flammable materials. Generated when metals and other materials melt, solidifies when cold.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_LIFE_DEC;

View File

@ -29,7 +29,7 @@ Element_LIGH::Element_LIGH()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "More realistic lightning. Set pen size to set the size of the lightning.";
Description = "Lightning. Change the brush size to set the size of the lightning.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_LNTG::Element_LNTG()
Temperature = 70.15f;
HeatConduct = 70;
Description = "Liquid Nitrogen. Very cold.";
Description = "Liquid Nitrogen. Very cold, disappears whenever it touches anything warmer.";
State = ST_SOLID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_LO2::Element_LO2()
Temperature = 80.0f;
HeatConduct = 70;
Description = "Liquid Oxygen. Very cold. Reacts with fire";
Description = "Liquid Oxygen. Very cold. Reacts with fire.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_METL::Element_METL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Solid. Conducts electricity. Meltable.";
Description = "The basic conductor, meltable and breaks under pressure.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC|PROP_HOT_GLOW;

View File

@ -28,7 +28,7 @@ Element_MWAX::Element_MWAX()
Temperature = R_TEMP+28.0f+273.15f;
HeatConduct = 44;
Description = "Liquid Wax.";
Description = "Liquid Wax. Hardens into WAX at 45 degrees.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_NBHL::Element_NBHL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 186;
Description = "Black hole (Requires newtonian gravity)";
Description = "Black hole, sucks in particles using gravity. (Requires Newtonian gravity)";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_NBLE::Element_NBLE()
Temperature = R_TEMP+2.0f +273.15f;
HeatConduct = 106;
Description = "Noble Gas. Diffuses. Conductive. Ionizes into plasma when introduced to electricity";
Description = "Noble Gas. Diffuses and conductive. Ionizes into plasma when introduced to electricity.";
State = ST_GAS;
Properties = TYPE_GAS|PROP_CONDUCTS|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_NITR::Element_NITR()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 50;
Description = "Liquid. Pressure sensitive explosive.";
Description = "Nitroglycerin. Pressure sensitive explosive. Mix with CLST to make TNT.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_NTCT::Element_NTCT()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Semi-conductor. Only conducts electricity when hot (More than 100C)";
Description = "Semi-conductor. Only conducts electricity when hot. (More than 100C)";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_NWHL::Element_NWHL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 186;
Description = "White hole (Requires newtonian gravity)";
Description = "White hole, pushes away other particles with gravity. (Requires Newtonian gravity)";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_O2::Element_O2()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Gas. Ignites easily.";
Description = "Oxygen gas. Ignites easily.";
State = ST_GAS;
Properties = TYPE_GAS;

View File

@ -28,7 +28,7 @@ Element_OIL::Element_OIL()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 42;
Description = "Liquid. Flammable.";
Description = "Flammable, turns into GAS at low pressure or high temperature. Can be formed with NEUT and NITR.";
State = ST_LIQUID;
Properties = TYPE_LIQUID | PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_PBCN::Element_PBCN()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Powered breakable clone";
Description = "Powered breakable clone.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PCLN::Element_PCLN()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Solid. When activated, duplicates any particles it touches.";
Description = "Powered clone. When activated, duplicates any particles it touches.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PHOT::Element_PHOT()
Temperature = R_TEMP+900.0f+273.15f;
HeatConduct = 251;
Description = "Photons. Travel in straight lines.";
Description = "Photons. Refracts through glass, scattered by quartz, and color-changed by different elements. Ignites flammable materials.";
State = ST_GAS;
Properties = TYPE_ENERGY|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_PIPE::Element_PIPE()
Temperature = 273.15f;
HeatConduct = 0;
Description = "Moves elements around, read FAQ on website for help.";
Description = "PIPE, moves particles around. Once the BRCK generates, erase some for the exit. Then the PIPE generates and is useable.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_PLEX::Element_PLEX()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 88;
Description = "Solid. Pressure sensitive explosive.";
Description = "Solid pressure sensitive explosive.";
State = ST_SOLID;
Properties = TYPE_SOLID | PROP_NEUTPENETRATE;

View File

@ -28,7 +28,7 @@ Element_PRTI::Element_PRTI()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Portal IN. Things go in here, now with channels (same as WIFI)";
Description = "Portal IN. Things go in here, now with temperature dependent channels (same as WIFI)";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PRTO::Element_PRTO()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Portal OUT. Things come out here, now with channels (same as WIFI)";
Description = "Portal OUT. Things come out here, now with temperature dependent channels (same as WIFI)";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PSTE::Element_PSTE()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Colloid, Hardens under pressure";
Description = "Colloid, Hardens under pressure.";
State = ST_LIQUID;
Properties = TYPE_LIQUID;

View File

@ -28,7 +28,7 @@ Element_PSTN::Element_PSTN()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Piston, extends and pushes particles";
Description = "Piston, extends and pushes particles.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PSTS::Element_PSTS()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Solid form of PSTE, temporary";
Description = "Solid form of PSTE.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PTCT::Element_PTCT()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Semi-conductor. Only conducts electricity when cold (Less than 100C)";
Description = "Semi-conductor. Only conducts electricity when cold. (Less than 100C)";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_PUMP::Element_PUMP()
Temperature = 273.15f;
HeatConduct = 0;
Description = "Changes pressure to its temp when activated. (use HEAT/COOL).";
Description = "Pressure pump. Changes pressure to its temp when activated. (use HEAT/COOL).";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_PVOD::Element_PVOD()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251;
Description = "Solid. When activated, destroys entering particles";
Description = "Powered VOID. When activated, destroys entering particles.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_RBDM::Element_RBDM()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 240;
Description = "Rubidium, explosive, especially on contact with water, low melting point";
Description = "Rubidium. Explosive, especially on contact with water. Low melting point.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_REPL::Element_REPL()
Temperature = 20.0f+0.0f +273.15f;
HeatConduct = 0;
Description = "Repel or attract particles based on temp value.";
Description = "Repels or attracts particles based on its temp value.";
State = ST_NONE;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_RIME::Element_RIME()
Temperature = 243.15f;
HeatConduct = 100;
Description = "Not quite Ice";
Description = "Solid, created when steam cools rapidly and goes through sublimation.";
State = ST_SOLID;
Properties = TYPE_SOLID;

View File

@ -28,7 +28,7 @@ Element_SAND::Element_SAND()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 150;
Description = "Sand, Heavy particles. Meltable.";
Description = "Sand, Heavy particles. Melts into glass.";
State = ST_SOLID;
Properties = TYPE_PART;

View File

@ -28,7 +28,7 @@ Element_SHLD1::Element_SHLD1()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Shield, spark it to grow";
Description = "Shield, spark it to grow.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SHLD2::Element_SHLD2()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Shield lvl 2";
Description = "Shield lvl 2.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SHLD3::Element_SHLD3()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Shield lvl 3";
Description = "Shield lvl 3.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SHLD4::Element_SHLD4()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "Shield lvl 4";
Description = "Shield lvl 4.";
State = ST_SOLID;
Properties = TYPE_SOLID|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SING::Element_SING()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70;
Description = "Singularity";
Description = "Singularity. Creates huge amounts of negative pressure and destroys everything.";
State = ST_SOLID;
Properties = TYPE_PART|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SMKE::Element_SMKE()
Temperature = R_TEMP+320.0f+273.15f;
HeatConduct = 88;
Description = "Smoke";
Description = "Smoke, created by fire.";
State = ST_SOLID;
Properties = TYPE_GAS|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;

View File

@ -28,7 +28,7 @@ Element_SNOW::Element_SNOW()
Temperature = R_TEMP-30.0f+273.15f;
HeatConduct = 46;
Description = "Light particles.";
Description = "Light particles. Created when ICE breaks under pressure.";
State = ST_SOLID;
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_NEUTPASS;

View File

@ -28,7 +28,7 @@ Element_SOAP::Element_SOAP()
Temperature = R_TEMP-2.0f +273.15f;
HeatConduct = 29;
Description = "Soap. Creates bubbles.";
Description = "Soap. Creates bubbles. Washes off deco color.";
State = ST_LIQUID;
Properties = TYPE_LIQUID|PROP_NEUTPENETRATE|PROP_LIFE_DEC;

View File

@ -28,7 +28,7 @@ Element_SPAWN::Element_SPAWN()
Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 0;
Description = "STKM spawn point";
Description = "STKM spawn point.";
State = ST_SOLID;
Properties = TYPE_SOLID;

Some files were not shown because too many files have changed in this diff Show More