replace E181 with SAWD (sawdust), created by hitting WOOD with high velocity particles

This commit is contained in:
jacob1
2017-06-04 14:50:14 -04:00
parent 06b2631f8d
commit 1fb883a450
2 changed files with 16 additions and 13 deletions

View File

@@ -2110,7 +2110,7 @@ void Simulation::init_can_move()
//E181 cannot be displaced by other powders //E181 cannot be displaced by other powders
if (elements[movingType].Properties & TYPE_PART) if (elements[movingType].Properties & TYPE_PART)
can_move[movingType][PT_E181] = 0; can_move[movingType][PT_SAWD] = 0;
} }
//a list of lots of things PHOT can move through //a list of lots of things PHOT can move through
// TODO: replace with property // TODO: replace with property
@@ -2262,6 +2262,12 @@ int Simulation::try_move(int i, int x, int y, int nx, int ny)
if (!e) //if no movement if (!e) //if no movement
{ {
if ((r&0xFF) == PT_WOOD)
{
float vel = std::sqrt(std::pow(parts[i].vx, 2) + std::pow(parts[i].vy, 2));
if (vel > 5)
part_change_type(r>>8, nx, ny, PT_SAWD);
}
if (!(elements[parts[i].type].Properties & TYPE_ENERGY)) if (!(elements[parts[i].type].Properties & TYPE_ENERGY))
return 0; return 0;
if (!legacy_enable && parts[i].type==PT_PHOT && r)//PHOT heat conduction if (!legacy_enable && parts[i].type==PT_PHOT && r)//PHOT heat conduction
@@ -2272,7 +2278,8 @@ int Simulation::try_move(int i, int x, int y, int nx, int ny)
if ((r & 0xFF) < PT_NUM && elements[r&0xFF].HeatConduct && ((r&0xFF)!=PT_HSWC||parts[r>>8].life==10) && (r&0xFF)!=PT_FILT) if ((r & 0xFF) < PT_NUM && elements[r&0xFF].HeatConduct && ((r&0xFF)!=PT_HSWC||parts[r>>8].life==10) && (r&0xFF)!=PT_FILT)
parts[i].temp = parts[r>>8].temp = restrict_flt((parts[r>>8].temp+parts[i].temp)/2, MIN_TEMP, MAX_TEMP); parts[i].temp = parts[r>>8].temp = restrict_flt((parts[r>>8].temp+parts[i].temp)/2, MIN_TEMP, MAX_TEMP);
} }
else if ((parts[i].type==PT_NEUT || parts[i].type==PT_ELEC) && ((r&0xFF)==PT_CLNE || (r&0xFF)==PT_PCLN || (r&0xFF)==PT_BCLN || (r&0xFF)==PT_PBCN)) { else if ((parts[i].type==PT_NEUT || parts[i].type==PT_ELEC) && ((r&0xFF)==PT_CLNE || (r&0xFF)==PT_PCLN || (r&0xFF)==PT_BCLN || (r&0xFF)==PT_PBCN))
{
if (!parts[r>>8].ctype) if (!parts[r>>8].ctype)
parts[r>>8].ctype = parts[i].type; parts[r>>8].ctype = parts[i].type;
} }

View File

@@ -1,17 +1,13 @@
#include "simulation/Elements.h" #include "simulation/Elements.h"
//#TPT-Directive ElementClass Element_E181 PT_E181 181 //#TPT-Directive ElementClass Element_SAWD PT_SAWD 181
Element_E181::Element_E181() Element_SAWD::Element_SAWD()
{ {
Identifier = "DEFAULT_PT_E181"; Identifier = "DEFAULT_PT_SAWD";
Name = "E181"; Name = "SAWD";
Colour = PIXPACK(0xF0F0A0); Colour = PIXPACK(0xF0F0A0);
MenuVisible = 1; MenuVisible = 1;
MenuSection = SC_POWDERS; MenuSection = SC_POWDERS;
#if (defined(DEBUG) || defined(SNAPSHOT)) && MOD_ID == 0
Enabled = 1; Enabled = 1;
#else
Enabled = 0;
#endif
Advection = 0.7f; Advection = 0.7f;
AirDrag = 0.02f * CFDS; AirDrag = 0.02f * CFDS;
@@ -32,9 +28,9 @@ Element_E181::Element_E181()
Temperature = R_TEMP+0.0f +273.15f; Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 70; HeatConduct = 70;
Description = "Experimental element, floats on water"; Description = "Sawdust. Floats on water";
Properties = TYPE_PART|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC; Properties = TYPE_PART;
LowPressure = IPL; LowPressure = IPL;
LowPressureTransition = NT; LowPressureTransition = NT;
@@ -49,4 +45,4 @@ Element_E181::Element_E181()
Graphics = NULL; Graphics = NULL;
} }
Element_E181::~Element_E181() {} Element_SAWD::~Element_SAWD() {}