void FVehicleTraffic::DeserializeFromJson()

in Ambit/Source/Ambit/Mode/VehicleTraffic.cpp [35:82]


void FVehicleTraffic::DeserializeFromJson(TSharedPtr<FJsonObject> JsonObject)
{
    FString Warnings;
    if (JsonObject->HasField(JsonConstants::KMinKey))
    {
        FString TempMessage;

        const float IncomingMin = JsonObject->GetNumberField(JsonConstants::KMinKey);
        this->Min = FMathHelpers::ClampBoundary(IncomingMin, 0.f, 1.f, TEXT("vehicle density min"), TempMessage);

        if (!TempMessage.IsEmpty())
        {
            Warnings.Append(TempMessage + LINE_TERMINATOR);
        }
    }

    if (JsonObject->HasField(JsonConstants::KMaxKey))
    {
        FString TempMessage;

        const float IncomingMax = JsonObject->GetNumberField(JsonConstants::KMaxKey);
        this->Max = FMathHelpers::ClampBoundary(IncomingMax, 0.f, 1.f, TEXT("vehicle density max"), TempMessage);

        if (!TempMessage.IsEmpty())
        {
            Warnings.Append(TempMessage + LINE_TERMINATOR);
        }
    }

    if (JsonObject->HasField(JsonConstants::KIncrementKey))
    {
        FString TempMessage;

        const float IncomingIncrement = JsonObject->GetNumberField(JsonConstants::KIncrementKey);
        this->Increment = FMathHelpers::ClampBoundary(IncomingIncrement, 0.1f, 0.1f, TEXT("vehicle density increment"),
                                                      TempMessage);

        if (!TempMessage.IsEmpty())
        {
            Warnings.Append(TempMessage + LINE_TERMINATOR);
        }
    }

    if (!Warnings.IsEmpty())
    {
        FMenuHelpers::LogErrorAndPopup(Warnings);
    }
}