Skip to content

Commit 2c623a6

Browse files
feat!: move Region and related to Lodestone.Minecraft.Common, fix Lodestone.Minecraft.Common registries
1 parent ad531cd commit 2c623a6

34 files changed

Lines changed: 162 additions & 126 deletions

File tree

projects/Converters/Minecraft/Common/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ set(FILES
2626
include/Lodestone.Minecraft.Common/conversion/io/ObjectIOs.h
2727
include/Lodestone.Minecraft.Common/conversion/io/options/ChunkOptions.h
2828
include/Lodestone.Minecraft.Common/conversion/io/types/NbtOutputWritable.h
29+
include/Lodestone.Minecraft.Common/region/Region.h
30+
src/region/Region.cpp
31+
src/conversion/registry/Registries.cpp
32+
include/Lodestone.Minecraft.Common/conversion/io/interfaces/IRegionIo.h
2933
)
3034

3135
add_library(Lodestone.Minecraft.Common OBJECT ${FILES})

projects/Converters/Minecraft/Common/include/Lodestone.Minecraft.Common/Identifiers.h

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,26 @@
66
#include "Lodestone.Common/registry/Identifier.h"
77

88
namespace lodestone::minecraft::common::identifiers {
9-
inline constexpr const lodestone::common::registry::Identifier LEVEL_DATA_IO_REGISTRY = {
10-
"lodestone.minecraft.common", "registry/level_data_io"};
9+
namespace registry {
10+
inline constexpr const lodestone::common::registry::Identifier LEVEL_DATA_IO_REGISTRY = {
11+
"lodestone.minecraft.common", "registry/level_data_io"};
1112

12-
inline constexpr const lodestone::common::registry::Identifier NBT_IO = {
13-
"lodestone.minecraft.common", "io/nbt_io"};
13+
inline constexpr const lodestone::common::registry::Identifier REGION_IO_REGISTRY = {
14+
"lodestone", "registry/region_io"};
15+
}
1416

15-
inline constexpr const lodestone::common::registry::Identifier MINECRAFT_PLAYER = {
16-
"lodestone.minecraft.common", "entity/player"};
17+
namespace io {
18+
inline constexpr const lodestone::common::registry::Identifier REGION_IO = {
19+
"lodestone", "io/region"};
20+
21+
inline constexpr const lodestone::common::registry::Identifier NBT_IO = {
22+
"lodestone.minecraft.common", "io/nbt_io"};
23+
}
24+
25+
namespace entity {
26+
inline constexpr const lodestone::common::registry::Identifier MINECRAFT_PLAYER = {
27+
"lodestone.minecraft.common", "entity/player"};
28+
}
1729
} // namespace lodestone::minecraft::common::identifiers
1830

1931
#endif // LODESTONE_MINECRAFT_COMMON_NAMESPACES_H

projects/Converters/Minecraft/Common/include/Lodestone.Minecraft.Common/conversion/io/ObjectIOs.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@
77

88
#include "Lodestone.Common/registry/Identifier.h"
99
#include "Lodestone.Minecraft.Common/conversion/io/interfaces/ILevelDataIo.h"
10+
#include "Lodestone.Minecraft.Common/conversion/io/interfaces/IRegionIo.h"
1011
#include "Lodestone.Minecraft.Common/conversion/io/options/NbtOutputOptions.h"
1112
#include "Lodestone.Minecraft.Common/conversion/io/options/OptionPresets.h"
12-
#include "Lodestone.Minecraft.Common/conversion/io/types/NbtOutputWritable.h"
13+
#include "Lodestone.Minecraft.Common/region/Region.h"
1314

1415
#include <Lodestone.Conversion/io/AbstractObjectIo.h>
1516
#include <Lodestone.Conversion/io/options/OptionsBuilder.h>
1617
#include "Lodestone.Minecraft.Common/world/data/LevelData.h"
1718
#include <libnbt++/io/stream_writer.h>
1819

