HYGN now combusts and fuses properly

This commit is contained in:
Bryan Hoyle 2012-08-20 16:59:19 -04:00
parent 1b75cbdcc9
commit ede6876a82

View File

@ -2,48 +2,48 @@
//#TPT-Directive ElementClass Element_H2 PT_H2 148 //#TPT-Directive ElementClass Element_H2 PT_H2 148
Element_H2::Element_H2() Element_H2::Element_H2()
{ {
Identifier = "DEFAULT_PT_H2"; Identifier = "DEFAULT_PT_H2";
Name = "HYGN"; Name = "HYGN";
Colour = PIXPACK(0x5070FF); Colour = PIXPACK(0x5070FF);
MenuVisible = 1; MenuVisible = 1;
MenuSection = SC_GAS; MenuSection = SC_GAS;
Enabled = 1; Enabled = 1;
Advection = 2.0f; Advection = 2.0f;
AirDrag = 0.00f * CFDS; AirDrag = 0.00f * CFDS;
AirLoss = 0.99f; AirLoss = 0.99f;
Loss = 0.30f; Loss = 0.30f;
Collision = -0.10f; Collision = -0.10f;
Gravity = 0.00f; Gravity = 0.00f;
Diffusion = 3.00f; Diffusion = 3.00f;
HotAir = 0.000f * CFDS; HotAir = 0.000f * CFDS;
Falldown = 0; Falldown = 0;
Flammable = 0; Flammable = 0;
Explosive = 0; Explosive = 0;
Meltable = 0; Meltable = 0;
Hardness = 0; Hardness = 0;
Weight = 1; Weight = 1;
Temperature = R_TEMP+0.0f +273.15f; Temperature = R_TEMP+0.0f +273.15f;
HeatConduct = 251; HeatConduct = 251;
Description = "Combines with O2 to make WATR"; Description = "Combines with O2 to make WATR";
State = ST_GAS; State = ST_GAS;
Properties = TYPE_GAS; Properties = TYPE_GAS;
LowPressure = IPL; LowPressure = IPL;
LowPressureTransition = NT; LowPressureTransition = NT;
HighPressure = IPH; HighPressure = IPH;
HighPressureTransition = NT; HighPressureTransition = NT;
LowTemperature = ITL; LowTemperature = ITL;
LowTemperatureTransition = NT; LowTemperatureTransition = NT;
HighTemperature = ITH; HighTemperature = ITH;
HighTemperatureTransition = NT; HighTemperatureTransition = NT;
Update = &Element_H2::update; Update = &Element_H2::update;
} }
//#TPT-Directive ElementHeader Element_H2 static int update(UPDATE_FUNC_ARGS) //#TPT-Directive ElementHeader Element_H2 static int update(UPDATE_FUNC_ARGS)
@ -66,22 +66,23 @@ int Element_H2::update(UPDATE_FUNC_ARGS)
sim->part_change_type(r>>8,x+rx,y+ry,PT_WATR); sim->part_change_type(r>>8,x+rx,y+ry,PT_WATR);
sim->part_change_type(i,x,y,PT_OIL); sim->part_change_type(i,x,y,PT_OIL);
} }
if (parts[r>>8].temp > 2273.15)// && pv[y/CELL][x/CELL] > 50.0f) if (parts[r>>8].temp > 2273.15 && sim->pv[y/CELL][x/CELL] > 45)// && pv[y/CELL][x/CELL] > 50.0f)
continue; continue;
if (parts[i].temp < 2273.15) if (sim->pv[x/CELL][y/CELL]<45)
{ {
if (rt==PT_FIRE) if (rt==PT_FIRE)
{ {
parts[r>>8].temp=2473.15; parts[r>>8].temp=2473.15;
if(parts[r>>8].tmp&0x02) if(parts[r>>8].tmp&0x02)
parts[r>>8].temp=3473; parts[r>>8].temp=3473;
parts[r>>8].tmp |= 1; parts[r>>8].tmp |= 1;
} }
if (rt==PT_FIRE || rt==PT_PLSM || rt==PT_LAVA) if (rt==PT_FIRE || rt==PT_PLSM || rt==PT_LAVA)
{ {
sim->create_part(i,x,y,PT_FIRE); sim->create_part(i,x,y,PT_FIRE);
parts[i].temp+=(rand()/(RAND_MAX/100)); parts[i].temp+=(rand()%250);
parts[i].tmp |= 1; parts[i].tmp |= 1;
sim->pv[y/CELL][x/CELL] +=0.1f;
} }
} }
} }