Initial flame_lua_runtime package

This commit is contained in:
gem
2026-06-07 22:53:58 +08:00
commit 733b2fb798
262 changed files with 28439 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import 'package:flame/game.dart';
import 'package:flutter/widgets.dart';
import '../packages/game_package_repository.dart';
import '../scripting/lua_dardo_script_engine.dart';
import 'flame_lua_game.dart';
import 'runtime_options.dart';
class LuaGameWidget extends StatelessWidget {
const LuaGameWidget({
required this.gameId,
this.packageRepository,
this.serverUrl,
this.localeOverride,
this.runtimeOptions = const RuntimeOptions(),
super.key,
});
final String gameId;
final GamePackageRepository? packageRepository;
final Uri? serverUrl;
final Locale? localeOverride;
final RuntimeOptions runtimeOptions;
@override
Widget build(BuildContext context) {
return GameWidget(
game: FlameLuaGame(
scriptEngine: LuaDardoScriptEngine(),
scriptEngineFactory: LuaDardoScriptEngine.new,
packageRepository:
packageRepository ??
(serverUrl == null
? AssetGamePackageRepository(runtimeOptions: runtimeOptions)
: RemoteGamePackageRepository(
baseUri: serverUrl!,
runtimeOptions: runtimeOptions,
)),
gameId: gameId,
runtimeOptions: runtimeOptions,
localeOverride: localeOverride,
),
);
}
}