Files
BluTac10-Xbox_Neo/Minecraft.World/StructureFeatureIO.h
Lord_Cambion 720e1a77a4 feat: oceanMonument
feat: Mesa biomes
feat: changed world generation according to java
fix: swamp hut changed to spruce
2026-04-07 19:41:14 +02:00

108 lines
3.2 KiB
C++

#pragma once
class StructurePiece;
class StructureStart;
typedef StructurePiece *(*structurePieceCreateFn)();
typedef StructureStart *(*structureStartCreateFn)();
enum EStructureStart
{
eStructureStart_MineShaftStart,
eStructureStart_VillageStart,
eStructureStart_NetherBridgeStart,
eStructureStart_StrongholdStart,
eStructureStart_ScatteredFeatureStart,
eStructureStart_Monument,
};
enum EStructurePiece
{
eStructurePiece_MineShaftRoom,
eStructurePiece_MineShaftCorridor,
eStructurePiece_MineShaftCrossing,
eStructurePiece_MineShaftStairs,
eStructurePiece_BridgeStraight,
eStructurePiece_BridgeEndFiller,
eStructurePiece_BridgeCrossing,
eStructurePiece_RoomCrossing,
eStructurePiece_StairsRoom,
eStructurePiece_MonsterThrone,
eStructurePiece_CastleEntrance,
eStructurePiece_CastleStalkRoom,
eStructurePiece_CastleSmallCorridorPiece,
eStructurePiece_CastleSmallCorridorCrossingPiece,
eStructurePiece_CastleSmallCorridorRightTurnPiece,
eStructurePiece_CastleSmallCorridorLeftTurnPiece,
eStructurePiece_CastleCorridorStairsPiece,
eStructurePiece_CastleCorridorTBalconyPiece,
eStructurePiece_NetherBridgeStartPiece,
eStructurePiece_DesertPyramidPiece,
eStructurePiece_JunglePyramidPiece,
eStructurePiece_SwamplandHut,
eStructurePiece_OceanMonumentBuilding,
eStructurePiece_OceanMonumentCore,
eStructurePiece_OceanMonumentDoubleX,
eStructurePiece_OceanMonumentDoubleXY,
eStructurePiece_OceanMonumentDoubleY,
eStructurePiece_OceanMonumentDoubleYZ,
eStructurePiece_OceanMonumentDoubleZ,
eStructurePiece_OceanMonumentEntry,
eStructurePiece_OceanMonumentPenthouse,
eStructurePiece_OceanMonumentSimple,
eStructurePiece_OceanMonumentSimpleTop,
eStructurePiece_OceanMonumentWing,
eStructurePiece_FillerCorridor,
eStructurePiece_StairsDown,
eStructurePiece_Straight,
eStructurePiece_ChestCorridor,
eStructurePiece_StraightStairsDown,
eStructurePiece_LeftTurn,
eStructurePiece_RightTurn,
eStructurePiece_StrongholdRoomCrossing,
eStructurePiece_PrisonHall,
eStructurePiece_Library,
eStructurePiece_FiveCrossing,
eStructurePiece_PortalRoom,
eStructurePiece_StrongholdStartPiece,
eStructurePiece_Well,
eStructurePiece_StraightRoad,
eStructurePiece_SimpleHouse,
eStructurePiece_SmallTemple,
eStructurePiece_BookHouse,
eStructurePiece_SmallHut,
eStructurePiece_PigHouse,
eStructurePiece_TwoRoomHouse,
eStructurePiece_Smithy,
eStructurePiece_Farmland,
eStructurePiece_DoubleFarmland,
eStructurePiece_LightPost,
eStructurePiece_VillageStartPiece,
};
class StructureFeatureIO
{
private:
static unordered_map<wstring, structureStartCreateFn> startIdClassMap;
static unordered_map<unsigned int, wstring> startClassIdMap;
static unordered_map<wstring, structurePieceCreateFn> pieceIdClassMap;
static unordered_map<unsigned int, wstring> pieceClassIdMap;
public:
static void setStartId(EStructureStart clas, structureStartCreateFn createFn, const wstring &id);
static void setPieceId(EStructurePiece clas, structurePieceCreateFn createFn, const wstring &id);
public:
static void staticCtor();
static wstring getEncodeId(StructureStart *start);
static wstring getEncodeId(StructurePiece *piece);
static StructureStart *loadStaticStart(CompoundTag *tag, Level *level);
static StructurePiece *loadStaticPiece(CompoundTag *tag, Level *level);
};