20+
#include <Lodestone.Conversion/io/interfaces/IWorldIo.h>
21+
#include <Lodestone.Conversion/io/interfaces/ILevelIo.h>
22+
#include <Lodestone.Conversion/io/interfaces/IPlayerIo.h>
23+
#include <Lodestone.Conversion/io/interfaces/IChunkIo.h>
24+
1925
namespace nbt {
2026
class tag_compound;
2127
}
@@ -26,6 +32,11 @@ namespace lodestone::minecraft::common::conversion::io {
2632
class LevelDataIO : public interfaces::ILevelDataIO,
2733
public lodestone::conversion::io::AbstractObjectIO<I, std::unique_ptr<world::data::LevelData>, world::data::LevelData *, RO, WO, WR> {};
2834

35+
template <const lodestone::common::registry::Identifier *I, typename RO, typename WO, typename WR = void>
36+
requires lodestone::common::util::concepts::void_or_derived_from_v<lodestone::conversion::io::options::IOptions, RO> && lodestone::common::util::concepts::void_or_derived_from_v<lodestone::conversion::io::options::IOptions, WO>
37+
class RegionIO : public interfaces::IRegionIO,
38+
public lodestone::conversion::io::AbstractObjectIO<I, std::unique_ptr<region::Region>, level::Level *, RO, WO, WR> {};
39+
2940
template <const lodestone::common::registry::Identifier *I, typename R, typename W, typename RO, typename WO>
3041
requires lodestone::common::util::concepts::void_or_derived_from_v<lodestone::conversion::io::options::IOptions, RO>
3142
&& lodestone::common::util::concepts::void_or_derived_from_v<lodestone::conversion::io::options::IOptions, WO>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// Created by DexrnZacAttack on 2/14/26 using zPc-i2.
3+
//
4+
#ifndef LODESTONE_IREGIONIO_H
5+
#define LODESTONE_IREGIONIO_H
6+
#include <Lodestone.Conversion/io/IObjectIo.h>
7+
8+
namespace lodestone::minecraft::common::conversion::io::interfaces {
9+
class IRegionIO : virtual public lodestone::conversion::io::IObjectIO {
10+
};
11+
}
12+
13+
#endif // LODESTONE_IREGIONIO_H
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
//
22
// Created by DexrnZacAttack on 2/14/26 using zPc-i2.
33
//
4-
#ifndef LODESTONE_REGISTRIES_H
5-
#define LODESTONE_REGISTRIES_H
4+
#ifndef LODESTONE_MINECRAFT_COMMON_REGISTRIES_H
5+
#define LODESTONE_MINECRAFT_COMMON_REGISTRIES_H
66
#include <Lodestone.Conversion/registry/Registries.h>
7+
78
#include <Lodestone.Conversion/registry/SingletonRegistry.h>
9+
#include "Lodestone.Minecraft.Common/conversion/io/ObjectIOs.h"
810

911
#include "Lodestone.Minecraft.Common/Identifiers.h"
1012
#include "Lodestone.Minecraft.Common/conversion/io/interfaces/ILevelDataIo.h"
1113

12-
namespace lodestone::minecraft::common::conversion::registry {
13-
CREATE_REGISTRY_ALIAS(LevelDataIORegistry, lodestone::conversion::registry::SingletonRegistry<&identifiers::LEVEL_DATA_IO_REGISTRY, const io::interfaces::ILevelDataIO>);
14+
namespace lodestone::conversion::registry {
15+
LODESTONE_CREATE_REGISTRY_ALIAS(LevelDataIORegistry, lodestone::conversion::registry::SingletonRegistry<&lodestone::minecraft::common::identifiers::registry::LEVEL_DATA_IO_REGISTRY, const lodestone::minecraft::common::conversion::io::interfaces::ILevelDataIO>);
16+
LODESTONE_CREATE_REGISTRY_ALIAS(RegionIORegistry, lodestone::conversion::registry::SingletonRegistry<&lodestone::minecraft::common::identifiers::registry::REGION_IO_REGISTRY, const lodestone::minecraft::common::conversion::io::interfaces::IRegionIO>);
1417
}
1518

16-
#endif // LODESTONE_REGISTRIES_H
19+
#endif // LODESTONE_MINECRAFT_COMMON_REGISTRIES_H
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//
2+
// Created by DexrnZacAttack on 11/9/25 using zPc-i2.
3+
//
4+
#ifndef LODESTONE_REGION_H
5+
#define LODESTONE_REGION_H
6+
#include <Lodestone.Level/FiniteLevel.h>
7+
8+
namespace lodestone::minecraft::common::region {
9+
/** A container which holds 32x32 chunks */
10+
class LODESTONE_API Region : public lodestone::level::FiniteLevel {
11+
public:
12+
static constexpr lodestone::level::types::Vec2i MAX_BOUNDS = {32, 32};
13+
14+
explicit Region(const lodestone::level::types::Vec2i &coords);
15+
16+
protected:
17+
lodestone::level::types::Vec2i m_coords;
18+
};
19+
} // namespace lodestone::minecraft::common::region
20+
21+
#endif // LODESTONE_REGION_H
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/** @file Registries.cpp
2+
*
3+
* @author DexrnZacAttack
4+
* @date 4/2/26
5+
*
6+
* @device zPc-i2
7+
*/
8+
#include "Lodestone.Minecraft.Common/conversion/registry/Registries.h"
9+
10+
namespace lodestone::conversion::registry {
11+
LODESTONE_IMPLEMENT_REGISTRY_GET_INSTANCE()
12+
13+
LODESTONE_IMPLEMENT_REGISTRY_ALIAS(lodestone::conversion::registry::SingletonRegistry<&lodestone::minecraft::common::identifiers::registry::REGION_IO_REGISTRY, const lodestone::minecraft::common::conversion::io::interfaces::IRegionIO>);
14+
LODESTONE_IMPLEMENT_REGISTRY_ALIAS(lodestone::conversion::registry::SingletonRegistry<&lodestone::minecraft::common::identifiers::registry::LEVEL_DATA_IO_REGISTRY, const lodestone::minecraft::common::conversion::io::interfaces::ILevelDataIO>);
15+
}

projects/Converters/Minecraft/Common/src/player/MinecraftPlayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ namespace lodestone::minecraft::common::player {
9090

9191
const lodestone::common::registry::Identifier *
9292
MinecraftPlayer::getType() const {
93-
return &identifiers::MINECRAFT_PLAYER;
93+
return &identifiers::entity::MINECRAFT_PLAYER;
9494
}
9595

9696
const Abilities &MinecraftPlayer::getAbilities() const {

projects/Libraries/Level/src/region/Region.cpp renamed to projects/Converters/Minecraft/Common/src/region/Region.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
//
22
// Created by DexrnZacAttack on 11/9/25 using zPc-i2.
33
//
4-
#include "Lodestone.Level/region/Region.h"
4+
#include "Lodestone.Minecraft.Common/region/Region.h"
55

6-
#include "Lodestone.Level/FiniteLevel.h"
7-
#include "Lodestone.Level/types/Vec2.h"
6+
#include <Lodestone.Level/FiniteLevel.h>
7+
#include <Lodestone.Level/types/Vec2.h>
88

9-
namespace lodestone::level::region {
10-
Region::Region(const types::Vec2i &coords)
9+
namespace lodestone::minecraft::common::region {
10+
Region::Region(const lodestone::level::types::Vec2i &coords)
1111
: level::FiniteLevel(
1212
{{// min
1313
coords.x * MAX_BOUNDS.x, coords.y * MAX_BOUNDS.y},

projects/Converters/Minecraft/Java/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION VERSION 3.30)
2-
project(Lodestone.Minecraft.Java VERSION 1.2.3)
2+
project(Lodestone.Minecraft.Java VERSION 1.2.4)
33
set(PROJECT_VERSION_DEV) # used for dev versions, otherwise blank
44

55
set(CMAKE_CXX_STANDARD 20)

0 commit comments

Comments
 (0)