core/curve with presets, keys, wraps; KindCurve in schema, scenes, prefabs and the inspector curve editor. modules/tween: tweens and timers in per-world pools, game and unscaled domains, script field targets via contracts/scriptfields. Host handle types (abi.Handle, bind.Handle, manifest v5), yield on awaitable handles via contracts/scriptwait. Script modules aego/curve, aego/tween, aego/timer; platformer enemy uses a cooldown and a fade-out tween. Docs: tween.md, curves.md, language reference; golden for the curve editor.
26 lines
447 B
Go
26 lines
447 B
Go
package scriptfields
|
|
|
|
import (
|
|
"aego/scene"
|
|
"aego/script/abi"
|
|
"aego/script/vm"
|
|
)
|
|
|
|
const ServiceID = "script.fields"
|
|
|
|
type Ref struct {
|
|
Node scene.NodeHandle
|
|
Instance vm.InstanceID
|
|
Script string
|
|
Field string
|
|
Kind abi.Kind
|
|
Slot int
|
|
Layout any
|
|
}
|
|
|
|
type Fields interface {
|
|
ResolveField(node scene.NodeHandle, script, field string) (Ref, bool)
|
|
LoadField(ref *Ref) (vm.Value, bool)
|
|
StoreField(ref *Ref, v vm.Value) bool
|
|
}
|