import 'package:flame/game.dart'; import 'package:flutter/widgets.dart'; import '../diagnostics/runtime_diagnostics.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) { final diagnostics = RuntimeDiagnostics(); return GameWidget( game: FlameLuaGame( scriptEngine: LuaDardoScriptEngine(diagnostics: diagnostics), scriptEngineFactory: () => LuaDardoScriptEngine(diagnostics: diagnostics), diagnostics: diagnostics, packageRepository: packageRepository ?? (serverUrl == null ? AssetGamePackageRepository(runtimeOptions: runtimeOptions) : RemoteGamePackageRepository( baseUri: serverUrl!, runtimeOptions: runtimeOptions, )), gameId: gameId, runtimeOptions: runtimeOptions, localeOverride: localeOverride, ), ); } }