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
19public:
20 // CircuitSceneGraph inner types declare
21 // clang-format off
22 class PendingEntry;
23 // clang-format on
24
25 // CircuitSceneGraph inner types define
26 using ComponentMap = ::std::unordered_map<::BlockPos, ::std::unique_ptr<::BaseCircuitComponent>>;
27
28 using ComponentsPerPosMap = ::std::unordered_map<::BlockPos, ::CircuitComponentList>;
29
30 using ComponentsPerChunkMap = ::std::unordered_map<::BlockPos, ::ChunkCircuitComponentList>;
31
33 public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 8, ::BaseCircuitComponent*> mRawComponentPtr;
37 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BaseCircuitComponent>> mComponent;
38 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
39 // NOLINTEND
40
41 public:
42 // member functions
43 // NOLINTBEGIN
44 MCAPI ~PendingEntry();
45 // NOLINTEND
46
47 public:
48 // destructor thunk
49 // NOLINTBEGIN
50 MCFOLD void $dtor();
51 // NOLINTEND
52 };
53
54public:
55 // member variables
56 // NOLINTBEGIN
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;
64 // NOLINTEND
65
66public:
67 // member functions
68 // NOLINTBEGIN
69 MCAPI CircuitSceneGraph();
70
71 MCAPI void add(::BlockPos const& pos, ::std::unique_ptr<::BaseCircuitComponent> component);
72
73 MCAPI void findRelationships(::BlockPos const& pos, ::BaseCircuitComponent* producerTarget, ::BlockSource* region);
74
75 MCAPI void invalidatePos(::BlockPos const& pos);
76
77 MCAPI void preSetupPoweredBlocks(::ChunkPos const& chunkPos);
78
79 MCAPI void processPendingAdds();
80
81 MCAPI void removeComponent(::BlockPos const& pos);
82
83 MCAPI void removeStaleRelationships();
84
85 MCAPI void scheduleRelationshipUpdate(::BlockPos const& pos, ::BaseCircuitComponent* component);
86
87 MCAPI void update(::BlockSource* region);
88
89 MCAPI ~CircuitSceneGraph();
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor();
96 // NOLINTEND
97
98public:
99 // destructor thunk
100 // NOLINTBEGIN
101 MCAPI void $dtor();
102 // NOLINTEND
103};
Definition BaseCircuitComponent.h:19
Definition BlockPos.h:17
Definition BlockSource.h:66
Definition ChunkPos.h:11
Definition CircuitComponentList.h:14
Definition CircuitSceneGraph.h:32
Definition CircuitSceneGraph.h:18
Definition ChunkCircuitComponentList.h:14