
Originally Posted by
HarryJames
...for objects that have holes in them, or similar. (things like railings etc).
You can get an object at a certain tile whether it be interactable / ground object / wall object / or decoration (I believe). Basically, if the object has any kind of a right-click menu at all (even 'examine' only) then it's interactable, so the 'railings' you're referring to might be a ground object because they're placed on the base tile, like you said, but doesn't have a right-click menu therefore it's not interactable.
Now if you're determined to use color inside that tile's box then I'm sure you could look at SRL's method for converting the Reflection tile to your screen position in the form of a box.
Simba Code:
function TileToMSEx(tile: TTile; offx, offy : extended; height : integer) : TPoint;
var
pixelX, pixelY, pixelZ: extended;
begin
pixelX:= (tile.x - SmartGetFieldInt(0,hook_static_BaseX) + offX) * 512.0;
pixelY:= GetTileHeight(tile) - height;
pixelZ:= (tile.y - SmartGetFieldInt(0,hook_static_BaseY) + offY) * 512.0;
Result := World3DToScreen(pixelX, pixelY, pixelZ);
if not PointInBox(Result, IntToBox(MSX1, MSY1, MSX2, MSY2))then
begin
Result.x := -1;
Result.y := -1;
end;
end;
That returns a point which would be the absolute center of your tile. You'd have to look look through "World3DToScreen" or whatever to find the distance from that center point to the edge of the tile (in any direction), this will give you the radius and you can use that to find the box's XS/YS and XE/YE. Then just search within those parameters for your color.
I'm sorry if I'm a bit unclear, but I am trying to explain it as straight-forward as possible.