#include "map/TileConfig.h"#include "map/TileOrientation.h"#include "common/Json.h"#include "common/Module.h"#include "common/Xml.h"#include "data/DataModule.h"#include "filesystem/Filesystem.h"#include "filesystem/FileData.h"#include "filesystem/HotReload.h"#include "graphics/Graphics.h"#include <algorithm>#include <array>#include <cmath>#include <cstdint>#include <filesystem>#include <fstream>#include <memory>#include <sstream>#include <stdexcept>#include "map/RpgMakerTileImporter.inl"命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::map |
| 放置世界:格子占用(多通道)+ 地形语义 + 已放置建筑实例。 行为由 PlacementSystem 提供;本类暴露便于脚本绑定的薄封装方法。 坐标换算统一走 eve::grid(支持 rectangle / iso / staggered / hex 与 XY/XZ 平面轴)。 | |
函数 | |
| eve::Result< void > | eve::map::applyConfigDocument (TileLayer *layer, eve::json::Value root) |
| Apply map/layer JSON onto an existing TileLayer (Config + Tiles + Tileset + Draw). Multi-layer documents only apply the first tile layer when called on one entity. | |
| bool | eve::map::applyConfigText (TileLayer *layer, const std::string &json, std::string *error=nullptr) |
| Parse JSON text and apply onto one layer. | |
| bool | eve::map::loadConfigFile (TileLayer *layer, const std::string &path, std::string *error=nullptr) |
Read path via Filesystem, apply onto layer, bind Resource.path + modtime for hot reload. If the document has multiple tile layers, only the first is applied to layer. | |
| bool | eve::map::reloadConfigFile (TileLayer *layer, std::string *error=nullptr) |
| Reloads config file. | |
| bool | eve::map::loadTilesetManifestFile (TileLayer *layer, const std::string &path, std::string *error=nullptr) |
| Load a composable TileSet manifest onto an existing layer. | |
| std::vector< TileLayer * > | eve::map::loadMapText (const std::string &json, std::vector< MapObject > *objects, std::string *error=nullptr) |
| Parse map JSON text (no filesystem). Same semantics as loadMapFile. | |
| std::vector< TileLayer * > | eve::map::loadMapFile (const std::string &path, std::vector< MapObject > *objects, std::string *error=nullptr) |
| Loads map file. | |
| std::vector< TileLayer * > | eve::map::loadMapFile (const std::string &path, std::string *error=nullptr) |
Load a (possibly multi-layer) map JSON. Creates one TileLayer per tile layer. Optionally fills objects from objectgroup layers. Returns created layers (empty on failure). All share the same Resource.path for reload. | |
变量说明
◆ animations
| std::vector<TileLayer::Tileset::Animation> animations |
在文件 TileConfig.cpp 第 88 行定义.
被这些函数引用 eve::map::TileLayer::addTileAnimationFrame() , 以及 eve::map::TileLayer::clearTileAnimation().
◆ columns
| int columns = 1 |
在文件 TileConfig.cpp 第 82 行定义.
被这些函数引用 eve::ui::UI::beginGrid(), eve::ui::UI::beginToolbox(), eve::procgen::buildGtsTerrainBaseMesh(), eve::asset::detail::decodeBc3Rgba8(), eve::tensor::onnx_detail::executeQuant(), eve::rts::script_internal::exposeFormationBindings(), eve::procgen::TerrainAsset::findChunk(), eve::ui::grid(), eve::ui::gridArrange(), eve::dialogue::ConversationLocalizationCatalog::importCsv(), importRpgMakerMap(), eve::database::Connection::insert(), eve::ui::measureNode(), eve::animation::Animation::newSpriteSheetFromSequence(), eve::rts::FormationPlanner::plan(), eve::procgen::GtsTerrainLodSet::restoreJson(), eve::hd2d::Sprite3D::setFrameGrid(), eve::animation::SpriteSheet::setGrid(), eve::map::TileLayer::setTileset(), eve::ui::toolbox() , 以及 eve::ui::WidgetDesc::withGaps().
◆ customData
| std::vector<TileLayer::Tileset::CustomData> customData |
在文件 TileConfig.cpp 第 90 行定义.
◆ firstGid
| int firstGid = 1 |
在文件 TileConfig.cpp 第 81 行定义.
被这些函数引用 importRpgMakerMap(), eve::map::resolveDualGrid() , 以及 eve::map::TileLayer::setTileset().
◆ image
| std::string image |
在文件 TileConfig.cpp 第 79 行定义.
◆ margin
| int margin = 0 |
在文件 TileConfig.cpp 第 85 行定义.
被这些函数引用 eve::procgen::fillDensityField(), eve::fluids::MeshSdf::makeSphere(), eve::ui::projectWorldAnchor(), eve::map::Fov::setDetectionMargin(), eve::animation::SpriteSheet::setGrid(), eve::physics::Shape3D::setOneWay(), eve::map::TileLayer::setTileset(), eve::weather::SnowField::stampFootprint() , 以及 eve::weather::SnowField::stampImpact().
◆ object
| Json object |
在文件 TileConfig.cpp 第 782 行定义.
被这些函数引用 eve::dev::PlayTraceBuffer::append(), eve::scene_editing::SceneTargetBase::applyDomainOperation(), eve::model3d::ModelData::bakeNormalMap(), eve::scene_editor::ScenePhysicsPlacementBackend::Impl::build(), eve::rts::RTS::castScriptAbility(), eve::npc_ai::SmartObjectWorld::claim(), eve::asset::cookCanonicalVolumeTextureRgba8(), eve::scene_editor::SceneEditorModule::TargetFactory::create(), eve::scene_editor::ScenePhysicsPlacementBackend::create(), eve::pixelworld_streaming::decodeChunkBatchArchive(), eve::agent::decodeConfig(), eve::agent::decodePolicy(), eve::asset::decodeShaderAsset(), eve::heightmap_target::decodeTerrainDocument(), eve::agent::decodeTrace(), eve::procgen::BuildLayerStack::deserializeDefinition(), eve::script::detail::RuntimeSlotStore::emplace(), eve::procgen_editing::detail::encodeBlockedLink(), eve::weapon::encodeCarrierRecipe(), eve::procgen_editing::detail::encodeConnectAtPosition(), eve::procgen_editing::detail::encodeDisconnectAtPosition(), eve::procgen_editing::detail::encodeEdgeRecord(), eve::building::BuildingGarrisonContainerAdapter::enter(), eve::decision::Condition::evaluate(), eve::procgen::exposeGridMeshGraphs(), eve::stylize::AttackVfxRecipe::fromJson(), eve::action::ActionParameterCurveBinding::fromPayload(), eve::action::ActionAttackVfxBinding::fromPayload(), eve::database::Mapping< T >::fromRow(), eve::ui::Inspector::inspectObject(), eve::editor::ActionTimelineWidget::inspectSelection(), eve::Value::keys(), eve::asset_procgen::EvpackInstanceSetLoader::load(), eve::asset_scene::EvpackSceneTemplateLoader::load(), eve::asset_graphics::EvpackVolumeTextureLoader::load(), eve::decal_editing::DecalDocumentTarget::loadSnapshot(), eve::fluids_editing::VolumeFluidTarget::loadSnapshot(), eve::procgen_editing::SplinePathBinder::loadSnapshot(), eve::scene_editing::SceneTargetBase::makeDelete(), eve::scene_editing::SceneTargetBase::makeRename(), eve::scene_editing::SceneTargetBase::makeReparent(), eve::audio_editing::AudioSourceTarget::makeSet(), eve::material_editing::MaterialDocumentTarget::makeSet(), eve::physics_editing::PhysicsColliderTarget::makeSet(), eve::physics_editing::PhysicsJointTarget::makeSet(), eve::scene_editing::SceneTargetBase::makeSetTransform(), eve::rpg::makeStatusTickSettlementRequest(), eve::ui::Inspector::openNested(), eve::asset::parseEvaManifest(), eve::parseSnapshotEnvelopeValue(), eve::asset_import::prepareUnityVegetationConversionBatch(), eve::rts::RTS::queueScriptResearch(), eve::rts::RTS::queueScriptUnit(), eve::definitions_editing::DefinitionSchemaFormTarget::read(), eve::asset_graphics::detail::readCookedMaterial(), eve::scene_editing::registerEditingCommands(), eve::orders::CommandQueue::restore(), eve::ui::PcgPhotoModeValues::restoreJson(), eve::emergence::FactStore::restoreJson(), eve::scene::LocationProfile::restoreJson(), eve::scene_editor::SceneEditorSession::restorePhysicsPlacementColliderCacheJson(), eve::definition::restoreRuntimeInstance(), eve::pixelworld_replay::PixelReplayLog::restoreSnapshot(), eve::definition::detail::runtimeSnapshotShape(), eve::scene_editing::SceneTargetBase::sceneObject(), eve::rts::RTS::sellScriptBuilding(), eve::asset::serializeEvaManifest(), eve::physics::WorldSnapshotAccess::shapeSource(), eve::snapshotEnvelopeValue(), eve::rts::RTS::startScriptConstruction(), eve::card::CardControl::submitGameplay(), eve::dialogue::DialogueControl::submitGameplay(), eve::economy::EconomyControl::submitGameplay(), eve::inventory::InventoryControl::submitGameplay(), eve::weapon::WeaponControl::submitGameplay(), eve::ui_editing::themeTokensValue(), eve::stylize::AttackVfxRecipe::toJson(), eve::stylize::MeshVfxAsset::toJson(), eve::action::ActionTimeline::toValue(), eve::dialogue::PaymentSpec::toValue(), eve::physics::FractureRecipe::toValue(), eve::physics::GeometryCollectionAsset::toValue(), eve::physics::GeometryCollectionInstanceSnapshot::toValue(), eve::physics::SoftBody3DDefinition::toValue(), eve::physics::SoftBodyModelDefinition::toValue(), eve::definitions_editing::DefinitionSchemaFormTarget::validate() , 以及 eve::validateSnapshotPayloadMetadata().
◆ offsetX
| float offsetX = 0.f |
在文件 TileConfig.cpp 第 783 行定义.
被这些函数引用 eve::animation::SpriteSheet::addFrameTrimmed(), eve::animation::hair::addHeadCollider(), eve::graphics::DepthPyramid::build(), eve::hexmap::HexMap::chunkCell(), eve::procgen::MeshDeformationSession::configureColliderRefreshResult(), eve::pixelworld_physics::PixelFragmentBody::create(), eve::procgen::exportTerrainObjectPoints(), eve::hexmap::HexCoordinates::fromOffset(), eve::animation::SpineAtlas::getRegionOffsetX(), eve::physics::Body::newRectangleFixtureAt(), eve::graphics::Renderable2D::setFrameLayout(), eve::graphics::MapFog::setShadow() , 以及 eve::pixelworld_physics::sweepTerrainCircle().
◆ offsetY
| float offsetY = 0.f |
在文件 TileConfig.cpp 第 784 行定义.
被这些函数引用 eve::animation::SpriteSheet::addFrameTrimmed(), eve::animation::hair::addHeadCollider(), eve::procgen::MeshDeformationSession::configureColliderRefreshResult(), eve::pixelworld_physics::PixelFragmentBody::create(), eve::animation::SpineAtlas::getRegionOffsetY(), eve::physics::Body::newRectangleFixtureAt(), eve::graphics::Renderable2D::setFrameLayout(), eve::graphics::MapFog::setShadow() , 以及 eve::pixelworld_physics::sweepTerrainCircle().
◆ opacity
| float opacity = 1.f |
在文件 TileConfig.cpp 第 785 行定义.
被这些函数引用 eve::ui::UI::animateItemOpacity(), eve::ui::UiTweenDriver::animateItemOpacity(), eve::fluids::FluidSurfaceRenderer::compositeDiffuse(), eve::fluids::FluidSurfaceRenderer::configureMaterial(), eve::graphics::vulkan::Graphics::drawSceneColorDistortionUVRotated(), eve::model3d::ModelData::getMaterialOpacity(), eve::spritestack::SpriteStack2D::setShadowOpacity() , 以及 eve::graphics::fog::ContinuousArt::stylize().
◆ sourcePath
| std::string sourcePath |
在文件 TileConfig.cpp 第 80 行定义.
被这些函数引用 eve::model3d::Model3D::bakeModel(), eve::asset_import::decodeUnityVegetationConversionCandidate(), eve::particles::ParticleEffect::fromText(), eve::asset_import::indexUnitySources(), eve::asset_import::prepareUnityVegetationMaterial() , 以及 eve::particles::ParticleEffect::tryFromText().
◆ spacing
| int spacing = 0 |
在文件 TileConfig.cpp 第 86 行定义.
被这些函数引用 eve::fluids::VolumeFluidJetEmitter::advanceMoving(), eve::fluids::buildVolumeFluidCubeDistribution(), eve::fluids::buildVolumeFluidDiskDistribution(), eve::fluids::buildVolumeFluidEdgeDistribution(), eve::fluids::buildVolumeFluidImageDistribution(), eve::fluids::buildVolumeFluidMeshDistribution(), eve::fluids::buildVolumeFluidSphereDistribution(), eve::physics::Rope3D::changeLength(), eve::physics::Cloth3D::Cloth3D(), eve::physics::SoftBody3D::create(), eve::fluids::decodeVolumeFluid(), eve::rts::RTS::escortUnits(), eve::biome_editor::exposeBiomeRulesEditorScriptBindings(), eve::rts::script_internal::exposeFormationBindings(), eve::fluids::exposeVolumeFluidFactory(), eve::physics::ClothModel::fromValue(), eve::procgen::BiomeRules::generate(), eve::procgen::gridgraph::generate(), eve::procgen::generateCastleMesh(), eve::procgen::urban::generateSplitCandidates(), eve::physics::ClothModel::grid(), eve::cloth::Cloth::newCloth(), eve::cloth::Cloth::newCloth3D(), eve::cloth::Cloth::newClothGPU(), eve::physics::Physics::newSoftBody3D(), eve::rts::FormationPlanner::plan(), eve::biome_editing::BiomeDocumentRuntime::preview(), eve::procgen::SpatialData::sample(), eve::procgen::Procgen::sampleGridHandle(), eve::procgen::sampleGridPoints(), eve::procgen::samplePolylinePoints(), eve::procgen::Procgen::sampleSpatialHandle(), eve::procgen::Procgen::sampleSplineHandle(), eve::animation::SpriteSheet::setGrid(), eve::procgen::GeometryStroke::setMinimumSpacingResult(), eve::map::TileLayer::setTileset(), eve::rts::SupplyConvoySystem::step() , 以及 eve::rts::TacticsSystem::step().
◆ terrainRules
| std::vector<TileLayer::Tileset::TerrainRule> terrainRules |
在文件 TileConfig.cpp 第 89 行定义.
◆ tileH
| int tileH = 32 |
在文件 TileConfig.cpp 第 84 行定义.
被这些函数引用 eve::hd2d::TileMap3D::buildMesh(), eve::map::TileLayer::createLayer(), eve::map::Map::newLayer(), eve::map::resolveDualGrid(), eve::map::TileLayer::setCellGap(), eve::map::TileLayer::setTileset(), eve::map::TileLayer::setTilesetTileSize() , 以及 eve::map::TileLayer::setTileSize().
◆ tileW
| int tileW = 32 |
在文件 TileConfig.cpp 第 83 行定义.
被这些函数引用 eve::hd2d::TileMap3D::buildMesh(), eve::map::TileLayer::createLayer(), eve::map::Map::newLayer(), eve::map::resolveDualGrid(), eve::map::TileLayer::setCellGap(), eve::map::TileLayer::setTileset(), eve::map::TileLayer::setTilesetTileSize() , 以及 eve::map::TileLayer::setTileSize().
◆ visible
| bool visible = true |
在文件 TileConfig.cpp 第 786 行定义.
被这些函数引用 eve::hd2d_editing::Hd2dDocumentTarget::applyDomainOperation(), eve::scene::Scene::applyPcgTerrainCullingAt(), eve::editor::UiSkinPreviewPlanner::build(), eve::ui::buildPropertyView(), eve::scene::Scene::collectIdsVisible(), eve::scene::SceneHost::collectIdsVisible(), eve::graphics::hair::ClusterGrid::cullClusters(), eve::graphics::webgpu::Graphics::debugGpuDrivenGpuVisibleCount(), eve::graphics::webgpu::Graphics::debugGpuDrivenVgGpuVisibleCount(), eve::pixelworld_graphics::PixelWorldAtlasRenderer::drawDiagnostics(), eve::avatar_editor::exposeAvatarDocumentEditorScriptBindings(), eve::graphics::exposePrimitiveScriptBindings(), eve::scene::SceneHost::findAllVisible(), eve::ui::PcgControllerSelection::getVisible(), eve::graphics::webgpu::Graphics::gpuDrivenCullEmit(), eve::graphics::webgpu::Graphics::gpuDrivenSubmitOpaque(), eve::asset_scene::EvpackSceneTemplateLoader::load(), eve::scene::Scene::mount(), eve::tactics::TacticsLineOfSightAdapter::query(), eve::ui::PcgControllerSelection::refresh(), eve::sensing::TargetingResolver::resolve(), eve::buildingfx::BuildingFx::setGridVisible(), eve::ui::UI::setHostVisible(), eve::avatar_editor::AvatarDocumentEditor::setLayerVisible(), eve::avatar::AvatarInstance::setLayerVisible(), eve::scene::Scene::setNodeVisible(), eve::editor::EditorWorkspace::setPanelVisible(), eve::avatar::AvatarInstance::setVisible(), eve::graphics::Renderable2D::setVisible(), eve::graphics::Renderable3D::setVisible(), eve::hd2d::Sprite3D::setVisible(), eve::map::TileLayer::setVisible(), eve::particles::ParticleEffect::setVisible(), eve::particles::ParticleEmitter::setVisible(), eve::spritestack::SpriteStack2D::setVisible(), eve::mouse::sdl::Mouse::setVisible(), eve::ui::UI::setVisible(), eve::ui::UIHost::setVisibleById(), eve::avatar::VrmRuntime::sync(), eve::buildingfx::BuildingFx::sync() , 以及 eve::tactics::visibleCellsInRange().
◆ visuals
| std::vector<TileLayer::Tileset::Visual> visuals |