protected void createCachedParticles(ParticleEmitter emitterDetails) {
		int particleNumber = 0;
		for (int colorHex : emitterDetails.possibleColors) {
			for (BufferedImage particleImage : emitterDetails.particleGraphics) {
				// Take a copy of our image so we can freely modify it without
				// affecting the original one, which is essential for particle
				// effects. We are caching this newly created image, so it's not
				// /too/ much overhead
				BufferedImage newParticleImage = new BufferedImage(particleImage.getWidth(), particleImage.getHeight(), BufferedImage.TRANSLUCENT);

				for (int pixelX = 0; pixelX < particleImage.getWidth(); pixelX++) {
					for (int pixelY = 0; pixelY < particleImage.getHeight(); pixelY++) {
						int originalAlpha = (particleImage.getRGB(pixelX, pixelY) & 0xFF << 24);
						newParticleImage.setRGB(pixelX, pixelY, originalAlpha | colorHex);
					}
				}

				emitterDetails.cachedParticleImages[particleNumber++] = newParticleImage;
			}
		}
	}