8#include "CoreMinimal.h"
9#include "GameFramework/Actor.h"
10#include "Engine/World.h"
15#include "ROSIntegration/Public/std_msgs/String.h"
17#include "Weather.generated.h"
19class UROSIntegrationGameInstance;
36 AWeather(
const FObjectInitializer& ObjectInitializer);
43 UFUNCTION(BlueprintCallable)
49 UFUNCTION(BlueprintCallable)
50 FString ExportToJSON(
const FString& FileName);
55 UFUNCTION(BlueprintCallable)
61 UFUNCTION(BlueprintCallable, BlueprintPure)
69 UFUNCTION(BlueprintCallable, BlueprintPure)
70 ESeason GetSeasonForMonth(
const int Month);
75 UFUNCTION(BlueprintCallable)
78 return CurrentWeather;
84 UPROPERTY(BlueprintAssignable)
85 FLevelEventDelegate_WeatherChanged OnWeatherChanged;
89 virtual
void BeginPlay() override;
91 virtual
void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
96 void ROSBridgeStateChanged(
EROSState ROSState);
100 void InitializeROSTopic();
107 UTopic* WeatherTopic =
nullptr;
110 UROSIntegrationGameInstance* RosInstance =
nullptr;
112 bool ROSConnected = false;
117 TSharedPtr<ROSMessages::std_msgs::String> Message;
119 const
FWeatherParameters Default = { 0.0f, 0.0f, 0.1f, 0.05f, 0.0f, 0.2f, 0.0f, 15.0f, 0.0f, 0.0f, 7, 9 };
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FLevelEventDelegate_WeatherChanged, FWeatherParameters, weatherParameters)