04-21-2013, 05:49 AM
If it works, why not? Still, I'd prefer if the whole explosion method was moved into the cChunkMap + cChunk, so that it can manipulate blocks directly.

	if (GetBlock(a_BlockX, a_BlockY, a_BlockZ) != 9)
	{
		for (int x = 0; x < ExplosionSizeInt; x++)
		{
			for (int y = 0; y < ExplosionSizeInt; y++)
			{
				for (int z = 0; z < ExplosionSizeInt; z++)
				{
					DigBlock(a_BlockX + x, a_BlockY + y, a_BlockZ + z);
					DigBlock(a_BlockX + x, a_BlockY - y, a_BlockZ + z);
					DigBlock(a_BlockX - x, a_BlockY - y, a_BlockZ - z);
					DigBlock(a_BlockX - x, a_BlockY + y, a_BlockZ - z);
					DigBlock(a_BlockX + x, a_BlockY + y, a_BlockZ - z);
					DigBlock(a_BlockX + x, a_BlockY - y, a_BlockZ - z);
					DigBlock(a_BlockX - x, a_BlockY + y, a_BlockZ + z);
					DigBlock(a_BlockX - x, a_BlockY - y, a_BlockZ + z);
					BlocksAffected.push_back(Vector3i(a_BlockX + x, a_BlockY + y, a_BlockZ + z));
					BlocksAffected.push_back(Vector3i(a_BlockX + x, a_BlockY - y, a_BlockZ + z));
					BlocksAffected.push_back(Vector3i(a_BlockX - x, a_BlockY - y, a_BlockZ - z));
					BlocksAffected.push_back(Vector3i(a_BlockX - x, a_BlockY + y, a_BlockZ - z));
					BlocksAffected.push_back(Vector3i(a_BlockX + x, a_BlockY + y, a_BlockZ - z));
					BlocksAffected.push_back(Vector3i(a_BlockX + x, a_BlockY - y, a_BlockZ - z));
					BlocksAffected.push_back(Vector3i(a_BlockX - x, a_BlockY + y, a_BlockZ + z));
					BlocksAffected.push_back(Vector3i(a_BlockX - x, a_BlockY - y, a_BlockZ + z));
				}
			}
			
		}
	}
if (GetBlock(a_BlockX, a_BlockY, a_BlockZ) != 8,9) //should be E_BLOCK_ETC nowand
if (GetBlock(a_BlockX, a_BlockY, a_BlockZ) != 8||9) //should be E_BLOCK_ETC nowthat was what i found on google
 
BLOCKTYPE BlockType = GetBlock(a_BlockX, a_BlockY, a_BlockZ); if ((BlockType == E_BLOCK_WATER) || (BlockType == E_BLOCK_STATIONARY_WATER) || (BlockType == ...))
switch (GetBlock(a_BlockX, a_BlockY, a_BlockZ)
{
	case E_BLOCK_STATIONARY_WATER:
	case E_BLOCK_WATER:
	{
		// TNT in these blocks doesn't do environmental damage
		break;
	}
	default:
	{
		// Destroy the neighboring blocks:
		for (int y = 0; y < ExplosionSizeInt; y++) ...
	}
}
), so that's why i decided just to implement it as a simple cube as first step 
 its pretty cool 
 yeah, and the idea is that will also collide with other entities once we implement entity on entity collision 
