Full Code of mc-server/MCServer for AI

master 7fd3fa5c9345 cached
1280 files
16.2 MB
4.3M tokens
6240 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,205K chars total). Download the full file to get everything.
Repository: mc-server/MCServer
Branch: master
Commit: 7fd3fa5c9345
Files: 1280
Total size: 16.2 MB

Directory structure:
gitextract_eeezw5ae/

├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── config.yml
│   │   └── issue-template.md
│   └── workflows/
│       ├── Build.yml
│       └── StyleCheck.yml
├── .gitignore
├── .gitmodules
├── BACKERS
├── CMake/
│   ├── AddDependencies.cmake
│   ├── Fixups.cmake
│   ├── GenerateBindings.cmake
│   ├── GroupSources.cmake
│   └── StampBuild.cmake
├── CMakeLists.txt
├── COMPILING.md
├── CONTRIBUTING.md
├── CONTRIBUTORS
├── CheckLua.cmake
├── Doxyfile
├── GETTING-STARTED.md
├── Jenkinsfile
├── LICENSE
├── README.md
├── Server/
│   ├── .gitignore
│   ├── Install/
│   │   ├── .gitignore
│   │   ├── Cuberite_high_detail_debug.cmd
│   │   ├── Cuberite_medium_detail_debug.cmd
│   │   ├── PackWindowsExecutables.cmd
│   │   ├── ThirdPartyLicenses/
│   │   │   ├── LibEvent-LICENSE.txt
│   │   │   ├── Lua-LICENSE.txt
│   │   │   ├── LuaExpat-license.html
│   │   │   ├── LuaSQLite3-LICENSE.txt
│   │   │   ├── MersenneTwister-LICENSE.txt
│   │   │   ├── SQLiteCpp-LICENSE.txt
│   │   │   └── fmt-LICENSE.rst
│   │   ├── UnixExecutables.list
│   │   ├── WindowsExecutables.list
│   │   └── WindowsPDBs.list
│   ├── Plugins/
│   │   ├── .gitignore
│   │   ├── APIDump/
│   │   │   ├── APIDesc.lua
│   │   │   ├── Classes/
│   │   │   │   ├── BlockArea.lua
│   │   │   │   ├── BlockEntities.lua
│   │   │   │   ├── Geometry.lua
│   │   │   │   ├── Network.lua
│   │   │   │   ├── Plugins.lua
│   │   │   │   ├── Projectiles.lua
│   │   │   │   ├── RankManager.lua
│   │   │   │   ├── WebAdmin.lua
│   │   │   │   └── World.lua
│   │   │   ├── Hooks/
│   │   │   │   ├── OnBlockSpread.lua
│   │   │   │   ├── OnBlockToPickups.lua
│   │   │   │   ├── OnBrewingCompleted.lua
│   │   │   │   ├── OnBrewingCompleting.lua
│   │   │   │   ├── OnChat.lua
│   │   │   │   ├── OnChunkAvailable.lua
│   │   │   │   ├── OnChunkGenerated.lua
│   │   │   │   ├── OnChunkGenerating.lua
│   │   │   │   ├── OnChunkUnloaded.lua
│   │   │   │   ├── OnChunkUnloading.lua
│   │   │   │   ├── OnCollectingPickup.lua
│   │   │   │   ├── OnCraftingNoRecipe.lua
│   │   │   │   ├── OnDisconnect.lua
│   │   │   │   ├── OnDropSpense.lua
│   │   │   │   ├── OnEntityAddEffect.lua
│   │   │   │   ├── OnEntityChangedWorld.lua
│   │   │   │   ├── OnEntityChangingWorld.lua
│   │   │   │   ├── OnEntityTeleport.lua
│   │   │   │   ├── OnExecuteCommand.lua
│   │   │   │   ├── OnExploded.lua
│   │   │   │   ├── OnExploding.lua
│   │   │   │   ├── OnHandshake.lua
│   │   │   │   ├── OnHopperPullingItem.lua
│   │   │   │   ├── OnHopperPushingItem.lua
│   │   │   │   ├── OnKilled.lua
│   │   │   │   ├── OnKilling.lua
│   │   │   │   ├── OnLogin.lua
│   │   │   │   ├── OnPlayerAnimation.lua
│   │   │   │   ├── OnPlayerBreakingBlock.lua
│   │   │   │   ├── OnPlayerBrokenBlock.lua
│   │   │   │   ├── OnPlayerCrouched.lua
│   │   │   │   ├── OnPlayerDestroyed.lua
│   │   │   │   ├── OnPlayerEating.lua
│   │   │   │   ├── OnPlayerFished.lua
│   │   │   │   ├── OnPlayerFishing.lua
│   │   │   │   ├── OnPlayerFoodLevelChange.lua
│   │   │   │   ├── OnPlayerJoined.lua
│   │   │   │   ├── OnPlayerLeftClick.lua
│   │   │   │   ├── OnPlayerMoving.lua
│   │   │   │   ├── OnPlayerOpeningWindow.lua
│   │   │   │   ├── OnPlayerPlacedBlock.lua
│   │   │   │   ├── OnPlayerPlacingBlock.lua
│   │   │   │   ├── OnPlayerRightClick.lua
│   │   │   │   ├── OnPlayerRightClickingEntity.lua
│   │   │   │   ├── OnPlayerShooting.lua
│   │   │   │   ├── OnPlayerSpawned.lua
│   │   │   │   ├── OnPlayerTossingItem.lua
│   │   │   │   ├── OnPlayerUsedBlock.lua
│   │   │   │   ├── OnPlayerUsedItem.lua
│   │   │   │   ├── OnPlayerUsingBlock.lua
│   │   │   │   ├── OnPlayerUsingItem.lua
│   │   │   │   ├── OnPluginMessage.lua
│   │   │   │   ├── OnPluginsLoaded.lua
│   │   │   │   ├── OnPostCrafting.lua
│   │   │   │   ├── OnPreCrafting.lua
│   │   │   │   ├── OnProjectileHitBlock.lua
│   │   │   │   ├── OnProjectileHitEntity.lua
│   │   │   │   ├── OnServerPing.lua
│   │   │   │   ├── OnSpawnedEntity.lua
│   │   │   │   ├── OnSpawnedMonster.lua
│   │   │   │   ├── OnSpawningEntity.lua
│   │   │   │   ├── OnSpawningMonster.lua
│   │   │   │   ├── OnTakeDamage.lua
│   │   │   │   ├── OnTick.lua
│   │   │   │   ├── OnUpdatedSign.lua
│   │   │   │   ├── OnUpdatingSign.lua
│   │   │   │   ├── OnWeatherChanged.lua
│   │   │   │   ├── OnWeatherChanging.lua
│   │   │   │   ├── OnWorldStarted.lua
│   │   │   │   └── OnWorldTick.lua
│   │   │   ├── InfoFile.html
│   │   │   ├── LICENSE-prettify.txt
│   │   │   ├── SettingUpDecoda.html
│   │   │   ├── SettingUpLuaLanguageServer.html
│   │   │   ├── SettingUpZeroBrane.html
│   │   │   ├── Static/
│   │   │   │   └── .gitignore
│   │   │   ├── UsingChunkStays.html
│   │   │   ├── WebWorldThreads.html
│   │   │   ├── Writing-a-Cuberite-plugin.html
│   │   │   ├── _preload.lua
│   │   │   ├── lang-lua.js
│   │   │   ├── lualanguageserver.lua
│   │   │   ├── main.css
│   │   │   ├── main_APIDump.lua
│   │   │   ├── prettify.css
│   │   │   └── prettify.js
│   │   ├── Debuggers/
│   │   │   ├── Debuggers.lua
│   │   │   ├── Info.lua
│   │   │   └── Inject.lua
│   │   ├── DumpInfo/
│   │   │   └── Init.lua
│   │   ├── HookNotify/
│   │   │   └── HookNotify.lua
│   │   ├── InfoDump.lua
│   │   ├── InfoReg.lua
│   │   ├── NetworkTest/
│   │   │   ├── Info.lua
│   │   │   ├── NetworkTest.lua
│   │   │   └── splashes.txt
│   │   └── TestLuaRocks/
│   │       └── TestLuaRocks.lua
│   ├── Prefabs/
│   │   ├── PieceStructures/
│   │   │   ├── NetherFort.cubeset
│   │   │   ├── RainbowRoad.cubeset
│   │   │   ├── TestRails.cubeset
│   │   │   ├── TreePaths.cubeset
│   │   │   └── UnderwaterBase.cubeset
│   │   ├── SinglePieceStructures/
│   │   │   ├── DesertPyramid.cubeset
│   │   │   ├── DesertWell.cubeset
│   │   │   ├── JungleTemple.cubeset
│   │   │   └── WitchHut.cubeset
│   │   └── Villages/
│   │       ├── AlchemistVillage.cubeset
│   │       ├── JapaneseVillage.cubeset
│   │       ├── PlainsVillage.cubeset
│   │       ├── SandFlatRoofVillage.cubeset
│   │       └── SandVillage.cubeset
│   ├── Protocol/
│   │   ├── 1.12.2/
│   │   │   └── base.recipes.txt
│   │   ├── 1.13/
│   │   │   └── base.btp.txt
│   │   ├── 1.14.4/
│   │   │   └── base.btp.txt
│   │   └── UpgradeBlockTypePalette.txt
│   ├── README.txt
│   ├── brewing.txt
│   ├── delete_windows_service.cmd
│   ├── furnace.txt
│   ├── hg
│   ├── hg.supp
│   ├── install_windows_service.cmd
│   ├── vg
│   ├── vg.supp
│   └── webadmin/
│       ├── GenerateSelfSignedHTTPSCertUsingOpenssl.cmd
│       ├── GenerateSelfSignedHTTPSCertUsingOpenssl.sh
│       ├── files/
│       │   ├── guest.html
│       │   └── style.css
│       ├── login_template.html
│       └── template.lua
├── SetFlags.cmake
├── TESTING.md
├── Tools/
│   ├── .gitignore
│   ├── AnvilStats/
│   │   ├── .gitignore
│   │   ├── AnvilStats.cpp
│   │   ├── AnvilStats.txt
│   │   ├── BiomeMap.cpp
│   │   ├── BiomeMap.h
│   │   ├── CMakeLists.txt
│   │   ├── Callback.h
│   │   ├── ChunkExtract.cpp
│   │   ├── ChunkExtract.h
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── HeightBiomeMap.cpp
│   │   ├── HeightBiomeMap.h
│   │   ├── HeightMap.cpp
│   │   ├── HeightMap.h
│   │   ├── ImageComposingCallback.cpp
│   │   ├── ImageComposingCallback.h
│   │   ├── Processor.cpp
│   │   ├── Processor.h
│   │   ├── SpringStats.cpp
│   │   ├── SpringStats.h
│   │   ├── Statistics.cpp
│   │   ├── Statistics.h
│   │   ├── Utils.cpp
│   │   ├── Utils.h
│   │   └── profile_run.cmd
│   ├── BlockTypePaletteGenerator/
│   │   ├── .gitignore
│   │   ├── Generator.lua
│   │   ├── UpgradeGenerator.lua
│   │   └── UpgradePaletteCheck.lua
│   ├── BlockZapper/
│   │   ├── .gitignore
│   │   ├── BlockZapper.cpp
│   │   ├── BlockZapper.txt
│   │   ├── GNUmakefile
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── Regions.cpp
│   │   ├── Regions.h
│   │   ├── Zapper.cpp
│   │   └── Zapper.h
│   ├── GeneratorPerformanceTest/
│   │   ├── CMakeLists.txt
│   │   └── GeneratorPerformanceTest.cpp
│   ├── GrownBiomeGenVisualiser/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── GrownBiomeGenVisualiser.cpp
│   │   └── README.md
│   ├── MCADefrag/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── MCADefrag.cpp
│   │   └── MCADefrag.h
│   ├── MemDumpAnalysis/
│   │   ├── .gitignore
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── MemDumpAnalysis.cpp
│   │   └── targetver.h
│   ├── NoiseSpeedTest/
│   │   ├── CMakeLists.txt
│   │   ├── NoiseSpeedTest.cpp
│   │   ├── NoiseSpeedTest.h
│   │   └── SimplexNoise.h
│   ├── ProtoProxy/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── Connection.cpp
│   │   ├── Connection.h
│   │   ├── ProtoProxy.cpp
│   │   ├── ProtoProxy.txt
│   │   ├── Server.cpp
│   │   └── Server.h
│   ├── QtBiomeVisualiser/
│   │   ├── .gitignore
│   │   ├── BiomeView.cpp
│   │   ├── BiomeView.h
│   │   ├── ChunkSource.cpp
│   │   ├── ChunkSource.h
│   │   ├── GeneratorSetup.cpp
│   │   ├── GeneratorSetup.h
│   │   ├── Globals.h
│   │   ├── MainWindow.cpp
│   │   ├── MainWindow.h
│   │   ├── QtBiomeVisualiser.cpp
│   │   ├── QtBiomeVisualiser.pro
│   │   ├── QtChunk.cpp
│   │   ├── QtChunk.h
│   │   ├── Region.cpp
│   │   ├── Region.h
│   │   ├── RegionCache.cpp
│   │   ├── RegionCache.h
│   │   ├── RegionLoader.cpp
│   │   └── RegionLoader.h
│   ├── RCONClient/
│   │   ├── .gitignore
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   └── RCONClient.cpp
│   └── ToLuaDoxy/
│       ├── Doxyfile
│       ├── Globals.cpp
│       ├── Globals.h
│       └── ToLuaDoxy.cpp
├── android/
│   ├── .gitignore
│   ├── CMakeLists.txt
│   └── compile.sh
├── app.yml
├── appveyor.yml
├── cibuild.sh
├── clang-tidy.sh
├── cloc-exclude.txt
├── compile.sh
├── dev-docs/
│   ├── .gitignore
│   ├── API class inheritance - blockentities.gv
│   ├── API class inheritance - entities.gv
│   ├── Cubeset file format.html
│   ├── ExportingAPI.html
│   ├── Generator.html
│   ├── Login sequence.txt
│   ├── NBT Examples/
│   │   ├── single chunk NBT data.txt
│   │   └── tile entities.txt
│   ├── Object ownership.gv
│   ├── Plugin API.md
│   ├── SocketThreads states.gv
│   ├── Springs.ods
│   ├── _files.txt
│   ├── js/
│   │   ├── ValueMap.js
│   │   └── grown.js
│   └── style.css
├── easyinstall.sh
├── nightlybuild.sh
├── src/
│   ├── Bindings/
│   │   ├── .gitignore
│   │   ├── AllToLua.bat
│   │   ├── AllToLua.pkg
│   │   ├── AllToLua.sh
│   │   ├── AllToLua_lua.bat
│   │   ├── BindingsProcessor.lua
│   │   ├── BlockState.cpp
│   │   ├── BlockState.h
│   │   ├── BlockTypePalette.cpp
│   │   ├── BlockTypePalette.h
│   │   ├── BlockTypeRegistry.cpp
│   │   ├── BlockTypeRegistry.h
│   │   ├── CMakeLists.txt
│   │   ├── CheckBindingsDependencies.lua
│   │   ├── DeprecatedBindings.cpp
│   │   ├── DeprecatedBindings.h
│   │   ├── DiffAPIDesc.lua
│   │   ├── LuaChunkStay.cpp
│   │   ├── LuaChunkStay.h
│   │   ├── LuaFunctions.h
│   │   ├── LuaJson.cpp
│   │   ├── LuaJson.h
│   │   ├── LuaNameLookup.cpp
│   │   ├── LuaNameLookup.h
│   │   ├── LuaServerHandle.cpp
│   │   ├── LuaServerHandle.h
│   │   ├── LuaState.cpp
│   │   ├── LuaState.h
│   │   ├── LuaTCPLink.cpp
│   │   ├── LuaTCPLink.h
│   │   ├── LuaUDPEndpoint.cpp
│   │   ├── LuaUDPEndpoint.h
│   │   ├── LuaWindow.cpp
│   │   ├── LuaWindow.h
│   │   ├── ManualBindings.cpp
│   │   ├── ManualBindings.h
│   │   ├── ManualBindings_BlockArea.cpp
│   │   ├── ManualBindings_Network.cpp
│   │   ├── ManualBindings_RankManager.cpp
│   │   ├── ManualBindings_World.cpp
│   │   ├── Plugin.cpp
│   │   ├── Plugin.h
│   │   ├── PluginLua.cpp
│   │   ├── PluginLua.h
│   │   ├── PluginManager.cpp
│   │   ├── PluginManager.h
│   │   └── tolua++.h
│   ├── BiomeDef.cpp
│   ├── BiomeDef.h
│   ├── BlockArea.cpp
│   ├── BlockArea.h
│   ├── BlockEntities/
│   │   ├── BannerEntity.cpp
│   │   ├── BannerEntity.h
│   │   ├── BeaconEntity.cpp
│   │   ├── BeaconEntity.h
│   │   ├── BedEntity.cpp
│   │   ├── BedEntity.h
│   │   ├── BlockEntity.cpp
│   │   ├── BlockEntity.h
│   │   ├── BlockEntityWithItems.cpp
│   │   ├── BlockEntityWithItems.h
│   │   ├── BrewingstandEntity.cpp
│   │   ├── BrewingstandEntity.h
│   │   ├── CMakeLists.txt
│   │   ├── ChestEntity.cpp
│   │   ├── ChestEntity.h
│   │   ├── CommandBlockEntity.cpp
│   │   ├── CommandBlockEntity.h
│   │   ├── DispenserEntity.cpp
│   │   ├── DispenserEntity.h
│   │   ├── DropSpenserEntity.cpp
│   │   ├── DropSpenserEntity.h
│   │   ├── DropperEntity.cpp
│   │   ├── DropperEntity.h
│   │   ├── EnchantingTableEntity.cpp
│   │   ├── EnchantingTableEntity.h
│   │   ├── EndPortalEntity.cpp
│   │   ├── EndPortalEntity.h
│   │   ├── EnderChestEntity.cpp
│   │   ├── EnderChestEntity.h
│   │   ├── FlowerPotEntity.cpp
│   │   ├── FlowerPotEntity.h
│   │   ├── FurnaceEntity.cpp
│   │   ├── FurnaceEntity.h
│   │   ├── HopperEntity.cpp
│   │   ├── HopperEntity.h
│   │   ├── JukeboxEntity.cpp
│   │   ├── JukeboxEntity.h
│   │   ├── MobHeadEntity.cpp
│   │   ├── MobHeadEntity.h
│   │   ├── MobSpawnerEntity.cpp
│   │   ├── MobSpawnerEntity.h
│   │   ├── NoteEntity.cpp
│   │   ├── NoteEntity.h
│   │   ├── SignEntity.cpp
│   │   └── SignEntity.h
│   ├── BlockInServerPluginInterface.h
│   ├── BlockInfo.cpp
│   ├── BlockInfo.h
│   ├── BlockState.h
│   ├── BlockTracer.h
│   ├── BlockType.cpp
│   ├── BlockType.h
│   ├── Blocks/
│   │   ├── BlockAir.h
│   │   ├── BlockAnvil.h
│   │   ├── BlockBed.cpp
│   │   ├── BlockBed.h
│   │   ├── BlockBigFlower.h
│   │   ├── BlockBookShelf.h
│   │   ├── BlockBrewingStand.h
│   │   ├── BlockButton.h
│   │   ├── BlockCactus.h
│   │   ├── BlockCake.h
│   │   ├── BlockCarpet.h
│   │   ├── BlockCauldron.h
│   │   ├── BlockChest.h
│   │   ├── BlockCloth.h
│   │   ├── BlockCobWeb.h
│   │   ├── BlockCocoaPod.h
│   │   ├── BlockCommandBlock.h
│   │   ├── BlockComparator.h
│   │   ├── BlockConcretePowder.h
│   │   ├── BlockCrops.h
│   │   ├── BlockDaylightSensor.h
│   │   ├── BlockDeadBush.h
│   │   ├── BlockDefaultBlock.h
│   │   ├── BlockDirt.h
│   │   ├── BlockDoor.cpp
│   │   ├── BlockDoor.h
│   │   ├── BlockDropSpenser.h
│   │   ├── BlockEnchantingTable.h
│   │   ├── BlockEndPortalFrame.h
│   │   ├── BlockEnderChest.h
│   │   ├── BlockEntity.h
│   │   ├── BlockFarmland.h
│   │   ├── BlockFence.h
│   │   ├── BlockFenceGate.h
│   │   ├── BlockFire.h
│   │   ├── BlockFlower.h
│   │   ├── BlockFlowerPot.h
│   │   ├── BlockFluid.h
│   │   ├── BlockFurnace.h
│   │   ├── BlockGlass.h
│   │   ├── BlockGlazedTerracotta.h
│   │   ├── BlockGlowstone.h
│   │   ├── BlockGrass.h
│   │   ├── BlockGravel.h
│   │   ├── BlockHandler.cpp
│   │   ├── BlockHandler.h
│   │   ├── BlockHopper.h
│   │   ├── BlockHugeMushroom.h
│   │   ├── BlockIce.h
│   │   ├── BlockInfested.h
│   │   ├── BlockJukebox.h
│   │   ├── BlockLadder.h
│   │   ├── BlockLeaves.h
│   │   ├── BlockLever.h
│   │   ├── BlockLilypad.h
│   │   ├── BlockMelon.h
│   │   ├── BlockMobHead.h
│   │   ├── BlockMobSpawner.h
│   │   ├── BlockMushroom.h
│   │   ├── BlockMycelium.h
│   │   ├── BlockNetherWart.h
│   │   ├── BlockNetherrack.h
│   │   ├── BlockNoteBlock.h
│   │   ├── BlockObserver.h
│   │   ├── BlockOre.h
│   │   ├── BlockPackedIce.h
│   │   ├── BlockPiston.cpp
│   │   ├── BlockPiston.h
│   │   ├── BlockPlanks.h
│   │   ├── BlockPlant.h
│   │   ├── BlockPluginInterface.h
│   │   ├── BlockPortal.h
│   │   ├── BlockPressurePlate.h
│   │   ├── BlockPumpkin.h
│   │   ├── BlockQuartz.h
│   │   ├── BlockRail.h
│   │   ├── BlockRedstoneLamp.h
│   │   ├── BlockRedstoneOre.h
│   │   ├── BlockRedstoneRepeater.h
│   │   ├── BlockRedstoneWire.h
│   │   ├── BlockSand.h
│   │   ├── BlockSapling.h
│   │   ├── BlockSeaLantern.h
│   │   ├── BlockSideways.h
│   │   ├── BlockSignPost.h
│   │   ├── BlockSlab.h
│   │   ├── BlockSlime.h
│   │   ├── BlockSnow.h
│   │   ├── BlockSponge.h
│   │   ├── BlockStairs.h
│   │   ├── BlockStandingBanner.h
│   │   ├── BlockStems.h
│   │   ├── BlockStone.h
│   │   ├── BlockSugarCane.h
│   │   ├── BlockTNT.h
│   │   ├── BlockTallGrass.h
│   │   ├── BlockTorch.h
│   │   ├── BlockTrapdoor.h
│   │   ├── BlockTripwire.h
│   │   ├── BlockTripwireHook.h
│   │   ├── BlockVines.h
│   │   ├── BlockWallBanner.h
│   │   ├── BlockWallSign.h
│   │   ├── BlockWorkbench.h
│   │   ├── BroadcastInterface.h
│   │   ├── CMakeLists.txt
│   │   ├── ChunkInterface.cpp
│   │   ├── ChunkInterface.h
│   │   ├── GetHandlerCompileTimeTemplate.h
│   │   ├── Mixins/
│   │   │   ├── DirtLikeUnderneath.h
│   │   │   ├── Mixins.h
│   │   │   └── SolidSurfaceUnderneath.h
│   │   └── WorldInterface.h
│   ├── BoundingBox.cpp
│   ├── BoundingBox.h
│   ├── BrewingRecipes.cpp
│   ├── BrewingRecipes.h
│   ├── Broadcaster.cpp
│   ├── BuildInfo.h.cmake
│   ├── ByteBuffer.cpp
│   ├── ByteBuffer.h
│   ├── CMakeLists.txt
│   ├── ChatColor.cpp
│   ├── ChatColor.h
│   ├── CheckBasicStyle.lua
│   ├── Chunk.cpp
│   ├── Chunk.h
│   ├── ChunkData.cpp
│   ├── ChunkData.h
│   ├── ChunkDataCallback.h
│   ├── ChunkDef.h
│   ├── ChunkGeneratorThread.cpp
│   ├── ChunkGeneratorThread.h
│   ├── ChunkMap.cpp
│   ├── ChunkMap.h
│   ├── ChunkSender.cpp
│   ├── ChunkSender.h
│   ├── ChunkStay.cpp
│   ├── ChunkStay.h
│   ├── CircularBufferCompressor.cpp
│   ├── CircularBufferCompressor.h
│   ├── ClientHandle.cpp
│   ├── ClientHandle.h
│   ├── Color.cpp
│   ├── Color.h
│   ├── CommandOutput.cpp
│   ├── CommandOutput.h
│   ├── CompositeChat.cpp
│   ├── CompositeChat.h
│   ├── CraftingRecipes.cpp
│   ├── CraftingRecipes.h
│   ├── Cuboid.cpp
│   ├── Cuboid.h
│   ├── DeadlockDetect.cpp
│   ├── DeadlockDetect.h
│   ├── Defines.cpp
│   ├── Defines.h
│   ├── EffectID.h
│   ├── Enchantments.cpp
│   ├── Enchantments.h
│   ├── Endianness.h
│   ├── Entities/
│   │   ├── ArrowEntity.cpp
│   │   ├── ArrowEntity.h
│   │   ├── Boat.cpp
│   │   ├── Boat.h
│   │   ├── CMakeLists.txt
│   │   ├── EnderCrystal.cpp
│   │   ├── EnderCrystal.h
│   │   ├── Entity.cpp
│   │   ├── Entity.h
│   │   ├── EntityEffect.cpp
│   │   ├── EntityEffect.h
│   │   ├── ExpBottleEntity.cpp
│   │   ├── ExpBottleEntity.h
│   │   ├── ExpOrb.cpp
│   │   ├── ExpOrb.h
│   │   ├── FallingBlock.cpp
│   │   ├── FallingBlock.h
│   │   ├── FireChargeEntity.cpp
│   │   ├── FireChargeEntity.h
│   │   ├── FireworkEntity.cpp
│   │   ├── FireworkEntity.h
│   │   ├── Floater.cpp
│   │   ├── Floater.h
│   │   ├── GhastFireballEntity.cpp
│   │   ├── GhastFireballEntity.h
│   │   ├── HangingEntity.cpp
│   │   ├── HangingEntity.h
│   │   ├── ItemFrame.cpp
│   │   ├── ItemFrame.h
│   │   ├── LeashKnot.cpp
│   │   ├── LeashKnot.h
│   │   ├── Minecart.cpp
│   │   ├── Minecart.h
│   │   ├── Painting.cpp
│   │   ├── Painting.h
│   │   ├── Pawn.cpp
│   │   ├── Pawn.h
│   │   ├── Pickup.cpp
│   │   ├── Pickup.h
│   │   ├── Player.cpp
│   │   ├── Player.h
│   │   ├── ProjectileEntity.cpp
│   │   ├── ProjectileEntity.h
│   │   ├── SplashPotionEntity.cpp
│   │   ├── SplashPotionEntity.h
│   │   ├── TNTEntity.cpp
│   │   ├── TNTEntity.h
│   │   ├── ThrownEggEntity.cpp
│   │   ├── ThrownEggEntity.h
│   │   ├── ThrownEnderPearlEntity.cpp
│   │   ├── ThrownEnderPearlEntity.h
│   │   ├── ThrownSnowballEntity.cpp
│   │   ├── ThrownSnowballEntity.h
│   │   ├── WitherSkullEntity.cpp
│   │   └── WitherSkullEntity.h
│   ├── FastRandom.cpp
│   ├── FastRandom.h
│   ├── ForEachChunkProvider.h
│   ├── FunctionRef.h
│   ├── FurnaceRecipe.cpp
│   ├── FurnaceRecipe.h
│   ├── Generating/
│   │   ├── BioGen.cpp
│   │   ├── BioGen.h
│   │   ├── CMakeLists.txt
│   │   ├── Caves.cpp
│   │   ├── Caves.h
│   │   ├── ChunkDesc.cpp
│   │   ├── ChunkDesc.h
│   │   ├── ChunkGenerator.cpp
│   │   ├── ChunkGenerator.h
│   │   ├── CompoGen.cpp
│   │   ├── CompoGen.h
│   │   ├── CompoGenBiomal.cpp
│   │   ├── CompoGenBiomal.h
│   │   ├── ComposableGenerator.cpp
│   │   ├── ComposableGenerator.h
│   │   ├── CompositedHeiGen.h
│   │   ├── DistortedHeightmap.cpp
│   │   ├── DistortedHeightmap.h
│   │   ├── DungeonRoomsFinisher.cpp
│   │   ├── DungeonRoomsFinisher.h
│   │   ├── EndGen.cpp
│   │   ├── EndGen.h
│   │   ├── EnderDragonFightStructuresGen.cpp
│   │   ├── EnderDragonFightStructuresGen.h
│   │   ├── FinishGen.cpp
│   │   ├── FinishGen.h
│   │   ├── GridStructGen.cpp
│   │   ├── GridStructGen.h
│   │   ├── HeiGen.cpp
│   │   ├── HeiGen.h
│   │   ├── IntGen.h
│   │   ├── MineShafts.cpp
│   │   ├── MineShafts.h
│   │   ├── Noise3DGenerator.cpp
│   │   ├── Noise3DGenerator.h
│   │   ├── PieceGeneratorBFSTree.cpp
│   │   ├── PieceGeneratorBFSTree.h
│   │   ├── PieceModifier.cpp
│   │   ├── PieceModifier.h
│   │   ├── PiecePool.cpp
│   │   ├── PiecePool.h
│   │   ├── PieceStructuresGen.cpp
│   │   ├── PieceStructuresGen.h
│   │   ├── Prefab.cpp
│   │   ├── Prefab.h
│   │   ├── PrefabPiecePool.cpp
│   │   ├── PrefabPiecePool.h
│   │   ├── PrefabStructure.cpp
│   │   ├── PrefabStructure.h
│   │   ├── ProtIntGen.h
│   │   ├── Ravines.cpp
│   │   ├── Ravines.h
│   │   ├── RoughRavines.cpp
│   │   ├── RoughRavines.h
│   │   ├── ShapeGen.cpp
│   │   ├── SinglePieceStructuresGen.cpp
│   │   ├── SinglePieceStructuresGen.h
│   │   ├── StructGen.cpp
│   │   ├── StructGen.h
│   │   ├── Trees.cpp
│   │   ├── Trees.h
│   │   ├── TwoHeights.cpp
│   │   ├── TwoHeights.h
│   │   ├── VerticalLimit.cpp
│   │   ├── VerticalLimit.h
│   │   ├── VerticalStrategy.cpp
│   │   ├── VerticalStrategy.h
│   │   ├── VillageGen.cpp
│   │   └── VillageGen.h
│   ├── Globals.cpp
│   ├── Globals.h
│   ├── HTTP/
│   │   ├── CMakeLists.txt
│   │   ├── EnvelopeParser.cpp
│   │   ├── EnvelopeParser.h
│   │   ├── HTTPFormParser.cpp
│   │   ├── HTTPFormParser.h
│   │   ├── HTTPMessage.cpp
│   │   ├── HTTPMessage.h
│   │   ├── HTTPMessageParser.cpp
│   │   ├── HTTPMessageParser.h
│   │   ├── HTTPServer.cpp
│   │   ├── HTTPServer.h
│   │   ├── HTTPServerConnection.cpp
│   │   ├── HTTPServerConnection.h
│   │   ├── MultipartParser.cpp
│   │   ├── MultipartParser.h
│   │   ├── NameValueParser.cpp
│   │   ├── NameValueParser.h
│   │   ├── SslHTTPServerConnection.cpp
│   │   ├── SslHTTPServerConnection.h
│   │   ├── TransferEncodingParser.cpp
│   │   ├── TransferEncodingParser.h
│   │   ├── UrlClient.cpp
│   │   ├── UrlClient.h
│   │   ├── UrlParser.cpp
│   │   └── UrlParser.h
│   ├── IniFile.cpp
│   ├── IniFile.h
│   ├── Inventory.cpp
│   ├── Inventory.h
│   ├── Item.cpp
│   ├── Item.h
│   ├── ItemGrid.cpp
│   ├── ItemGrid.h
│   ├── Items/
│   │   ├── CMakeLists.txt
│   │   ├── ItemAnvil.h
│   │   ├── ItemArmor.h
│   │   ├── ItemAxe.h
│   │   ├── ItemBanner.h
│   │   ├── ItemBed.h
│   │   ├── ItemBigFlower.h
│   │   ├── ItemBoat.h
│   │   ├── ItemBottle.h
│   │   ├── ItemBow.h
│   │   ├── ItemBucket.h
│   │   ├── ItemButton.h
│   │   ├── ItemChest.h
│   │   ├── ItemChorusFruit.h
│   │   ├── ItemCloth.h
│   │   ├── ItemComparator.h
│   │   ├── ItemCookedFish.h
│   │   ├── ItemDefaultItem.h
│   │   ├── ItemDoor.h
│   │   ├── ItemDropSpenser.h
│   │   ├── ItemDye.h
│   │   ├── ItemEmptyMap.h
│   │   ├── ItemEnchantingTable.h
│   │   ├── ItemEndCrystal.h
│   │   ├── ItemEndPortalFrame.h
│   │   ├── ItemEnderChest.h
│   │   ├── ItemEyeOfEnder.h
│   │   ├── ItemFenceGate.h
│   │   ├── ItemFishingRod.h
│   │   ├── ItemFood.h
│   │   ├── ItemFoodSeeds.h
│   │   ├── ItemFurnace.h
│   │   ├── ItemGlazedTerracotta.h
│   │   ├── ItemGoldenApple.h
│   │   ├── ItemHandler.cpp
│   │   ├── ItemHandler.h
│   │   ├── ItemHoe.h
│   │   ├── ItemHopper.h
│   │   ├── ItemItemFrame.h
│   │   ├── ItemJackOLantern.h
│   │   ├── ItemLadder.h
│   │   ├── ItemLeaves.h
│   │   ├── ItemLever.h
│   │   ├── ItemLighter.h
│   │   ├── ItemLilypad.h
│   │   ├── ItemMap.h
│   │   ├── ItemMilk.h
│   │   ├── ItemMinecart.h
│   │   ├── ItemMobHead.h
│   │   ├── ItemNetherWart.h
│   │   ├── ItemObserver.h
│   │   ├── ItemPainting.h
│   │   ├── ItemPickaxe.h
│   │   ├── ItemPiston.h
│   │   ├── ItemPlanks.h
│   │   ├── ItemPoisonousPotato.h
│   │   ├── ItemPotion.h
│   │   ├── ItemPumpkin.h
│   │   ├── ItemQuartz.h
│   │   ├── ItemRail.h
│   │   ├── ItemRawChicken.h
│   │   ├── ItemRawFish.h
│   │   ├── ItemRedstoneDust.h
│   │   ├── ItemRedstoneRepeater.h
│   │   ├── ItemRottenFlesh.h
│   │   ├── ItemSapling.h
│   │   ├── ItemSeeds.h
│   │   ├── ItemShears.h
│   │   ├── ItemShovel.h
│   │   ├── ItemSideways.h
│   │   ├── ItemSign.h
│   │   ├── ItemSlab.h
│   │   ├── ItemSnow.h
│   │   ├── ItemSoup.h
│   │   ├── ItemSpawnEgg.h
│   │   ├── ItemSpiderEye.h
│   │   ├── ItemStairs.h
│   │   ├── ItemSword.h
│   │   ├── ItemThrowable.h
│   │   ├── ItemTorch.h
│   │   ├── ItemTrapdoor.h
│   │   ├── ItemTripwireHook.h
│   │   ├── ItemVines.h
│   │   └── SimplePlaceableItemHandler.h
│   ├── JsonUtils.cpp
│   ├── JsonUtils.h
│   ├── LazyArray.h
│   ├── LightingThread.cpp
│   ├── LightingThread.h
│   ├── LineBlockTracer.cpp
│   ├── LineBlockTracer.h
│   ├── LinearInterpolation.cpp
│   ├── LinearInterpolation.h
│   ├── LinearUpscale.h
│   ├── Logger.cpp
│   ├── Logger.h
│   ├── LoggerListeners.cpp
│   ├── LoggerListeners.h
│   ├── LoggerSimple.h
│   ├── Map.cpp
│   ├── Map.h
│   ├── MapManager.cpp
│   ├── MapManager.h
│   ├── Matrix4.h
│   ├── MemorySettingsRepository.cpp
│   ├── MemorySettingsRepository.h
│   ├── MobCensus.cpp
│   ├── MobCensus.h
│   ├── MobFamilyCollecter.cpp
│   ├── MobFamilyCollecter.h
│   ├── MobProximityCounter.cpp
│   ├── MobProximityCounter.h
│   ├── MobSpawner.cpp
│   ├── MobSpawner.h
│   ├── Mobs/
│   │   ├── AggressiveMonster.cpp
│   │   ├── AggressiveMonster.h
│   │   ├── Bat.cpp
│   │   ├── Bat.h
│   │   ├── Blaze.cpp
│   │   ├── Blaze.h
│   │   ├── CMakeLists.txt
│   │   ├── CaveSpider.cpp
│   │   ├── CaveSpider.h
│   │   ├── Chicken.cpp
│   │   ├── Chicken.h
│   │   ├── Cow.cpp
│   │   ├── Cow.h
│   │   ├── Creeper.cpp
│   │   ├── Creeper.h
│   │   ├── EnderDragon.cpp
│   │   ├── EnderDragon.h
│   │   ├── Enderman.cpp
│   │   ├── Enderman.h
│   │   ├── Endermite.cpp
│   │   ├── Endermite.h
│   │   ├── Ghast.cpp
│   │   ├── Ghast.h
│   │   ├── Giant.cpp
│   │   ├── Giant.h
│   │   ├── Guardian.cpp
│   │   ├── Guardian.h
│   │   ├── Horse.cpp
│   │   ├── Horse.h
│   │   ├── IncludeAllMonsters.h
│   │   ├── IronGolem.cpp
│   │   ├── IronGolem.h
│   │   ├── MagmaCube.cpp
│   │   ├── MagmaCube.h
│   │   ├── Monster.cpp
│   │   ├── Monster.h
│   │   ├── MonsterTypes.h
│   │   ├── Mooshroom.cpp
│   │   ├── Mooshroom.h
│   │   ├── Ocelot.cpp
│   │   ├── Ocelot.h
│   │   ├── PassiveAggressiveMonster.cpp
│   │   ├── PassiveAggressiveMonster.h
│   │   ├── PassiveMonster.cpp
│   │   ├── PassiveMonster.h
│   │   ├── Path.cpp
│   │   ├── Path.h
│   │   ├── PathFinder.cpp
│   │   ├── PathFinder.h
│   │   ├── Pig.cpp
│   │   ├── Pig.h
│   │   ├── Rabbit.cpp
│   │   ├── Rabbit.h
│   │   ├── Sheep.cpp
│   │   ├── Sheep.h
│   │   ├── Silverfish.cpp
│   │   ├── Silverfish.h
│   │   ├── Skeleton.cpp
│   │   ├── Skeleton.h
│   │   ├── Slime.cpp
│   │   ├── Slime.h
│   │   ├── SnowGolem.cpp
│   │   ├── SnowGolem.h
│   │   ├── Spider.cpp
│   │   ├── Spider.h
│   │   ├── Squid.cpp
│   │   ├── Squid.h
│   │   ├── Villager.cpp
│   │   ├── Villager.h
│   │   ├── Witch.cpp
│   │   ├── Witch.h
│   │   ├── Wither.cpp
│   │   ├── Wither.h
│   │   ├── WitherSkeleton.cpp
│   │   ├── WitherSkeleton.h
│   │   ├── Wolf.cpp
│   │   ├── Wolf.h
│   │   ├── Zombie.cpp
│   │   ├── Zombie.h
│   │   ├── ZombiePigman.cpp
│   │   ├── ZombiePigman.h
│   │   ├── ZombieVillager.cpp
│   │   └── ZombieVillager.h
│   ├── MonsterConfig.cpp
│   ├── MonsterConfig.h
│   ├── NetherPortalScanner.cpp
│   ├── NetherPortalScanner.h
│   ├── Noise/
│   │   ├── CMakeLists.txt
│   │   ├── InterpolNoise.h
│   │   ├── Noise.cpp
│   │   ├── Noise.h
│   │   ├── OctavedNoise.h
│   │   └── RidgedNoise.h
│   ├── OSSupport/
│   │   ├── AtomicUniquePtr.h
│   │   ├── CMakeLists.txt
│   │   ├── ConsoleSignalHandler.h
│   │   ├── CriticalSection.cpp
│   │   ├── CriticalSection.h
│   │   ├── Event.cpp
│   │   ├── Event.h
│   │   ├── File.cpp
│   │   ├── File.h
│   │   ├── GZipFile.cpp
│   │   ├── GZipFile.h
│   │   ├── GetAddressInfoError.h
│   │   ├── HostnameLookup.cpp
│   │   ├── HostnameLookup.h
│   │   ├── IPLookup.cpp
│   │   ├── IPLookup.h
│   │   ├── IsThread.cpp
│   │   ├── IsThread.h
│   │   ├── MiniDumpWriter.h
│   │   ├── Network.h
│   │   ├── NetworkInterfaceEnum.cpp
│   │   ├── NetworkLookup.cpp
│   │   ├── NetworkLookup.h
│   │   ├── NetworkSingleton.cpp
│   │   ├── NetworkSingleton.h
│   │   ├── Queue.h
│   │   ├── ServerHandleImpl.cpp
│   │   ├── ServerHandleImpl.h
│   │   ├── SleepResolutionBooster.h
│   │   ├── StackTrace.cpp
│   │   ├── StackTrace.h
│   │   ├── StartAsService.h
│   │   ├── Stopwatch.h
│   │   ├── TCPLinkImpl.cpp
│   │   ├── TCPLinkImpl.h
│   │   ├── UDPEndpointImpl.cpp
│   │   ├── UDPEndpointImpl.h
│   │   ├── WinStackWalker.cpp
│   │   └── WinStackWalker.h
│   ├── OpaqueWorld.h
│   ├── OverridesSettingsRepository.cpp
│   ├── OverridesSettingsRepository.h
│   ├── PalettedBlockArea.cpp
│   ├── PalettedBlockArea.h
│   ├── Physics/
│   │   ├── CMakeLists.txt
│   │   ├── Explodinator.cpp
│   │   └── Explodinator.h
│   ├── ProbabDistrib.cpp
│   ├── ProbabDistrib.h
│   ├── Protocol/
│   │   ├── Authenticator.cpp
│   │   ├── Authenticator.h
│   │   ├── CMakeLists.txt
│   │   ├── ChunkDataSerializer.cpp
│   │   ├── ChunkDataSerializer.h
│   │   ├── ForgeHandshake.cpp
│   │   ├── ForgeHandshake.h
│   │   ├── MojangAPI.cpp
│   │   ├── MojangAPI.h
│   │   ├── Packetizer.cpp
│   │   ├── Packetizer.h
│   │   ├── Palettes/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Palette_1_13.cpp
│   │   │   ├── Palette_1_13.h
│   │   │   ├── Palette_1_13_1.cpp
│   │   │   ├── Palette_1_13_1.h
│   │   │   ├── Palette_1_14.cpp
│   │   │   ├── Palette_1_14.h
│   │   │   ├── Palette_1_15.cpp
│   │   │   ├── Palette_1_15.h
│   │   │   ├── Palette_1_16.cpp
│   │   │   ├── Palette_1_16.h
│   │   │   ├── Upgrade.cpp
│   │   │   └── Upgrade.h
│   │   ├── Protocol.h
│   │   ├── ProtocolRecognizer.cpp
│   │   ├── ProtocolRecognizer.h
│   │   ├── Protocol_1_10.cpp
│   │   ├── Protocol_1_10.h
│   │   ├── Protocol_1_11.cpp
│   │   ├── Protocol_1_11.h
│   │   ├── Protocol_1_12.cpp
│   │   ├── Protocol_1_12.h
│   │   ├── Protocol_1_13.cpp
│   │   ├── Protocol_1_13.h
│   │   ├── Protocol_1_14.cpp
│   │   ├── Protocol_1_14.h
│   │   ├── Protocol_1_8.cpp
│   │   ├── Protocol_1_8.h
│   │   ├── Protocol_1_9.cpp
│   │   ├── Protocol_1_9.h
│   │   ├── RecipeMapper.cpp
│   │   └── RecipeMapper.h
│   ├── RCONServer.cpp
│   ├── RCONServer.h
│   ├── RankManager.cpp
│   ├── RankManager.h
│   ├── Registries/
│   │   ├── BlockStates.cpp
│   │   ├── BlockStates.h
│   │   ├── BlockTypes.h
│   │   ├── CMakeLists.txt
│   │   ├── CustomStatistics.h
│   │   └── Items.h
│   ├── Resources/
│   │   └── Cuberite.rc
│   ├── Root.cpp
│   ├── Root.h
│   ├── Scoreboard.cpp
│   ├── Scoreboard.h
│   ├── Server.cpp
│   ├── Server.h
│   ├── SetChunkData.cpp
│   ├── SetChunkData.h
│   ├── SettingsRepositoryInterface.h
│   ├── Simulator/
│   │   ├── CMakeLists.txt
│   │   ├── DelayedFluidSimulator.cpp
│   │   ├── DelayedFluidSimulator.h
│   │   ├── FireSimulator.cpp
│   │   ├── FireSimulator.h
│   │   ├── FloodyFluidSimulator.cpp
│   │   ├── FloodyFluidSimulator.h
│   │   ├── FluidSimulator.cpp
│   │   ├── FluidSimulator.h
│   │   ├── IncrementalRedstoneSimulator/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CommandBlockHandler.h
│   │   │   ├── DaylightSensorHandler.h
│   │   │   ├── DoorHandler.h
│   │   │   ├── DropSpenserHandler.h
│   │   │   ├── ForEachSourceCallback.cpp
│   │   │   ├── ForEachSourceCallback.h
│   │   │   ├── HopperHandler.h
│   │   │   ├── IncrementalRedstoneSimulator.cpp
│   │   │   ├── IncrementalRedstoneSimulator.h
│   │   │   ├── NoteBlockHandler.h
│   │   │   ├── ObserverHandler.h
│   │   │   ├── PistonHandler.h
│   │   │   ├── PoweredRailHandler.h
│   │   │   ├── PressurePlateHandler.h
│   │   │   ├── RedstoneBlockHandler.h
│   │   │   ├── RedstoneComparatorHandler.h
│   │   │   ├── RedstoneDataHelper.h
│   │   │   ├── RedstoneHandler.cpp
│   │   │   ├── RedstoneHandler.h
│   │   │   ├── RedstoneLampHandler.h
│   │   │   ├── RedstoneRepeaterHandler.h
│   │   │   ├── RedstoneSimulatorChunkData.h
│   │   │   ├── RedstoneToggleHandler.h
│   │   │   ├── RedstoneTorchHandler.h
│   │   │   ├── RedstoneWireHandler.h
│   │   │   ├── SmallGateHandler.h
│   │   │   ├── TNTHandler.h
│   │   │   ├── TrappedChestHandler.h
│   │   │   └── TripwireHookHandler.h
│   │   ├── NoopFluidSimulator.h
│   │   ├── NoopRedstoneSimulator.h
│   │   ├── RedstoneSimulator.h
│   │   ├── SandSimulator.cpp
│   │   ├── SandSimulator.h
│   │   ├── Simulator.cpp
│   │   ├── Simulator.h
│   │   ├── SimulatorManager.cpp
│   │   ├── SimulatorManager.h
│   │   ├── VanillaFluidSimulator.cpp
│   │   ├── VanillaFluidSimulator.h
│   │   ├── VaporizeFluidSimulator.cpp
│   │   └── VaporizeFluidSimulator.h
│   ├── SpawnPrepare.cpp
│   ├── SpawnPrepare.h
│   ├── StatisticsManager.cpp
│   ├── StatisticsManager.h
│   ├── StringCompression.cpp
│   ├── StringCompression.h
│   ├── StringUtils.cpp
│   ├── StringUtils.h
│   ├── UI/
│   │   ├── AnvilWindow.cpp
│   │   ├── AnvilWindow.h
│   │   ├── BeaconWindow.cpp
│   │   ├── BeaconWindow.h
│   │   ├── BrewingstandWindow.cpp
│   │   ├── BrewingstandWindow.h
│   │   ├── CMakeLists.txt
│   │   ├── ChestWindow.cpp
│   │   ├── ChestWindow.h
│   │   ├── CraftingWindow.cpp
│   │   ├── CraftingWindow.h
│   │   ├── DropSpenserWindow.cpp
│   │   ├── DropSpenserWindow.h
│   │   ├── EnchantingWindow.cpp
│   │   ├── EnchantingWindow.h
│   │   ├── EnderChestWindow.cpp
│   │   ├── EnderChestWindow.h
│   │   ├── FurnaceWindow.cpp
│   │   ├── FurnaceWindow.h
│   │   ├── HopperWindow.cpp
│   │   ├── HopperWindow.h
│   │   ├── HorseWindow.cpp
│   │   ├── HorseWindow.h
│   │   ├── InventoryWindow.cpp
│   │   ├── InventoryWindow.h
│   │   ├── MinecartWithChestWindow.h
│   │   ├── SlotArea.cpp
│   │   ├── SlotArea.h
│   │   ├── Window.cpp
│   │   ├── Window.h
│   │   └── WindowOwner.h
│   ├── UUID.cpp
│   ├── UUID.h
│   ├── Vector3.h
│   ├── VoronoiMap.cpp
│   ├── VoronoiMap.h
│   ├── WebAdmin.cpp
│   ├── WebAdmin.h
│   ├── World.cpp
│   ├── World.h
│   ├── WorldStorage/
│   │   ├── CMakeLists.txt
│   │   ├── EnchantmentSerializer.cpp
│   │   ├── EnchantmentSerializer.h
│   │   ├── FastNBT.cpp
│   │   ├── FastNBT.h
│   │   ├── FireworksSerializer.cpp
│   │   ├── FireworksSerializer.h
│   │   ├── MapSerializer.cpp
│   │   ├── MapSerializer.h
│   │   ├── NBTChunkSerializer.cpp
│   │   ├── NBTChunkSerializer.h
│   │   ├── NamespaceSerializer.cpp
│   │   ├── NamespaceSerializer.h
│   │   ├── SchematicFileSerializer.cpp
│   │   ├── SchematicFileSerializer.h
│   │   ├── ScoreboardSerializer.cpp
│   │   ├── ScoreboardSerializer.h
│   │   ├── StatisticsSerializer.cpp
│   │   ├── StatisticsSerializer.h
│   │   ├── WSSAnvil.cpp
│   │   ├── WSSAnvil.h
│   │   ├── WorldStorage.cpp
│   │   └── WorldStorage.h
│   ├── XMLParser.h
│   ├── fmt.h
│   ├── main.cpp
│   ├── main.h
│   └── mbedTLS++/
│       ├── AesCfb128Decryptor.cpp
│       ├── AesCfb128Decryptor.h
│       ├── AesCfb128Encryptor.cpp
│       ├── AesCfb128Encryptor.h
│       ├── BlockingSslClientSocket.cpp
│       ├── BlockingSslClientSocket.h
│       ├── BufferedSslContext.cpp
│       ├── BufferedSslContext.h
│       ├── CMakeLists.txt
│       ├── CallbackSslContext.cpp
│       ├── CallbackSslContext.h
│       ├── CryptoKey.cpp
│       ├── CryptoKey.h
│       ├── CtrDrbgContext.cpp
│       ├── CtrDrbgContext.h
│       ├── EntropyContext.cpp
│       ├── EntropyContext.h
│       ├── ErrorCodes.h
│       ├── RsaPrivateKey.cpp
│       ├── RsaPrivateKey.h
│       ├── Sha1Checksum.cpp
│       ├── Sha1Checksum.h
│       ├── SslConfig.cpp
│       ├── SslConfig.h
│       ├── SslContext.cpp
│       ├── SslContext.h
│       ├── X509Cert.cpp
│       └── X509Cert.h
├── stats.cmd
└── tests/
    ├── BlockTypeRegistry/
    │   ├── BlockStateTest.cpp
    │   ├── BlockTypePaletteTest.cpp
    │   ├── BlockTypeRegistryTest.cpp
    │   ├── CMakeLists.txt
    │   └── PalettedBlockAreaTest.cpp
    ├── BoundingBox/
    │   ├── BoundingBoxTest.cpp
    │   └── CMakeLists.txt
    ├── ByteBuffer/
    │   ├── ByteBufferTest.cpp
    │   ├── CMakeLists.txt
    │   └── Stubs.cpp
    ├── CMakeLists.txt
    ├── ChunkData/
    │   ├── ArraytoCoord.cpp
    │   ├── CMakeLists.txt
    │   ├── Coordinates.cpp
    │   ├── Copies.cpp
    │   └── Creatable.cpp
    ├── CompositeChat/
    │   ├── CMakeLists.txt
    │   ├── ClientHandle.cpp
    │   └── CompositeChatTest.cpp
    ├── ConsoleColors/
    │   └── ConsoleColors.cpp
    ├── FastRandom/
    │   ├── CMakeLists.txt
    │   └── FastRandomTest.cpp
    ├── Generating/
    │   ├── BasicGeneratorTest.cpp
    │   ├── Bindings.h
    │   ├── CMakeLists.txt
    │   ├── LoadablePieces.cpp
    │   ├── LuaState_Declaration.inc
    │   ├── LuaState_Typedefs.inc
    │   ├── PieceGeneratorBFSTreeTest.cpp
    │   ├── PieceRotationTest.cpp
    │   ├── Stubs.cpp
    │   ├── Test.cubeset
    │   └── Test1.schematic
    ├── HTTP/
    │   ├── CMakeLists.txt
    │   ├── HTTPMessageParser_file.cpp
    │   ├── HTTPRequest1.data
    │   ├── HTTPRequest2.data
    │   ├── HTTPRequestParser_file.cpp
    │   ├── HTTPResponse1.data
    │   ├── HTTPResponse2.data
    │   ├── HTTPResponseParser_file.cpp
    │   └── UrlClientTest.cpp
    ├── LoadablePieces/
    │   └── CMakeLists.txt
    ├── LuaThreadStress/
    │   ├── Bindings.h
    │   ├── CMakeLists.txt
    │   ├── LuaState_Declaration.inc
    │   ├── LuaState_Typedefs.inc
    │   ├── LuaThreadStress.cpp
    │   ├── Stubs.cpp
    │   └── Test.lua
    ├── Network/
    │   ├── CMakeLists.txt
    │   ├── EchoServer.cpp
    │   ├── EnumInterfaces.cpp
    │   ├── Google.cpp
    │   └── NameLookup.cpp
    ├── NoiseTest/
    │   ├── GNUmakefile
    │   └── NoiseTest.cpp
    ├── OSSupport/
    │   ├── CMakeLists.txt
    │   └── StressEvent.cpp
    ├── SchematicFileSerializer/
    │   ├── CMakeLists.txt
    │   ├── SchematicFileSerializerTest.cpp
    │   └── Stubs.cpp
    ├── TestHelpers.h
    └── UUID/
        ├── CMakeLists.txt
        └── UUIDTest.cpp

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
# Not the exact style guide but enough for basic clang-tidy fix-its
Language: Cpp
BasedOnStyle: LLVM

AlignAfterOpenBracket: AlwaysBreak
BreakConstructorInitializers: AfterColon
ConstructorInitializerAllOnOneLineOrOnePerLine: true
PointerAlignment: Middle
SortIncludes: false
SpacesBeforeTrailingComments: 2
UseTab: Always
MaxEmptyLinesToKeep: 5

TabWidth: 4
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
IndentWidth: 4
IndentCaseLabels: true

BreakBeforeBraces: Custom
BraceWrapping:
  AfterClass: true
  AfterControlStatement: true
  AfterEnum: true
  AfterExternBlock: true
  AfterFunction: true
  AfterNamespace: true
  AfterStruct: true
  AfterUnion: true
  BeforeCatch: true
  BeforeElse: true
  IndentBraces: false
  SplitEmptyFunction: true
  SplitEmptyRecord: true

# Always include globals first
IncludeCategories:
  - Regex: 'Globals.h'
    Priority: -1


================================================
FILE: .clang-tidy
================================================
Checks: >-
  -*,
  readability-identifier-naming,
  readability-redundant-string-cstr,
  readability-redundant-string-init,
  readability-simplify-boolean-expr,
  performance-unnecessary-value-param,
  performance-unnecessary-copy-initialization,
  performance-for-range-copy,
  performance-implicit-conversion-in-loop,
CheckOptions:
- key:             readability-identifier-naming.PrivateMemberPrefix
  value:           'm_'
- key:             readability-identifier-naming.ClassConstantCase
  value:           aNy_CasE
# an empty *Prefix needs a *Case to work
- key:             readability-identifier-naming.ClassConstantPrefix
  value:           ''
#- key:             readability-identifier-naming.PrivateMemberCase
#  value:           CamelCase
#- key:             readability-identifier-naming.FunctionCase
#  value:           CamelCase
#- key:             readability-identifier-naming.EnumCase
#  value:           camelBack

- key: performance-unnecessary-value-param.AllowedTypes
  value: 'cEntityEffect;cNoise'
WarningsAsErrors: '*'
HeaderFilterRegex: '/cuberite/src/\.?[^\.]'
FormatStyle: 'file'


================================================
FILE: .editorconfig
================================================

root = true

[*]
charset = utf-8
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true


================================================
FILE: .gitattributes
================================================
# Set the *.data files to be checked out as binary files.
# Used for the HTTP test data files, they need to have the CRLF line endings
# even on Linux, because they're HTTP protocol dumps.
*.data binary


================================================
FILE: .github/FUNDING.yml
================================================
liberapay: Cuberite


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false


================================================
FILE: .github/ISSUE_TEMPLATE/issue-template.md
================================================
---
name: Issue Template
about: Report a bug, feature request or another sort of issue
title: ''
labels: ''
assignees: ''

---

Client version: x.x.x
Server OS: Windows/Linux/macOS/BSD/...
Cuberite Commit id: (Found at the top of the server's console output)


### Expected behavior


### Actual behavior


### Steps to reproduce the behavior


### Server log
```
Relevant part of server log
```


================================================
FILE: .github/workflows/Build.yml
================================================
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: Build
on:
  push:
    tags-ignore:
      - release-*
    branches:
      - '**'
  pull_request:
    branches:
      - '**'

jobs:
  build:
    timeout-minutes: 60
    permissions: {}
    runs-on: ${{ matrix.os }}

    strategy:
      # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
      fail-fast: false

      # Set up a matrix to run the following 3 configurations:
      # 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
      # 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
      # 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
      #
      # To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.

      # The excluded ones are needed so some configs don't run.
      # The included ones are needed because the cpp_compiler field is not set otherwise, leading CMake to fail.
      matrix:
        os: [ubuntu-latest, windows-latest]
        build_type: [Release]
        c_compiler: [gcc, clang, cl]
        include:
          - os: windows-latest
            c_compiler: cl
            cpp_compiler: cl
          - os: ubuntu-latest
            c_compiler: gcc
            cpp_compiler: g++
          - os: ubuntu-latest
            c_compiler: clang
            cpp_compiler: clang++
        exclude:
          - os: windows-latest
            c_compiler: gcc
          - os: windows-latest
            c_compiler: clang
          - os: ubuntu-latest
            c_compiler: cl

    steps:
    - uses: actions/checkout@v4
      with:
        submodules: 'recursive'

    - name: Set reusable strings
      # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
      id: strings
      shell: bash
      run: |
        echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
   
    - name: Configure CMake
      # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
      # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
      run: >
        cmake -B ${{ steps.strings.outputs.build-output-dir }}
        -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
        -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
        -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
        -DBUILD_TOOLS=Yes
        -DSELF_TEST=Yes
        -S ${{ github.workspace }}
        
    - name: Build
      # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
      run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

    - if: runner.os == 'Windows'
      name: Create Zip Windows
      run:  powershell Compress-Archive build/Server Cuberite-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}.zip
      
    - if: runner.os != 'Windows'
      name: Create Zip Linux
      run: zip -r Cuberite-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}.zip build/Server
      
    - name: Test
      working-directory: ${{ steps.strings.outputs.build-output-dir }}
      # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
      run: ctest --build-config ${{ matrix.build_type }} --output-on-failure

    - if: runner.os != 'Windows'
      name: Docs
      run: |
           cd build/Server
           touch apiCheckFailed.flag
           ./Cuberite <<- EOF
           load APIDump
           api
           apicheck
           restart
           stop
           EOF
           if [ -f ./NewlyUndocumented.lua ]; then
                echo "ERROR: Newly undocumented API symbols found:"
                cat ./NewlyUndocumented.lua
                exit 1
           fi
           if [ -f ./DuplicateDocs.txt ]; then
                echo "ERROR: API documentation has duplicate symbol warnings:"
                cat ./DuplicateDocs.txt
                exit 1
           fi
           if [ -f ./apiCheckFailed.flag ]; then
                echo "ERROR: API check has failed with an unknown error"
                exit 1
           fi
    - name: Extract branch name
      shell: bash
      run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
      id: extract_branch

    - if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/experimental'
      name: Upload artifact
      uses: actions/upload-artifact@v4
      with:
        if-no-files-found: 'error'
        name: Cuberite-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}
        path: Cuberite-${{ matrix.os }}-${{ matrix.c_compiler }}-${{ matrix.build_type }}.zip
  upload_release:
    # Disable the job until a proper release process is made
    if: (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/experimental') && false
    permissions:
      contents: write
    needs: build
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
      - name: Extract branch name
        shell: bash
        run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
        id: extract_branch
      - name: Download Artifacts
        uses: actions/download-artifact@v4
        with:
          merge-multiple: true
      - name: Create GitHub Release
        uses: softprops/action-gh-release@v2
        with:
          tag_name: release-${{ steps.extract_branch.outputs.branch }}
          name: Release ${{ steps.extract_branch.outputs.branch }}
          body: Automatically uploaded release by GitHub actions
          fail_on_unmatched_files: true
          files: |
                  ${{ github.workspace }}/Cuberite-ubuntu-latest-clang-Release.zip
                  ${{ github.workspace }}/Cuberite-ubuntu-latest-gcc-Release.zip
                  ${{ github.workspace }}/Cuberite-windows-latest-cl-Release.zip
          prerelease: true
      # Taken from here https://stackoverflow.com/questions/68895194/github-actions-create-or-update-a-git-tag
      - if: ${{ success() }}
        name: Fix tag
        uses: actions/github-script@v7
        with:
          script: |
            github.rest.git.createRef({
              owner: context.repo.owner,
              repo: context.repo.repo,
              ref: 'refs/tags/release-${{ steps.extract_branch.outputs.branch }}',
              sha: context.sha
            }).catch(err => {
              if (err.status !== 422) throw err;
              github.rest.git.updateRef({
                owner: context.repo.owner,
                repo: context.repo.repo,
                ref: 'tags/release-${{ steps.extract_branch.outputs.branch }}',
                sha: context.sha
              });
            })



================================================
FILE: .github/workflows/StyleCheck.yml
================================================
name: Style Check
permissions: {}
on:
  push:
    tags-ignore:
      - release-*
    branches:
      - '**'
  pull_request:
    branches:
      - '**'

jobs:
  build:
    timeout-minutes: 60
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4
    - uses: leafo/gh-actions-lua@v11

    - name: Find Files
      run: cd src && find . -name "*.cpp" -or -name "*.h" > AllFiles.lst

    - name: Check Basic Style
      run: cd src && lua CheckBasicStyle.lua

    - name: Check Bindings and Deps
      run: cd src/Bindings && lua CheckBindingsDependencies.lua


================================================
FILE: .gitignore
================================================
build/
build*/
nbproject/
ipch/
Win32/
MCServer
Server/Cuberite
Server/buildinfo
Server/CONTRIBUTORS
Server/LICENSE
Server/Licenses
Server/itemblacklist
Tools/MCADefrag/MCADefrag
Tools/ProtoProxy/ProtoProxy
Testing/
ChunkWorxSave.ini
doxy/
.vscode/
Profiling
Symbols
cloc-ignored.txt
cloc.xml
cloc.xsl
*.ncb
*.user
*.suo
*.sqlite
/EveryNight.cmd
/UploadLuaAPI.cmd
GPUCache
AllFiles.lst
GPUCache

# IDE Stuff
## Sublime Text
*.sublime-*
## emacs
*.*~
*~
*.orig
## CLion
.idea
## Eclipse
.cproject
.project
*.cbp
## KDevelop
*.kdev*
## Vim
.cache/

# world inside source
ChunkWorx.ini
groups.ini
items.ini
monsters.ini
settings.ini
terrain.ini
users.ini
webadmin.ini
world.ini
crafting.txt
motd.txt
logs
players
world
world_nether

# cmake stuff
CMakeFiles/
cmake_install.cmake
CMakeCache.txt
CTestTestfile.cmake
Makefile

*.a
*.d
*.so
tests/*/*-exe
CMakeCache.txt
CMakeFiles
Makefile
cmake_install.cmake
install_mainfest.txt
src/Cuberite
lib/tolua++/tolua
src/Bindings/Bindings.*
src/Bindings/BindingDependencies.txt
Cuberite.dir/
src/AllFiles.lst

# win32 cmake stuff
*.vcxproj
*.vcproj
*.vcxproj.filters
*.opensdf
*.sdf
*.sln
*.VC.opendb
*.VC.db
*.idb
.vs/

# cmake output folders and files
ZERO_CHECK.dir/
Debug/
DebugProfile/
Release/
ReleaseProfile/
*.dir/
CPackConfig.cmake
CPackSourceConfig.cmake
cmake-build-*

# APIDump-generated status files:
Server/cuberite_api.lua
Server/official_undocumented.lua
Server/NewlyUndocumented.lua
Server/.luacheckrc
compile_commands.json

# compile.sh folder
build-cuberite

# clang-tidy
tidy-build
run-clang-tidy.py

# ctags output
tags

# mac things
.DS_Store


================================================
FILE: .gitmodules
================================================
[submodule "Server/Plugins/Core"]
	path = Server/Plugins/Core
	url = https://github.com/cuberite/Core.git
[submodule "Server/Plugins/ProtectionAreas"]
	path = Server/Plugins/ProtectionAreas
	url = https://github.com/cuberite/ProtectionAreas.git
[submodule "Server/Plugins/ChatLog"]
	path = Server/Plugins/ChatLog
	url = https://github.com/cuberite/ChatLog.git
[submodule "lib/mbedtls"]
	path = lib/mbedtls
	url = https://github.com/cuberite/polarssl.git
	ignore = dirty
[submodule "lib/SQLiteCpp"]
	path = lib/SQLiteCpp
	url = https://github.com/cuberite/SQLiteCpp.git
	ignore = dirty
[submodule "lib/libevent"]
	path = lib/libevent
	url = https://github.com/cuberite/libevent.git
	ignore = dirty
[submodule "lib/jsoncpp"]
	path = lib/jsoncpp
	url = https://github.com/open-source-parsers/jsoncpp.git
	ignore = dirty
[submodule "lib/TCLAP"]
	path = lib/TCLAP
	url = https://github.com/cuberite/TCLAP.git
	ignore = dirty
[submodule "lib/cmake-coverage"]
	path = lib/cmake-coverage
	url = https://github.com/cuberite/cmake-coverage.git
	ignore = dirty
[submodule "lib/expat"]
	path = lib/expat
	url = https://github.com/cuberite/expat.git
	ignore = dirty
[submodule "lib/lua"]
	path = lib/lua
	url = https://github.com/cuberite/lua.git
	ignore = dirty
[submodule "lib/luaexpat"]
	path = lib/luaexpat
	url = https://github.com/cuberite/luaexpat.git
	ignore = dirty
[submodule "lib/luaproxy"]
	path = lib/luaproxy
	url = https://github.com/cuberite/luaproxy.git
	ignore = dirty
[submodule "lib/sqlite"]
	path = lib/sqlite
	url = https://github.com/cuberite/sqlite.git
	ignore = dirty
[submodule "lib/tolua++"]
	path = lib/tolua++
	url = https://github.com/cuberite/toluapp.git
	ignore = dirty
[submodule "lib/fmt"]
	path = lib/fmt
	url = https://github.com/fmtlib/fmt.git
	ignore = dirty
[submodule "Tools/BlockTypePaletteGenerator/lib/lunajson"]
	path = Tools/BlockTypePaletteGenerator/lib/lunajson
	url = https://github.com/grafi-tt/lunajson.git
[submodule "lib/libdeflate"]
	path = lib/libdeflate
	url = https://github.com/cuberite/libdeflate


================================================
FILE: BACKERS
================================================
Thanks to the following people for supporting the Cuberite project with a donation:

 - Alvin
 - Anonymous
 - chrobione
 - DrMasik
 - Fllamber
 - JimSVMI83
 - Lordake
 - ltdTM
 - Phillip Inman
 - PureTryOut
 - Robert Cringely
 - spekdrum
 - SphinxC0re
 - TooAngel
 - Utking
 - VaiN474

If you enjoy Cuberite, feel free to donate to the project on Liberapay:
https://liberapay.com/Cuberite


================================================
FILE: CMake/AddDependencies.cmake
================================================
function(build_dependencies)
	# Set options for SQLiteCpp, disable all their lints and other features we don't need:
	set(SQLITE_ENABLE_COLUMN_METADATA  OFF CACHE BOOL "Enable Column::getColumnOriginName(). Require support from sqlite3 library.")
	set(SQLITE_ENABLE_JSON1            OFF CACHE BOOL "Enable JSON1 extension when building internal sqlite3 library.")
	set(SQLITECPP_INCLUDE_SCRIPT       OFF CACHE BOOL "Include config & script files.")
	set(SQLITECPP_RUN_CPPCHECK         OFF CACHE BOOL "Run cppcheck C++ static analysis tool.")
	set(SQLITECPP_RUN_CPPLINT          OFF CACHE BOOL "Run cpplint.py tool for Google C++ StyleGuide.")
	set(SQLITECPP_USE_STACK_PROTECTION OFF CACHE BOOL "USE Stack Protection hardening.")
	set(SQLITECPP_USE_STATIC_RUNTIME   OFF CACHE BOOL "Use MSVC static runtime (default for internal googletest).")

	# Set options for LibEvent, disable all their tests and benchmarks:
	set(EVENT__DISABLE_OPENSSL   YES CACHE BOOL   "Disable OpenSSL in LibEvent")
	set(EVENT__DISABLE_BENCHMARK YES CACHE BOOL   "Disable LibEvent benchmarks")
	set(EVENT__DISABLE_TESTS     YES CACHE BOOL   "Disable LibEvent tests")
	set(EVENT__DISABLE_REGRESS   YES CACHE BOOL   "Disable LibEvent regression tests")
	set(EVENT__DISABLE_SAMPLES   YES CACHE BOOL   "Disable LibEvent samples")
	set(EVENT__LIBRARY_TYPE "STATIC" CACHE STRING "Use static LibEvent libraries")

	# Set options for JsonCPP, disabling all of their tests:
	set(JSONCPP_WITH_TESTS OFF CACHE BOOL "Compile and (for jsoncpp_check) run JsonCpp test executables")
	set(JSONCPP_WITH_POST_BUILD_UNITTEST OFF CACHE BOOL "Automatically run unit-tests as a post build step")
	set(JSONCPP_WITH_PKGCONFIG_SUPPORT OFF CACHE BOOL "Generate and install .pc files")
	set(JSONCPP_WITH_CMAKE_PACKAGE OFF CACHE BOOL "Generate and install cmake package files")
	set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build jsoncpp_lib as a shared library.")
	set(BUILD_OBJECT_LIBS OFF CACHE BOOL "Build jsoncpp_lib as a object library.")

	# Set options for mbedtls:
	set(ENABLE_PROGRAMS OFF CACHE BOOL "Build mbed TLS programs.")
	set(ENABLE_TESTING OFF CACHE BOOL "Build mbed TLS tests.")

	# Enumerate all submodule libraries
	# SQLiteCpp needs to be included before sqlite so the lsqlite target is available:
	set(DEPENDENCIES expat fmt jsoncpp libdeflate libevent lua luaexpat mbedtls SQLiteCpp sqlite tolua++)
	foreach(DEPENDENCY ${DEPENDENCIES})
		# Check that the libraries are present:
		if (NOT EXISTS "${PROJECT_SOURCE_DIR}/lib/${DEPENDENCY}/CMakeLists.txt")
			message(FATAL_ERROR "${DEPENDENCY} is missing in folder lib/${DEPENDENCY}. Have you initialized and updated the submodules / downloaded the extra libraries?")
		endif()

		# Include all the libraries
		# We use EXCLUDE_FROM_ALL so that only the explicit dependencies are compiled
		# (mbedTLS also has test and example programs in their CMakeLists.txt, we don't want those):
		add_subdirectory("lib/${DEPENDENCY}" EXCLUDE_FROM_ALL)
	endforeach()

	if (WIN32)
		add_subdirectory(lib/luaproxy)
	endif()
endfunction()

function(link_dependencies TARGET)
	# Add required includes:
	target_include_directories(
		${TARGET} SYSTEM PRIVATE
		lib/mbedtls/include
		lib/TCLAP/include
		lib # TODO fix files including zlib/x instead of x
	)

	# Link dependencies as private:
	target_link_libraries(
		${TARGET} PRIVATE
		event_core
		event_extra
		fmt::fmt
		jsoncpp_static
		libdeflate
		lsqlite
		lualib
		luaexpat
		mbedtls
		SQLiteCpp
		tolualib
	)

	# Link process information, multimedia (for sleep resolution) libraries:
	if (WIN32)
		target_link_libraries(${TARGET} PRIVATE Psapi.lib Winmm.lib)
	endif()

	# Special case handling for libevent pthreads:
	if(NOT WIN32)
		target_link_libraries(${TARGET} PRIVATE event_pthreads)
	endif()

	# Prettify jsoncpp_static name in VS solution explorer:
	set_property(TARGET jsoncpp_static PROPERTY PROJECT_LABEL "jsoncpp")
	if(${CMAKE_SYSTEM_NAME} MATCHES FreeBSD)
		target_link_libraries(${TARGET} PRIVATE kvm)
	endif()
endfunction()


================================================
FILE: CMake/Fixups.cmake
================================================
function(emit_fixups)
	if(NOT MSVC AND "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
		# mbed TLS uses the frame pointer's register in inline assembly for its bignum implementation:
		# https://tls.mbed.org/kb/development/arm-thumb-error-r7-cannot-be-used-in-asm-here
		target_compile_options(mbedcrypto PRIVATE -fomit-frame-pointer)
	endif()

	if(UNIX)
		execute_process(COMMAND ldd OUTPUT_VARIABLE LDD_OUTPUT ERROR_VARIABLE LDD_OUTPUT)
		if (LDD_OUTPUT MATCHES musl)
			# Bring musl stack size in line with other platforms:
			target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,stack-size=1048576")
		endif()
	endif()
endfunction()


================================================
FILE: CMake/GenerateBindings.cmake
================================================
function(enable_bindings_generation)
	# Enumerate every Lua-exported class.
	# Changes to these files will cause binding regen:
	set(BINDING_DEPENDENCIES
		Bindings/AllToLua.pkg
		Bindings/BindingsProcessor.lua
		Bindings/LuaFunctions.h
		Bindings/LuaWindow.h
		Bindings/Plugin.h
		Bindings/PluginLua.h
		Bindings/PluginManager.h
		BiomeDef.h
		BlockArea.h
		BlockEntities/BeaconEntity.h
		BlockEntities/BedEntity.h
		BlockEntities/BlockEntity.h
		BlockEntities/BlockEntityWithItems.h
		BlockEntities/BrewingstandEntity.h
		BlockEntities/ChestEntity.h
		BlockEntities/CommandBlockEntity.h
		BlockEntities/DispenserEntity.h
		BlockEntities/DropSpenserEntity.h
		BlockEntities/DropperEntity.h
		BlockEntities/FurnaceEntity.h
		BlockEntities/HopperEntity.h
		BlockEntities/JukeboxEntity.h
		BlockEntities/MobSpawnerEntity.h
		BlockEntities/NoteEntity.h
		BlockEntities/SignEntity.h
		BlockEntities/MobHeadEntity.h
		BlockEntities/FlowerPotEntity.h
		BlockType.h
		BlockInfo.h
		BoundingBox.h
		ChatColor.h
		ChunkDef.h
		ClientHandle.h
		Color.h
		CompositeChat.h
		CraftingRecipes.h
		Cuboid.h
		Defines.h
		EffectID.h
		Enchantments.h
		Entities/Boat.h
		Entities/ArrowEntity.h
		Entities/Entity.h
		Entities/ExpOrb.h
		Entities/EnderCrystal.h
		Entities/EntityEffect.h
		Entities/ExpBottleEntity.h
		Entities/FallingBlock.h
		Entities/FireChargeEntity.h
		Entities/FireworkEntity.h
		Entities/Floater.h
		Entities/GhastFireballEntity.h
		Entities/HangingEntity.h
		Entities/ItemFrame.h
		Entities/LeashKnot.h
		Entities/Pawn.h
		Entities/Player.h
		Entities/Painting.h
		Entities/Pickup.h
		Entities/ProjectileEntity.h
		Entities/SplashPotionEntity.h
		Entities/ThrownEggEntity.h
		Entities/ThrownEnderPearlEntity.h
		Entities/ThrownSnowballEntity.h
		Entities/TNTEntity.h
		Entities/WitherSkullEntity.h
		Generating/ChunkDesc.h
		IniFile.h
		Inventory.h
		Item.h
		ItemGrid.h
		Map.h
		MapManager.h
		Mobs/Monster.h
		Mobs/MonsterTypes.h
		OSSupport/File.h
		Protocol/MojangAPI.h
		Registries/CustomStatistics.h
		Root.h
		Scoreboard.h
		Server.h
		StatisticsManager.h
		StringUtils.h
		UI/Window.h
		UUID.h
		Vector3.h
		WebAdmin.h
		World.h
	)

	# List all the files that are generated as part of the Bindings build process:
	set(BINDING_OUTPUTS
		Bindings.cpp
		Bindings.h
		LuaState_Declaration.inc
		LuaState_Implementation.cpp
		LuaState_Typedefs.inc
	)

	# Make the file paths absolute and pointing to the bindings folder:
	set(BINDINGS_FOLDER "${PROJECT_SOURCE_DIR}/src/Bindings/")
	list(TRANSFORM BINDING_OUTPUTS PREPEND ${BINDINGS_FOLDER})
	list(TRANSFORM BINDING_DEPENDENCIES PREPEND "${PROJECT_SOURCE_DIR}/src/")

	# Generate the bindings:
	add_custom_command(
		OUTPUT ${BINDING_OUTPUTS}
		COMMAND lua BindingsProcessor.lua
		WORKING_DIRECTORY ${BINDINGS_FOLDER}
		DEPENDS ${BINDING_DEPENDENCIES}
	)
endfunction()


================================================
FILE: CMake/GroupSources.cmake
================================================
function(group_sources)
	# Enable the support for solution folders in MSVC
	set_property(GLOBAL PROPERTY USE_FOLDERS ON)

	# Put projects into solution folders in MSVC:
	set_target_properties(
		event_core_static
		event_extra_static
		expat
		fmt
		jsoncpp_static
		libdeflate
		lualib
		luaexpat
		mbedcrypto
		mbedtls
		mbedx509
		lsqlite
		sqlite3
		SQLiteCpp
		tolualib
		PROPERTIES FOLDER Libraries
	)

	# luaproxy not generated on anything else
	if(WIN32)
		set_target_properties(
			luaproxy
			PROPERTIES FOLDER Support
		)
	endif()

	if(${BUILD_TOOLS})
		set_target_properties(
			MCADefrag
			ProtoProxy
			PROPERTIES FOLDER Tools
		)
	endif()

	# Put all files into one project, separate by the folders:
	get_property(TARGET_SOURCE_FILES TARGET ${CMAKE_PROJECT_NAME} PROPERTY SOURCES)
	source_group(TREE "${PROJECT_SOURCE_DIR}/src" FILES ${TARGET_SOURCE_FILES})
endfunction()


================================================
FILE: CMake/StampBuild.cmake
================================================
# These env variables are used for configuring Travis CI builds.
if(DEFINED ENV{TRAVIS_CUBERITE_FORCE32})
	set(FORCE32 $ENV{TRAVIS_CUBERITE_FORCE32})
endif()

if(DEFINED ENV{TRAVIS_BUILD_WITH_COVERAGE})
	set(BUILD_WITH_COVERAGE $ENV{TRAVIS_BUILD_WITH_COVERAGE})
endif()

if(DEFINED ENV{CUBERITE_BUILD_ID})
	# The build info is defined by the build system (Travis / Jenkins)
	set(BUILD_ID $ENV{CUBERITE_BUILD_ID})
	set(BUILD_SERIES_NAME $ENV{CUBERITE_BUILD_SERIES_NAME})
	set(BUILD_DATETIME $ENV{CUBERITE_BUILD_DATETIME})
	if(DEFINED ENV{CUBERITE_BUILD_COMMIT_ID})
		set(BUILD_COMMIT_ID $ENV{CUBERITE_BUILD_COMMIT_ID})
	else()
		message("Commit id not set, attempting to determine id from git")
		execute_process(
			COMMAND git rev-parse HEAD
			WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
			RESULT_VARIABLE GIT_EXECUTED
			OUTPUT_VARIABLE BUILD_COMMIT_ID
		)
		string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID)
		if (NOT (GIT_EXECUTED EQUAL 0))
			message(FATAL_ERROR "Could not identifiy git commit id")
		endif()
	endif()
else()
	# This is a local build, stuff in some basic info:
	set(BUILD_ID "Unknown")
	set(BUILD_SERIES_NAME "local build")
	execute_process(
		COMMAND git rev-parse HEAD
		WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
		RESULT_VARIABLE GIT_EXECUTED
		OUTPUT_VARIABLE BUILD_COMMIT_ID
	)
	if (NOT(GIT_EXECUTED EQUAL 0))
		set(BUILD_COMMIT_ID "Unknown")
	endif()
	string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID)
	execute_process(
		COMMAND git log -1 --date=iso --pretty=format:%ai
		WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
		RESULT_VARIABLE GIT_EXECUTED
		OUTPUT_VARIABLE BUILD_DATETIME
	)
	if (NOT(GIT_EXECUTED EQUAL 0))
		set(BUILD_DATETIME "Unknown")
	endif()
	string(STRIP ${BUILD_DATETIME} BUILD_DATETIME)

	# The BUILD_COMMIT_ID and BUILD_DATETIME aren't updated on each repo pull
	# They are only updated when cmake re-configures the project
	# Therefore mark them as "approx: "
	set(BUILD_COMMIT_ID "approx: ${BUILD_COMMIT_ID}")
	set(BUILD_DATETIME "approx: ${BUILD_DATETIME}")
endif()


================================================
FILE: CMakeLists.txt
================================================
# This is the top-level CMakeLists.txt file for the Cuberite project
#
# Use CMake to generate the build files for your platform

cmake_minimum_required (VERSION 3.13)
cmake_policy(VERSION 3.13...3.17.2)
project(
	Cuberite
	DESCRIPTION "A lightweight, fast and extensible game server for Minecraft"
	HOMEPAGE_URL "https://cuberite.org"
	LANGUAGES C CXX
)

option(BUILD_TOOLS "Sets up additional executables to be built along with the server" OFF)
option(BUILD_UNSTABLE_TOOLS "Sets up yet more executables to be built, these can be broken and generally are obsolete" OFF)
option(NO_NATIVE_OPTIMIZATION "Disables CPU-specific optimisations for the current machine, allows use on other CPUs of the same platform" OFF)
option(PRECOMPILE_HEADERS "Enable precompiled headers for faster builds" ON)
option(SELF_TEST "Enables testing code to be built" OFF)
option(UNITY_BUILDS "Enables source aggregation for faster builds" ON)
option(WHOLE_PROGRAM_OPTIMISATION "Enables link time optimisation for Release" ON)

include("CMake/AddDependencies.cmake")
include("CMake/Fixups.cmake")
include("CMake/GenerateBindings.cmake")
include("CMake/GroupSources.cmake")
include("SetFlags.cmake")

# Add build timestamp and details:
include("CMake/StampBuild.cmake")

# We need C++17 features:
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Static CRT:
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

# TODO: set_build_stamp()
set_global_flags()
build_dependencies()

add_executable(${CMAKE_PROJECT_NAME})
add_subdirectory(src)

set_exe_flags(${CMAKE_PROJECT_NAME})
link_dependencies(${CMAKE_PROJECT_NAME})

# Set the startup project to Cuberite, and the debugger dir:
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${CMAKE_PROJECT_NAME})
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/Server")

# Enable PCH and jumbo builds on supporting CMake:
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.16")
	if (PRECOMPILE_HEADERS)
		target_precompile_headers(${CMAKE_PROJECT_NAME} PRIVATE src/Globals.h)
	endif()

	set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES UNITY_BUILD ${UNITY_BUILDS})
else()
	message(WARNING "Precompiled headers for FASTER BUILDS not enabled, upgrade to CMake 3.16 or newer!")
endif()

# Selectively disable warnings in the level where the target is created:
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
	# Generated file has old-style casts, missing prototypes, and deprecated declarations
	set_source_files_properties("${PROJECT_SOURCE_DIR}/src/Bindings/Bindings.cpp" PROPERTIES COMPILE_OPTIONS -Wno-everything)

	# File failed to follow NHS guidelines on handwashing and has not maintained good hygiene
	set_source_files_properties("${PROJECT_SOURCE_DIR}/src/IniFile.cpp" PROPERTIES COMPILE_OPTIONS -Wno-header-hygiene)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
	set_source_files_properties("${PROJECT_SOURCE_DIR}/src/Bindings/Bindings.cpp" PROPERTIES COMPILE_OPTIONS -w)
endif()

if(BUILD_TOOLS)
	message(STATUS "Building tools")
	add_subdirectory(Tools/GrownBiomeGenVisualiser/)
	add_subdirectory(Tools/MCADefrag/)
	add_subdirectory(Tools/NoiseSpeedTest/)
	add_subdirectory(Tools/ProtoProxy/)
endif()

if(BUILD_UNSTABLE_TOOLS)
	message(STATUS "Building unstable tools")
	add_subdirectory(Tools/GeneratorPerformanceTest/)
endif()

# Self Test Mode enables extra checks at startup
if(SELF_TEST)
	message(STATUS "Tests enabled")
	enable_testing()
	add_subdirectory(tests)
endif()

# The need for speed (in Release):
if(WHOLE_PROGRAM_OPTIMISATION)
    include(CheckIPOSupported)
    check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_OUTPUT)
    if(IPO_SUPPORTED)
        set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
    else()
        message(WARNING "IPO is not supported: ${IPO_CHECK_OUTPUT}")
    endif()
endif()

emit_fixups()
group_sources()
enable_bindings_generation()


================================================
FILE: COMPILING.md
================================================
Compiling Cuberite
==================

To compile Cuberite from source, you need the following set of software:

 - CMake
 - Platform-specific make tool (Windows would be MSVC, Linux/macOS GNU make, etc.)
 - C compiler
 - Modern C++17 capable compiler and linker

To contribute code, you also need a Git client.

Windows
-------

We use Microsoft Visual Studio for Windows compilation. It is possible to use other toolchains, but we don't test against them and they aren't supported. Visual Studio 2017 Community and above are being actively used for development.

You can find download links for VS2019 Community [here][1].

Next, you need to download and install [CMake][2]. You should download a full installation package, so that the installer will set everything up for you (especially the paths).

To contribute your changes to the source back to the repository, you need a Git client. Options are:

 - [Git for Windows][3]
 - [GitHub Desktop][4]
 - [TortoiseGit][5]

Alternatively, if you want only to compile the source, without contributing, you can [download the sources in a ZIP file directly from GitHub][6].

If you're using Git to get the source, use the following command to set up the local workspace correctly:

```
git clone --recursive https://github.com/cuberite/cuberite.git
```

Now that you have the source, it's time to prepare the project files for your favorite compiler. Open a command window in the folder with the source and type in:
```
mkdir build
cd build
cmake ..
```
This creates a `build` folder where the build will take place, then runs CMake, which will auto-detect your Visual Studio version and produce the appropriate project and solution files.

Finally, open the newly created file, `Cuberite.sln`, in your Visual Studio.

If you want to run Cuberite from within VS, you need to first make sure that it will be run with the correct home folder. Normally this happens automatically, but for some Visual Studio versions the process doesn't stick. Right-click on the Cuberite project in the Solution Explorer tool window, and select Properties. In the dialog, navigate to Configuration properties -> Debugging in the tree on the left, then make sure the value `Working Directory` is set to `../Server`. If you don't do this, the server won't be able to find crafting recipes, item names or plugins.

### Release Configuration

To make Visual Studio produce the version with the best performance, you will need to select a Release configuration. Go to menu Build -> Configuration Manager, and in the opened dialog, change the top left combo box (Active solution configuration) to Release. Close the dialog and build the solution. The resulting executable is called `Cuberite.exe` in the `Server` folder.

### Debug Configuration

In order to tinker with the code, you'll more than likely need to use the debugging features of your IDE. To make them the easiest to use, you should switch to the Debug configuration - this provides the highest level of information while debugging, for the price of the executable being 2 - 10 times slower. Go to menu Build -> Configuration Manager, and in the opened dialog, change the top left combo box (Active solution configuration) to Debug. Close the dialog and build the solution. The resulting executable is called `Cuberite_debug.exe` in the `Server` folder.

macOS
-----

 - Install git from its [website][7] or homebrew: `brew install git`.

 - Install Xcode (commandline tools are recommended) from the App Store or [the website][8].

 - Install CMake from its [website][9] or homebrew: `brew install cmake`.

Cuberite requires Xcode 11.3 or newer.

### Getting the Source

```
git clone --recursive https://github.com/cuberite/cuberite.git
```

### Building

Follow the instructions at [CMake on Unix-based platforms](#cmake-on-unix-based-platforms), using Xcode as cmake's generator. If no generator is specified, CMake will use the Makefile generator, in which case you must build with the `make` command.

After doing so, run the command `xcodebuild lib/polarssl/POLARSSL.xcodeproj` in the build directory, in order to build polarssl, a library that is required by Cuberite. Lastly, run the command `xcodebuild` to build Cuberite. Optionally, you may open the project files for polarssl and then Cuberite in Xcode and build there.


Linux, FreeBSD etc.
-------------------

Install git, make, cmake and clang (or gcc), using your platform's package manager. Debian/Ubuntu:

```
sudo apt-get install git make cmake clang
```
Ensure that you have modern C++ compiler and linker (Clang 7.0+, GCC 7.4+, or VS 2017+).
Cuberite also requires CMake 3.13 or newer.  You might find that your distribution
defaults are too out of date, in which case you may need to add a new `apt` source,
or download directly from the projects' websites:

 - [Clang][Clang-download]
 - [CMake][2]

### Getting the Source

```
git clone --recursive https://github.com/cuberite/cuberite.git
```

### Building

Run the following commands to build Cuberite:

```
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=RELEASE ..
make -j`nproc`
```

This will build Cuberite in release mode, which is better for almost all cases. For more `cmake` options, or for building in debug mode, see [CMake on Unix-based platforms](#cmake-on-unix-based-platforms).

Android
-------

It is required that users obtain the latest copies of:

 - [The Android Native Development Kit (NDK)][10]
 - [Lua (download a binary)][11]

Windows users may optionally install the [Ninja build system][12] for improved build speeds.

### Getting the Source

```
git clone --recursive https://github.com/cuberite/cuberite.git
```

### Configuration

From the `android` subdirectory:

```
cmake . -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=16 -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_ARCH_ABI=armeabi -DCMAKE_ANDROID_NDK=""
```
where `CMAKE_ANDROID_NDK` should be the absolute path to where the Android NDK is installed.

#### Generators to Use

On Linux, the default Make is suggested. No additional parameters are required for this option.

Windows users may make use of Visual Studio to compile for Android, but CMake requires the presence of Nvidia CodeWorks/Nsight Tegra, which can be a hassle to install.

The easiest generator to use seems to be the NDK-bundled Make, to be specified:
 * `-G "MinGW Makefiles" -DCMAKE_MAKE_PROGRAM=""`
where `CMAKE_MAKE_PROGRAM` should be the absolute path to the `make` program, found under the `prebuilt/windows-*/bin` subdirectory in the NDK folder.

The next easiest generator is Ninja, which additionally offers multithreaded builds, to be specified:
 * `-G "Ninja"`

#### Additional ABI Options

For additional ABI options, visit: https://cmake.org/cmake/help/latest/variable/CMAKE_ANDROID_ARCH_ABI.html

Please note that certain ABIs require specific [API levels](#api-level-requirements).

#### API Level Requirements

The minimum API level is 16 in the verbatim copy of this folder, due to the inclusion of position independent compilation. Additonally, API level 21 or higher is needed for 64 bit ABIs as earlier versions have no support for this architecture.

To lower these requirements to run on very old devices, it is necessary to select a compatible ABI, and disable position independent code generation.

### Building

From the `android` subdirectory:

```
cmake --build .
```

If the build succeeded, an Android-launchable binary will have been generated under the `Server` directory. However, since this directory does not have any supporting files, they must be copied from the parent folder's `Server` directory.

To use it in the official Android app, compress the aforementioned `Server` directory into a Zip file, and transfer it to the phone on which the app is installed.

#### Using the Compile Script on Linux

Linux users are entitled to use the compile script, which provides some easy to use options and also contains instructions for using the binaries in the official Android app.

When running the compile script, make sure to have the necessary build tools installed and run the compile script as following:

```
NDK="path/to/ndk/root" CMAKE="path/to/cmake/executable" android/compile.sh <abi|all|clean>
```

The NDK variable must be set to the path to the NDK root, CMAKE to a call of the cmake binary used for compiling. If the cmake binary is in the PATH, a simple `CMAKE=cmake` is enough. As last parameter you either have to enter a correct ABI (see https://cmake.org/cmake/help/latest/variable/CMAKE_ANDROID_ARCH_ABI.html) or either all or clean. Clean will cause the script to remove the android-build directory, all will compile and zip all Cuberite for all 7 ABIs and create a zip archive of the android/Server direcory for use in the official Android app. If you are unsure which ABI is required for your phone, open the official Android app and navigate to "Settings" and "Install". It will show you the required ABI. Additional parameters may be given through environment variables, namely TYPE="" as Release or Debug (defaults to Release) and THREADS="4" as the number of threads used for compilation (defaults to 4).

### Running the Executables on a Device

Note the locations to which the Zip files were transferred. Open the official Android app, and select "Settings", then "Install", and finally select the Zip files.

Cuberite for Android is now ready to use.

CMake on Unix-based platforms
-----------------------------

### Release Mode

Release mode is preferred for almost all cases, it has much better speed and less console spam. However, if you are developing Cuberite actively, debug mode might be better.

Assuming you are in the Cuberite folder created in the initial setup step, you need to run these commands:

```
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=RELEASE ..
```

NOTE: CMake can generate project files for many different programs, such as Xcode, eclipse, and ninja. To use a different generator, first type `cmake --help`, and at the end, cmake will output the different generators that are available. To specify one, add `-G` followed by the name of the generator, in the `cmake` command. Note that the name is case-sensitive.

The executable will be built in the `cuberite/Server` folder and will be named `Cuberite`.

### Debug Mode

Debug mode is useful if you want more debugging information about Cuberite while it's running or if you want to use a debugger like GDB to debug issues and crashes.

Assuming you are in the Cuberite folder created in the Getting the sources step, you need to run these commands:

```
mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=DEBUG ..
```

NOTE: CMake can generate project files for many different programs, such as Xcode, eclipse, and ninja. To use a different generator, first type `cmake --help`, and at the end, cmake will output the different generators that are available. To specify one, add `-G` followed by the name of the generator, in the `cmake` command. Note that the name is case-sensitive.

The executable will be built in the `cuberite/Server` folder and will be named `Cuberite_debug`.

### 32 Bit Mode Switch

This is useful if you want to compile Cuberite on an x64 (64-bit Intel) machine but want to use on an x86 (32-bit Intel) machine. This switch can be used with debug or release mode. Simply add:

    -DFORCE_32=1

to your cmake command and 32 bit will be forced.

### Compiling for Another Computer of the Same Architecture

When cross-compiling for another computer of the same architecture it is important to set the NO_NATIVE_OPTIMIZATION flag. This tells the compiler not to optimise for your machine. This switch can be used with debug or release mode. To enable, simply add:

    -DNO_NATIVE_OPTIMIZATION=1

to your cmake command.

### List of All Build Flags

Cuberite's build process supports a large number of flags for customising the builds. Use these flags by adding `-DFlag_name=Value` to the cmake configuration command. For example to enable test generation using the `SELF_TEST` flag add: `-DSELF_TEST=ON`

###### BUILD_TOOLS
Adds the Cuberite tools to the build. At the moment only MCADefrag and ProtoProxy are added. Define as ON to enable. Define as OFF to disable.

###### BUILD_UNSTABLE_TOOLS
Adds tools that are not working yet to the build. Currently this is only the Generator Performance Test. Used for developing these tools. Define as ON to enable. Define as OFF to disable.

###### SELF_TEST
Enables generation of tests and self-test startup code. Tests can be run with ctest and with makefiles make test. Define as ON to enable. Define as OFF to disable.

###### FORCE_32
Forces the build to use 32 bit builds on *nix systems. Define as ON to enable. Define as OFF to disable.

###### NO_NATIVE_OPTIMIZATION
Disables optimizations for the build host. This is important when building on a different machine from the one you will run Cuberite on as the build machine may support instructions the final machine does not. This flag only has any effect on linux. Define as ON to enable. Define as OFF to disable.

###### DISABLE_SYSTEM_LUA
Disables use of the system lua, uses a compiled version instead. Useful if compiling on a system that doesn't already have lua installed. This option is incompatible with cross-compilation.

###### UNITY_BUILDS
Controls use of unity builds, an optimisation that improves compile times at the expense of system compatibility and error message utility. Some systems may need to have this disabled in order to compile properly. Unity builds are only supported on CMake versions >= 3.16, if you have an old version unity builds will always be disabled and this flag has no effect.

###### PRECOMPILE_HEADERS
Controls use of precompiled headers, an optimisation that improves compile times at the expense of system compatibility. Some systems may need to have this disabled in order to compile properly. Precompiled headers are only supported on CMake versions >= 3.16, if you have an old version precompiled headers will always be disabled and this flag has no effect.

###### WHOLE_PROGRAM_OPTIMISATION
Controls use of link time optimisation (LTO), which slightly improves the generated binary file at the expense of compilation speed and system compatibility. Some systems may need to have this disabled in order to compile properly.


[1]: https://www.visualstudio.com/downloads/
[2]: https://cmake.org/download/
[3]: https://git-for-windows.github.io/
[4]: https://desktop.github.com/
[5]: https://tortoisegit.org/
[6]: https://github.com/cuberite/cuberite/archive/master.zip
[7]: https://git-scm.com/
[8]: https://developer.apple.com/downloads
[9]: https://cmake.org/
[10]: https://developer.android.com/ndk/downloads/index.html
[11]: https://www.lua.org/download.html
[12]: https://github.com/ninja-build/ninja/releases
[clang-download]: https://releases.llvm.org/download.html


================================================
FILE: CONTRIBUTING.md
================================================
How to Contribute to Cuberite
=============================

Thank you for your interest in Cuberite. Contributing to Cuberite is easy, just fork the project on GitHub, make your changes and submit a pull request to get your code merged. That's all there is to it.
Check out [GETTING-STARTED.md][1] for more information about setting up the development environment for Cuberite, finding issues to work on, etc...

If you are new to open source and/or GitHub, or just aren't sure about some details in the contribution process, here's a tutorial to get you started:
[How to Contribute to an Open Source Project on GitHub][2]

Code Conventions
----------------

When contributing, you must follow our code conventions. Otherwise, CI builds will automatically fail and your PR will not be merged until the non-conforming code is fixed. Due to this, we strongly advise you to run `src/CheckBasicStyle.lua` before committing, it will perform various code style checks and warn you if your code does not conform to our conventions. `CheckBasicStyle.lua` can be configured to run automatically before every commit via a pre-commit hook, **this is highly recommended**. There are instructions on how to achieve this at the bottom of this file.

Here are the conventions:

 - We use C++17.
 - Please use **tabs for indentation and spaces for alignment**. This means that if it's at line start, it's a tab; if it's in the middle of a line, it's a space.
 - All functions in all classes need documenting comments on what they do and what behavior they follow, use doxy-comments formatted as `/** Description */`. Do not use asterisks on additional lines in multi-line comments.
 - Use spaces after the comment markers: `// Comment` instead of `//Comment`. A comment must be prefixed with two spaces if it's on the same line with code:
   - `SomeFunction()<Space><Space>//<Space>Note the two spaces prefixed to me and the space after the slashes.`
 - All variable names and function names use CamelCase style, with the exception of single letter variables.  
   - `ThisIsAProperFunction()` `This_is_bad()` `this_is_bad()` `GoodVariableName` `badVariableName`.
 - All private member variables start with `m_`, function parameters start with `a_`, class names start with `c`.
   - `class cMonster { int m_Health; int DecreaseHealth(int a_Amount); }`
 - Put spaces after commas. `Vector3d(1, 2, 3)` instead of `Vector3d(1,2,3)`
 - Put spaces before and after every operator, except unary operators.
   - `a = b + c;`
   - `if (a == b)`
   - `++itr`
 - Keep individual functions spaced out by 5 empty lines, this enhances readability and makes navigation in the source file easier.
 - Add those extra parentheses to conditions, especially in C++:
   - `if ((a == 1) && ((b == 2) || (c == 3)))` instead of ambiguous `if (a == 1 && b == 2 || c == 3)`
   - This helps prevent mistakes such as `if (a & 1 == 0)`
 - Alpha-sort stuff that makes sense alpha-sorting—long lists of similar items etc.
 - White space is free, so use it freely.
   - "freely" as in "plentifully", not "arbitrarily".
 - All `case` statements inside a `switch` need an extra indent.
 - Each and every control statement deserves its braces. This helps maintainability later on when the file is edited, lines added or removed - the control logic doesn't break so easily.
   - The only exception: a `switch` statement with all `case` statements being a single short statement is allowed to use the short brace-less form.
   - These two rules really mean that indent is governed by braces.
 - Function parameters that are coordinates should be passed using an appropriate storage container, and not as three separate arguments.
   - e.g. for a block position, Vector3i. For an entity position, Vector3d. For a chunk coordinate, cChunkCoords.
   - For a 3-dimensional box of blocks, use cCuboid. For an axis-aligned bounding box, use cBoundingBox.
 - Parameters smaller than 4 elements (e.g. Vector3, cChunkCoords) should be passed by value. All other parameters should be passed by const reference, where applicable.
   - `Foo(Vector3d a_Param1, const cCuboid & a_Param2)`
   - See the discussion in issue #3853
 - Use the provided wrappers for OS stuff:
   - Threading is done by inheriting from `cIsThread`, thread synchronization through `cCriticalSection` and `cEvent`, file access and filesystem operations through the `cFile` class, high-precision timing through `cStopwatch`
 - No magic numbers, use named constants:
   - `E_ITEM_XXX`, `E_BLOCK_XXX` and `E_META_XXX` for items and blocks.
   - `cEntity::etXXX` for entity types, `cMonster::mtXXX` for mob types.
   - `dimNether`, `dimOverworld` and `dimEnd` for world dimension.
   - `gmSurvival`, `gmCreative`, `gmAdventure` for game modes.
   - `wSunny`, `wRain`, `wThunderstorm` for weather.
   - `cChunkDef::Width`, `cChunkDef::Height` for chunk dimensions (C++).
   - etc.
 - Instead of checking for a specific value, use an `IsXXX` function, if available:
   - `cPlayer:IsGameModeCreative()` instead of` (cPlayer:GetGameMode() == gmCreative)` (the player can also inherit the gamemode from the world, which the value-d condition doesn't catch).
 - All `#include` directives are specified relative to the root source directory.
 - Add an empty last line in all source files (GCC and Git can complain otherwise).

Pre-commit Hook
---------------
When contributing, the code conventions above *must* be followed. Otherwise, the CI builds will automatically fail and your PR will not be merged until the non-conforming code is fixed. It is highly recommended to set up a pre-commit hook which will check your code style before every commit. Here is how to do that:

 - Clone the repository as usual.
 - Go to your `<clone location>/.git/hooks` folder, create a text file named "pre-commit" there with the following contents:

```
#!/bin/sh
src/CheckBasicStyle.lua 1>&2 -g
```

 - If on Linux/Unix, you need to give the newly created file an execute permission: `chmod +x .git/hooks/pre-commit`
 - Lua must be installed.
 - You're done. Now, `src/CheckBasicStyle.lua` will check the changed files before every commit. If a problem is found, it will point you to that problem and will cancel the commit.

Note that the check script is not smart enough to catch everything, so not having any warnings does not necessarily imply that you followed the conventions fully. The other humans working on this will perform more checks before merging.

Github-related conventions
--------------------------
The following rules are not strictly enforced, but if you follow them, you will make it easier for us to review your changes.
 - Use good short title for your PRs. `Store Health as float` is good, `Fix #4024` is not good.
 - If a PR fixes an issue, mention it in the PR description, but **not** in the commits themselves. Typically, we add the line `Fixes #007` to the bottom of the PR description, this makes Github link the PR to the issue, auto-close the issue when the PR is merged, and also is included in the merge message.
 - Focus on one thing only. Each PR should avoid making unrelated changes - those makes the history more difficult to understand later on, and they make the review a headache.
 - Feel free to rebase, amend or otherwise manipulate the commits in the PR (of course, as long as you're the only one working on the PR). We mostly squash-merge PRs, so your internal commit structure will not be important in the end.
 - If the PR is about one change, but it makes sense to keep the change broken into several commits, make sure each such commit is compilable, encapsulated, and possibly add a note to the PR description so that we consider this.
	
Copyright
---------

Your must either place your work in the public domain or licensed it under the Apache License 2.0, and if so you must add yourself to the contributors file to show that you accept the publication of your work under the license.

**PLUGINS ONLY**: If your plugin is not licensed under the Apache License 2.0, then it must be compatible and marked as such. This is only valid for the plugins included within the Cuberite source; plugins developed on separate repositories can use whatever license they want.

[1]: https://github.com/cuberite/cuberite/blob/master/GETTING-STARTED.md
[2]: https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github


================================================
FILE: CONTRIBUTORS
================================================
This file contains all known copyright holders of this software, as far as is
practically possible to ascertain.

If you contribute to this software you must add yourself to this file, to
indicate your agreement to license your contributions according to the license
as provided in the LICENSE file.

12xx12
9caihezi
AirOne01
Altenius
anguslmm (Angus McLean)
ashquarky
BasedDoge (Donated AlchemistVillage prefabs)
bearbin (Alexander Harkness)
beeduck
bibo38
birkett (Anthony Birkett)
Bond_009
changyongGuo
Cocosushi6
CoolPuppyKid
DarkoGNU
derouinw
dImrich (Damian Imrich)
Diusrex
Duralex
dyexlzc
Earboxer (Zach DeCook)
FakeTruth (founder)
feyokorenhof
Gareth Nelson
GefaketHD
Griezn (Seppe Degryse)
HaoTNN
havel06 (Michal Havlíček)
hle0
Howaner
ion232 (Arran Ireland)
jan64
jasperarmstrong
jclever77 (Jon Clever)
JK2K
kevinr (Kevin Riggle)
keyboard
KingCol13
Lapayo
linnemannr (Reid Linnemann)
LittleBigBug (Ethan Jones)
lkolbly
LogicParrot
Luksor
M10360
marmot21
Masy98
mathiascode
maxluchterhand1
MaxwellScroggs
mborland
mBornand
mcfadyeni
MeMuXin
mgueydan
MikeHunsinger
mjagdis (Mike Jagdis)
Morritz (TJ)
morsmordere (Anzhelika Iugai)
mtilden
nesco
NiLSPACE (formerly STR_Warrior)
npresley0506
p-mcgowan
Persson-dev
plan1231
pokechu22
ProjectBM
pwnOrbitals
Rodarg
Rorkh
rs2k
SamJBarney
Schwertspize
Seadragon91 (Lukas Pioch)
sleirsgoevy (Sergey Lisov)
Sofapriester
solvictor
Spekdrum (Pablo Beltran)
SphinxC0re
Spongecade (Updated wiki links)
steve-nzr
structinf (xdot)
sweetgiorni
SuperEwald
Sxw1212
Taugeshtu
TheHyper45
theophriene
tigerw (Tiger Wang)
tonibm19
tonitch (Debucquoy Anthony)
TooAngel
tympaniplayer (Nate Palmer)
UltraCoderRU
Warmist
WebFreak001
williamhatcher (Helped with API documentation updates and bug fixes)
worktycho
Xenoxis
xoft (Mattes Dolak/madmaxoft on GH)
Yeeeeezus (Donated AlchemistVillage prefabs)


================================================
FILE: CheckLua.cmake
================================================
# CheckLua.cmake

# Checks whether the Lua standalone interpreter is installed on the host system
# If found, sets HAS_LUA_INTERPRETER to 1 and LUA_INTERPRETER_VERSION to the version reported ("5.1" etc.)
# If not found, unsets HAS_LUA_INTERPRETER




execute_process(
	COMMAND lua -e "io.stdout:write(string.match(_VERSION, '%d+%.%d+'))"
	RESULT_VARIABLE LUA_EXECUTED
	OUTPUT_VARIABLE LUA_INTERPRETER_VERSION
)

if ("${LUA_EXECUTED}" STREQUAL "0")
	set(HAS_LUA_INTERPRETER 1)
else()
	unset(HAS_LUA_INTERPRETER)
	unset(LUA_INTERPRETER_VERSION)
endif()

unset(LUA_EXECUTED)


================================================
FILE: Doxyfile
================================================
# Doxyfile 1.8.1.2

# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
#       TAG = value [value, ...]
# For lists items can also be appended using:
#       TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------

# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
# https://www.gnu.org/software/libiconv for the list of possible encodings.

DOXYFILE_ENCODING      = UTF-8

# The PROJECT_NAME tag is a single word (or sequence of words) that should
# identify the project. Note that if you do not use Doxywizard you need
# to put quotes around the project name if it contains spaces.

PROJECT_NAME           = Cuberite

# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.

PROJECT_NUMBER         =

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
# a quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF          = "A lightweight, fast and extensible game server for Minecraft"

# With the PROJECT_LOGO tag one can specify an logo or icon that is
# included in the documentation. The maximum height of the logo should not
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.

PROJECT_LOGO           = Server/favicon.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.

OUTPUT_DIRECTORY       = doxy

# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
# format and will distribute the generated files over these directories.
# Enabling this option can be useful when feeding doxygen a huge amount of
# source files, where putting all generated files in the same directory would
# otherwise cause performance problems for the file system.

CREATE_SUBDIRS         = YES

# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.

OUTPUT_LANGUAGE        = English

# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.

BRIEF_MEMBER_DESC      = YES

# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.

REPEAT_BRIEF           = YES

# This tag implements a quasi-intelligent brief description abbreviator
# that is used to form the text in various listings. Each string
# in this list, if found as the leading text of the brief description, will be
# stripped from the text and the result after processing the whole list, is
# used as the annotated text. Otherwise, the brief description is used as-is.
# If left blank, the following values are used ("$name" is automatically
# replaced with the name of the entity): "The $name class" "The $name widget"
# "The $name file" "is" "provides" "specifies" "contains"
# "represents" "a" "an" "the"

ABBREVIATE_BRIEF       = "The $name class" \
                         "The $name widget" \
                         "The $name file" \
                         is \
                         provides \
                         specifies \
                         contains \
                         represents \
                         a \
                         an \
                         the

# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.

ALWAYS_DETAILED_SEC    = NO

# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.

INLINE_INHERITED_MEMB  = NO

# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.

FULL_PATH_NAMES        = YES

# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the
# path to strip.

STRIP_FROM_PATH        =

# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
# the reader which header file to include in order to use a class.
# If left blank only the name of the header file containing the class
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.

STRIP_FROM_INC_PATH    =

# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful if your file system
# doesn't support long names like on DOS, Mac, or CD-ROM.

SHORT_NAMES            = YES

# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like regular Qt-style comments
# (thus requiring an explicit @brief command for a brief description.)

JAVADOC_AUTOBRIEF      = YES

# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
# interpret the first line (until the first dot) of a Qt-style
# comment as the brief description. If set to NO, the comments
# will behave just like regular Qt-style comments (thus requiring
# an explicit \brief command for a brief description.)

QT_AUTOBRIEF           = YES

# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
# The new default is to treat a multi-line C++ comment block as a detailed
# description. Set this tag to YES if you prefer the old behaviour instead.

MULTILINE_CPP_IS_BRIEF = NO

# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.

INHERIT_DOCS           = YES

# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.

SEPARATE_MEMBER_PAGES  = NO

# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.

TAB_SIZE               = 4

# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user-defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.

ALIASES                =

# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding
# "class=itcl::class" will allow you to use the command class in the
# itcl::class meaning.

TCL_SUBST              =

# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
# sources only. Doxygen will then generate output that is more tailored for C.
# For instance, some of the names that are used will be different. The list
# of all members will be omitted, etc.

OPTIMIZE_OUTPUT_FOR_C  = NO

# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
# sources only. Doxygen will then generate output that is more tailored for
# Java. For instance, namespaces will be presented as packages, qualified
# scopes will look different, etc.

OPTIMIZE_OUTPUT_JAVA   = NO

# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
# sources only. Doxygen will then generate output that is more tailored for
# Fortran.

OPTIMIZE_FOR_FORTRAN   = NO

# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
# sources. Doxygen will then generate output that is tailored for
# VHDL.

OPTIMIZE_OUTPUT_VHDL   = NO

# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given extension.
# Doxygen has a built-in mapping, but you can override or extend it using this
# tag. The format is ext=language, where ext is a file extension, and language
# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.

EXTENSION_MAPPING      =

# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
# comments according to the Markdown format, which allows for more readable
# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you
# can mix doxygen, HTML, and XML commands with Markdown formatting.
# Disable only in case of backward compatibilities issues.

MARKDOWN_SUPPORT       = YES

# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
# func(std::string) {}). This also makes the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.

BUILTIN_STL_SUPPORT    = NO

# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.

CPP_CLI_SUPPORT        = NO

# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
# Doxygen will parse them like normal C++ but will assume all classes use public
# instead of private inheritance when no explicit protection keyword is present.

SIP_SUPPORT            = NO

# For Microsoft's IDL there are propget and propput attributes to indicate getter
# and setter methods for a property. Setting this option to YES (the default)
# will make doxygen replace the get and set methods by a property in the
# documentation. This will only work if the methods are indeed getting or
# setting a simple type. If this is not the case, or you want to show the
# methods anyway, you should set this option to NO.

IDL_PROPERTY_SUPPORT   = YES

# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.

DISTRIBUTE_GROUP_DOC   = NO

# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a
# subgroup of that type (e.g. under the Public Functions section). Set it to
# NO to prevent subgrouping. Alternatively, this can be done per class using
# the \nosubgrouping command.

SUBGROUPING            = YES

# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
# unions are shown inside the group in which they are included (e.g. using
# @ingroup) instead of on a separate page (for HTML and Man pages) or
# section (for LaTeX and RTF).

INLINE_GROUPED_CLASSES = NO

# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
# unions with only public data fields will be shown inline in the documentation
# of the scope in which they are defined (i.e. file, namespace, or group
# documentation), provided this scope is documented. If set to NO (the default),
# structs, classes, and unions are shown on a separate page (for HTML and Man
# pages) or section (for LaTeX and RTF).

INLINE_SIMPLE_STRUCTS  = NO

# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
# is documented as struct, union, or enum with the name of the typedef. So
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
# with name TypeT. When disabled the typedef will appear as a member of a file,
# namespace, or class. And the struct will be named TypeS. This can typically
# be useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.

TYPEDEF_HIDES_STRUCT   = NO

# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
# determine which symbols to keep in memory and which to flush to disk.
# When the cache is full, less often used symbols will be written to disk.
# For small to medium size projects (<1000 input files) the default value is
# probably good enough. For larger projects a too small cache size can cause
# doxygen to be busy swapping symbols to and from disk most of the time
# causing a significant performance penalty.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will roughly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols.

SYMBOL_CACHE_SIZE      = 0

# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
# their name and scope. Since this can be an expensive process and often the
# same symbol appear multiple times in the code, doxygen keeps a cache of
# pre-resolved symbols. If the cache is too small doxygen will become slower.
# If the cache is too large, memory is wasted. The cache size is given by this
# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols.

LOOKUP_CACHE_SIZE      = 0

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------

# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES

EXTRACT_ALL            = YES

# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.

EXTRACT_PRIVATE        = YES

# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
# scope will be included in the documentation.

EXTRACT_PACKAGE        = NO

# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.

EXTRACT_STATIC         = YES

# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.

EXTRACT_LOCAL_CLASSES  = YES

# This flag is only useful for Objective-C code. When set to YES local
# methods, which are defined in the implementation section but not in
# the interface are included in the documentation.
# If set to NO (the default) only methods in the interface are included.

EXTRACT_LOCAL_METHODS  = NO

# If this flag is set to YES, the members of anonymous namespaces will be
# extracted and appear in the documentation as a namespace called
# 'anonymous_namespace{file}', where file will be replaced with the base
# name of the file that contains the anonymous namespace. By default
# anonymous namespaces are hidden.

EXTRACT_ANON_NSPACES   = NO

# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.

HIDE_UNDOC_MEMBERS     = NO

# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these classes will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.

HIDE_UNDOC_CLASSES     = NO

# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
# friend (class|struct|union) declarations.
# If set to NO (the default) these declarations will be included in the
# documentation.

HIDE_FRIEND_COMPOUNDS  = NO

# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
# documentation blocks found inside the body of a function.
# If set to NO (the default) these blocks will be appended to the
# function's detailed documentation block.

HIDE_IN_BODY_DOCS      = NO

# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.

INTERNAL_DOCS          = NO

# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower-case letters. If set to YES upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.

CASE_SENSE_NAMES       = NO

# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.

HIDE_SCOPE_NAMES       = NO

# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put a list of the files that are included by a file in the documentation
# of that file.

SHOW_INCLUDE_FILES     = YES

# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
# will list include files with double quotes in the documentation
# rather than with sharp brackets.

FORCE_LOCAL_INCLUDES   = NO

# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.

INLINE_INFO            = YES

# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.

SORT_MEMBER_DOCS       = YES

# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
# brief documentation of file, namespace and class members alphabetically
# by member name. If set to NO (the default) the members will appear in
# declaration order.

SORT_BRIEF_DOCS        = YES

# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
# will sort the (brief and detailed) documentation of class members so that
# constructors and destructors are listed first. If set to NO (the default)
# the constructors will appear in the respective orders defined by
# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.

SORT_MEMBERS_CTORS_1ST = NO

# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
# hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order.

SORT_GROUP_NAMES       = NO

# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
# NO (the default), the class list will be sorted only by class name,
# not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the
# alphabetical list.

SORT_BY_SCOPE_NAME     = NO

# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
# do proper type resolution of all parameters of a function it will reject a
# match between the prototype and the implementation of a member function even
# if there is only one candidate or it is obvious which candidate to choose
# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
# will still accept a match between prototype and implementation in such cases.

STRICT_PROTO_MATCHING  = NO

# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.

GENERATE_TODOLIST      = YES

# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.

GENERATE_TESTLIST      = YES

# The GENERATE_BUGLIST tag can be used to enable (YES) or
# disable (NO) the bug list. This list is created by putting \bug
# commands in the documentation.

GENERATE_BUGLIST       = YES

# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
# disable (NO) the deprecated list. This list is created by putting
# \deprecated commands in the documentation.

GENERATE_DEPRECATEDLIST= YES

# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.

ENABLED_SECTIONS       =

# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
# the initial value of a variable or macro consists of for it to appear in
# the documentation. If the initializer consists of more lines than specified
# here it will be hidden. Use a value of 0 to hide initializers completely.
# The appearance of the initializer of individual variables and macros in the
# documentation can be controlled using \showinitializer or \hideinitializer
# command in the documentation regardless of this setting.

MAX_INITIALIZER_LINES  = 30

# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
# at the bottom of the documentation of classes and structs. If set to YES the
# list will mention the files that were used to generate the documentation.

SHOW_USED_FILES        = YES

# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES.

SHOW_FILES             = YES

# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
# Namespaces page.  This will remove the Namespaces entry from the Quick Index
# and from the Folder Tree View (if specified). The default is YES.

SHOW_NAMESPACES        = YES

# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command <command> <input-file>, where <command> is the value of
# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
# provided by doxygen. Whatever the program writes to standard output
# is used as the file version. See the manual for examples.

FILE_VERSION_FILTER    =

# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated
# output files in an output format independent way. To create the layout file
# that represents doxygen's defaults, run doxygen with the -l option.
# You can optionally specify a file name after the option, if omitted
# DoxygenLayout.xml will be used as the name of the layout file.

LAYOUT_FILE            =

# The CITE_BIB_FILES tag can be used to specify one or more bib files
# containing the references data. This must be a list of .bib files. The
# .bib extension is automatically appended if omitted. Using this command
# requires the bibtex tool to be installed. See also
# https://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
# feature you need bibtex and perl available in the search path.

CITE_BIB_FILES         =

#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------

# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.

QUIET                  = NO

# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.

WARNINGS               = YES

# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.

WARN_IF_UNDOCUMENTED   = YES

# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some
# parameters in a documented function, or documenting parameters that
# don't exist or using markup commands wrongly.

WARN_IF_DOC_ERROR      = YES

# The WARN_NO_PARAMDOC option can be enabled to get warnings for
# functions that are documented, but have no documentation for their parameters
# or return value. If set to NO (the default) doxygen will only warn about
# wrong or incomplete parameter documentation, but not about the absence of
# documentation.

WARN_NO_PARAMDOC       = NO

# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text. Optionally the format may contain
# $version, which will be replaced by the version of the file (if it could
# be obtained via FILE_VERSION_FILTER)

WARN_FORMAT            = "$file:$line: $text"

# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.

WARN_LOGFILE           =

#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------

# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.

INPUT                  = src

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# also the default input encoding. Doxygen uses libiconv (or the iconv built
# into libc) for the transcoding. See https://www.gnu.org/software/libiconv for
# the list of possible encodings.

INPUT_ENCODING         = UTF-8

# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
# *.f90 *.f *.for *.vhd *.vhdl

FILE_PATTERNS          = *.c \
                         *.cc \
                         *.cxx \
                         *.cpp \
                         *.c++ \
                         *.d \
                         *.java \
                         *.ii \
                         *.ixx \
                         *.ipp \
                         *.i++ \
                         *.inl \
                         *.h \
                         *.hh \
                         *.hxx \
                         *.hpp \
                         *.h++ \
                         *.idl \
                         *.odl \
                         *.cs \
                         *.php \
                         *.php3 \
                         *.inc \
                         *.m \
                         *.markdown \
                         *.md \
                         *.mm \
                         *.dox \
                         *.py \
                         *.f90 \
                         *.f \
                         *.for \
                         *.vhd \
                         *.vhdl

# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.

RECURSIVE              = YES

# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE                = source/SQLite \
                         source/squirrelbindings

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.

EXCLUDE_SYMLINKS       = NO

# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories. Note that the wildcards are matched
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*

EXCLUDE_PATTERNS       = *StackWalker.* \
                         *LeakFinder.* \
                         *Bindings.* \
                         *ManualBindings.*

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test

EXCLUDE_SYMBOLS        = _* \
                         __* \
                         abstract

# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).

EXAMPLE_PATH           =

# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.

EXAMPLE_PATTERNS       = *

# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
# commands irrespective of the value of the RECURSIVE tag.
# Possible values are YES and NO. If left blank NO is used.

EXAMPLE_RECURSIVE      = NO

# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).

IMAGE_PATH             =

# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.  If FILTER_PATTERNS is specified, this tag will be
# ignored.

INPUT_FILTER           =

# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis.  Doxygen will compare the file name with each pattern and apply the
# filter if there is a match.  The filters are a list of the form:
# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
# info on how filters are used. If FILTER_PATTERNS is empty or if
# non of the patterns match the file name, INPUT_FILTER is applied.

FILTER_PATTERNS        =

# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse (i.e. when SOURCE_BROWSER is set to YES).

FILTER_SOURCE_FILES    = NO

# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
# and it is also possible to disable source filtering for a specific pattern
# using *.ext= (so without naming a filter). This option only has effect when
# FILTER_SOURCE_FILES is enabled.

FILTER_SOURCE_PATTERNS =

#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------

# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
# Note: To get rid of all source code in the generated output, make sure also
# VERBATIM_HEADERS is set to NO.

SOURCE_BROWSER         = YES

# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.

INLINE_SOURCES         = NO

# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C, C++ and Fortran comments will always remain visible.

STRIP_CODE_COMMENTS    = YES

# If the REFERENCED_BY_RELATION tag is set to YES
# then for each documented function all documented
# functions referencing it will be listed.

REFERENCED_BY_RELATION = NO

# If the REFERENCES_RELATION tag is set to YES
# then for each documented function all documented entities
# called/used by that function will be listed.

REFERENCES_RELATION    = NO

# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
# link to the source code.  Otherwise they will link to the documentation.

REFERENCES_LINK_SOURCE = YES

# If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source
# tagging system (see https://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher.

USE_HTAGS              = NO

# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.

VERBATIM_HEADERS       = YES

#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------

# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.

ALPHABETICAL_INDEX     = YES

# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])

COLS_IN_ALPHA_INDEX    = 5

# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.

IGNORE_PREFIX          = c

#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------

# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.

GENERATE_HTML          = YES

# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.

HTML_OUTPUT            = html

# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
# doxygen will generate files with .html extension.

HTML_FILE_EXTENSION    = .html

# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header. Note that when using a custom header you are responsible
# for the proper inclusion of any scripts and style sheets that doxygen
# needs, which is dependent on the configuration options used.
# It is advised to generate a default header using "doxygen -w html
# header.html footer.html stylesheet.css YourConfigFile" and then modify
# that header. Note that the header is subject to change so you typically
# have to redo this when upgrading to a newer version of doxygen or when
# changing the value of configuration settings such as GENERATE_TREEVIEW!

HTML_HEADER            =

# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.

HTML_FOOTER            =

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet. Note that doxygen will try to copy
# the style sheet file to the HTML output directory, so don't put your own
# style sheet in the HTML output directory as well, or it will be erased!

HTML_STYLESHEET        =

# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
# that these files will be copied to the base HTML output directory. Use the
# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
# files. In the HTML_STYLESHEET file, use the file name only. Also note that
# the files will be copied as-is; there are no commands or markers available.

HTML_EXTRA_FILES       =

# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the style sheet and background images
# according to this color. Hue is specified as an angle on a colorwheel,
# see https://en.wikipedia.org/wiki/Hue for more information.
# For instance the value 0 represents red, 60 is yellow, 120 is green,
# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
# The allowed range is 0 to 359.

HTML_COLORSTYLE_HUE    = 220

# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
# the colors in the HTML output. For a value of 0 the output will use
# grayscales only. A value of 255 will produce the most vivid colors.

HTML_COLORSTYLE_SAT    = 100

# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
# the luminance component of the colors in the HTML output. Values below
# 100 gradually make the output lighter, whereas values above 100 make
# the output darker. The value divided by 100 is the actual gamma applied,
# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
# and 100 does not change the gamma.

HTML_COLORSTYLE_GAMMA  = 80

# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting
# this to NO can help when comparing the output of multiple runs.

HTML_TIMESTAMP         = YES

# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.

HTML_DYNAMIC_SECTIONS  = NO

# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
# entries shown in the various tree structured indices initially; the user
# can expand and collapse entries dynamically later on. Doxygen will expand
# the tree to such a level that at most the specified number of entries are
# visible (unless a fully collapsed tree already exceeds this amount).
# So setting the number of entries 1 will produce a full collapsed tree by
# default. 0 is a special value representing an infinite number of entries
# and will result in a full expanded tree by default.

HTML_INDEX_NUM_ENTRIES = 100

# If the GENERATE_DOCSET tag is set to YES, additional index files
# will be generated that can be used as input for Apple's Xcode 3
# integrated development environment, introduced with OSX 10.5 (Leopard).
# To create a documentation set, doxygen will generate a Makefile in the
# HTML output directory. Running make will produce the docset in that
# directory and running "make install" will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
# it at startup.
# See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.

GENERATE_DOCSET        = NO

# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
# feed. A documentation feed provides an umbrella under which multiple
# documentation sets from a single provider (such as a company or product suite)
# can be grouped.

DOCSET_FEEDNAME        = "Doxygen generated docs"

# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
# should uniquely identify the documentation set bundle. This should be a
# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
# will append .docset to the name.

DOCSET_BUNDLE_ID       = org.doxygen.Project

# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
# the documentation publisher. This should be a reverse domain-name style
# string, e.g. com.mycompany.MyDocSet.documentation.

DOCSET_PUBLISHER_ID    = org.doxygen.Publisher

# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.

DOCSET_PUBLISHER_NAME  = Publisher

# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
# of the generated HTML documentation.

GENERATE_HTMLHELP      = NO

# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
# can add a path in front of the file if the result should not be
# written to the html output directory.

CHM_FILE               =

# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
# be used to specify the location (absolute path including file name) of
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
# the HTML help compiler on the generated index.hhp.

HHC_LOCATION           =

# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
# it should be included in the master .chm file (NO).

GENERATE_CHI           = NO

# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
# is used to encode HtmlHelp index (hhk), content (hhc) and project file
# content.

CHM_INDEX_ENCODING     =

# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.

BINARY_TOC             = NO

# The TOC_EXPAND flag can be set to YES to add extra items for group members
# to the contents of the HTML help documentation and to the tree view.

TOC_EXPAND             = NO

# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
# that can be used as input for Qt's qhelpgenerator to generate a
# Qt Compressed Help (.qch) of the generated HTML documentation.

GENERATE_QHP           = NO

# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
# be used to specify the file name of the resulting .qch file.
# The path specified is relative to the HTML output folder.

QCH_FILE               =

# The QHP_NAMESPACE tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
# https://doc.qt.io/qt-5/qthelpproject.html#namespace

QHP_NAMESPACE          = org.doxygen.Project

# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
# https://doc.qt.io/qt-5/qthelpproject.html#virtual-folders

QHP_VIRTUAL_FOLDER     = doc

# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
# add. For more information please see
# https://doc.qt.io/qt-5/qthelpproject.html#custom-filters

QHP_CUST_FILTER_NAME   =

# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see
# <a href="https://doc.qt.io/qt-5/qthelpproject.html#custom-filters">
# Qt Help Project / Custom Filters</a>.

QHP_CUST_FILTER_ATTRS  =

# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's
# filter section matches.
# <a href="https://doc.qt.io/qt-5/qthelpproject.html#filter-attributes">
# Qt Help Project / Filter Attributes</a>.

QHP_SECT_FILTER_ATTRS  =

# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
# be used to specify the location of Qt's qhelpgenerator.
# If non-empty doxygen will try to run qhelpgenerator on the generated
# .qhp file.

QHG_LOCATION           =

# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
# will be generated, which together with the HTML files, form an Eclipse help
# plugin. To install this plugin and make it available under the help contents
# menu in Eclipse, the contents of the directory containing the HTML and XML
# files needs to be copied into the plugins directory of eclipse. The name of
# the directory within the plugins directory should be the same as
# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
# the help appears.

GENERATE_ECLIPSEHELP   = NO

# A unique identifier for the eclipse help plugin. When installing the plugin
# the directory name containing the HTML and XML files should also have
# this name.

ECLIPSE_DOC_ID         = org.doxygen.Project

# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
# at top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it. Since the tabs have the same information as the
# navigation tree you can set this option to NO if you already set
# GENERATE_TREEVIEW to YES.

DISABLE_INDEX          = NO

# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
# Windows users are probably better off using the HTML help feature.
# Since the tree basically has the same information as the tab index you
# could consider to set DISABLE_INDEX to NO when enabling this option.

GENERATE_TREEVIEW      = NO

# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
# (range [0,1..20]) that doxygen will group on one line in the generated HTML
# documentation. Note that a value of 0 will completely suppress the enum
# values from appearing in the overview section.

ENUM_VALUES_PER_LINE   = 4

# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.

TREEVIEW_WIDTH         = 250

# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
# links to external symbols imported via tag files in a separate window.

EXT_LINKS_IN_WINDOW    = NO

# Use this tag to change the font size of Latex formulas included
# as images in the HTML documentation. The default is 10. Note that
# when you change the font size after a successful doxygen run you need
# to manually remove any form_*.png images from the HTML output directory
# to force them to be regenerated.

FORMULA_FONTSIZE       = 10

# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are
# not supported properly for IE 6.0, but are supported on all modern browsers.
# Note that when changing this option you need to delete any form_*.png files
# in the HTML output before the changes have effect.

FORMULA_TRANSPARENT    = YES

# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
# (see https://www.mathjax.org) which uses client side Javascript for the
# rendering instead of using prerendered bitmaps. Use this if you do not
# have LaTeX installed or if you want to formulas look prettier in the HTML
# output. When enabled you may also need to install MathJax separately and
# configure the path to it using the MATHJAX_RELPATH option.

USE_MATHJAX            = NO

# When MathJax is enabled you need to specify the location relative to the
# HTML output directory using the MATHJAX_RELPATH option. The destination
# directory should contain the MathJax.js script. For instance, if the mathjax
# directory is located at the same level as the HTML output directory, then
# MATHJAX_RELPATH should be ../mathjax. The default value points to
# the MathJax Content Delivery Network so you can quickly see the result without
# installing MathJax.  However, it is strongly recommended to install a local
# copy of MathJax from https://www.mathjax.org before deployment.

MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest

# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
# names that should be enabled during MathJax rendering.

MATHJAX_EXTENSIONS     =

# When the SEARCHENGINE tag is enabled doxygen will generate a search box
# for the HTML output. The underlying search engine uses javascript
# and DHTML and should work on any modern browser. Note that when using
# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
# (GENERATE_DOCSET) there is already a search function so this one should
# typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.

SEARCHENGINE           = NO

# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a PHP enabled web server instead of at the web client
# using Javascript. Doxygen will generate the search PHP script and index
# file to put on the web server. The advantage of the server
# based approach is that it scales better to large projects and allows
# full text search. The disadvantages are that it is more difficult to setup
# and does not have live searching capabilities.

SERVER_BASED_SEARCH    = NO

#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------

# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.

GENERATE_LATEX         = NO

# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.

LATEX_OUTPUT           = latex

# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked. If left blank `latex' will be used as the default command name.
# Note that when enabling USE_PDFLATEX this option is only used for
# generating bitmaps for formulas in the HTML output, but not in the
# Makefile that is written to the output directory.

LATEX_CMD_NAME         = latex

# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
# generate index for LaTeX. If left blank `makeindex' will be used as the
# default command name.

MAKEINDEX_CMD_NAME     = makeindex

# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.

COMPACT_LATEX          = NO

# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, letter, legal and
# executive. If left blank a4wide will be used.

PAPER_TYPE             = a4

# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.

EXTRA_PACKAGES         =

# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!

LATEX_HEADER           =

# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
# the generated latex document. The footer should contain everything after
# the last chapter. If it is left blank doxygen will generate a
# standard footer. Notice: only use this tag if you know what you are doing!

LATEX_FOOTER           =

# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.

PDF_HYPERLINKS         = YES

# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.

USE_PDFLATEX           = YES

# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.

LATEX_BATCHMODE        = NO

# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
# in the output.

LATEX_HIDE_INDICES     = NO

# If LATEX_SOURCE_CODE is set to YES then doxygen will include
# source code with syntax highlighting in the LaTeX output.
# Note that which sources are shown also depends on other settings
# such as SOURCE_BROWSER.

LATEX_SOURCE_CODE      = NO

# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
# https://en.wikipedia.org/wiki/BibTeX for more info.

LATEX_BIB_STYLE        = plain

#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------

# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimized for Word 97 and may not look very pretty with
# other RTF readers or editors.

GENERATE_RTF           = NO

# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.

RTF_OUTPUT             = rtf

# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.

COMPACT_RTF            = NO

# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using WORD or other
# programs which support those fields.
# Note: wordpad (write) and others do not support links.

RTF_HYPERLINKS         = NO

# Load style sheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.

RTF_STYLESHEET_FILE    =

# Set optional variables used in the generation of an rtf document.
# Syntax is similar to doxygen's config file.

RTF_EXTENSIONS_FILE    =

#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------

# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages

GENERATE_MAN           = NO

# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.

MAN_OUTPUT             = man

# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)

MAN_EXTENSION          = .3

# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
# then it will generate one additional man file for each entity
# documented in the real man page(s). These additional files
# only source the real man page, but without them the man command
# would be unable to find the correct page. The default is NO.

MAN_LINKS              = NO

#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------

# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation.

GENERATE_XML           = NO

# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.

XML_OUTPUT             = xml

# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
# syntax of the XML files.

XML_SCHEMA             =

# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.

XML_DTD                =

# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
# and cross-referencing information) to the XML output. Note that
# enabling this will significantly increase the size of the XML output.

XML_PROGRAMLISTING     = YES

#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------

# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
# generate an AutoGen Definitions (see autogen.sf.net) file
# that captures the structure of the code including all
# documentation. Note that this feature is still experimental
# and incomplete at the moment.

GENERATE_AUTOGEN_DEF   = NO

#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------

# If the GENERATE_PERLMOD tag is set to YES Doxygen will
# generate a Perl module file that captures the structure of
# the code including all documentation. Note that this
# feature is still experimental and incomplete at the
# moment.

GENERATE_PERLMOD       = NO

# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
# the necessary Makefile rules, Perl scripts and LaTeX code to be able
# to generate PDF and DVI output from the Perl module output.

PERLMOD_LATEX          = NO

# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
# nicely formatted so it can be parsed by a human reader.  This is useful
# if you want to understand what is going on.  On the other hand, if this
# tag is set to NO the size of the Perl module output will be much smaller
# and Perl will parse it just the same.

PERLMOD_PRETTY         = YES

# The names of the make variables in the generated doxyrules.make file
# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
# This is useful so different doxyrules.make files included by the same
# Makefile don't overwrite each other's variables.

PERLMOD_MAKEVAR_PREFIX =

#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------

# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.

ENABLE_PREPROCESSING   = YES

# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.

MACRO_EXPANSION        = NO

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_DEFINED tags.

EXPAND_ONLY_PREDEF     = NO

# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# pointed to by INCLUDE_PATH will be searched when a #include is found.

SEARCH_INCLUDES        = YES

# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.

INCLUDE_PATH           =

# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.

INCLUDE_FILE_PATTERNS  =

# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed. To prevent a macro definition from being
# undefined via #undef or recursively expanded use the := operator
# instead of the = operator.

PREDEFINED             =

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition that
# overrules the definition found in the source code.

EXPAND_AS_DEFINED      =

# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all references to function-like macros
# that are alone on a line, have an all uppercase name, and do not end with a
# semicolon, because these will confuse the parser if not removed.

SKIP_FUNCTION_MACROS   = YES

#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------

# The TAGFILES option can be used to specify one or more tagfiles. For each
# tag file the location of the external documentation should be added. The
# format of a tag file without this location is as follows:
#   TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
#   TAGFILES = file1=loc1 "file2 = loc2" ...
# where "loc1" and "loc2" can be relative or absolute paths
# or URLs. Note that each tag file must have a unique name (where the name does
# NOT include the path). If a tag file is not located in the directory in which
# doxygen is run, you must also specify the path to the tagfile here.

TAGFILES               =

# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.

GENERATE_TAGFILE       =

# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.

ALLEXTERNALS           = NO

# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will
# be listed.

EXTERNAL_GROUPS        = YES

# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').

PERL_PATH              = /usr/bin/perl

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
# or super classes. Setting the tag to NO turns the diagrams off. Note that
# this option also works with HAVE_DOT disabled, but it is recommended to
# install and use dot, since it yields more powerful graphs.

CLASS_DIAGRAMS         = YES

# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see
# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.

MSCGEN_PATH            =

# If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented
# or is not a class.

HIDE_UNDOC_RELATIONS   = YES

# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)

HAVE_DOT               = YES

# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
# allowed to run in parallel. When set to 0 (the default) doxygen will
# base this on the number of processors available in the system. You can set it
# explicitly to a value larger than 0 to get control over the balance
# between CPU load and processing speed.

DOT_NUM_THREADS        = 12

# By default doxygen will use the Helvetica font for all dot files that
# doxygen generates. When you want a differently looking font you can specify
# the font name using DOT_FONTNAME. You need to make sure dot is able to find
# the font, which can be done by putting it in a standard location or by setting
# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
# directory containing the font.

DOT_FONTNAME           = Helvetica

# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.

DOT_FONTSIZE           = 10

# By default doxygen will tell dot to use the Helvetica font.
# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
# set the path where dot can find it.

DOT_FONTPATH           =

# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# CLASS_DIAGRAMS tag to NO.

CLASS_GRAPH            = YES

# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.

COLLABORATION_GRAPH    = YES

# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for groups, showing the direct groups dependencies

GROUP_GRAPHS           = YES

# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.

UML_LOOK               = NO

# If the UML_LOOK tag is enabled, the fields and methods are shown inside
# the class node. If there are many fields or methods and many nodes the
# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
# threshold limits the number of items for each type to make the size more
# managable. Set this to 0 for no limit. Note that the threshold may be
# exceeded by 50% before the limit is enforced.

UML_LIMIT_NUM_FIELDS   = 10

# If set to YES, the inheritance and collaboration graphs will show the
# relations between templates and their instances.

TEMPLATE_RELATIONS     = NO

# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
# tags are set to YES then doxygen will generate a graph for each documented
# file showing the direct and indirect include dependencies of the file with
# other documented files.

INCLUDE_GRAPH          = YES

# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
# documented header file showing the documented files that directly or
# indirectly include this file.

INCLUDED_BY_GRAPH      = YES

# If the CALL_GRAPH and HAVE_DOT options are set to YES then
# doxygen will generate a call dependency graph for every global function
# or class method. Note that enabling this option will significantly increase
# the time of a run. So in most cases it will be better to enable call graphs
# for selected functions only using the \callgraph command.

CALL_GRAPH             = NO

# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
# doxygen will generate a caller dependency graph for every global function
# or class method. Note that enabling this option will significantly increase
# the time of a run. So in most cases it will be better to enable caller
# graphs for selected functions only using the \callergraph command.

CALLER_GRAPH           = NO

# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will generate a graphical hierarchy of all classes instead of a textual one.

GRAPHICAL_HIERARCHY    = YES

# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
# then doxygen will show the dependencies a directory has on other directories
# in a graphical way. The dependency relations are determined by the #include
# relations between the files in the directories.

DIRECTORY_GRAPH        = YES

# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. Possible values are svg, png, jpg, or gif.
# If left blank png will be used. If you choose svg you need to set
# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
# visible in IE 9+ (other browsers do not have this requirement).

DOT_IMAGE_FORMAT       = png

# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
# enable generation of interactive SVG images that allow zooming and panning.
# Note that this requires a modern browser other than Internet Explorer.
# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
# visible. Older versions of IE do not have SVG support.

INTERACTIVE_SVG        = NO

# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.

DOT_PATH               =

# The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the
# \dotfile command).

DOTFILE_DIRS           =

# The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the
# \mscfile command).

MSCFILE_DIRS           =

# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
# nodes that will be shown in the graph. If the number of nodes in a graph
# becomes larger than this value, doxygen will truncate the graph, which is
# visualized by representing a node as a red box. Note that doxygen if the
# number of direct children of the root node in a graph is already larger than
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.

DOT_GRAPH_MAX_NODES    = 500

# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
# code bases. Also note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.

MAX_DOT_GRAPH_DEPTH    = 0

# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not
# seem to support this out of the box. Warning: Depending on the platform used,
# enabling this option may lead to badly anti-aliased labels on the edges of
# a graph (i.e. they become hard to read).

DOT_TRANSPARENT        = NO

# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10)
# support this, this feature is disabled by default.

DOT_MULTI_TARGETS      = YES

# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
# arrows in the dot generated graphs.

GENERATE_LEGEND        = YES

# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
# remove the intermediate dot files that are used to generate
# the various graphs.

DOT_CLEANUP            = YES


================================================
FILE: GETTING-STARTED.md
================================================
Getting Started
===============

Hello! Thanks for wanting to work on this project :smile:, and I hope that this file will help you somewhat in getting all set up and running. I'll go through the basics of getting the project environment set up, the code organization and style, and general development practices. I'll also show you some good issues to start off working on to get yourself familiarised with the code.

Note that this document is about contributing code for Cuberite.

 - If you are looking for usage instructions, see the [User's Manual][1] instead.
 - If you would like to help but you are not a programmer, you can still help with testing! Please see the [TESTING.md][2] file.

Minecraft Basics
----------------

If you don't play Minecraft or don't have a great knowledge of the basic systems, you should get to know them. The [Minecraft Wiki][3] is quite useful for this task, although some youtubers are also fairly good at teaching the basics and just playing is quite good too. It is possible to contribute without knowing minecraft in detail though, or even owning a license.

I'd say that the important topics are:

 - Different types of blocks and how they act.
 - Mobs, what they do and how.
 - Redstone, pistons, and automation.
 - Farming.
 - Fighting, health and the hunger system.

Useful Resources
----------------

 - [Minecraft Wiki](https://minecraft.wiki/w/Minecraft_Wiki)
 - [Minecraft Protocol Wiki](http://wiki.vg/Main_Page)
 - [Lua API Documentation](https://api.cuberite.org/)
 - [Visual Studio Community Edition Download](https://www.visualstudio.com/downloads/)

Setting up a Dev Environment
============================

Requirements
------------

### Linux/BSD/Solaris/macOS

You'll need the basic C++ build tools:

 - gcc (or clang or another C compiler)
 - g++ (or clang++ or another C++ compiler)
 - make

You'll also need CMake to generate the makefile to build from.

### Windows

If you use Windows, your best bet is the Microsoft Visual Studio, available as a free download in the Community edition from Microsoft. You'll also need CMake to generate the project files.

Setting up the Repo
-------------------

Next, you'll need to set up the repo. You should make a fork and work on that, then create a Pull Request so that we can review and merge your code. After you've "earned" an honorable status, we'll give you write access to the repository, so that you can work on branches in the main repo here (still use PRs though, they're great tools for review and discussion).

Once you've cloned, you need to pull down the submodules:

    git submodule init
    git submodule update

After that they should come down automatically when you pull but it's not bad to refresh every once in a while.

Repo Arrangement
----------------

The Cuberite repo has recently been rearranged for better code separation and other things, but basically it's split into a few areas:

 - `src`  
   This holds all of the Cuberite source code, and is where most development takes place.  
   It's split into logical areas for blocks, the protocol handling and other things.
 - `lib`  
   This holds all the 3rd party libraries for Cuberite. You basically don't need to touch these, just make sure they are present (git submodules)
 - `Server`  
   This contains the default plugins and environment to actually run the server. This folder's contents are linked into the executable output folder for each build flavor. In the `Plugins` folder there are the default plugins. The config files are also stored here. Config files with `.example.ini` on the end are generated by the server or source control and should be left alone, instead you should copy them to a file without the `example` in the name which will be prioritised over the generated ones.

Code Style
----------

You should follow the code style guidelines in [CONTRIBUTING.md][4], as well as other C++ best practices.

Note that there is a script file, $/src/CheckBasicStyle.lua, that can check some common violations of the coding style. You should run this file to check your code regularly. This script is run during the integration builds and if it fails, the build will fail. Note that you need Lua installed in order to run this script. It is recommended to set this up as a pre-commit hook and doing so is covered in CONTRIBUTING.md.

How to Build
------------

### Linux/BSD/Solaris/macOS

Follow the instructions in [COMPILING.md][5]. You probably want to build in debug mode (when you're developing) for console alerts and debugging capability, even though it's much slower for everyday use.

Basically, the process is:

    cmake . -DCMAKE_BUILD_TYPE=DEBUG && make

### Windows

You need to first generate a solution file by executing CMake. At the top-level folder of the repository:
```
mkdir VS2017-x64
cd VS2017-x64
cmake -DBUILD_TOOLS=1 -DSELF_TEST=1 ..
```
Then just open the solution file in MSVC and build. Note that the first time after generating the solution, you will need to do extra setup in order to be able to fully debug in MSVC:

 - Set the startup project to Cuberite: right-click the Cuberite project in the Solution Explorer and choose "Set as Startup Project".
 - Set the debugging folder: right-click the Cuberite project in the Solution Explorer, choose "Properties". In the dialog, browse to "Configuration Properties" -> "Debugging" and set "Working Directory" to "../Server".

How to Run
----------

The server can be run (on *nix) by a simple `./Cuberite` in the `Server` directory. On first run it will generate the world and start a server on the default port (configurable in `settings.ini`) so you can connect in Minecraft via `localhost`.

Where to Get Started
--------------------

Issues that should be easy to get started with are tagged as [easy][6] in GitHub issues.

Other good places to get started are:

 - Cleaning up some of the compiler warnings. Check [our CI][7] for a list of them.
 - Writing some plugins: They are written in lua, with excellent API documentation available via [APIDump][8]. The [Core plugin][9] should also help quite a bit here.

Special Things
--------------
 - Make yourself familiar with the community. Visit the forums: https://forum.cuberite.org/
 - Ask questions as much as you like, we're here to help :smiley:

[1]: https://book.cuberite.org/
[2]: https://github.com/cuberite/cuberite/blob/master/TESTING.md
[3]: https://minecraft.wiki/w/Minecraft_Wiki
[4]: https://github.com/cuberite/cuberite/blob/master/CONTRIBUTING.md
[5]: https://github.com/cuberite/cuberite/blob/master/COMPILING.md
[6]: https://github.com/cuberite/cuberite/issues?q=is%3Aopen+is%3Aissue+label%3Aeffort%2Feasy
[7]: https://builds.cuberite.org/job/cuberite/job/master/lastSuccessfulBuild/console
[8]: https://api.cuberite.org/
[9]: https://github.com/cuberite/Core


================================================
FILE: Jenkinsfile
================================================
pipeline {
    options {
      timeout(time: 1, unit: 'HOURS') 
    }
    agent {
        docker 'cuberite/docker-ci/minimal:latest'
    }
    stages {
        stage("Prepare") {
            steps {
                sh 'git submodule update --init'
            }
        }
        stage("Check") {
            parallel {
                stage("CheckBasicStyle") {
                    steps {
                        dir("src") {
                            sh 'find . -name \\*.cpp -or -name \\*.h > AllFiles.lst'
                            sh 'lua CheckBasicStyle.lua'
                            sh 'cd Bindings && lua CheckBindingsDependencies.lua'
                        }
                    }
                }
                stage("clang-tidy") {
                    steps {
                        sh './clang-tidy.sh -j 4'
                    }
                }
            }
        }
        stage("Build") {
            parallel {
                stage("gcc") {
                    environment {
                        CI_CUBERITE_BUILD_TYPE = 'Release'
                        CI_JOB_NUMBER = "{$env.BUILD_ID}"
                        CC = "gcc"
                        CXX = "g++"
                    }
                    steps {
                        sh 'bash ./cibuild.sh'
                    }
                }
                stage("clang") {
                    environment {
                        CI_CUBERITE_BUILD_TYPE = 'Debug'
                        CI_JOB_NUMBER = "{$env.BUILD_ID}"
                        CC = "clang"
                        CXX = "clang++"
                    }
                    steps {
                        sh 'bash ./cibuild.sh'
                    }
                }
            }
        }
		stage("Artifacts") {
			when {
				branch 'master'
			}
            steps {
                archiveArtifacts artifacts: 'gcc_Release/Server/.luacheckrc'
            }
        }
    }
    post {
        always {
            cleanWs()
        }
    }
}


================================================
FILE: LICENSE
================================================
Cuberite: A lightweight, fast and extensible game server for Minecraft
www:      https://cuberite.org

Copyright 2011-2025 Cuberite Contributors

A full list of known copyright holders can be found in the CONTRIBUTORS file
to be distributed with all copies of this software.

------

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Cuberite

[![Jenkins Build Status](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuilds.cuberite.org%2Fjob%2Fcuberite%2Fjob%2Fmaster&label=Jenkins)](https://builds.cuberite.org/job/cuberite/job/master/)
[![AppVeyor Build Status](https://img.shields.io/appveyor/ci/cuberite/cuberite/master.svg?label=AppVeyor)](https://ci.appveyor.com/project/cuberite/cuberite)

Cuberite is a Minecraft-compatible multiplayer game server that is written in C++ and designed to be efficient with memory and CPU, as well as having a flexible Lua Plugin API. Cuberite is compatible with the Java Edition Minecraft client.

Cuberite runs on Windows, *nix and Android operating systems. This includes Android phones and tablets as well as Raspberry Pis; support for small embedded devices is experimental.

Currently we support Release 1.8 - 1.12.2 Minecraft protocol versions.

Subscribe to [the newsletter][1] for important updates and project news.

## Installation

There are several ways to obtain Cuberite.

### Binaries

- The easiest method is downloading for Windows or Linux from the [website][2].
- You can use the EasyInstall script for Linux and macOS, which automatically downloads the correct binary. The script is described below.

#### The EasyInstall script

This script will download the correct binary from the project site.

    curl -sSfL https://download.cuberite.org | sh

### Compiling

- You can compile automatically for Linux, macOS and FreeBSD with the `compile.sh` script. The script is described below.
- You can also compile manually. See [COMPILING.md][4].

Compiling may provide better performance (1.5-3x as fast) and it supports more operating systems.

#### The compile.sh script

This script downloads the source code and compiles it. The script is smart enough to notify you of missing dependencies and instructing you on how to install them. The script doesn't work for Windows.

Using curl:

    sh -c "$(curl -sSfL -o - https://compile.cuberite.org)"

Or using wget:

    sh -c "$(wget -O - https://compile.cuberite.org)"

### Hosted services

- Hosted Cuberite is available via [Gamocosm][5].

## Contributing

Cuberite is licensed under the Apache License V2, and we welcome anybody to fork and submit a Pull Request back with their changes, and if you want to join as a permanent member we can add you to the team.

Cuberite is developed in C++ and Lua. To contribute code, please check out [GETTING-STARTED.md][6] and [CONTRIBUTING.md][7] for more details.

Plugins are written in Lua. You can contribute by developing plugins and submitting them to the [plugin repository][8] or the [forum][9]. Please check out our [plugin introduction guide][10] for more info.

If you are not a programmer, you can help by testing Cuberite and reporting bugs. See [TESTING.md][11] for details.

You can also help with documentation by contributing to the [User's Manual][12].

## Other Stuff

For other stuff, check out the [homepage][13], the [Users' Manual][14], the [forums][15], and the [Plugin API][16].

Support the Cuberite development team on [Liberapay][17]

[1]: https://cuberite.org/news/#subscribe
[2]: https://cuberite.org/
[4]: https://github.com/cuberite/cuberite/blob/master/COMPILING.md
[5]: https://gamocosm.com/
[6]: https://github.com/cuberite/cuberite/blob/master/GETTING-STARTED.md
[7]: https://github.com/cuberite/cuberite/blob/master/CONTRIBUTING.md
[8]: https://plugins.cuberite.org/
[9]: https://forum.cuberite.org/forum-2.html
[10]: https://api.cuberite.org/Writing-a-Cuberite-plugin.html
[11]: https://github.com/cuberite/cuberite/blob/master/TESTING.md
[12]: https://github.com/cuberite/users-manual
[13]: https://cuberite.org/
[14]: https://book.cuberite.org/
[15]: https://forum.cuberite.org/
[16]: https://api.cuberite.org/
[17]: https://liberapay.com/Cuberite


================================================
FILE: Server/.gitignore
================================================
*.exe
*.dll
*.exp
*.lib
*.ini
Cuberite
Cuberite_debug
luaexe
CommLogs/
GalExports/
GalExportWeb/
GalleryWeb/
logs
players
world*
API/
API.txt
API_wiki.txt
*.dat
schematics
*.schematic
*.ilk
*.pdb
memdump*
*.grab
*.cfg
*.sqlite
helgrind.log
valgrind.log
motd.txt
*.deuser
*.dmp
*.xml
mcserver_api.lua
cuberite_api.lua
DuplicateDocs.txt

# Ignore the webadmin certs / privkey, so that no-one commits theirs by accident:
webadmin/httpscert.crt
webadmin/httpskey.pem


================================================
FILE: Server/Install/.gitignore
================================================
*.tag
*.example.ini

================================================
FILE: Server/Install/Cuberite_high_detail_debug.cmd
================================================
Cuberite --crash-dump-full


================================================
FILE: Server/Install/Cuberite_medium_detail_debug.cmd
================================================
Cuberite --crash-dump-globals


================================================
FILE: Server/Install/PackWindowsExecutables.cmd
================================================
@echo off
:: This script is run in the Appveyor CI builds to pack up the artifacts
:: It is expected to be run with the Server folder as the current working dir
@echo on

:: Only test that the server runs for pull requests
:: Don't upload any artifacts until it's merged into master
if defined APPVEYOR_PULL_REQUEST_NUMBER (
	echo stop  1>>cmds.txt
	Cuberite --port 32767  0<cmds.txt
	exit /b
)

:: Main executables
echo Cuberite %APPVEYOR_JOB_NAME%-#%APPVEYOR_BUILD_NUMBER%  1>buildinfo.txt
7z a -tzip -y Cuberite.zip -scsWIN -i@Install\WindowsExecutables.list -xr!*.git*
7z a -tzip -y PDBs.zip -scsWIN -i@Install/WindowsPDBs.list -xr!*.git*

:: Generate API documentation
git clone https://github.com/madmaxoft/ManualApiDump Plugins/ManualApiDump
echo load ManualApiDump  1>cmds.txt
echo manualapi  1>>cmds.txt
echo load APIDump  1>>cmds.txt
echo api  1>>cmds.txt
echo stop  1>>cmds.txt
Cuberite --port 32767  0<cmds.txt

:: API documentation
7z a -tzip -y ManualAPI.zip -scsWIN "ManualAPI.lua"
7z a -tzip -y AutoAPI.zip -scsWIN ".\BindingsDocs\*.lua" -x!_raw.lua

:: Upload artifacts
appveyor PushArtifact Cuberite.zip
appveyor PushArtifact PDBs.zip
appveyor PushArtifact AutoAPI.zip
appveyor PushArtifact ManualAPI.zip
appveyor PushArtifact .luacheckrc


================================================
FILE: Server/Install/ThirdPartyLicenses/LibEvent-LICENSE.txt
================================================
Libevent is available for use under the following license, commonly known
as the 3-clause (or "modified") BSD license:

==============================
Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2007-2012 Niels Provos and Nick Mathewson

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
==============================

Portions of Libevent are based on works by others, also made available by
them under the three-clause BSD license above.  The copyright notices are
available in the corresponding source files; the license is as above.  Here's
a list:

log.c:
   Copyright (c) 2000 Dug Song <dugsong@monkey.org>
   Copyright (c) 1993 The Regents of the University of California.

strlcpy.c:
   Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>

win32select.c:
   Copyright (c) 2003 Michael A. Davis <mike@datanerds.net>

evport.c:
   Copyright (c) 2007 Sun Microsystems

ht-internal.h:
   Copyright (c) 2002 Christopher Clark

minheap-internal.h:
   Copyright (c) 2006 Maxim Yegorushkin <maxim.yegorushkin@gmail.com>

==============================

The arc4module is available under the following, sometimes called the
"OpenBSD" license:

   Copyright (c) 1996, David Mazieres <dm@uun.org>
   Copyright (c) 2008, Damien Miller <djm@openbsd.org>

   Permission to use, copy, modify, and distribute this software for any
   purpose with or without fee is hereby granted, provided that the above
   copyright notice and this permission notice appear in all copies.

   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

==============================

The Windows timer code is based on code from libutp, which is
distributed under this license, sometimes called the "MIT" license.


Copyright (c) 2010 BitTorrent, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: Server/Install/ThirdPartyLicenses/Lua-LICENSE.txt
================================================
Copyright (C) 1994-2008 Lua.org, PUC-Rio.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: Server/Install/ThirdPartyLicenses/LuaExpat-license.html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
	<title>LuaExpat: XML Expat parsing for the Lua programming language</title>
    <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>

<div id="container">
	
<div id="product">
	<div id="product_logo"><a href="http://www.keplerproject.org">
        <img alt="LuaExpat logo" src="luaexpat.png"/>
	</a></div>
	<div id="product_name"><big><strong>LuaExpat</strong></big></div>
	<div id="product_description">XML Expat parsing for the Lua programming language</div>
</div> <!-- id="product" -->

<div id="main">

<div id="navigation">
<h1>LuaExpat</h1>
	<ul>
		<li><a href="index.html">Home</a>
			<ul>
				<li><a href="index.html#overview">Overview</a></li>
				<li><a href="index.html#status">Status</a></li>
				<li><a href="index.html#download">Download</a></li>
				<li><a href="index.html#history">History</a></li>
				<li><a href="index.html#references">References</a></li>
				<li><a href="index.html#credits">Credits</a></li>
				<li><a href="index.html#contact">Contact</a></li>
			</ul>
		</li>
		<li><a href="manual.html">Manual</a>
			<ul>
				<li><a href="manual.html#introduction">Introduction</a></li>
				<li><a href="manual.html#installation">Installation</a></li>
				<li><a href="manual.html#parser">Parser Objects</a></li>
			</ul>
		</li>
		<li><a href="examples.html">Examples</a></li>
		<li><a href="lom.html">Lua Object Model</a></li>
        <li><a href="http://luaforge.net/projects/luaexpat/">Project</a>
            <ul>
                <li><a href="http://luaforge.net/tracker/?group_id=13">Bug Tracker</a></li>
                <li><a href="http://luaforge.net/scm/?group_id=13">CVS</a></li>
            </ul>
        </li>
		<li><strong>License</strong></li>
	</ul>
</div> <!-- id="navigation" -->

<div id="content">

<h2>License</h2>

<p>
LuaExpat is free software: it can be used for both academic and
commercial purposes at absolutely no cost. There are no royalties
or GNU-like "copyleft" restrictions. LuaExpat qualifies as <a href=
"http://www.opensource.org/docs/definition.html">Open Source</a>
software. Its licenses are compatible with <a href=
"http://www.gnu.org/licenses/gpl.html">GPL</a>. LuaExpat is not in
the public domain and the
<a href="http://www.keplerproject.org">Kepler Project</a>
keep its copyright. The legal details are below.
</p>

<p>The spirit of the license is that you are free to use LuaExpat
for any purpose at no cost without having to ask us. The only
requirement is that if you do use LuaExpat, then you should give us
credit by including the appropriate copyright notice somewhere in
your product or its documentation.</p>

<p>The LuaExpat library is designed and implemented by Roberto
Ierusalimschy. The implementation is not derived from licensed
software.</p>

<hr/>
<p>Copyright &copy; 2003-2007 The Kepler Project. 
</p>

<p>Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>

<p>The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.</p>

<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.</p>

</div> <!-- id="content" -->

</div> <!-- id="main" -->

<div id="about">
	<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
	<p><small>
	$Id: license.html,v 1.9 2007/06/05 20:03:12 carregal Exp $
	</small></p>
</div> <!-- id="about" -->

</div> <!-- id="container" -->

</body>
</html> 


================================================
FILE: Server/Install/ThirdPartyLicenses/LuaSQLite3-LICENSE.txt
================================================
/************************************************************************
* lsqlite3                                                              *
* Copyright (C) 2002-2013 Tiago Dionizio, Doug Currie                   *
* All rights reserved.                                                  *
* Author    : Tiago Dionizio <tiago.dionizio@ist.utl.pt>                *
* Author    : Doug Currie <doug.currie@alum.mit.edu>                    *
* Library   : lsqlite3 - a SQLite 3 database binding for Lua 5          *
*                                                                       *
* Permission is hereby granted, free of charge, to any person obtaining *
* a copy of this software and associated documentation files (the       *
* "Software"), to deal in the Software without restriction, including   *
* without limitation the rights to use, copy, modify, merge, publish,   *
* distribute, sublicense, and/or sell copies of the Software, and to    *
* permit persons to whom the Software is furnished to do so, subject to *
* the following conditions:                                             *
*                                                                       *
* The above copyright notice and this permission notice shall be        *
* included in all copies or substantial portions of the Software.       *
*                                                                       *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       *
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    *
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  *
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  *
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     *
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                *
************************************************************************/


================================================
FILE: Server/Install/ThirdPartyLicenses/MersenneTwister-LICENSE.txt
================================================
// The Mersenne Twister is an algorithm for generating random numbers.  It
// was designed with consideration of the flaws in various other generators.
// The period, 2^19937-1, and the order of equidistribution, 623 dimensions,
// are far greater.  The generator is also fast; it avoids multiplication and
// division, and it benefits from caches and pipelines.  For more information
// see the inventors' web page at
// http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html

// Reference
// M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally
// Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on
// Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30.

// Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
// Copyright (C) 2000 - 2009, Richard J. Wagner
// All rights reserved.
// 
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 
//   1. Redistributions of source code must retain the above copyright
//      notice, this list of conditions and the following disclaimer.
//
//   2. Redistributions in binary form must reproduce the above copyright
//      notice, this list of conditions and the following disclaimer in the
//      documentation and/or other materials provided with the distribution.
//
//   3. The names of its contributors may not be used to endorse or promote 
//      products derived from this software without specific prior written 
//      permission.
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.

================================================
FILE: Server/Install/ThirdPartyLicenses/SQLiteCpp-LICENSE.txt
================================================
The MIT License (MIT)

Copyright (c) 2012-2014 Sebastien Rombauts (sebastien.rombauts@gmail.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

================================================
FILE: Server/Install/ThirdPartyLicenses/fmt-LICENSE.rst
================================================
Copyright (c) 2012 - 2016, Victor Zverovich

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: Server/Install/UnixExecutables.list
================================================
Cuberite
Plugins
Prefabs
Protocol
webadmin
BACKERS
brewing.txt
crafting.txt
furnace.txt
items.ini
monsters.ini
buildinfo.txt
README.txt
favicon.png
CONTRIBUTORS
LICENSE
ThirdPartyLicenses


================================================
FILE: Server/Install/WindowsExecutables.list
================================================
Cuberite.exe
*.dll
Plugins
Prefabs
Protocol
webadmin
BACKERS
brewing.txt
crafting.txt
furnace.txt
items.ini
monsters.ini
buildinfo.txt
README.txt
favicon.png
CONTRIBUTORS
LICENSE
Cuberite*debug.cmd
*.example.ini
ThirdPartyLicenses


================================================
FILE: Server/Install/WindowsPDBs.list
================================================
*.pdb
buildinfo.txt


================================================
FILE: Server/Plugins/.gitignore
================================================
/*
!/APIDump
!/Debuggers
!/DumpInfo
!/HookNotify
!/NetworkTest
!/TestLuaRocks


================================================
FILE: Server/Plugins/APIDump/APIDesc.lua
================================================
return
{
	Classes =
	{
		--[[
		-- What the APIDump plugin understands / how to document stuff:
		ExampleClassName =
		{
			Desc = "Description, exported as the first paragraph of the class page. Usually enclosed within double brackets."

			Functions =
			{
				FunctionName =
				{
					{
						Params =
						{
							{ Name = "BuiltInType", Type = "number"},
							{ Name = "ClassEnum", Type = "cClass#eEnum"},
							{ Name = "GlobalEnum", Type = "eEnum"},
						},
						Returns =
						{
							{ Type = "number" },
							{ Type = "self" },  -- Returns the same object on which it was called
						},
						Notes = "Notes 1"
					},
					{
						Params = {...},
						Returns = {...},
						Notes = "Notes 2",
					},
				},
			} ,

			Constants =
			{
				ConstantName = { Notes = "Notes about the constant" },
			} ,

			ConstantGroups =
			{
				eEnum =  -- also used as the HTML anchor name
				{
					Include = {"constant1", "constant2", "const_.*"},  -- Constants to include in this group, array of identifiers, accepts wildcards
					TextBefore = "This text will be written in front of the constant list",
					TextAfter = "This text will be written after the constant list",
					ShowInDescendants = false,  -- If false, descendant classes won't list these constants
				}
			},

			Variables =
			{
				VariableName = { Type = "string", Notes = "Notes about the variable" },
			} ,

			AdditionalInfo =  -- Paragraphs to be exported after the function definitions table
			{
				{
					Header = "Header 1",
					Contents = "Contents of the additional section 1",
				},
				{
					Header = "Header 2",
					Contents = "Contents of the additional section 2",
				}
			},

			Inherits = "ParentClassName",  -- Only present if the class inherits from another API class
		},
		--]]

		cBlockInfo =
		{
			Desc = [[
				This class is used to query block properties.
			]],
			Functions =
			{
				CanBeTerraformed =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the block is suitable to be changed by a generator",
				},
				FullyOccupiesVoxel =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns whether the specified block fully occupies its voxel.",
				},
				GetHardness =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the block's hardness. The bigger the harder the block.",
				},
				GetBlockHeight =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the block's hitbox height.",
				},
				GetLightValue =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns how much light the specified block emits on its own.",
				},
				GetPlaceSound =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "string",
						},
					},
					Notes = "(<b>DEPRECATED</b>) Not used by cuberite internally and always returns an empty string.",
				},
				GetSpreadLightFalloff =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns how much light the specified block type consumes.",
				},
				IsClickedThrough =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the specified block type is ignored by the client on left and right clicks, that is, treated as if it were air.",
				},
				IsOneHitDig =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the specified block type will be destroyed after a single hit.",
				},
				IsPistonBreakable =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if a piston can break the specified block type.",
				},
				IsRainBlocker =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the specified block type blocks rain from passing through.",
				},
				IsSkylightDispersant =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if skylight is impeded by passage through a block of the specified type.",
				},
				IsSnowable =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns whether the specified block type can hold snow atop.",
				},
				IsSolid =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns whether the specified block type is solid.",
				},
				IsTransparent =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns whether the specified block is transparent.",
				},
				IsUseableBySpectator =
				{
					IsStatic = true,
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns whether a spectator can interact with the specified block.",
				},
			},
			Variables =
			{
				m_BlockHeight =
				{
					Type = "number",
					Notes = "The height of the block, a value between 0.0 and 1.0. <b>OBSOLETE</b>, use cBlockInfo:GetBlockHeight() instead.",
				},
				m_CanBeTerraformed =
				{
					Type = "bool",
					Notes = "Is this block suited to be terraformed? <b>OBSOLETE</b>, use cBlockInfo:CanBeTerraformed() instead.",
				},
				m_FullyOccupiesVoxel =
				{
					Type = "bool",
					Notes = "Does this block fully occupy its voxel - is it a 'full' block? <b>OBSOLETE</b>, use cBlockInfo:FullyOccupiesVoxel() instead.",
				},
				m_Hardness =
				{
					Type = "number",
					Notes = "The greater the value the longer the player needs to break the block. <b>OBSOLETE</b>, use cBlockInfo:GetHardness() instead.",
				},
				m_IsSnowable =
				{
					Type = "bool",
					Notes = "Can this block hold snow atop? <b>OBSOLETE</b>, use cBlockInfo:IsSnowable() instead",
				},
				m_IsSolid =
				{
					Type = "bool",
					Notes = "Is this block solid (player cannot walk through)? <b>OBSOLETE</b>, use cBlockInfo:IsSolid() instead.",
				},
				m_LightValue =
				{
					Type = "number",
					Notes = "How much light do the blocks emit on their own? <b>OBSOLETE</b>, use cBlockInfo:GetLightValue() instead.",
				},
				m_OneHitDig =
				{
					Type = "bool",
					Notes = "Is a block destroyed after a single hit? <b>OBSOLETE</b>, use cBlockInfo:IsOneHitDig() instead.",
				},
				m_PistonBreakable =
				{
					Type = "bool",
					Notes = "Can a piston break this block? <b>OBSOLETE</b>, use cBlockInfo:IsPistonBreakable instead.",
				},
				m_SpreadLightFalloff =
				{
					Type = "number",
					Notes = "How much light do the blocks consume? <b>OBSOLETE</b>, use cBlockInfo:GetSpreadLightFalloff() instead.",
				},
				m_Transparent =
				{
					Type = "bool",
					Notes = "Is a block completely transparent? (light doesn't get decreased(?)). <b>OBSOLETE</b>, use cBlockInfo:IsTransparent() instead.",
				},
			},
		},
		cChatColor =
		{
			Desc = [[
				A wrapper class for constants representing colors or effects.
			]],
			Functions =
			{

			},
			Constants =
			{
				Black =
				{
					Notes = "",
				},
				Blue =
				{
					Notes = "",
				},
				Bold =
				{
					Notes = "",
				},
				Color =
				{
					Notes = "The first character of the color-code-sequence, §",
				},
				DarkPurple =
				{
					Notes = "",
				},
				Delimiter =
				{
					Notes = "The first character of the color-code-sequence, §",
				},
				Gold =
				{
					Notes = "",
				},
				Gray =
				{
					Notes = "",
				},
				Green =
				{
					Notes = "",
				},
				Italic =
				{
					Notes = "",
				},
				LightBlue =
				{
					Notes = "",
				},
				LightGray =
				{
					Notes = "",
				},
				LightGreen =
				{
					Notes = "",
				},
				LightPurple =
				{
					Notes = "",
				},
				Navy =
				{
					Notes = "",
				},
				Plain =
				{
					Notes = "Resets all formatting to normal",
				},
				Purple =
				{
					Notes = "",
				},
				Random =
				{
					Notes = "Random letters and symbols animate instead of the text",
				},
				Red =
				{
					Notes = "",
				},
				Rose =
				{
					Notes = "",
				},
				Strikethrough =
				{
					Notes = "",
				},
				Underlined =
				{
					Notes = "",
				},
				White =
				{
					Notes = "",
				},
				Yellow =
				{
					Notes = "",
				},
			},
		},
		cChunkDesc =
		{
			Desc = [[
				The cChunkDesc class is a container for chunk data while the chunk is being generated. As such, it is
				only used as a parameter for the {{OnChunkGenerating|OnChunkGenerating}} and
				{{OnChunkGenerated|OnChunkGenerated}} hooks and cannot be constructed on its own. Plugins can use this
				class in both those hooks to manipulate generated chunks.
				Calls to any setter of this class will not trigger simulator updates (lava, water, redstone).
			]],
			Functions =
			{
				FillBlocks =
				{
					Params =
					{
						{
							Name = "BlockType",
							Type = "number",
						},
						{
							Name = "BlockMeta",
							Type = "number",
						},
					},
					Notes = "Fills the entire chunk with the specified blocks",
				},
				FillRelCuboid =
				{
					{
						Params =
						{
							{
								Name = "RelCuboid",
								Type = "cCuboid",
							},
							{
								Name = "BlockType",
								Type = "number",
							},
							{
								Name = "BlockMeta",
								Type = "number",
							},
						},
						Notes = "Fills the cuboid, specified in relative coords, by the specified block type and block meta. The cuboid may reach outside of the chunk, only the part intersecting with this chunk is filled.",
					},
					{
						Params =
						{
							{
								Name = "MinRelX",
								Type = "number",
							},
							{
								Name = "MaxRelX",
								Type = "number",
							},
							{
								Name = "MinRelY",
								Type = "number",
							},
							{
								Name = "MaxRelY",
								Type = "number",
							},
							{
								Name = "MinRelZ",
								Type = "number",
							},
							{
								Name = "MaxRelZ",
								Type = "number",
							},
							{
								Name = "BlockType",
								Type = "number",
							},
							{
								Name = "BlockMeta",
								Type = "number",
							},
						},
						Notes = "Fills the cuboid, specified in relative coords, by the specified block type and block meta. The cuboid may reach outside of the chunk, only the part intersecting with this chunk is filled.",
					},
				},
				FloorRelCuboid =
				{
					{
						Params =
						{
							{
								Name = "RelCuboid",
								Type = "cCuboid",
							},
							{
								Name = "BlockType",
								Type = "number",
							},
							{
								Name = "BlockMeta",
								Type = "number",
							},
						},
						Notes = "Fills those blocks of the cuboid (specified in relative coords) that are considered non-floor (air, water) with the specified block type and meta. Cuboid may reach outside the chunk, only the part intersecting with this chunk is filled.",
					},
					{
						Params =
						{
							{
								Name = "MinRelX",
								Type = "number",
							},
							{
								Name = "MaxRelX",
								Type = "number",
							},
							{
								Name = "MinRelY",
								Type = "number",
							},
							{
								Name = "MaxRelY",
								Type = "number",
							},
							{
								Name = "MinRelZ",
								Type = "number",
							},
							{
								Name = "MaxRelZ",
								Type = "number",
							},
							{
								Name = "BlockType",
								Type = "number",
							},
							{
								Name = "BlockMeta",
								Type = "number",
							},
						},
						Notes = "Fills those blocks of the cuboid (specified in relative coords) that are considered non-floor (air, water) with the specified block type and meta. Cuboid may reach outside the chunk, only the part intersecting with this chunk is filled.",
					},
				},
				GetBiome =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "EMCSBiome",
						},
					},
					Notes = "Returns the biome at the specified relative coords",
				},
				GetBlockEntity =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelY",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "cBlockEntity",
						},
					},
					Notes = "Returns the block entity for the block at the specified coords. Creates it if it doesn't exist. Returns nil if the block has no block entity capability.",
				},
				GetBlockMeta =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelY",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Name = "NIBBLETYPE",
							Type = "number",
						},
					},
					Notes = "Returns the block meta at the specified relative coords",
				},
				GetBlockType =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelY",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Name = "BLOCKTYPE",
							Type = "number",
						},
					},
					Notes = "Returns the block type at the specified relative coords",
				},
				GetBlockTypeMeta =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelY",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Name = "BLOCKTYPE",
							Type = "number",
						},
						{
							Name = "NIBBLETYPE",
							Type = "number",
						},
					},
					Notes = "Returns the block type and meta at the specified relative coords",
				},
				GetChunkX =
				{
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the X coord of the chunk contained.",
				},
				GetChunkZ =
				{
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the Z coord of the chunk contained.",
				},
				GetHeight =
				{
					Params =
					{
						{
							Name = "RelX",
							Type = "number",
						},
						{
							Name = "RelZ",
							Type = "number",
						},
					},
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the height at the specified relative coords",
				},
				GetMaxHeight =
				{
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the maximum height contained in the heightmap.",
				},
				GetMinHeight =
				{
					Returns =
					{
						{
							Type = "number",
						},
					},
					Notes = "Returns the minimum height value in the heightmap.",
				},
				IsUsingDefaultBiomes =
				{
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the chunk is set to use default biome generator",
				},
				IsUsingDefaultComposition =
				{
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the chunk is set to use default composition generator",
				},
				IsUsingDefaultFinish =
				{
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the chunk is set to use default finishers",
				},
				IsUsingDefaultHeight =
				{
					Returns =
					{
						{
							Type = "boolean",
						},
					},
					Notes = "Returns true if the chunk is set to use default height generator",
		
Download .txt
gitextract_eeezw5ae/

├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── config.yml
│   │   └── issue-template.md
│   └── workflows/
│       ├── Build.yml
│       └── StyleCheck.yml
├── .gitignore
├── .gitmodules
├── BACKERS
├── CMake/
│   ├── AddDependencies.cmake
│   ├── Fixups.cmake
│   ├── GenerateBindings.cmake
│   ├── GroupSources.cmake
│   └── StampBuild.cmake
├── CMakeLists.txt
├── COMPILING.md
├── CONTRIBUTING.md
├── CONTRIBUTORS
├── CheckLua.cmake
├── Doxyfile
├── GETTING-STARTED.md
├── Jenkinsfile
├── LICENSE
├── README.md
├── Server/
│   ├── .gitignore
│   ├── Install/
│   │   ├── .gitignore
│   │   ├── Cuberite_high_detail_debug.cmd
│   │   ├── Cuberite_medium_detail_debug.cmd
│   │   ├── PackWindowsExecutables.cmd
│   │   ├── ThirdPartyLicenses/
│   │   │   ├── LibEvent-LICENSE.txt
│   │   │   ├── Lua-LICENSE.txt
│   │   │   ├── LuaExpat-license.html
│   │   │   ├── LuaSQLite3-LICENSE.txt
│   │   │   ├── MersenneTwister-LICENSE.txt
│   │   │   ├── SQLiteCpp-LICENSE.txt
│   │   │   └── fmt-LICENSE.rst
│   │   ├── UnixExecutables.list
│   │   ├── WindowsExecutables.list
│   │   └── WindowsPDBs.list
│   ├── Plugins/
│   │   ├── .gitignore
│   │   ├── APIDump/
│   │   │   ├── APIDesc.lua
│   │   │   ├── Classes/
│   │   │   │   ├── BlockArea.lua
│   │   │   │   ├── BlockEntities.lua
│   │   │   │   ├── Geometry.lua
│   │   │   │   ├── Network.lua
│   │   │   │   ├── Plugins.lua
│   │   │   │   ├── Projectiles.lua
│   │   │   │   ├── RankManager.lua
│   │   │   │   ├── WebAdmin.lua
│   │   │   │   └── World.lua
│   │   │   ├── Hooks/
│   │   │   │   ├── OnBlockSpread.lua
│   │   │   │   ├── OnBlockToPickups.lua
│   │   │   │   ├── OnBrewingCompleted.lua
│   │   │   │   ├── OnBrewingCompleting.lua
│   │   │   │   ├── OnChat.lua
│   │   │   │   ├── OnChunkAvailable.lua
│   │   │   │   ├── OnChunkGenerated.lua
│   │   │   │   ├── OnChunkGenerating.lua
│   │   │   │   ├── OnChunkUnloaded.lua
│   │   │   │   ├── OnChunkUnloading.lua
│   │   │   │   ├── OnCollectingPickup.lua
│   │   │   │   ├── OnCraftingNoRecipe.lua
│   │   │   │   ├── OnDisconnect.lua
│   │   │   │   ├── OnDropSpense.lua
│   │   │   │   ├── OnEntityAddEffect.lua
│   │   │   │   ├── OnEntityChangedWorld.lua
│   │   │   │   ├── OnEntityChangingWorld.lua
│   │   │   │   ├── OnEntityTeleport.lua
│   │   │   │   ├── OnExecuteCommand.lua
│   │   │   │   ├── OnExploded.lua
│   │   │   │   ├── OnExploding.lua
│   │   │   │   ├── OnHandshake.lua
│   │   │   │   ├── OnHopperPullingItem.lua
│   │   │   │   ├── OnHopperPushingItem.lua
│   │   │   │   ├── OnKilled.lua
│   │   │   │   ├── OnKilling.lua
│   │   │   │   ├── OnLogin.lua
│   │   │   │   ├── OnPlayerAnimation.lua
│   │   │   │   ├── OnPlayerBreakingBlock.lua
│   │   │   │   ├── OnPlayerBrokenBlock.lua
│   │   │   │   ├── OnPlayerCrouched.lua
│   │   │   │   ├── OnPlayerDestroyed.lua
│   │   │   │   ├── OnPlayerEating.lua
│   │   │   │   ├── OnPlayerFished.lua
│   │   │   │   ├── OnPlayerFishing.lua
│   │   │   │   ├── OnPlayerFoodLevelChange.lua
│   │   │   │   ├── OnPlayerJoined.lua
│   │   │   │   ├── OnPlayerLeftClick.lua
│   │   │   │   ├── OnPlayerMoving.lua
│   │   │   │   ├── OnPlayerOpeningWindow.lua
│   │   │   │   ├── OnPlayerPlacedBlock.lua
│   │   │   │   ├── OnPlayerPlacingBlock.lua
│   │   │   │   ├── OnPlayerRightClick.lua
│   │   │   │   ├── OnPlayerRightClickingEntity.lua
│   │   │   │   ├── OnPlayerShooting.lua
│   │   │   │   ├── OnPlayerSpawned.lua
│   │   │   │   ├── OnPlayerTossingItem.lua
│   │   │   │   ├── OnPlayerUsedBlock.lua
│   │   │   │   ├── OnPlayerUsedItem.lua
│   │   │   │   ├── OnPlayerUsingBlock.lua
│   │   │   │   ├── OnPlayerUsingItem.lua
│   │   │   │   ├── OnPluginMessage.lua
│   │   │   │   ├── OnPluginsLoaded.lua
│   │   │   │   ├── OnPostCrafting.lua
│   │   │   │   ├── OnPreCrafting.lua
│   │   │   │   ├── OnProjectileHitBlock.lua
│   │   │   │   ├── OnProjectileHitEntity.lua
│   │   │   │   ├── OnServerPing.lua
│   │   │   │   ├── OnSpawnedEntity.lua
│   │   │   │   ├── OnSpawnedMonster.lua
│   │   │   │   ├── OnSpawningEntity.lua
│   │   │   │   ├── OnSpawningMonster.lua
│   │   │   │   ├── OnTakeDamage.lua
│   │   │   │   ├── OnTick.lua
│   │   │   │   ├── OnUpdatedSign.lua
│   │   │   │   ├── OnUpdatingSign.lua
│   │   │   │   ├── OnWeatherChanged.lua
│   │   │   │   ├── OnWeatherChanging.lua
│   │   │   │   ├── OnWorldStarted.lua
│   │   │   │   └── OnWorldTick.lua
│   │   │   ├── InfoFile.html
│   │   │   ├── LICENSE-prettify.txt
│   │   │   ├── SettingUpDecoda.html
│   │   │   ├── SettingUpLuaLanguageServer.html
│   │   │   ├── SettingUpZeroBrane.html
│   │   │   ├── Static/
│   │   │   │   └── .gitignore
│   │   │   ├── UsingChunkStays.html
│   │   │   ├── WebWorldThreads.html
│   │   │   ├── Writing-a-Cuberite-plugin.html
│   │   │   ├── _preload.lua
│   │   │   ├── lang-lua.js
│   │   │   ├── lualanguageserver.lua
│   │   │   ├── main.css
│   │   │   ├── main_APIDump.lua
│   │   │   ├── prettify.css
│   │   │   └── prettify.js
│   │   ├── Debuggers/
│   │   │   ├── Debuggers.lua
│   │   │   ├── Info.lua
│   │   │   └── Inject.lua
│   │   ├── DumpInfo/
│   │   │   └── Init.lua
│   │   ├── HookNotify/
│   │   │   └── HookNotify.lua
│   │   ├── InfoDump.lua
│   │   ├── InfoReg.lua
│   │   ├── NetworkTest/
│   │   │   ├── Info.lua
│   │   │   ├── NetworkTest.lua
│   │   │   └── splashes.txt
│   │   └── TestLuaRocks/
│   │       └── TestLuaRocks.lua
│   ├── Prefabs/
│   │   ├── PieceStructures/
│   │   │   ├── NetherFort.cubeset
│   │   │   ├── RainbowRoad.cubeset
│   │   │   ├── TestRails.cubeset
│   │   │   ├── TreePaths.cubeset
│   │   │   └── UnderwaterBase.cubeset
│   │   ├── SinglePieceStructures/
│   │   │   ├── DesertPyramid.cubeset
│   │   │   ├── DesertWell.cubeset
│   │   │   ├── JungleTemple.cubeset
│   │   │   └── WitchHut.cubeset
│   │   └── Villages/
│   │       ├── AlchemistVillage.cubeset
│   │       ├── JapaneseVillage.cubeset
│   │       ├── PlainsVillage.cubeset
│   │       ├── SandFlatRoofVillage.cubeset
│   │       └── SandVillage.cubeset
│   ├── Protocol/
│   │   ├── 1.12.2/
│   │   │   └── base.recipes.txt
│   │   ├── 1.13/
│   │   │   └── base.btp.txt
│   │   ├── 1.14.4/
│   │   │   └── base.btp.txt
│   │   └── UpgradeBlockTypePalette.txt
│   ├── README.txt
│   ├── brewing.txt
│   ├── delete_windows_service.cmd
│   ├── furnace.txt
│   ├── hg
│   ├── hg.supp
│   ├── install_windows_service.cmd
│   ├── vg
│   ├── vg.supp
│   └── webadmin/
│       ├── GenerateSelfSignedHTTPSCertUsingOpenssl.cmd
│       ├── GenerateSelfSignedHTTPSCertUsingOpenssl.sh
│       ├── files/
│       │   ├── guest.html
│       │   └── style.css
│       ├── login_template.html
│       └── template.lua
├── SetFlags.cmake
├── TESTING.md
├── Tools/
│   ├── .gitignore
│   ├── AnvilStats/
│   │   ├── .gitignore
│   │   ├── AnvilStats.cpp
│   │   ├── AnvilStats.txt
│   │   ├── BiomeMap.cpp
│   │   ├── BiomeMap.h
│   │   ├── CMakeLists.txt
│   │   ├── Callback.h
│   │   ├── ChunkExtract.cpp
│   │   ├── ChunkExtract.h
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── HeightBiomeMap.cpp
│   │   ├── HeightBiomeMap.h
│   │   ├── HeightMap.cpp
│   │   ├── HeightMap.h
│   │   ├── ImageComposingCallback.cpp
│   │   ├── ImageComposingCallback.h
│   │   ├── Processor.cpp
│   │   ├── Processor.h
│   │   ├── SpringStats.cpp
│   │   ├── SpringStats.h
│   │   ├── Statistics.cpp
│   │   ├── Statistics.h
│   │   ├── Utils.cpp
│   │   ├── Utils.h
│   │   └── profile_run.cmd
│   ├── BlockTypePaletteGenerator/
│   │   ├── .gitignore
│   │   ├── Generator.lua
│   │   ├── UpgradeGenerator.lua
│   │   └── UpgradePaletteCheck.lua
│   ├── BlockZapper/
│   │   ├── .gitignore
│   │   ├── BlockZapper.cpp
│   │   ├── BlockZapper.txt
│   │   ├── GNUmakefile
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── Regions.cpp
│   │   ├── Regions.h
│   │   ├── Zapper.cpp
│   │   └── Zapper.h
│   ├── GeneratorPerformanceTest/
│   │   ├── CMakeLists.txt
│   │   └── GeneratorPerformanceTest.cpp
│   ├── GrownBiomeGenVisualiser/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── GrownBiomeGenVisualiser.cpp
│   │   └── README.md
│   ├── MCADefrag/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── MCADefrag.cpp
│   │   └── MCADefrag.h
│   ├── MemDumpAnalysis/
│   │   ├── .gitignore
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   ├── MemDumpAnalysis.cpp
│   │   └── targetver.h
│   ├── NoiseSpeedTest/
│   │   ├── CMakeLists.txt
│   │   ├── NoiseSpeedTest.cpp
│   │   ├── NoiseSpeedTest.h
│   │   └── SimplexNoise.h
│   ├── ProtoProxy/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── Connection.cpp
│   │   ├── Connection.h
│   │   ├── ProtoProxy.cpp
│   │   ├── ProtoProxy.txt
│   │   ├── Server.cpp
│   │   └── Server.h
│   ├── QtBiomeVisualiser/
│   │   ├── .gitignore
│   │   ├── BiomeView.cpp
│   │   ├── BiomeView.h
│   │   ├── ChunkSource.cpp
│   │   ├── ChunkSource.h
│   │   ├── GeneratorSetup.cpp
│   │   ├── GeneratorSetup.h
│   │   ├── Globals.h
│   │   ├── MainWindow.cpp
│   │   ├── MainWindow.h
│   │   ├── QtBiomeVisualiser.cpp
│   │   ├── QtBiomeVisualiser.pro
│   │   ├── QtChunk.cpp
│   │   ├── QtChunk.h
│   │   ├── Region.cpp
│   │   ├── Region.h
│   │   ├── RegionCache.cpp
│   │   ├── RegionCache.h
│   │   ├── RegionLoader.cpp
│   │   └── RegionLoader.h
│   ├── RCONClient/
│   │   ├── .gitignore
│   │   ├── Globals.cpp
│   │   ├── Globals.h
│   │   └── RCONClient.cpp
│   └── ToLuaDoxy/
│       ├── Doxyfile
│       ├── Globals.cpp
│       ├── Globals.h
│       └── ToLuaDoxy.cpp
├── android/
│   ├── .gitignore
│   ├── CMakeLists.txt
│   └── compile.sh
├── app.yml
├── appveyor.yml
├── cibuild.sh
├── clang-tidy.sh
├── cloc-exclude.txt
├── compile.sh
├── dev-docs/
│   ├── .gitignore
│   ├── API class inheritance - blockentities.gv
│   ├── API class inheritance - entities.gv
│   ├── Cubeset file format.html
│   ├── ExportingAPI.html
│   ├── Generator.html
│   ├── Login sequence.txt
│   ├── NBT Examples/
│   │   ├── single chunk NBT data.txt
│   │   └── tile entities.txt
│   ├── Object ownership.gv
│   ├── Plugin API.md
│   ├── SocketThreads states.gv
│   ├── Springs.ods
│   ├── _files.txt
│   ├── js/
│   │   ├── ValueMap.js
│   │   └── grown.js
│   └── style.css
├── easyinstall.sh
├── nightlybuild.sh
├── src/
│   ├── Bindings/
│   │   ├── .gitignore
│   │   ├── AllToLua.bat
│   │   ├── AllToLua.pkg
│   │   ├── AllToLua.sh
│   │   ├── AllToLua_lua.bat
│   │   ├── BindingsProcessor.lua
│   │   ├── BlockState.cpp
│   │   ├── BlockState.h
│   │   ├── BlockTypePalette.cpp
│   │   ├── BlockTypePalette.h
│   │   ├── BlockTypeRegistry.cpp
│   │   ├── BlockTypeRegistry.h
│   │   ├── CMakeLists.txt
│   │   ├── CheckBindingsDependencies.lua
│   │   ├── DeprecatedBindings.cpp
│   │   ├── DeprecatedBindings.h
│   │   ├── DiffAPIDesc.lua
│   │   ├── LuaChunkStay.cpp
│   │   ├── LuaChunkStay.h
│   │   ├── LuaFunctions.h
│   │   ├── LuaJson.cpp
│   │   ├── LuaJson.h
│   │   ├── LuaNameLookup.cpp
│   │   ├── LuaNameLookup.h
│   │   ├── LuaServerHandle.cpp
│   │   ├── LuaServerHandle.h
│   │   ├── LuaState.cpp
│   │   ├── LuaState.h
│   │   ├── LuaTCPLink.cpp
│   │   ├── LuaTCPLink.h
│   │   ├── LuaUDPEndpoint.cpp
│   │   ├── LuaUDPEndpoint.h
│   │   ├── LuaWindow.cpp
│   │   ├── LuaWindow.h
│   │   ├── ManualBindings.cpp
│   │   ├── ManualBindings.h
│   │   ├── ManualBindings_BlockArea.cpp
│   │   ├── ManualBindings_Network.cpp
│   │   ├── ManualBindings_RankManager.cpp
│   │   ├── ManualBindings_World.cpp
│   │   ├── Plugin.cpp
│   │   ├── Plugin.h
│   │   ├── PluginLua.cpp
│   │   ├── PluginLua.h
│   │   ├── PluginManager.cpp
│   │   ├── PluginManager.h
│   │   └── tolua++.h
│   ├── BiomeDef.cpp
│   ├── BiomeDef.h
│   ├── BlockArea.cpp
│   ├── BlockArea.h
│   ├── BlockEntities/
│   │   ├── BannerEntity.cpp
│   │   ├── BannerEntity.h
│   │   ├── BeaconEntity.cpp
│   │   ├── BeaconEntity.h
│   │   ├── BedEntity.cpp
│   │   ├── BedEntity.h
│   │   ├── BlockEntity.cpp
│   │   ├── BlockEntity.h
│   │   ├── BlockEntityWithItems.cpp
│   │   ├── BlockEntityWithItems.h
│   │   ├── BrewingstandEntity.cpp
│   │   ├── BrewingstandEntity.h
│   │   ├── CMakeLists.txt
│   │   ├── ChestEntity.cpp
│   │   ├── ChestEntity.h
│   │   ├── CommandBlockEntity.cpp
│   │   ├── CommandBlockEntity.h
│   │   ├── DispenserEntity.cpp
│   │   ├── DispenserEntity.h
│   │   ├── DropSpenserEntity.cpp
│   │   ├── DropSpenserEntity.h
│   │   ├── DropperEntity.cpp
│   │   ├── DropperEntity.h
│   │   ├── EnchantingTableEntity.cpp
│   │   ├── EnchantingTableEntity.h
│   │   ├── EndPortalEntity.cpp
│   │   ├── EndPortalEntity.h
│   │   ├── EnderChestEntity.cpp
│   │   ├── EnderChestEntity.h
│   │   ├── FlowerPotEntity.cpp
│   │   ├── FlowerPotEntity.h
│   │   ├── FurnaceEntity.cpp
│   │   ├── FurnaceEntity.h
│   │   ├── HopperEntity.cpp
│   │   ├── HopperEntity.h
│   │   ├── JukeboxEntity.cpp
│   │   ├── JukeboxEntity.h
│   │   ├── MobHeadEntity.cpp
│   │   ├── MobHeadEntity.h
│   │   ├── MobSpawnerEntity.cpp
│   │   ├── MobSpawnerEntity.h
│   │   ├── NoteEntity.cpp
│   │   ├── NoteEntity.h
│   │   ├── SignEntity.cpp
│   │   └── SignEntity.h
│   ├── BlockInServerPluginInterface.h
│   ├── BlockInfo.cpp
│   ├── BlockInfo.h
│   ├── BlockState.h
│   ├── BlockTracer.h
│   ├── BlockType.cpp
│   ├── BlockType.h
│   ├── Blocks/
│   │   ├── BlockAir.h
│   │   ├── BlockAnvil.h
│   │   ├── BlockBed.cpp
│   │   ├── BlockBed.h
│   │   ├── BlockBigFlower.h
│   │   ├── BlockBookShelf.h
│   │   ├── BlockBrewingStand.h
│   │   ├── BlockButton.h
│   │   ├── BlockCactus.h
│   │   ├── BlockCake.h
│   │   ├── BlockCarpet.h
│   │   ├── BlockCauldron.h
│   │   ├── BlockChest.h
│   │   ├── BlockCloth.h
│   │   ├── BlockCobWeb.h
│   │   ├── BlockCocoaPod.h
│   │   ├── BlockCommandBlock.h
│   │   ├── BlockComparator.h
│   │   ├── BlockConcretePowder.h
│   │   ├── BlockCrops.h
│   │   ├── BlockDaylightSensor.h
│   │   ├── BlockDeadBush.h
│   │   ├── BlockDefaultBlock.h
│   │   ├── BlockDirt.h
│   │   ├── BlockDoor.cpp
│   │   ├── BlockDoor.h
│   │   ├── BlockDropSpenser.h
│   │   ├── BlockEnchantingTable.h
│   │   ├── BlockEndPortalFrame.h
│   │   ├── BlockEnderChest.h
│   │   ├── BlockEntity.h
│   │   ├── BlockFarmland.h
│   │   ├── BlockFence.h
│   │   ├── BlockFenceGate.h
│   │   ├── BlockFire.h
│   │   ├── BlockFlower.h
│   │   ├── BlockFlowerPot.h
│   │   ├── BlockFluid.h
│   │   ├── BlockFurnace.h
│   │   ├── BlockGlass.h
│   │   ├── BlockGlazedTerracotta.h
│   │   ├── BlockGlowstone.h
│   │   ├── BlockGrass.h
│   │   ├── BlockGravel.h
│   │   ├── BlockHandler.cpp
│   │   ├── BlockHandler.h
│   │   ├── BlockHopper.h
│   │   ├── BlockHugeMushroom.h
│   │   ├── BlockIce.h
│   │   ├── BlockInfested.h
│   │   ├── BlockJukebox.h
│   │   ├── BlockLadder.h
│   │   ├── BlockLeaves.h
│   │   ├── BlockLever.h
│   │   ├── BlockLilypad.h
│   │   ├── BlockMelon.h
│   │   ├── BlockMobHead.h
│   │   ├── BlockMobSpawner.h
│   │   ├── BlockMushroom.h
│   │   ├── BlockMycelium.h
│   │   ├── BlockNetherWart.h
│   │   ├── BlockNetherrack.h
│   │   ├── BlockNoteBlock.h
│   │   ├── BlockObserver.h
│   │   ├── BlockOre.h
│   │   ├── BlockPackedIce.h
│   │   ├── BlockPiston.cpp
│   │   ├── BlockPiston.h
│   │   ├── BlockPlanks.h
│   │   ├── BlockPlant.h
│   │   ├── BlockPluginInterface.h
│   │   ├── BlockPortal.h
│   │   ├── BlockPressurePlate.h
│   │   ├── BlockPumpkin.h
│   │   ├── BlockQuartz.h
│   │   ├── BlockRail.h
│   │   ├── BlockRedstoneLamp.h
│   │   ├── BlockRedstoneOre.h
│   │   ├── BlockRedstoneRepeater.h
│   │   ├── BlockRedstoneWire.h
│   │   ├── BlockSand.h
│   │   ├── BlockSapling.h
│   │   ├── BlockSeaLantern.h
│   │   ├── BlockSideways.h
│   │   ├── BlockSignPost.h
│   │   ├── BlockSlab.h
│   │   ├── BlockSlime.h
│   │   ├── BlockSnow.h
│   │   ├── BlockSponge.h
│   │   ├── BlockStairs.h
│   │   ├── BlockStandingBanner.h
│   │   ├── BlockStems.h
│   │   ├── BlockStone.h
│   │   ├── BlockSugarCane.h
│   │   ├── BlockTNT.h
│   │   ├── BlockTallGrass.h
│   │   ├── BlockTorch.h
│   │   ├── BlockTrapdoor.h
│   │   ├── BlockTripwire.h
│   │   ├── BlockTripwireHook.h
│   │   ├── BlockVines.h
│   │   ├── BlockWallBanner.h
│   │   ├── BlockWallSign.h
│   │   ├── BlockWorkbench.h
│   │   ├── BroadcastInterface.h
│   │   ├── CMakeLists.txt
│   │   ├── ChunkInterface.cpp
│   │   ├── ChunkInterface.h
│   │   ├── GetHandlerCompileTimeTemplate.h
│   │   ├── Mixins/
│   │   │   ├── DirtLikeUnderneath.h
│   │   │   ├── Mixins.h
│   │   │   └── SolidSurfaceUnderneath.h
│   │   └── WorldInterface.h
│   ├── BoundingBox.cpp
│   ├── BoundingBox.h
│   ├── BrewingRecipes.cpp
│   ├── BrewingRecipes.h
│   ├── Broadcaster.cpp
│   ├── BuildInfo.h.cmake
│   ├── ByteBuffer.cpp
│   ├── ByteBuffer.h
│   ├── CMakeLists.txt
│   ├── ChatColor.cpp
│   ├── ChatColor.h
│   ├── CheckBasicStyle.lua
│   ├── Chunk.cpp
│   ├── Chunk.h
│   ├── ChunkData.cpp
│   ├── ChunkData.h
│   ├── ChunkDataCallback.h
│   ├── ChunkDef.h
│   ├── ChunkGeneratorThread.cpp
│   ├── ChunkGeneratorThread.h
│   ├── ChunkMap.cpp
│   ├── ChunkMap.h
│   ├── ChunkSender.cpp
│   ├── ChunkSender.h
│   ├── ChunkStay.cpp
│   ├── ChunkStay.h
│   ├── CircularBufferCompressor.cpp
│   ├── CircularBufferCompressor.h
│   ├── ClientHandle.cpp
│   ├── ClientHandle.h
│   ├── Color.cpp
│   ├── Color.h
│   ├── CommandOutput.cpp
│   ├── CommandOutput.h
│   ├── CompositeChat.cpp
│   ├── CompositeChat.h
│   ├── CraftingRecipes.cpp
│   ├── CraftingRecipes.h
│   ├── Cuboid.cpp
│   ├── Cuboid.h
│   ├── DeadlockDetect.cpp
│   ├── DeadlockDetect.h
│   ├── Defines.cpp
│   ├── Defines.h
│   ├── EffectID.h
│   ├── Enchantments.cpp
│   ├── Enchantments.h
│   ├── Endianness.h
│   ├── Entities/
│   │   ├── ArrowEntity.cpp
│   │   ├── ArrowEntity.h
│   │   ├── Boat.cpp
│   │   ├── Boat.h
│   │   ├── CMakeLists.txt
│   │   ├── EnderCrystal.cpp
│   │   ├── EnderCrystal.h
│   │   ├── Entity.cpp
│   │   ├── Entity.h
│   │   ├── EntityEffect.cpp
│   │   ├── EntityEffect.h
│   │   ├── ExpBottleEntity.cpp
│   │   ├── ExpBottleEntity.h
│   │   ├── ExpOrb.cpp
│   │   ├── ExpOrb.h
│   │   ├── FallingBlock.cpp
│   │   ├── FallingBlock.h
│   │   ├── FireChargeEntity.cpp
│   │   ├── FireChargeEntity.h
│   │   ├── FireworkEntity.cpp
│   │   ├── FireworkEntity.h
│   │   ├── Floater.cpp
│   │   ├── Floater.h
│   │   ├── GhastFireballEntity.cpp
│   │   ├── GhastFireballEntity.h
│   │   ├── HangingEntity.cpp
│   │   ├── HangingEntity.h
│   │   ├── ItemFrame.cpp
│   │   ├── ItemFrame.h
│   │   ├── LeashKnot.cpp
│   │   ├── LeashKnot.h
│   │   ├── Minecart.cpp
│   │   ├── Minecart.h
│   │   ├── Painting.cpp
│   │   ├── Painting.h
│   │   ├── Pawn.cpp
│   │   ├── Pawn.h
│   │   ├── Pickup.cpp
│   │   ├── Pickup.h
│   │   ├── Player.cpp
│   │   ├── Player.h
│   │   ├── ProjectileEntity.cpp
│   │   ├── ProjectileEntity.h
│   │   ├── SplashPotionEntity.cpp
│   │   ├── SplashPotionEntity.h
│   │   ├── TNTEntity.cpp
│   │   ├── TNTEntity.h
│   │   ├── ThrownEggEntity.cpp
│   │   ├── ThrownEggEntity.h
│   │   ├── ThrownEnderPearlEntity.cpp
│   │   ├── ThrownEnderPearlEntity.h
│   │   ├── ThrownSnowballEntity.cpp
│   │   ├── ThrownSnowballEntity.h
│   │   ├── WitherSkullEntity.cpp
│   │   └── WitherSkullEntity.h
│   ├── FastRandom.cpp
│   ├── FastRandom.h
│   ├── ForEachChunkProvider.h
│   ├── FunctionRef.h
│   ├── FurnaceRecipe.cpp
│   ├── FurnaceRecipe.h
│   ├── Generating/
│   │   ├── BioGen.cpp
│   │   ├── BioGen.h
│   │   ├── CMakeLists.txt
│   │   ├── Caves.cpp
│   │   ├── Caves.h
│   │   ├── ChunkDesc.cpp
│   │   ├── ChunkDesc.h
│   │   ├── ChunkGenerator.cpp
│   │   ├── ChunkGenerator.h
│   │   ├── CompoGen.cpp
│   │   ├── CompoGen.h
│   │   ├── CompoGenBiomal.cpp
│   │   ├── CompoGenBiomal.h
│   │   ├── ComposableGenerator.cpp
│   │   ├── ComposableGenerator.h
│   │   ├── CompositedHeiGen.h
│   │   ├── DistortedHeightmap.cpp
│   │   ├── DistortedHeightmap.h
│   │   ├── DungeonRoomsFinisher.cpp
│   │   ├── DungeonRoomsFinisher.h
│   │   ├── EndGen.cpp
│   │   ├── EndGen.h
│   │   ├── EnderDragonFightStructuresGen.cpp
│   │   ├── EnderDragonFightStructuresGen.h
│   │   ├── FinishGen.cpp
│   │   ├── FinishGen.h
│   │   ├── GridStructGen.cpp
│   │   ├── GridStructGen.h
│   │   ├── HeiGen.cpp
│   │   ├── HeiGen.h
│   │   ├── IntGen.h
│   │   ├── MineShafts.cpp
│   │   ├── MineShafts.h
│   │   ├── Noise3DGenerator.cpp
│   │   ├── Noise3DGenerator.h
│   │   ├── PieceGeneratorBFSTree.cpp
│   │   ├── PieceGeneratorBFSTree.h
│   │   ├── PieceModifier.cpp
│   │   ├── PieceModifier.h
│   │   ├── PiecePool.cpp
│   │   ├── PiecePool.h
│   │   ├── PieceStructuresGen.cpp
│   │   ├── PieceStructuresGen.h
│   │   ├── Prefab.cpp
│   │   ├── Prefab.h
│   │   ├── PrefabPiecePool.cpp
│   │   ├── PrefabPiecePool.h
│   │   ├── PrefabStructure.cpp
│   │   ├── PrefabStructure.h
│   │   ├── ProtIntGen.h
│   │   ├── Ravines.cpp
│   │   ├── Ravines.h
│   │   ├── RoughRavines.cpp
│   │   ├── RoughRavines.h
│   │   ├── ShapeGen.cpp
│   │   ├── SinglePieceStructuresGen.cpp
│   │   ├── SinglePieceStructuresGen.h
│   │   ├── StructGen.cpp
│   │   ├── StructGen.h
│   │   ├── Trees.cpp
│   │   ├── Trees.h
│   │   ├── TwoHeights.cpp
│   │   ├── TwoHeights.h
│   │   ├── VerticalLimit.cpp
│   │   ├── VerticalLimit.h
│   │   ├── VerticalStrategy.cpp
│   │   ├── VerticalStrategy.h
│   │   ├── VillageGen.cpp
│   │   └── VillageGen.h
│   ├── Globals.cpp
│   ├── Globals.h
│   ├── HTTP/
│   │   ├── CMakeLists.txt
│   │   ├── EnvelopeParser.cpp
│   │   ├── EnvelopeParser.h
│   │   ├── HTTPFormParser.cpp
│   │   ├── HTTPFormParser.h
│   │   ├── HTTPMessage.cpp
│   │   ├── HTTPMessage.h
│   │   ├── HTTPMessageParser.cpp
│   │   ├── HTTPMessageParser.h
│   │   ├── HTTPServer.cpp
│   │   ├── HTTPServer.h
│   │   ├── HTTPServerConnection.cpp
│   │   ├── HTTPServerConnection.h
│   │   ├── MultipartParser.cpp
│   │   ├── MultipartParser.h
│   │   ├── NameValueParser.cpp
│   │   ├── NameValueParser.h
│   │   ├── SslHTTPServerConnection.cpp
│   │   ├── SslHTTPServerConnection.h
│   │   ├── TransferEncodingParser.cpp
│   │   ├── TransferEncodingParser.h
│   │   ├── UrlClient.cpp
│   │   ├── UrlClient.h
│   │   ├── UrlParser.cpp
│   │   └── UrlParser.h
│   ├── IniFile.cpp
│   ├── IniFile.h
│   ├── Inventory.cpp
│   ├── Inventory.h
│   ├── Item.cpp
│   ├── Item.h
│   ├── ItemGrid.cpp
│   ├── ItemGrid.h
│   ├── Items/
│   │   ├── CMakeLists.txt
│   │   ├── ItemAnvil.h
│   │   ├── ItemArmor.h
│   │   ├── ItemAxe.h
│   │   ├── ItemBanner.h
│   │   ├── ItemBed.h
│   │   ├── ItemBigFlower.h
│   │   ├── ItemBoat.h
│   │   ├── ItemBottle.h
│   │   ├── ItemBow.h
│   │   ├── ItemBucket.h
│   │   ├── ItemButton.h
│   │   ├── ItemChest.h
│   │   ├── ItemChorusFruit.h
│   │   ├── ItemCloth.h
│   │   ├── ItemComparator.h
│   │   ├── ItemCookedFish.h
│   │   ├── ItemDefaultItem.h
│   │   ├── ItemDoor.h
│   │   ├── ItemDropSpenser.h
│   │   ├── ItemDye.h
│   │   ├── ItemEmptyMap.h
│   │   ├── ItemEnchantingTable.h
│   │   ├── ItemEndCrystal.h
│   │   ├── ItemEndPortalFrame.h
│   │   ├── ItemEnderChest.h
│   │   ├── ItemEyeOfEnder.h
│   │   ├── ItemFenceGate.h
│   │   ├── ItemFishingRod.h
│   │   ├── ItemFood.h
│   │   ├── ItemFoodSeeds.h
│   │   ├── ItemFurnace.h
│   │   ├── ItemGlazedTerracotta.h
│   │   ├── ItemGoldenApple.h
│   │   ├── ItemHandler.cpp
│   │   ├── ItemHandler.h
│   │   ├── ItemHoe.h
│   │   ├── ItemHopper.h
│   │   ├── ItemItemFrame.h
│   │   ├── ItemJackOLantern.h
│   │   ├── ItemLadder.h
│   │   ├── ItemLeaves.h
│   │   ├── ItemLever.h
│   │   ├── ItemLighter.h
│   │   ├── ItemLilypad.h
│   │   ├── ItemMap.h
│   │   ├── ItemMilk.h
│   │   ├── ItemMinecart.h
│   │   ├── ItemMobHead.h
│   │   ├── ItemNetherWart.h
│   │   ├── ItemObserver.h
│   │   ├── ItemPainting.h
│   │   ├── ItemPickaxe.h
│   │   ├── ItemPiston.h
│   │   ├── ItemPlanks.h
│   │   ├── ItemPoisonousPotato.h
│   │   ├── ItemPotion.h
│   │   ├── ItemPumpkin.h
│   │   ├── ItemQuartz.h
│   │   ├── ItemRail.h
│   │   ├── ItemRawChicken.h
│   │   ├── ItemRawFish.h
│   │   ├── ItemRedstoneDust.h
│   │   ├── ItemRedstoneRepeater.h
│   │   ├── ItemRottenFlesh.h
│   │   ├── ItemSapling.h
│   │   ├── ItemSeeds.h
│   │   ├── ItemShears.h
│   │   ├── ItemShovel.h
│   │   ├── ItemSideways.h
│   │   ├── ItemSign.h
│   │   ├── ItemSlab.h
│   │   ├── ItemSnow.h
│   │   ├── ItemSoup.h
│   │   ├── ItemSpawnEgg.h
│   │   ├── ItemSpiderEye.h
│   │   ├── ItemStairs.h
│   │   ├── ItemSword.h
│   │   ├── ItemThrowable.h
│   │   ├── ItemTorch.h
│   │   ├── ItemTrapdoor.h
│   │   ├── ItemTripwireHook.h
│   │   ├── ItemVines.h
│   │   └── SimplePlaceableItemHandler.h
│   ├── JsonUtils.cpp
│   ├── JsonUtils.h
│   ├── LazyArray.h
│   ├── LightingThread.cpp
│   ├── LightingThread.h
│   ├── LineBlockTracer.cpp
│   ├── LineBlockTracer.h
│   ├── LinearInterpolation.cpp
│   ├── LinearInterpolation.h
│   ├── LinearUpscale.h
│   ├── Logger.cpp
│   ├── Logger.h
│   ├── LoggerListeners.cpp
│   ├── LoggerListeners.h
│   ├── LoggerSimple.h
│   ├── Map.cpp
│   ├── Map.h
│   ├── MapManager.cpp
│   ├── MapManager.h
│   ├── Matrix4.h
│   ├── MemorySettingsRepository.cpp
│   ├── MemorySettingsRepository.h
│   ├── MobCensus.cpp
│   ├── MobCensus.h
│   ├── MobFamilyCollecter.cpp
│   ├── MobFamilyCollecter.h
│   ├── MobProximityCounter.cpp
│   ├── MobProximityCounter.h
│   ├── MobSpawner.cpp
│   ├── MobSpawner.h
│   ├── Mobs/
│   │   ├── AggressiveMonster.cpp
│   │   ├── AggressiveMonster.h
│   │   ├── Bat.cpp
│   │   ├── Bat.h
│   │   ├── Blaze.cpp
│   │   ├── Blaze.h
│   │   ├── CMakeLists.txt
│   │   ├── CaveSpider.cpp
│   │   ├── CaveSpider.h
│   │   ├── Chicken.cpp
│   │   ├── Chicken.h
│   │   ├── Cow.cpp
│   │   ├── Cow.h
│   │   ├── Creeper.cpp
│   │   ├── Creeper.h
│   │   ├── EnderDragon.cpp
│   │   ├── EnderDragon.h
│   │   ├── Enderman.cpp
│   │   ├── Enderman.h
│   │   ├── Endermite.cpp
│   │   ├── Endermite.h
│   │   ├── Ghast.cpp
│   │   ├── Ghast.h
│   │   ├── Giant.cpp
│   │   ├── Giant.h
│   │   ├── Guardian.cpp
│   │   ├── Guardian.h
│   │   ├── Horse.cpp
│   │   ├── Horse.h
│   │   ├── IncludeAllMonsters.h
│   │   ├── IronGolem.cpp
│   │   ├── IronGolem.h
│   │   ├── MagmaCube.cpp
│   │   ├── MagmaCube.h
│   │   ├── Monster.cpp
│   │   ├── Monster.h
│   │   ├── MonsterTypes.h
│   │   ├── Mooshroom.cpp
│   │   ├── Mooshroom.h
│   │   ├── Ocelot.cpp
│   │   ├── Ocelot.h
│   │   ├── PassiveAggressiveMonster.cpp
│   │   ├── PassiveAggressiveMonster.h
│   │   ├── PassiveMonster.cpp
│   │   ├── PassiveMonster.h
│   │   ├── Path.cpp
│   │   ├── Path.h
│   │   ├── PathFinder.cpp
│   │   ├── PathFinder.h
│   │   ├── Pig.cpp
│   │   ├── Pig.h
│   │   ├── Rabbit.cpp
│   │   ├── Rabbit.h
│   │   ├── Sheep.cpp
│   │   ├── Sheep.h
│   │   ├── Silverfish.cpp
│   │   ├── Silverfish.h
│   │   ├── Skeleton.cpp
│   │   ├── Skeleton.h
│   │   ├── Slime.cpp
│   │   ├── Slime.h
│   │   ├── SnowGolem.cpp
│   │   ├── SnowGolem.h
│   │   ├── Spider.cpp
│   │   ├── Spider.h
│   │   ├── Squid.cpp
│   │   ├── Squid.h
│   │   ├── Villager.cpp
│   │   ├── Villager.h
│   │   ├── Witch.cpp
│   │   ├── Witch.h
│   │   ├── Wither.cpp
│   │   ├── Wither.h
│   │   ├── WitherSkeleton.cpp
│   │   ├── WitherSkeleton.h
│   │   ├── Wolf.cpp
│   │   ├── Wolf.h
│   │   ├── Zombie.cpp
│   │   ├── Zombie.h
│   │   ├── ZombiePigman.cpp
│   │   ├── ZombiePigman.h
│   │   ├── ZombieVillager.cpp
│   │   └── ZombieVillager.h
│   ├── MonsterConfig.cpp
│   ├── MonsterConfig.h
│   ├── NetherPortalScanner.cpp
│   ├── NetherPortalScanner.h
│   ├── Noise/
│   │   ├── CMakeLists.txt
│   │   ├── InterpolNoise.h
│   │   ├── Noise.cpp
│   │   ├── Noise.h
│   │   ├── OctavedNoise.h
│   │   └── RidgedNoise.h
│   ├── OSSupport/
│   │   ├── AtomicUniquePtr.h
│   │   ├── CMakeLists.txt
│   │   ├── ConsoleSignalHandler.h
│   │   ├── CriticalSection.cpp
│   │   ├── CriticalSection.h
│   │   ├── Event.cpp
│   │   ├── Event.h
│   │   ├── File.cpp
│   │   ├── File.h
│   │   ├── GZipFile.cpp
│   │   ├── GZipFile.h
│   │   ├── GetAddressInfoError.h
│   │   ├── HostnameLookup.cpp
│   │   ├── HostnameLookup.h
│   │   ├── IPLookup.cpp
│   │   ├── IPLookup.h
│   │   ├── IsThread.cpp
│   │   ├── IsThread.h
│   │   ├── MiniDumpWriter.h
│   │   ├── Network.h
│   │   ├── NetworkInterfaceEnum.cpp
│   │   ├── NetworkLookup.cpp
│   │   ├── NetworkLookup.h
│   │   ├── NetworkSingleton.cpp
│   │   ├── NetworkSingleton.h
│   │   ├── Queue.h
│   │   ├── ServerHandleImpl.cpp
│   │   ├── ServerHandleImpl.h
│   │   ├── SleepResolutionBooster.h
│   │   ├── StackTrace.cpp
│   │   ├── StackTrace.h
│   │   ├── StartAsService.h
│   │   ├── Stopwatch.h
│   │   ├── TCPLinkImpl.cpp
│   │   ├── TCPLinkImpl.h
│   │   ├── UDPEndpointImpl.cpp
│   │   ├── UDPEndpointImpl.h
│   │   ├── WinStackWalker.cpp
│   │   └── WinStackWalker.h
│   ├── OpaqueWorld.h
│   ├── OverridesSettingsRepository.cpp
│   ├── OverridesSettingsRepository.h
│   ├── PalettedBlockArea.cpp
│   ├── PalettedBlockArea.h
│   ├── Physics/
│   │   ├── CMakeLists.txt
│   │   ├── Explodinator.cpp
│   │   └── Explodinator.h
│   ├── ProbabDistrib.cpp
│   ├── ProbabDistrib.h
│   ├── Protocol/
│   │   ├── Authenticator.cpp
│   │   ├── Authenticator.h
│   │   ├── CMakeLists.txt
│   │   ├── ChunkDataSerializer.cpp
│   │   ├── ChunkDataSerializer.h
│   │   ├── ForgeHandshake.cpp
│   │   ├── ForgeHandshake.h
│   │   ├── MojangAPI.cpp
│   │   ├── MojangAPI.h
│   │   ├── Packetizer.cpp
│   │   ├── Packetizer.h
│   │   ├── Palettes/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Palette_1_13.cpp
│   │   │   ├── Palette_1_13.h
│   │   │   ├── Palette_1_13_1.cpp
│   │   │   ├── Palette_1_13_1.h
│   │   │   ├── Palette_1_14.cpp
│   │   │   ├── Palette_1_14.h
│   │   │   ├── Palette_1_15.cpp
│   │   │   ├── Palette_1_15.h
│   │   │   ├── Palette_1_16.cpp
│   │   │   ├── Palette_1_16.h
│   │   │   ├── Upgrade.cpp
│   │   │   └── Upgrade.h
│   │   ├── Protocol.h
│   │   ├── ProtocolRecognizer.cpp
│   │   ├── ProtocolRecognizer.h
│   │   ├── Protocol_1_10.cpp
│   │   ├── Protocol_1_10.h
│   │   ├── Protocol_1_11.cpp
│   │   ├── Protocol_1_11.h
│   │   ├── Protocol_1_12.cpp
│   │   ├── Protocol_1_12.h
│   │   ├── Protocol_1_13.cpp
│   │   ├── Protocol_1_13.h
│   │   ├── Protocol_1_14.cpp
│   │   ├── Protocol_1_14.h
│   │   ├── Protocol_1_8.cpp
│   │   ├── Protocol_1_8.h
│   │   ├── Protocol_1_9.cpp
│   │   ├── Protocol_1_9.h
│   │   ├── RecipeMapper.cpp
│   │   └── RecipeMapper.h
│   ├── RCONServer.cpp
│   ├── RCONServer.h
│   ├── RankManager.cpp
│   ├── RankManager.h
│   ├── Registries/
│   │   ├── BlockStates.cpp
│   │   ├── BlockStates.h
│   │   ├── BlockTypes.h
│   │   ├── CMakeLists.txt
│   │   ├── CustomStatistics.h
│   │   └── Items.h
│   ├── Resources/
│   │   └── Cuberite.rc
│   ├── Root.cpp
│   ├── Root.h
│   ├── Scoreboard.cpp
│   ├── Scoreboard.h
│   ├── Server.cpp
│   ├── Server.h
│   ├── SetChunkData.cpp
│   ├── SetChunkData.h
│   ├── SettingsRepositoryInterface.h
│   ├── Simulator/
│   │   ├── CMakeLists.txt
│   │   ├── DelayedFluidSimulator.cpp
│   │   ├── DelayedFluidSimulator.h
│   │   ├── FireSimulator.cpp
│   │   ├── FireSimulator.h
│   │   ├── FloodyFluidSimulator.cpp
│   │   ├── FloodyFluidSimulator.h
│   │   ├── FluidSimulator.cpp
│   │   ├── FluidSimulator.h
│   │   ├── IncrementalRedstoneSimulator/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CommandBlockHandler.h
│   │   │   ├── DaylightSensorHandler.h
│   │   │   ├── DoorHandler.h
│   │   │   ├── DropSpenserHandler.h
│   │   │   ├── ForEachSourceCallback.cpp
│   │   │   ├── ForEachSourceCallback.h
│   │   │   ├── HopperHandler.h
│   │   │   ├── IncrementalRedstoneSimulator.cpp
│   │   │   ├── IncrementalRedstoneSimulator.h
│   │   │   ├── NoteBlockHandler.h
│   │   │   ├── ObserverHandler.h
│   │   │   ├── PistonHandler.h
│   │   │   ├── PoweredRailHandler.h
│   │   │   ├── PressurePlateHandler.h
│   │   │   ├── RedstoneBlockHandler.h
│   │   │   ├── RedstoneComparatorHandler.h
│   │   │   ├── RedstoneDataHelper.h
│   │   │   ├── RedstoneHandler.cpp
│   │   │   ├── RedstoneHandler.h
│   │   │   ├── RedstoneLampHandler.h
│   │   │   ├── RedstoneRepeaterHandler.h
│   │   │   ├── RedstoneSimulatorChunkData.h
│   │   │   ├── RedstoneToggleHandler.h
│   │   │   ├── RedstoneTorchHandler.h
│   │   │   ├── RedstoneWireHandler.h
│   │   │   ├── SmallGateHandler.h
│   │   │   ├── TNTHandler.h
│   │   │   ├── TrappedChestHandler.h
│   │   │   └── TripwireHookHandler.h
│   │   ├── NoopFluidSimulator.h
│   │   ├── NoopRedstoneSimulator.h
│   │   ├── RedstoneSimulator.h
│   │   ├── SandSimulator.cpp
│   │   ├── SandSimulator.h
│   │   ├── Simulator.cpp
│   │   ├── Simulator.h
│   │   ├── SimulatorManager.cpp
│   │   ├── SimulatorManager.h
│   │   ├── VanillaFluidSimulator.cpp
│   │   ├── VanillaFluidSimulator.h
│   │   ├── VaporizeFluidSimulator.cpp
│   │   └── VaporizeFluidSimulator.h
│   ├── SpawnPrepare.cpp
│   ├── SpawnPrepare.h
│   ├── StatisticsManager.cpp
│   ├── StatisticsManager.h
│   ├── StringCompression.cpp
│   ├── StringCompression.h
│   ├── StringUtils.cpp
│   ├── StringUtils.h
│   ├── UI/
│   │   ├── AnvilWindow.cpp
│   │   ├── AnvilWindow.h
│   │   ├── BeaconWindow.cpp
│   │   ├── BeaconWindow.h
│   │   ├── BrewingstandWindow.cpp
│   │   ├── BrewingstandWindow.h
│   │   ├── CMakeLists.txt
│   │   ├── ChestWindow.cpp
│   │   ├── ChestWindow.h
│   │   ├── CraftingWindow.cpp
│   │   ├── CraftingWindow.h
│   │   ├── DropSpenserWindow.cpp
│   │   ├── DropSpenserWindow.h
│   │   ├── EnchantingWindow.cpp
│   │   ├── EnchantingWindow.h
│   │   ├── EnderChestWindow.cpp
│   │   ├── EnderChestWindow.h
│   │   ├── FurnaceWindow.cpp
│   │   ├── FurnaceWindow.h
│   │   ├── HopperWindow.cpp
│   │   ├── HopperWindow.h
│   │   ├── HorseWindow.cpp
│   │   ├── HorseWindow.h
│   │   ├── InventoryWindow.cpp
│   │   ├── InventoryWindow.h
│   │   ├── MinecartWithChestWindow.h
│   │   ├── SlotArea.cpp
│   │   ├── SlotArea.h
│   │   ├── Window.cpp
│   │   ├── Window.h
│   │   └── WindowOwner.h
│   ├── UUID.cpp
│   ├── UUID.h
│   ├── Vector3.h
│   ├── VoronoiMap.cpp
│   ├── VoronoiMap.h
│   ├── WebAdmin.cpp
│   ├── WebAdmin.h
│   ├── World.cpp
│   ├── World.h
│   ├── WorldStorage/
│   │   ├── CMakeLists.txt
│   │   ├── EnchantmentSerializer.cpp
│   │   ├── EnchantmentSerializer.h
│   │   ├── FastNBT.cpp
│   │   ├── FastNBT.h
│   │   ├── FireworksSerializer.cpp
│   │   ├── FireworksSerializer.h
│   │   ├── MapSerializer.cpp
│   │   ├── MapSerializer.h
│   │   ├── NBTChunkSerializer.cpp
│   │   ├── NBTChunkSerializer.h
│   │   ├── NamespaceSerializer.cpp
│   │   ├── NamespaceSerializer.h
│   │   ├── SchematicFileSerializer.cpp
│   │   ├── SchematicFileSerializer.h
│   │   ├── ScoreboardSerializer.cpp
│   │   ├── ScoreboardSerializer.h
│   │   ├── StatisticsSerializer.cpp
│   │   ├── StatisticsSerializer.h
│   │   ├── WSSAnvil.cpp
│   │   ├── WSSAnvil.h
│   │   ├── WorldStorage.cpp
│   │   └── WorldStorage.h
│   ├── XMLParser.h
│   ├── fmt.h
│   ├── main.cpp
│   ├── main.h
│   └── mbedTLS++/
│       ├── AesCfb128Decryptor.cpp
│       ├── AesCfb128Decryptor.h
│       ├── AesCfb128Encryptor.cpp
│       ├── AesCfb128Encryptor.h
│       ├── BlockingSslClientSocket.cpp
│       ├── BlockingSslClientSocket.h
│       ├── BufferedSslContext.cpp
│       ├── BufferedSslContext.h
│       ├── CMakeLists.txt
│       ├── CallbackSslContext.cpp
│       ├── CallbackSslContext.h
│       ├── CryptoKey.cpp
│       ├── CryptoKey.h
│       ├── CtrDrbgContext.cpp
│       ├── CtrDrbgContext.h
│       ├── EntropyContext.cpp
│       ├── EntropyContext.h
│       ├── ErrorCodes.h
│       ├── RsaPrivateKey.cpp
│       ├── RsaPrivateKey.h
│       ├── Sha1Checksum.cpp
│       ├── Sha1Checksum.h
│       ├── SslConfig.cpp
│       ├── SslConfig.h
│       ├── SslContext.cpp
│       ├── SslContext.h
│       ├── X509Cert.cpp
│       └── X509Cert.h
├── stats.cmd
└── tests/
    ├── BlockTypeRegistry/
    │   ├── BlockStateTest.cpp
    │   ├── BlockTypePaletteTest.cpp
    │   ├── BlockTypeRegistryTest.cpp
    │   ├── CMakeLists.txt
    │   └── PalettedBlockAreaTest.cpp
    ├── BoundingBox/
    │   ├── BoundingBoxTest.cpp
    │   └── CMakeLists.txt
    ├── ByteBuffer/
    │   ├── ByteBufferTest.cpp
    │   ├── CMakeLists.txt
    │   └── Stubs.cpp
    ├── CMakeLists.txt
    ├── ChunkData/
    │   ├── ArraytoCoord.cpp
    │   ├── CMakeLists.txt
    │   ├── Coordinates.cpp
    │   ├── Copies.cpp
    │   └── Creatable.cpp
    ├── CompositeChat/
    │   ├── CMakeLists.txt
    │   ├── ClientHandle.cpp
    │   └── CompositeChatTest.cpp
    ├── ConsoleColors/
    │   └── ConsoleColors.cpp
    ├── FastRandom/
    │   ├── CMakeLists.txt
    │   └── FastRandomTest.cpp
    ├── Generating/
    │   ├── BasicGeneratorTest.cpp
    │   ├── Bindings.h
    │   ├── CMakeLists.txt
    │   ├── LoadablePieces.cpp
    │   ├── LuaState_Declaration.inc
    │   ├── LuaState_Typedefs.inc
    │   ├── PieceGeneratorBFSTreeTest.cpp
    │   ├── PieceRotationTest.cpp
    │   ├── Stubs.cpp
    │   ├── Test.cubeset
    │   └── Test1.schematic
    ├── HTTP/
    │   ├── CMakeLists.txt
    │   ├── HTTPMessageParser_file.cpp
    │   ├── HTTPRequest1.data
    │   ├── HTTPRequest2.data
    │   ├── HTTPRequestParser_file.cpp
    │   ├── HTTPResponse1.data
    │   ├── HTTPResponse2.data
    │   ├── HTTPResponseParser_file.cpp
    │   └── UrlClientTest.cpp
    ├── LoadablePieces/
    │   └── CMakeLists.txt
    ├── LuaThreadStress/
    │   ├── Bindings.h
    │   ├── CMakeLists.txt
    │   ├── LuaState_Declaration.inc
    │   ├── LuaState_Typedefs.inc
    │   ├── LuaThreadStress.cpp
    │   ├── Stubs.cpp
    │   └── Test.lua
    ├── Network/
    │   ├── CMakeLists.txt
    │   ├── EchoServer.cpp
    │   ├── EnumInterfaces.cpp
    │   ├── Google.cpp
    │   └── NameLookup.cpp
    ├── NoiseTest/
    │   ├── GNUmakefile
    │   └── NoiseTest.cpp
    ├── OSSupport/
    │   ├── CMakeLists.txt
    │   └── StressEvent.cpp
    ├── SchematicFileSerializer/
    │   ├── CMakeLists.txt
    │   ├── SchematicFileSerializerTest.cpp
    │   └── Stubs.cpp
    ├── TestHelpers.h
    └── UUID/
        ├── CMakeLists.txt
        └── UUIDTest.cpp
Download .txt
Showing preview only (496K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6240 symbols across 781 files)

FILE: Server/Plugins/APIDump/prettify.js
  function S (line 2) | function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var...
  function T (line 6) | function T(a,d){function g(a){var c=a.nodeType;if(c==1){if(!b.test(a.cla...
  function H (line 7) | function H(a,d,g,b){d&&(a={a:d,e:a},g(a),b.push.apply(b,a.g))}
  function U (line 7) | function U(a){for(var d=void 0,g=a.firstChild;g;g=g.nextSibling)var b=g....
  function C (line 7) | function C(a,d){function g(a){for(var j=a.e,k=[j,"pln"],c=0,i=a.a.match(...
  function v (line 9) | function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''...
  function J (line 13) | function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.clas...
  function p (line 15) | function p(a,d){for(var g=d.length;--g>=0;){var b=d[g];F.hasOwnProperty(...
  function I (line 15) | function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*</.test(d)?"default-m...
  function K (line 15) | function K(a){var d=a.h;try{var g=T(a.c,a.i),b=g.a;
  function g (line 27) | function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity...

FILE: Tools/AnvilStats/AnvilStats.cpp
  function main (line 19) | int main(int argc, char * argv[])

FILE: Tools/AnvilStats/BiomeMap.h
  function class (line 18) | class cBiomeMap :
  function class (line 54) | class cBiomeMapFactory :

FILE: Tools/AnvilStats/Callback.h
  function class (line 32) | class cCallback abstract
  type std (line 135) | typedef std::vector<cCallback *> cCallbacks;
  function class (line 146) | class cCallbackFactory

FILE: Tools/AnvilStats/ChunkExtract.h
  function class (line 18) | class cChunkExtract :
  function class (line 46) | class cChunkExtractFactory :

FILE: Tools/AnvilStats/Globals.h
  type Int64 (line 37) | typedef long long Int64;
  type Int32 (line 38) | typedef int       Int32;
  type Int16 (line 39) | typedef short     Int16;
  type UInt64 (line 41) | typedef unsigned long long UInt64;
  type UInt32 (line 42) | typedef unsigned int       UInt32;
  type UInt16 (line 43) | typedef unsigned short     UInt16;
  type Byte (line 169) | typedef unsigned char Byte;

FILE: Tools/AnvilStats/HeightBiomeMap.h
  function class (line 18) | class cHeightBiomeMap :
  function class (line 70) | class cHeightBiomeMapFactory :

FILE: Tools/AnvilStats/HeightMap.h
  function class (line 18) | class cHeightMap :
  function class (line 68) | class cHeightMapFactory :

FILE: Tools/AnvilStats/ImageComposingCallback.cpp
  function AString (line 73) | AString cImageComposingCallback::GetFileName(int a_RegionX, int a_RegionZ)

FILE: Tools/AnvilStats/ImageComposingCallback.h
  function class (line 24) | class cImageComposingCallback :

FILE: Tools/AnvilStats/Processor.cpp
  function AString (line 581) | AString cProcessor::GetOneFileName(void)

FILE: Tools/AnvilStats/Processor.h
  function class (line 24) | class cProcessor

FILE: Tools/AnvilStats/SpringStats.h
  function class (line 18) | class cSpringStats :
  function class (line 79) | class cSpringStatsFactory :

FILE: Tools/AnvilStats/Statistics.h
  function class (line 19) | class cStatistics :
  function class (line 114) | class cStatisticsFactory :

FILE: Tools/AnvilStats/Utils.cpp
  function eEntityType (line 250) | eEntityType GetEntityType(const AString & a_EntityTypeString)
  function GetNumCores (line 275) | int GetNumCores(void)

FILE: Tools/AnvilStats/Utils.h
  type eEntityType (line 16) | enum eEntityType

FILE: Tools/BlockZapper/BlockZapper.cpp
  function ShowHelp (line 26) | void ShowHelp(const char * a_ProgramFullName)
  function main (line 50) | int main(int argc, char * argv[])

FILE: Tools/BlockZapper/Regions.h
  type cRegion (line 18) | struct cRegion
  type std (line 33) | typedef std::vector<cRegion> cRegionVector;
  function class (line 39) | class cRegions

FILE: Tools/BlockZapper/Zapper.h
  function class (line 26) | class cZapper

FILE: Tools/GeneratorPerformanceTest/GeneratorPerformanceTest.cpp
  function main (line 5) | int main(int argc, char * argv[])

FILE: Tools/GrownBiomeGenVisualiser/Globals.h
  type Int64 (line 43) | typedef long long Int64;
  type Int32 (line 44) | typedef int       Int32;
  type Int16 (line 45) | typedef short     Int16;
  type UInt64 (line 47) | typedef unsigned long long UInt64;
  type UInt32 (line 48) | typedef unsigned int       UInt32;
  type UInt16 (line 49) | typedef unsigned short     UInt16;
  type Byte (line 51) | typedef unsigned char Byte;
  type SOCKET (line 104) | typedef int SOCKET;

FILE: Tools/GrownBiomeGenVisualiser/GrownBiomeGenVisualiser.cpp
  function log (line 157) | void log(const char * a_Fmt, const Args & ... a_Args)
  function outputBitmapFile (line 168) | void outputBitmapFile(
  function initializeBiomeColors (line 224) | void initializeBiomeColors(void)
  function generateZoomLevels (line 252) | void generateZoomLevels(int a_Seed)
  function generateSmoothLevels (line 282) | void generateSmoothLevels(int a_Seed)
  function generateExamples (line 320) | void generateExamples(int a_Seed)
  function main (line 417) | int main(int argc, char ** argv)

FILE: Tools/MCADefrag/MCADefrag.cpp
  function main (line 23) | int main(int argc, char ** argv)
  function AString (line 109) | AString cMCADefrag::GetNextFileName(void)

FILE: Tools/MCADefrag/MCADefrag.h
  function class (line 24) | class cMCADefrag

FILE: Tools/MemDumpAnalysis/MemDumpAnalysis.cpp
  class cFunction (line 22) | class cFunction
    method cFunction (line 29) | cFunction(void) :
  function IsFnBlackListed (line 51) | bool IsFnBlackListed(const char * a_FnName)
  function OnStartElement (line 100) | void OnStartElement(void * a_Data, const char * a_Element, const char **...
  function OnEndElement (line 145) | void OnEndElement(void * a_Data, const char * a_Element)
  function CompareFnInt (line 159) | bool CompareFnInt(const std::pair<AString, int> & a_First, const std::pa...
  function WriteSizeStatistics (line 168) | void WriteSizeStatistics(void)
  function WriteCountStatistics (line 196) | void WriteCountStatistics(void)
  function AString (line 224) | AString HTMLEscape(const AString & a_Text)
  function WriteDotGraph (line 249) | void WriteDotGraph(void)
  function main (line 282) | int main(int argc, char * argv[])

FILE: Tools/NoiseSpeedTest/NoiseSpeedTest.cpp
  function measureClassicNoise (line 32) | static void measureClassicNoise(int a_NumIterations)
  function measureSimplexNoise (line 62) | static void measureSimplexNoise(int a_NumIterations, const char * a_Type...
  function main (line 90) | int main(int argc, char ** argv)

FILE: Tools/NoiseSpeedTest/SimplexNoise.h
  function Datatype (line 54) | inline Datatype dot(const int * g, const Datatype x, const Datatype y, c...
  function Datatype (line 62) | inline Datatype dot(const Datatype * g, const Datatype x, const Datatype...
  function datafloor (line 70) | inline int datafloor(const Datatype a_Val)
  function Datatype (line 77) | Datatype GetValueAt3D(const Datatype a_X, const Datatype a_Y, const Data...
  function Generate3D (line 229) | void Generate3D(

FILE: Tools/ProtoProxy/Connection.cpp
  function AString (line 152) | AString PrintableAbsIntTriplet(int a_X, int a_Y, int a_Z, double a_Divisor)
  type sCoords (line 165) | struct sCoords
    method sCoords (line 169) | sCoords(int a_X, int a_Y, int a_Z) : x(a_X), y(a_Y), z(a_Z) {}
  type sChunkMeta (line 176) | struct sChunkMeta
    method sChunkMeta (line 181) | sChunkMeta(int a_ChunkX, int a_ChunkZ, short a_PrimaryBitmap, short a_...
  type sSpawnData (line 2197) | struct sSpawnData
    method sSpawnData (line 2202) | sSpawnData(const AString & a_Name, const AString & a_Value, const AStr...

FILE: Tools/ProtoProxy/Connection.h
  type SOCKET (line 17) | typedef int SOCKET;
  function class (line 30) | class cConnection

FILE: Tools/ProtoProxy/ProtoProxy.cpp
  function main (line 15) | int main(int argc, char ** argv)

FILE: Tools/ProtoProxy/Server.h
  type SOCKET (line 18) | typedef int SOCKET;
  function class (line 31) | class cServer

FILE: Tools/QtBiomeVisualiser/BiomeView.cpp
  class BiomeColorsInitializer (line 97) | class BiomeColorsInitializer
    method BiomeColorsInitializer (line 100) | BiomeColorsInitializer(void)
  function QSize (line 163) | QSize BiomeView::minimumSizeHint() const
  function QSize (line 172) | QSize BiomeView::sizeHint() const

FILE: Tools/QtBiomeVisualiser/BiomeView.h
  function class (line 12) | class BiomeView :

FILE: Tools/QtBiomeVisualiser/ChunkSource.cpp
  function cBiomeGenPtr (line 53) | cBiomeGenPtr BioGenSource::getBiomeGen(int & a_Tag)
  class AnvilSource::AnvilFile (line 100) | class AnvilSource::AnvilFile
    method AnvilFile (line 112) | AnvilFile(int a_RegionX, int a_RegionZ, const AString & a_WorldPath) :
    method AString (line 124) | AString getChunkData(int a_ChunkX, int a_ChunkZ)
    method readFile (line 172) | void readFile(const AString & a_FileName)
  function AString (line 291) | AString AnvilSource::getCompressedChunkData(int a_ChunkX, int a_ChunkZ)

FILE: Tools/QtBiomeVisualiser/ChunkSource.h
  type SharedPtr (line 13) | typedef SharedPtr<cBiomeGen> cBiomeGenPtr;
  type std (line 15) | typedef std::shared_ptr<cIniFile> cIniFilePtr;
  function class (line 22) | class ChunkSource
  function class (line 40) | class BioGenSource :
  function class (line 85) | class AnvilSource :

FILE: Tools/QtBiomeVisualiser/GeneratorSetup.h
  type std (line 14) | typedef std::shared_ptr<cIniFile> cIniFilePtr;
  function class (line 20) | class GeneratorSetup :

FILE: Tools/QtBiomeVisualiser/Globals.h
  type Int64 (line 55) | typedef long long Int64;
  type Int32 (line 56) | typedef int       Int32;
  type Int16 (line 57) | typedef short     Int16;
  type UInt64 (line 59) | typedef unsigned long long UInt64;
  type UInt32 (line 60) | typedef unsigned int       UInt32;
  type UInt16 (line 61) | typedef unsigned short     UInt16;
  type Byte (line 63) | typedef unsigned char Byte;
  function LOGERROR (line 182) | void inline LOGERROR(const char * a_Format, ...)
  function class (line 211) | class cAssertFailure

FILE: Tools/QtBiomeVisualiser/MainWindow.cpp
  function QString (line 374) | QString MainWindow::getWorldName(const AString & a_Path)

FILE: Tools/QtBiomeVisualiser/MainWindow.h
  function class (line 21) | class MainWindow :

FILE: Tools/QtBiomeVisualiser/QtBiomeVisualiser.cpp
  function main (line 9) | int main(int argc, char *argv[])

FILE: Tools/QtBiomeVisualiser/QtChunk.cpp
  function EMCSBiome (line 30) | EMCSBiome Chunk::getBiome(int a_RelX, int a_RelZ)

FILE: Tools/QtBiomeVisualiser/QtChunk.h
  function class (line 9) | class Chunk
  type std (line 40) | typedef std::shared_ptr<Chunk> ChunkPtr;

FILE: Tools/QtBiomeVisualiser/Region.cpp
  function Chunk (line 17) | Chunk & Region::getRelChunk(int a_RelChunkX, int a_RelChunkZ)

FILE: Tools/QtBiomeVisualiser/Region.h
  function class (line 9) | class Region

FILE: Tools/QtBiomeVisualiser/RegionCache.cpp
  function RegionPtr (line 23) | RegionPtr RegionCache::fetch(int a_RegionX, int a_RegionZ)
  function quint32 (line 116) | quint32 RegionCache::getRegionHash(int a_RegionX, int a_RegionZ)

FILE: Tools/QtBiomeVisualiser/RegionCache.h
  type std (line 14) | typedef std::shared_ptr<Region> RegionPtr;
  function class (line 23) | class RegionCache :

FILE: Tools/QtBiomeVisualiser/RegionLoader.h
  type std (line 12) | typedef std::shared_ptr<Region> RegionPtr;
  type std (line 15) | typedef std::shared_ptr<ChunkSource> ChunkSourcePtr;
  function virtual (line 29) | virtual ~RegionLoader() {}
  function shutdown (line 32) | static void shutdown() { m_IsShuttingDown = true; }

FILE: Tools/RCONClient/Globals.h
  type Int64 (line 38) | typedef long long Int64;
  type Int32 (line 39) | typedef int       Int32;
  type Int16 (line 40) | typedef short     Int16;
  type UInt64 (line 42) | typedef unsigned long long UInt64;
  type UInt32 (line 43) | typedef unsigned int       UInt32;
  type UInt16 (line 44) | typedef unsigned short     UInt16;
  type Byte (line 46) | typedef unsigned char Byte;

FILE: Tools/RCONClient/RCONClient.cpp
  class cRCONPacketizer (line 22) | class cRCONPacketizer
  function RealMain (line 201) | int RealMain(int argc, char * argv[])
  function main (line 324) | int main(int argc, char * argv[])

FILE: Tools/ToLuaDoxy/ToLuaDoxy.cpp
  class cProcessor (line 20) | class cProcessor
    method cProcessor (line 23) | cProcessor(const AString & a_FileOut) :
    method IsGood (line 31) | bool IsGood(void) const
    method ProcessFile (line 37) | void ProcessFile(const AString & a_FileIn)
    method PushLine (line 60) | void PushLine(const AString & a_Line)
  function ParsePackageFile (line 142) | bool ParsePackageFile(const AString & a_FileName, AStrings & a_CFiles, A...
  function ProcessCFile (line 173) | void ProcessCFile(const AString & a_CFileIn, const AString & a_CFileOut)
  function main (line 188) | int main(int argc, char * argv[])

FILE: dev-docs/js/ValueMap.js
  class ValueMap (line 14) | class ValueMap {
    method constructor (line 15) | constructor() {
    method reset (line 23) | reset() {
    method chooseRandomNumber (line 38) | chooseRandomNumber() {
    method smooth (line 44) | smooth() {
    method zoom (line 89) | zoom() {
    method visualize (line 118) | visualize(context, canvas) {

FILE: dev-docs/js/grown.js
  function init (line 9) | function init() {
  function btnZoom (line 18) | function btnZoom(btn) {
  function btnSmooth (line 31) | function btnSmooth() {
  function btnReset (line 37) | function btnReset() {
  function btnAutomatic (line 45) | function btnAutomatic(target) {

FILE: src/Bindings/BlockState.cpp
  function AString (line 148) | const AString & BlockState::value(const AString & aKey) const
  function UInt32 (line 163) | UInt32 BlockState::initializeChecksum()
  function UInt32 (line 201) | UInt32 BlockState::partialChecksum(const AString & aString)

FILE: src/Bindings/BlockState.h
  function class (line 19) | class BlockState

FILE: src/Bindings/BlockTypePalette.cpp
  function findNextSeparator (line 13) | static size_t findNextSeparator(const AString & aString, size_t aStartId...
  function UInt32 (line 43) | UInt32 BlockTypePalette::index(const AString & aBlockTypeName, const Blo...
  function UInt32 (line 81) | UInt32 BlockTypePalette::count() const

FILE: src/Bindings/BlockTypePalette.h
  function class (line 36) | class BlockTypePalette

FILE: src/Bindings/BlockTypeRegistry.cpp
  function AString (line 30) | AString BlockInfo::hintValue(
  function AString (line 209) | AString BlockTypeRegistry::AlreadyRegisteredException::message(

FILE: src/Bindings/BlockTypeRegistry.h
  function class (line 24) | class BlockInfo
  function class (line 97) | class BlockTypeRegistry

FILE: src/Bindings/DeprecatedBindings.cpp
  function tolua_get_AllToLua_g_BlockLightValue (line 26) | static int tolua_get_AllToLua_g_BlockLightValue(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockSpreadLightFalloff (line 56) | static int tolua_get_AllToLua_g_BlockSpreadLightFalloff(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockTransparent (line 86) | static int tolua_get_AllToLua_g_BlockTransparent(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockOneHitDig (line 116) | static int tolua_get_AllToLua_g_BlockOneHitDig(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockPistonBreakable (line 146) | static int tolua_get_AllToLua_g_BlockPistonBreakable(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockIsSnowable (line 176) | static int tolua_get_AllToLua_g_BlockIsSnowable(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockIsSolid (line 206) | static int tolua_get_AllToLua_g_BlockIsSolid(lua_State* tolua_S)
  function tolua_get_AllToLua_g_BlockFullyOccupiesVoxel (line 236) | static int tolua_get_AllToLua_g_BlockFullyOccupiesVoxel(lua_State* tolua_S)
  function tolua_AllToLua_StringToMobType00 (line 265) | static int tolua_AllToLua_StringToMobType00(lua_State* tolua_S)
  function tolua_cBlockInfo_GetPlaceSound (line 300) | static int tolua_cBlockInfo_GetPlaceSound(lua_State * tolua_S)
  function tolua_get_cItem_m_Lore (line 321) | static int tolua_get_cItem_m_Lore(lua_State * tolua_S)
  function tolua_set_cItem_m_Lore (line 346) | static int tolua_set_cItem_m_Lore(lua_State * tolua_S)
  function tolua_cNoteEntity_GetPitch (line 373) | static int tolua_cNoteEntity_GetPitch(lua_State * tolua_S)
  function tolua_cNoteEntity_IncrementPitch (line 405) | static int tolua_cNoteEntity_IncrementPitch(lua_State * tolua_S)
  function tolua_cNoteEntity_SetPitch (line 438) | static int tolua_cNoteEntity_SetPitch(lua_State * tolua_S)
  function tolua_cWorld_SetSignLines (line 473) | static int tolua_cWorld_SetSignLines(lua_State * tolua_S)
  function tolua_cWorld_GrowTree (line 524) | static int tolua_cWorld_GrowTree(lua_State * a_LuaState)
  function tolua_cWorld_GrowTreeByBiome (line 560) | static int tolua_cWorld_GrowTreeByBiome(lua_State * a_LuaState)
  function tolua_cWorld_GrowTreeFromSapling (line 596) | static int tolua_cWorld_GrowTreeFromSapling(lua_State * a_LuaState)
  function tolua_cWorld_SetNextBlockTick (line 636) | static int tolua_cWorld_SetNextBlockTick(lua_State * tolua_S)

FILE: src/Bindings/DeprecatedBindings.h
  type lua_State (line 3) | struct lua_State
  function class (line 4) | class DeprecatedBindings

FILE: src/Bindings/LuaChunkStay.h
  function class (line 26) | class cLuaChunkStay:

FILE: src/Bindings/LuaFunctions.h
  function GetTime (line 6) | inline unsigned int GetTime()

FILE: src/Bindings/LuaJson.cpp
  class CannotSerializeException (line 29) | class CannotSerializeException:
    method CannotSerializeException (line 36) | explicit CannotSerializeException(const AString & a_ValueName, const c...
    method CannotSerializeException (line 43) | explicit CannotSerializeException(int a_ValueIndex, const char * a_Err...
    method CannotSerializeException (line 51) | explicit CannotSerializeException(const CannotSerializeException & a_P...
    method CannotSerializeException (line 59) | explicit CannotSerializeException(const CannotSerializeException & a_P...
    method AString (line 65) | const AString & GetValueName() const { return m_ValueName; }
  function PushJsonArray (line 77) | static void PushJsonArray(const Json::Value & a_Value, cLuaState & a_Lua...
  function PushJsonObject (line 99) | static void PushJsonObject(const Json::Value & a_Value, cLuaState & a_Lu...
  function PushJsonValue (line 128) | void PushJsonValue(const Json::Value & a_Value, cLuaState & a_LuaState)
  function JsonSerializeTable (line 178) | static Json::Value JsonSerializeTable(cLuaState & a_LuaState)
  function JsonSerializeValue (line 230) | static Json::Value JsonSerializeValue(cLuaState & a_LuaState)
  function tolua_cJson_Parse (line 272) | static int tolua_cJson_Parse(lua_State * a_LuaState)
  function tolua_cJson_Serialize (line 315) | static int tolua_cJson_Serialize(lua_State * a_LuaState)

FILE: src/Bindings/LuaJson.h
  function class (line 23) | class cLuaJson

FILE: src/Bindings/LuaServerHandle.h
  type std (line 21) | typedef std::shared_ptr<cLuaTCPLink> cLuaTCPLinkPtr;
  type std (line 22) | typedef std::vector<cLuaTCPLinkPtr> cLuaTCPLinkPtrs;
  type std (line 24) | typedef std::shared_ptr<cLuaServerHandle> cLuaServerHandlePtr;

FILE: src/Bindings/LuaState.cpp
  class cCanonLuaStates (line 63) | class cCanonLuaStates
    method cLuaState (line 67) | static cLuaState * GetCanonState(lua_State * a_LuaState)
    method Add (line 81) | static void Add(cLuaState & a_LuaState)
    method Remove (line 91) | static void Remove(cLuaState & a_LuaState)
    method cCanonLuaStates (line 109) | static cCanonLuaStates & GetInstance(void)
  function AString (line 154) | AString cLuaStateTracker::GetStats()
  function cLuaStateTracker (line 181) | cLuaStateTracker & cLuaStateTracker::Get()
  function AString (line 2185) | AString cLuaState::GetTypeText(int a_StackPos)
  function cLuaState (line 2467) | cLuaState * cLuaState::QueryCanonLuaState(void) const

FILE: src/Bindings/LuaState.h
  function class (line 55) | class cLuaState
  function class (line 215) | class cTrackedRef
  type std (line 272) | typedef std::unique_ptr<cTrackedRef> cTrackedRefPtr;
  type std (line 273) | typedef std::shared_ptr<cTrackedRef> cTrackedRefSharedPtr;
  function class (line 283) | class cCallback:
  type std (line 326) | typedef std::unique_ptr<cCallback> cCallbackPtr;
  type std (line 327) | typedef std::shared_ptr<cCallback> cCallbackSharedPtr;
  function class (line 332) | class cOptionalCallback:
  type std (line 356) | typedef std::unique_ptr<cOptionalCallback> cOptionalCallbackPtr;
  function class (line 367) | class cTableRef:
  type std (line 419) | typedef std::unique_ptr<cTableRef> cTableRefPtr;
  function class (line 442) | class cRet
  function class (line 449) | class cNil
  function class (line 457) | class cStackValue
  function class (line 515) | class cStackTable
  type std (line 542) | typedef std::unique_ptr<cStackTable> cStackTablePtr;
  function operator (line 559) | operator lua_State * (void) { return m_LuaState; }
  function IsValid (line 580) | bool IsValid(void) const { return (m_LuaState != nullptr); }
  function AString (line 583) | AString GetSubsystemName(void) const { return m_SubsystemName; }
  function PushCallPop (line 943) | bool PushCallPop(void)
  function GetStackValues (line 981) | bool GetStackValues(int a_StartingStackPos)
  function class (line 1039) | class cLuaStateTracker

FILE: src/Bindings/LuaTCPLink.cpp
  function AString (line 68) | AString cLuaTCPLink::GetLocalIP(void) const
  function UInt16 (line 85) | UInt16 cLuaTCPLink::GetLocalPort(void) const
  function AString (line 102) | AString cLuaTCPLink::GetRemoteIP(void) const
  function UInt16 (line 119) | UInt16 cLuaTCPLink::GetRemotePort(void) const
  function AString (line 166) | AString cLuaTCPLink::StartTLSClient(
  function AString (line 216) | AString cLuaTCPLink::StartTLSServer(

FILE: src/Bindings/LuaTCPLink.h
  type std (line 21) | typedef std::weak_ptr<cLuaServerHandle> cLuaServerHandleWPtr;

FILE: src/Bindings/LuaUDPEndpoint.cpp
  function UInt16 (line 69) | UInt16 cLuaUDPEndpoint::GetPort(void) const

FILE: src/Bindings/LuaUDPEndpoint.h
  type std (line 21) | typedef std::shared_ptr<cLuaUDPEndpoint> cLuaUDPEndpointPtr;

FILE: src/Bindings/LuaWindow.h
  type cFunctionRef (line 18) | typedef cFunctionRef<bool(cPlayer &)> cPlayerListCallback;

FILE: src/Bindings/ManualBindings.cpp
  class LuaCommandHandler (line 58) | class LuaCommandHandler:
    method LuaCommandHandler (line 62) | LuaCommandHandler(cLuaState::cCallbackPtr && a_Callback):
    method ExecuteCommand (line 67) | virtual bool ExecuteCommand(
  function tolua_Clamp (line 143) | static int tolua_Clamp(lua_State * tolua_S)
  function tolua_CompressStringZLIB (line 170) | static int tolua_CompressStringZLIB(lua_State * tolua_S)
  function tolua_UncompressStringZLIB (line 199) | static int tolua_UncompressStringZLIB(lua_State * tolua_S)
  function tolua_CompressStringGZIP (line 234) | static int tolua_CompressStringGZIP(lua_State * tolua_S)
  function tolua_InflateString (line 259) | static int tolua_InflateString(lua_State * tolua_S)
  function tolua_StringSplit (line 293) | static int tolua_StringSplit(lua_State * tolua_S)
  function tolua_StringSplitWithQuotes (line 309) | static int tolua_StringSplitWithQuotes(lua_State * tolua_S)
  function tolua_StringSplitAndTrim (line 327) | static int tolua_StringSplitAndTrim(lua_State * tolua_S)
  function LogFromLuaStack (line 351) | static void LogFromLuaStack(lua_State * tolua_S, const std::string_view ...
  function LogFromLuaStack (line 368) | static void LogFromLuaStack(lua_State * tolua_S, const eLogLevel a_LogLe...
  function tolua_LOG (line 387) | static int tolua_LOG(lua_State * tolua_S)
  function tolua_LOGINFO (line 410) | static int tolua_LOGINFO(lua_State * tolua_S)
  function tolua_LOGWARN (line 420) | static int tolua_LOGWARN(lua_State * tolua_S)
  function tolua_LOGERROR (line 430) | static int tolua_LOGERROR(lua_State * tolua_S)
  function tolua_Base64Encode (line 440) | static int tolua_Base64Encode(lua_State * tolua_S)
  function tolua_Base64Decode (line 462) | static int tolua_Base64Decode(lua_State * tolua_S)
  function cPluginLua (line 484) | cPluginLua * cManualBindings::GetLuaPlugin(lua_State * L)
  function tolua_cFile_ChangeFileExt (line 504) | static int tolua_cFile_ChangeFileExt(lua_State * tolua_S)
  function tolua_cFile_Copy (line 531) | static int tolua_cFile_Copy(lua_State * tolua_S)
  function tolua_cFile_CreateFolder (line 558) | static int tolua_cFile_CreateFolder(lua_State * tolua_S)
  function tolua_cFile_CreateFolderRecursive (line 585) | static int tolua_cFile_CreateFolderRecursive(lua_State * tolua_S)
  function tolua_cFile_Delete (line 612) | static int tolua_cFile_Delete(lua_State * tolua_S)
  function tolua_cFile_DeleteFile (line 639) | static int tolua_cFile_DeleteFile(lua_State * tolua_S)
  function tolua_cFile_DeleteFolder (line 666) | static int tolua_cFile_DeleteFolder(lua_State * tolua_S)
  function tolua_cFile_DeleteFolderContents (line 693) | static int tolua_cFile_DeleteFolderContents(lua_State * tolua_S)
  function tolua_cFile_Exists (line 720) | static int tolua_cFile_Exists(lua_State * tolua_S)
  function tolua_cFile_GetFolderContents (line 751) | static int tolua_cFile_GetFolderContents(lua_State * tolua_S)
  function tolua_cFile_GetLastModificationTime (line 780) | static int tolua_cFile_GetLastModificationTime(lua_State * tolua_S)
  function tolua_cFile_GetSize (line 807) | static int tolua_cFile_GetSize(lua_State * tolua_S)
  function tolua_cFile_IsFile (line 834) | static int tolua_cFile_IsFile(lua_State * tolua_S)
  function tolua_cFile_IsFolder (line 861) | static int tolua_cFile_IsFolder(lua_State * tolua_S)
  function tolua_cFile_ReadWholeFile (line 888) | static int tolua_cFile_ReadWholeFile(lua_State * tolua_S)
  function tolua_cFile_Rename (line 917) | static int tolua_cFile_Rename(lua_State * tolua_S)
  function tolua_cPluginManager_GetAllPlugins (line 944) | static int tolua_cPluginManager_GetAllPlugins(lua_State * tolua_S)
  function tolua_cPluginManager_GetCurrentPlugin (line 959) | static int tolua_cPluginManager_GetCurrentPlugin(lua_State * S)
  function tolua_cPluginManager_GetPlugin (line 975) | static int tolua_cPluginManager_GetPlugin(lua_State * tolua_S)
  function tolua_cPluginManager_LogStackTrace (line 987) | static int tolua_cPluginManager_LogStackTrace(lua_State * S)
  function tolua_cPluginManager_AddHook_FnRef (line 997) | static int tolua_cPluginManager_AddHook_FnRef(cPluginManager * a_PluginM...
  function tolua_cPluginManager_AddHook_DefFn (line 1050) | static int tolua_cPluginManager_AddHook_DefFn(cPluginManager * a_PluginM...
  function tolua_cPluginManager_AddHook (line 1111) | static int tolua_cPluginManager_AddHook(lua_State * tolua_S)
  function tolua_cPluginManager_ForEachCommand (line 1169) | static int tolua_cPluginManager_ForEachCommand(lua_State * tolua_S)
  function tolua_cPluginManager_ForEachConsoleCommand (line 1227) | static int tolua_cPluginManager_ForEachConsoleCommand(lua_State * tolua_S)
  function tolua_cPluginManager_BindCommand (line 1286) | static int tolua_cPluginManager_BindCommand(lua_State * a_LuaState)
  function tolua_cPluginManager_BindConsoleCommand (line 1351) | static int tolua_cPluginManager_BindConsoleCommand(lua_State * a_LuaState)
  function tolua_cPluginManager_CallPlugin (line 1416) | static int tolua_cPluginManager_CallPlugin(lua_State * tolua_S)
  function tolua_cPluginManager_ExecuteConsoleCommand (line 1486) | static int tolua_cPluginManager_ExecuteConsoleCommand(lua_State * tolua_S)
  function tolua_cPluginManager_FindPlugins (line 1520) | static int tolua_cPluginManager_FindPlugins(lua_State * tolua_S)
  function tolua_cPlayer_GetPermissions (line 1535) | static int tolua_cPlayer_GetPermissions(lua_State * tolua_S)
  function tolua_cPlayer_GetRestrictions (line 1566) | static int tolua_cPlayer_GetRestrictions(lua_State * tolua_S)
  function tolua_cPlayer_GetUUID (line 1597) | static int tolua_cPlayer_GetUUID(lua_State * tolua_S)
  function tolua_cPlayer_PlaceBlock (line 1619) | static int tolua_cPlayer_PlaceBlock(lua_State * tolua_S)
  function tolua_cPlayer_PermissionMatches (line 1654) | static int tolua_cPlayer_PermissionMatches(lua_State * tolua_S)
  function tolua_SetObjectCallback (line 1686) | static int tolua_SetObjectCallback(lua_State * tolua_S)
  class cWebTabCallback (line 1711) | class cWebTabCallback:
    method Call (line 1718) | virtual bool Call(
  function tolua_cPluginLua_AddWebTab (line 1734) | static int tolua_cPluginLua_AddWebTab(lua_State * tolua_S)
  function tolua_cPlugin_GetDirectory (line 1782) | static int tolua_cPlugin_GetDirectory(lua_State * tolua_S)
  function tolua_cPlugin_GetLocalDirectory (line 1802) | static int tolua_cPlugin_GetLocalDirectory(lua_State * tolua_S)
  function tolua_md5 (line 1822) | static int tolua_md5(lua_State * tolua_S)
  function tolua_md5_obsolete (line 1842) | static int tolua_md5_obsolete(lua_State * tolua_S)
  function tolua_md5HexString (line 1853) | static int tolua_md5HexString(lua_State * tolua_S)
  function tolua_sha1 (line 1880) | static int tolua_sha1(lua_State * tolua_S)
  function tolua_sha1HexString (line 1899) | static int tolua_sha1HexString(lua_State * tolua_S)
  function tolua_get_HTTPRequest_Params (line 1926) | static int tolua_get_HTTPRequest_Params(lua_State * a_LuaState)
  function tolua_get_HTTPRequest_PostParams (line 1944) | static int tolua_get_HTTPRequest_PostParams(lua_State * a_LuaState)
  function tolua_get_HTTPRequest_FormData (line 1962) | static int tolua_get_HTTPRequest_FormData(lua_State* a_LuaState)
  function tolua_cUrlParser_GetDefaultPort (line 1991) | static int tolua_cUrlParser_GetDefaultPort(lua_State * a_LuaState)
  function tolua_cUrlParser_IsKnownScheme (line 2020) | static int tolua_cUrlParser_IsKnownScheme(lua_State * a_LuaState)
  function tolua_cUrlParser_Parse (line 2049) | static int tolua_cUrlParser_Parse(lua_State * a_LuaState)
  function tolua_cUrlParser_ParseAuthorityPart (line 2088) | static int tolua_cUrlParser_ParseAuthorityPart(lua_State * a_LuaState)
  function tolua_cUrlParser_UrlDecode (line 2128) | static int tolua_cUrlParser_UrlDecode(lua_State * tolua_S)
  function tolua_cUrlParser_UrlEncode (line 2162) | static int tolua_cUrlParser_UrlEncode(lua_State * tolua_S)
  function tolua_cWebAdmin_AddWebTab (line 2188) | static int tolua_cWebAdmin_AddWebTab(lua_State * tolua_S)
  function tolua_cWebAdmin_GetAllWebTabs (line 2228) | static int tolua_cWebAdmin_GetAllWebTabs(lua_State * tolua_S)
  function tolua_cWebAdmin_GetPage (line 2260) | static int tolua_cWebAdmin_GetPage(lua_State * tolua_S)
  function tolua_cWebAdmin_GetURLEncodedString (line 2317) | static int tolua_cWebAdmin_GetURLEncodedString(lua_State * tolua_S)
  function tolua_cClientHandle_SendPluginMessage (line 2331) | static int tolua_cClientHandle_SendPluginMessage(lua_State * L)
  function tolua_cClientHandle_SendTimeUpdate (line 2360) | static int tolua_cClientHandle_SendTimeUpdate(lua_State * L)
  function tolua_cClientHandle_GetForgeMods (line 2390) | static int tolua_cClientHandle_GetForgeMods(lua_State * L)
  function tolua_cClientHandle_GetUUID (line 2411) | static int tolua_cClientHandle_GetUUID(lua_State * tolua_S)
  function tolua_cClientHandle_GenerateOfflineUUID (line 2436) | static int tolua_cClientHandle_GenerateOfflineUUID(lua_State * tolua_S)
  function tolua_cClientHandle_IsUUIDOnline (line 2462) | static int tolua_cClientHandle_IsUUIDOnline(lua_State * tolua_S)
  function tolua_cMobHeadEntity_SetOwner (line 2488) | static int tolua_cMobHeadEntity_SetOwner(lua_State * tolua_S)
  function tolua_cMobHeadEntity_GetOwnerUUID (line 2518) | static int tolua_cMobHeadEntity_GetOwnerUUID(lua_State * tolua_S)
  function tolua_cMojangAPI_AddPlayerNameToUUIDMapping (line 2544) | static int tolua_cMojangAPI_AddPlayerNameToUUIDMapping(lua_State * L)
  function tolua_cMojangAPI_GetPlayerNameFromUUID (line 2571) | static int tolua_cMojangAPI_GetPlayerNameFromUUID(lua_State * L)
  function tolua_cMojangAPI_GetUUIDFromPlayerName (line 2604) | static int tolua_cMojangAPI_GetUUIDFromPlayerName(lua_State * L)
  function tolua_cMojangAPI_GetUUIDsFromPlayerNames (line 2637) | static int tolua_cMojangAPI_GetUUIDsFromPlayerNames(lua_State * L)
  function tolua_cMojangAPI_MakeUUIDDashed (line 2703) | static int tolua_cMojangAPI_MakeUUIDDashed(lua_State * L)
  function tolua_cMojangAPI_MakeUUIDShort (line 2731) | static int tolua_cMojangAPI_MakeUUIDShort(lua_State * L)
  function tolua_get_cItem_m_LoreTable (line 2759) | static int tolua_get_cItem_m_LoreTable(lua_State * tolua_S)
  function tolua_cItem_EnchantByXPLevels (line 2781) | static int tolua_cItem_EnchantByXPLevels(lua_State * tolua_S)
  function tolua_set_cItem_m_LoreTable (line 2808) | static int tolua_set_cItem_m_LoreTable(lua_State * tolua_S)
  function Lua_ItemGrid_GetSlotCoords (line 2837) | static int Lua_ItemGrid_GetSlotCoords(lua_State * L)
  class cLuaBlockTracerCallbacks (line 2874) | class cLuaBlockTracerCallbacks :
    method cLuaBlockTracerCallbacks (line 2878) | cLuaBlockTracerCallbacks(cLuaState::cTableRefPtr && a_Callbacks):
    method OnNextBlock (line 2883) | virtual bool OnNextBlock(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, N...
    method OnNextBlockNoData (line 2901) | virtual bool OnNextBlockNoData(Vector3i a_BlockPos, eBlockFace a_Entry...
    method OnOutOfWorld (line 2917) | virtual bool OnOutOfWorld(Vector3d a_BlockPos) override
    method OnIntoWorld (line 2932) | virtual bool OnIntoWorld(Vector3d a_BlockPos) override
    method OnNoMoreHits (line 2946) | virtual void OnNoMoreHits(void) override
    method OnNoChunk (line 2951) | virtual void OnNoChunk(void) override
  class cLuaBlockTracerCallbacksOld (line 2967) | class cLuaBlockTracerCallbacksOld :
    method cLuaBlockTracerCallbacksOld (line 2971) | cLuaBlockTracerCallbacksOld(cLuaState::cTableRefPtr && a_Callbacks):
    method OnNextBlock (line 2976) | virtual bool OnNextBlock(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, N...
    method OnNextBlockNoData (line 2994) | virtual bool OnNextBlockNoData(Vector3i a_BlockPos, eBlockFace a_Entry...
    method OnOutOfWorld (line 3010) | virtual bool OnOutOfWorld(Vector3d a_BlockPos) override
    method OnIntoWorld (line 3025) | virtual bool OnIntoWorld(Vector3d a_BlockPos) override
  function tolua_cLineBlockTracer_FirstSolidHitTrace (line 3045) | static int tolua_cLineBlockTracer_FirstSolidHitTrace(lua_State * tolua_S)
  function tolua_cLineBlockTracer_LineOfSightTrace (line 3151) | static int tolua_cLineBlockTracer_LineOfSightTrace(lua_State * tolua_S)
  function tolua_cLineBlockTracer_Trace (line 3241) | static int tolua_cLineBlockTracer_Trace(lua_State * tolua_S)
  function tolua_cLuaWindow_new (line 3324) | static int tolua_cLuaWindow_new(lua_State * tolua_S)
  function tolua_cLuaWindow_new_local (line 3360) | static int tolua_cLuaWindow_new_local(lua_State * tolua_S)
  function tolua_cRoot_DoWithPlayerByUUID (line 3397) | static int tolua_cRoot_DoWithPlayerByUUID(lua_State * tolua_S)
  function tolua_cRoot_GetBuildCommitID (line 3444) | static int tolua_cRoot_GetBuildCommitID(lua_State * tolua_S)
  function tolua_cRoot_GetBuildDateTime (line 3455) | static int tolua_cRoot_GetBuildDateTime(lua_State * tolua_S)
  function tolua_cRoot_GetBuildID (line 3466) | static int tolua_cRoot_GetBuildID(lua_State * tolua_S)
  function tolua_cRoot_GetBuildSeriesName (line 3477) | static int tolua_cRoot_GetBuildSeriesName(lua_State * tolua_S)
  function tolua_cRoot_GetBrewingRecipe (line 3488) | static int tolua_cRoot_GetBrewingRecipe(lua_State * tolua_S)
  function tolua_cRoot_GetFurnaceRecipe (line 3537) | static int tolua_cRoot_GetFurnaceRecipe(lua_State * tolua_S)
  function tolua_cServer_RegisterForgeMod (line 3576) | static int tolua_cServer_RegisterForgeMod(lua_State * a_LuaState)
  function tolua_cServer_ScheduleTask (line 3607) | static int tolua_cServer_ScheduleTask(lua_State * a_LuaState)
  function tolua_cScoreboard_GetTeamNames (line 3649) | static int tolua_cScoreboard_GetTeamNames(lua_State * L)
  function tolua_cHopperEntity_GetOutputBlockPos (line 3673) | static int tolua_cHopperEntity_GetOutputBlockPos(lua_State * tolua_S)
  function tolua_cBoundingBox_CalcLineIntersection (line 3711) | static int tolua_cBoundingBox_CalcLineIntersection(lua_State * a_LuaState)
  function tolua_cBoundingBox_Intersect (line 3753) | static int tolua_cBoundingBox_Intersect(lua_State * a_LuaState)
  function tolua_cChunkDesc_GetBlockTypeMeta (line 3784) | static int tolua_cChunkDesc_GetBlockTypeMeta(lua_State * a_LuaState)
  function tolua_cColor_GetColor (line 3810) | static int tolua_cColor_GetColor(lua_State * tolua_S)
  function tolua_cCompositeChat_new (line 3828) | static int tolua_cCompositeChat_new(lua_State * a_LuaState)
  function tolua_cCompositeChat_new_local (line 3876) | static int tolua_cCompositeChat_new_local(lua_State * a_LuaState)
  function tolua_cCompositeChat_AddShowAchievementPart (line 3891) | static int tolua_cCompositeChat_AddShowAchievementPart(lua_State * tolua_S)
  function tolua_cCompositeChat_AddRunCommandPart (line 3929) | static int tolua_cCompositeChat_AddRunCommandPart(lua_State * tolua_S)
  function tolua_cCompositeChat_AddSuggestCommandPart (line 3966) | static int tolua_cCompositeChat_AddSuggestCommandPart(lua_State * tolua_S)
  function tolua_cCompositeChat_AddTextPart (line 4003) | static int tolua_cCompositeChat_AddTextPart(lua_State * tolua_S)
  function tolua_cCompositeChat_AddUrlPart (line 4039) | static int tolua_cCompositeChat_AddUrlPart(lua_State * tolua_S)
  function tolua_cCompositeChat_Clear (line 4076) | static int tolua_cCompositeChat_Clear(lua_State * tolua_S)
  function tolua_cCompositeChat_ParseText (line 4109) | static int tolua_cCompositeChat_ParseText(lua_State * tolua_S)
  function tolua_cCompositeChat_SetMessageType (line 4144) | static int tolua_cCompositeChat_SetMessageType(lua_State * tolua_S)
  function tolua_cCompositeChat_UnderlineUrls (line 4179) | static int tolua_cCompositeChat_UnderlineUrls(lua_State * tolua_S)
  function tolua_cCuboid_Assign (line 4209) | static int tolua_cCuboid_Assign(lua_State * tolua_S)
  function tolua_cCuboid_IsInside (line 4254) | static int tolua_cCuboid_IsInside(lua_State * tolua_S)
  function tolua_cCuboid_Move (line 4290) | static int tolua_cCuboid_Move(lua_State * tolua_S)
  function tolua_cEntity_Destroy (line 4325) | static int tolua_cEntity_Destroy(lua_State * tolua_S)
  function tolua_cEntity_IsSubmerged (line 4356) | static int tolua_cEntity_IsSubmerged(lua_State * tolua_S)
  function tolua_cEntity_IsSwimming (line 4381) | static int tolua_cEntity_IsSwimming(lua_State * tolua_S)
  function tolua_cEntity_GetPosition (line 4406) | static int tolua_cEntity_GetPosition(lua_State * tolua_S)
  function tolua_cEntity_GetSpeed (line 4428) | static int tolua_cEntity_GetSpeed(lua_State * tolua_S)
  function tolua_get_StatisticsManager_Custom (line 4450) | static int tolua_get_StatisticsManager_Custom(lua_State * tolua_S)
  function tolua_set_StatisticsManager_Custom (line 4483) | static int tolua_set_StatisticsManager_Custom(lua_State * tolua_S)

FILE: src/Bindings/ManualBindings.h
  type tolua_Error (line 18) | struct tolua_Error
  function class (line 26) | class cManualBindings

FILE: src/Bindings/ManualBindings_BlockArea.cpp
  function DoWithXYZ (line 25) | static int DoWithXYZ(lua_State * tolua_S)
  function readCuboidOverloadParams (line 86) | static int readCuboidOverloadParams(cLuaState & a_LuaState, int a_StartP...
  function readVector3iOverloadParams (line 130) | static int readVector3iOverloadParams(cLuaState & a_LuaState, int a_Star...
  function tolua_cBlockArea_Create (line 157) | static int tolua_cBlockArea_Create(lua_State * a_LuaState)
  function tolua_cBlockArea_FillRelCuboid (line 198) | static int tolua_cBlockArea_FillRelCuboid(lua_State * a_LuaState)
  function tolua_cBlockArea_GetBlockTypeMeta (line 254) | static int tolua_cBlockArea_GetBlockTypeMeta(lua_State * a_LuaState)
  function tolua_cBlockArea_GetCoordRange (line 293) | static int tolua_cBlockArea_GetCoordRange(lua_State * a_LuaState)
  function tolua_cBlockArea_GetNonAirCropRelCoords (line 324) | static int tolua_cBlockArea_GetNonAirCropRelCoords(lua_State * a_LuaState)
  function tolua_cBlockArea_GetOrigin (line 363) | static int tolua_cBlockArea_GetOrigin(lua_State * a_LuaState)
  function tolua_cBlockArea_GetRelBlockTypeMeta (line 395) | static int tolua_cBlockArea_GetRelBlockTypeMeta(lua_State * a_LuaState)
  function tolua_cBlockArea_GetSize (line 443) | static int tolua_cBlockArea_GetSize(lua_State * a_LuaState)
  function tolua_cBlockArea_LoadFromSchematicFile (line 474) | static int tolua_cBlockArea_LoadFromSchematicFile(lua_State * a_LuaState)
  function tolua_cBlockArea_LoadFromSchematicString (line 516) | static int tolua_cBlockArea_LoadFromSchematicString(lua_State * a_LuaState)
  function tolua_cBlockArea_Read (line 559) | static int tolua_cBlockArea_Read(lua_State * a_LuaState)
  function tolua_cBlockArea_RelLine (line 612) | static int tolua_cBlockArea_RelLine(lua_State * a_LuaState)
  function tolua_cBlockArea_SaveToSchematicFile (line 658) | static int tolua_cBlockArea_SaveToSchematicFile(lua_State * a_LuaState)
  function tolua_cBlockArea_SaveToSchematicString (line 700) | static int tolua_cBlockArea_SaveToSchematicString(lua_State * a_LuaState)
  function tolua_cBlockArea_Write (line 740) | static int tolua_cBlockArea_Write(lua_State * a_LuaState)
  function GetBlock (line 830) | static int GetBlock(lua_State * a_LuaState)
  function GetRelBlock (line 881) | static int GetRelBlock(lua_State * a_LuaState)
  function SetBlock (line 932) | static int SetBlock(lua_State * a_LuaState)
  function SetRelBlock (line 985) | static int SetRelBlock(lua_State * a_LuaState)
  function tolua_cBlockArea_SetBlockTypeMeta (line 1029) | static int tolua_cBlockArea_SetBlockTypeMeta(lua_State * a_LuaState)
  function tolua_cBlockArea_SetRelBlockTypeMeta (line 1077) | static int tolua_cBlockArea_SetRelBlockTypeMeta(lua_State * a_LuaState)

FILE: src/Bindings/ManualBindings_Network.cpp
  function tolua_cNetwork_Connect (line 25) | static int tolua_cNetwork_Connect(lua_State * L)
  function tolua_cNetwork_CreateUDPEndpoint (line 73) | static int tolua_cNetwork_CreateUDPEndpoint(lua_State * L)
  function tolua_cNetwork_EnumLocalIPAddresses (line 122) | static int tolua_cNetwork_EnumLocalIPAddresses(lua_State * L)
  function tolua_cNetwork_HostnameToIP (line 146) | static int tolua_cNetwork_HostnameToIP(lua_State * L)
  function tolua_cNetwork_IPToHostname (line 182) | static int tolua_cNetwork_IPToHostname(lua_State * L)
  function tolua_cNetwork_Listen (line 218) | static int tolua_cNetwork_Listen(lua_State * L)
  function tolua_collect_cServerHandle (line 273) | static int tolua_collect_cServerHandle(lua_State * L)
  function tolua_cServerHandle_Close (line 286) | static int tolua_cServerHandle_Close(lua_State * L)
  function tolua_cServerHandle_IsListening (line 314) | static int tolua_cServerHandle_IsListening(lua_State * L)
  function tolua_cTCPLink_Close (line 345) | static int tolua_cTCPLink_Close(lua_State * L)
  function tolua_cTCPLink_GetLocalIP (line 373) | static int tolua_cTCPLink_GetLocalIP(lua_State * L)
  function tolua_cTCPLink_GetLocalPort (line 401) | static int tolua_cTCPLink_GetLocalPort(lua_State * L)
  function tolua_cTCPLink_GetRemoteIP (line 429) | static int tolua_cTCPLink_GetRemoteIP(lua_State * L)
  function tolua_cTCPLink_GetRemotePort (line 457) | static int tolua_cTCPLink_GetRemotePort(lua_State * L)
  function tolua_cTCPLink_Send (line 485) | static int tolua_cTCPLink_Send(lua_State * L)
  function tolua_cTCPLink_Shutdown (line 518) | static int tolua_cTCPLink_Shutdown(lua_State * L)
  function tolua_cTCPLink_StartTLSClient (line 546) | static int tolua_cTCPLink_StartTLSClient(lua_State * L)
  function tolua_cTCPLink_StartTLSServer (line 582) | static int tolua_cTCPLink_StartTLSServer(lua_State * L)
  function tolua_collect_cUDPEndpoint (line 629) | static int tolua_collect_cUDPEndpoint(lua_State * L)
  function tolua_cUDPEndpoint_Close (line 642) | static int tolua_cUDPEndpoint_Close(lua_State * L)
  function tolua_cUDPEndpoint_EnableBroadcasts (line 670) | static int tolua_cUDPEndpoint_EnableBroadcasts(lua_State * L)
  function tolua_cUDPEndpoint_GetPort (line 698) | static int tolua_cUDPEndpoint_GetPort(lua_State * L)
  function tolua_cUDPEndpoint_IsOpen (line 726) | static int tolua_cUDPEndpoint_IsOpen(lua_State * L)
  function tolua_cUDPEndpoint_Send (line 754) | static int tolua_cUDPEndpoint_Send(lua_State * L)
  class cFullUrlClientCallbacks (line 796) | class cFullUrlClientCallbacks:
    method cFullUrlClientCallbacks (line 801) | cFullUrlClientCallbacks(cLuaState::cTableRefPtr && a_Callbacks):
    method OnConnected (line 808) | virtual void OnConnected(cTCPLink & a_Link) override
    method OnCertificateReceived (line 815) | virtual bool OnCertificateReceived() override
    method OnTlsHandshakeCompleted (line 824) | virtual void OnTlsHandshakeCompleted() override
    method OnRequestSent (line 830) | virtual void OnRequestSent() override
    method OnStatusLine (line 836) | virtual void OnStatusLine(const AString & a_HttpVersion, int a_StatusC...
    method OnHeader (line 842) | virtual void OnHeader(const AString & a_Key, const AString & a_Value) ...
    method OnHeadersFinished (line 849) | virtual void OnHeadersFinished() override
    method OnBodyData (line 855) | virtual void OnBodyData(const void * a_Data, size_t a_Size) override
    method OnBodyFinished (line 861) | virtual void OnBodyFinished() override
    method OnError (line 867) | virtual void OnError(const AString & a_ErrorMsg) override
    method OnRedirecting (line 873) | virtual void OnRedirecting(const AString & a_NewLocation) override
  class cSimpleUrlClientCallbacks (line 897) | class cSimpleUrlClientCallbacks:
    method cSimpleUrlClientCallbacks (line 902) | cSimpleUrlClientCallbacks(cLuaState::cCallbackPtr && a_Callback):
    method OnHeader (line 908) | virtual void OnHeader(const AString & a_Key, const AString & a_Value) ...
    method OnBodyData (line 914) | virtual void OnBodyData(const void * a_Data, size_t a_Size) override
    method OnBodyFinished (line 920) | virtual void OnBodyFinished() override
    method OnError (line 926) | virtual void OnError(const AString & a_ErrorMsg) override
  function tolua_cUrlClient_Request_Common (line 951) | static int tolua_cUrlClient_Request_Common(lua_State * a_LuaState, const...
  function tolua_cUrlClient_Delete (line 1018) | static int tolua_cUrlClient_Delete(lua_State * a_LuaState)
  function tolua_cUrlClient_Get (line 1033) | static int tolua_cUrlClient_Get(lua_State * a_LuaState)
  function tolua_cUrlClient_Post (line 1048) | static int tolua_cUrlClient_Post(lua_State * a_LuaState)
  function tolua_cUrlClient_Put (line 1063) | static int tolua_cUrlClient_Put(lua_State * a_LuaState)
  function tolua_cUrlClient_Request (line 1078) | static int tolua_cUrlClient_Request(lua_State * a_LuaState)

FILE: src/Bindings/ManualBindings_RankManager.cpp
  function tolua_cRankManager_AddGroup (line 18) | static int tolua_cRankManager_AddGroup(lua_State * L)
  function tolua_cRankManager_AddGroupToRank (line 47) | static int tolua_cRankManager_AddGroupToRank(lua_State * L)
  function tolua_cRankManager_AddPermissionToGroup (line 76) | static int tolua_cRankManager_AddPermissionToGroup(lua_State * L)
  function tolua_cRankManager_AddRank (line 105) | static int tolua_cRankManager_AddRank(lua_State * L)
  function tolua_cRankManager_AddRestrictionToGroup (line 134) | static int tolua_cRankManager_AddRestrictionToGroup(lua_State * L)
  function tolua_cRankManager_ClearPlayerRanks (line 163) | static int tolua_cRankManager_ClearPlayerRanks(lua_State * L)
  function tolua_cRankManager_GetAllGroups (line 184) | static int tolua_cRankManager_GetAllGroups(lua_State * L)
  function tolua_cRankManager_GetAllPermissions (line 211) | static int tolua_cRankManager_GetAllPermissions(lua_State * L)
  function tolua_cRankManager_GetAllPermissionsRestrictions (line 238) | static int tolua_cRankManager_GetAllPermissionsRestrictions(lua_State * L)
  function tolua_cRankManager_GetAllPlayerUUIDs (line 263) | static int tolua_cRankManager_GetAllPlayerUUIDs(lua_State * L)
  function tolua_cRankManager_GetAllRanks (line 298) | static int tolua_cRankManager_GetAllRanks(lua_State * L)
  function tolua_cRankManager_GetAllRestrictions (line 322) | static int tolua_cRankManager_GetAllRestrictions(lua_State * L)
  function tolua_cRankManager_GetDefaultRank (line 347) | static int tolua_cRankManager_GetDefaultRank(lua_State * L)
  function tolua_cRankManager_GetGroupPermissions (line 371) | static int tolua_cRankManager_GetGroupPermissions(lua_State * L)
  function tolua_cRankManager_GetGroupRestrictions (line 403) | static int tolua_cRankManager_GetGroupRestrictions(lua_State * L)
  function tolua_cRankManager_GetPlayerGroups (line 435) | static int tolua_cRankManager_GetPlayerGroups(lua_State * L)
  function tolua_cRankManager_GetPlayerMsgVisuals (line 467) | static int tolua_cRankManager_GetPlayerMsgVisuals(lua_State * L)
  function tolua_cRankManager_GetPlayerPermissions (line 503) | static int tolua_cRankManager_GetPlayerPermissions(lua_State * L)
  function tolua_cRankManager_GetPlayerRestrictions (line 535) | static int tolua_cRankManager_GetPlayerRestrictions(lua_State * L)
  function tolua_cRankManager_GetPlayerRankName (line 567) | static int tolua_cRankManager_GetPlayerRankName(lua_State * L)
  function tolua_cRankManager_GetPlayerName (line 599) | static int tolua_cRankManager_GetPlayerName(lua_State * L)
  function tolua_cRankManager_GetRankGroups (line 631) | static int tolua_cRankManager_GetRankGroups(lua_State * L)
  function tolua_cRankManager_GetRankPermissions (line 663) | static int tolua_cRankManager_GetRankPermissions(lua_State * L)
  function tolua_cRankManager_GetRankRestrictions (line 695) | static int tolua_cRankManager_GetRankRestrictions(lua_State * L)
  function tolua_cRankManager_GetRankVisuals (line 727) | static int tolua_cRankManager_GetRankVisuals(lua_State * L)
  function tolua_cRankManager_GroupExists (line 764) | static int tolua_cRankManager_GroupExists(lua_State * L)
  function tolua_cRankManager_IsGroupInRank (line 796) | static int tolua_cRankManager_IsGroupInRank(lua_State * L)
  function tolua_cRankManager_IsPermissionInGroup (line 828) | static int tolua_cRankManager_IsPermissionInGroup(lua_State * L)
  function tolua_cRankManager_IsRestrictionInGroup (line 860) | static int tolua_cRankManager_IsRestrictionInGroup(lua_State * L)
  function tolua_cRankManager_IsPlayerRankSet (line 892) | static int tolua_cRankManager_IsPlayerRankSet(lua_State * L)
  function tolua_cRankManager_RankExists (line 924) | static int tolua_cRankManager_RankExists(lua_State * L)
  function tolua_cRankManager_RemoveGroup (line 956) | static int tolua_cRankManager_RemoveGroup(lua_State * L)
  function tolua_cRankManager_RemoveGroupFromRank (line 985) | static int tolua_cRankManager_RemoveGroupFromRank(lua_State * L)
  function tolua_cRankManager_RemovePermissionFromGroup (line 1014) | static int tolua_cRankManager_RemovePermissionFromGroup(lua_State * L)
  function tolua_cRankManager_RemoveRestrictionFromGroup (line 1043) | static int tolua_cRankManager_RemoveRestrictionFromGroup(lua_State * L)
  function tolua_cRankManager_RemovePlayerRank (line 1072) | static int tolua_cRankManager_RemovePlayerRank(lua_State * L)
  function tolua_cRankManager_RemoveRank (line 1101) | static int tolua_cRankManager_RemoveRank(lua_State * L)
  function tolua_cRankManager_RenameGroup (line 1131) | static int tolua_cRankManager_RenameGroup(lua_State * L)
  function tolua_cRankManager_RenameRank (line 1163) | static int tolua_cRankManager_RenameRank(lua_State * L)
  function tolua_cRankManager_SetDefaultRank (line 1195) | static int tolua_cRankManager_SetDefaultRank(lua_State * L)
  function tolua_cRankManager_SetPlayerRank (line 1224) | static int tolua_cRankManager_SetPlayerRank(lua_State * L)
  function tolua_cRankManager_SetRankVisuals (line 1255) | static int tolua_cRankManager_SetRankVisuals(lua_State * L)

FILE: src/Bindings/ManualBindings_World.cpp
  function CheckParamVectorOr3Numbers (line 39) | static bool CheckParamVectorOr3Numbers(cLuaState & L, const char * a_Vec...
  function GetStackVectorOr3Numbers (line 57) | static bool GetStackVectorOr3Numbers(cLuaState & L, int a_Index, Vector3...
  function DoWithBlockEntityAt (line 72) | static int DoWithBlockEntityAt(lua_State * tolua_S)
  function ForEachInBox (line 141) | static int ForEachInBox(lua_State * tolua_S)
  function ForEachBlockEntityInChunk (line 193) | static int ForEachBlockEntityInChunk(lua_State * tolua_S)
  function tolua_cWorld_BroadcastBlockAction (line 247) | static int tolua_cWorld_BroadcastBlockAction(lua_State * tolua_S)
  function tolua_cWorld_BroadcastSoundEffect (line 299) | static int tolua_cWorld_BroadcastSoundEffect(lua_State * tolua_S)
  function tolua_cWorld_BroadcastSoundParticleEffect (line 351) | static int tolua_cWorld_BroadcastSoundParticleEffect(lua_State * tolua_S)
  function tolua_cWorld_BroadcastParticleEffect (line 403) | static int tolua_cWorld_BroadcastParticleEffect(lua_State * tolua_S)
  function tolua_cWorld_ChunkStay (line 467) | static int tolua_cWorld_ChunkStay(lua_State * tolua_S)
  function tolua_cWorld_DoExplosionAt (line 519) | static int tolua_cWorld_DoExplosionAt(lua_State * tolua_S)
  function tolua_cWorld_DoWithPlayerByUUID (line 611) | static int tolua_cWorld_DoWithPlayerByUUID(lua_State * tolua_S)
  function tolua_cWorld_DoWithNearestPlayer (line 658) | static int tolua_cWorld_DoWithNearestPlayer(lua_State * tolua_S)
  function tolua_cWorld_FastSetBlock (line 704) | static int tolua_cWorld_FastSetBlock(lua_State * tolua_S)
  function tolua_cWorld_ForEachEntityInChunk (line 763) | static int tolua_cWorld_ForEachEntityInChunk(lua_State * tolua_S)
  function tolua_cWorld_ForEachLoadedChunk (line 810) | static int tolua_cWorld_ForEachLoadedChunk(lua_State * tolua_S)
  function tolua_cWorld_GetBlock (line 864) | static int tolua_cWorld_GetBlock(lua_State * tolua_S)
  function tolua_cWorld_GetBlockBlockLight (line 920) | static int tolua_cWorld_GetBlockBlockLight(lua_State * tolua_S)
  function tolua_cWorld_GetBlockInfo (line 975) | static int tolua_cWorld_GetBlockInfo(lua_State * tolua_S)
  function tolua_cWorld_GetBlockMeta (line 1044) | static int tolua_cWorld_GetBlockMeta(lua_State * tolua_S)
  function tolua_cWorld_GetBlockSkyLight (line 1100) | static int tolua_cWorld_GetBlockSkyLight(lua_State * tolua_S)
  function tolua_cWorld_GetBlockTypeMeta (line 1155) | static int tolua_cWorld_GetBlockTypeMeta(lua_State * tolua_S)
  function tolua_cWorld_GetSignLines (line 1225) | static int tolua_cWorld_GetSignLines(lua_State * tolua_S)
  function tolua_cWorld_GetTimeOfDay (line 1269) | static int tolua_cWorld_GetTimeOfDay(lua_State * tolua_S)
  function tolua_cWorld_GetWorldAge (line 1301) | static int tolua_cWorld_GetWorldAge(lua_State * tolua_S)
  function tolua_cWorld_PrepareChunk (line 1333) | static int tolua_cWorld_PrepareChunk(lua_State * tolua_S)
  function tolua_cWorld_QueueTask (line 1386) | static int tolua_cWorld_QueueTask(lua_State * tolua_S)
  function tolua_cWorld_SetBlock (line 1427) | static int tolua_cWorld_SetBlock(lua_State * tolua_S)
  function tolua_cWorld_SetBlockMeta (line 1486) | static int tolua_cWorld_SetBlockMeta(lua_State * tolua_S)
  function tolua_cWorld_SetSignLines (line 1544) | static int tolua_cWorld_SetSignLines(lua_State * tolua_S)
  function tolua_cWorld_SetTimeOfDay (line 1584) | static int tolua_cWorld_SetTimeOfDay(lua_State * tolua_S)
  function tolua_cWorld_ScheduleTask (line 1615) | static int tolua_cWorld_ScheduleTask(lua_State * tolua_S)
  function tolua_cWorld_SpawnSplitExperienceOrbs (line 1658) | static int tolua_cWorld_SpawnSplitExperienceOrbs(lua_State* tolua_S)
  function tolua_cWorld_TryGetHeight (line 1690) | static int tolua_cWorld_TryGetHeight(lua_State * tolua_S)
  function tolua_cWorld_GetHeight (line 1733) | static int tolua_cWorld_GetHeight(lua_State * tolua_S)

FILE: src/Bindings/Plugin.cpp
  function AString (line 46) | AString cPlugin::GetLocalFolder(void) const

FILE: src/Bindings/Plugin.h
  function class (line 19) | class cPlugin

FILE: src/Bindings/PluginLua.h
  function class (line 22) | class cPluginLua:

FILE: src/Bindings/PluginManager.cpp
  function cPluginManager (line 19) | cPluginManager * cPluginManager::Get(void)
  function AString (line 1481) | AString cPluginManager::GetCommandPermission(const AString & a_Command)
  function AString (line 1710) | AString cPluginManager::GetPluginFolderName(const AString & a_PluginName)
  function AStringVector (line 1771) | AStringVector cPluginManager::GetFoldersToLoad(cSettingsRepositoryInterf...

FILE: src/Bindings/PluginManager.h
  type TakeDamageInfo (line 34) | struct TakeDamageInfo
  type std (line 36) | typedef std::shared_ptr<cPlugin> cPluginPtr;
  type std (line 37) | typedef std::vector<cPluginPtr> cPluginPtrs;
  function class (line 44) | class cPluginManager

FILE: src/BiomeDef.cpp
  function EMCSBiome (line 94) | EMCSBiome StringToBiome(const AString & a_BiomeString)
  function AString (line 126) | AString BiomeToString(int a_Biome)
  function IsBiomeNoDownfall (line 142) | bool IsBiomeNoDownfall(EMCSBiome a_Biome)
  function IsBiomeVeryCold (line 169) | bool IsBiomeVeryCold(EMCSBiome a_Biome)
  function IsBiomeCold (line 196) | bool IsBiomeCold(EMCSBiome a_Biome)
  function IsBiomeMountain (line 228) | bool IsBiomeMountain(EMCSBiome a_Biome)
  function IsBiomeMesa (line 251) | bool IsBiomeMesa(EMCSBiome a_Biome)
  function GetSnowStartHeight (line 275) | int GetSnowStartHeight(EMCSBiome a_Biome)

FILE: src/BiomeDef.h
  type EMCSBiome (line 17) | enum EMCSBiome
  type BiomeHasher (line 110) | struct BiomeHasher
  function IsBiomeOcean (line 135) | inline bool IsBiomeOcean(int a_Biome)

FILE: src/BlockArea.cpp
  function InternalMergeBlocks (line 39) | void InternalMergeBlocks(
  function MergeCombinatorOverwrite (line 85) | void MergeCombinatorOverwrite(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType...
  function MergeCombinatorFillAir (line 100) | void MergeCombinatorFillAir(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, ...
  function MergeCombinatorImprint (line 119) | void MergeCombinatorImprint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, ...
  function MergeCombinatorLake (line 138) | void MergeCombinatorLake(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIB...
  function MergeCombinatorSpongePrint (line 212) | void MergeCombinatorSpongePrint(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcTy...
  function MergeCombinatorDifference (line 231) | void MergeCombinatorDifference(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcTyp...
  function MergeCombinatorSimpleCompare (line 257) | void MergeCombinatorSimpleCompare(BLOCKTYPE & a_DstType, BLOCKTYPE a_Src...
  function MergeCombinatorMask (line 277) | void MergeCombinatorMask(BLOCKTYPE & a_DstType, BLOCKTYPE a_SrcType, NIB...
  function BLOCKTYPE (line 1710) | BLOCKTYPE cBlockArea::GetRelBlockType(int a_RelX, int a_RelY, int a_RelZ...
  function BLOCKTYPE (line 1724) | BLOCKTYPE cBlockArea::GetBlockType(int a_BlockX, int a_BlockY, int a_Blo...
  function NIBBLETYPE (line 1733) | NIBBLETYPE cBlockArea::GetRelBlockMeta(int a_RelX, int a_RelY, int a_Rel...
  function NIBBLETYPE (line 1742) | NIBBLETYPE cBlockArea::GetBlockMeta(int a_BlockX, int a_BlockY, int a_Bl...
  function NIBBLETYPE (line 1751) | NIBBLETYPE cBlockArea::GetRelBlockLight(int a_RelX, int a_RelY, int a_Re...
  function NIBBLETYPE (line 1760) | NIBBLETYPE cBlockArea::GetBlockLight(int a_BlockX, int a_BlockY, int a_B...
  function NIBBLETYPE (line 1769) | NIBBLETYPE cBlockArea::GetRelBlockSkyLight(int a_RelX, int a_RelY, int a...
  function NIBBLETYPE (line 1778) | NIBBLETYPE cBlockArea::GetBlockSkyLight(int a_BlockX, int a_BlockY, int ...
  function cCuboid (line 1877) | cCuboid cBlockArea::GetBounds(void) const
  function NIBBLETYPE (line 2230) | NIBBLETYPE cBlockArea::GetRelNibble(int a_RelX, int a_RelY, int a_RelZ, ...
  function NIBBLETYPE (line 2244) | NIBBLETYPE cBlockArea::GetNibble(int a_BlockX, int a_BlockY, int a_Block...
  function cBlockEntity (line 2685) | cBlockEntity * cBlockArea::GetBlockEntityRel(Vector3i a_RelPos)

FILE: src/BlockArea.h
  function class (line 37) | class cBlockArea

FILE: src/BlockEntities/BannerEntity.cpp
  function cItems (line 28) | cItems cBannerEntity::ConvertToPickups() const

FILE: src/BlockEntities/BannerEntity.h
  function class (line 19) | class cBannerEntity :

FILE: src/BlockEntities/BeaconEntity.h
  function class (line 19) | class cBeaconEntity :

FILE: src/BlockEntities/BedEntity.cpp
  function cItems (line 27) | cItems cBedEntity::ConvertToPickups() const

FILE: src/BlockEntities/BedEntity.h
  function class (line 15) | class cBedEntity :

FILE: src/BlockEntities/BlockEntity.cpp
  function OwnedBlockEntity (line 46) | OwnedBlockEntity cBlockEntity::Clone(const Vector3i a_Pos)
  function cItems (line 57) | cItems cBlockEntity::ConvertToPickups() const
  function OwnedBlockEntity (line 77) | OwnedBlockEntity cBlockEntity::CreateByBlockType(const BLOCKTYPE a_Block...

FILE: src/BlockEntities/BlockEntity.h
  function class (line 24) | class cBlockEntity

FILE: src/BlockEntities/BlockEntityWithItems.cpp
  function cItems (line 29) | cItems cBlockEntityWithItems::ConvertToPickups() const

FILE: src/BlockEntities/BlockEntityWithItems.h
  function virtual (line 44) | virtual cItems ConvertToPickups() const override;
  function SetSlot (line 52) | void SetSlot(int a_SlotNum,    const cItem & a_Item) { m_Contents.SetSlo...
  function SetSlot (line 53) | void SetSlot(int a_X, int a_Y, const cItem & a_Item) { m_Contents.SetSlo...
  function cItemGrid (line 61) | const cItemGrid & GetContents(void) const { return m_Contents; }

FILE: src/BlockEntities/BrewingstandEntity.h
  function class (line 19) | class cBrewingstandEntity :

FILE: src/BlockEntities/ChestEntity.cpp
  function cChestEntity (line 28) | cChestEntity & cChestEntity::GetPrimaryChest()
  function cChestEntity (line 46) | cChestEntity * cChestEntity::GetSecondaryChest()

FILE: src/BlockEntities/ChestEntity.h
  function class (line 18) | class cChestEntity :

FILE: src/BlockEntities/CommandBlockEntity.cpp
  function AString (line 70) | const AString & cCommandBlockEntity::GetCommand(void) const
  function AString (line 79) | const AString & cCommandBlockEntity::GetLastOutput(void) const
  function NIBBLETYPE (line 88) | NIBBLETYPE cCommandBlockEntity::GetResult(void) const
  class CommandBlockOutCb (line 161) | class CommandBlockOutCb :
    method CommandBlockOutCb (line 167) | CommandBlockOutCb(cCommandBlockEntity * a_CmdBlock) : m_CmdBlock(a_Cmd...
    method Out (line 169) | virtual void Out(const AString & a_Text) override

FILE: src/BlockEntities/CommandBlockEntity.h
  function class (line 20) | class cCommandBlockEntity :

FILE: src/BlockEntities/DispenserEntity.cpp
  function UInt32 (line 280) | UInt32 cDispenserEntity::SpawnProjectileFromDispenser(Vector3i a_BlockPo...
  function Vector3d (line 291) | Vector3d cDispenserEntity::GetShootVector(NIBBLETYPE a_Meta)

FILE: src/BlockEntities/DispenserEntity.h
  function class (line 11) | class cDispenserEntity :

FILE: src/BlockEntities/DropSpenserEntity.h
  function class (line 26) | class cDropSpenserEntity :

FILE: src/BlockEntities/DropperEntity.h
  function class (line 19) | class cDropperEntity :

FILE: src/BlockEntities/EnchantingTableEntity.cpp
  function cItems (line 22) | cItems cEnchantingTableEntity::ConvertToPickups() const

FILE: src/BlockEntities/EnchantingTableEntity.h
  function class (line 10) | class cEnchantingTableEntity :

FILE: src/BlockEntities/EndPortalEntity.h
  function class (line 10) | class cEndPortalEntity :

FILE: src/BlockEntities/FlowerPotEntity.cpp
  function cItems (line 26) | cItems cFlowerPotEntity::ConvertToPickups() const

FILE: src/BlockEntities/FlowerPotEntity.h
  function class (line 19) | class cFlowerPotEntity :

FILE: src/BlockEntities/FurnaceEntity.h
  function class (line 18) | class cFurnaceEntity :

FILE: src/BlockEntities/HopperEntity.cpp
  class cHopperPickupSearchCallback (line 207) | class cHopperPickupSearchCallback
    method cHopperPickupSearchCallback (line 210) | cHopperPickupSearchCallback(Vector3i a_Pos, cItemGrid & a_Contents) :
    method TrySuckPickupIn (line 239) | bool TrySuckPickupIn(cPickup & a_Pickup)
    method FoundPickupsAbove (line 271) | bool FoundPickupsAbove(void) const

FILE: src/BlockEntities/HopperEntity.h
  function class (line 19) | class cHopperEntity :

FILE: src/BlockEntities/JukeboxEntity.cpp
  function cItems (line 37) | cItems cJukeboxEntity::ConvertToPickups() const

FILE: src/BlockEntities/JukeboxEntity.h
  function class (line 13) | class cJukeboxEntity :

FILE: src/BlockEntities/MobHeadEntity.cpp
  function cItems (line 94) | cItems cMobHeadEntity::ConvertToPickups() const

FILE: src/BlockEntities/MobHeadEntity.h
  function class (line 21) | class cMobHeadEntity :

FILE: src/BlockEntities/MobSpawnerEntity.h
  function class (line 19) | class cMobSpawnerEntity :

FILE: src/BlockEntities/NoteEntity.h
  type ENUM_NOTE_INSTRUMENTS (line 10) | enum ENUM_NOTE_INSTRUMENTS
  function class (line 30) | class cNoteEntity :

FILE: src/BlockEntities/SignEntity.cpp
  function AString (line 74) | AString cSignEntity::GetLine(size_t a_Index) const

FILE: src/BlockEntities/SignEntity.h
  function class (line 19) | class cSignEntity :

FILE: src/BlockInServerPluginInterface.h
  function class (line 19) | class cBlockInServerPluginInterface :

FILE: src/BlockInfo.cpp
  function IsBlockWater (line 10) | bool IsBlockWater(BLOCKTYPE a_BlockType)
  function IsBlockIce (line 19) | bool IsBlockIce(BLOCKTYPE a_BlockType)
  function IsBlockWaterOrIce (line 40) | bool IsBlockWaterOrIce(BLOCKTYPE a_BlockType)
  function IsBlockLava (line 49) | bool IsBlockLava(BLOCKTYPE a_BlockType)
  function IsBlockLiquid (line 58) | bool IsBlockLiquid(BLOCKTYPE a_BlockType)
  function IsBlockRail (line 67) | bool IsBlockRail(BLOCKTYPE a_BlockType)
  function IsBlockTypeOfDirt (line 86) | bool IsBlockTypeOfDirt(BLOCKTYPE a_BlockType)
  function IsBlockFence (line 105) | bool IsBlockFence(BLOCKTYPE a_BlockType)
  function IsBlockShulkerBox (line 137) | bool IsBlockShulkerBox(BLOCKTYPE a_BlockType)
  function IsBlockMaterialWood (line 146) | bool IsBlockMaterialWood(BLOCKTYPE a_BlockType)
  function IsBlockMaterialPlants (line 209) | bool IsBlockMaterialPlants(BLOCKTYPE a_BlockType)
  function IsBlockMaterialVine (line 244) | bool IsBlockMaterialVine(BLOCKTYPE a_BlockType)
  function IsBlockMaterialIron (line 266) | bool IsBlockMaterialIron(BLOCKTYPE a_BlockType)
  function IsBlockMaterialLeaves (line 302) | bool IsBlockMaterialLeaves(BLOCKTYPE a_BlockType)
  function IsBlockMaterialGourd (line 311) | bool IsBlockMaterialGourd(BLOCKTYPE a_BlockType)
  function IsBlockMaterialRock (line 332) | bool IsBlockMaterialRock(BLOCKTYPE a_BlockType)
  function NIBBLETYPE (line 411) | NIBBLETYPE cBlockInfo::GetLightValue(const BLOCKTYPE Block)
  function NIBBLETYPE (line 447) | NIBBLETYPE cBlockInfo::GetSpreadLightFalloff(const BLOCKTYPE Block)

FILE: src/BlockInfo.h
  function class (line 11) | class cBlockInfo

FILE: src/BlockState.h
  type BlockState (line 5) | struct BlockState

FILE: src/BlockTracer.h
  function class (line 29) | class cBlockTracer abstract

FILE: src/BlockType.cpp
  class cBlockIDMap (line 14) | class cBlockIDMap
    type Comparator (line 17) | struct Comparator
    method cBlockIDMap (line 29) | cBlockIDMap(void)
    method Resolve (line 55) | int Resolve(const AString & a_ItemName)
    method ResolveItem (line 66) | bool ResolveItem(const AString & a_ItemName, cItem & a_Item)
    method AString (line 114) | AString Desolve(short a_ItemType, short a_ItemDamage)
    method AddToMap (line 155) | void AddToMap(const AString & a_Name, const AString & a_Value)
  function cBlockIDMap (line 183) | static cBlockIDMap & GetBlockIDMap()
    type Comparator (line 17) | struct Comparator
    method cBlockIDMap (line 29) | cBlockIDMap(void)
    method Resolve (line 55) | int Resolve(const AString & a_ItemName)
    method ResolveItem (line 66) | bool ResolveItem(const AString & a_ItemName, cItem & a_Item)
    method AString (line 114) | AString Desolve(short a_ItemType, short a_ItemDamage)
    method AddToMap (line 155) | void AddToMap(const AString & a_Name, const AString & a_Value)
  function BlockStringToType (line 212) | int BlockStringToType(const AString & a_BlockTypeString)
  function StringToItem (line 228) | bool StringToItem(const AString & a_ItemTypeString, cItem & a_Item)
  function AString (line 243) | AString ItemToString(const cItem & a_Item)
  function AString (line 252) | AString ItemTypeToString(short a_ItemType)
  function AString (line 261) | AString ItemToFullString(const cItem & a_Item)
  function cItem (line 270) | cItem GetIniItemSet(cIniFile & a_IniFile, const char * a_Section, const ...

FILE: src/BlockType.h
  type ENUM_BLOCK_TYPE (line 8) | enum ENUM_BLOCK_TYPE
  type ENUM_ITEM_TYPE (line 294) | enum ENUM_ITEM_TYPE
  type ENUM_BLOCK_META (line 531) | enum ENUM_BLOCK_META
  type ENUM_ITEM_META (line 1014) | enum ENUM_ITEM_META

FILE: src/Blocks/BlockAnvil.h
  function override (line 40) | const override
  function virtual (line 60) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockBed.cpp
  function cItems (line 160) | cItems cBlockBedHandler::ConvertToPickups(const NIBBLETYPE a_BlockMeta, ...

FILE: src/Blocks/BlockBed.h
  function Vector3i (line 31) | static Vector3i MetaDataToDirection(NIBBLETYPE a_MetaData)
  function VacateBed (line 43) | static void VacateBed(cChunkInterface & a_ChunkInterface, cPlayer & a_Pl...
  function virtual (line 102) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockBigFlower.h
  function virtual (line 51) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function IsMetaTopPart (line 93) | static bool IsMetaTopPart(NIBBLETYPE a_Meta)
  function virtual (line 102) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function override (line 120) | const override
  function virtual (line 153) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockBrewingStand.h
  function virtual (line 30) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockButton.h
  function IsButtonOn (line 27) | static bool IsButtonOn(NIBBLETYPE a_Meta)
  function OnArrowHit (line 34) | static void OnArrowHit(cWorld & a_World, const Vector3i a_Position, cons...
  function override (line 71) | const override
  function virtual (line 100) | virtual bool IsUseable(void) const override
  function eBlockFace (line 110) | inline static eBlockFace BlockMetaDataToBlockFace(NIBBLETYPE a_Meta)
  function virtual (line 132) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 179) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function QueueButtonRelease (line 187) | static void QueueButtonRelease(cWorld & a_ButtonWorld, const Vector3i a_...
  function IsButtonPressedByArrow (line 224) | static bool IsButtonPressedByArrow(cWorld & a_World, const Vector3i a_Bu...
  function Vector3d (line 248) | static Vector3d GetButtonOffsetOnBlock(NIBBLETYPE a_Meta)

FILE: src/Blocks/BlockCactus.h
  function virtual (line 67) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCake.h
  function override (line 27) | const override
  function virtual (line 52) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 62) | virtual bool IsUseable(void) const override
  function virtual (line 67) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCarpet.h
  function virtual (line 38) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCauldron.h
  function override (line 38) | const override
  function virtual (line 207) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockChest.h
  function virtual (line 22) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCobWeb.h
  function virtual (line 38) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCocoaPod.h
  function NIBBLETYPE (line 19) | static NIBBLETYPE BlockFaceToMeta(eBlockFace a_BlockFace)
  function override (line 65) | const override
  function virtual (line 77) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function eBlockFace (line 107) | static eBlockFace MetaToBlockFace(NIBBLETYPE a_Meta)
  function virtual (line 127) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCommandBlock.h
  function virtual (line 31) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockComparator.h
  function IsInSubtractionMode (line 21) | inline static bool IsInSubtractionMode(NIBBLETYPE a_Meta)
  function Vector3i (line 26) | inline static Vector3i GetFrontCoordinate(Vector3i a_Position, NIBBLETYP...
  function Vector3i (line 45) | inline static Vector3i GetSideCoordinate(Vector3i a_Position, NIBBLETYPE...
  function Vector3i (line 83) | inline static Vector3i GetRearCoordinate(Vector3i a_Position, NIBBLETYPE...
  function override (line 133) | const override
  function virtual (line 146) | virtual bool IsUseable(void) const override
  function virtual (line 155) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 164) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockConcretePowder.h
  function override (line 30) | const override
  function CheckSoaked (line 36) | static void CheckSoaked(Vector3i a_Rel, cChunk & a_Chunk)
  function virtual (line 56) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockCrops.h
  function virtual (line 35) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 119) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 135) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockDaylightSensor.h
  function override (line 28) | const override
  function virtual (line 43) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 50) | virtual bool IsUseable(void) const override

FILE: src/Blocks/BlockDeadBush.h
  function virtual (line 30) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 56) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 77) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockDirt.h
  function virtual (line 38) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockDoor.cpp
  function cBoundingBox (line 122) | cBoundingBox cBlockDoorHandler::GetPlacementCollisionBox(BLOCKTYPE a_XM,...
  function NIBBLETYPE (line 132) | NIBBLETYPE cBlockDoorHandler::MetaRotateCCW(NIBBLETYPE a_Meta) const
  function NIBBLETYPE (line 150) | NIBBLETYPE cBlockDoorHandler::MetaRotateCW(NIBBLETYPE a_Meta) const
  function NIBBLETYPE (line 168) | NIBBLETYPE cBlockDoorHandler::MetaMirrorXY(NIBBLETYPE a_Meta) const
  function NIBBLETYPE (line 202) | NIBBLETYPE cBlockDoorHandler::MetaMirrorYZ(NIBBLETYPE a_Meta) const

FILE: src/Blocks/BlockDoor.h
  function CanBeOn (line 26) | static bool CanBeOn(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
  function Vector3i (line 49) | inline static Vector3i GetRelativeDirectionToOutside(NIBBLETYPE a_BlockM...
  function IsDoorBlockType (line 61) | inline static bool IsDoorBlockType(BLOCKTYPE a_Block)
  function IsOpen (line 84) | static bool IsOpen(cChunkInterface & a_ChunkInterface, const Vector3i a_...
  function SetOpen (line 91) | static void SetOpen(cChunkInterface & a_ChunkInterface, const Vector3i a...
  function virtual (line 159) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 182) | virtual bool IsUseable(void) const override
  function virtual (line 191) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function NIBBLETYPE (line 216) | static NIBBLETYPE GetCompleteDoorMeta(cChunkInterface & a_ChunkInterface...
  function ChangeDoor (line 251) | static void ChangeDoor(cChunkInterface & a_ChunkInterface, const Vector3...
  function virtual (line 260) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockEnchantingTable.h
  function override (line 32) | const override
  function virtual (line 56) | virtual bool IsUseable(void) const override
  function virtual (line 62) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 69) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockEndPortalFrame.h
  function override (line 32) | const override
  function FindAndSetPortal (line 49) | static bool FindAndSetPortal(Vector3i a_FirstFrame, NIBBLETYPE a_Directi...
  function IsValidFrameAtPos (line 167) | static bool IsValidFrameAtPos(cChunkInterface & a_ChunkInterface, Vector...
  function IsPortalFrame (line 183) | static bool IsPortalFrame(BLOCKTYPE BlockType)
  function virtual (line 192) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockEntity.h
  function class (line 14) | class cBlockEntityHandler :

FILE: src/Blocks/BlockFarmland.h
  function TurnToDirt (line 34) | static void TurnToDirt(cChunk & a_Chunk, Vector3i a_AbsPos)
  function TurnToDirt (line 47) | static void TurnToDirt(cChunk & a_Chunk, const Vector3i a_AbsPos, const ...
  function UpperBlock (line 127) | auto UpperBlock = cChunkDef::IsValidHeight(a_RelPos.addedY(1)) ? a_Chunk...
  function override (line 153) | const override
  function IsWaterInNear (line 187) | static bool IsWaterInNear(const cChunk & a_Chunk, const Vector3i a_RelPos)
  function virtual (line 224) | virtual bool CanSustainPlant(BLOCKTYPE a_Plant) const override

FILE: src/Blocks/BlockFence.h
  function virtual (line 30) | virtual cBoundingBox GetPlacementCollisionBox(BLOCKTYPE a_XM, BLOCKTYPE ...
  function override (line 138) | const override
  function virtual (line 147) | virtual bool IsUseable(void) const override

FILE: src/Blocks/BlockFenceGate.h
  function override (line 29) | const override
  function override (line 59) | const override
  function virtual (line 68) | virtual bool IsUseable(void) const override
  function virtual (line 77) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockFire.h
  type Scratch (line 19) | struct Scratch
  function override (line 30) | const override
  function virtual (line 61) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function EvaluatePortalBorder (line 105) | static bool EvaluatePortalBorder(int X, int FoundObsidianY, int Z, int M...
  function FindAndSetPortalFrame (line 124) | static void FindAndSetPortalFrame(int X, int Y, int Z, cChunkInterface &...
  function FindPortalSliceX (line 174) | static bool FindPortalSliceX(int X1, int X2, int Y, int Z, int MaxY, cCh...
  function FindPortalSliceZ (line 213) | static bool FindPortalSliceZ(int X, int Y, int Z1, int Z2, int MaxY, cCh...
  function virtual (line 251) | virtual bool DoesIgnoreBuildCollision(const cWorld & a_World, const cIte...
  function virtual (line 256) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockFlower.h
  function virtual (line 32) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockFlowerPot.h
  function virtual (line 28) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockFluid.h
  function class (line 10) | class cBlockFluidHandler :
  function virtual (line 35) | virtual bool DoesIgnoreBuildCollision(const cWorld & a_World, const cIte...
  function override (line 62) | const override
  function TryStartFireNear (line 79) | static bool TryStartFireNear(const Vector3i a_RelPos, cChunk & a_Chunk)
  function virtual (line 130) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function virtual (line 140) | virtual bool CanSustainPlant(BLOCKTYPE a_Plant) const override
  function virtual (line 170) | virtual bool CanSustainPlant(BLOCKTYPE a_Plant) const override

FILE: src/Blocks/BlockFurnace.h
  function virtual (line 29) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockGlass.h
  function virtual (line 33) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockGlowstone.h
  function virtual (line 36) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockGrass.h
  type class (line 22) | enum class
  function virtual (line 34) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function override (line 53) | const override
  function virtual (line 88) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function TrySpreadTo (line 127) | static void TrySpreadTo(cChunk & a_Chunk, Vector3i a_RelPos)

FILE: src/Blocks/BlockGravel.h
  function virtual (line 40) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockHandler.cpp
  function cItems (line 502) | cItems cBlockHandler::ConvertToPickups(NIBBLETYPE a_BlockMeta, const cIt...
  function cBoundingBox (line 551) | cBoundingBox cBlockHandler::GetPlacementCollisionBox(BLOCKTYPE a_XM, BLO...
  function ColourID (line 584) | ColourID cBlockHandler::GetMapBaseColourID(NIBBLETYPE a_Meta) const
  function cBlockHandler (line 632) | const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)

FILE: src/Blocks/BlockHandler.h
  function class (line 25) | class cBlockHandler
  function CanSustainPlant (line 128) | bool CanSustainPlant(BLOCKTYPE a_Plant) const { return false; }
  function NIBBLETYPE (line 159) | NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const { return a_Meta; }
  function virtual (line 163) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const { return a_Meta; }
  function virtual (line 167) | virtual NIBBLETYPE MetaMirrorXY(NIBBLETYPE a_Meta) const { return a_Meta; }
  function virtual (line 171) | virtual NIBBLETYPE MetaMirrorXZ(NIBBLETYPE a_Meta) const { return a_Meta; }
  function virtual (line 175) | virtual NIBBLETYPE MetaMirrorYZ(NIBBLETYPE a_Meta) const { return a_Meta; }

FILE: src/Blocks/BlockHugeMushroom.h
  function virtual (line 44) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockIce.h
  function virtual (line 106) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockInfested.h
  function virtual (line 33) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function override (line 64) | const override
  function virtual (line 85) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockLadder.h
  function CanBePlacedOn (line 23) | static bool CanBePlacedOn(const BLOCKTYPE a_BlockType, const eBlockFace ...
  function virtual (line 56) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 69) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockLeaves.h
  function HasNearLog (line 46) | static bool HasNearLog(cBlockArea & a_Area, const Vector3i a_BlockPos)
  function virtual (line 113) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 239) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockLever.h
  function IsLeverOn (line 22) | static bool IsLeverOn(NIBBLETYPE a_BlockMeta)
  function override (line 36) | const override
  function virtual (line 51) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 61) | virtual bool IsUseable(void) const override
  function eBlockFace (line 71) | inline static eBlockFace BlockMetaDataToBlockFace(NIBBLETYPE a_Meta)
  function virtual (line 95) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 152) | virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const override
  function virtual (line 170) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const override
  function virtual (line 188) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockLilypad.h
  function virtual (line 31) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...

FILE: src/Blocks/BlockMelon.h
  function virtual (line 31) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockMobHead.h
  function virtual (line 31) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockMobSpawner.h
  function override (line 29) | const override
  function virtual (line 47) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function override (line 62) | const override

FILE: src/Blocks/BlockMushroom.h
  function virtual (line 53) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockMycelium.h
  function virtual (line 30) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockNetherWart.h
  function virtual (line 60) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 71) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockNoteBlock.h
  function override (line 27) | const override

FILE: src/Blocks/BlockObserver.h
  function Vector3i (line 17) | inline static Vector3i GetObservingFaceOffset(NIBBLETYPE a_Meta)
  function Vector3i (line 22) | inline static Vector3i GetSignalOutputOffset(NIBBLETYPE a_Meta)

FILE: src/Blocks/BlockOre.h
  function class (line 11) | class cBlockOreHandler :

FILE: src/Blocks/BlockPackedIce.h
  function virtual (line 32) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockPiston.cpp
  function Vector3i (line 21) | Vector3i cBlockPistonHandler::MetadataToOffset(NIBBLETYPE a_PistonMeta)
  function cItems (line 361) | cItems cBlockPistonHeadHandler::ConvertToPickups(const NIBBLETYPE a_Bloc...

FILE: src/Blocks/BlockPiston.h
  function eBlockFace (line 27) | static eBlockFace MetaDataToDirection(NIBBLETYPE a_MetaData)
  function IsExtended (line 52) | static inline bool IsExtended(NIBBLETYPE a_PistonMeta) { return ((a_Pist...
  function IsSticky (line 65) | static inline bool IsSticky(BLOCKTYPE a_BlockType) { return (a_BlockType...
  function CanPush (line 68) | static inline bool CanPush(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
  function virtual (line 122) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockPlant.h
  type PlantAction (line 26) | enum PlantAction
  function PlantAction (line 38) | static PlantAction HasEnoughLight(cChunk & a_Chunk, Vector3i a_RelPos)

FILE: src/Blocks/BlockPluginInterface.h
  function class (line 27) | class cBlockPluginInterface

FILE: src/Blocks/BlockPortal.h
  function override (line 37) | const override
  function virtual (line 115) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockPressurePlate.h
  function virtual (line 71) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockRail.h
  type ENUM_PURE (line 15) | enum ENUM_PURE
  function NIBBLETYPE (line 36) | static NIBBLETYPE FindMeta(cChunkInterface & a_ChunkInterface, Vector3i ...
  function IsUnstable (line 202) | static bool IsUnstable(cChunkInterface & a_ChunkInterface, Vector3i a_Pos)
  function override (line 440) | const override
  function override (line 473) | const override
  function virtual (line 489) | virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const override
  function virtual (line 526) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const override
  function virtual (line 562) | virtual NIBBLETYPE MetaMirrorXY(NIBBLETYPE a_Meta) const override
  function virtual (line 601) | virtual NIBBLETYPE MetaMirrorYZ(NIBBLETYPE a_Meta) const override
  function virtual (line 640) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockRedstoneLamp.h
  function virtual (line 29) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockRedstoneOre.h
  function override (line 29) | const override
  function override (line 44) | const override

FILE: src/Blocks/BlockRedstoneRepeater.h
  function Vector3i (line 24) | inline static Vector3i GetFrontCoordinateOffset(NIBBLETYPE a_Meta)
  function Vector3i (line 29) | inline static Vector3i GetLeftCoordinateOffset(NIBBLETYPE a_Meta)
  function Vector3i (line 47) | inline static Vector3i GetRearCoordinateOffset(NIBBLETYPE a_Meta)
  function override (line 73) | const override
  function virtual (line 100) | virtual bool IsUseable(void) const override
  function virtual (line 109) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 118) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockRedstoneWire.h
  function virtual (line 30) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockSapling.h
  function CanGrowAt (line 66) | static bool CanGrowAt(cChunk & a_Chunk, int a_RelX, int a_RelY, int a_Re...
  function virtual (line 209) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function IsLargeTree (line 215) | static bool IsLargeTree(cChunk & a_Chunk, int a_RelX, int a_RelY, int a_...

FILE: src/Blocks/BlockSignPost.h
  function virtual (line 31) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 47) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const override
  function virtual (line 56) | virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const override
  function virtual (line 65) | virtual NIBBLETYPE MetaMirrorXY(NIBBLETYPE a_Meta) const override
  function virtual (line 78) | virtual NIBBLETYPE MetaMirrorYZ(NIBBLETYPE a_Meta) const override
  function virtual (line 91) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockSlab.h
  function IsAnySlabType (line 30) | static bool IsAnySlabType(BLOCKTYPE a_BlockType)
  function virtual (line 49) | virtual bool DoesIgnoreBuildCollision(const cWorld & a_World, const cIte...
  function override (line 80) | const override
  function virtual (line 95) | virtual NIBBLETYPE MetaMirrorXZ(NIBBLETYPE a_Meta) const override
  function virtual (line 105) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function virtual (line 167) | virtual bool IsInsideBlock(Vector3d a_Position, const NIBBLETYPE a_Block...
  function BLOCKTYPE (line 202) | inline static BLOCKTYPE GetSingleSlabType(BLOCKTYPE a_BlockType)
  function virtual (line 219) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockSnow.h
  function virtual (line 27) | virtual bool DoesIgnoreBuildCollision(const cWorld & a_World, const cIte...
  function virtual (line 47) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 70) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 86) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function virtual (line 96) | virtual bool IsInsideBlock(const Vector3d a_RelPosition, const NIBBLETYP...

FILE: src/Blocks/BlockSponge.h
  function override (line 30) | const override
  function CheckSoaked (line 38) | static void CheckSoaked(Vector3i a_Rel, cChunk & a_Chunk)
  function DryUp (line 106) | static void DryUp(Vector3i a_Rel, cChunk & a_Chunk)
  function IsWet (line 112) | static bool IsWet(Vector3i a_Rel, cChunk & a_Chunk)
  function virtual (line 119) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockStairs.h
  function IsAnyStairType (line 19) | static bool IsAnyStairType(BLOCKTYPE a_Block)
  function virtual (line 54) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function IsInsideBlock (line 90) | bool IsInsideBlock(Vector3d a_RelPosition, const BLOCKTYPE a_BlockType, ...

FILE: src/Blocks/BlockStandingBanner.h
  function virtual (line 23) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 33) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockStems.h
  function virtual (line 59) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 69) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockStone.h
  function virtual (line 37) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockSugarCane.h
  function virtual (line 30) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 81) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function override (line 133) | const override

FILE: src/Blocks/BlockTNT.h
  function override (line 27) | const override
  function virtual (line 36) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockTallGrass.h
  function virtual (line 33) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 81) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockTorch.h
  function CanBePlacedOn (line 27) | static bool CanBePlacedOn(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta,...
  function virtual (line 121) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 140) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
  function virtual (line 182) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockTrapdoor.h
  function override (line 22) | IsUseable(void) const override
  function override (line 38) | const override
  function override (line 64) | const override
  function eBlockFace (line 74) | inline static eBlockFace BlockMetaDataToBlockFace(NIBBLETYPE a_Meta)
  function virtual (line 94) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockTripwire.h
  function virtual (line 30) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockTripwireHook.h
  function eBlockFace (line 19) | inline static eBlockFace MetadataToDirection(NIBBLETYPE a_Meta)
  function virtual (line 50) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockVines.h
  function virtual (line 24) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 30) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function MetaDataToDirection (line 44) | static char MetaDataToDirection(NIBBLETYPE a_MetaData)
  function IsBlockAttachable (line 61) | static bool IsBlockAttachable(BLOCKTYPE a_BlockType)
  function NIBBLETYPE (line 92) | static NIBBLETYPE GetMaxMeta(const cChunk & a_Chunk, const Vector3i a_Po...
  function virtual (line 225) | virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const override
  function virtual (line 234) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const override
  function virtual (line 243) | virtual NIBBLETYPE MetaMirrorXY(NIBBLETYPE a_Meta) const override
  function virtual (line 253) | virtual NIBBLETYPE MetaMirrorYZ(NIBBLETYPE a_Meta) const override
  function virtual (line 263) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockWallBanner.h
  function virtual (line 22) | virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cIte...
  function virtual (line 32) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function virtual (line 59) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockWallSign.h
  function virtual (line 31) | virtual bool CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, ...
  function Vector3i (line 49) | static Vector3i GetOffsetBehindTheSign(NIBBLETYPE a_BlockMeta)
  function virtual (line 66) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BlockWorkbench.h
  function override (line 30) | const override
  function virtual (line 43) | virtual bool IsUseable(void) const override
  function virtual (line 52) | virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/BroadcastInterface.h
  type class (line 12) | enum class
  function class (line 16) | class cBroadcastInterface

FILE: src/Blocks/ChunkInterface.cpp
  function BLOCKTYPE (line 23) | BLOCKTYPE cChunkInterface::GetBlock(Vector3i a_Pos)
  function NIBBLETYPE (line 32) | NIBBLETYPE cChunkInterface::GetBlockMeta(Vector3i a_Pos)

FILE: src/Blocks/ChunkInterface.h
  function class (line 21) | class cChunkInterface:

FILE: src/Blocks/Mixins/DirtLikeUnderneath.h
  function Base (line 16) | constexpr cDirtLikeUnderneath(BLOCKTYPE a_BlockType):

FILE: src/Blocks/Mixins/Mixins.h
  function virtual (line 74) | virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) const override
  function virtual (line 95) | virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) const override
  function virtual (line 116) | virtual NIBBLETYPE MetaMirrorXY(NIBBLETYPE a_Meta) const override
  function virtual (line 132) | virtual NIBBLETYPE MetaMirrorYZ(NIBBLETYPE a_Meta) const override
  function NIBBLETYPE (line 172) | static NIBBLETYPE YawToMetaData(double a_Rotation)
  function NIBBLETYPE (line 225) | static NIBBLETYPE DisplacementYawToMetaData(const Vector3d a_PlacePositi...
  function virtual (line 251) | virtual NIBBLETYPE MetaMirrorXZ(NIBBLETYPE a_Meta) const override

FILE: src/Blocks/Mixins/SolidSurfaceUnderneath.h
  function Base (line 18) | constexpr cSolidSurfaceUnderneath(BLOCKTYPE a_BlockType):

FILE: src/Blocks/WorldInterface.h
  function class (line 21) | class cWorldInterface

FILE: src/BoundingBox.cpp
  function cBoundingBox (line 117) | cBoundingBox cBoundingBox::Union(const cBoundingBox & a_Other)

FILE: src/BoundingBox.h
  function class (line 23) | class cBoundingBox

FILE: src/BrewingRecipes.h
  function class (line 14) | class cBrewingRecipes

FILE: src/Broadcaster.cpp
  function ForClientsInWorld (line 25) | void ForClientsInWorld(cWorld & a_World, const cClientHandle * a_Exclude...
  function ForClientsWithChunk (line 46) | void ForClientsWithChunk(const cChunkCoords a_ChunkCoords, cWorld & a_Wo...
  function ForClientsWithChunkAtPos (line 71) | void ForClientsWithChunkAtPos(const Vector3i a_WorldPos, cWorld & a_Worl...
  function ForClientsWithEntity (line 84) | void ForClientsWithEntity(const cEntity & a_Entity, cWorld & a_World, co...

FILE: src/ByteBuffer.cpp
  type VarInt (line 24) | namespace VarInt
  type Position (line 37) | namespace Position
  type XYZPosition (line 55) | namespace XYZPosition
  type XZYPosition (line 65) | namespace XZYPosition
  class cSingleThreadAccessChecker (line 88) | class cSingleThreadAccessChecker
    method cSingleThreadAccessChecker (line 91) | cSingleThreadAccessChecker(std::thread::id * a_ThreadID) :

FILE: src/ByteBuffer.h
  function class (line 31) | class cByteBuffer

FILE: src/ChatColor.h
  function class (line 9) | class cChatColor

FILE: src/Chunk.cpp
  class cMover (line 794) | class cMover :
    method Removed (line 797) | virtual void Removed(cClientHandle * a_Client) override
    method Added (line 802) | virtual void Added(cClientHandle * a_Client) override
    method cMover (line 810) | cMover(cEntity & a_CallbackEntity) :
  function cItems (line 974) | cItems cChunk::PickupsFromBlock(Vector3i a_RelPos, const cEntity * a_Dig...
  function cBlockEntity (line 1428) | cBlockEntity * cChunk::GetBlockEntity(Vector3i a_AbsPos)
  function cBlockEntity (line 1446) | cBlockEntity * cChunk::GetBlockEntityRel(Vector3i a_RelPos)
  function OwnedEntity (line 1612) | OwnedEntity cChunk::RemoveEntity(cEntity & a_Entity)
  function cChunk (line 1816) | cChunk * cChunk::GetNeighborChunk(int a_BlockX, int a_BlockZ)
  function cChunk (line 1828) | cChunk * cChunk::GetRelNeighborChunk(int a_RelX, int a_RelZ)
  function cChunk (line 1895) | cChunk * cChunk::GetRelNeighborChunkAdjustCoords(Vector3i & a_RelPos) const
  function Vector3i (line 1978) | Vector3i cChunk::PositionToWorldPosition(int a_RelX, int a_RelY, int a_R...
  function NIBBLETYPE (line 1987) | NIBBLETYPE cChunk::GetTimeAlteredLight(NIBBLETYPE a_Skylight) const

FILE: src/Chunk.h
  type SetChunkData (line 29) | struct SetChunkData
  function class (line 35) | class cChunk

FILE: src/ChunkData.cpp
  type SectionIndices (line 16) | struct SectionIndices
  function SectionIndices (line 22) | inline SectionIndices IndicesFromRelPos(const Vector3i a_RelPos)
  function IsCompressed (line 33) | bool IsCompressed(const size_t ElementCount)
  function ValueType (line 39) | ValueType UnpackDefaultValue(const ValueType DefaultValue)
  function ElementType (line 73) | ElementType ChunkDataStore<ElementType, ElementCount, DefaultValue>::Get...
  type ChunkDataStore<BLOCKTYPE, ChunkBlockData::SectionBlockCount, ChunkBlockData::DefaultValue> (line 232) | struct ChunkDataStore<BLOCKTYPE, ChunkBlockData::SectionBlockCount, Chun...
  type ChunkDataStore<NIBBLETYPE, ChunkBlockData::SectionMetaCount, ChunkLightData::DefaultBlockLightValue> (line 233) | struct ChunkDataStore<NIBBLETYPE, ChunkBlockData::SectionMetaCount, Chun...
  type ChunkDataStore<NIBBLETYPE, ChunkLightData::SectionLightCount, ChunkLightData::DefaultSkyLightValue> (line 234) | struct ChunkDataStore<NIBBLETYPE, ChunkLightData::SectionLightCount, Chu...

FILE: src/ChunkData.h
  type ChunkDataStore (line 20) | struct ChunkDataStore
  function class (line 55) | class ChunkBlockData
  function class (line 97) | class ChunkLightData

FILE: src/ChunkDataCallback.h
  function class (line 21) | class cChunkDataCallback
  function class (line 55) | class cChunkDataCopyCollector :

FILE: src/ChunkDef.h
  type BLOCKTYPE (line 41) | typedef unsigned char BLOCKTYPE;
  type NIBBLETYPE (line 44) | typedef unsigned char NIBBLETYPE;
  type HEIGHTTYPE (line 47) | typedef unsigned char HEIGHTTYPE;
  function class (line 56) | class cChunkCoords
  function operator (line 71) | bool operator != (const cChunkCoords & a_Other) const
  function operator (line 78) | bool operator < (const cChunkCoords & a_Other) const
  function AString (line 92) | AString ToString() const
  function class (line 119) | class cChunkDef
  function class (line 369) | class cClientDiffCallback
  function sSetBlock (line 386) | struct sSetBlock
  function GetX (line 419) | int GetX(void) const { return m_RelX + cChunkDef::Width * m_ChunkX; }
  function GetY (line 423) | int GetY(void) const { return m_RelY; }
  function GetZ (line 426) | int GetZ(void) const { return m_RelZ + cChunkDef::Width * m_ChunkZ; }
  type std (line 441) | typedef std::vector<sSetBlock> sSetBlockVector;
  type std (line 443) | typedef std::list<cChunkCoords> cChunkCoordsList;
  type std (line 444) | typedef std::vector<cChunkCoords> cChunkCoordsVector;
  function class (line 452) | class cChunkCoordsHash
  function class (line 466) | class cChunkCoordCallback
  type cCoordWithData (line 500) | typedef cCoordWithData<int>        cCoordWithInt;
  type std (line 502) | typedef std::list<cCoordWithInt>   cCoordWithIntList;
  type std (line 503) | typedef std::vector<cCoordWithInt> cCoordWithIntVector;

FILE: src/ChunkGeneratorThread.cpp
  function EMCSBiome (line 143) | EMCSBiome cChunkGeneratorThread::GetBiomeAt(int a_BlockX, int a_BlockZ)

FILE: src/ChunkGeneratorThread.h
  function class (line 49) | class cChunkSink
  type QueueItem (line 106) | struct QueueItem

FILE: src/ChunkMap.cpp
  function cChunk (line 39) | cChunk & cChunkMap::ConstructChunk(int a_ChunkX, int a_ChunkZ)
  function cChunk (line 52) | cChunk & cChunkMap::GetChunk(int a_ChunkX, int a_ChunkZ)
  function cChunk (line 69) | cChunk * cChunkMap::FindChunk(int a_ChunkX, int a_ChunkZ)
  function cChunk (line 81) | const cChunk * cChunkMap::FindChunk(int a_ChunkX, int a_ChunkZ) const
  type SetChunkData (line 215) | struct SetChunkData
  function BLOCKTYPE (line 452) | BLOCKTYPE cChunkMap::GetBlock(Vector3i a_BlockPos) const
  function NIBBLETYPE (line 476) | NIBBLETYPE cChunkMap::GetBlockMeta(Vector3i a_BlockPos) const
  function NIBBLETYPE (line 500) | NIBBLETYPE cChunkMap::GetBlockSkyLight(Vector3i a_BlockPos) const
  function NIBBLETYPE (line 519) | NIBBLETYPE cChunkMap::GetBlockBlockLight(Vector3i a_BlockPos) const
  function EMCSBiome (line 659) | EMCSBiome cChunkMap::GetBiomeAt(int a_BlockX, int a_BlockZ) const
  function cItems (line 786) | cItems cChunkMap::PickupsFromBlock(Vector3i a_BlockPos, const cEntity * ...
  function OwnedEntity (line 963) | OwnedEntity cChunkMap::RemoveEntity(cEntity & a_Entity)

FILE: src/ChunkMap.h
  type SetChunkData (line 29) | struct SetChunkData
  function class (line 39) | class cChunkMap

FILE: src/ChunkSender.cpp
  class cNotifyChunkSender (line 26) | class cNotifyChunkSender :
    method Call (line 29) | virtual void Call(cChunkCoords a_Coords, bool a_IsSuccess) override
    method cNotifyChunkSender (line 47) | cNotifyChunkSender(cChunkSender & a_ChunkSender, cWorld & a_World):

FILE: src/ChunkSender.h
  type class (line 63) | enum class
  type sChunkQueue (line 81) | struct sChunkQueue
  type sSendChunk (line 95) | struct sSendChunk

FILE: src/ChunkStay.h
  function class (line 35) | class cChunkStay

FILE: src/CircularBufferCompressor.cpp
  function ContiguousByteBufferView (line 10) | ContiguousByteBufferView CircularBufferCompressor::GetView() const
  function ContiguousByteBufferView (line 46) | ContiguousByteBufferView CircularBufferExtractor::GetView() const

FILE: src/CircularBufferCompressor.h
  function class (line 16) | class CircularBufferCompressor
  function class (line 36) | class CircularBufferExtractor

FILE: src/ClientHandle.cpp
  function AString (line 146) | AString cClientHandle::FormatChatPrefix(
  function AString (line 165) | AString cClientHandle::FormatMessageType(bool ShouldAppendChatPrefixes, ...
  function cUUID (line 198) | cUUID cClientHandle::GenerateOfflineUUID(const AString & a_Username)
  function AStringVector (line 932) | AStringVector cClientHandle::BreakApartPluginChannels(const ContiguousBy...
  function AString (line 3283) | const AString & cClientHandle::GetUsername(void) const

FILE: src/ClientHandle.h
  type StatisticsManager (line 41) | struct StatisticsManager
  type std (line 43) | typedef std::shared_ptr<cClientHandle> cClientHandlePtr;
  function virtual (line 70) | virtual ~cClientHandle() override;
  function cPlayer (line 78) | cPlayer * GetPlayer(void) { return m_Player; }
  function cUUID (line 81) | const cUUID & GetUUID(void) const { return m_UUID; }
  function SetUUID (line 86) | void SetUUID(const cUUID & a_UUID) { ASSERT(!a_UUID.IsNil()); m_UUID = a...
  function Json (line 88) | const Json::Value & GetProperties(void) const { return m_Properties; }
  function SetProperties (line 93) | void SetProperties(const Json::Value & a_Properties) { m_Properties = a_...
  function IsLoggedIn (line 137) | inline bool IsLoggedIn(void) const { return (m_State >= csAuthenticating...
  function IsPlaying (line 147) | bool IsPlaying   (void) const { return (m_State == csPlaying); }
  function IsDestroyed (line 148) | bool IsDestroyed (void) const { return (m_State == csDestroyed); }
  function GetPing (line 256) | inline short GetPing(void) const { return static_cast<short>(std::chrono...
  function GetViewDistance (line 262) | int GetViewDistance(void) const { return m_CurrentViewDistance; }
  function GetRequestedViewDistance (line 265) | int GetRequestedViewDistance(void) const { return m_RequestedViewDistanc...
  function SetLocale (line 267) | void SetLocale(const AString & a_Locale) { m_Locale = a_Locale; }
  function AString (line 268) | AString GetLocale(void) const { return m_Locale; }
  function GetUniqueID (line 270) | int GetUniqueID(void) const { return m_UniqueID; }
  function SetClientBrand (line 276) | void SetClientBrand(const AString & a_ClientBrand) { m_ClientBrand = a_C...
  function AString (line 279) | const AString & GetClientBrand(void) const { return m_ClientBrand; }
  function AStringMap (line 282) | const AStringMap & GetForgeMods(void) const { return m_ForgeMods; }
  function IsForgeClient (line 285) | bool IsForgeClient(void) const { return m_ForgeHandshake.IsForgeClient; }
  function ForgeAugmentServerListPing (line 290) | void ForgeAugmentServerListPing(Json::Value & a_Response)
  function SetIsForgeClient (line 296) | void SetIsForgeClient()
  function SetProtocolVersion (line 419) | void SetProtocolVersion(UInt32 a_ProtocolVersion) { m_ProtocolVersion = ...
  function UInt32 (line 422) | UInt32 GetProtocolVersion(void) const { return m_ProtocolVersion; }
  type std (line 431) | typedef std::set<AString> cChannels;
  type eState (line 518) | enum eState

FILE: src/Color.h
  function class (line 13) | class cColor

FILE: src/CommandOutput.h
  function class (line 15) | class cCommandOutputCallback
  function class (line 39) | class cNullCommandOutputCallback :
  function class (line 55) | class cStringAccumCommandOutputCallback:
  function class (line 79) | class cLogCommandOutputCallback :
  function class (line 92) | class cLogCommandDeleteSelfOutputCallback:

FILE: src/CompositeChat.cpp
  function AString (line 237) | AString cCompositeChat::ExtractText(void) const
  function eLogLevel (line 259) | eLogLevel cCompositeChat::MessageTypeToLogLevel(eMessageType a_MessageType)
  function AString (line 283) | AString cCompositeChat::CreateJsonString(bool a_ShouldUseChatPrefixes) c...

FILE: src/CompositeChat.h
  function class (line 33) | class cCompositeChat

FILE: src/CraftingRecipes.cpp
  function cItem (line 65) | cItem & cCraftingGrid::GetItem(int x, int y) const

FILE: src/CraftingRecipes.h
  function class (line 20) | class cCraftingGrid  // tolua_export
  function class (line 60) | class cCraftingRecipe  // tolua_export
  function class (line 117) | class cCraftingRecipes

FILE: src/Cuboid.h
  function class (line 9) | class cCuboid

FILE: src/DeadlockDetect.h
  function class (line 23) | class cDeadlockDetect:

FILE: src/Defines.cpp
  function eBlockFace (line 54) | eBlockFace MirrorBlockFaceY(eBlockFace a_BlockFace)
  function eBlockFace (line 77) | eBlockFace RotateBlockFaceCCW(eBlockFace a_BlockFace)
  function eBlockFace (line 99) | eBlockFace RotateBlockFaceCW(eBlockFace a_BlockFace)
  function eBlockFace (line 121) | eBlockFace ReverseBlockFace(eBlockFace  a_BlockFace)
  function AString (line 141) | AString BlockFaceToString(eBlockFace a_BlockFace)
  function IsValidBlock (line 160) | bool IsValidBlock(int a_BlockType)
  function IsValidItem (line 172) | bool IsValidItem(int a_ItemType)
  function eDimension (line 194) | eDimension StringToDimension(const AString & a_DimensionString)
  function AString (line 236) | AString DimensionToString(eDimension a_Dimension)
  function AString (line 267) | AString DamageTypeToString(eDamageType a_DamageType)
  function eDamageType (line 300) | eDamageType StringToDamageType(const AString & a_DamageTypeString)
  function AddFaceDirection (line 378) | void AddFaceDirection(int & a_BlockX, int & a_BlockY, int & a_BlockZ, eB...
  function Vector3i (line 392) | Vector3i AddFaceDirection(const Vector3i a_Position, const eBlockFace a_...

FILE: src/Defines.h
  type std (line 9) | typedef std::vector<int> cSlotNums;
  type eBlockFace (line 37) | enum eBlockFace
  type eClickAction (line 81) | enum eClickAction
  type eGameMode (line 124) | enum eGameMode
  type eChatType (line 148) | enum eChatType
  type eWeather (line 159) | enum eWeather
  type eMobHeadType (line 176) | enum eMobHeadType
  type eMobHeadRotation (line 190) | enum eMobHeadRotation
  type eSkinPart (line 214) | enum eSkinPart
  type eDimension (line 230) | enum eDimension
  type eDamageType (line 243) | enum eDamageType
  type eExplosionSource (line 308) | enum eExplosionSource
  type eShrapnelLevel (line 327) | enum eShrapnelLevel
  type eSpreadSource (line 338) | enum eSpreadSource
  type eMessageType (line 351) | enum eMessageType
  type class (line 379) | enum class
  type class (line 427) | enum class
  type class (line 442) | enum class
  type class (line 457) | enum class
  function EulerToVector (line 583) | inline void EulerToVector(double a_Pan, double a_Pitch, double & a_X, do...
  function VectorToEuler (line 597) | inline void VectorToEuler(double a_X, double a_Y, double a_Z, double & a...
  function T (line 617) | T Diff(T a_Val1, T a_Val2)
  function NormalizeAngleDegrees (line 629) | inline double NormalizeAngleDegrees(const double a_Degrees)
  function namespace (line 643) | namespace ItemCategory

FILE: src/EffectID.h
  type class (line 5) | enum class
  type class (line 57) | enum class

FILE: src/Enchantments.cpp
  function AString (line 97) | AString cEnchantments::ToString() const
  function cEnchantments (line 1173) | cEnchantments cEnchantments::GetRandomEnchantmentFromVector(const cWeigh...
  function cEnchantments (line 1197) | cEnchantments cEnchantments::SelectEnchantmentFromVector(const cWeighted...

FILE: src/Enchantments.h
  type cWeightedEnchantment (line 23) | struct cWeightedEnchantment
  type std (line 25) | typedef std::vector<cWeightedEnchantment> cWeightedEnchantments;
  function class (line 41) | class cEnchantments
  type cWeightedEnchantment (line 177) | struct cWeightedEnchantment

FILE: src/Endianness.h
  function Value (line 136) | Value NetworkBufToHost(const std::byte* a_Mem)

FILE: src/Entities/ArrowEntity.h
  function class (line 20) | class cArrowEntity :

FILE: src/Entities/Boat.cpp
  class cBoatCollisionCallback (line 17) | class cBoatCollisionCallback
    method cBoatCollisionCallback (line 21) | cBoatCollisionCallback(cBoat & a_Boat, cEntity * a_Attachee) :
  function AString (line 275) | AString cBoat::MaterialToString(eMaterial a_Material)
  function cItem (line 329) | cItem cBoat::MaterialToItem(eMaterial a_Material)

FILE: src/Entities/Boat.h
  function class (line 18) | class cBoat:

FILE: src/Entities/EnderCrystal.h
  function class (line 11) | class cEnderCrystal :

FILE: src/Entities/Entity.cpp
  function UInt32 (line 24) | static UInt32 GetNextUniqueID(void)
  function cEntity (line 2018) | cEntity * cEntity::GetAttached()
  function Vector3d (line 2267) | Vector3d cEntity::GetLookVector(void) const

FILE: src/Entities/Entity.h
  type TakeDamageInfo (line 59) | struct TakeDamageInfo
  function class (line 75) | class cEntity

FILE: src/Entities/EntityEffect.cpp
  function cEntityEffect (line 177) | cEntityEffect & cEntityEffect::operator =(cEntityEffect a_OtherEffect)

FILE: src/Entities/EntityEffect.h
  function class (line 6) | class cEntityEffect
  function class (line 131) | class cEntityEffectSpeed:
  function class (line 152) | class cEntityEffectSlowness:
  function class (line 173) | class cEntityEffectHaste:
  function class (line 190) | class cEntityEffectMiningFatigue:
  function class (line 207) | class cEntityEffectStrength:
  function class (line 224) | class cEntityEffectInstantHealth:
  function class (line 243) | class cEntityEffectInstantDamage:
  function class (line 262) | class cEntityEffectJumpBoost:
  function class (line 279) | class cEntityEffectNausea:
  function class (line 296) | class cEntityEffectRegeneration:
  function class (line 315) | class cEntityEffectResistance:
  function class (line 332) | class cEntityEffectFireResistance:
  function class (line 349) | class cEntityEffectWaterBreathing:
  function class (line 366) | class cEntityEffectInvisibility:
  function class (line 389) | class cEntityEffectBlindness:
  function class (line 406) | class cEntityEffectNightVision:
  function class (line 423) | class cEntityEffectHunger:
  function class (line 443) | class cEntityEffectWeakness:
  function class (line 463) | class cEntityEffectPoison:
  function class (line 483) | class cEntityEffectWither:
  function class (line 503) | class cEntityEffectHealthBoost:
  function class (line 520) | class cEntityEffectAbsorption:
  function class (line 537) | class cEntityEffectSaturation:

FILE: src/Entities/ExpBottleEntity.h
  function class (line 20) | class cExpBottleEntity :

FILE: src/Entities/ExpOrb.h
  function class (line 11) | class cExpOrb:

FILE: src/Entities/FallingBlock.h
  function class (line 11) | class cFallingBlock :

FILE: src/Entities/FireChargeEntity.h
  function class (line 20) | class cFireChargeEntity :

FILE: src/Entities/FireworkEntity.h
  function class (line 20) | class cFireworkEntity :

FILE: src/Entities/Floater.cpp
  class cFloaterEntityCollisionCallback (line 16) | class cFloaterEntityCollisionCallback
    method cFloaterEntityCollisionCallback (line 19) | cFloaterEntityCollisionCallback(cFloater * a_Floater, const Vector3d &...
    method cEntity (line 57) | cEntity * GetHitEntity(void) const { return m_HitEntity; }
    method HasHit (line 60) | bool HasHit(void) const { return (m_MinCoeff < 1); }

FILE: src/Entities/Floater.h
  function class (line 11) | class cFloater :

FILE: src/Entities/GhastFireballEntity.h
  function class (line 20) | class cGhastFireballEntity :

FILE: src/Entities/HangingEntity.h
  function class (line 11) | class cHangingEntity :

FILE: src/Entities/ItemFrame.h
  function class (line 11) | class cItemFrame :

FILE: src/Entities/LeashKnot.cpp
  function cLeashKnot (line 142) | cLeashKnot * cLeashKnot::FindKnotAtPos(cWorldInterface & a_WorldInterfac...

FILE: src/Entities/LeashKnot.h
  function class (line 13) | class cLeashKnot :

FILE: src/Entities/Minecart.cpp
  class cMinecartAttachCallback (line 29) | class cMinecartAttachCallback
    method cMinecartAttachCallback (line 32) | cMinecartAttachCallback(cMinecart & a_Minecart, cEntity * a_Attachee) :
  class cMinecartCollisionCallback (line 59) | class cMinecartCollisionCallback
    method cMinecartCollisionCallback (line 62) | cMinecartCollisionCallback(Vector3d a_Pos, double a_Height, double a_W...
    method FoundIntersection (line 104) | bool FoundIntersection(void) const
    method Vector3d (line 109) | Vector3d GetCollidedEntityPosition(void) const

FILE: src/Entities/Minecart.h
  function class (line 20) | class cMinecart :
  function cItem (line 109) | const cItem & GetContent(void) const { return m_Content; }
  function GetBlockHeight (line 110) | int GetBlockHeight(void) const { return m_ContentHeight; }
  function cItem (line 145) | const cItem & GetSlot(int a_Idx) const { return m_Contents.GetSlot(a_Idx...
  function SetSlot (line 146) | void SetSlot(int a_Idx, const cItem & a_Item) { m_Contents.SetSlot(a_Idx...
  function virtual (line 155) | virtual void OnSlotChanged(cItemGrid * a_Grid, int a_SlotNum) override
  function GetFueledTimeLeft (line 200) | int  GetFueledTimeLeft(void) const {return m_FueledTimeLeft; }
  function IsFueled (line 201) | bool IsFueled (void)         const {return m_IsFueled;}

FILE: src/Entities/Painting.h
  function class (line 11) | class cPainting :

FILE: src/Entities/Pawn.cpp
  function cEntityEffect (line 597) | cEntityEffect * cPawn::GetEntityEffect(cEntityEffect::eType a_EffectType...

FILE: src/Entities/Pawn.h
  function class (line 15) | class cPawn:

FILE: src/Entities/Pickup.cpp
  class cPickupCombiningCallback (line 22) | class cPickupCombiningCallback
    method cPickupCombiningCallback (line 25) | cPickupCombiningCallback(Vector3d a_Position, cPickup * a_Pickup) :
    method FoundMatchingPickup (line 79) | inline bool FoundMatchingPickup()

FILE: src/Entities/Pickup.h
  function class (line 18) | class cPickup :

FILE: src/Entities/Player.cpp
  function AString (line 43) | AString GetUUIDFolderName(const cUUID & a_Uuid)
  function cSlotNums (line 581) | const cSlotNums & cPlayer::GetInventoryPaintSlots(void) const
  function cWorld (line 817) | cWorld * cPlayer::GetRespawnWorld()
  function Vector3d (line 1008) | Vector3d cPlayer::GetEyePosition(void) const
  function AString (line 1077) | AString cPlayer::GetIP(void) const
  function cTeam (line 1110) | cTeam * cPlayer::UpdateTeam(void)
  function AString (line 1306) | const AString & cPlayer::GetName(void) const
  function Vector3d (line 1508) | Vector3d cPlayer::GetThrowStartPos(void) const
  function Vector3d (line 1524) | Vector3d cPlayer::GetThrowSpeed(double a_SpeedCoeff) const
  function eGameMode (line 1538) | eGameMode cPlayer::GetEffectiveGameMode(void) const
  function MTRand (line 1574) | MTRand cPlayer::GetEnchantmentRandomProvider()
  function AString (line 1658) | AString cPlayer::GetColor(void) const
  function AString (line 1674) | AString cPlayer::GetPrefix(void) const
  function AString (line 1683) | AString cPlayer::GetSuffix(void) const
  function AString (line 1692) | AString cPlayer::GetPlayerListName() const
  function cUUID (line 2438) | const cUUID & cPlayer::GetUUID(void) const
  function AString (line 2521) | AString cPlayer::GetUUIDFileName(const cUUID & a_UUID)

FILE: src/Entities/Player.h
  function class (line 27) | class cPlayer:

FILE: src/Entities/ProjectileEntity.cpp
  class cProjectileTracerCallback (line 36) | class cProjectileTracerCallback :
    method cProjectileTracerCallback (line 40) | cProjectileTracerCallback(cProjectileEntity * a_Projectile) :
    method GetSlowdownCoeff (line 46) | double GetSlowdownCoeff(void) const { return m_SlowdownCoeff; }
    method OnNextBlock (line 53) | virtual bool OnNextBlock(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, N...
  class cProjectileEntityCollisionCallback (line 123) | class cProjectileEntityCollisionCallback
    method cProjectileEntityCollisionCallback (line 126) | cProjectileEntityCollisionCallback(cProjectileEntity * a_Projectile, c...
    method cEntity (line 196) | cEntity * GetHitEntity(void) const { return m_HitEntity; }
    method GetMinCoeff (line 199) | double GetMinCoeff(void) const { return m_MinCoeff; }
    method HasHit (line 202) | bool HasHit(void) const { return (m_MinCoeff < 1); }
  function AString (line 336) | AString cProjectileEntity::GetMCAClassName(void) const

FILE: src/Entities/ProjectileEntity.h
  function class (line 20) | class cProjectileEntity :
  function eKind (line 90) | eKind GetProjectileKind(void) const { return m_ProjectileKind; }
  function UInt32 (line 95) | UInt32 GetCreatorUniqueID(void) const { return m_CreatorData.m_UniqueID; }
  function AString (line 100) | AString GetCreatorName(void) const { return m_CreatorData.m_Name; }
  function IsInGround (line 106) | bool IsInGround(void) const { return m_IsInGround; }
  function SetIsInGround (line 111) | void SetIsInGround(bool a_IsInGround) { m_IsInGround = a_IsInGround; }
  type CreatorData (line 117) | struct CreatorData

FILE: src/Entities/SplashPotionEntity.h
  function class (line 24) | class cSplashPotionEntity :

FILE: src/Entities/TNTEntity.h
  function class (line 10) | class cTNTEntity:

FILE: src/Entities/ThrownEggEntity.h
  function class (line 20) | class cThrownEggEntity :

FILE: src/Entities/ThrownEnderPearlEntity.h
  function class (line 20) | class cThrownEnderPearlEntity :

FILE: src/Entities/ThrownSnowballEntity.h
  function class (line 20) | class cThrownSnowballEntity :

FILE: src/Entities/WitherSkullEntity.h
  function class (line 20) | class cWitherSkullEntity :

FILE: src/FastRandom.cpp
  function MTRand (line 12) | MTRand & GetRandomProvider()
  function UInt32 (line 26) | UInt32 Detail::GetRandomSeed()

FILE: src/FastRandom.h
  function namespace (line 23) | namespace Detail
  function m_Engine (line 70) | m_Engine(a_SeedSeq)
  type cRandomDeviceSeeder (line 183) | struct cRandomDeviceSeeder

FILE: src/ForEachChunkProvider.h
  function class (line 24) | class cForEachChunkProvider

FILE: src/FunctionRef.h
  function Ret (line 64) | Ret ObjectFunctionCaller(void * a_Callable, Args...  a_Args)

FILE: src/FurnaceRecipe.cpp
  type cFurnaceRecipe::sFurnaceRecipeState (line 22) | struct cFurnaceRecipe::sFurnaceRecipeState

FILE: src/FurnaceRecipe.h
  function class (line 14) | class cFurnaceRecipe

FILE: src/Generating/BioGen.cpp
  function EMCSBiome (line 790) | EMCSBiome cBioGenTwoLevel::SelectBiome(int a_BiomeGroup, size_t a_BiomeI...
  class cBioGenGrown (line 928) | class cBioGenGrown:
    method cBioGenGrown (line 932) | cBioGenGrown(int a_Seed)
    method GenBiomes (line 1008) | virtual void GenBiomes(cChunkCoords a_ChunkCoords, cChunkDef::BiomeMap...
  class cBioGenProtGrown (line 1032) | class cBioGenProtGrown:
    method cBioGenProtGrown (line 1036) | cBioGenProtGrown(int a_Seed)
    method GenBiomes (line 1112) | virtual void GenBiomes(cChunkCoords a_ChunkCoords, cChunkDef::BiomeMap...
  class cBioGenPerfTest (line 1202) | class cBioGenPerfTest
    method cBioGenPerfTest (line 1205) | cBioGenPerfTest()
    method TestGen (line 1215) | void TestGen(const AString && a_GenName, cBiomeGen * a_BioGen)

FILE: src/Generating/BioGen.h
  function class (line 25) | class cBioGenConstant :
  function class (line 45) | class cBioGenCache:
  function class (line 90) | class cBioGenMulticache:
  function class (line 123) | class cBiomeGenList:
  function class (line 143) | class cBioGenCheckerboard:
  function class (line 161) | class cBioGenVoronoi:
  function class (line 188) | class cBioGenDistortedVoronoi:
  function class (line 224) | class cBioGenMultiStepMap:
  function class (line 285) | class cBioGenTwoLevel:

FILE: src/Generating/Caves.cpp
  type cCaveDefPoint (line 46) | struct cCaveDefPoint
    method cCaveDefPoint (line 53) | cCaveDefPoint(int a_BlockX, int a_BlockY, int a_BlockZ, int a_Radius) :
  class cCaveTunnel (line 69) | class cCaveTunnel
  class cStructGenWormNestCaves::cCaveSystem (line 120) | class cStructGenWormNestCaves::cCaveSystem:
  function AString (line 557) | AString cCaveTunnel::ExportAsSVG(int a_Color, int a_OffsetX, int a_Offse...
  function GetMarbleNoise (line 708) | static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise)

FILE: src/Generating/Caves.h
  function class (line 21) | class cStructGenMarbleCaves :
  function class (line 39) | class cStructGenDualRidgeCaves :
  function class (line 65) | class cStructGenWormNestCaves:

FILE: src/Generating/ChunkDesc.cpp
  function BLOCKTYPE (line 90) | BLOCKTYPE cChunkDesc::GetBlockType(int a_RelX, int a_RelY, int a_RelZ) c...
  function NIBBLETYPE (line 99) | NIBBLETYPE cChunkDesc::GetBlockMeta(int a_RelX, int a_RelY, int a_RelZ) ...
  function EMCSBiome (line 126) | EMCSBiome cChunkDesc::GetBiome(int a_RelX, int a_RelZ) const
  function HEIGHTTYPE (line 144) | HEIGHTTYPE cChunkDesc::GetHeight(int a_RelX, int a_RelZ) const
  function HEIGHTTYPE (line 397) | HEIGHTTYPE cChunkDesc::GetMaxHeight(void) const
  function HEIGHTTYPE (line 414) | HEIGHTTYPE cChunkDesc::GetMinHeight(void) const
  function cBlockEntity (line 573) | cBlockEntity * cChunkDesc::GetBlockEntity(int a_RelX, int a_RelY, int a_...

FILE: src/Generating/ChunkDesc.h
  function class (line 27) | class cChunkDesc

FILE: src/Generating/ChunkGenerator.cpp
  function EMCSBiome (line 68) | EMCSBiome cChunkGenerator::GetBiomeAt(int a_BlockX, int a_BlockZ)

FILE: src/Generating/ChunkGenerator.h
  function class (line 20) | class cChunkGenerator

FILE: src/Generating/CompoGen.h
  function class (line 26) | class cCompoGenSameBlock :
  function class (line 49) | class cCompoGenDebugBiomes :
  function class (line 65) | class cCompoGenClassic :
  function class (line 92) | class cCompoGenNether :
  function class (line 114) | class cCompoGenCache :

FILE: src/Generating/CompoGenBiomal.cpp
  class cPattern (line 25) | class cPattern
    type BlockInfo (line 28) | struct BlockInfo
    method cPattern (line 34) | constexpr cPattern(std::initializer_list<BlockInfo> a_TopBlocks)
    method BlockInfo (line 48) | const BlockInfo * Get(void) const { return m_Pattern; }
  class cCompoGenBiomal (line 160) | class cCompoGenBiomal :
    method cCompoGenBiomal (line 164) | cCompoGenBiomal(int a_Seed) :
    method ComposeTerrain (line 187) | virtual void ComposeTerrain(cChunkDesc & a_ChunkDesc, const cChunkDesc...
    method InitializeCompoGen (line 201) | virtual void InitializeCompoGen(cIniFile & a_IniFile) override
    method initMesaPattern (line 209) | void initMesaPattern(int a_Seed)
    method ComposeColumn (line 283) | void ComposeColumn(cChunkDesc & a_ChunkDesc, int a_RelX, int a_RelZ, c...
    method FillColumnPattern (line 412) | void FillColumnPattern(cChunkDesc & a_ChunkDesc, int a_RelX, int a_Rel...
    method FillColumnMesa (line 468) | void FillColumnMesa(cChunkDesc & a_ChunkDesc, int a_RelX, int a_RelZ, ...
  function CreateCompoGenBiomal (line 588) | std::unique_ptr<cTerrainCompositionGen> CreateCompoGenBiomal(int a_Seed)

FILE: src/Generating/ComposableGenerator.h
  function class (line 42) | class cBiomeGen
  function class (line 78) | class cTerrainShapeGen
  function class (line 110) | class cTerrainHeightGen
  function class (line 150) | class cTerrainCompositionGen
  function class (line 184) | class cFinishGen
  function class (line 196) | class cComposableGenerator:

FILE: src/Generating/CompositedHeiGen.h
  function class (line 19) | class cCompositedHeiGen:

FILE: src/Generating/DistortedHeightmap.h
  function class (line 25) | class cDistortedHeightmap :

FILE: src/Generating/DungeonRoomsFinisher.cpp
  class cDungeonRoom (line 27) | class cDungeonRoom:
    method cDungeonRoom (line 34) | cDungeonRoom(
    method Vector3i (line 103) | Vector3i DecodeChestCoords(int a_PosIdx, int a_SizeX, int a_SizeZ)
    method ReplaceCuboid (line 131) | void ReplaceCuboid(cChunkDesc & a_ChunkDesc, int a_StartX, int a_Start...
    method ReplaceCuboidRandom (line 158) | void ReplaceCuboidRandom(cChunkDesc & a_ChunkDesc, int a_StartX, int a...
    method TryPlaceChest (line 187) | void TryPlaceChest(cChunkDesc & a_ChunkDesc, const Vector3i & a_Chest)
    method DrawIntoChunk (line 239) | virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override

FILE: src/Generating/DungeonRoomsFinisher.h
  function class (line 19) | class cDungeonRoomsFinisher:

FILE: src/Generating/EnderDragonFightStructuresGen.h
  function class (line 12) | class cEnderDragonFightStructuresGen :

FILE: src/Generating/FinishGen.cpp
  function IsWater (line 36) | static inline bool IsWater(BLOCKTYPE a_BlockType)
  function eMonsterType (line 1702) | eMonsterType cFinishGenPassiveMobs::GetRandomMob(cChunkDesc & a_ChunkDesc)
  function AString (line 1852) | AString cFinishGenOres::OreInfosToString(const cFinishGenOres::OreInfos ...

FILE: src/Generating/FinishGen.h
  function class (line 29) | class cFinishGenSnow :
  function class (line 41) | class cFinishGenIce :
  function class (line 53) | class cFinishGenNetherClumpFoliage :
  function class (line 75) | class cFinishGenClumpTopBlock :
  function class (line 349) | class cFinishGenBottomLava :
  function class (line 370) | class cFinishGenPreSimulator :
  function class (line 403) | class cFinishGenFluidSprings :
  function class (line 429) | class cFinishGenPassiveMobs :
  function class (line 464) | class cFinishGenOres:

FILE: src/Generating/GridStructGen.cpp
  class cEmptyStructure (line 19) | class cEmptyStructure:
    method cEmptyStructure (line 26) | cEmptyStructure(int a_GridX, int a_GridZ, int a_OriginX, int a_OriginZ) :
    method DrawIntoChunk (line 32) | virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override

FILE: src/Generating/GridStructGen.h
  function class (line 44) | class cGridStructGen :

FILE: src/Generating/HeiGen.cpp
  class cHeiGenSteppy (line 22) | class cHeiGenSteppy:
    method cHeiGenSteppy (line 26) | cHeiGenSteppy(int a_Seed) :
    method GenHeightMap (line 58) | virtual void GenHeightMap(cChunkCoords a_ChunkCoords, cChunkDef::Heigh...
  function HEIGHTTYPE (line 181) | HEIGHTTYPE cHeiGenCache::GetHeightAt(int a_BlockX, int a_BlockZ)
  function HEIGHTTYPE (line 251) | HEIGHTTYPE cHeiGenMultiCache::GetHeightAt(int a_BlockX, int a_BlockZ)
  function NOISE_DATATYPE (line 562) | NOISE_DATATYPE cHeiGenBiomal::GetHeightAt(int a_RelX, int a_RelZ, int a_...
  class cHeiGenMinMax (line 630) | class cHeiGenMinMax:
    method cHeiGenMinMax (line 640) | cHeiGenMinMax(int a_Seed, cBiomeGen & a_BiomeGen):
    method GenHeightMap (line 662) | virtual void GenHeightMap(cChunkCoords a_ChunkCoords, cChunkDef::Heigh...
    method InitializeHeightGen (line 728) | virtual void InitializeHeightGen(cIniFile & a_IniFile) override
    method getBiomeMinMax (line 749) | void getBiomeMinMax(EMCSBiome a_Biome, double & a_Min, double & a_Max)

FILE: src/Generating/HeiGen.h
  function class (line 27) | class cHeiGenCache :
  function class (line 103) | class cHeiGenFlat :
  function class (line 122) | class cHeiGenClassic :
  function class (line 147) | class cHeiGenMountains :
  function class (line 169) | class cHeiGenBiomal:
  type sGenParam (line 198) | struct sGenParam

FILE: src/Generating/IntGen.h
  function ChooseRandomOne (line 154) | int ChooseRandomOne(int a_RndX, int a_RndZ, int a_Val1, int a_Val2)
  function ChooseRandomOne (line 161) | int ChooseRandomOne(int a_RndX, int a_RndZ, int a_Val1, int a_Val2, int ...
  function virtual (line 193) | virtual void GetInts(int a_MinX, int a_MinZ, typename Super::Values & a_...
  function m_Underlying (line 424) | cIntGenBeaches(Underlying a_Underlying):
  function virtual (line 430) | virtual void GetInts(int a_MinX, int a_MinZ, typename Super::Values & a_...
  function m_Underlying (line 578) | cIntGenBiomeGroupEdges(Underlying a_Underlying):
  function virtual (line 584) | virtual void GetInts(int a_MinX, int a_MinZ, typename Super::Values & a_...
  function isDesertCompatible (line 641) | inline bool isDesertCompatible(int a_BiomeGroup)
  type cBiomesInGroups (line 778) | struct cBiomesInGroups
  function isMesaCompatible (line 1375) | bool isMesaCompatible(int a_Biome)
  function isJungleCompatible (line 1399) | bool isJungleCompatible(int a_Biome)

FILE: src/Generating/MineShafts.cpp
  class cMineShaft (line 29) | class cMineShaft
    type eKind (line 32) | enum eKind
    type eDirection (line 41) | enum eDirection
    method cMineShaft (line 55) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method cMineShaft (line 61) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method DoesIntersect (line 71) | bool DoesIntersect(const cCuboid & a_Other)
  class cMineShaftDirtRoom (line 90) | class cMineShaftDirtRoom:
  class cMineShaftCorridor (line 108) | class cMineShaftCorridor:
  class cMineShaftCrossing (line 161) | class cMineShaftCrossing:
  class cMineShaftStaircase (line 189) | class cMineShaftStaircase:
    type eSlope (line 196) | enum eSlope
  class cStructGenMineShafts::cMineShaftSystem (line 233) | class cStructGenMineShafts::cMineShaftSystem:
  function cMineShaft (line 539) | cMineShaft * cMineShaftCorridor::CreateAndFit(
    type eKind (line 32) | enum eKind
    type eDirection (line 41) | enum eDirection
    method cMineShaft (line 55) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method cMineShaft (line 61) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method DoesIntersect (line 71) | bool DoesIntersect(const cCuboid & a_Other)
  function cMineShaft (line 987) | cMineShaft * cMineShaftCrossing::CreateAndFit(
    type eKind (line 32) | enum eKind
    type eDirection (line 41) | enum eDirection
    method cMineShaft (line 55) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method cMineShaft (line 61) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method DoesIntersect (line 71) | bool DoesIntersect(const cCuboid & a_Other)
  function cMineShaft (line 1129) | cMineShaft * cMineShaftStaircase::CreateAndFit(
    type eKind (line 32) | enum eKind
    type eDirection (line 41) | enum eDirection
    method cMineShaft (line 55) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method cMineShaft (line 61) | cMineShaft(cStructGenMineShafts::cMineShaftSystem & a_ParentSystem, eK...
    method DoesIntersect (line 71) | bool DoesIntersect(const cCuboid & a_Other)

FILE: src/Generating/MineShafts.h
  function class (line 18) | class cStructGenMineShafts :

FILE: src/Generating/Noise3DGenerator.cpp
  class cInterpolNoiseSpeedTest (line 65) | class cInterpolNoiseSpeedTest
    method cInterpolNoiseSpeedTest (line 68) | cInterpolNoiseSpeedTest(void)
    method TestSpeed3D (line 77) | void TestSpeed3D(void)
    method TestSpeed2D (line 111) | void TestSpeed2D(void)

FILE: src/Generating/Noise3DGenerator.h
  function class (line 23) | class cNoise3DGenerator:

FILE: src/Generating/PieceGeneratorBFSTree.cpp
  function cPlacedPiecePtr (line 33) | cPlacedPiecePtr cPieceGeneratorBFSTree::PlaceStartingPiece(int a_BlockX,...

FILE: src/Generating/PieceGeneratorBFSTree.h
  function class (line 19) | class cPieceGeneratorBFSTree

FILE: src/Generating/PieceModifier.cpp
  class cPieceModifierRandomizeBlocks (line 21) | class cPieceModifierRandomizeBlocks:
    method cPieceModifierRandomizeBlocks (line 25) | cPieceModifierRandomizeBlocks(void) :
    method InitializeFromString (line 30) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method ParseMeta (line 181) | bool ParseMeta(const AString & a_Meta, std::array<int, 4> & a_ParsedMe...
    method Modify (line 227) | virtual void Modify(cBlockArea & a_Image, const Vector3i a_PiecePos, c...
    method AssignSeed (line 280) | virtual void AssignSeed(int a_Seed) override
  function CreatePieceModifierFromString (line 315) | bool CreatePieceModifierFromString(const AString & a_Definition, std::sh...

FILE: src/Generating/PieceModifier.h
  function class (line 25) | class cRandomizedBlock
  type std (line 45) | typedef std::vector<cRandomizedBlock> cRandomizedBlocks;

FILE: src/Generating/PiecePool.cpp
  function Vector3i (line 73) | Vector3i cPiece::RotatePos(const Vector3i & a_Pos, int a_NumCCWRotations...
  function cCuboid (line 152) | cCuboid cPiece::RotateHitBoxToConnector(
  function cCuboid (line 168) | cCuboid cPiece::RotateMoveHitBox(int a_NumCCWRotations, int a_MoveX, int...
  function Vector3i (line 208) | Vector3i cPiece::cConnector::AddDirection(const Vector3i & a_Pos, eDirec...

FILE: src/Generating/PiecePool.h
  function class (line 20) | class cPiece
  type std (line 262) | typedef std::vector<cPiece *> cPieces;
  function class (line 277) | class cPiecePool
  function class (line 327) | class cPlacedPiece
  type std (line 369) | typedef std::unique_ptr<cPlacedPiece> cPlacedPiecePtr;
  type std (line 370) | typedef std::vector<cPlacedPiecePtr> cPlacedPieces;

FILE: src/Generating/PieceStructuresGen.cpp
  class cPieceStructuresGen::cGen (line 16) | class cPieceStructuresGen::cGen:
    method cGen (line 23) | cGen(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightG...
    method LoadFromFile (line 37) | bool LoadFromFile(const AString & a_FileName)
    method cStructurePtr (line 63) | virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_...
    type cConnection (line 75) | struct cConnection
    type cFreeConnector (line 88) | struct cFreeConnector

FILE: src/Generating/PieceStructuresGen.h
  function class (line 24) | class cPieceStructuresGen:

FILE: src/Generating/Prefab.cpp
  function Vector3i (line 503) | Vector3i cPrefab::GetSize(void) const
  function cCuboid (line 512) | cCuboid cPrefab::GetHitBox(void) const

FILE: src/Generating/Prefab.h
  function class (line 31) | class cPrefab :

FILE: src/Generating/PrefabPiecePool.cpp
  function AString (line 703) | AString cPrefabPiecePool::GetMetadata(const AString & a_ParamName) const
  function cPieces (line 752) | cPieces cPrefabPiecePool::GetPiecesWithConnector(int a_ConnectorType)
  function cPieces (line 761) | cPieces cPrefabPiecePool::GetStartingPieces(void)

FILE: src/Generating/PrefabPiecePool.h
  function class (line 26) | class cPrefabPiecePool :

FILE: src/Generating/ProtIntGen.h
  function class (line 44) | class cProtIntGen
  function class (line 70) | class cProtIntGenWithNoise:
  function class (line 111) | class cProtIntGenChoice:
  function class (line 148) | class cProtIntGenLandOcean:
  function class (line 192) | class cProtIntGenZoom:
  function class (line 263) | class cProtIntGenSmooth:
  function class (line 337) | class cProtIntGenAvgValues:
  function class (line 382) | class cProtIntGenAvg4Values:
  function virtual (line 446) | virtual void GetInts(int a_MinX, int a_MinZ, size_t a_SizeX, size_t a_Si...
  function class (line 481) | class cProtIntGenRndChoice:
  function class (line 529) | class cProtIntGenAddRnd:
  function class (line 573) | class cProtIntGenRndAvg:
  function class (line 631) | class cProtIntGenRndBetween:
  function class (line 688) | class cProtIntGenBeaches:
  function class (line 788) | class cProtIntGenAddIslands:
  function class (line 837) | class cProtIntGenBiomeGroupEdges:
  function class (line 935) | class cProtIntGenBiomes:
  type cBiomesInGroups (line 1044) | struct cBiomesInGroups
  function class (line 1060) | class cProtIntGenReplaceRandomly:
  function class (line 1126) | class cProtIntGenMixRivers:
  function class (line 1191) | class cProtIntGenRiver:
  function class (line 1248) | class cProtIntGenAddToOcean:
  function class (line 1339) | class cProtIntGenSetRandomly:
  function class (line 1389) | class cProtIntGenRareBiomeGroups:
  function class (line 1438) | class cProtIntGenAlternateBiomes:
  function class (line 1504) | class cProtIntGenBiomeEdges:
  function isMesaCompatible (line 1614) | bool isMesaCompatible(int a_Biome)
  function isJungleCompatible (line 1638) | bool isJungleCompatible(int a_Biome)
  function class (line 1664) | class cProtIntGenMBiomes:

FILE: src/Generating/Ravines.cpp
  type cRavDefPoint (line 18) | struct cRavDefPoint
    method cRavDefPoint (line 26) | cRavDefPoint(int a_BlockX, int a_BlockZ, int a_Radius, int a_Top, int ...
  class cStructGenRavines::cRavine (line 42) | class cStructGenRavines::cRavine:
  function AString (line 281) | AString cStructGenRavines::cRavine::ExportAsSVG(int a_Color, int a_Offse...

FILE: src/Generating/Ravines.h
  function class (line 18) | class cStructGenRavines:

FILE: src/Generating/RoughRavines.cpp
  class cRoughRavine (line 18) | class cRoughRavine:
    method cRoughRavine (line 25) | cRoughRavine(
    type sRavineDefPoint (line 59) | struct sRavineDefPoint
      method Set (line 67) | void Set(float a_X, float a_Z, float a_Radius, float a_Top, float a_...
    method SubdivideLine (line 95) | void SubdivideLine(size_t a_Idx1, size_t a_Idx2)
    method InitPerHeightRadius (line 134) | void InitPerHeightRadius(int a_GridX, int a_GridZ)
    method DrawIntoChunk (line 157) | virtual void DrawIntoChunk(cChunkDesc & a_ChunkDesc) override

FILE: src/Generating/RoughRavines.h
  function class (line 17) | class cRoughRavines:

FILE: src/Generating/ShapeGen.cpp
  class cTerrainHeightToShapeGen (line 22) | class cTerrainHeightToShapeGen:
    method cTerrainHeightToShapeGen (line 26) | cTerrainHeightToShapeGen(std::unique_ptr<cTerrainHeightGen> a_HeightGen):
    method GenShape (line 33) | virtual void GenShape(cChunkCoords a_ChunkCoords, cChunkDesc::Shape & ...
    method InitializeShapeGen (line 59) | virtual void InitializeShapeGen(cIniFile & a_IniFile) override

FILE: src/Generating/SinglePieceStructuresGen.cpp
  class cSinglePieceStructuresGen::cGen (line 12) | class cSinglePieceStructuresGen::cGen :
    method cGen (line 17) | cGen(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHeightGen & a_HeightG...
    method LoadFromFile (line 30) | bool LoadFromFile(const AString & a_FileName)
    method cStructurePtr (line 58) | virtual cStructurePtr CreateStructure(int a_GridX, int a_GridZ, int a_...
    method cPlacedPiecePtr (line 81) | cPlacedPiecePtr GetPiece(int a_BlockX, int a_BlockZ)

FILE: src/Generating/SinglePieceStructuresGen.h
  function class (line 21) | class cSinglePieceStructuresGen :

FILE: src/Generating/StructGen.h
  function class (line 21) | class cStructGenTrees :
  function class (line 77) | class cStructGenLakes :
  function class (line 111) | class cStructGenDirectOverhangs :
  function class (line 131) | class cStructGenDistortedMembraneOverhangs :

FILE: src/Generating/Trees.cpp
  function Vector3d (line 35) | static const Vector3d & pickBranchDirection(const cNoise a_Noise, Vector...
  function PushCoordBlocks (line 261) | inline void PushCoordBlocks(int a_BlockX, int a_Height, int a_BlockZ, sS...
  function PushCornerBlocks (line 273) | inline void PushCornerBlocks(int a_BlockX, int a_Height, int a_BlockZ, i...
  function PushSomeColumns (line 290) | inline void PushSomeColumns(int a_BlockX, int a_Height, int a_BlockZ, in...
  function GetTreeImageByBiome (line 310) | void GetTreeImageByBiome(Vector3i a_BlockPos, cNoise & a_Noise, int a_Se...
  function GetAppleTreeImage (line 522) | void GetAppleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq,...
  function GetSmallAppleTreeImage (line 538) | void GetSmallAppleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a...
  function GetLargeAppleTreeImage (line 590) | void GetLargeAppleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a...
  function Vector3d (line 633) | Vector3d GetTreeBranch(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Ve...
  function NIBBLETYPE (line 651) | NIBBLETYPE GetLogMetaFromDirection(NIBBLETYPE a_BlockMeta, Vector3d a_Di...
  function GetBirchTreeImage (line 673) | void GetBirchTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq,...
  function GetAcaciaTreeImage (line 711) | void GetAcaciaTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq...
  function GetDarkoakTreeImage (line 769) | void GetDarkoakTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Se...
  function GetTallBirchTreeImage (line 840) | void GetTallBirchTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_...
  function GetConiferTreeImage (line 878) | void GetConiferTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Se...
  function GetSpruceTreeImage (line 895) | void GetSpruceTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq...
  function GetPineTreeImage (line 912) | void GetPineTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq, ...
  function GetSmallSpruceTreeImage (line 929) | void GetSmallSpruceTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int ...
  function LargeSpruceAddRing (line 1026) | static void LargeSpruceAddRing(Vector3i a_BlockPos, int & a_Height, cons...
  function GetLargeSpruceTreeImage (line 1040) | void GetLargeSpruceTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int ...
  function GetSmallPineTreeImage (line 1131) | void GetSmallPineTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_...
  function GetLargePineTreeImage (line 1184) | void GetLargePineTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_...
  function GetSwampTreeImage (line 1220) | void GetSwampTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq,...
  function GetAppleBushImage (line 1267) | void GetAppleBushImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq,...
  function GetJungleTreeImage (line 1287) | void GetJungleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int a_Seq...
  function GetLargeJungleTreeImage (line 1303) | void GetLargeJungleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int ...
  function GetSmallJungleTreeImage (line 1388) | void GetSmallJungleTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int ...
  function GetRedMushroomTreeImage (line 1445) | void GetRedMushroomTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, int ...
  function GetBrownMushroomTreeImage (line 1492) | void GetBrownMushroomTreeImage(Vector3i a_BlockPos, cNoise & a_Noise, in...

FILE: src/Generating/TwoHeights.cpp
  class cTwoHeights (line 17) | class cTwoHeights:
    method cTwoHeights (line 24) | cTwoHeights(int a_Seed, cBiomeGen & a_BiomeGen):
    method GenShape (line 34) | virtual void GenShape(cChunkCoords a_ChunkCoords, cChunkDesc::Shape & ...
    method InitializeShapeGen (line 74) | virtual void InitializeShapeGen(cIniFile & a_IniFile) override
  function CreateShapeGenTwoHeights (line 116) | std::unique_ptr<cTerrainShapeGen> CreateShapeGenTwoHeights(int a_Seed, c...

FILE: src/Generating/VerticalLimit.cpp
  type VerticalLimit (line 17) | namespace VerticalLimit
    function ParseRange (line 19) | static bool ParseRange(const AString & a_Params, int & a_Min, int & a_...
  class cVerticalLimitNone (line 58) | class cVerticalLimitNone:
    method CanBeAtHeight (line 62) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 69) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
  class cVerticalLimitAbove (line 82) | class cVerticalLimitAbove:
    method CanBeAtHeight (line 86) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 92) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
  class cVerticalLimitAboveTerrain (line 114) | class cVerticalLimitAboveTerrain:
    method CanBeAtHeight (line 118) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 130) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 139) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  class cVerticalLimitAboveTerrainAndOcean (line 161) | class cVerticalLimitAboveTerrainAndOcean:
    method CanBeAtHeight (line 165) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 177) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 186) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  class cVerticalLimitBelow (line 213) | class cVerticalLimitBelow:
    method CanBeAtHeight (line 217) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 223) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
  class cVerticalLimitBelowTerrain (line 246) | class cVerticalLimitBelowTerrain:
    method CanBeAtHeight (line 250) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 261) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 270) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  class cVerticalLimitBelowTerrainOrOcean (line 292) | class cVerticalLimitBelowTerrainOrOcean:
    method CanBeAtHeight (line 296) | virtual bool CanBeAtHeight(int a_BlockX, int a_BlockZ, int a_Height) o...
    method InitializeFromString (line 307) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 316) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  function CreateVerticalLimitFromString (line 343) | cPiece::cVerticalLimitPtr CreateVerticalLimitFromString(const AString & ...

FILE: src/Generating/VerticalStrategy.cpp
  type VerticalStrategy (line 26) | namespace VerticalStrategy
    function ParseRange (line 28) | static bool ParseRange(const AString & a_Params, int & a_Min, int & a_...
  class cVerticalStrategyFixed (line 68) | class cVerticalStrategyFixed:
    method cVerticalStrategyFixed (line 72) | cVerticalStrategyFixed(void):
    method GetVerticalPlacement (line 78) | virtual int GetVerticalPlacement(int a_BlockX, int a_BlockZ) override
    method InitializeFromString (line 84) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
  class cVerticalStrategyRange (line 107) | class cVerticalStrategyRange:
    method cVerticalStrategyRange (line 111) | cVerticalStrategyRange(void):
    method GetVerticalPlacement (line 119) | virtual int GetVerticalPlacement(int a_BlockX, int a_BlockZ) override
    method InitializeFromString (line 126) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 150) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  class cVerticalStrategyTerrainTop (line 169) | class cVerticalStrategyTerrainTop:
    method GetVerticalPlacement (line 174) | virtual int GetVerticalPlacement(int a_BlockX, int a_BlockZ) override
    method InitializeFromString (line 188) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 197) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  class cVerticalStrategyTerrainOrOceanTop (line 223) | class cVerticalStrategyTerrainOrOceanTop:
    method GetVerticalPlacement (line 228) | virtual int GetVerticalPlacement(int a_BlockX, int a_BlockZ) override
    method InitializeFromString (line 244) | virtual bool InitializeFromString(const AString & a_Params, bool a_Log...
    method AssignGens (line 253) | virtual void AssignGens(int a_Seed, cBiomeGen & a_BiomeGen, cTerrainHe...
  function CreateVerticalStrategyFromString (line 284) | cPiece::cVerticalStrategyPtr CreateVerticalStrategyFromString(const AStr...

FILE: src/Generating/VillageGen.cpp
  class cVillagePiecePool (line 40) | class cVillagePiecePool:
    method cVillagePiecePool (line 47) | cVillagePiecePool(
    method cVillagePiecePool (line 56) | cVillagePiecePool(void)
    method AddRoadPieces (line 61) | void AddRoadPieces(void)
    method GetPieceWeight (line 96) | virtual int GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const c...
  class cVillageGen::cVillage (line 112) | class cVillageGen::cVillage:
    method cVillage (line 120) | cVillage(
    method DrawIntoChunk (line 179) | virtual void DrawIntoChunk(cChunkDesc & a_Chunk) override
    method PlacePieceOnGround (line 206) | void PlacePieceOnGround(cPlacedPiece & a_Piece)
    method DrawRoad (line 224) | void DrawRoad(cChunkDesc & a_Chunk, cPlacedPiece & a_Road, cChunkDef::...
    method cPieces (line 255) | virtual cPieces GetPiecesWithConnector(int a_ConnectorType) override
    method cPieces (line 261) | virtual cPieces GetStartingPieces(void) override
    method GetPieceWeight (line 267) | virtual int GetPieceWeight(
    method GetStartingPieceWeight (line 289) | virtual int GetStartingPieceWeight(const cPiece & a_NewPiece) override
    method PiecePlaced (line 295) | virtual void PiecePlaced(const cPiece & a_Piece) override
    method Reset (line 301) | virtual void Reset(void) override
    method MoveAllDescendants (line 307) | void MoveAllDescendants(cPlacedPieces & a_PlacedPieces, size_t a_Pivot...

FILE: src/Generating/VillageGen.h
  function class (line 26) | class cVillageGen:

FILE: src/Globals.h
  type Int64 (line 151) | typedef signed long long Int64;
  type Int32 (line 152) | typedef signed int       Int32;
  type Int16 (line 153) | typedef signed short     Int16;
  type Int8 (line 154) | typedef signed char      Int8;
  type UInt64 (line 156) | typedef unsigned long long UInt64;
  type UInt32 (line 157) | typedef unsigned int       UInt32;
  type UInt16 (line 158) | typedef unsigned short     UInt16;
  type UInt8 (line 159) | typedef unsigned char      UInt8;
  type Byte (line 161) | typedef unsigned char Byte;
  type Byte (line 162) | typedef Byte ColourID;
  function namespace (line 193) | namespace Logger
  function class (line 243) | class cAssertFailure
  function namespace (line 295) | namespace cpp20
  function std (line 394) | constexpr std::string_view methodName(std::string_view a_PrettyFunction)

FILE: src/HTTP/EnvelopeParser.h
  function class (line 16) | class cEnvelopeParser

FILE: src/HTTP/HTTPFormParser.h
  type eKind (line 29) | enum eKind
  function class (line 36) | class cCallbacks

FILE: src/HTTP/HTTPMessage.cpp
  function AString (line 119) | AString cHTTPIncomingRequest::GetURLPath(void) const

FILE: src/HTTP/HTTPMessage.h
  function class (line 16) | class cHTTPMessage
  function class (line 69) | class cHTTPOutgoingResponse:
  function class (line 88) | class cHTTPIncomingRequest:

FILE: src/HTTP/HTTPMessageParser.h
  function IsFinished (line 63) | bool IsFinished(void) const { return m_IsFinished; }

FILE: src/HTTP/HTTPServer.cpp
  class cHTTPServerListenCallbacks (line 31) | class cHTTPServerListenCallbacks:
    method cHTTPServerListenCallbacks (line 35) | cHTTPServerListenCallbacks(cHTTPServer & a_HTTPServer, UInt16 a_Port):
    method OnIncomingConnection (line 49) | virtual cTCPLink::cCallbacksPtr OnIncomingConnection(const AString & a...
    method OnAccepted (line 53) | virtual void OnAccepted(cTCPLink & a_Link) override {}
    method OnError (line 54) | virtual void OnError(int a_ErrorCode, const AString & a_ErrorMsg) over...

FILE: src/HTTP/HTTPServer.h
  function class (line 30) | class cHTTPServer

FILE: src/HTTP/HTTPServerConnection.h
  function virtual (line 36) | virtual ~cHTTPServerConnection() override;
  function SendData (line 107) | void SendData(const AString & a_Data)
  type std (line 113) | typedef std::vector<cHTTPServerConnection *> cHTTPServerConnections;

FILE: src/HTTP/MultipartParser.cpp
  class cMultipartParserTest (line 29) | class cMultipartParserTest :
    method cMultipartParserTest (line 33) | cMultipartParserTest(void)
    method OnPartStart (line 60) | virtual void OnPartStart(void) override
    method OnPartHeader (line 66) | virtual void OnPartHeader(const AString & a_Key, const AString & a_Val...
    method OnPartData (line 72) | virtual void OnPartData(const char * a_Data, int a_Size) override
    method OnPartEnd (line 78) | virtual void OnPartEnd(void) override

FILE: src/HTTP/NameValueParser.cpp
  class cNameValueParserTest (line 17) | class cNameValueParserTest
    method cNameValueParserTest (line 20) | cNameValueParserTest(void)

FILE: src/HTTP/NameValueParser.h
  function IsValid (line 33) | bool IsValid(void) const { return (m_State != psInvalid); }
  function IsFinished (line 36) | bool IsFinished(void) const { return ((m_State == psInvalid) || (m_State...
  type eState (line 39) | enum eState

FILE: src/HTTP/SslHTTPServerConnection.h
  function class (line 19) | class cSslHTTPServerConnection:

FILE: src/HTTP/TransferEncodingParser.cpp
  class cChunkedTEParser (line 17) | class cChunkedTEParser:
    method cChunkedTEParser (line 25) | cChunkedTEParser(Super::cCallbacks & a_Callbacks):
    type eState (line 35) | enum eState
    method Error (line 59) | void Error(const AString & a_ErrorMsg)
    method ParseChunkLength (line 69) | size_t ParseChunkLength(const char * a_Data, size_t a_Size)
    method ParseChunkLengthTrailer (line 135) | size_t ParseChunkLengthTrailer(const char * a_Data, size_t a_Size)
    method ParseChunkLengthLF (line 167) | size_t ParseChunkLengthLF(const char * a_Data, size_t a_Size)
    method ParseChunkData (line 193) | size_t ParseChunkData(const char * a_Data, size_t a_Size)
    method ParseChunkDataCR (line 210) | size_t ParseChunkDataCR(const char * a_Data, size_t a_Size)
    method ParseChunkDataLF (line 232) | size_t ParseChunkDataLF(const char * a_Data, size_t a_Size)
    method ParseTrailer (line 252) | size_t ParseTrailer(const char * a_Data, size_t a_Size)
    method Parse (line 269) | virtual size_t Parse(const char * a_Data, size_t a_Size) override
    method Finish (line 295) | virtual void Finish() override
    method OnHeaderLine (line 306) | virtual void OnHeaderLine(const AString & a_Key, const AString & a_Val...
  class cIdentityTEParser (line 319) | class cIdentityTEParser:
    method cIdentityTEParser (line 326) | cIdentityTEParser(cCallbacks & a_Callbacks, size_t a_ContentLength):
    method Parse (line 338) | virtual size_t Parse(const char * a_Data, size_t a_Size) override
    method Finish (line 353) | virtual void Finish(void) override
  function cTransferEncodingParserPtr (line 373) | cTransferEncodingParserPtr cTransferEncodingParser::Create(

FILE: src/HTTP/TransferEncodingParser.h
  type std (line 14) | typedef std::shared_ptr<cTransferEncodingParser> cTransferEncodingParser...
  function class (line 21) | class cTransferEncodingParser

FILE: src/HTTP/UrlClient.cpp
  class cSchemeHandler (line 19) | class cSchemeHandler
  class cBlockingHTTPCallbacks (line 29) | class cBlockingHTTPCallbacks :
    method cBlockingHTTPCallbacks (line 34) | explicit cBlockingHTTPCallbacks(std::shared_ptr<cEvent> a_Event, AStri...
    method OnBodyFinished (line 40) | void OnBodyFinished() override
    method OnError (line 45) | void OnError(const AString & a_ErrorMsg) override
    method OnBodyData (line 52) | void OnBodyData(const void * a_Data, size_t a_Size) override
  class cUrlClientRequest (line 71) | class cUrlClientRequest:
    method Request (line 78) | static std::pair<bool, AString> Request(
    method CallErrorCallback (line 97) | void CallErrorCallback(const AString & a_ErrorMessage)
    method cX509CertPtr (line 116) | cX509CertPtr GetOwnCert() const
    method cCryptoKeyPtr (line 132) | cCryptoKeyPtr GetOwnPrivKey() const
    method cX509CertPtr (line 151) | cX509CertPtr GetTrustedRootCAs() const
    method cUrlClientRequest (line 207) | cUrlClientRequest(
    method OnError (line 233) | virtual void OnError(int a_ErrorCode, const AString & a_ErrorMsg) over...
    method OnLinkCreated (line 240) | virtual void OnLinkCreated(cTCPLinkPtr a_Link) override
  function abstract (line 268) | class cSchemeHandler abstract
  class cHttpSchemeHandler (line 306) | class cHttpSchemeHandler:
    method cHttpSchemeHandler (line 314) | cHttpSchemeHandler(cUrlClientRequest & a_ParentRequest, bool a_IsTls):
    method OnConnected (line 323) | virtual void OnConnected(cTCPLink & a_Link) override
    method SendRequest (line 339) | void SendRequest()
    method OnReceivedData (line 371) | virtual void OnReceivedData(const char * a_Data, size_t a_Length) over...
    method OnTlsHandshakeCompleted (line 382) | virtual void OnTlsHandshakeCompleted(void) override
    method OnRemoteClosed (line 388) | virtual void OnRemoteClosed(void) override
    method OnError (line 395) | virtual void OnError(const AString & a_ErrorDescription) override
    method OnFirstLine (line 402) | virtual void OnFirstLine(const AString & a_FirstLine) override
    method OnHeaderLine (line 442) | virtual void OnHeaderLine(const AString & a_Key, const AString & a_Val...
    method OnHeadersFinished (line 459) | virtual void OnHeadersFinished(void) override
    method OnBodyData (line 469) | virtual void OnBodyData(const void * a_Data, size_t a_Size) override
    method OnBodyFinished (line 479) | virtual void OnBodyFinished(void) override
  function cSchemeHandlerPtr (line 528) | cSchemeHandlerPtr cSchemeHandler::Create(const AString & a_Scheme, cUrlC...

FILE: src/HTTP/UrlClient.h
  function class (line 34) | class cUrlClient

FILE: src/HTTP/UrlParser.cpp
  function UInt16 (line 14) | UInt16 cUrlParser::GetDefaultPort(const AString & a_Scheme)

FILE: src/HTTP/UrlParser.h
  function class (line 16) | class cUrlParser

FILE: src/IniFile.cpp
  function AString (line 293) | AString cIniFile::GetKeyName(const int keyID) const
  function AString (line 336) | AString cIniFile::GetValueName(const int keyID, const int valueID) const
  function AString (line 349) | AString cIniFile::GetValueName(const AString & keyname, const int valueI...
  function AString (line 472) | AString cIniFile::GetValue(const int keyID, const int valueID, const ASt...
  function AString (line 485) | AString cIniFile::GetValue(const AString & keyname, const AString & valu...
  function AString (line 526) | AString cIniFile::GetValueSet(const AString & keyname, const AString & v...
  function Int64 (line 569) | Int64 cIniFile::GetValueSetI(const AString & keyname, const AString & va...
  function AString (line 684) | AString cIniFile::GetHeaderComment(const int commentID) const
  function AString (line 767) | AString cIniFile::GetKeyComment(const int keyID, const int commentID) const
  function AString (line 780) | AString cIniFile::GetKeyComment(const AString & keyname, const int comme...
  function AString (line 851) | AString cIniFile::CheckCase(const AString & s) const
  function AStringVector (line 923) | AStringVector ReadUpgradeIniPorts(

FILE: src/IniFile.h
  function class (line 33) | class cIniFile:
  function AddValueB (line 159) | void AddValueB(const AString & a_KeyName, const AString & a_ValueName, c...
  function GetNumHeaderComments (line 192) | int GetNumHeaderComments(void) {return static_cast<int>(m_Comments.size(...
  function DeleteHeaderComments (line 204) | void DeleteHeaderComments(void) {m_Comments.clear();}

FILE: src/Inventory.cpp
  function cItem (line 212) | cItem * cInventory::FindItem(const cItem & a_RecipeItem)
  function cItem (line 390) | const cItem & cInventory::GetSlot(int a_SlotNum) const
  function cItem (line 412) | const cItem & cInventory::GetArmorSlot(int a_ArmorSlotNum) const
  function cItem (line 426) | const cItem & cInventory::GetInventorySlot(int a_InventorySlotNum) const
  function cItem (line 440) | const cItem & cInventory::GetHotbarSlot(int a_SlotNum) const
  function cItem (line 454) | const cItem & cInventory::GetShieldSlot() const
  function cItem (line 463) | const cItem & cInventory::GetEquippedItem(void) const
  function cItemGrid (line 777) | const cItemGrid * cInventory::GetGridForSlotNum(int a_SlotNum, int & a_G...
  function cItemGrid (line 806) | cItemGrid * cInventory::GetGridForSlotNum(int a_SlotNum, int & a_GridSlo...

FILE: src/Inventory.h
  function namespace (line 10) | namespace Json
  function virtual (line 58) | virtual ~cInventory() override {}
  function cPlayer (line 131) | const cPlayer & GetOwner(void) const { return m_Owner; }
  function cItem (line 144) | const cItem & GetShieldSlot() const;
  function cItem (line 176) | const cItem & GetEquippedHelmet    (void) const { return m_ArmorSlots.Ge...
  function cItem (line 177) | const cItem & GetEquippedChestplate(void) const { return m_ArmorSlots.Ge...
  function cItem (line 178) | const cItem & GetEquippedLeggings  (void) const { return m_ArmorSlots.Ge...
  function cItem (line 179) | const cItem & GetEquippedBoots     (void) const { return m_ArmorSlots.Ge...

FILE: src/Item.cpp
  function cItem (line 93) | cItem cItem::CopyOne(void) const
  function cItem (line 104) | cItem & cItem::AddCount(char a_AmountToAdd)
  function cItemHandler (line 216) | const cItemHandler & cItem::GetHandler(void) const
  function cItem (line 715) | cItem * cItems::Get(int a_Idx)

FILE: src/Item.h
  function namespace (line 26) | namespace Json
  function class (line 36) | class cItem
  function class (line 213) | class cItems  // tolua_export
  function class (line 259) | class cLootProbab

FILE: src/ItemGrid.cpp
  function cItem (line 96) | const cItem & cItemGrid::GetSlot(int a_X, int a_Y) const
  function cItem (line 105) | const cItem & cItemGrid::GetSlot(int a_SlotNum) const
  function cItem (line 443) | cItem * cItemGrid::FindItem(const cItem & a_RecipeItem)
  function cItem (line 516) | cItem cItemGrid::RemoveOneItem(int a_SlotNum)
  function cItem (line 554) | cItem cItemGrid::RemoveOneItem(int a_X, int a_Y)

FILE: src/ItemGrid.h
  function class (line 19) | class cItemGrid

FILE: src/Items/ItemAnvil.h
  function override (line 22) | const override

FILE: src/Items/ItemArmor.h
  function override (line 32) | const override
  function virtual (line 71) | virtual bool CanRepairWithRawMaterial(short a_ItemType) const override

FILE: src/Items/ItemAxe.h
  function GetDurabilityLossByAction (line 22) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...
  function virtual (line 35) | virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) const override

FILE: src/Items/ItemBanner.h
  function override (line 26) | const override
  function virtual (line 56) | virtual bool IsPlaceable(void) const override
  function TryPlaceBanner (line 64) | static bool TryPlaceBanner(cPlayer & a_Player, const Vector3i a_PlacePos...

FILE: src/Items/ItemBed.h
  function SetColor (line 54) | auto SetColor = [&a_HeldItem](cBlockEntity & a_BlockEntity)
  function virtual (line 68) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemBigFlower.h
  function override (line 20) | const override

FILE: src/Items/ItemBoat.h
  function override (line 31) | const override

FILE: src/Items/ItemBottle.h
  function GetBlockFromTrace (line 28) | bool GetBlockFromTrace(cWorld * a_World, cPlayer * a_Player, Vector3i & ...
  function override (line 81) | const override

FILE: src/Items/ItemBow.h
  function override (line 31) | const override
  function virtual (line 47) | virtual void OnItemShoot(cPlayer * a_Player, const Vector3i a_BlockPos, ...

FILE: src/Items/ItemBucket.h
  function override (line 40) | const override
  function ScoopUpFluid (line 59) | bool ScoopUpFluid(cWorld * a_World, cPlayer * a_Player, const cItem & a_...
  function PlaceFluid (line 127) | bool PlaceFluid(
  function GetBlockFromTrace (line 185) | bool GetBlockFromTrace(cWorld * a_World, cPlayer * a_Player, Vector3i & ...
  function GetPlacementCoordsFromTrace (line 236) | bool GetPlacementCoordsFromTrace(cWorld * a_World, cPlayer * a_Player, V...

FILE: src/Items/ItemButton.h
  function override (line 41) | const override

FILE: src/Items/ItemChest.h
  function override (line 24) | const override

FILE: src/Items/ItemComparator.h
  function override (line 21) | const override
  function virtual (line 27) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemDoor.h
  function override (line 28) | const override
  function virtual (line 115) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemDropSpenser.h
  function override (line 22) | const override

FILE: src/Items/ItemDye.h
  function override (line 32) | const override
  function FertilizePlant (line 102) | static bool FertilizePlant(cWorld & a_World, Vector3i a_BlockPos)
  function GrowPlantsAround (line 225) | static void GrowPlantsAround(cWorld & a_World, const Vector3i a_Position)
  function GrowDoubleTallGrass (line 259) | static void GrowDoubleTallGrass(cWorld & a_World, const Vector3i a_Posit...
  function GrowTallGrass (line 269) | static void GrowTallGrass(cWorld & a_World, const Vector3i a_Position)
  function GrowFlower (line 276) | static void GrowFlower(cWorld & a_World, const Vector3i a_Position)

FILE: src/Items/ItemEnchantingTable.h
  function override (line 23) | const override
  function virtual (line 47) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemEndPortalFrame.h
  function override (line 22) | const override

FILE: src/Items/ItemEnderChest.h
  function override (line 22) | const override

FILE: src/Items/ItemEyeOfEnder.h
  function FindAndSetPortal (line 70) | static bool FindAndSetPortal(Vector3i a_FirstFrame, NIBBLETYPE a_Directi...
  function IsValidFrameAtPos (line 185) | static bool IsValidFrameAtPos(cChunkInterface & a_ChunkInterface, Vector...
  function IsPortalFrame (line 201) | static bool IsPortalFrame(BLOCKTYPE BlockType)

FILE: src/Items/ItemFenceGate.h
  function override (line 22) | const override

FILE: src/Items/ItemFishingRod.h
  function class (line 15) | class cFloaterCallback
  function override (line 72) | const override
  function ReelIn (line 108) | void ReelIn(cWorld & a_World, cPlayer & a_Player) const
  function ReelInEntity (line 140) | void ReelInEntity(cWorld & a_World, cPlayer & a_Player, UInt32 a_EntityI...
  function ReelInLoot (line 157) | void ReelInLoot(cWorld & a_World, cPlayer & a_Player, const Vector3d a_F...

FILE: src/Items/ItemFood.h
  function class (line 10) | class cItemFoodHandler:
  function virtual (line 35) | virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) const override

FILE: src/Items/ItemFoodSeeds.h
  function virtual (line 37) | virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) const override

FILE: src/Items/ItemFurnace.h
  function override (line 22) | const override

FILE: src/Items/ItemGlazedTerracotta.h
  function override (line 22) | const override

FILE: src/Items/ItemHandler.cpp
  function cItemHandler (line 569) | const cItemHandler & cItemHandler::For(int a_ItemType)

FILE: src/Items/ItemHandler.h
  function class (line 21) | class cItemHandler

FILE: src/Items/ItemHoe.h
  function override (line 32) | const override
  function GetDurabilityLossByAction (line 74) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...

FILE: src/Items/ItemHopper.h
  function override (line 36) | const override

FILE: src/Items/ItemItemFrame.h
  function override (line 32) | const override

FILE: src/Items/ItemJackOLantern.h
  function override (line 22) | const override

FILE: src/Items/ItemLadder.h
  function eBlockFace (line 61) | static eBlockFace FindSuitableFace(const cWorld & a_World, const Vector3...

FILE: src/Items/ItemLeaves.h
  function override (line 23) | const override

FILE: src/Items/ItemLever.h
  function override (line 39) | const override

FILE: src/Items/ItemLighter.h
  function override (line 32) | const override

FILE: src/Items/ItemLilypad.h
  function virtual (line 29) | virtual bool IsPlaceable(void) const override
  function override (line 45) | const override

FILE: src/Items/ItemMap.h
  function virtual (line 21) | virtual void OnUpdate(cWorld * a_World, cPlayer * a_Player, const cItem ...

FILE: src/Items/ItemMilk.h
  function virtual (line 17) | virtual bool IsDrinkable(short a_ItemDamage) const override
  function virtual (line 23) | virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) const override

FILE: src/Items/ItemMinecart.h
  function override (line 28) | const override

FILE: src/Items/ItemMobHead.h
  function override (line 25) | const override
  function RegularHeadPlaced (line 58) | void RegularHeadPlaced(const cPlayer & a_Player, const cItem & a_HeldIte...
  function TrySpawnWitherAround (line 88) | bool TrySpawnWitherAround(cPlayer & a_Player, const Vector3i a_BlockPos)...
  function TrySpawnWitherAt (line 127) | bool TrySpawnWitherAt(
  function TrySpawnWitherFromImage (line 185) | bool TrySpawnWitherFromImage(
  function NIBBLETYPE (line 302) | static NIBBLETYPE BlockFaceToBlockMeta(int a_BlockFace)
  function virtual (line 323) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemNetherWart.h
  function override (line 24) | const override
  function virtual (line 39) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemObserver.h
  function override (line 22) | const override

FILE: src/Items/ItemPainting.h
  function override (line 33) | const override

FILE: src/Items/ItemPickaxe.h
  function GetDurabilityLossByAction (line 23) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...
  function virtual (line 50) | virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) const override
  function virtual (line 158) | virtual bool CanRepairWithRawMaterial(short a_ItemType) const override
  function virtual (line 172) | virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) const override

FILE: src/Items/ItemPiston.h
  function override (line 22) | const override

FILE: src/Items/ItemPlanks.h
  function override (line 21) | const override

FILE: src/Items/ItemPotion.h
  function virtual (line 21) | virtual bool IsDrinkable(short a_ItemDamage) const override
  function virtual (line 72) | virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) const override

FILE: src/Items/ItemPumpkin.h
  function override (line 22) | const override
  function TrySpawnGolem (line 42) | bool TrySpawnGolem(cPlayer & a_Player, const Vector3i a_PumpkinPos) const
  function TrySpawnSnowGolem (line 72) | bool TrySpawnSnowGolem(cWorld & a_World, cPlayer & a_Player, const Vecto...
  function TrySpawnIronGolem (line 109) | bool TrySpawnIronGolem(cWorld & a_World, cPlayer & a_Player, const Vecto...

FILE: src/Items/ItemRail.h
  function override (line 22) | const override

FILE: src/Items/ItemRawFish.h
  function virtual (line 40) | virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) const override

FILE: src/Items/ItemRedstoneDust.h
  function override (line 23) | const override
  function virtual (line 32) | virtual bool IsPlaceable(void) const override

FILE: src/Items/ItemRedstoneRepeater.h
  function override (line 24) | const override

FILE: src/Items/ItemSapling.h
  function override (line 20) | const override

FILE: src/Items/ItemSeeds.h
  function class (line 11) | class cItemSeedsHandler:

FILE: src/Items/ItemShears.h
  function virtual (line 25) | virtual bool OnDiggingBlock(
  function virtual (line 53) | virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) const override
  function GetDurabilityLossByAction (line 71) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...
  function virtual (line 86) | virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) const override

FILE: src/Items/ItemShovel.h
  function GetDurabilityLossByAction (line 26) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...
  function virtual (line 41) | virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) const override
  function virtual (line 54) | virtual bool CanRepairWithRawMaterial(short a_ItemType) const override
  function virtual (line 71) | virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) const override

FILE: src/Items/ItemSideways.h
  function override (line 49) | const override

FILE: src/Items/ItemSign.h
  function override (line 43) | const override
  function virtual (line 63) | virtual bool IsPlaceable(void) const override
  function NIBBLETYPE (line 70) | static NIBBLETYPE RotationToMetaData(double a_Rotation)

FILE: src/Items/ItemSlab.h
  function override (line 21) | const override
  function NIBBLETYPE (line 53) | static NIBBLETYPE FaceToMetaData(const NIBBLETYPE a_BaseMeta, const eBlo...
  function BLOCKTYPE (line 89) | static BLOCKTYPE GetDoubleSlabType(BLOCKTYPE a_SingleSlabBlockType)

FILE: src/Items/ItemSnow.h
  function override (line 21) | const override

FILE: src/Items/ItemSpawnEgg.h
  function override (line 28) | const override
  function eMonsterType (line 64) | static eMonsterType ItemDamageToMonsterType(short a_ItemDamage)

FILE: src/Items/ItemStairs.h
  function override (line 22) | const override

FILE: src/Items/ItemSword.h
  function virtual (line 20) | virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) const override
  function virtual (line 30) | virtual bool CanRepairWithRawMaterial(short a_ItemType) const override
  function GetDurabilityLossByAction (line 44) | virtual short GetDurabilityLossByAction(eDurabilityLostAction a_Action) ...
  function virtual (line 57) | virtual float GetBlockBreakingStrength(BLOCKTYPE a_Block) const override

FILE: src/Items/ItemThrowable.h
  function class (line 13) | class cItemThrowableHandler:

FILE: src/Items/ItemTorch.h
  function eBlockFace (line 62) | static eBlockFace FindSuitableFace(const cWorld & a_World, const Vector3...

FILE: src/Items/ItemTrapdoor.h
  function override (line 35) | const override

FILE: src/Items/ItemTripwireHook.h
  function override (line 34) | const override

FILE: src/Items/ItemVines.h
  function override (line 21) | const override

FILE: src/JsonUtils.cpp
  type JsonUtils (line 9) | namespace JsonUtils
    function AString (line 12) | AString WriteFastString(const Json::Value & a_Root)
    function AString (line 24) | AString WriteStyledString(const Json::Value & a_Root)
    function ParseString (line 34) | bool ParseString(const AString & a_JsonStr, Json::Value & a_Root, AStr...
    function AString (line 47) | AString SerializeSingleValueJsonObject(

FILE: src/JsonUtils.h
  function namespace (line 4) | namespace Json
  function namespace (line 9) | namespace JsonUtils

FILE: src/LazyArray.h
  function m_Size (line 24) | cLazyArray(size_type a_Size) noexcept:
  function m_Size (line 30) | cLazyArray(const cLazyArray & a_Other):
  function iterator (line 73) | iterator        begin()       { return data(); }
  function iterator (line 77) | iterator        end()       { return data() + m_Size; }
  function T (line 82) | const T * data() const
  function T (line 91) | T * data()
  function swap (line 98) | void swap(cLazyArray & a_Other) noexcept
  function T (line 112) | const T & GetAt(size_type a_Idx) const

FILE: src/LightingThread.cpp
  class cReader (line 17) | class cReader :
    method ChunkData (line 20) | virtual void ChunkData(const ChunkBlockData & a_BlockData, const Chunk...
    method HeightMap (line 51) | virtual void HeightMap(const cChunkDef::HeightMap & a_Heightmap) override
    method cReader (line 84) | cReader(BLOCKTYPE * a_BlockTypes, HEIGHTTYPE * a_HeightMap) :

FILE: src/LightingThread.h
  function class (line 48) | class cLightingThread:

FILE: src/LineBlockTracer.cpp
  class LineOfSightCallbacks (line 44) | class LineOfSightCallbacks:
    method LineOfSightCallbacks (line 51) | LineOfSightCallbacks(bool a_IsAirOpaque, bool a_IsWaterOpaque, bool a_...
    method OnNextBlock (line 57) | virtual bool OnNextBlock(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, N...
  class cSolidHitCallbacks (line 88) | class cSolidHitCallbacks:
    method cSolidHitCallbacks (line 92) | cSolidHitCallbacks(const Vector3d & a_CBStart, const Vector3d & a_CBEn...
    method OnNextBlock (line 101) | virtual bool OnNextBlock(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, N...

FILE: src/LineBlockTracer.h
  function class (line 25) | class cLineBlockTracer:

FILE: src/LinearInterpolation.cpp
  function LinearInterpolate1DArray (line 58) | void LinearInterpolate1DArray(
  function LinearInterpolate2DArray (line 86) | void LinearInterpolate2DArray(
  function LinearInterpolate3DArray (line 154) | void LinearInterpolate3DArray(

FILE: src/Logger.cpp
  function WriteLogOpener (line 14) | static void WriteLogOpener(fmt::memory_buffer & Buffer)
  function cLogger (line 43) | cLogger & cLogger::GetInstance(void)

FILE: src/Logger.h
  function class (line 5) | class cLogger

FILE: src/LoggerListeners.cpp
  class cColouredConsoleListener (line 13) | class cColouredConsoleListener
    method Log (line 21) | virtual void Log(std::string_view a_Message, eLogLevel a_LogLevel) ove...
  class cWindowsConsoleListener (line 35) | class cWindowsConsoleListener:
    method cWindowsConsoleListener (line 42) | cWindowsConsoleListener(HANDLE a_Console, WORD a_DefaultConsoleAttrib):
    method Log (line 49) | virtual void Log(std::string_view a_Message, eLogLevel a_LogLevel) ove...
    method SetLogColour (line 58) | virtual void SetLogColour(eLogLevel a_LogLevel) override
    method SetDefaultLogColour (line 93) | virtual void SetDefaultLogColour() override
  class cANSIConsoleListener (line 110) | class cANSIConsoleListener
    method SetLogColour (line 114) | virtual void SetLogColour(eLogLevel a_LogLevel) override
    method SetDefaultLogColour (line 146) | virtual void SetDefaultLogColour() override
  class cVanillaCPPConsoleListener (line 160) | class cVanillaCPPConsoleListener
    method Log (line 164) | virtual void Log(std::string_view a_Message, eLogLevel a_LogLevel) ove...
  class cNullConsoleListener (line 198) | class cNullConsoleListener
    method Log (line 201) | virtual void Log(std::string_view a_Message, eLogLevel a_LogLevel) ove...
  function MakeConsoleListener (line 210) | std::unique_ptr<cLogger::cListener> MakeConsoleListener(bool a_IsService)
  class cFileListener (line 254) | class cFileListener
    method cFileListener (line 259) | cFileListener() {}
    method Open (line 261) | bool Open()
    method Log (line 277) | virtual void Log(std::string_view a_Message, eLogLevel a_LogLevel) ove...
  function MakeFileListener (line 324) | std::pair<bool, std::unique_ptr<cLogger::cListener>> MakeFileListener()

FILE: src/LoggerSimple.h
  function eLogLevel (line 5) | enum class eLogLevel

FILE: src/Map.cpp
  function eDimension (line 187) | eDimension cMap::GetDimension(void) const
  function cMapDecorator (line 273) | const cMapDecorator cMap::CreateDecorator(const cEntity * a_TrackedEntity)

FILE: src/Map.h
  type cMapDecorator (line 34) | struct cMapDecorator
  function GetPixelZ (line 58) | int GetPixelZ(void) const { return m_PixelZ; }
  function GetRot (line 60) | int GetRot(void) const { return m_Rot; }
  function eType (line 62) | eType GetType(void) const { return m_Type; }
  function class (line 82) | class cMap

FILE: src/MapManager.cpp
  function cMap (line 76) | cMap * cMapManager::GetMapData(unsigned int a_ID)
  function cMap (line 92) | cMap * cMapManager::CreateMap(int a_CenterX, int a_CenterY, unsigned int...

FILE: src/MapManager.h
  function class (line 28) | class cMapManager

FILE: src/Matrix4.h
  function Matrix4 (line 28) | inline Matrix4(void)
  function T (line 51) | inline T & operator [] (int a_N)
  function Identity (line 57) | inline void Identity()
  function Init (line 66) | inline void Init(const Vector3<T> & a_Pos, T a_RX, T a_RY, T a_RZ)
  function RotateX (line 77) | inline void RotateX(T a_RX)
  function RotateY (line 88) | inline void RotateY(T a_RY)
  function RotateZ (line 99) | inline void RotateZ(T a_RZ)
  function Translate (line 110) | inline void Translate(const Vector3<T> & a_Pos)
  function SetTranslation (line 117) | inline void SetTranslation(const Vector3<T> & a_Pos)
  function Concatenate (line 124) | inline void Concatenate(const Matrix4 & m2)
  function Vector3 (line 144) | inline Vector3<T> Transform(const Vector3<T> & v) const
  function Invert (line 153) | inline void Invert(void)
  function Vector3 (line 179) | inline Vector3<T> GetXColumn(void) const
  function Vector3 (line 184) | inline Vector3<T> GetYColumn(void) const
  function Vector3 (line 189) | inline Vector3<T> GetZColumn(void) const
  function SetXColumn (line 194) | inline void SetXColumn(const Vector3<T> & a_X)
  function SetYColumn (line 201) | inline void SetYColumn(const Vector3<T> & a_Y)
  function SetZColumn (line 208) | inline void SetZColumn(const Vector3<T> & a_Z)
  type Matrix4 (line 221) | typedef Matrix4<double> Matrix4d;
  type Matrix4 (line 222) | typedef Matrix4<float>  Matrix4f;

FILE: src/MemorySettingsRepository.cpp
  function AString (line 52) | AString cMemorySettingsRepository::GetKeyComment(const AString & keyname...
  function AString (line 120) | AString cMemorySettingsRepository::GetValue (const AString & a_KeyName, ...
  function AString (line 139) | AString cMemorySettingsRepository::GetValueSet (const AString & a_KeyNam...
  function Int64 (line 181) | Int64 cMemorySettingsRepository::GetValueSetI(const AString & a_KeyName,...

FILE: src/MemorySettingsRepository.h
  function class (line 6) | class cMemorySettingsRepository : public cSettingsRepositoryInterface

FILE: src/MobCensus.cpp
  function cMobProximityCounter (line 71) | cMobProximityCounter & cMobCensus::GetProximityCounter(void)

FILE: src/MobCensus.h
  function class (line 25) | class cMobCensus

FILE: src/MobFamilyCollecter.h
  function class (line 12) | class cMobFamilyCollecter

FILE: src/MobProximityCounter.h
  function class (line 11) | class cMobProximityCounter

FILE: src/MobSpawner.cpp
  function eMonsterType (line 49) | eMonsterType cMobSpawner::ChooseMobType(EMCSBiome a_Biome)
  function cMonster (line 480) | cMonster * cMobSpawner::TryToSpawnHere(cChunk * a_Chunk, Vector3i a_RelP...

FILE: src/MobSpawner.h
  function class (line 15) | class cMobSpawner

FILE: src/Mobs/AggressiveMonster.cpp
  function cMonster (line 49) | cMonster * cAggressiveMonster::GetMonsterOfTypeInSight(eMonsterType a_Mo...

FILE: src/Mobs/AggressiveMonster.h
  function class (line 10) | class cAggressiveMonster:

FILE: src/Mobs/Bat.h
  function class (line 10) | class cBat:

FILE: src/Mobs/Blaze.h
  function class (line 10) | class cBlaze:

FILE: src/Mobs/CaveSpider.h
  function class (line 9) | class cCaveSpider:

FILE: src/Mobs/Chicken.h
  function class (line 9) | class cChicken:

FILE: src/Mobs/Cow.h
  function class (line 10) | class cCow:

FILE: src/Mobs/Creeper.h
  function class (line 10) | class cCreeper:

FILE: src/Mobs/EnderDragon.h
  function class (line 10) | class cEnderDragon:

FILE: src/Mobs/Enderman.cpp
  class cPlayerLookCheck (line 14) | class cPlayerLookCheck
    method cPlayerLookCheck (line 18) | cPlayerLookCheck(Vector3d a_EndermanHeadPosition, int a_SightDistance) :
    method cPlayer (line 68) | cPlayer * GetPlayer(void) const { return m_Player; }

FILE: src/Mobs/Enderman.h
  function class (line 10) | class cEnderman:

FILE: src/Mobs/Endermite.h
  function class (line 8) | class cEndermite:

FILE: src/Mobs/Ghast.h
  function class (line 10) | class cGhast:

FILE: src/Mobs/Giant.h
  function class (line 10) | class cGiant:

FILE: src/Mobs/Guardian.h
  function class (line 10) | class cGuardian:

FILE: src/Mobs/Horse.h
  function IsSaddled (line 30) | bool IsSaddled      (void) const  {return !m_Saddle.IsEmpty(); }
  function IsChested (line 31) | bool IsChested      (void) const  {return m_bHasChest; }
  function IsEating (line 32) | bool IsEating       (void) const  {return m_bIsEating; }
  function IsRearing (line 33) | bool IsRearing      (void) const  {return m_bIsRearing; }
  function IsMthOpen (line 34) | bool IsMthOpen      (void) const  {return m_bIsMouthOpen; }
  function IsTame (line 35) | bool IsTame         (void) const override {return m_bIsTame; }
  function GetHorseType (line 36) | int  GetHorseType   (void) const  {return m_Type; }
  function GetHorseColor (line 37) | int  GetHorseColor  (void) const  {return m_Color; }
  function GetHorseStyle (line 38) | int  GetHorseStyle  (void) const  {return m_Style; }

FILE: src/Mobs/IronGolem.h
  function class (line 10) | class cIronGolem:

FILE: src/Mobs/MagmaCube.cpp
  function AString (line 27) | AString cMagmaCube::GetSizeName(int a_Size)

FILE: src/Mobs/MagmaCube.h
  function class (line 9) | class cMagmaCube:
  function virtual (line 30) | virtual bool IsNetherNative(void) override { return true; }

FILE: src/Mobs/Monster.cpp
  function AString (line 1016) | AString cMonster::MobTypeToString(eMonsterType a_MobType)
  function AString (line 1035) | AString cMonster::MobTypeToVanillaName(eMonsterType a_MobType)
  function AString (line 1054) | AString cMonster::MobTypeToVanillaNBT(eMonsterType a_MobType)
  function eMonsterType (line 1073) | eMonsterType cMonster::StringToMobType(const AString & a_Name)
  function cTickTime (line 1196) | cTickTime cMonster::GetSpawnDelay(cMonster::eFamily a_MobFamily)
  function cPawn (line 1253) | cPawn * cMonster::GetTarget()

FILE: src/Mobs/Monster.h
  function class (line 16) | class cMonster:

FILE: src/Mobs/MonsterTypes.h
  type eMonsterType (line 10) | enum eMonsterType

FILE: src/Mobs/Mooshroom.h
  function class (line 10) | class cMooshroom:

FILE: src/Mobs/Ocelot.h
  function class (line 11) | class cOcelot:

FILE: src/Mobs/PassiveAggressiveMonster.h
  function class (line 10) | class cPassiveAggressiveMonster:

FILE: src/Mobs/PassiveMonster.h
  function class (line 11) | class cPassiveMonster:

FILE: src/Mobs/Path.cpp
  function ePathFinderStatus (line 84) | ePathFinderStatus cPath::CalculationStep(cChunk & a_Chunk)
  function Vector3i (line 123) | Vector3i cPath::AcceptNearbyPath()
  function cPathCell (line 387) | cPathCell * cPath::OpenListPop()  // Popping from the open list also mea...
  function cPathCell (line 536) | cPathCell * cPath::GetCell(const Vector3i & a_Location)

FILE: src/Mobs/Path.h
  type class (line 26) | enum class
  type class (line 27) | enum class
  type cPathCell (line 43) | struct cPathCell
  function class (line 58) | class compareHeuristics
  function Vector3d (line 112) | inline Vector3d GetNextPoint()
  function NoMoreWayPoints (line 123) | inline bool NoMoreWayPoints() const

FILE: src/Mobs/PathFinder.cpp
  function ePathFinderStatus (line 23) | ePathFinderStatus cPathFinder::GetNextWayPoint(cChunk & a_Chunk, const V...

FILE: src/Mobs/PathFinder.h
  function class (line 11) | class cPathFinder

FILE: src/Mobs/Pig.h
  function class (line 10) | class cPig:

FILE: src/Mobs/Rabbit.h
  function eRabbitType (line 10) | enum class eRabbitType : UInt8

FILE: src/Mobs/Sheep.cpp
  function NIBBLETYPE (line 180) | NIBBLETYPE cSheep::GenerateNaturalRandomColor(void)

FILE: src/Mobs/Sheep.h
  function class (line 10) | class cSheep:

FILE: src/Mobs/Silverfish.h
  function class (line 10) | class cSilverfish:

FILE: src/Mobs/Skeleton.h
  function class (line 10) | class cSkeleton:

FILE: src/Mobs/Slime.cpp
  function AString (line 103) | AString cSlime::GetSizeName(int a_Size)

FILE: src/Mobs/Slime.h
  function class (line 10) | class cSlime:

FILE: src/Mobs/SnowGolem.h
  function class (line 10) | class cSnowGolem:

FILE: src/Mobs/Spider.h
  function class (line 10) | class cSpider:

FILE: src/Mobs/Squid.h
  function class (line 10) | class cSquid:

FILE: src/Mobs/Villager.h
  function class (line 11) | class cVillager:

FILE: src/Mobs/Witch.h
  function class (line 10) | class cWitch:

FILE: src/Mobs/Wither.h
  function class (line 10) | class cWither:

FILE: src/Mobs/WitherSkeleton.h
  function class (line 10) | class cWitherSkeleton:

FILE: src/Mobs/Wolf.h
  function class (line 12) | class cWolf:

FILE: src/Mobs/Zombie.h
  function class (line 9) | class cZombie:

FILE: src/Mobs/ZombiePigman.h
  function class (line 9) | class cZombiePigman:

FILE: src/Mobs/ZombieVillager.h
  function class (line 10) | class cZombieVillager:

FILE: src/MonsterConfig.cpp
  type cMonsterConfig::sAttributesStruct (line 12) | struct cMonsterConfig::sAttributesStruct
  type cMonsterConfig::sMonsterConfigState (line 30) | struct cMonsterConfig::sMonsterConfigState

FILE: src/MonsterConfig.h
  function class (line 15) | class cMonsterConfig

FILE: src/NetherPortalScanner.cpp
  class PortalSearchCallback (line 51) | class PortalSearchCallback : public cChunkDataCallback
    method PortalSearchCallback (line 55) | PortalSearchCallback(const int a_ChunkX, const int a_ChunkZ, bool & a_...
    method ChunkData (line 67) | virtual void ChunkData(const ChunkBlockData & a_BlockData, const Chunk...

FILE: src/NetherPortalScanner.h
  function class (line 15) | class cNetherPortalScanner : public cChunkStay

FILE: src/Noise/InterpolNoise.h
  function Generate (line 48) | void Generate(
  function InitWorkRnds (line 69) | void InitWorkRnds(int a_FloorX, int a_FloorY)
  function Move (line 81) | void Move(int a_NewFloorX, int a_NewFloorY)
  function InitWorkRnds (line 219) | void InitWorkRnds(int a_FloorX, int a_FloorY, int a_FloorZ)
  function Move (line 236) | void Move(int a_NewFloorX, int a_NewFloorY, int a_NewFloorZ)
  function SetSeed (line 329) | void SetSeed(int a_Seed)
  function Generate2D (line 336) | void Generate2D(
  function Generate3D (line 386) | void Generate3D(
  function CalcFloorFrac (line 475) | void CalcFloorFrac(
  type Interp5Deg (line 522) | struct Interp5Deg
  type cInterpolNoise (line 530) | typedef cInterpolNoise<Interp5Deg> cInterp5DegNoise;

FILE: src/Noise/Noise.cpp
  class cImprovedPerlinNoiseTest (line 16) | class cImprovedPerlinNoiseTest
    method cImprovedPerlinNoiseTest (line 19) | cImprovedPerlinNoiseTest(void)
    method TestImage (line 30) | void TestImage(void)
    method TestSpeed (line 46) | void TestSpeed(void)
    method TestSpeedArr (line 75) | void TestSpeedArr(void)
  function Debug3DNoise (line 115) | void Debug3DNoise(const NOISE_DATATYPE * a_Noise, size_t a_SizeX, size_t...
  function Debug2DNoise (line 168) | void Debug2DNoise(const NOISE_DATATYPE * a_Noise, size_t a_SizeX, size_t...
  class cCubicCell2D (line 196) | class cCubicCell2D
  class cCubicCell3D (line 347) | class cCubicCell3D
  function NOISE_DATATYPE (line 551) | NOISE_DATATYPE cNoise::LinearNoise1D(NOISE_DATATYPE a_X) const
  function NOISE_DATATYPE (line 562) | NOISE_DATATYPE cNoise::CosineNoise1D(NOISE_DATATYPE a_X) const
  function NOISE_DATATYPE (line 573) | NOISE_DATATYPE cNoise::CubicNoise1D(NOISE_DATATYPE a_X) const
  function NOISE_DATATYPE (line 584) | NOISE_DATATYPE cNoise::SmoothNoise1D(int a_X) const
  function NOISE_DATATYPE (line 593) | NOISE_DATATYPE cNoise::CubicNoise2D(NOISE_DATATYPE a_X, NOISE_DATATYPE a...
  function NOISE_DATATYPE (line 621) | NOISE_DATATYPE cNoise::CubicNoise3D(NOISE_DATATYPE a_X, NOISE_DATATYPE a...
  function NOISE_DATATYPE (line 1028) | NOISE_DATATYPE cImprovedNoise::GetValueAt(int a_X, int a_Y, int a_Z)

FILE: src/Noise/Noise.h
  type NOISE_DATATYPE (line 9) | typedef float NOISE_DATATYPE;
  function class (line 19) | class cNoise
  function class (line 67) | class cCubicNoise
  function class (line 121) | class cImprovedNoise
  type cOctavedNoise (line 176) | typedef cOctavedNoise<cCubicNoise> cPerlinNoise;
  type cOctavedNoise (line 177) | typedef cOctavedNoise<cRidgedNoise<cCubicNoise>> cRidgedMultiNoise;
  function NOISE_DATATYPE (line 187) | NOISE_DATATYPE cNoise::IntNoise1D(int a_X) const
  function NOISE_DATATYPE (line 198) | NOISE_DATATYPE cNoise::IntNoise2D(int a_X, int a_Y) const
  function NOISE_DATATYPE (line 210) | NOISE_DATATYPE cNoise::IntNoise3D(int a_X, int a_Y, int a_Z) const
  function NOISE_DATATYPE (line 224) | NOISE_DATATYPE cNoise::IntNoise3D(Vector3i a_Pos) const
  function IntNoise1DInt (line 233) | int cNoise::IntNoise1DInt(int a_X) const
  function IntNoise2DInt (line 243) | int cNoise::IntNoise2DInt(int a_X, int a_Y) const
  function IntNoise3DInt (line 254) | int cNoise::IntNoise3DInt(int a_X, int a_Y, int a_Z) const
  function IntNoise3DInt (line 265) | int cNoise::IntNoise3DInt(Vector3i a_Pos) const
  function NOISE_DATATYPE (line 274) | NOISE_DATATYPE cNoise::CubicInterpolate(NOISE_DATATYPE a_A, NOISE_DATATY...
  function NOISE_DATATYPE (line 288) | NOISE_DATATYPE cNoise::Co
Copy disabled (too large) Download .json
Condensed preview — 1280 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,683K chars).
[
  {
    "path": ".clang-format",
    "chars": 883,
    "preview": "# Not the exact style guide but enough for basic clang-tidy fix-its\nLanguage: Cpp\nBasedOnStyle: LLVM\n\nAlignAfterOpenBrac"
  },
  {
    "path": ".clang-tidy",
    "chars": 1109,
    "preview": "Checks: >-\n  -*,\n  readability-identifier-naming,\n  readability-redundant-string-cstr,\n  readability-redundant-string-in"
  },
  {
    "path": ".editorconfig",
    "chars": 113,
    "preview": "\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = tab\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": ".gitattributes",
    "chars": 203,
    "preview": "# Set the *.data files to be checked out as binary files.\n# Used for the HTTP test data files, they need to have the CRL"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 20,
    "preview": "liberapay: Cuberite\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 28,
    "preview": "blank_issues_enabled: false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/issue-template.md",
    "chars": 396,
    "preview": "---\nname: Issue Template\nabout: Report a bug, feature request or another sort of issue\ntitle: ''\nlabels: ''\nassignees: '"
  },
  {
    "path": ".github/workflows/Build.yml",
    "chars": 7500,
    "preview": "# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if y"
  },
  {
    "path": ".github/workflows/StyleCheck.yml",
    "chars": 573,
    "preview": "name: Style Check\npermissions: {}\non:\n  push:\n    tags-ignore:\n      - release-*\n    branches:\n      - '**'\n  pull_reque"
  },
  {
    "path": ".gitignore",
    "chars": 1603,
    "preview": "build/\nbuild*/\nnbproject/\nipch/\nWin32/\nMCServer\nServer/Cuberite\nServer/buildinfo\nServer/CONTRIBUTORS\nServer/LICENSE\nServ"
  },
  {
    "path": ".gitmodules",
    "chars": 2042,
    "preview": "[submodule \"Server/Plugins/Core\"]\n\tpath = Server/Plugins/Core\n\turl = https://github.com/cuberite/Core.git\n[submodule \"Se"
  },
  {
    "path": "BACKERS",
    "chars": 389,
    "preview": "Thanks to the following people for supporting the Cuberite project with a donation:\n\n - Alvin\n - Anonymous\n - chrobione\n"
  },
  {
    "path": "CMake/AddDependencies.cmake",
    "chars": 3992,
    "preview": "function(build_dependencies)\n\t# Set options for SQLiteCpp, disable all their lints and other features we don't need:\n\tse"
  },
  {
    "path": "CMake/Fixups.cmake",
    "chars": 638,
    "preview": "function(emit_fixups)\n\tif(NOT MSVC AND \"${CMAKE_SYSTEM_PROCESSOR}\" MATCHES \"arm\")\n\t\t# mbed TLS uses the frame pointer's "
  },
  {
    "path": "CMake/GenerateBindings.cmake",
    "chars": 2828,
    "preview": "function(enable_bindings_generation)\n\t# Enumerate every Lua-exported class.\n\t# Changes to these files will cause binding"
  },
  {
    "path": "CMake/GroupSources.cmake",
    "chars": 888,
    "preview": "function(group_sources)\n\t# Enable the support for solution folders in MSVC\n\tset_property(GLOBAL PROPERTY USE_FOLDERS ON)"
  },
  {
    "path": "CMake/StampBuild.cmake",
    "chars": 2019,
    "preview": "# These env variables are used for configuring Travis CI builds.\nif(DEFINED ENV{TRAVIS_CUBERITE_FORCE32})\n\tset(FORCE32 $"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 3964,
    "preview": "# This is the top-level CMakeLists.txt file for the Cuberite project\n#\n# Use CMake to generate the build files for your "
  },
  {
    "path": "COMPILING.md",
    "chars": 14873,
    "preview": "Compiling Cuberite\n==================\n\nTo compile Cuberite from source, you need the following set of software:\n\n - CMak"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 8363,
    "preview": "How to Contribute to Cuberite\n=============================\n\nThank you for your interest in Cuberite. Contributing to Cu"
  },
  {
    "path": "CONTRIBUTORS",
    "chars": 1832,
    "preview": "This file contains all known copyright holders of this software, as far as is\npractically possible to ascertain.\n\nIf you"
  },
  {
    "path": "CheckLua.cmake",
    "chars": 573,
    "preview": "# CheckLua.cmake\n\n# Checks whether the Lua standalone interpreter is installed on the host system\n# If found, sets HAS_L"
  },
  {
    "path": "Doxyfile",
    "chars": 78142,
    "preview": "# Doxyfile 1.8.1.2\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org"
  },
  {
    "path": "GETTING-STARTED.md",
    "chars": 6823,
    "preview": "Getting Started\n===============\n\nHello! Thanks for wanting to work on this project :smile:, and I hope that this file wi"
  },
  {
    "path": "Jenkinsfile",
    "chars": 2009,
    "preview": "pipeline {\n    options {\n      timeout(time: 1, unit: 'HOURS') \n    }\n    agent {\n        docker 'cuberite/docker-ci/min"
  },
  {
    "path": "LICENSE",
    "chars": 11641,
    "preview": "Cuberite: A lightweight, fast and extensible game server for Minecraft\nwww:      https://cuberite.org\n\nCopyright 2011-20"
  },
  {
    "path": "README.md",
    "chars": 3818,
    "preview": "# Cuberite\n\n[![Jenkins Build Status](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuilds.cuberite.org%2Fjob"
  },
  {
    "path": "Server/.gitignore",
    "chars": 463,
    "preview": "*.exe\n*.dll\n*.exp\n*.lib\n*.ini\nCuberite\nCuberite_debug\nluaexe\nCommLogs/\nGalExports/\nGalExportWeb/\nGalleryWeb/\nlogs\nplayer"
  },
  {
    "path": "Server/Install/.gitignore",
    "chars": 19,
    "preview": "*.tag\n*.example.ini"
  },
  {
    "path": "Server/Install/Cuberite_high_detail_debug.cmd",
    "chars": 27,
    "preview": "Cuberite --crash-dump-full\n"
  },
  {
    "path": "Server/Install/Cuberite_medium_detail_debug.cmd",
    "chars": 30,
    "preview": "Cuberite --crash-dump-globals\n"
  },
  {
    "path": "Server/Install/PackWindowsExecutables.cmd",
    "chars": 1257,
    "preview": "@echo off\n:: This script is run in the Appveyor CI builds to pack up the artifacts\n:: It is expected to be run with the "
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/LibEvent-LICENSE.txt",
    "chars": 4528,
    "preview": "Libevent is available for use under the following license, commonly known\nas the 3-clause (or \"modified\") BSD license:\n\n"
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/Lua-LICENSE.txt",
    "chars": 1067,
    "preview": "Copyright (C) 1994-2008 Lua.org, PUC-Rio.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/LuaExpat-license.html",
    "chars": 4483,
    "preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n   \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html>\n"
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/LuaSQLite3-LICENSE.txt",
    "chars": 1998,
    "preview": "/************************************************************************\n* lsqlite3                                    "
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/MersenneTwister-LICENSE.txt",
    "chars": 2362,
    "preview": "// The Mersenne Twister is an algorithm for generating random numbers.  It\n// was designed with consideration of the fla"
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/SQLiteCpp-LICENSE.txt",
    "chars": 1120,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2012-2014 Sebastien Rombauts (sebastien.rombauts@gmail.com)\n\nPermission is hereby g"
  },
  {
    "path": "Server/Install/ThirdPartyLicenses/fmt-LICENSE.rst",
    "chars": 1310,
    "preview": "Copyright (c) 2012 - 2016, Victor Zverovich\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, wi"
  },
  {
    "path": "Server/Install/UnixExecutables.list",
    "chars": 188,
    "preview": "Cuberite\nPlugins\nPrefabs\nProtocol\nwebadmin\nBACKERS\nbrewing.txt\ncrafting.txt\nfurnace.txt\nitems.ini\nmonsters.ini\nbuildinfo"
  },
  {
    "path": "Server/Install/WindowsExecutables.list",
    "chars": 231,
    "preview": "Cuberite.exe\n*.dll\nPlugins\nPrefabs\nProtocol\nwebadmin\nBACKERS\nbrewing.txt\ncrafting.txt\nfurnace.txt\nitems.ini\nmonsters.ini"
  },
  {
    "path": "Server/Install/WindowsPDBs.list",
    "chars": 20,
    "preview": "*.pdb\nbuildinfo.txt\n"
  },
  {
    "path": "Server/Plugins/.gitignore",
    "chars": 78,
    "preview": "/*\n!/APIDump\n!/Debuggers\n!/DumpInfo\n!/HookNotify\n!/NetworkTest\n!/TestLuaRocks\n"
  },
  {
    "path": "Server/Plugins/APIDump/APIDesc.lua",
    "chars": 422589,
    "preview": "return\n{\n\tClasses =\n\t{\n\t\t--[[\n\t\t-- What the APIDump plugin understands / how to document stuff:\n\t\tExampleClassName =\n\t\t{"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/BlockArea.lua",
    "chars": 47459,
    "preview": "return\n{\n\tcBlockArea =\n\t{\n\t\tDesc = [[\n\t\t\tThis class is used when multiple adjacent blocks are to be manipulated. Because"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/BlockEntities.lua",
    "chars": 31731,
    "preview": "return\n{\n\tcBeaconEntity =\n\t{\n\t\tDesc = [[\n\t\t\tA beacon entity is a {{cBlockEntityWithItems}} descendant that represents a "
  },
  {
    "path": "Server/Plugins/APIDump/Classes/Geometry.lua",
    "chars": 60976,
    "preview": "\n-- Geometry.lua\n\n-- Defines the documentation for geometry-related classes:\n-- cBoundingBox, cCuboid, cLineBlockTracer,"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/Network.lua",
    "chars": 38567,
    "preview": "\n-- Network.lua\n\n-- Defines the documentation for the cNetwork-related classes and cUrlClient\n\n\n\n\n\nreturn\n{\n\tcNetwork =\n"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/Plugins.lua",
    "chars": 30011,
    "preview": "return\n{\n\tcPlugin =\n\t{\n\t\tDesc = \"cPlugin describes a Lua plugin. Each plugin has its own cPlugin object.\",\n\t\tFunctions ="
  },
  {
    "path": "Server/Plugins/APIDump/Classes/Projectiles.lua",
    "chars": 7915,
    "preview": "return\n{\n\tcArrowEntity =\n\t{\n\t\tDesc = [[\n\t\t\tRepresents the arrow when it is shot from the bow. A subclass of the {{cProje"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/RankManager.lua",
    "chars": 16578,
    "preview": "-- Describes the cRankManager class API\n\nreturn\n{\n\tcRankManager =\n\t{\n\t\tDesc = [[\n\t\t\tManages the players' permissions. Th"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/WebAdmin.lua",
    "chars": 6948,
    "preview": "return\n{\n\tcWebAdmin =\n\t{\n\t\tDesc = \"\",\n\t\tFunctions =\n\t\t{\n\t\t\tAddWebTab =\n\t\t\t{\n\t\t\t\tIsStatic = true,\n\t\t\t\tParams =\n\t\t\t\t{\n\t\t\t\t"
  },
  {
    "path": "Server/Plugins/APIDump/Classes/World.lua",
    "chars": 91336,
    "preview": "-- Describes the cWorld class API\n\nreturn\n{\n\tcWorld =\n\t{\n\t\tDesc = [[\n\t\t\tcWorld is the game world. It is the hub of all t"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnBlockSpread.lua",
    "chars": 2101,
    "preview": "return\n{\n\tHOOK_BLOCK_SPREAD =\n\t{\n\t\tCalledWhen = \"Called when a block spreads based on world conditions\",\n\t\tDefaultFnName"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnBlockToPickups.lua",
    "chars": 2438,
    "preview": "return\n{\n\tHOOK_BLOCK_TO_PICKUPS =\n\t{\n\t\tCalledWhen = \"A block is about to be dug ({{cPlayer|player}}, {{cEntity|entity}} "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnBrewingCompleted.lua",
    "chars": 891,
    "preview": "return\n{\n\tHOOK_BREWING_COMPLETED =\n\t{\n\t\tCalledWhen = \"A brewing process is completed.\",\n\t\tDefaultFnName = \"OnBrewingComp"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnBrewingCompleting.lua",
    "chars": 1000,
    "preview": "return\n{\n\tHOOK_BREWING_COMPLETING =\n\t{\n\t\tCalledWhen = \"A brewing process is completing.\",\n\t\tDefaultFnName = \"OnBrewingCo"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChat.lua",
    "chars": 1172,
    "preview": "return\n{\n\tHOOK_CHAT =\n\t{\n\t\tCalledWhen = \"Player sends a chat message\",\n\t\tDefaultFnName = \"OnChat\",  -- also used as page"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChunkAvailable.lua",
    "chars": 928,
    "preview": "return\n{\n\tHOOK_CHUNK_AVAILABLE =\n\t{\n\t\tCalledWhen = \"A chunk has just been added to world, either generated or loaded. \","
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChunkGenerated.lua",
    "chars": 2855,
    "preview": "return\n{\n\tHOOK_CHUNK_GENERATED =\n\t{\n\t\tCalledWhen = \"After a chunk was generated. Notification only.\",\n\t\tDefaultFnName = "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChunkGenerating.lua",
    "chars": 1623,
    "preview": "return\n{\n\tHOOK_CHUNK_GENERATING =\n\t{\n\t\tCalledWhen = \"A chunk is about to be generated. Plugin can override the built-in "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChunkUnloaded.lua",
    "chars": 975,
    "preview": "return\n{\n\tHOOK_CHUNK_UNLOADED =\n\t{\n\t\tCalledWhen = \"A chunk has been unloaded from the memory.\",\n\t\tDefaultFnName = \"OnChu"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnChunkUnloading.lua",
    "chars": 1179,
    "preview": "return\n{\n\tHOOK_CHUNK_UNLOADING =\n\t{\n\t\tCalledWhen = \" \tA chunk is about to be unloaded from the memory. Plugins may refus"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnCollectingPickup.lua",
    "chars": 1179,
    "preview": "return\n{\n\tHOOK_COLLECTING_PICKUP =\n\t{\n\t\tCalledWhen = \"Player is about to collect a pickup. Plugin can refuse / override "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnCraftingNoRecipe.lua",
    "chars": 1325,
    "preview": "return\n{\n\tHOOK_CRAFTING_NO_RECIPE =\n\t{\n\t\tCalledWhen = \" \tNo built-in crafting recipe is found. Plugin may provide a reci"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnDisconnect.lua",
    "chars": 1597,
    "preview": "return\n{\n\tHOOK_DISCONNECT =\n\t{\n\t\tCalledWhen = [[\n\t\t\tA client has disconnected, either by explicitly sending the disconne"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnDropSpense.lua",
    "chars": 980,
    "preview": "return\n{\n\tHOOK_DROPSPENSE =\n\t{\n\t\tCalledWhen = \"A dispenser or dropper is about to dispense/drop an item.\",\n\t\tDefaultFnNa"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnEntityAddEffect.lua",
    "chars": 1593,
    "preview": "return\n{\n\tHOOK_ENTITY_ADD_EFFECT =\n\t{\n\t\tCalledWhen = \"An entity effect is about to get added to an entity.\",\n\t\tDefaultFn"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnEntityChangedWorld.lua",
    "chars": 942,
    "preview": "return\n{\n\tHOOK_ENTITY_CHANGED_WORLD =\n\t{\n\t\tCalledWhen = \"After a entity has changed the world.\",\n\t\tDefaultFnName = \"OnEn"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnEntityChangingWorld.lua",
    "chars": 998,
    "preview": "return\n{\n\tHOOK_ENTITY_CHANGING_WORLD =\n\t{\n\t\tCalledWhen = \"Before a entity is changing the world.\",\n\t\tDefaultFnName = \"On"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnEntityTeleport.lua",
    "chars": 937,
    "preview": "return\n{\n\tHOOK_ENTITY_TELEPORT =\n\t{\n\t\tCalledWhen = \"Any entity teleports. Plugin may refuse teleport.\",\n\t\tDefaultFnName "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnExecuteCommand.lua",
    "chars": 2087,
    "preview": "return\n{\n\tHOOK_EXECUTE_COMMAND =\n\t{\n\t\tCalledWhen = [[\n\t\t\tA player executes an in-game command, or the admin issues a con"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnExploded.lua",
    "chars": 1772,
    "preview": "return\n{\n\tHOOK_EXPLODED =\n\t{\n\t\tCalledWhen = \"An explosion has happened\",\n\t\tDefaultFnName = \"OnExploded\",  -- also used a"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnExploding.lua",
    "chars": 2195,
    "preview": "return\n{\n\tHOOK_EXPLODING =\n\t{\n\t\tCalledWhen = \"An explosion is about to be processed\",\n\t\tDefaultFnName = \"OnExploding\",  "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnHandshake.lua",
    "chars": 1047,
    "preview": "return\n{\n\tHOOK_HANDSHAKE =\n\t{\n\t\tCalledWhen = \"A client is connecting.\",\n\t\tDefaultFnName = \"OnHandshake\",  -- also used a"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnHopperPullingItem.lua",
    "chars": 1336,
    "preview": "return\n{\n\tHOOK_HOPPER_PULLING_ITEM =\n\t{\n\t\tCalledWhen = \"A hopper is pulling an item from another block entity.\",\n\t\tDefau"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnHopperPushingItem.lua",
    "chars": 1338,
    "preview": "return\n{\n\tHOOK_HOPPER_PUSHING_ITEM =\n\t{\n\t\tCalledWhen = \"A hopper is pushing an item into another block entity. \",\n\t\tDefa"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnKilled.lua",
    "chars": 1204,
    "preview": "return \n{\n\tHOOK_KILLED = \n\t{\n\t\tCalledWhen = \"A player or a mob died.\",\n\t\tDefaultFnName = \"OnKilled\",\n\t\tDesc = [[\n\t\t\tThis"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnKilling.lua",
    "chars": 1190,
    "preview": "return\n{\n\tHOOK_KILLING =\n\t{\n\t\tCalledWhen = \"A player or a mob is dying.\",\n\t\tDefaultFnName = \"OnKilling\",  -- also used a"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnLogin.lua",
    "chars": 1581,
    "preview": "return\n{\n\tHOOK_LOGIN =\n\t{\n\t\tCalledWhen = \"Right before player authentication. If auth is disabled, right after the playe"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerAnimation.lua",
    "chars": 955,
    "preview": "return\n{\n\tHOOK_PLAYER_ANIMATION =\n\t{\n\t\tCalledWhen = \"A client has sent an Animation packet\",\n\t\tDefaultFnName = \"OnPlayer"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerBreakingBlock.lua",
    "chars": 1596,
    "preview": "return\n{\n\tHOOK_PLAYER_BREAKING_BLOCK =\n\t{\n\t\tCalledWhen = \"Just before a player breaks a block. Plugin may override / ref"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerBrokenBlock.lua",
    "chars": 1564,
    "preview": "return\n{\n\tHOOK_PLAYER_BROKEN_BLOCK =\n\t{\n\t\tCalledWhen = \"After a player has broken a block. Notification only.\",\n\t\tDefaul"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerCrouched.lua",
    "chars": 528,
    "preview": "return\n{\n\tHOOK_PLAYER_CROUCHED =\n\t{\n\t\tCalledWhen = \"Player crouched in the tick being currently processed.\",\n\t\tDefaultFn"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerDestroyed.lua",
    "chars": 930,
    "preview": "return\n{\n\tHOOK_PLAYER_DESTROYED =\n\t{\n\t\tCalledWhen = \"A player object is about to be destroyed.\",\n\t\tDefaultFnName = \"OnPl"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerEating.lua",
    "chars": 828,
    "preview": "return\n{\n\tHOOK_PLAYER_EATING =\n\t{\n\t\tCalledWhen = \"When the player starts eating\",\n\t\tDefaultFnName = \"OnPlayerEating\",  -"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerFished.lua",
    "chars": 843,
    "preview": "return\n{\n\tHOOK_PLAYER_FISHED =\n\t{\n\t\tCalledWhen = \"A player gets a reward from fishing.\",\n\t\tDefaultFnName = \"OnPlayerFish"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerFishing.lua",
    "chars": 886,
    "preview": "return\n{\n\tHOOK_PLAYER_FISHING =\n\t{\n\t\tCalledWhen = \"A player is about to get a reward from fishing.\",\n\t\tDefaultFnName = \""
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerFoodLevelChange.lua",
    "chars": 879,
    "preview": "return\n{\n\tHOOK_PLAYER_FOOD_LEVEL_CHANGE =\n\t{\n\t\tCalledWhen = \"Called before the player food level changed. Plugin may ove"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerJoined.lua",
    "chars": 1244,
    "preview": "return\n{\n\tHOOK_PLAYER_JOINED =\n\t{\n\t\tCalledWhen = \"After Login and before Spawned, before being added to world. \",\n\t\tDefa"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerLeftClick.lua",
    "chars": 2490,
    "preview": "return\n{\n\tHOOK_PLAYER_LEFT_CLICK =\n\t{\n\t\tCalledWhen = \"A left-click packet is received from the client. Plugin may overri"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerMoving.lua",
    "chars": 1106,
    "preview": "return\n{\n\tHOOK_PLAYER_MOVING =\n\t{\n\t\tCalledWhen = \"Player tried to move in the tick being currently processed. Plugin may"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerOpeningWindow.lua",
    "chars": 780,
    "preview": "return\n{\n\tHOOK_PLAYER_OPENING_WINDOW =\n\t{\n\t\tCalledWhen = \"Called when a player is about to open a window\",\n\t\tDefaultFnNa"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerPlacedBlock.lua",
    "chars": 1637,
    "preview": "return\n{\n\tHOOK_PLAYER_PLACED_BLOCK =\n\t{\n\t\tCalledWhen = \"After a player has placed a block. Notification only.\",\n\t\tDefaul"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerPlacingBlock.lua",
    "chars": 2109,
    "preview": "return\n{\n\tHOOK_PLAYER_PLACING_BLOCK =\n\t{\n\t\tCalledWhen = \"Just before a player places a block. Plugin may override / refu"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerRightClick.lua",
    "chars": 1957,
    "preview": "return\n{\n\tHOOK_PLAYER_RIGHT_CLICK =\n\t{\n\t\tCalledWhen = \"A right-click packet is received from the client. Plugin may over"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerRightClickingEntity.lua",
    "chars": 950,
    "preview": "return\n{\n\tHOOK_PLAYER_RIGHT_CLICKING_ENTITY =\n\t{\n\t\tCalledWhen = \"A player has right-clicked an entity. Plugins may overr"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerShooting.lua",
    "chars": 1175,
    "preview": "return\n{\n\tHOOK_PLAYER_SHOOTING =\n\t{\n\t\tCalledWhen = \"When the player releases the bow, shooting an arrow (other projectil"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerSpawned.lua",
    "chars": 1282,
    "preview": "return\n{\n\tHOOK_PLAYER_SPAWNED =\n\t{\n\t\tCalledWhen = \"After a player (re)spawns in the world to which they belong to.\",\n\t\tD"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerTossingItem.lua",
    "chars": 1162,
    "preview": "return\n{\n\tHOOK_PLAYER_TOSSING_ITEM =\n\t{\n\t\tCalledWhen = \"A player is tossing an item. Plugin may override / refuse.\",\n\t\tD"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerUsedBlock.lua",
    "chars": 2386,
    "preview": "return\n{\n\tHOOK_PLAYER_USED_BLOCK =\n\t{\n\t\tCalledWhen = \"A player has just used a block (chest, furnace...). Notification o"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerUsedItem.lua",
    "chars": 2270,
    "preview": "return\n{\n\tHOOK_PLAYER_USED_ITEM =\n\t{\n\t\tCalledWhen = \"A player has used an item in hand (bucket...)\",\n\t\tDefaultFnName = \""
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerUsingBlock.lua",
    "chars": 2511,
    "preview": "return\n{\n\tHOOK_PLAYER_USING_BLOCK =\n\t{\n\t\tCalledWhen = \"Just before a player uses a block (chest, furnace...). Plugin may"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPlayerUsingItem.lua",
    "chars": 2375,
    "preview": "return\n{\n\tHOOK_PLAYER_USING_ITEM =\n\t{\n\t\tCalledWhen = \"Just before a player uses an item in hand (bucket...). Plugin may "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPluginMessage.lua",
    "chars": 887,
    "preview": "return\n{\n\tHOOK_PLUGIN_MESSAGE =\n\t{\n\t\tCalledWhen = \"The server receives a plugin message from a client\",\n\t\tDefaultFnName "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPluginsLoaded.lua",
    "chars": 2702,
    "preview": "return\n{\n\tHOOK_PLUGINS_LOADED =\n\t{\n\t\tCalledWhen = \"All the enabled plugins have been loaded\",\n\t\tDefaultFnName = \"OnPlugi"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPostCrafting.lua",
    "chars": 1584,
    "preview": "return\n{\n\tHOOK_POST_CRAFTING =\n\t{\n\t\tCalledWhen = \"After the built-in recipes are checked and a recipe was found.\",\n\t\tDef"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnPreCrafting.lua",
    "chars": 1523,
    "preview": "return\n{\n\tHOOK_PRE_CRAFTING =\n\t{\n\t\tCalledWhen = \"Before the built-in recipes are checked.\",\n\t\tDefaultFnName = \"OnPreCraf"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnProjectileHitBlock.lua",
    "chars": 1134,
    "preview": "return\n{\n\tHOOK_PROJECTILE_HIT_BLOCK =\n\t{\n\t\tCalledWhen = \"A projectile hits a solid block.\",\n\t\tDefaultFnName = \"OnProject"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnProjectileHitEntity.lua",
    "chars": 747,
    "preview": "return\n{\n\tHOOK_PROJECTILE_HIT_ENTITY =\n\t{\n\t\tCalledWhen = \"A projectile hits another entity.\",\n\t\tDefaultFnName = \"OnProje"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnServerPing.lua",
    "chars": 2367,
    "preview": "return\n{\n\tHOOK_SERVER_PING =\n\t{\n\t\tCalledWhen = \"Client pings the server from the server list.\",\n\t\tDefaultFnName = \"OnSer"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnSpawnedEntity.lua",
    "chars": 1039,
    "preview": "return\n{\n\tHOOK_SPAWNED_ENTITY =\n\t{\n\t\tCalledWhen = \"After an entity is spawned in the world.\",\n\t\tDefaultFnName = \"OnSpawn"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnSpawnedMonster.lua",
    "chars": 1024,
    "preview": "return\n{\n\tHOOK_SPAWNED_MONSTER =\n\t{\n\t\tCalledWhen = \"After a monster is spawned in the world\",\n\t\tDefaultFnName = \"OnSpawn"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnSpawningEntity.lua",
    "chars": 1248,
    "preview": "return\n{\n\tHOOK_SPAWNING_ENTITY =\n\t{\n\t\tCalledWhen = \"Before an entity is spawned in the world.\",\n\t\tDefaultFnName = \"OnSpa"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnSpawningMonster.lua",
    "chars": 1195,
    "preview": "return\n{\n\tHOOK_SPAWNING_MONSTER =\n\t{\n\t\tCalledWhen = \"Before a monster is spawned in the world.\",\n\t\tDefaultFnName = \"OnSp"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnTakeDamage.lua",
    "chars": 1214,
    "preview": "return\n{\n\tHOOK_TAKE_DAMAGE =\n\t{\n\t\tCalledWhen = \"An {{cEntity|entity}} is taking any kind of damage\",\n\t\tDefaultFnName = \""
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnTick.lua",
    "chars": 987,
    "preview": "return\n{\n\tHOOK_TICK =\n\t{\n\t\tCalledWhen = \"Every server tick (approximately 20 times per second)\",\n\t\tDefaultFnName = \"OnTi"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnUpdatedSign.lua",
    "chars": 1592,
    "preview": "return\n{\n\tHOOK_UPDATED_SIGN =\n\t{\n\t\tCalledWhen = \"After the sign text is updated. Notification only.\",\n\t\tDefaultFnName = "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnUpdatingSign.lua",
    "chars": 2350,
    "preview": "return\n{\n\tHOOK_UPDATING_SIGN =\n\t{\n\t\tCalledWhen = \"Before the sign text is updated. Plugin may modify the text / refuse.\""
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnWeatherChanged.lua",
    "chars": 784,
    "preview": "return\n{\n\tHOOK_WEATHER_CHANGED =\n\t{\n\t\tCalledWhen = \"The weather has changed\",\n\t\tDefaultFnName = \"OnWeatherChanged\",  -- "
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnWeatherChanging.lua",
    "chars": 1369,
    "preview": "return\n{\n\tHOOK_WEATHER_CHANGING =\n\t{\n\t\tCalledWhen = \"The weather is about to change\",\n\t\tDefaultFnName = \"OnWeatherChangi"
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnWorldStarted.lua",
    "chars": 580,
    "preview": "return\n{\n\tHOOK_WORLD_STARTED =\n\t{\n\t\tCalledWhen = \"A {{cWorld|world}} is initialized\",\n\t\tDefaultFnName = \"OnWorldStarted\""
  },
  {
    "path": "Server/Plugins/APIDump/Hooks/OnWorldTick.lua",
    "chars": 1018,
    "preview": "return\n{\n\tHOOK_WORLD_TICK =\n\t{\n\t\tCalledWhen = \"Every world tick (about 20 times per second), separately for each world\","
  },
  {
    "path": "Server/Plugins/APIDump/InfoFile.html",
    "chars": 13746,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Cuberite - Info.lua file</title>\n\t\t<link rel=\"canonical\" href=\"https://api.cuber"
  },
  {
    "path": "Server/Plugins/APIDump/LICENSE-prettify.txt",
    "chars": 10763,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "Server/Plugins/APIDump/SettingUpDecoda.html",
    "chars": 7517,
    "preview": "<!DOCTYPE html>\n\n<html>\n\t<head>\n\t\t<title>Cuberite - Setting up Decoda</title>\n\t\t<link rel=\"canonical\" href=\"https://api."
  },
  {
    "path": "Server/Plugins/APIDump/SettingUpLuaLanguageServer.html",
    "chars": 3290,
    "preview": "<!DOCTYPE html>\n\n<html>\n\t<head>\n\t\t<title>Cuberite - Setting up the Lua-Language-Server (VSCode)</title>\n\t\t<link rel=\"can"
  },
  {
    "path": "Server/Plugins/APIDump/SettingUpZeroBrane.html",
    "chars": 8430,
    "preview": "<!DOCTYPE html>\n\n<html>\n\t<head>\n\t\t<title>Cuberite - Setting up ZeroBrane Studio</title>\n\t\t<link rel=\"canonical\" href=\"ht"
  },
  {
    "path": "Server/Plugins/APIDump/Static/.gitignore",
    "chars": 2,
    "preview": " \n"
  },
  {
    "path": "Server/Plugins/APIDump/UsingChunkStays.html",
    "chars": 8307,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Cuberite - Using ChunkStays</title>\n\t\t<link rel=\"canonical\" href=\"https://api.cu"
  },
  {
    "path": "Server/Plugins/APIDump/WebWorldThreads.html",
    "chars": 5697,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Cuberite - Webserver vs World threads</title>\n\t\t<link rel=\"canonical\" href=\"http"
  },
  {
    "path": "Server/Plugins/APIDump/Writing-a-Cuberite-plugin.html",
    "chars": 12651,
    "preview": "<!DOCTYPE html>\n\n<html>\n\t<head>\n\t\t<title>Cuberite Plugin Tutorial</title>\n\t\t<link rel=\"canonical\" href=\"https://api.cube"
  },
  {
    "path": "Server/Plugins/APIDump/_preload.lua",
    "chars": 467,
    "preview": "\n-- _preload.lua\n\n-- First thing executed when the plugin loads. Replaces the global environment (_G) with an empty tabl"
  },
  {
    "path": "Server/Plugins/APIDump/lang-lua.js",
    "chars": 553,
    "preview": "PR.registerLangHandler(PR.createSimpleLexer([[\"pln\",/^[\\t\\n\\r \\xa0]+/,null,\"\\t\\n\\r \\u00a0\"],[\"str\",/^(?:\"(?:[^\"\\\\]|\\\\[\\S"
  },
  {
    "path": "Server/Plugins/APIDump/lualanguageserver.lua",
    "chars": 5643,
    "preview": "-- lualanguageserver.lua\n\n-- Implements the code for exporting definition files which can be used by a Lua-Language-Serv"
  },
  {
    "path": "Server/Plugins/APIDump/main.css",
    "chars": 892,
    "preview": "html\n{\n\tbackground-color: #C0C0C0;\n}\n\ntable\n{\n\tbackground-color: #fff;\n\tborder-spacing: 0px;\n\tborder-collapse: collapse;"
  },
  {
    "path": "Server/Plugins/APIDump/main_APIDump.lua",
    "chars": 67761,
    "preview": "-- main.lua\n\n-- Implements the plugin entrypoint (in this case the entire plugin)\n\n\n\n\n\n-- Global variables:\nlocal g_Plug"
  },
  {
    "path": "Server/Plugins/APIDump/prettify.css",
    "chars": 675,
    "preview": ".pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,"
  },
  {
    "path": "Server/Plugins/APIDump/prettify.js",
    "chars": 14551,
    "preview": "!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function S(a){function d(e){var b=e.charCodeAt("
  },
  {
    "path": "Server/Plugins/Debuggers/Debuggers.lua",
    "chars": 76955,
    "preview": "\n-- Global variables\ng_DropSpensersToActivate = {};  -- A list of dispensers and droppers (as {World, X, Y Z} quadruplet"
  },
  {
    "path": "Server/Plugins/Debuggers/Info.lua",
    "chars": 9456,
    "preview": "\n-- Info.lua\n\n-- Implements the g_PluginInfo standard plugin description\n\n\n\n\n\ng_PluginInfo =\n{\n\tName = \"Debuggers\",\n\tVer"
  },
  {
    "path": "Server/Plugins/Debuggers/Inject.lua",
    "chars": 1275,
    "preview": "-- Inject.lua\n\n-- This file gets injected into the Core plugin when testing the inter-plugin calls with the \"testcall\" c"
  },
  {
    "path": "Server/Plugins/DumpInfo/Init.lua",
    "chars": 1357,
    "preview": "function Initialize(a_Plugin)\n\ta_Plugin:SetName(\"DumpInfo\")\n\ta_Plugin:SetVersion(1)\n\t\n\t-- Check if the infodump file exi"
  },
  {
    "path": "Server/Plugins/HookNotify/HookNotify.lua",
    "chars": 2130,
    "preview": "\n-- HookNotify.lua\n\n--[[\nImplements the entire plugin\n\nNOTE: This plugin is not meant for production servers. It is used"
  },
  {
    "path": "Server/Plugins/InfoDump.lua",
    "chars": 24118,
    "preview": "#!/usr/bin/lua\n\n-- InfoDump.lua\n\n--[[\nLoads plugins' Info.lua and dumps its g_PluginInfo (or gPluginInfo) into various t"
  },
  {
    "path": "Server/Plugins/InfoReg.lua",
    "chars": 7706,
    "preview": "\n-- InfoReg.lua\n\n--[[\nImplements functions that process the standard PluginInfo description and register command handler"
  },
  {
    "path": "Server/Plugins/NetworkTest/Info.lua",
    "chars": 4010,
    "preview": "\n-- Info.lua\n\n-- Implements the g_PluginInfo standard plugin description\n\ng_PluginInfo =\n{\n\tName = \"NetworkTest\",\n\tVersi"
  },
  {
    "path": "Server/Plugins/NetworkTest/NetworkTest.lua",
    "chars": 17057,
    "preview": "\n-- NetworkTest.lua\n\n-- Implements a few tests for the cNetwork API\n\n\n\n\n\n--- Map of all servers currently open\n-- g_Serv"
  },
  {
    "path": "Server/Plugins/NetworkTest/splashes.txt",
    "chars": 6835,
    "preview": "As seen on TV!\nAwesome!\n100% pure!\nMay contain nuts!\nBetter than Prey!\nMore polygons!\nSexy!\nLimited edition!\nFlashing le"
  },
  {
    "path": "Server/Plugins/TestLuaRocks/TestLuaRocks.lua",
    "chars": 1205,
    "preview": "\n-- TestLuaRocks.lua\n\n-- This is a mockup plugin that does a quick test of LuaRocks capability in Cuberite\n\n-- \"Success\""
  },
  {
    "path": "Server/Prefabs/PieceStructures/NetherFort.cubeset",
    "chars": 146243,
    "preview": "\n-- NetherFort.cubeset\n\n-- Defines the prefabs in the group NetherFort\n\n-- NOTE: This file has been generated automatica"
  },
  {
    "path": "Server/Prefabs/PieceStructures/RainbowRoad.cubeset",
    "chars": 32269,
    "preview": "\n-- RainbowRoad.cubeset\n\n-- Defines the prefabs in the group RainbowRoad\n\n-- NOTE: This file has been generated automati"
  },
  {
    "path": "Server/Prefabs/PieceStructures/TestRails.cubeset",
    "chars": 13148,
    "preview": "\n-- TestRails.cubeset\n\n-- Defines the prefabs in the group TestRails\n\n-- NOTE: This file has been generated automaticall"
  },
  {
    "path": "Server/Prefabs/PieceStructures/TreePaths.cubeset",
    "chars": 90239,
    "preview": "\n-- TreePaths.cubeset\n\n-- Defines the prefabs in the group TreePaths\n\n-- NOTE: This file has been generated automaticall"
  },
  {
    "path": "Server/Prefabs/PieceStructures/UnderwaterBase.cubeset",
    "chars": 57185,
    "preview": "\n-- UnderwaterBase.cubeset\n\n-- Defines the prefabs in the group UnderwaterBase\n\n-- NOTE: This file has been generated au"
  },
  {
    "path": "Server/Prefabs/SinglePieceStructures/DesertPyramid.cubeset",
    "chars": 25469,
    "preview": "\n-- DesertPyramid.cubeset\n\n-- Defines the prefabs in the group DesertPyramid\n\n-- NOTE: This file has been generated auto"
  },
  {
    "path": "Server/Prefabs/SinglePieceStructures/DesertWell.cubeset",
    "chars": 2347,
    "preview": "\n-- DesertWell.cubeset\n\n-- Defines the prefabs in the group DesertWell\n\n-- NOTE: This file has been generated automatica"
  },
  {
    "path": "Server/Prefabs/SinglePieceStructures/JungleTemple.cubeset",
    "chars": 8146,
    "preview": "\n-- JungleTemple.cubeset\n\n-- Defines the prefabs in the group JungleTemple\n\n-- NOTE: This file has been generated automa"
  },
  {
    "path": "Server/Prefabs/SinglePieceStructures/WitchHut.cubeset",
    "chars": 2786,
    "preview": "\n-- WitchHut.cubeset\n\n-- Defines the prefabs in the group WitchHut\n\n-- NOTE: This file has been generated automatically "
  },
  {
    "path": "Server/Prefabs/Villages/AlchemistVillage.cubeset",
    "chars": 77406,
    "preview": "\n-- AlchemistVillage.cubeset\n\n-- Defines the prefabs in the group AlchemistVillage\n\n-- NOTE: This file has been generate"
  },
  {
    "path": "Server/Prefabs/Villages/JapaneseVillage.cubeset",
    "chars": 74967,
    "preview": "\n-- JapaneseVillage.cubeset\n\n-- Defines the prefabs in the group JapaneseVillage\n\n-- NOTE: This file has been generated "
  },
  {
    "path": "Server/Prefabs/Villages/PlainsVillage.cubeset",
    "chars": 131677,
    "preview": "\n-- PlainsVillage.cubeset\n\n-- Defines the prefabs in the group PlainsVillage\n\n-- NOTE: This file has been generated auto"
  },
  {
    "path": "Server/Prefabs/Villages/SandFlatRoofVillage.cubeset",
    "chars": 35575,
    "preview": "\n-- SandFlatRoofVillage.cubeset\n\n-- Defines the prefabs in the group SandFlatRoofVillage\n\n-- NOTE: This file has been ge"
  },
  {
    "path": "Server/Prefabs/Villages/SandVillage.cubeset",
    "chars": 49040,
    "preview": "\n-- SandVillage.cubeset\n\n-- Defines the prefabs in the group SandVillage\n\n-- NOTE: This file has been generated automati"
  },
  {
    "path": "Server/Protocol/1.12.2/base.recipes.txt",
    "chars": 8304,
    "preview": "# recipeId minecraftName\n\n11 yellow_wool\n12 yellow_terracotta\n13 yellow_stained_glass_pane\n14 yellow_stained_glass\n15 ye"
  },
  {
    "path": "Server/Protocol/1.13/base.btp.txt",
    "chars": 557828,
    "preview": "BlockTypePalette\nFileVersion\t1\nCommonPrefix\tminecraft:\n\n0\tair\n1\tstone\n2\tgranite\n3\tpolished_granite\n4\tdiorite\n5\tpolished_"
  },
  {
    "path": "Server/Protocol/1.14.4/base.btp.txt",
    "chars": 764866,
    "preview": "BlockTypePalette\nFileVersion\t1\nCommonPrefix\tminecraft:\n\n0\tair\n1\tstone\n2\tgranite\n3\tpolished_granite\n4\tdiorite\n5\tpolished_"
  },
  {
    "path": "Server/Protocol/UpgradeBlockTypePalette.txt",
    "chars": 75615,
    "preview": "UpgradeBlockTypePalette\nFileVersion\t1\nCommonPrefix\tminecraft:\n\n0\t0\tair\n1\t0\tstone\n1\t1\tgranite\n1\t2\tpolished_granite\n1\t3\tdi"
  },
  {
    "path": "Server/README.txt",
    "chars": 692,
    "preview": "--------------------------------------------------------------------------------\n   Welcome to your new Cuberite server,"
  },
  {
    "path": "Server/brewing.txt",
    "chars": 2741,
    "preview": "#*****************#\n# Brewing Recipes #\n#*****************#\n# The time for a brewing recipe is always 20 seconds (400 ti"
  },
  {
    "path": "Server/delete_windows_service.cmd",
    "chars": 66,
    "preview": "@echo off\r\nset SERVICENAME=\"Cuberite\"\r\n\r\nsc delete %SERVICENAME%\r\n"
  },
  {
    "path": "Server/furnace.txt",
    "chars": 8484,
    "preview": "#*****************#\n# Furnace Recipes #\n#*****************#\n#\n#\n#******************************************************#"
  },
  {
    "path": "Server/hg",
    "chars": 316,
    "preview": "#! /bin/bash\n\n# This script runs Cuberite under helgrind\n# It expects valgrind to be normally installed and available\n# "
  },
  {
    "path": "Server/hg.supp",
    "chars": 581,
    "preview": "# This is a valgrind suppressions file for running helgrind on Cuberite\n# Use by adding \"--suppressions=hg.supp\" to the "
  },
  {
    "path": "Server/install_windows_service.cmd",
    "chars": 305,
    "preview": "rem Alter this if you need to install multiple instances.\r\n@echo off\r\nset SERVICENAME=\"Cuberite\"\r\n\r\nset CURRENTDIR=%CD%\r"
  },
  {
    "path": "Server/vg",
    "chars": 375,
    "preview": "#! /bin/bash\n\n# This script runs Cuberite under valgrind\n# It expects valgrind to be normally installed and available\n# "
  },
  {
    "path": "Server/vg.supp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Server/webadmin/GenerateSelfSignedHTTPSCertUsingOpenssl.cmd",
    "chars": 665,
    "preview": "@echo off\necho This script generates the certificate and private key for the https webadmin\necho Note that the generated"
  },
  {
    "path": "Server/webadmin/GenerateSelfSignedHTTPSCertUsingOpenssl.sh",
    "chars": 520,
    "preview": "#!/bin/bash\n\necho \"This script generates the certificate and private key for the https webadmin\"\necho \"Note that the gen"
  },
  {
    "path": "Server/webadmin/files/guest.html",
    "chars": 500,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"utf-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "Server/webadmin/files/style.css",
    "chars": 6703,
    "preview": "/* Copyright Justin S and Cuberite Team, licensed under CC-BY-SA 3.0 */\n* {\n\tfont-family: inherit;\n\tmargin: 0;\n}\n\nhtml,\n"
  },
  {
    "path": "Server/webadmin/login_template.html",
    "chars": 1523,
    "preview": "<!-- Copyright Justin S and Cuberite Team, licensed under CC-BY-SA 3.0 -->\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>Cuberit"
  },
  {
    "path": "Server/webadmin/template.lua",
    "chars": 4737,
    "preview": "-- Use a table for fast concatenation of strings\nlocal SiteContent = {}\nfunction Output(String)\n\ttable.insert(SiteConten"
  },
  {
    "path": "SetFlags.cmake",
    "chars": 7101,
    "preview": "macro (add_flags_lnk FLAGS)\n\tset(CMAKE_EXE_LINKER_FLAGS             \"${CMAKE_EXE_LINKER_FLAGS}             ${FLAGS}\")\n\ts"
  },
  {
    "path": "TESTING.md",
    "chars": 1719,
    "preview": "Contributing by Testing Cuberite\n================================\n\nYou can help us even if you are not a programmer! Thi"
  },
  {
    "path": "Tools/.gitignore",
    "chars": 7,
    "preview": "Debug/\n"
  },
  {
    "path": "Tools/AnvilStats/.gitignore",
    "chars": 110,
    "preview": "*.vcproj\n*.vcxproj\n*.sln\n*.user\n.xls\nStatistics.txt\n*.bmp\nDebug/\nRelease/\nProfiling\n*.png\nworld/\n*.html\n*.xls\n"
  },
  {
    "path": "Tools/AnvilStats/AnvilStats.cpp",
    "chars": 1470,
    "preview": "\n// AnvilStats.cpp\n\n// Implements the main app entrypoint\n\n#include \"Globals.h\"\n#include \"Processor.h\"\n#include \"Statist"
  },
  {
    "path": "Tools/AnvilStats/AnvilStats.txt",
    "chars": 968,
    "preview": "\n// AnvilStats.txt\n\n// A Readme for the project\n\n/*\nAnvilStats\n==========\n\nThis is a project for measuring various metri"
  },
  {
    "path": "Tools/AnvilStats/BiomeMap.cpp",
    "chars": 3029,
    "preview": "\n// BiomeMap.cpp\n\n// Implements the cBiomeMap class representing a cCallback descendant that draws a map of biomes for t"
  },
  {
    "path": "Tools/AnvilStats/BiomeMap.h",
    "chars": 1714,
    "preview": "\n// BiomeMap.h\n\n// Interfaces to the cBiomeMap class representing a cCallback descendant that draws a map of biomes for "
  },
  {
    "path": "Tools/AnvilStats/CMakeLists.txt",
    "chars": 2702,
    "preview": "project (AnvilStats)\n\n# Set include paths to the used libraries:\ninclude_directories(\"../../lib\")\ninclude_directories(\"."
  },
  {
    "path": "Tools/AnvilStats/Callback.h",
    "chars": 6161,
    "preview": "\n// Callback.h\n\n// Interfaces to the cCallback base class used as the base class for all statistical callbacks\n\n\n\n\n\n#pra"
  },
  {
    "path": "Tools/AnvilStats/ChunkExtract.cpp",
    "chars": 2594,
    "preview": "\n// ChunkExtract.cpp\n\n// Implements the cChunkExtract class representing a cCallback descendant that extracts raw chunk "
  },
  {
    "path": "Tools/AnvilStats/ChunkExtract.h",
    "chars": 1456,
    "preview": "\n// ChunkExtract.h\n\n// Declares the cChunkExtract class representing a cCallback descendant that extracts raw chunk data"
  },
  {
    "path": "Tools/AnvilStats/Globals.cpp",
    "chars": 119,
    "preview": "\n// Globals.cpp\n\n// This file is used for precompiled header generation in MSVC environments\n\n#include \"Globals.h\"\n\n\n\n\n"
  },
  {
    "path": "Tools/AnvilStats/Globals.h",
    "chars": 4215,
    "preview": "\n// Globals.h\n\n// This file gets included from every module in the project, so that global symbols may be introduced eas"
  },
  {
    "path": "Tools/AnvilStats/HeightBiomeMap.cpp",
    "chars": 5059,
    "preview": "\n// HeightBiomeMap.cpp\n\n// Declares the cHeightBiomeMap class representing a stats module that produces an image of heig"
  },
  {
    "path": "Tools/AnvilStats/HeightBiomeMap.h",
    "chars": 2444,
    "preview": "\n// HeightBiomeMap.h\n\n// Declares the cHeightBiomeMap class representing a stats module that produces an image of height"
  },
  {
    "path": "Tools/AnvilStats/HeightMap.cpp",
    "chars": 6237,
    "preview": "\n// HeightMap.cpp\n\n// Implements the cHeightMap class representing a cCallback descendant that draws a B & W map of heig"
  }
]

// ... and 1080 more files (download for full content)

About this extraction

This page contains the full source code of the mc-server/MCServer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1280 files (16.2 MB), approximately 4.3M tokens, and a symbol index with 6240 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!