Skip to content

Commit c189c10

Browse files
Redirect to MCMap docs
1 parent 858c9d9 commit c189c10

File tree

8 files changed

+9
-291
lines changed

8 files changed

+9
-291
lines changed

Alidade.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MCMaps/Legacy/Views/Pins/CartographyNamedLocationView.swift

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,10 @@ extension NamedLocationView {
1313
/// Create a named location view using a player-created pin.
1414
/// - Parameter pin: The pin to create a named location view from.
1515
init(pin: CartographyMapPin) {
16-
let systemImage =
17-
switch pin.icon {
18-
case .default, nil, .emoji:
19-
"mappin"
20-
default:
21-
pin.icon?.rawValue
22-
}
23-
2416
self.init(
2517
name: pin.name,
2618
location: pin.position,
27-
systemImage: systemImage ?? "mappin",
19+
systemImage: pin.icon?.resolveSFSymbol(in: .pin) ?? "mappin",
2820
color: pin.color?.swiftUIColor ?? .accent
2921
)
3022
}

MCMaps/Red Window/Extensions/CartographyMapFile+Preview.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ extension CartographyMapFile {
4242
named: "Café Trommeln",
4343
at: CGPoint(x: 2014, y: 2014),
4444
color: .brown,
45-
icon: .emoji("☕️")
45+
icon: .forkAndKnife
4646
),
4747
],
4848
images: [

MCMaps/Resources/Alidade.docc/Articles/FileFormat.md

Lines changed: 4 additions & 228 deletions
Original file line numberDiff line numberDiff line change
@@ -11,231 +11,7 @@ Minecraft world maps.
1111

1212
## Overview
1313

14-
Minecraft worlds will generate differently based on the version being
15-
played and the seed used to run the internal generation algorithms.
16-
Players will often juggle between other worlds across devices and
17-
versions, making re-entering this data particularly cumbersome. To address
18-
this, Alidade uses a document-based approach to store worlds as files
19-
using the `.mcmap` file package format.
20-
21-
The following article will outline the file format, key structures
22-
involved, and best practices for working with the file format.
23-
24-
**Last Updated**: 3 May 2025
25-
**Current Format Version**: 1
26-
27-
### Key Tenets
28-
29-
The `.mcmap` format has been carefully designed with the following key
30-
tenets in mind:
31-
32-
- **Portability**: The file format should be portable and easy to
33-
assemble.
34-
- **Cross-platform**: Wherever possible, the file format should be
35-
designed to work across platforms, both within and outside of the Apple
36-
ecosystem.
37-
- **Human-readable**: The format should be readable and inspectable to
38-
players.
39-
- **Performant**: The file format should be performant to read from and
40-
write to.
41-
42-
## General Structure
43-
44-
An `.mcmap` file is a package that consist of at least one file,
45-
`Info.json` (see ``CartographyMapFile/Keys/metadata``). Below is an
46-
example structure of how an `.mcmap` file looks on disk:
47-
48-
```
49-
My World.mcmap/
50-
Info.json
51-
Images/
52-
f6654efd-e52c-4dae-b5e0-e91f08d8cb54.heic
53-
309643c9-d86b-4079-a9a6-4805d1b3c8e4.heic
54-
0c25dea0-ec2e-4061-87ca-da9391193889.heic
55-
```
56-
57-
> Note: The `.mcmap` file is not a compressed archive. On Windows and
58-
> other platforms that don't have Alidade installed, it will appear as a
59-
> directory.
60-
61-
62-
`.mcmap` files might also contain an `Images` directory (see
63-
``CartographyMapFile/Keys/images``), containing various images, typically
64-
stored in the HEIC file format.
65-
66-
<a name="File-metadata" />
67-
68-
## The Manifest
69-
70-
The `.mcmap` file contains a top-level file, `Info.json`, which provides
71-
critical metadata about the file. This file is known as the _manifest_,
72-
and it is heavily versioned.
73-
74-
The manifest will usually contain data such as the world's name, version,
75-
seed, and player-created pins. Depending on the manifest version, they can
76-
be stored in different locations or keys. At the time of writing, the
77-
latest stable version of the manifest is Version **1**; files without the
78-
``MCMapManifestProviding/manifestVersion`` key supplied are assumed to be
79-
this version.
80-
81-
```json
82-
{
83-
"manifestVersion": 2,
84-
"name": "My World",
85-
"world": {
86-
"version": "1.21",
87-
"seed": 123
88-
},
89-
"pins": [ ... ],
90-
"recentLocations": [ ... ]
91-
}
92-
```
93-
94-
> SeeAlso: The latest version of the manifest can be accessed via
95-
> ``MCMapManifest``. Refer to its documentation to learn the differences
96-
> across versions.
97-
98-
The manifest also contains a `name` property, which represents the name of
99-
the world, if it doesn't match the name of the file.
100-
101-
### World settings
102-
103-
Most manifest versions store world-specific information in the world
104-
settings object, denoted as `world`, which contains three required
105-
properties:
106-
107-
- ``MCMapManifestWorldSettings/version``: (String) The version of
108-
Minecraft: Java Edition used to create the world.
109-
- ``MCMapManifestWorldSettings/seed``: (Int) The seed used to generate the
110-
Minecraft world.
111-
- ``MCMapManifestWorldSettings/largeBiomes``: (Bool) Whether to use the
112-
"Large Biomes" setting to generate the world.
113-
114-
> Note: In older manifest versions,
115-
> ``MCMapManifestWorldSettings/largeBiomes`` would always evaluate to
116-
> false, as those versions did not support this key.
117-
118-
### Recent locations
119-
120-
The `recentLocations` key is used to store a list of recently visited
121-
locations that the player can revisit or use to create a pin. It consists
122-
of a two-dimensional array, with each subarray representing coordinates on
123-
the X and Z axes:
124-
125-
```json
126-
{
127-
"recentLocations": [ [0, 0], [1847, 1847] ]
128-
}
129-
```
130-
131-
### Pins
132-
133-
@Row(numberOfColumns: 6) {
134-
@Column(size: 4) {
135-
Pins are objects created by the player to mark specific points of
136-
interest in the world and associate specific metadata with them,
137-
such as images, colors, and descriptions. Pins are intended to be
138-
customizable and personal to the player's preferences and should
139-
offer flexibility.
140-
141-
> Note: Pins are still a work in progress feature that will be
142-
> updated over time with more customization and personalization
143-
> options.
144-
145-
A pin must contain the following keys:
146-
147-
- `name`: (String) The player-assigned name for the pin.
148-
- `position`: (Array) The location of the pin in the world on the
149-
X and Z axes.
150-
}
151-
@Column(size: 2) {
152-
@Image(source: "FileFormat-Pins", alt: "A screenshot showing a player-made pin")
153-
An example pin for a player in their Minecraft world.
154-
}
155-
}
156-
157-
Pins can also contain any of the following properties, which can be
158-
customized by players:
159-
160-
- `aboutDescription`: (String) A player-authored description about the
161-
pin.
162-
- `color`: (String) The pin's associated color.
163-
- `images`: (Array) A list of images associated with this pin.
164-
165-
Some manifest versions might also provide their own properties on top of
166-
these ones.
167-
168-
> Tip: To conserve disk space and memory, when players decide to delete
169-
> pins, any associated images to that pin should also be removed. This is
170-
> already handled with ``CartographyMapFile/removePins(at:)`` and
171-
> ``CartographyMapFile/removePin(at:)`` in ``CartographyMapFile``.
172-
173-
174-
## Images
175-
176-
Pins and other relevant data types might contain images that are
177-
associated to them. Officially, the `.mcmap` file format doesn't
178-
enforce a consistent naming convention for image files, but
179-
Alidade will generate a unique UUID string to be used as the
180-
file's name when a player uploads a photo from their Photos
181-
library or an image file from their Mac through the Finder.
182-
183-
Images that correspond to a given data type, such as a pin, should
184-
match the name of the file as it is stored in the
185-
``CartographyMapFile/Keys/images`` directory, without the folder
186-
path. See below for how this is correlated for a pin as an
187-
example.
188-
189-
@Row {
190-
@Column {
191-
**Info.json**
192-
```json
193-
{
194-
...,
195-
"pins" : [
196-
{
197-
"name" : "My Pin",
198-
"position" : [
199-
0,
200-
0
201-
],
202-
"images" : [
203-
"MyFile.heic"
204-
],
205-
...
206-
}
207-
]
208-
}
209-
```
210-
}
211-
@Column {
212-
**My World.mcmap**
213-
```
214-
My World.mcmap/
215-
Info.json
216-
Images/
217-
MyFile.heic
218-
...
219-
```
220-
}
221-
}
222-
223-
> Tip: Consider making image file names unique, and don't tie them
224-
> with names of data types. Since players can rename these types
225-
> at any given moment, having a unique name that isn't associated
226-
> with a data type's name ensures stability across rename
227-
> operations.
228-
229-
## Topics
230-
231-
### File Structures
232-
233-
- ``CartographyMapFile``
234-
235-
### Manifests
236-
237-
- ``CartographyMapFile/Manifest-swift.typealias``
238-
- ``MCMapManifest``
239-
- ``MCMapManifest_PreVersioning``
240-
- ``MCMapManifest_v1``
241-
- ``MCMapManifest_v2``
14+
> Important: The documentation for the file format has moved. Visit the
15+
> documentation below for updates on the file format:
16+
>
17+
> [Visit new documentation &rsaquo;](https://mcmap.alidade.dev/)

MCMaps/Resources/Alidade.docc/Extensions/CartographyMapFile.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

MCMaps/Resources/Alidade.docc/Extensions/MCMapManifest.md

Lines changed: 0 additions & 31 deletions
This file was deleted.

MCMaps/Resources/Alidade.docc/Extensions/MCMapManifest_v2.md

Lines changed: 0 additions & 11 deletions
This file was deleted.
-122 KB
Binary file not shown.

0 commit comments

Comments
 (0)