diff options
Diffstat (limited to 'Map/Presentation/Complex Components/MapRender')
| -rw-r--r-- | Map/Presentation/Complex Components/MapRender/MapRenderView.swift | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/Map/Presentation/Complex Components/MapRender/MapRenderView.swift b/Map/Presentation/Complex Components/MapRender/MapRenderView.swift index 780290b..2357013 100644 --- a/Map/Presentation/Complex Components/MapRender/MapRenderView.swift +++ b/Map/Presentation/Complex Components/MapRender/MapRenderView.swift @@ -21,6 +21,7 @@ struct MapRenderView: View { @Binding var document: MapDocument @Binding var evolution: StageType + @AppStorage("showMapBackground") var showMapBackground: Bool = true var stage: Stage { Stage.stages(evolution) @@ -47,25 +48,36 @@ struct MapRenderView: View { x: -padding, y: -padding, width: mapSize.width + padding * 2, height: mapSize.height + padding * 4)) }.fill(.white) + + // The order Matters. Think of this as layers. - MapStages(mapSize: mapSize, lineWidth: lineWidth, stages: parsedMap.stages) + if showMapBackground { + MapBackground(mapSize: mapSize, lineWidth: lineWidth, stages: parsedMap.stages) + } MapAxes( mapSize: mapSize, lineWidth: lineWidth, evolution: stage, stages: parsedMap.stages) - MapEdges( - mapSize: mapSize, lineWidth: lineWidth, vertexSize: vertexSize, edges: parsedMap.edges) - MapBlockers(mapSize: mapSize, vertexSize: vertexSize, blockers: parsedMap.blockers) - MapVertices( - mapSize: mapSize, vertexSize: vertexSize, vertices: parsedMap.vertices, - onDragVertex: onDragVertex) - MapOpportunities( - mapSize: mapSize, lineWidth: lineWidth, vertexSize: vertexSize, - opportunities: parsedMap.opportunities) + Group { + MapStages(mapSize: mapSize, lineWidth: lineWidth, stages: parsedMap.stages) + MapEdges( + mapSize: mapSize, lineWidth: lineWidth, vertexSize: vertexSize, edges: parsedMap.edges) + MapOpportunities( + mapSize: mapSize, lineWidth: lineWidth, vertexSize: vertexSize, + opportunities: parsedMap.opportunities) + MapBlockers(mapSize: mapSize, vertexSize: vertexSize, blockers: parsedMap.blockers) + }.mask { + MapMask( + mapSize: mapSize, vertexSize: vertexSize, vertices: parsedMap.vertices) + } + MapVertices( + mapSize: mapSize, vertexSize: vertexSize, vertices: parsedMap.vertices, + onDragVertex: onDragVertex) MapGroups(mapSize: mapSize, vertexSize: vertexSize, groups: parsedMap.groups).drawingGroup( opaque: true ).opacity(0.1) MapNotes( mapSize: mapSize, lineWidth: lineWidth, notes: parsedMap.notes) - }.offset(x: padding, y: padding).frame( + } + .offset(x: padding, y: padding).frame( width: mapSize.width + 2 * padding, height: mapSize.height + 2 * padding, alignment: .topLeading ) |