LeviLamina
Loading...
Searching...
No Matches
CircuitSceneGraph.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/level/BlockPos.h"
5
6// auto generated inclusion list
7#include "mc/world/level/BlockPos.h"
8
9// auto generated forward declare list
10// clang-format off
12class BlockSource;
13class ChunkPos;
16// clang-format on
17
18class CircuitSceneGraph {
19public:
20 // CircuitSceneGraph inner types declare
21 // clang-format off
22 class PendingEntry;
23 // clang-format on
24
25 // CircuitSceneGraph inner types define
27 public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 8, ::BaseCircuitComponent*> mRawComponentPtr;
31 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BaseCircuitComponent>> mComponent;
32 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
33 // NOLINTEND
34 };
35
36 using ComponentMap = ::std::unordered_map<::BlockPos, ::std::unique_ptr<::BaseCircuitComponent>>;
37
38 using ComponentsPerChunkMap = ::std::unordered_map<::BlockPos, ::ChunkCircuitComponentList>;
39
40 using ComponentsPerPosMap = ::std::unordered_map<::BlockPos, ::CircuitComponentList>;
41
42public:
43 // member variables
44 // NOLINTBEGIN
45 ComponentMap mAllComponents;
46 ComponentsPerChunkMap mActiveComponentsPerChunk;
47 ComponentsPerPosMap mPowerAssociationMap;
48 ::std::unordered_map<::BlockPos, ::CircuitSceneGraph::PendingEntry> mPendingAdds;
49 ::std::unordered_map<::BlockPos, ::CircuitSceneGraph::PendingEntry> mPendingUpdates;
50 ::std::unordered_map<::BlockPos, ::std::vector<::BlockPos>> mComponentsToReEvaluate;
51 ::std::vector<::CircuitSceneGraph::PendingEntry> mPendingRemoves;
52 // NOLINTEND
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI CircuitSceneGraph();
58
59 MCAPI void add(::BlockPos const& pos, ::std::unique_ptr<::BaseCircuitComponent> component);
60
61 MCAPI void invalidatePos(::BlockPos const& pos);
62
63 MCAPI void preSetupPoweredBlocks(::ChunkPos const& chunkPos);
64
65 MCAPI void remove(::BlockPos const& pos, ::BaseCircuitComponent* component);
66
67 MCAPI void update(::BlockSource* region);
68
69 MCAPI ~CircuitSceneGraph();
70 // NOLINTEND
71
72public:
73 // constructor thunks
74 // NOLINTBEGIN
75 MCAPI void* $ctor();
76 // NOLINTEND
77
78public:
79 // destructor thunk
80 // NOLINTBEGIN
81 MCAPI void $dtor();
82 // NOLINTEND
83};
Definition BaseCircuitComponent.h:19
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition ChunkPos.h:13
Definition CircuitComponentList.h:14
Definition CircuitSceneGraph.h:26
Definition ChunkCircuitComponentList.h:14