ludic/packages/ludic.minimap/ports.ludic

23 lines
1.1 KiB
Text

# ports.ludic - what a map asks the game: where its grid is centred, what is land, where you and
# the camp are, the day, and how far the view may be pushed. Unbound: a grid round the origin, all
# land, you and the camp at the origin on day 1, and nowhere the view may not go.
export port MinimapWorld {
origin_x: fn() -> float = fn mm__zero # the grid's centre
origin_z: fn() -> float = fn mm__zero
land: fn(float, float) -> bool = fn mm__land # "explored" counts land only
you_x: fn() -> float = fn mm__zero
you_z: fn() -> float = fn mm__zero
camp_x: fn() -> float = fn mm__zero
camp_z: fn() -> float = fn mm__zero
day: fn() -> int = fn mm__day # a mark remembers the day it was made
lo_x: fn() -> float = fn mm__lo # the view's centre stays inside these
lo_z: fn() -> float = fn mm__lo
hi_x: fn() -> float = fn mm__hi
hi_z: fn() -> float = fn mm__hi
}
function mm__zero() -> float { return 0.0 }
function mm__land(x: float, z: float) -> bool { return true }
function mm__day() -> int { return 1 }
function mm__lo() -> float { return -1000000000.0 }
function mm__hi() -> float { return 1000000000.0 }