Refactor settings types to use scripting API
This commit is contained in:
@@ -461,13 +461,13 @@ bool GenerateTile(NavigationScene* scene, int32 x, int32 y, BoundingBox& tileBou
|
||||
|
||||
float GetTileSize()
|
||||
{
|
||||
auto& settings = *NavigationSettings::Instance();
|
||||
auto& settings = *NavigationSettings::Get();
|
||||
return settings.CellSize * settings.TileSize;
|
||||
}
|
||||
|
||||
void InitConfig(rcConfig& config)
|
||||
{
|
||||
auto& settings = *NavigationSettings::Instance();
|
||||
auto& settings = *NavigationSettings::Get();
|
||||
|
||||
config.cs = settings.CellSize;
|
||||
config.ch = settings.CellHeight;
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
|
||||
|
||||
#include "Navigation.h"
|
||||
#include "NavigationSettings.h"
|
||||
#include "NavMeshRuntime.h"
|
||||
#include "NavMeshBuilder.h"
|
||||
#include "Engine/Core/Config/GameSettings.h"
|
||||
#include "Engine/Content/Content.h"
|
||||
#include "Engine/Content/JsonAsset.h"
|
||||
#include "Engine/Threading/Threading.h"
|
||||
#include "Engine/Level/Scene/Scene.h"
|
||||
#include "Engine/Engine/EngineService.h"
|
||||
@@ -55,6 +59,8 @@ void* rcAllocDefault(size_t size, rcAllocHint)
|
||||
return Allocator::Allocate(size);
|
||||
}
|
||||
|
||||
IMPLEMENT_SETTINGS_GETTER(NavigationSettings, Navigation);
|
||||
|
||||
bool NavigationService::Init()
|
||||
{
|
||||
// Link memory allocation calls to use engine default allocator
|
||||
|
||||
8
Source/Engine/Navigation/NavigationSettings.cs
Normal file
8
Source/Engine/Navigation/NavigationSettings.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2012-2020 Wojciech Figat. All rights reserved.
|
||||
|
||||
namespace FlaxEditor.Content.Settings
|
||||
{
|
||||
partial class NavigationSettings
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
/// <summary>
|
||||
/// The navigation system settings container.
|
||||
/// </summary>
|
||||
API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API NavigationSettings : public SettingsBase<NavigationSettings>
|
||||
API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API NavigationSettings : public SettingsBase
|
||||
{
|
||||
DECLARE_SCRIPTING_TYPE_MINIMAL(NavigationSettings);
|
||||
public:
|
||||
@@ -94,24 +94,12 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
CellHeight = 10.0f;
|
||||
CellSize = 30.0f;
|
||||
TileSize = 64;
|
||||
MinRegionArea = 0;
|
||||
MergeRegionArea = 20;
|
||||
MaxEdgeLen = 1200.0f;
|
||||
MaxEdgeError = 1.3f;
|
||||
DetailSamplingDist = 600.0f;
|
||||
MaxDetailSamplingError = 1.0f;
|
||||
WalkableRadius = 34.0f;
|
||||
WalkableHeight = 144.0f;
|
||||
WalkableMaxClimb = 35.0f;
|
||||
WalkableMaxSlopeAngle = 60.0f;
|
||||
}
|
||||
/// <summary>
|
||||
/// Gets the instance of the settings asset (default value if missing). Object returned by this method is always loaded with valid data to use.
|
||||
/// </summary>
|
||||
static NavigationSettings* Get();
|
||||
|
||||
// [SettingsBase]
|
||||
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override
|
||||
{
|
||||
DESERIALIZE(CellHeight);
|
||||
|
||||
Reference in New Issue
Block a user