1
0
Fork 0
microworlds/actors/woodchips.go

39 lines
627 B
Go
Raw Normal View History

2019-08-03 02:00:33 +00:00
package actors
import (
"git.openprivacy.ca/sarah/microworlds/core"
)
type WoodChips struct {
SniffDistance int
2019-08-03 05:14:56 +00:00
Carrying bool
2019-08-03 02:00:33 +00:00
}
2019-08-03 05:14:56 +00:00
func (a *WoodChips) Setup(env *core.Environment, t *core.Turtle) {
2019-08-03 02:00:33 +00:00
//t.SetXY(150,150)
}
2019-08-03 05:14:56 +00:00
func (a *WoodChips) Run(env *core.Environment, t *core.Turtle) {
2019-08-03 02:00:33 +00:00
if a.Carrying {
if env.HasValue(t.Pos()) {
2019-08-03 05:14:56 +00:00
for {
2019-08-03 02:00:33 +00:00
t.Wiggle()
t.Step(env)
2019-08-03 05:14:56 +00:00
if !env.HasValue(t.Pos()) {
2019-08-03 02:00:33 +00:00
env.PutValue(t.Pos())
a.Carrying = false
break
}
}
}
} else {
if env.HasValue(t.Pos()) {
env.TakeValue(t.Pos())
a.Carrying = true
t.TurnAround()
}
}
t.Wiggle()
t.Step(env)
2019-08-03 05:14:56 +00:00
}