载入中...
搜索中...
未找到
TileLayerTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <memory>
8#include <string>
9
10namespace eve::map {
11class TileLayer;
12}
13
14namespace eve::map_editing {
15
18public:
20 TileLayerTarget(std::string id, map::TileLayer* layer);
22 editing::TargetId targetId() const override { return editing::TargetId(id_); }
24 std::uint64_t revision() const override;
26 editing::EditRegion dirtyRegion() const override { return dirty_; }
28 void clearDirtyRegion() override { dirty_.clear(); }
29
31 int width() const override;
33 int height() const override;
35 bool containsCell(int x, int y) const override;
36
38 int readInt(int x, int y) const override;
40 editing::FieldWriteStatus writeInt(int x, int y, int value) override;
41
46 map::TileLayer* layer() const { return layer_; }
47
48private:
49 std::string id_;
50 map::TileLayer* layer_ = nullptr;
52};
53
60[[nodiscard]] EVENGINE_API_WORLD std::unique_ptr<TileLayerTarget> createTileLayerTarget(std::string id,
62
63} // namespace eve::map_editing
double value
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
#define EVENGINE_API_WORLD
Definition Export.h:109
std::uint32_t height
std::uint32_t width
TileLayer * layer
std::uint64_t revision
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
IEditableTarget public API.
IIntFieldTarget public API.
ECS tile layer entity. Script mutates tile GIDs / tileset / draw; TileRenderSystem batch-draws atlas ...
Definition TileLayer.h:32
Non-owning editable adapter for a live map tile layer.
editing::TargetId targetId() const override
Target id.
map::TileLayer * layer() const
Return the borrowed live layer.
void clearDirtyRegion() override
Clears dirty region.
editing::EditRegion dirtyRegion() const override
Dirty region.
FieldWriteStatus
FieldWriteStatus public API.
std::unique_ptr< TileLayerTarget > createTileLayerTarget(std::string id, map::TileLayer *layer)
Create a map-layer adapter.
放置世界:格子占用(多通道)+ 地形语义 + 已放置建筑实例。 行为由 PlacementSystem 提供;本类暴露便于脚本绑定的薄封装方法。 坐标换算统一走 eve::grid(支持 rectang...
EditRegion public API.