Add regional temperature curve

This commit is contained in:
2026-05-15 21:53:10 -07:00
parent 8ee1f83b16
commit ca2c3ee3db
5 changed files with 172 additions and 5 deletions
+27
View File
@@ -34,6 +34,24 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World")
float AmbientTemperatureC = 12.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature")
float RegionalDailyLowTemperatureC = 9.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature")
float RegionalDailyHighTemperatureC = 18.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature")
float RegionalObservedTemperatureC = 12.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature", meta = (ClampMin = "0.0", ClampMax = "1.0"))
float ObservedTemperatureBlend = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature")
bool bHasRegionalObservedTemperature = false;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Temperature")
FString RegionalWeatherSource = TEXT("deterministic_tile_curve");
UPROPERTY(EditAnywhere, BlueprintReadOnly, Replicated, Category = "Agrarian|World|Tile Solar")
FName ActiveSolarTileId = TEXT("gz_us_ca_pacifica_utm10n_e544_n4160");
@@ -79,6 +97,15 @@ public:
UFUNCTION(BlueprintCallable, Category = "Agrarian|World")
void SetWeather(EAgrarianWeatherType NewWeather);
UFUNCTION(BlueprintCallable, Category = "Agrarian|World|Temperature")
void SetRegionalTemperatureProfile(float DailyLowTemperatureC, float DailyHighTemperatureC);
UFUNCTION(BlueprintCallable, Category = "Agrarian|World|Temperature")
void SetRegionalObservedTemperature(float ObservedTemperatureC, float BlendWeight, const FString& WeatherSource);
UFUNCTION(BlueprintPure, Category = "Agrarian|World|Temperature")
float GetClearSkyTemperatureForHour(float HourOfDay) const;
UFUNCTION(BlueprintCallable, Category = "Agrarian|World|Tile Solar")
bool ConfigureActiveSolarTile(FName TileId, float Latitude, float Longitude, const FString& TimeZoneId, float UtcOffsetHours);