Files
MinecraftConsoles/Minecraft.World/StructureFeatureIO.h
daoge b3feddfef3 feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a4399472.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00

93 lines
2.7 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,
};
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_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);
};