import (
_ "embed"
- "github.com/dragonfireclient/hydra/tolua"
+ "github.com/dragonfireclient/hydra-dragonfire/convert"
"github.com/yuin/gopher-lua"
"os"
"os/signal"
var lastTime = time.Now()
var canceled = false
+var serializeVer uint8 = 28
+var protoVer uint16 = 39
+
+//go:embed builtin/luax/init.lua
+var builtinLuaX string
+
//go:embed builtin/vector.lua
-var vectorLibrary string
+var builtinVector string
+
+//go:embed builtin/escapes.lua
+var builtinEscapes string
+
+//go:embed builtin/client.lua
+var builtinClient string
+
+var builtinFiles = []string{
+ builtinLuaX,
+ builtinVector,
+ builtinEscapes,
+ builtinClient,
+}
var hydraFuncs = map[string]lua.LGFunction{
"client": l_client,
} else {
l.Push(client.userdata)
}
- l.Push(tolua.Pkt(l, pkt))
+ l.Push(convert.PushPkt(l, pkt))
l.Push(lua.LBool(timeout))
return 3
}
hydra := l.SetFuncs(l.NewTable(), hydraFuncs)
l.SetField(hydra, "BS", lua.LNumber(10.0))
+ l.SetField(hydra, "serialize_ver", lua.LNumber(serializeVer))
+ l.SetField(hydra, "proto_ver", lua.LNumber(protoVer))
l.SetGlobal("hydra", hydra)
l.SetField(l.NewTypeMetatable("hydra.auth"), "__index", l.SetFuncs(l.NewTable(), authFuncs))
l.SetField(l.NewTypeMetatable("hydra.client"), "__index", l.NewFunction(l_client_index))
- if err := l.DoString(vectorLibrary); err != nil {
- panic(err)
+ for _, str := range builtinFiles {
+ if err := l.DoString(str); err != nil {
+ panic(err)
+ }
}
if err := l.DoFile(os.Args[1]); err != nil {