Titanium only blocks air when it is connected

This commit is contained in:
Simon Robertshaw 2012-06-07 19:17:50 +01:00
parent 2fb1da2fed
commit 04a09d997d
2 changed files with 26 additions and 5 deletions

View File

@ -16,7 +16,28 @@
#include <element.h> #include <element.h>
int update_TTAN(UPDATE_FUNC_ARGS) { int update_TTAN(UPDATE_FUNC_ARGS) {
bmap_blockair[y/CELL][x/CELL] = 1; int nx, ny, ttan = 0;
bmap_blockairh[y/CELL][x/CELL] = 1; if(nt<8)
{
for (nx=-1; nx<2; nx++)
for (ny=-1; ny<2; ny++) {
if (!nx != !ny) {
if((pmap[y+ny][x+nx]&0xFF)==PT_TTAN)
{
ttan++;
}
}
}
if(ttan>=2)
{
bmap_blockair[y/CELL][x/CELL] = 1;
bmap_blockairh[y/CELL][x/CELL] = 1;
}
}
if(parts[i].tmp)
{
bmap_blockair[y/CELL][x/CELL] = 1;
bmap_blockairh[y/CELL][x/CELL] = 1;
}
return 0; return 0;
} }

View File

@ -1905,16 +1905,16 @@ void update_particles_i(pixel *vid, int start, int inc)
#endif #endif
} }
j = surround_space = nt = 0;//if nt is 1 after this, then there is a particle around the current particle, that is NOT the current particle's type, for water movement. j = surround_space = nt = 0;//if nt is greater than 1 after this, then there is a particle around the current particle, that is NOT the current particle's type, for water movement.
for (nx=-1; nx<2; nx++) for (nx=-1; nx<2; nx++)
for (ny=-1; ny<2; ny++) { for (ny=-1; ny<2; ny++) {
if (nx||ny) { if (nx||ny) {
surround[j] = r = pmap[y+ny][x+nx]; surround[j] = r = pmap[y+ny][x+nx];
j++; j++;
if (!(r&0xFF)) if (!(r&0xFF))
surround_space = 1;//there is empty space surround_space++;//there is empty space
if ((r&0xFF)!=t) if ((r&0xFF)!=t)
nt = 1;//there is nothing or a different particle nt++;//there is nothing or a different particle
} }
} }