18class CircuitSceneGraph {
30 ::ll::TypedStorage<8, 8, ::BaseCircuitComponent*> mRawComponentPtr;
31 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BaseCircuitComponent>> mComponent;
32 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
48 using ComponentMap = ::std::unordered_map<::BlockPos, ::std::unique_ptr<::BaseCircuitComponent>>;
50 using ComponentsPerChunkMap = ::std::unordered_map<::BlockPos, ::ChunkCircuitComponentList>;
52 using ComponentsPerPosMap = ::std::unordered_map<::BlockPos, ::CircuitComponentList>;
57 ComponentMap mAllComponents;
58 ComponentsPerChunkMap mActiveComponentsPerChunk;
59 ComponentsPerPosMap mPowerAssociationMap;
60 ::std::unordered_map<::BlockPos, ::CircuitSceneGraph::PendingEntry> mPendingAdds;
61 ::std::unordered_map<::BlockPos, ::CircuitSceneGraph::PendingEntry> mPendingUpdates;
62 ::std::unordered_map<::BlockPos, ::std::vector<::BlockPos>> mComponentsToReEvaluate;
63 ::std::vector<::CircuitSceneGraph::PendingEntry> mPendingRemoves;
69 MCAPI CircuitSceneGraph();
71 MCAPI
void add(
::BlockPos const& pos, ::std::unique_ptr<::BaseCircuitComponent> component);
75 MCAPI
void invalidatePos(
::BlockPos const& pos);
77 MCAPI
void preSetupPoweredBlocks(
::ChunkPos const& chunkPos);
79 MCAPI
void processPendingAdds();
81 MCAPI
void removeComponent(
::BlockPos const& pos);
83 MCAPI
void removeStaleRelationships();
89 MCAPI ~CircuitSceneGraph();
Definition CircuitSceneGraph.h:26