Plasma Engine  2.0
Loading...
Searching...
No Matches
PlacementTile.h
1#pragma once
2
3#include <Core/World/Declarations.h>
4#include <Foundation/Types/UniquePtr.h>
5#include <ProcGenPlugin/Declarations.h>
6
8
9namespace plProcGenInternal
10{
12 {
13 public:
17
18 void Initialize(const PlacementTileDesc& desc, plSharedPtr<const PlacementOutput>& ref_pOutput);
19 void Deinitialize(plWorld& ref_world);
20
21 bool IsValid() const;
22
23 const PlacementTileDesc& GetDesc() const;
24 const PlacementOutput* GetOutput() const;
25 plArrayPtr<const plGameObjectHandle> GetPlacedObjects() const;
26 plBoundingBox GetBoundingBox() const;
27 plColor GetDebugColor() const;
28
29 void PreparePlacementData(const plWorld* pWorld, const plPhysicsWorldModuleInterface* pPhysicsModule, PlacementData& ref_placementData);
30
31 plUInt32 PlaceObjects(plWorld& ref_world, plArrayPtr<const PlacementTransform> objectTransforms);
32
33 private:
34 PlacementTileDesc m_Desc;
36
37 struct State
38 {
39 enum Enum
40 {
41 Invalid,
42 Initialized,
43 Scheduled,
44 Finished
45 };
46 };
47
48 State::Enum m_State = State::Invalid;
50 };
51} // namespace plProcGenInternal
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
Definition DynamicArray.h:81
Definition PhysicsWorldModule.h:109
Definition PlacementTile.h:12
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10
A world encapsulates a scene graph of game objects and various component managers and their component...
Definition World.h:22
Definition PlacementData.h:12
Definition Declarations.h:186
Definition Declarations.h:280