document withDotter
(and reticles) in docs/system.dj
This commit is contained in:
parent
e19e47e6ad
commit
6e88999662
1 changed files with 47 additions and 1 deletions
|
@ -53,8 +53,22 @@ With that said, there are several types of values in haku that can be passed int
|
|||
- `shapeLike` - anything that can be turned into a `shape` using `toShape`.
|
||||
|
||||
- `scribble` - something that can be drawn on the wall.
|
||||
- `reticle` - an interaction the user can make with the wall.
|
||||
|
||||
Additionally, the syntax `a | b` may be used to signify that one of the listed types is accepted or returned.
|
||||
The syntax `a | b` may be used to signify that one of the listed types is accepted or returned.
|
||||
|
||||
The following syntax:
|
||||
|
||||
```haku
|
||||
{
|
||||
A : t
|
||||
B : u
|
||||
}
|
||||
```
|
||||
|
||||
is used for _records_---functions which take in a tag as a parameter, and return a value depending on what tag was passed.
|
||||
In the case above, if `A` is passed in a value of type `t` is returned, and if `B` is passed in a value of type `u` is returned.
|
||||
Passing in any other tag is an error.
|
||||
|
||||
|
||||
## Math
|
||||
|
@ -670,3 +684,35 @@ fill
|
|||
Creates a fill scribble, which fills in the entire area of the provided shape with a solid color.
|
||||
|
||||
Since this requires the shape to have a surface area, this does not do anything when point and `line` shapes are passed in.
|
||||
|
||||
|
||||
## Reticles
|
||||
|
||||
```haku
|
||||
withDotter
|
||||
cont : \{
|
||||
To : vec
|
||||
From : vec
|
||||
Num : number
|
||||
} -> scribble
|
||||
-> reticle
|
||||
```
|
||||
|
||||
The dotter is a reticle that allows the user to draw things on the wall directly under the mouse cursor.
|
||||
Once the user makes the interaction (presses the left mouse button), `cont` is called repeatedly with every movement of the mouse cursor, until the mouse button is released.
|
||||
|
||||
::: aside
|
||||
|
||||
It's not called a _plotter_ since the dotter does not plot lines or curves; it only places dots under the mouse cursor.
|
||||
|
||||
:::
|
||||
|
||||
During the interaction, `cont` is called with a record containing the following fields:
|
||||
|
||||
- `To` - the current position of the mouse cursor
|
||||
- `From` - the previous position of the mouse cursor. May be equal to `To` if the user just pressed the mouse button.
|
||||
- `Num` - the number of times `cont` has been called since the mouse cursor was pressed. Always greater or equal to `0`.
|
||||
|
||||
Since the dotter reticle finishes immediately (there is no extra interaction the user needs to take after pressing the mouse button for the action to be taken,) `cont` may only return a scribble; never another reticle.
|
||||
|
||||
The drawing area is a large, square, chunk-aligned perimeter around `To`.
|
||||
|
|
Loading…
Reference in a new issue