-
Notifications
You must be signed in to change notification settings - Fork 6
The Blaze Map Terminology
One of the maps (in the image sense) you can see ingame, such as Aerial or Topography. The term map is ambiguous, as it has multiple meanings both in the game and in programming, making its usage difficult in both contexts, so, Map Type was chosen.
The main component of Map Types. Each Map Type is composed of one or multiple layers that are superimposed at the time they are drawn on screen. Layers generate these images as you explore the world and save them to disk as needed.
Overlays are like layers in that they are stacked on each other. These are laid on top of the map after every Layer has already been applied, but instead of being defined per map type, all overlays are available in all map types by definition. Also, the pixels from Overlays, if any, are calculated at runtime instead of saved on disk.
An object that can be attached to a layer or overlay that renders on top of the map. Entity markers and waypoints are one example.
The map rendered on the corner of your screen
AKA full map or fullscreen map. Renders fullscreen with lots of buttons and things to look at when you press the assigned hotkey (default is B).
The part of Blaze Map that manages all the technical aspects of map generation. Contains infrastructure to back most of the mod's functionality, as well as keeps one running Pipeline per active dimension.
The part of the Engine that manages all Master Data activities. It runs Collectors, Transformers, Processors, Layers, LRT generation and caching, MD serialization and caching, and sends notifications when an LRT changes.
A blob of data representing one aspect of a chunk. Typically it is composed of one or more 16x16 grids of data points. The entire engine runs on these, and they power every aspect of the map generation
MD Producer. Collects MD from a given chunk. They need to run in the main game thread to ensure the chunk isn't modified in parallel, and so they have some impact on tick times and must be as efficient as possible.
MD Consumer. Uses one or more MD from a single chunk to generate the respective chunk tile. This small image is later inserted at the right coordinates of the LRT to form, literally, the bigger picture (region sized).
Comes in 3 flavors:
- Physical: The default Layer type. Generates tiles that are saved on disk. The only kind that interacts with MD and runs on the Pipeline.
- Synthetic: Also displays pixels on the map, but instead of being generated from MD in the pipeline, they are calculated on the fly at render time.
- Fake / Ghost: Does not generate any images or save anything. Only used to attach markers to.
MD Consumer and Producer. Can transform one ore more types of MD from a single chunk into another MD for the same chunk, however, because they run without direct access to the chunk itself they are executed in the background threads and so performance isn't as critical. Thus, if an MD can be produced with Transformers from existing MD, it should not be produced in a Collector. As of this point it is not guaranteed that a Transformer can run on data produced by another Transformer.
MD Consumer. Can consume MD to generate data, interactions, and otherwise desirable results that are not necessarily map images.
A single map image, that saves to disk as PNG. Blaze Map divides images (tiles) per Layer and per Region, thus the name, Layer Region Tile.
This is an engine class that is responsible for loading, updating, and saving these images.
The same way Minecraft has BlockPos and ChunkPos to represent the coordinates of a block or chunk, we have RegionPos to represent the coordinates of a region. This class is part of the Blaze Map API and is used for almost everything.