the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 93 lines 2.8 kB view raw
1#pragma once 2 3class StructurePiece; 4class StructureStart; 5 6typedef StructurePiece *(*structurePieceCreateFn)(); 7typedef StructureStart *(*structureStartCreateFn)(); 8 9enum EStructureStart 10{ 11 eStructureStart_MineShaftStart, 12 eStructureStart_VillageStart, 13 eStructureStart_NetherBridgeStart, 14 eStructureStart_StrongholdStart, 15 eStructureStart_ScatteredFeatureStart, 16}; 17 18enum EStructurePiece 19{ 20 eStructurePiece_MineShaftRoom, 21 eStructurePiece_MineShaftCorridor, 22 eStructurePiece_MineShaftCrossing, 23 eStructurePiece_MineShaftStairs, 24 25 eStructurePiece_BridgeStraight, 26 eStructurePiece_BridgeEndFiller, 27 eStructurePiece_BridgeCrossing, 28 eStructurePiece_RoomCrossing, 29 eStructurePiece_StairsRoom, 30 eStructurePiece_MonsterThrone, 31 eStructurePiece_CastleEntrance, 32 eStructurePiece_CastleStalkRoom, 33 eStructurePiece_CastleSmallCorridorPiece, 34 eStructurePiece_CastleSmallCorridorCrossingPiece, 35 eStructurePiece_CastleSmallCorridorRightTurnPiece, 36 eStructurePiece_CastleSmallCorridorLeftTurnPiece, 37 eStructurePiece_CastleCorridorStairsPiece, 38 eStructurePiece_CastleCorridorTBalconyPiece, 39 eStructurePiece_NetherBridgeStartPiece, 40 41 eStructurePiece_DesertPyramidPiece, 42 eStructurePiece_JunglePyramidPiece, 43 eStructurePiece_SwamplandHut, 44 45 eStructurePiece_FillerCorridor, 46 eStructurePiece_StairsDown, 47 eStructurePiece_Straight, 48 eStructurePiece_ChestCorridor, 49 eStructurePiece_StraightStairsDown, 50 eStructurePiece_LeftTurn, 51 eStructurePiece_RightTurn, 52 eStructurePiece_StrongholdRoomCrossing, 53 eStructurePiece_PrisonHall, 54 eStructurePiece_Library, 55 eStructurePiece_FiveCrossing, 56 eStructurePiece_PortalRoom, 57 eStructurePiece_StrongholdStartPiece, 58 59 eStructurePiece_Well, 60 eStructurePiece_StraightRoad, 61 eStructurePiece_SimpleHouse, 62 eStructurePiece_SmallTemple, 63 eStructurePiece_BookHouse, 64 eStructurePiece_SmallHut, 65 eStructurePiece_PigHouse, 66 eStructurePiece_TwoRoomHouse, 67 eStructurePiece_Smithy, 68 eStructurePiece_Farmland, 69 eStructurePiece_DoubleFarmland, 70 eStructurePiece_LightPost, 71 eStructurePiece_VillageStartPiece, 72}; 73 74class StructureFeatureIO 75{ 76private: 77 static unordered_map<wstring, structureStartCreateFn> startIdClassMap; 78 static unordered_map<unsigned int, wstring> startClassIdMap; 79 80 static unordered_map<wstring, structurePieceCreateFn> pieceIdClassMap; 81 static unordered_map<unsigned int, wstring> pieceClassIdMap; 82 83public: 84 static void setStartId(EStructureStart clas, structureStartCreateFn createFn, const wstring &id); 85 static void setPieceId(EStructurePiece clas, structurePieceCreateFn createFn, const wstring &id); 86 87public: 88 static void staticCtor(); 89 static wstring getEncodeId(StructureStart *start); 90 static wstring getEncodeId(StructurePiece *piece); 91 static StructureStart *loadStaticStart(CompoundTag *tag, Level *level); 92 static StructurePiece *loadStaticPiece(CompoundTag *tag, Level *level); 93};