LeviLamina
Loading...
Searching...
No Matches
KnownTileHandles.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/oreui/IGeometryAtlasKnownTilesReader.h"
7#include "mc/client/gui/oreui/IGeometryAtlasKnownTilesWriter.h"
8#include "mc/deps/core/threading/SharedLockbox.h"
9#include "mc/platform/brstd/flat_map.h"
10#include "mc/platform/brstd/move_only_function.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace GeometryAtlas { class IAtlasTile; }
15namespace GeometryAtlas { struct TileDefinition; }
16// clang-format on
17
18namespace OreUI {
19
20class KnownTileHandles : public ::OreUI::IGeometryAtlasKnownTilesWriter,
21 public ::OreUI::IGeometryAtlasKnownTilesReader {
22public:
23 // KnownTileHandles inner types define
24 using Map = ::brstd::flat_map<
25 uint,
26 ::std::weak_ptr<::GeometryAtlas::IAtlasTile>,
27 ::std::less<uint>,
28 ::std::vector<uint>,
29 ::std::vector<::std::weak_ptr<::GeometryAtlas::IAtlasTile>>>;
30
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<
35 8,
36 56,
37 ::Bedrock::Threading::SharedLockbox<
38 ::brstd::flat_map<
39 uint,
40 ::std::weak_ptr<::GeometryAtlas::IAtlasTile>,
41 ::std::less<uint>,
42 ::std::vector<uint>,
43 ::std::vector<::std::weak_ptr<::GeometryAtlas::IAtlasTile>>>,
44 ::std::shared_mutex>>
45 mTiles;
46 ::ll::TypedStorage<1, 1, uchar> mGCTimer;
47 ::ll::TypedStorage<
48 8,
49 64,
50 ::brstd::move_only_function<
51 ::std::shared_ptr<::GeometryAtlas::IAtlasTile>(::GeometryAtlas::TileDefinition const&)>>
52 mFactory;
53 // NOLINTEND
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ::std::shared_ptr<::GeometryAtlas::IAtlasTile> tryGet(uint id) /*override*/;
59
60 virtual ::gsl::not_null<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>
61 getOrCreate(::GeometryAtlas::TileDefinition const& definition) /*override*/;
62
63 virtual void garbageCollect() /*override*/;
64 // NOLINTEND
65
66public:
67 // virtual function thunks
68 // NOLINTBEGIN
69 MCAPI ::std::shared_ptr<::GeometryAtlas::IAtlasTile> $tryGet(uint id);
70
71 MCAPI ::gsl::not_null<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>
72 $getOrCreate(::GeometryAtlas::TileDefinition const& definition);
73
74 MCAPI void $garbageCollect();
75 // NOLINTEND
76};
77
78} // namespace OreUI
Definition IAtlasTile.h:7
Definition KnownTileHandles.h:7
Definition TileDefinition.h:7