protected override IEnumerator ExecuteRoutine() { SimSerializationOperationWithCache serializeOp = new SimSerializationOperationWithCache(_simulationWorld); yield return(ExecuteSubOperationAndWaitForSuccess(serializeOp)); s_SerializedSimulation = serializeOp.SerializationData; TerminateWithSuccess(); }
protected override IEnumerator ExecuteRoutine() { // Serialize sim SimSerializationOperationWithCache serializeOp = new SimSerializationOperationWithCache(_simulationWorld); yield return(ExecuteSubOperationAndWaitForSuccess(serializeOp)); byte[] serializedData = serializeOp.SerializationData; // Save data to file yield return(ExecuteSubOperationAndWaitForSuccess(new WriteBytesToDiskOperation(serializedData, _filePath))); TerminateWithSuccess($"Simulation saved to file: {_filePath}"); }
protected override IEnumerator ExecuteRoutine() { Log.Info("repack begin: " + ((SimulationWorld)NewWorld).GetLastTickIdFromEntity()); // Serialize sim SimSerializationOperationWithCache serializeOp = new SimSerializationOperationWithCache(_currentWorld); yield return(ExecuteSubOperationAndWaitForSuccess(serializeOp)); // deserialize sim SimDeserializationOperation deserializeOp = new SimDeserializationOperation(serializeOp.SerializationData, NewWorld); yield return(ExecuteSubOperationAndWaitForSuccess(deserializeOp)); Log.Info("repack end: " + ((SimulationWorld)NewWorld).GetLastTickIdFromEntity()); // Terminate TerminateWithSuccess($"Simulation world packed into new world."); }
protected override IEnumerator ExecuteRoutine() { // Serialize sim SimSerializationOperationWithCache serializeOp = new SimSerializationOperationWithCache(_simulationWorld); yield return(ExecuteSubOperationAndWaitForSuccess(serializeOp)); // Transfer sim NetMessageSerializedSimulation netMessage = new NetMessageSerializedSimulation() { SerializedSimulation = serializeOp.SerializationData }; var transferOp = _sessionInterface.BeginLargeDataTransfer(netMessage, _client, description: $"Simulation-{((SimulationWorld)_simulationWorld).GetLastTickIdFromEntity()}"); yield return(ExecuteSubOperationAndWaitForSuccess(transferOp)); // Terminate TerminateWithSuccess($"Simulation sent to client."); }