![]() |
Recast
1
Game with custom magic
|
#include <ScalingGeneratableChunkedTemperatureWorldInjector.hpp>
Public Member Functions | |
ScalingGeneratableChunkedTemperatureWorldInjector () | |
bool | hasChunkBounds () const noexcept |
Parallelepiped | chunkBounds () const |
void | setChunkBounds (Parallelepiped chunkBounds) |
bool | hasTemperatureExchangeCoefficient () const noexcept |
double | temperatureExchangeCoefficient () const |
void | setTemperatureExchangeCoefficient (double temperatureExchangeCoefficient) |
bool | hasMinUpdateDelta () const noexcept |
std::chrono::milliseconds | minUpdateDelta () const |
void | setMinUpdateDelta (std::chrono::milliseconds minUpdateDelta) |
std::shared_ptr < ITemperatureWorldChunkableObservable < ITemperatureWorldChunkableGeneratable < ITemperatureWorldChunkableMutable < ITemperatureWorldChunkable < ITemperatureWorld > > > > > | world () |
std::shared_ptr< IUpdater > | updater () |
std::shared_ptr < ITimerBlockable< ITimer > > | timer () |
Protected Member Functions | |
void | _makeWorld () |
void | _makeUpdater () |
Static Protected Member Functions | |
static bool | _needChunkFn (Coord x, Coord y, Coord z) noexcept |
static std::shared_ptr < ITemperatureWorldBoundable < ITemperatureWorld > > | _makeChunkFn (Parallelepiped baseChunkBounds, Coord x, Coord y, Coord z) |
static std::shared_ptr < IUpdaterTemperatureWorldSemiChunkUpdatable < IUpdater > > | _makeChunkUpdaterFn (double temperatureExchangeCoefficient, std::function< std::shared_ptr< ITimerBlockable< ITimer >>()> timerFactory, std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) |
Protected Attributes | |
std::unique_ptr< Parallelepiped > | _chunkBounds |
std::unique_ptr< double > | _temperatureExchangeCoefficient |
std::unique_ptr < std::chrono::milliseconds > | _minUpdateDelta |
std::shared_ptr < ITemperatureWorldChunkableObservable < ITemperatureWorldChunkableGeneratable < ITemperatureWorldChunkableMutable < ITemperatureWorldChunkable < ITemperatureWorld > > > > > | _world |
std::shared_ptr< IUpdater > | _updater |
Injector. This class builds scaling chunked temperature world and its updater. You must set chunk bounds via setChunkBounds
method. These chunk bounds will be the same for all chunks. Temperature exchange coefficient and minimum update delta are set to defaults.
ScalingGeneratableChunkedTemperatureWorldInjector::ScalingGeneratableChunkedTemperatureWorldInjector | ( | ) |
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
|
staticprotectednoexcept |
Parallelepiped ScalingGeneratableChunkedTemperatureWorldInjector::chunkBounds | ( | ) | const |
This method can throw an exception if chunk bounds are not set.
|
noexcept |
This method is exception-safe.
|
noexcept |
This method is exception-safe.
|
noexcept |
This method is exception-safe.
milliseconds ScalingGeneratableChunkedTemperatureWorldInjector::minUpdateDelta | ( | ) | const |
Minimum time between world updates is the minimum update delta. This method can throw an exception if minimum update delta is not set.
void ScalingGeneratableChunkedTemperatureWorldInjector::setChunkBounds | ( | Parallelepiped | chunkBounds | ) |
Sets chunk bounds.
chunkBounds | Chunk bounds. |
void ScalingGeneratableChunkedTemperatureWorldInjector::setMinUpdateDelta | ( | std::chrono::milliseconds | minUpdateDelta | ) |
Sets minimum update delta. Minimum time between world updates is minimum update delta.
minUpdateDelta | Minimum update delta. |
void ScalingGeneratableChunkedTemperatureWorldInjector::setTemperatureExchangeCoefficient | ( | double | temperatureExchangeCoefficient | ) |
Sets temperature exchange coefficient. The more temperature exchange coefficient is, the faster temperature exchange will be.
temperatureExchangeCoefficient | Temperature exchange coefficient. |
double ScalingGeneratableChunkedTemperatureWorldInjector::temperatureExchangeCoefficient | ( | ) | const |
The more temperature exchange coefficient is, the faster temperature exchange will be. This method can throw an exception if temperature exchange coefficient is not set.
shared_ptr< ITimerBlockable< ITimer > > ScalingGeneratableChunkedTemperatureWorldInjector::timer | ( | ) |
Timer will be built on each call.
shared_ptr< IUpdater > ScalingGeneratableChunkedTemperatureWorldInjector::updater | ( | ) |
Temperature world updater will be built only once for an injector instance. You can get the world via world
getter.
shared_ptr< ITemperatureWorldChunkableObservable< ITemperatureWorldChunkableGeneratable< ITemperatureWorldChunkableMutable< ITemperatureWorldChunkable< ITemperatureWorld > > > > > ScalingGeneratableChunkedTemperatureWorldInjector::world | ( | ) |
Temperature world will be built only once for an injector instance. updater
getter uses the same world instance.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |