1 # Defines a struct representing boxes on the terrain
5 struct Box(pos:Vector2, size=Vector2(50, 50), color=Color(0x71,0x61,0x82), fatal=no)
7 DrawRectangleV(b.pos - b.size/2, b.size, b.color)
9 func offset_by(b:Box, offset:Vector2 -> Box)
10 return Box(b.pos + offset, b.size, b.color)
12 func at(b:Box, pos:Vector2 -> Box)
16 func has_point(b:Box, point:Vector2, epsilon=Num32(0.1) -> Bool)
17 return ((b.pos.x - b.size.x/2 <= point.x + epsilon and point.x - epsilon <= b.pos.x + b.size.x/2) and
18 (b.pos.y - b.size.y/2 <= point.y + epsilon and point.y - epsilon <= b.pos.y + b.size.y/2))
20 func clamped(b:Box, point:Vector2 -> Vector2)
22 point.x.clamped(b.pos.x - b.size.x/2, b.pos.x + b.size.x/2),
23 point.y.clamped(b.pos.y - b.size.y/2, b.pos.y + b.size.y/2))