From b3feddfef372618c8a9d7a0abcaf18cfad866c18 Mon Sep 17 00:00:00 2001 From: daoge <3523206925@qq.com> Date: Tue, 3 Mar 2026 03:04:10 +0800 Subject: 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 97a43994725008e35fceb984d5549df9c8cea470. * 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 --- Minecraft.World/StructureFeatureIO.h | 93 ++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Minecraft.World/StructureFeatureIO.h (limited to 'Minecraft.World/StructureFeatureIO.h') diff --git a/Minecraft.World/StructureFeatureIO.h b/Minecraft.World/StructureFeatureIO.h new file mode 100644 index 00000000..90fc115d --- /dev/null +++ b/Minecraft.World/StructureFeatureIO.h @@ -0,0 +1,93 @@ +#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 startIdClassMap; + static unordered_map startClassIdMap; + + static unordered_map pieceIdClassMap; + static unordered_map 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); +}; \ No newline at end of file -- cgit v1.2.3