@Hatter#287736 How would this handle curved surfaces, such as cannons? Or other nonstandard partial blocks?
Every tile taken up by the part, not just the texture for it? Or, perhaps some fast, approximated calculus or something? Area math is pretty simple and fast. Especially because we're using pixel based textures, meaning it's all squares. And squares are the easiest things ever. w·h=a. And if it's a curved texture, we just break it into a bunch of layered rectangles, calculate the areas of those, and add that up.
By splitting the shape into smaller, easier chunks, we can get its area rather simply.