From 98fb3819104a9373987de7d9e161b63ff5c55969 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 6 Nov 2025 19:31:13 +0100 Subject: [PATCH] Break include chains and tidy (part 2) --- src/client/camera.cpp | 22 +++++++- src/client/camera.h | 30 ++++------ src/client/client.cpp | 2 + src/client/clientmap.cpp | 4 +- src/client/clientmap.h | 5 +- src/client/game.cpp | 8 +++ src/client/game_formspec.cpp | 1 + src/client/game_internal.h | 6 +- src/client/gameui.cpp | 1 + src/client/hud.cpp | 1 + src/client/localplayer.h | 4 +- src/client/minimap.cpp | 5 +- src/client/render/plain.cpp | 1 + src/client/render/stereo.cpp | 1 + src/client/shadows/dynamicshadows.cpp | 1 + src/client/sky.cpp | 26 +++++---- src/craftdef.cpp | 7 +++ src/craftdef.h | 14 ++--- src/emerge.cpp | 1 + src/environment.cpp | 1 + src/gui/drawItemStack.cpp | 1 + src/gui/guiFormSpecMenu.cpp | 1 + src/inventory.cpp | 69 +++++++++++++++++++++++ src/inventory.h | 73 ++++--------------------- src/main.cpp | 3 + src/map.h | 12 ++-- src/map_settings_manager.h | 2 +- src/mapblock.cpp | 1 + src/mapblock.h | 4 +- src/mapgen/mg_schematic.cpp | 1 + src/network/clientpackethandler.cpp | 1 + src/network/serverpackethandler.cpp | 2 + src/player.h | 5 +- src/remoteplayer.h | 1 + src/rollback_interface.cpp | 1 + src/script/cpp_api/s_async.cpp | 1 + src/script/cpp_api/s_env.cpp | 2 +- src/script/lua_api/l_auth.cpp | 2 +- src/script/lua_api/l_camera.cpp | 2 + src/script/lua_api/l_env.cpp | 3 +- src/script/lua_api/l_mainmenu_sound.cpp | 1 + src/script/lua_api/l_mapgen.cpp | 4 +- src/script/lua_api/l_nodetimer.cpp | 3 +- src/script/lua_api/l_object.cpp | 2 + src/script/lua_api/l_particleparams.h | 1 + src/script/lua_api/l_server.cpp | 2 +- src/script/lua_api/l_vmanip.cpp | 5 +- src/server.cpp | 6 ++ src/server.h | 6 +- src/server/blockmodifier.cpp | 1 + src/server/player_sao.cpp | 1 + src/server/serveractiveobject.cpp | 1 + src/serverenvironment.cpp | 1 + src/serverenvironment.h | 29 ++++++---- src/servermap.cpp | 3 + src/staticobject.h | 11 ++-- src/unittest/test_content_mapblock.cpp | 2 +- src/unittest/test_craft.cpp | 2 + src/unittest/test_moveaction.cpp | 1 + src/unittest/test_sao.cpp | 2 + 60 files changed, 259 insertions(+), 153 deletions(-) diff --git a/src/client/camera.cpp b/src/client/camera.cpp index f3e6d504c9..40f06f3aae 100644 --- a/src/client/camera.cpp +++ b/src/client/camera.cpp @@ -8,6 +8,7 @@ #include "config.h" #include "map.h" #include "clientmap.h" // MapDrawControl +#include "localplayer.h" #include "player.h" #include #include "client/renderingengine.h" @@ -22,9 +23,12 @@ #include "fontengine.h" #include "script/scripting_client.h" #include "gettext.h" -#include + +#include #include +#include #include +#include static constexpr f32 CAMERA_OFFSET_STEP = 200; @@ -41,6 +45,7 @@ static const char *setting_names[] = { Camera::Camera(MapDrawControl &draw_control, Client *client, RenderingEngine *rendering_engine): m_draw_control(draw_control), m_client(client), + m_camera_mode(CAMERA_MODE_FIRST), m_player_light_color(0xFFFFFFFF) { auto smgr = rendering_engine->get_scene_manager(); @@ -92,6 +97,11 @@ Camera::~Camera() m_wieldmgr->drop(); } +v3f Camera::getHeadPosition() const +{ + return m_headnode->getAbsolutePosition(); +} + void Camera::notifyFovChange() { LocalPlayer *player = m_client->getEnv().getLocalPlayer(); @@ -626,6 +636,16 @@ void Camera::drawWieldedTool(core::matrix4* translation) m_wieldmgr->drawAll(); } +void Camera::toggleCameraMode() +{ + if (m_camera_mode == CAMERA_MODE_FIRST) + m_camera_mode = CAMERA_MODE_THIRD; + else if (m_camera_mode == CAMERA_MODE_THIRD) + m_camera_mode = CAMERA_MODE_THIRD_FRONT; + else + m_camera_mode = CAMERA_MODE_FIRST; +} + void Camera::drawNametags() { core::matrix4 trans = m_cameranode->getProjectionMatrix(); diff --git a/src/client/camera.h b/src/client/camera.h index 4b8e2b843e..cbdf49538c 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -5,11 +5,8 @@ #pragma once #include "irrlichttypes.h" -#include "inventory.h" +#include "inventory.h" // ItemStack #include "util/numeric.h" -#include "client/localplayer.h" -#include -#include #include #include #include @@ -21,6 +18,14 @@ class Client; class RenderingEngine; class WieldMeshSceneNode; +enum CameraMode : int; + +namespace scene { + class ICameraSceneNode; + class ISceneManager; + class ISceneNode; +}; + struct Nametag { scene::ISceneNode *parent_node = nullptr; @@ -75,10 +80,7 @@ public: } // Returns the absolute position of the head SceneNode in the world - inline v3f getHeadPosition() const - { - return m_headnode->getAbsolutePosition(); - } + v3f getHeadPosition() const; // Get the camera direction (in absolute camera coordinates). // This has view bobbing applied. @@ -156,15 +158,7 @@ public: void drawWieldedTool(core::matrix4* translation=NULL); // Toggle the current camera mode - void toggleCameraMode() - { - if (m_camera_mode == CAMERA_MODE_FIRST) - m_camera_mode = CAMERA_MODE_THIRD; - else if (m_camera_mode == CAMERA_MODE_THIRD) - m_camera_mode = CAMERA_MODE_THIRD_FRONT; - else - m_camera_mode = CAMERA_MODE_FIRST; - } + void toggleCameraMode(); // Set the current camera mode inline void setCameraMode(CameraMode mode) @@ -255,7 +249,7 @@ private: f32 m_wield_change_timer = 0.125f; ItemStack m_wield_item_next; - CameraMode m_camera_mode = CAMERA_MODE_FIRST; + CameraMode m_camera_mode; f32 m_cache_view_bobbing_amount; bool m_arm_inertia; diff --git a/src/client/client.cpp b/src/client/client.cpp index c2df563217..01f9758ed5 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -17,12 +17,14 @@ #include "client/sound.h" #include "client/texturepaths.h" #include "client/texturesource.h" +#include "camera.h" #include "filesys.h" #include "game.h" #include "gettext.h" #include "gettime.h" #include "guiscalingfilter.h" #include "item_visuals_manager.h" +#include "itemdef.h" #include "mapblock.h" #include "mapblock_mesh.h" #include "mapnode.h" diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index e74e4cb892..84a539fb9b 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -7,14 +7,16 @@ #include "client/mesh.h" #include "mapblock_mesh.h" #include +#include #include #include #include "mapsector.h" #include "mapblock.h" #include "nodedef.h" +#include "player.h" // CameraMode #include "profiler.h" #include "settings.h" -#include "camera.h" // CameraModes +#include "camera.h" #include "util/basic_macros.h" #include "util/tracy_wrapper.h" #include "client/renderingengine.h" diff --git a/src/client/clientmap.h b/src/client/clientmap.h index 3fda1c28a0..9013d0e50f 100644 --- a/src/client/clientmap.h +++ b/src/client/clientmap.h @@ -6,7 +6,7 @@ #include "irrlichttypes_bloated.h" #include "map.h" -#include "camera.h" +#include #include #include @@ -23,6 +23,9 @@ struct MapDrawControl }; class Client; +class RenderingEngine; + +enum CameraMode : int; namespace scene { diff --git a/src/client/game.cpp b/src/client/game.cpp index 9426cf1290..a3f8054e2d 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -27,6 +27,7 @@ #include "texturesource.h" #include "gui/mainmenumanager.h" #include "gui/profilergraph.h" +#include "localplayer.h" #include "minimap.h" #include "nodedef.h" // Needed for determining pointing to nodes #include "nodemetadata.h" @@ -46,6 +47,7 @@ #include "script/scripting_client.h" #include "hud.h" #include +#include #include "util/tracy_wrapper.h" #include "item_visuals_manager.h" @@ -2080,6 +2082,12 @@ f32 Game::getSensitivityScaleFactor() const return std::tan(fov_y / 2.0f) * 1.3763819f; } +bool Game::isTouchShootlineUsed() const +{ + return g_touchcontrols && g_touchcontrols->isShootlineAvailable() && + camera->getCameraMode() == CAMERA_MODE_FIRST; +} + void Game::updateCameraOrientation(CameraOrientation *cam, float dtime) { if (g_touchcontrols) { diff --git a/src/client/game_formspec.cpp b/src/client/game_formspec.cpp index abd70b2e61..dd6b0e548c 100644 --- a/src/client/game_formspec.cpp +++ b/src/client/game_formspec.cpp @@ -19,6 +19,7 @@ #include "gui/guiPasswordChange.h" #include "gui/guiOpenURL.h" #include "gui/guiVolumeChange.h" +#include "localplayer.h" /* Text input system diff --git a/src/client/game_internal.h b/src/client/game_internal.h index bd420db837..fa57a2df11 100644 --- a/src/client/game_internal.h +++ b/src/client/game_internal.h @@ -380,11 +380,7 @@ private: bool m_is_paused = false; bool m_touch_simulate_aux1 = false; - inline bool isTouchShootlineUsed() - { - return g_touchcontrols && g_touchcontrols->isShootlineAvailable() && - camera->getCameraMode() == CAMERA_MODE_FIRST; - } + bool isTouchShootlineUsed() const; #ifdef __ANDROID__ bool m_android_chat_open; #endif diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp index 53fae50c02..f24be123fe 100644 --- a/src/client/gameui.cpp +++ b/src/client/gameui.cpp @@ -16,6 +16,7 @@ #include "fontengine.h" #include "hud.h" // HUD_FLAG_* #include "nodedef.h" +#include "localplayer.h" #include "profiler.h" #include "renderingengine.h" #include "version.h" diff --git a/src/client/hud.cpp b/src/client/hud.cpp index a29cc50d48..c149dd7ef3 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -27,6 +27,7 @@ #include "util/enriched_string.h" #include "irrlicht_changes/CGUITTFont.h" #include "gui/drawItemStack.h" +#include #define OBJECT_CROSSHAIR_LINE_SIZE 8 #define CROSSHAIR_LINE_SIZE 10 diff --git a/src/client/localplayer.h b/src/client/localplayer.h index f452cb9baa..5eb69f6d88 100644 --- a/src/client/localplayer.h +++ b/src/client/localplayer.h @@ -5,15 +5,15 @@ #pragma once #include "player.h" -#include "environment.h" #include "constants.h" #include "lighting.h" #include class Client; +class ClientActiveObject; class Environment; class GenericCAO; -class ClientActiveObject; +class Map; struct CollisionInfo; struct collisionMoveResult; diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index f4a2afe764..9f32bbe393 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -4,14 +4,15 @@ #include "minimap.h" #include +#include "camera.h" #include "client.h" -#include "clientmap.h" +#include "mapblock.h" // getNodeBlockPos #include "settings.h" #include "shader.h" -#include "mapblock.h" #include "client/renderingengine.h" #include "client/texturesource.h" #include "gettext.h" +#include "voxel.h" //// //// MinimapUpdateThread diff --git a/src/client/render/plain.cpp b/src/client/render/plain.cpp index 0f94e3ef05..ca63692137 100644 --- a/src/client/render/plain.cpp +++ b/src/client/render/plain.cpp @@ -5,6 +5,7 @@ #include "plain.h" #include "secondstage.h" +#include "settings.h" #include "client/camera.h" #include "client/client.h" #include "client/clientmap.h" diff --git a/src/client/render/stereo.cpp b/src/client/render/stereo.cpp index 5570fe1c2d..1ffeedfc66 100644 --- a/src/client/render/stereo.cpp +++ b/src/client/render/stereo.cpp @@ -8,6 +8,7 @@ #include "client/camera.h" #include "constants.h" #include "settings.h" +#include OffsetCameraStep::OffsetCameraStep(float eye_offset) { diff --git a/src/client/shadows/dynamicshadows.cpp b/src/client/shadows/dynamicshadows.cpp index 0f34f61fbc..998424ce44 100644 --- a/src/client/shadows/dynamicshadows.cpp +++ b/src/client/shadows/dynamicshadows.cpp @@ -9,6 +9,7 @@ #include "client/clientenvironment.h" #include "client/clientmap.h" #include "client/camera.h" +#include #include using m4f = core::matrix4; diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 7dde1bb0dd..a1c6bb4a16 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -3,22 +3,26 @@ // Copyright (C) 2010-2013 celeron55, Perttu Ahola // Copyright (C) 2020 numzero, Lobachevskiy Vitaliy -#include #include "sky.h" -#include -#include -#include -#include -#include + +#include "camera.h" #include "client/mesh.h" -#include "client/tile.h" -#include "noise.h" // easeCurve -#include "profiler.h" -#include "util/numeric.h" #include "client/renderingengine.h" #include "client/texturesource.h" +#include "client/tile.h" +#include "noise.h" // easeCurve +#include "player.h" // CameraMode +#include "profiler.h" #include "settings.h" -#include "camera.h" // CameraModes +#include "util/numeric.h" + +#include +#include +#include +#include +#include + +#include using namespace core; diff --git a/src/craftdef.cpp b/src/craftdef.cpp index 78e03f0c5c..00a8c3406d 100644 --- a/src/craftdef.cpp +++ b/src/craftdef.cpp @@ -12,6 +12,7 @@ #include #include "gamedef.h" #include "inventory.h" +#include "itemdef.h" #include "util/serialize.h" #include "util/string.h" #include "util/numeric.h" @@ -274,6 +275,12 @@ std::string craftDumpMatrix(const std::vector &items, CraftInput */ +CraftInput::CraftInput(CraftMethod method_, unsigned int width_, + const std::vector &items_): + method(method_), width(width_), items(items_) +{ +} + bool CraftInput::empty() const { for (const auto &item : items) { diff --git a/src/craftdef.h b/src/craftdef.h index 7ca3e3a91e..bbce5380e3 100644 --- a/src/craftdef.h +++ b/src/craftdef.h @@ -4,12 +4,12 @@ #pragma once -#include -#include -#include -#include #include "gamedef.h" -#include "inventory.h" + +#include +#include + +struct ItemStack; /* Crafting methods. @@ -61,9 +61,7 @@ struct CraftInput CraftInput() = default; CraftInput(CraftMethod method_, unsigned int width_, - const std::vector &items_): - method(method_), width(width_), items(items_) - {} + const std::vector &items_); // Returns true if all items are empty. bool empty() const; diff --git a/src/emerge.cpp b/src/emerge.cpp index e8f1695d7d..f4af7a2650 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -13,6 +13,7 @@ #include "irrlicht_changes/printing.h" #include "filesys.h" #include "log.h" +#include "serverenvironment.h" #include "servermap.h" #include "mapblock.h" #include "mapgen/mg_biome.h" diff --git a/src/environment.cpp b/src/environment.cpp index ce8dd16e43..63b1d4e08d 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -8,6 +8,7 @@ #include "raycast.h" #include "scripting_server.h" #include "server.h" +#include "settings.h" #include "daynightratio.h" #include "emerge.h" diff --git a/src/gui/drawItemStack.cpp b/src/gui/drawItemStack.cpp index bb68937dbc..649098fb16 100644 --- a/src/gui/drawItemStack.cpp +++ b/src/gui/drawItemStack.cpp @@ -9,6 +9,7 @@ #include "client/client.h" #include "porting.h" #include "inventory.h" +#include "itemdef.h" #include "client/mesh.h" #include "client/wieldmesh.h" #include "client/texturesource.h" diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 0b35b5cbcd..114c16b2e2 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -12,6 +12,7 @@ #include "guiFormSpecMenu.h" #include "EGUIElementTypes.h" #include "constants.h" +#include "itemdef.h" #include "gamedef.h" #include "client/keycode.h" #include "gui/guiTable.h" diff --git a/src/inventory.cpp b/src/inventory.cpp index 50a61d398c..6d7c6d6266 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -11,6 +11,7 @@ #include "util/strfnd.h" #include "content_mapnode.h" // For loading legacy MaterialItems #include "nameidmapping.h" // For loading legacy MaterialItems +#include "itemdef.h" #include "util/serialize.h" #include "util/string.h" @@ -303,6 +304,74 @@ v3f ItemStack::getWieldScale(const IItemDefManager *itemdef) const return str_to_v3f(scale).value_or(getDefinition(itemdef).wield_scale); } +u16 ItemStack::getStackMax(const IItemDefManager *itemdef) const +{ + return itemdef->get(name).stack_max; +} + +bool ItemStack::isKnown(const IItemDefManager *itemdef) const +{ + return itemdef->isKnown(name); +} + +const ItemDefinition &ItemStack::getDefinition( + const IItemDefManager *itemdef) const +{ + return itemdef->get(name); +} + +const ToolCapabilities &ItemStack::getToolCapabilities( + const IItemDefManager *itemdef, const ItemStack *hand) const +{ + // Check for override + auto &meta_item_cap = metadata.getToolCapabilitiesOverride(); + if (meta_item_cap.has_value()) + return meta_item_cap.value(); + + const ToolCapabilities *item_cap = itemdef->get(name).tool_capabilities; + if (item_cap) + return *item_cap; + + // Fall back to the hand's tool capabilities + if (hand) { + auto &hand_meta_item_cap = hand->metadata.getToolCapabilitiesOverride(); + if (hand_meta_item_cap.has_value()) + return hand_meta_item_cap.value(); + + item_cap = itemdef->get(hand->name).tool_capabilities; + if (item_cap) + return *item_cap; + } + + item_cap = itemdef->get("").tool_capabilities; + assert(item_cap); + return *item_cap; +} + +const std::optional &ItemStack::getWearBarParams( + const IItemDefManager *itemdef) const +{ + auto &meta_override = metadata.getWearBarParamOverride(); + if (meta_override.has_value()) + return meta_override; + return itemdef->get(name).wear_bar_params; +} + +bool ItemStack::addWear(s32 amount, const IItemDefManager *itemdef) +{ + if (getDefinition(itemdef).type == ITEM_TOOL) { + if(amount > 65535 - wear) + clear(); + else if(amount < -wear) + wear = 0; + else + wear += amount; + return true; + } + + return false; +} + ItemStack ItemStack::addItem(ItemStack newitem, IItemDefManager *itemdef) { // If the item is empty or the position invalid, bail out diff --git a/src/inventory.h b/src/inventory.h index 5f6d0faa9b..6a5668be27 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -4,7 +4,6 @@ #pragma once -#include "itemdef.h" #include "irrlichttypes.h" #include "itemstackmetadata.h" #include @@ -13,6 +12,8 @@ #include #include +struct ItemDefinition; +struct ItemImageDef; struct ToolCapabilities; struct ItemStack @@ -73,10 +74,7 @@ struct ItemStack } // Maximum size of a stack - u16 getStackMax(const IItemDefManager *itemdef) const - { - return itemdef->get(name).stack_max; - } + u16 getStackMax(const IItemDefManager *itemdef) const; // Number of items that can be added to this stack u16 freeSpace(const IItemDefManager *itemdef) const @@ -88,75 +86,24 @@ struct ItemStack } // Returns false if item is not known and cannot be used - bool isKnown(const IItemDefManager *itemdef) const - { - return itemdef->isKnown(name); - } + bool isKnown(const IItemDefManager *itemdef) const; // Returns a pointer to the item definition struct, // or a fallback one (name="unknown") if the item is unknown. - const ItemDefinition& getDefinition( - const IItemDefManager *itemdef) const - { - return itemdef->get(name); - } + const ItemDefinition &getDefinition( + const IItemDefManager *itemdef) const; // Get tool digging properties, or those of the hand if not a tool // If not hand assumes default hand "" - const ToolCapabilities& getToolCapabilities( - const IItemDefManager *itemdef, const ItemStack *hand = nullptr) const - { - // Check for override - auto &meta_item_cap = metadata.getToolCapabilitiesOverride(); - if (meta_item_cap.has_value()) - return meta_item_cap.value(); - - const ToolCapabilities *item_cap = itemdef->get(name).tool_capabilities; - if (item_cap) - return *item_cap; - - // Fall back to the hand's tool capabilities - if (hand) { - auto &hand_meta_item_cap = hand->metadata.getToolCapabilitiesOverride(); - if (hand_meta_item_cap.has_value()) - return hand_meta_item_cap.value(); - - item_cap = itemdef->get(hand->name).tool_capabilities; - if (item_cap) - return *item_cap; - } - - item_cap = itemdef->get("").tool_capabilities; - assert(item_cap); - return *item_cap; - } + const ToolCapabilities &getToolCapabilities( + const IItemDefManager *itemdef, const ItemStack *hand = nullptr) const; const std::optional &getWearBarParams( - const IItemDefManager *itemdef) const - { - auto &meta_override = metadata.getWearBarParamOverride(); - if (meta_override.has_value()) - return meta_override; - return itemdef->get(name).wear_bar_params; - } + const IItemDefManager *itemdef) const; // Wear out (only tools) // Returns true if the item is (was) a tool - bool addWear(s32 amount, const IItemDefManager *itemdef) - { - if(getDefinition(itemdef).type == ITEM_TOOL) - { - if(amount > 65535 - wear) - clear(); - else if(amount < -wear) - wear = 0; - else - wear += amount; - return true; - } - - return false; - } + bool addWear(s32 amount, const IItemDefManager *itemdef); // If possible, adds newitem to this item. // If cannot be added at all, returns the item back. diff --git a/src/main.cpp b/src/main.cpp index 5153911591..fea58e2e9f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,6 +28,9 @@ #include "player.h" #include "porting.h" #include "serialization.h" // SER_FMT_VER_HIGHEST_* +#include "serverenvironment.h" +#include "servermap.h" +#include "settings.h" #include "network/socket.h" #include "mapblock.h" #if USE_CURSES diff --git a/src/map.h b/src/map.h index 85d7e00cd7..bfdee54423 100644 --- a/src/map.h +++ b/src/map.h @@ -4,22 +4,22 @@ #pragma once -#include -#include #include +#include +#include +#include #include "irrlichttypes_bloated.h" -#include "mapblock.h" +#include "mapblock.h" // for forEachNodeInArea #include "mapnode.h" #include "constants.h" #include "voxel.h" #include "modifiedstate.h" -#include "util/numeric.h" -#include "nodetimer.h" -#include "debug.h" +#include "util/numeric.h" // for forEachNodeInArea class MapSector; class NodeMetadata; +class NodeTimer; class IGameDef; /* diff --git a/src/map_settings_manager.h b/src/map_settings_manager.h index 26942359eb..25c03bb855 100644 --- a/src/map_settings_manager.h +++ b/src/map_settings_manager.h @@ -6,7 +6,7 @@ #include #include -#include "settings.h" +#include "settings.h" // SettingsHierarchy struct NoiseParams; struct MapgenParams; diff --git a/src/mapblock.cpp b/src/mapblock.cpp index e0d9630e81..9bff6b9624 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -20,6 +20,7 @@ #include "client/mapblock_mesh.h" #endif #include "porting.h" +#include "settings.h" #include "util/string.h" #include "util/serialize.h" #include "util/basic_macros.h" diff --git a/src/mapblock.h b/src/mapblock.h index da2025b819..498825c77a 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -10,14 +10,12 @@ #include "exceptions.h" #include "constants.h" #include "staticobject.h" -#include "nodemetadata.h" +#include "nodemetadata.h" // NodeMetadataList #include "nodetimer.h" #include "modifiedstate.h" #include "util/numeric.h" // getContainerPos -#include "settings.h" class Map; -class NodeMetadataList; class IGameDef; class MapBlockMesh; class VoxelManipulator; diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index 9e5c078c8f..14c67ff0f3 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -14,6 +14,7 @@ #include "util/numeric.h" #include "util/serialize.h" #include "serialization.h" +#include "servermap.h" #include "filesys.h" #include "voxelalgorithms.h" #include "porting.h" diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index dee2b4d33b..d828123c7c 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -15,6 +15,7 @@ #include "servermap.h" #include "mapsector.h" #include "client/minimap.h" +#include "itemdef.h" #include "modchannels.h" #include "nodedef.h" #include "serialization.h" diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 3683ed8c0a..e4d482e457 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -4,8 +4,10 @@ #include "chatmessage.h" #include "server.h" +#include "serverenvironment.h" #include "log.h" #include "emerge.h" +#include "itemdef.h" #include "mapblock.h" #include "modchannels.h" #include "nodedef.h" diff --git a/src/player.h b/src/player.h index f3d9c54996..a996e1a958 100644 --- a/src/player.h +++ b/src/player.h @@ -6,10 +6,9 @@ #include "irrlichttypes_bloated.h" #include "inventory.h" -#include "constants.h" #include "util/basic_macros.h" -#include "util/string.h" #include +#include #define PLAYERNAME_SIZE 20 @@ -125,7 +124,7 @@ struct PlayerPhysicsOverride }; /// @note numeric values are part of network protocol -enum CameraMode { +enum CameraMode : int { // not a mode. indicates that any may be used. CAMERA_MODE_ANY = 0, CAMERA_MODE_FIRST, diff --git a/src/remoteplayer.h b/src/remoteplayer.h index 60bddf40ff..01be0fc6cb 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -5,6 +5,7 @@ #pragma once +#include "constants.h" // PEER_ID_INEXISTENT #include "player.h" #include "skyparams.h" #include "lighting.h" diff --git a/src/rollback_interface.cpp b/src/rollback_interface.cpp index 007d05f3a1..0b80054525 100644 --- a/src/rollback_interface.cpp +++ b/src/rollback_interface.cpp @@ -9,6 +9,7 @@ #include "util/numeric.h" #include "map.h" #include "gamedef.h" +#include "itemdef.h" #include "nodedef.h" #include "nodemetadata.h" #include "exceptions.h" diff --git a/src/script/cpp_api/s_async.cpp b/src/script/cpp_api/s_async.cpp index 0a4d82a60b..a7e8e6ffca 100644 --- a/src/script/cpp_api/s_async.cpp +++ b/src/script/cpp_api/s_async.cpp @@ -16,6 +16,7 @@ extern "C" { #include "log.h" #include "config.h" #include "filesys.h" +#include "settings.h" #include "porting.h" #include "common/c_internal.h" #include "common/c_packer.h" diff --git a/src/script/cpp_api/s_env.cpp b/src/script/cpp_api/s_env.cpp index 980ba37cbb..4bc2e6b13f 100644 --- a/src/script/cpp_api/s_env.cpp +++ b/src/script/cpp_api/s_env.cpp @@ -6,10 +6,10 @@ #include "cpp_api/s_internal.h" #include "common/c_converter.h" #include "log.h" -#include "environment.h" #include "mapgen/mapgen.h" #include "lua_api/l_env.h" #include "server.h" +#include "serverenvironment.h" #include "scripting_server.h" #include "script/common/c_content.h" diff --git a/src/script/lua_api/l_auth.cpp b/src/script/lua_api/l_auth.cpp index d669a9f5ec..fe44cfb68c 100644 --- a/src/script/lua_api/l_auth.cpp +++ b/src/script/lua_api/l_auth.cpp @@ -8,7 +8,7 @@ #include "common/c_content.h" #include "cpp_api/s_base.h" #include "server.h" -#include "environment.h" +#include "serverenvironment.h" #include "database/database.h" #include diff --git a/src/script/lua_api/l_camera.cpp b/src/script/lua_api/l_camera.cpp index 08917b993a..a2a8ed7ca0 100644 --- a/src/script/lua_api/l_camera.cpp +++ b/src/script/lua_api/l_camera.cpp @@ -9,6 +9,8 @@ #include "client/content_cao.h" #include "client/camera.h" #include "client/client.h" +#include "client/localplayer.h" +#include LuaCamera::LuaCamera(Camera *m) : m_camera(m) { diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index eff68ec852..4aae54451c 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -13,9 +13,9 @@ #include "common/c_converter.h" #include "common/c_content.h" #include "scripting_server.h" -#include "environment.h" #include "mapblock.h" #include "server.h" +#include "serverenvironment.h" #include "nodedef.h" #include "daynightratio.h" #include "util/pointedthing.h" @@ -24,6 +24,7 @@ #include "pathfinder.h" #include "face_position_cache.h" #include "remoteplayer.h" +#include "servermap.h" #include "server/luaentity_sao.h" #include "server/player_sao.h" #include "util/string.h" diff --git a/src/script/lua_api/l_mainmenu_sound.cpp b/src/script/lua_api/l_mainmenu_sound.cpp index 5177c8bad4..7cba2bd66c 100644 --- a/src/script/lua_api/l_mainmenu_sound.cpp +++ b/src/script/lua_api/l_mainmenu_sound.cpp @@ -8,6 +8,7 @@ #include "l_internal.h" #include "common/c_content.h" #include "gui/guiEngine.h" +#include "sound.h" /* ModApiMainMenuSound */ diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 63198845b1..c2d2503f6a 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -10,8 +10,10 @@ #include "cpp_api/s_security.h" #include "util/serialize.h" #include "server.h" -#include "environment.h" +#include "serverenvironment.h" +#include "servermap.h" #include "emerge_internal.h" +#include "map_settings_manager.h" #include "mapgen/mg_biome.h" #include "mapgen/mg_ore.h" #include "mapgen/mg_decoration.h" diff --git a/src/script/lua_api/l_nodetimer.cpp b/src/script/lua_api/l_nodetimer.cpp index 999ede1294..1d703a3233 100644 --- a/src/script/lua_api/l_nodetimer.cpp +++ b/src/script/lua_api/l_nodetimer.cpp @@ -5,8 +5,7 @@ #include "lua_api/l_nodetimer.h" #include "lua_api/l_internal.h" #include "serverenvironment.h" -#include "map.h" - +#include "servermap.h" int NodeTimerRef::gc_object(lua_State *L) { NodeTimerRef *o = *(NodeTimerRef **)(lua_touserdata(L, 1)); diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index a407f5407a..a91fc81828 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -17,6 +17,8 @@ #include "tool.h" #include "remoteplayer.h" #include "server.h" +#include "serverenvironment.h" +#include "settings.h" #include "hud.h" #include "scripting_server.h" #include "server/luaentity_sao.h" diff --git a/src/script/lua_api/l_particleparams.h b/src/script/lua_api/l_particleparams.h index 0e508148f7..642818b0da 100644 --- a/src/script/lua_api/l_particleparams.h +++ b/src/script/lua_api/l_particleparams.h @@ -9,6 +9,7 @@ #include "common/c_converter.h" #include "common/c_content.h" #include "server.h" +#include "server/serveractiveobject.h" #include "particles.h" namespace LuaParticleParams diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 398b4865cb..6fccca977b 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -10,7 +10,6 @@ #include "content/mods.h" // ModSpec #include "cpp_api/s_base.h" #include "cpp_api/s_security.h" -#include "environment.h" #include "filesys.h" #include "log.h" #include "lua_api/l_internal.h" @@ -18,6 +17,7 @@ #include "remoteplayer.h" #include "scripting_server.h" #include "server.h" +#include "serverenvironment.h" #include diff --git a/src/script/lua_api/l_vmanip.cpp b/src/script/lua_api/l_vmanip.cpp index af254b1056..c43071d39a 100644 --- a/src/script/lua_api/l_vmanip.cpp +++ b/src/script/lua_api/l_vmanip.cpp @@ -9,10 +9,9 @@ #include "common/c_content.h" #include "common/c_converter.h" #include "common/c_packer.h" -#include "environment.h" -#include "map.h" #include "mapblock.h" -#include "server.h" +#include "serverenvironment.h" +#include "servermap.h" #include "voxelalgorithms.h" // garbage collector diff --git a/src/server.cpp b/src/server.cpp index c069244ddb..4590fda9ce 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -23,6 +23,7 @@ #include "profiler.h" #include "remoteplayer.h" #include "server/ban.h" +#include "serverenvironment.h" #include "servermap.h" #include "server/player_sao.h" #include "server/rollback.h" @@ -4017,6 +4018,11 @@ void Server::addShutdownError(const ModError &e) } } +Map &Server::getMap() +{ + return m_env->getMap(); +} + v3f Server::findSpawnPos() { ServerMap &map = m_env->getServerMap(); diff --git a/src/server.h b/src/server.h index b102e299ad..b2ac5ac908 100644 --- a/src/server.h +++ b/src/server.h @@ -12,7 +12,7 @@ #include "network/peerhandler.h" #include "util/thread.h" #include "util/basic_macros.h" -#include "serverenvironment.h" +#include "util/metricsbackend.h" #include "server/clientiface.h" #include "threading/ordered_mutex.h" #include "translation.h" @@ -48,11 +48,13 @@ class ServerInventoryManager; class ServerModManager; class ServerScripting; class ServerThread; +class Settings; struct ChatEventChat; struct ChatInterface; struct ChatMessage; struct CloudParams; +struct GameParams; struct Lighting; struct MoonParams; struct PackedValue; @@ -364,7 +366,7 @@ public: void addShutdownError(const ModError &e); bool showFormspec(const char *name, const std::string &formspec, const std::string &formname); - Map & getMap() { return m_env->getMap(); } + Map &getMap(); ServerEnvironment & getEnv() { return *m_env; } v3f findSpawnPos(); diff --git a/src/server/blockmodifier.cpp b/src/server/blockmodifier.cpp index 1983d5defb..55b4092fce 100644 --- a/src/server/blockmodifier.cpp +++ b/src/server/blockmodifier.cpp @@ -6,6 +6,7 @@ #include "blockmodifier.h" #include "serverenvironment.h" #include "server.h" +#include "servermap.h" #include "mapblock.h" #include "nodedef.h" #include "gamedef.h" diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 86f8cfe3d8..0e269be055 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -9,6 +9,7 @@ #include "scripting_server.h" #include "server.h" #include "serverenvironment.h" +#include "settings.h" PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, session_t peer_id_, bool is_singleplayer): diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp index fa0c76a708..3cb5c971ca 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -6,6 +6,7 @@ #include "inventory.h" #include "inventorymanager.h" #include "constants.h" // BS +#include "util/serialize.h" #include "serverenvironment.h" ServerActiveObject::ServerActiveObject(ServerEnvironment *env, v3f pos): diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index 118f36bdf6..e19838d5ac 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -19,6 +19,7 @@ #include "remoteplayer.h" #include "scripting_server.h" #include "server.h" +#include "servermap.h" #include "util/serialize.h" #include "util/numeric.h" #include "util/basic_macros.h" diff --git a/src/serverenvironment.h b/src/serverenvironment.h index d7c1f987c5..bf278fca20 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -4,30 +4,37 @@ #pragma once +#include // std::unique_ptr #include -#include +#include +#include // std::function +#include -#include "activeobject.h" #include "environment.h" -#include "servermap.h" #include "util/guid.h" -#include "map.h" -#include "settings.h" +#include "map.h" // MapEventReceiver #include "server/activeobjectmgr.h" #include "server/blockmodifier.h" #include "util/numeric.h" #include "util/metricsbackend.h" -struct GameParams; -class RemotePlayer; -class PlayerDatabase; class AuthDatabase; +class ActiveObject; +class MetricsBackend; +class PlayerDatabase; class PlayerSAO; -class ServerEnvironment; -struct StaticObject; -class ServerActiveObject; +class RemotePlayer; class Server; +class ServerActiveObject; +class ServerEnvironment; class ServerScripting; +class Settings; +struct ActiveObjectMessage; +struct GameParams; +struct StaticObject; + +class ServerMap; + enum AccessDeniedCode : u8; typedef u16 session_t; diff --git a/src/servermap.cpp b/src/servermap.cpp index c93052497c..92b6d7e4a6 100644 --- a/src/servermap.cpp +++ b/src/servermap.cpp @@ -2,6 +2,8 @@ // SPDX-License-Identifier: LGPL-2.1-or-later // Copyright (C) 2010-2024 celeron55, Perttu Ahola +#include "servermap.h" + #include #include "map.h" @@ -23,6 +25,7 @@ #include "mapgen/mg_biome.h" #include "config.h" #include "server.h" +#include "serverenvironment.h" #include "database/database.h" #include "database/database-dummy.h" #include "database/database-sqlite3.h" diff --git a/src/staticobject.h b/src/staticobject.h index f741e528cd..bb65c853b7 100644 --- a/src/staticobject.h +++ b/src/staticobject.h @@ -4,12 +4,15 @@ #pragma once +#include "debug.h" // FATAL_ERROR #include "irrlichttypes_bloated.h" -#include -#include -#include +#include "log.h" + +#include #include -#include "debug.h" +#include +#include +#include class ServerActiveObject; diff --git a/src/unittest/test_content_mapblock.cpp b/src/unittest/test_content_mapblock.cpp index 68f66eabf0..3f1263fe67 100644 --- a/src/unittest/test_content_mapblock.cpp +++ b/src/unittest/test_content_mapblock.cpp @@ -8,12 +8,12 @@ #include #include "gamedef.h" +#include "inventory.h" // ItemStack #include "dummygamedef.h" #include "client/content_mapblock.h" #include "client/mapblock_mesh.h" #include "client/meshgen/collector.h" #include "mesh_compare.h" -#include "util/directiontables.h" namespace { diff --git a/src/unittest/test_craft.cpp b/src/unittest/test_craft.cpp index 16043cd77c..32cc9a366e 100644 --- a/src/unittest/test_craft.cpp +++ b/src/unittest/test_craft.cpp @@ -4,7 +4,9 @@ #include "test.h" +#include "inventory.h" // ItemStack #include "craftdef.h" +#include "itemdef.h" class TestCraft : public TestBase { diff --git a/src/unittest/test_moveaction.cpp b/src/unittest/test_moveaction.cpp index 302e58964a..6fd7bdb9c5 100644 --- a/src/unittest/test_moveaction.cpp +++ b/src/unittest/test_moveaction.cpp @@ -7,6 +7,7 @@ #include "mock_inventorymanager.h" #include "mock_server.h" #include "mock_serveractiveobject.h" +#include "servermap.h" class TestMoveAction : public TestBase { diff --git a/src/unittest/test_sao.cpp b/src/unittest/test_sao.cpp index 5184d529d3..728b23bf64 100644 --- a/src/unittest/test_sao.cpp +++ b/src/unittest/test_sao.cpp @@ -6,6 +6,8 @@ #include "mock_server.h" #include "server/luaentity_sao.h" +#include "serverenvironment.h" +#include "servermap.h" #include "emerge.h" /*