| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #pragma once
- #include <ReferenceCounter.h>
- #include <Vec3.h>
- #include "Area.h"
- #include "TypeRegistry.h"
- class Block;
- class Chunk;
- class BlockFilter;
- class OrientationConfig : public virtual Framework::ReferenceCounter
- {
- public:
- OrientationConfig();
- virtual Direction calculateOrientation(
- Framework::Vec3<int> pos, int dimensionId, Chunk* zChunk) const
- = 0;
- };
- class AttachToNeighborOrientationConfig : public OrientationConfig
- {
- private:
- Directions validDirections;
- BlockFilter* filter;
- public:
- AttachToNeighborOrientationConfig();
- ~AttachToNeighborOrientationConfig();
- Direction calculateOrientation(Framework::Vec3<int> pos,
- int dimensionId,
- Chunk* zChunk) const override;
- void setValidDirections(Directions validDirections);
- Directions getValidDirections() const;
- void setFilter(BlockFilter* filter);
- BlockFilter* zFilter() const;
- };
- class AttachToNeighborOrientationConfigFactory
- : public SubTypeFactory<OrientationConfig,
- AttachToNeighborOrientationConfig>
- {
- public:
- AttachToNeighborOrientationConfigFactory();
- AttachToNeighborOrientationConfig* fromJson(
- Framework::JSON::JSONObject* zJson) const override;
- Framework::JSON::JSONObject* toJsonObject(
- AttachToNeighborOrientationConfig* zObject) const override;
- JSONObjectValidationBuilder* addToValidator(
- JSONObjectValidationBuilder* builder) const override;
- const char* getTypeToken() const override;
- };
|