import 'package:get/get.dart'; import 'package:isar/isar.dart'; import 'package:trackoffical_app/pb.dart' as pb; part 'game_state.g.dart'; @collection class GameStateData { Id id = 0; List pbGameData = List.empty(); List pbGameSave = List.empty(); String name = ''; GameState toState() { return GameState() ..name = name ..timeLocalServerDiff = Duration(microseconds: timeLocalServerDiffMicro); // ..pbGameData = pb.GameData.fromBuffer(pbGameData) // ..pbGameSave = pb.GameSave.fromBuffer(pbGameSave); } int timeLocalServerDiffMicro = 0; } class GameState { String name = ''; // pb.GameData pbGameData = pb.GameData(); // pb.GameSave pbGameSave = pb.GameSave(); Duration timeLocalServerDiff = 0.seconds; DateTime get createTime => DateTime.now(); //pbGameData.gameStart.toDateTime().toLocal(); GameStateData get data { return GameStateData() ..name = name ..timeLocalServerDiffMicro = timeLocalServerDiff.inMicroseconds; // ..pbGameData = pbGameData.writeToBuffer() // ..pbGameSave = pbGameSave.writeToBuffer(); } } // extension GameDataExtension on pb.GameData { // GameState toGameState() { // final save = pb.GameSave() // ..gameId=gameId; // final localNow = DateTime.now(); // final serverNow = gameStart.toDateTime(); // // return GameState() // ..timeLocalServerDiff = localNow.difference(serverNow) // ..pbGameData = this // ..pbGameSave = save; // } // }