22 lines
372 B
Go
22 lines
372 B
Go
|
package pointer
|
||
|
|
||
|
import "git.adyxax.org/adyxax/gofunge/pkg/field"
|
||
|
|
||
|
type Pointer struct {
|
||
|
x int
|
||
|
y int
|
||
|
delta *Delta
|
||
|
}
|
||
|
|
||
|
func NewPointer() *Pointer {
|
||
|
return &Pointer{delta: NewDelta(1, 0)}
|
||
|
}
|
||
|
|
||
|
func (p Pointer) ForkPointer() *Pointer {
|
||
|
return &p // p is already a copy
|
||
|
}
|
||
|
|
||
|
func (p *Pointer) Step(f field.Field) {
|
||
|
p.x, p.y = f.Step(p.x, p.y, p.delta.x, p.delta.y)
|
||
|
}
|