Exemplo n.º 1
0
    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.");
    }
Exemplo n.º 4
0
    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.");
    }