zworld-demo/engine/world.go

27 lines
419 B
Go
Raw Permalink Normal View History

2023-12-22 22:04:27 +08:00
package engine
import (
"zworld/engine/rule"
)
type FWorldRuleWrap struct {
TimeRule *rule.FTimeRule
ActorRule *rule.FActorRule
}
type FWorld struct {
Name string
RuleList []IRule
RuleWrap *FWorldRuleWrap
}
func (w *FWorld) Tick() {
delta := w.RuleWrap.TimeRule.GetInterval()
if delta == 0 {
w.RuleWrap.TimeRule.Tick(w, delta)
return
}
for _, rule := range w.RuleList {
rule.Tick(w, delta)
}
}