Add path auto-tiling tool to map editor
Exposes the TilingPath code used by the map generator as a map editor tool to help automate the process of tiling sequences of templates together. No additional template stitching definitions are added as part of this commit. As such, the tool currently only supports the same auto tiling as the map generator does. This includes: - RA and CnC support. - Beaches, land cliffs, and roads. Support for additional mods and templates can be added in follow-ups by adding the necessary MultiBrush definitions. Related changes included in this commit to support this work include: - Add support for sparse EditorBlits. - Add support for MultiBrush to EditorBlitSource conversion. - Add support for EditorBlitSource previewing. - Adjust the "Road" types used in segmented MultiBrush definitions.
This commit is contained in:
committed by
Gustas Kažukauskas
parent
d3d949176d
commit
ad08045e5f
@@ -12,6 +12,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.EditorBrushes
|
namespace OpenRA.Mods.Common.EditorBrushes
|
||||||
@@ -39,7 +40,7 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
readonly MapBlitFilters blitFilters;
|
readonly MapBlitFilters blitFilters;
|
||||||
readonly IResourceLayer resourceLayer;
|
readonly IResourceLayer resourceLayer;
|
||||||
readonly EditorActorLayer editorActorLayer;
|
readonly EditorActorLayer editorActorLayer;
|
||||||
readonly EditorBlitSource blitSource;
|
readonly EditorBlitSource commitBlitSource;
|
||||||
readonly EditorBlitSource revertBlitSource;
|
readonly EditorBlitSource revertBlitSource;
|
||||||
readonly CPos blitPosition;
|
readonly CPos blitPosition;
|
||||||
readonly Map map;
|
readonly Map map;
|
||||||
@@ -56,30 +57,39 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
{
|
{
|
||||||
this.blitFilters = blitFilters;
|
this.blitFilters = blitFilters;
|
||||||
this.resourceLayer = resourceLayer;
|
this.resourceLayer = resourceLayer;
|
||||||
this.blitSource = blitSource;
|
|
||||||
this.blitPosition = blitPosition;
|
this.blitPosition = blitPosition;
|
||||||
this.editorActorLayer = editorActorLayer;
|
this.editorActorLayer = editorActorLayer;
|
||||||
this.map = map;
|
this.map = map;
|
||||||
this.respectBounds = respectBounds;
|
this.respectBounds = respectBounds;
|
||||||
|
|
||||||
var blitSize = blitSource.CellRegion.BottomRight - blitSource.CellRegion.TopLeft;
|
var blitSize = blitSource.CellRegion.BottomRight - blitSource.CellRegion.TopLeft;
|
||||||
|
|
||||||
|
// Only include into the revert blit stuff which would be modified by the main blit.
|
||||||
|
var mask = GetBlitSourceMask(
|
||||||
|
blitSource, blitPosition - blitSource.CellRegion.TopLeft);
|
||||||
|
|
||||||
|
commitBlitSource = blitSource;
|
||||||
revertBlitSource = CopyRegionContents(
|
revertBlitSource = CopyRegionContents(
|
||||||
map,
|
map,
|
||||||
editorActorLayer,
|
editorActorLayer,
|
||||||
resourceLayer,
|
resourceLayer,
|
||||||
new CellRegion(map.Grid.Type, blitPosition, blitPosition + blitSize),
|
new CellRegion(map.Grid.Type, blitPosition, blitPosition + blitSize),
|
||||||
blitFilters);
|
blitFilters,
|
||||||
|
mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns an EditorBlitSource containing the map contents for a given region.
|
/// Returns an EditorBlitSource containing the map contents for a given region.
|
||||||
|
/// If a mask is supplied, only tiles and actors (fully or partially) overlapping the mask
|
||||||
|
/// are included in the EditorBlitSource.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static EditorBlitSource CopyRegionContents(
|
public static EditorBlitSource CopyRegionContents(
|
||||||
Map map,
|
Map map,
|
||||||
EditorActorLayer editorActorLayer,
|
EditorActorLayer editorActorLayer,
|
||||||
IResourceLayer resourceLayer,
|
IResourceLayer resourceLayer,
|
||||||
CellRegion region,
|
CellRegion region,
|
||||||
MapBlitFilters blitFilters)
|
MapBlitFilters blitFilters,
|
||||||
|
IReadOnlySet<CPos> mask = null)
|
||||||
{
|
{
|
||||||
var mapTiles = map.Tiles;
|
var mapTiles = map.Tiles;
|
||||||
var mapHeight = map.Height;
|
var mapHeight = map.Height;
|
||||||
@@ -90,7 +100,7 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
|
|
||||||
foreach (var cell in region.CellCoords)
|
foreach (var cell in region.CellCoords)
|
||||||
{
|
{
|
||||||
if (!mapTiles.Contains(cell))
|
if (!mapTiles.Contains(cell) || (mask != null && !mask.Contains(cell)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
tiles.Add(
|
tiles.Add(
|
||||||
@@ -103,13 +113,15 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
|
|
||||||
if (blitFilters.HasFlag(MapBlitFilters.Actors))
|
if (blitFilters.HasFlag(MapBlitFilters.Actors))
|
||||||
foreach (var preview in editorActorLayer.PreviewsInCellRegion(region.CellCoords))
|
foreach (var preview in editorActorLayer.PreviewsInCellRegion(region.CellCoords))
|
||||||
previews.TryAdd(preview.ID, preview);
|
if (mask == null || preview.Footprint.Keys.Any(mask.Contains))
|
||||||
|
previews.TryAdd(preview.ID, preview);
|
||||||
|
|
||||||
return new EditorBlitSource(region, previews, tiles);
|
return new EditorBlitSource(region, previews, tiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Blit(EditorBlitSource source, bool isRevert)
|
void Blit(bool isRevert)
|
||||||
{
|
{
|
||||||
|
var source = isRevert ? revertBlitSource : commitBlitSource;
|
||||||
var blitPos = isRevert ? source.CellRegion.TopLeft : blitPosition;
|
var blitPos = isRevert ? source.CellRegion.TopLeft : blitPosition;
|
||||||
var blitVec = blitPos - source.CellRegion.TopLeft;
|
var blitVec = blitPos - source.CellRegion.TopLeft;
|
||||||
var blitSize = source.CellRegion.BottomRight - source.CellRegion.TopLeft;
|
var blitSize = source.CellRegion.BottomRight - source.CellRegion.TopLeft;
|
||||||
@@ -118,8 +130,25 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
if (blitFilters.HasFlag(MapBlitFilters.Actors))
|
if (blitFilters.HasFlag(MapBlitFilters.Actors))
|
||||||
{
|
{
|
||||||
// Clear any existing actors in the paste cells.
|
// Clear any existing actors in the paste cells.
|
||||||
foreach (var regionActor in editorActorLayer.PreviewsInCellRegion(blitRegion.CellCoords).ToList())
|
var regionActors = editorActorLayer.PreviewsInCellRegion(blitRegion.CellCoords).ToList();
|
||||||
editorActorLayer.Remove(regionActor);
|
|
||||||
|
// revertBlitSource's mask may be a superset of the commitBlitSource's mask if
|
||||||
|
// - Its a sparse blit; and
|
||||||
|
// - The revert actors removed by the commit are partially outside of the commit mask.
|
||||||
|
// Otherwise, it's a (practically) equal set. (Subject to map bounds.)
|
||||||
|
//
|
||||||
|
// This implies that:
|
||||||
|
// - commitBlitSource's mask will overlap all commit actors.
|
||||||
|
// - revertBlitSource's mask will overlap all revert actors.
|
||||||
|
// - commitBlitSource's mask will overlap all and no more than the revert actors.
|
||||||
|
// - revertBlitSource's mask will overlap all revert actors BUT MAY OVERLAP MORE!
|
||||||
|
//
|
||||||
|
// This means we use the commit mask, not the revert one.
|
||||||
|
var commitBlitVec = blitPosition - commitBlitSource.CellRegion.TopLeft;
|
||||||
|
var mask = GetBlitSourceMask(commitBlitSource, commitBlitVec);
|
||||||
|
foreach (var regionActor in regionActors)
|
||||||
|
if (regionActor.Footprint.Any(kv => mask.Contains(kv.Key)))
|
||||||
|
editorActorLayer.Remove(regionActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var tileKeyValuePair in source.Tiles)
|
foreach (var tileKeyValuePair in source.Tiles)
|
||||||
@@ -178,12 +207,104 @@ namespace OpenRA.Mods.Common.EditorBrushes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Commit() => Blit(blitSource, false);
|
public static IEnumerable<IRenderable> PreviewBlitSource(
|
||||||
public void Revert() => Blit(revertBlitSource, true);
|
EditorBlitSource blitSource,
|
||||||
|
MapBlitFilters filters,
|
||||||
|
CVec offset,
|
||||||
|
WorldRenderer wr)
|
||||||
|
{
|
||||||
|
var world = wr.World;
|
||||||
|
var map = world.Map;
|
||||||
|
|
||||||
|
var terrainRenderer = world.WorldActor.Trait<ITiledTerrainRenderer>();
|
||||||
|
var resourceRenderers = world.WorldActor.TraitsImplementing<IResourceRenderer>().ToArray();
|
||||||
|
|
||||||
|
var wOffset = map.CenterOfCell(CPos.Zero + offset) - map.CenterOfCell(CPos.Zero);
|
||||||
|
|
||||||
|
if (filters.HasFlag(MapBlitFilters.Terrain))
|
||||||
|
{
|
||||||
|
foreach (var (cpos, tile) in blitSource.Tiles)
|
||||||
|
{
|
||||||
|
var preview =
|
||||||
|
terrainRenderer.RenderPreview(
|
||||||
|
wr,
|
||||||
|
tile.TerrainTile,
|
||||||
|
map.CenterOfCell(cpos + offset));
|
||||||
|
foreach (var renderable in preview)
|
||||||
|
yield return renderable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters.HasFlag(MapBlitFilters.Resources))
|
||||||
|
{
|
||||||
|
foreach (var (cpos, tile) in blitSource.Tiles)
|
||||||
|
{
|
||||||
|
if (tile.ResourceLayerContents == null || tile.ResourceLayerContents.Value.Type == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var preview = resourceRenderers
|
||||||
|
.SelectMany(r => r.RenderPreview(
|
||||||
|
wr,
|
||||||
|
tile.ResourceLayerContents.Value.Type,
|
||||||
|
map.CenterOfCell(cpos + offset)));
|
||||||
|
foreach (var renderable in preview)
|
||||||
|
yield return renderable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters.HasFlag(MapBlitFilters.Actors))
|
||||||
|
{
|
||||||
|
foreach (var (_, editorActorPreview) in blitSource.Actors)
|
||||||
|
{
|
||||||
|
var preview = editorActorPreview.RenderWithOffset(wOffset);
|
||||||
|
foreach (var renderable in preview)
|
||||||
|
yield return renderable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Find the set of cells within an EditorBlitSource that are actually occupied by a
|
||||||
|
/// BlitTile or actor. Note that all tiles must be inside the CellRegion, and actors must
|
||||||
|
/// be at least partially inside the CellRegion. If an actor partially lies outside of the
|
||||||
|
/// CellRegion, only cells within the CellRegion are included in the output set.
|
||||||
|
/// </summary>
|
||||||
|
static HashSet<CPos> GetBlitSourceMask(
|
||||||
|
EditorBlitSource blitSource,
|
||||||
|
CVec offset)
|
||||||
|
{
|
||||||
|
var mask = new HashSet<CPos>();
|
||||||
|
|
||||||
|
foreach (var (cpos, _) in blitSource.Tiles)
|
||||||
|
{
|
||||||
|
if (!blitSource.CellRegion.Contains(cpos))
|
||||||
|
throw new ArgumentException("EditorBlitSource contains a BlitTile outside of its CellRegion");
|
||||||
|
mask.Add(cpos + offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var (_, editorActorPreview) in blitSource.Actors)
|
||||||
|
{
|
||||||
|
var anyContained = false;
|
||||||
|
foreach (var cpos in editorActorPreview.Footprint.Keys)
|
||||||
|
if (blitSource.CellRegion.Contains(cpos))
|
||||||
|
{
|
||||||
|
mask.Add(cpos + offset);
|
||||||
|
anyContained = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!anyContained)
|
||||||
|
throw new ArgumentException("EditorBlitSource contains an actor entirely outside of its CellRegion");
|
||||||
|
}
|
||||||
|
|
||||||
|
return mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Commit() => Blit(false);
|
||||||
|
public void Revert() => Blit(true);
|
||||||
|
|
||||||
public int TileCount()
|
public int TileCount()
|
||||||
{
|
{
|
||||||
return blitSource.Tiles.Count;
|
return commitBlitSource.Tiles.Count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
371
OpenRA.Mods.Common/EditorBrushes/EditorTilingPathBrush.cs
Normal file
371
OpenRA.Mods.Common/EditorBrushes/EditorTilingPathBrush.cs
Normal file
@@ -0,0 +1,371 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright (c) The OpenRA Developers and Contributors
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version. For more
|
||||||
|
* information, see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Mods.Common.EditorBrushes;
|
||||||
|
using OpenRA.Mods.Common.Graphics;
|
||||||
|
using OpenRA.Mods.Common.MapGenerator;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Primitives;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Widgets
|
||||||
|
{
|
||||||
|
public sealed class EditorTilingPathBrush : IEditorBrush
|
||||||
|
{
|
||||||
|
readonly TilingPathTool tool;
|
||||||
|
readonly WorldRenderer worldRenderer;
|
||||||
|
readonly EditorActionManager editorActionManager;
|
||||||
|
|
||||||
|
MouseInput? startingMouseInput = null;
|
||||||
|
bool isDragging = false;
|
||||||
|
TilingPathTool.PathPlan previewPlan = null;
|
||||||
|
|
||||||
|
public EditorTilingPathBrush(TilingPathTool tool)
|
||||||
|
{
|
||||||
|
this.tool = tool;
|
||||||
|
worldRenderer = tool.WorldRenderer;
|
||||||
|
editorActionManager = worldRenderer.World.WorldActor.Trait<EditorActionManager>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HandleMouseInput(MouseInput mouseInput)
|
||||||
|
{
|
||||||
|
if (mouseInput.Button != MouseButton.Left)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var isFinal = false;
|
||||||
|
if (mouseInput.Event == MouseInputEvent.Down)
|
||||||
|
{
|
||||||
|
startingMouseInput = mouseInput;
|
||||||
|
isDragging = false;
|
||||||
|
}
|
||||||
|
else if (startingMouseInput != null)
|
||||||
|
{
|
||||||
|
if (mouseInput.Event == MouseInputEvent.Up)
|
||||||
|
{
|
||||||
|
isFinal = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CPos ViewToWorldCorner(int2 xy) =>
|
||||||
|
CellLayerUtils.WPosToCorner(
|
||||||
|
worldRenderer.ProjectedPosition(
|
||||||
|
worldRenderer.Viewport.ViewToWorldPx(xy)),
|
||||||
|
worldRenderer.World.Map.Grid.Type);
|
||||||
|
|
||||||
|
var from = ViewToWorldCorner(startingMouseInput.Value.Location);
|
||||||
|
var to = ViewToWorldCorner(mouseInput.Location);
|
||||||
|
|
||||||
|
void UpdatePlan(TilingPathTool.PathPlan newPlan, bool preview)
|
||||||
|
{
|
||||||
|
if (isFinal)
|
||||||
|
{
|
||||||
|
editorActionManager.Add(
|
||||||
|
new UpdateTilingPathPlanEditorAction(tool, newPlan));
|
||||||
|
}
|
||||||
|
else if (preview)
|
||||||
|
{
|
||||||
|
previewPlan = newPlan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isFinal)
|
||||||
|
{
|
||||||
|
previewPlan = null;
|
||||||
|
startingMouseInput = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
isDragging |= to != from;
|
||||||
|
var plan = tool.Plan;
|
||||||
|
|
||||||
|
if (plan == null)
|
||||||
|
{
|
||||||
|
UpdatePlan(new TilingPathTool.PathPlan(to), true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
var points = plan.PointsWithRallyIndex();
|
||||||
|
|
||||||
|
(bool IsInside, bool IsRally, int RallyIndex, bool IsStartDirector, bool IsEndDirector)
|
||||||
|
AssessCPos(CPos cpos)
|
||||||
|
{
|
||||||
|
var isInside = points.Select(p => p.CPos).Contains(cpos);
|
||||||
|
var isRally = plan.Rallies.Contains(cpos);
|
||||||
|
var rallyIndex =
|
||||||
|
points
|
||||||
|
.Where(p => p.CPos == cpos)
|
||||||
|
.Select(p => p.RallyIndex)
|
||||||
|
.FirstOrDefault(0);
|
||||||
|
var isStartDirector =
|
||||||
|
plan.AutoStart != Direction.None
|
||||||
|
&& cpos == plan.FirstPoint - Direction.ToCVec(plan.AutoStart);
|
||||||
|
var isEndDirector =
|
||||||
|
plan.AutoEnd != Direction.None
|
||||||
|
&& cpos == plan.LastPoint + Direction.ToCVec(plan.AutoEnd);
|
||||||
|
return (isInside, isRally, rallyIndex, isStartDirector, isEndDirector);
|
||||||
|
}
|
||||||
|
|
||||||
|
var (fromIsInside, fromIsRally, fromRallyIndex, fromIsStartDirector, fromIsEndDirector) =
|
||||||
|
AssessCPos(from);
|
||||||
|
var (toIsInside, toIsRally, toRallyIndex, toIsStartDirector, toIsEndDirector) =
|
||||||
|
AssessCPos(to);
|
||||||
|
|
||||||
|
if (isDragging)
|
||||||
|
{
|
||||||
|
if (fromIsStartDirector)
|
||||||
|
{
|
||||||
|
var offset = plan.FirstPoint - to;
|
||||||
|
var direction =
|
||||||
|
offset != CVec.Zero
|
||||||
|
? Direction.FromCVecRounding(offset)
|
||||||
|
: Direction.None;
|
||||||
|
UpdatePlan(plan.WithStart(direction), true);
|
||||||
|
}
|
||||||
|
else if (fromIsEndDirector)
|
||||||
|
{
|
||||||
|
var offset = to - plan.LastPoint;
|
||||||
|
var direction =
|
||||||
|
offset != CVec.Zero
|
||||||
|
? Direction.FromCVecRounding(offset)
|
||||||
|
: Direction.None;
|
||||||
|
UpdatePlan(plan.WithEnd(direction), true);
|
||||||
|
}
|
||||||
|
else if (fromIsInside)
|
||||||
|
{
|
||||||
|
if (fromIsRally)
|
||||||
|
{
|
||||||
|
if (!toIsRally || to == from)
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithRallyReplaced(fromRallyIndex, to), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.Moved(to - from), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!toIsRally)
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithRallyAppended(to), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (toIsInside)
|
||||||
|
{
|
||||||
|
if (toIsRally)
|
||||||
|
{
|
||||||
|
if (toRallyIndex == 0)
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithLoop(!plan.Loop), false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithRallyRemoved(toRallyIndex), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithRallyInserted(toRallyIndex, to), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdatePlan(plan.WithRallyAppended(to), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IEditorBrush.TickRender(WorldRenderer wr, Actor self) { }
|
||||||
|
IEnumerable<IRenderable> IEditorBrush.RenderAboveShroud(Actor self, WorldRenderer wr)
|
||||||
|
{
|
||||||
|
if (tool.EditorBlitSource == null)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
var preview = EditorBlit.PreviewBlitSource(
|
||||||
|
tool.EditorBlitSource.Value,
|
||||||
|
MapBlitFilters.Terrain | MapBlitFilters.Actors,
|
||||||
|
CVec.Zero,
|
||||||
|
wr);
|
||||||
|
foreach (var renderable in preview)
|
||||||
|
yield return renderable;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerable<IRenderable> IEditorBrush.RenderAnnotations(Actor self, WorldRenderer wr)
|
||||||
|
{
|
||||||
|
var plan = previewPlan ?? tool.Plan;
|
||||||
|
if (plan == null)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
var mainColor = tool.EditorBlitSource != null ? Color.Cyan : Color.Red;
|
||||||
|
|
||||||
|
var gridType = worldRenderer.World.Map.Grid.Type;
|
||||||
|
WPos CornerOfCell(CPos cpos) => CellLayerUtils.CornerToWPos(cpos, gridType);
|
||||||
|
|
||||||
|
var points = plan.Points();
|
||||||
|
for (var i = 1; i < points.Length; i++)
|
||||||
|
{
|
||||||
|
yield return new CircleAnnotationRenderable(
|
||||||
|
CornerOfCell(points[i]), new WDist(128), 1, Color.Yellow, false);
|
||||||
|
yield return new LineAnnotationRenderable(
|
||||||
|
CornerOfCell(points[i - 1]),
|
||||||
|
CornerOfCell(points[i]),
|
||||||
|
1,
|
||||||
|
Color.Yellow,
|
||||||
|
Color.Yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 1; i < plan.Rallies.Length; i++)
|
||||||
|
{
|
||||||
|
yield return new CircleAnnotationRenderable(
|
||||||
|
CornerOfCell(plan.Rallies[i]), new WDist(512), 1, mainColor, false);
|
||||||
|
yield return new LineAnnotationRenderable(
|
||||||
|
CornerOfCell(plan.Rallies[i - 1]),
|
||||||
|
CornerOfCell(plan.Rallies[i]),
|
||||||
|
1,
|
||||||
|
mainColor,
|
||||||
|
mainColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (plan.AutoEnd != Direction.None)
|
||||||
|
yield return new CircleAnnotationRenderable(
|
||||||
|
CornerOfCell(plan.LastPoint) + Direction.ToWVec(plan.AutoEnd) * 768,
|
||||||
|
new WDist(256),
|
||||||
|
2,
|
||||||
|
plan.End != Direction.None ? Color.Magenta : Color.Gray,
|
||||||
|
false);
|
||||||
|
|
||||||
|
if (plan.AutoStart != Direction.None)
|
||||||
|
yield return new CircleAnnotationRenderable(
|
||||||
|
CornerOfCell(plan.FirstPoint) - Direction.ToWVec(plan.AutoStart) * 768,
|
||||||
|
new WDist(256),
|
||||||
|
2,
|
||||||
|
plan.Start != Direction.None ? Color.Magenta : Color.Gray,
|
||||||
|
true);
|
||||||
|
|
||||||
|
yield return new CircleAnnotationRenderable(
|
||||||
|
CornerOfCell(plan.Rallies[0]), new WDist(512), 1, mainColor, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Tick() { }
|
||||||
|
|
||||||
|
public void Dispose() { }
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class UpdateTilingPathPlanEditorAction : IEditorAction
|
||||||
|
{
|
||||||
|
[FluentReference]
|
||||||
|
const string StartedPlan = "notification-tiling-path-started";
|
||||||
|
[FluentReference]
|
||||||
|
const string UpdatedPlan = "notification-tiling-path-updated";
|
||||||
|
[FluentReference]
|
||||||
|
const string ResetPlan = "notification-tiling-path-reset";
|
||||||
|
|
||||||
|
public string Text { get; }
|
||||||
|
|
||||||
|
readonly TilingPathTool tool;
|
||||||
|
readonly TilingPathTool.PathPlan oldPlan;
|
||||||
|
readonly TilingPathTool.PathPlan newPlan;
|
||||||
|
|
||||||
|
public UpdateTilingPathPlanEditorAction(
|
||||||
|
TilingPathTool tool,
|
||||||
|
TilingPathTool.PathPlan newPlan)
|
||||||
|
{
|
||||||
|
this.tool = tool;
|
||||||
|
oldPlan = tool.Plan;
|
||||||
|
this.newPlan = newPlan;
|
||||||
|
if (oldPlan == null && newPlan == null)
|
||||||
|
throw new ArgumentException("oldPlan and newPlan cannot both be null");
|
||||||
|
else if (oldPlan == null)
|
||||||
|
Text = FluentProvider.GetMessage(StartedPlan);
|
||||||
|
else if (newPlan == null)
|
||||||
|
Text = FluentProvider.GetMessage(ResetPlan);
|
||||||
|
else
|
||||||
|
Text = FluentProvider.GetMessage(UpdatedPlan);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Execute()
|
||||||
|
{
|
||||||
|
Do();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Do()
|
||||||
|
{
|
||||||
|
tool.SetPlan(newPlan);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Undo()
|
||||||
|
{
|
||||||
|
tool.SetPlan(oldPlan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class PaintTilingPathEditorAction : IEditorAction
|
||||||
|
{
|
||||||
|
[FluentReference]
|
||||||
|
const string Painted = "notification-tiling-path-painted";
|
||||||
|
|
||||||
|
public string Text { get; }
|
||||||
|
|
||||||
|
readonly TilingPathTool tool;
|
||||||
|
readonly TilingPathTool.PathPlan plan;
|
||||||
|
readonly EditorBlit editorBlit;
|
||||||
|
|
||||||
|
public PaintTilingPathEditorAction(TilingPathTool tool)
|
||||||
|
{
|
||||||
|
this.tool = tool;
|
||||||
|
plan = tool.Plan;
|
||||||
|
Text = FluentProvider.GetMessage(Painted);
|
||||||
|
|
||||||
|
var world = tool.World;
|
||||||
|
var editorActorLayer = world.WorldActor.Trait<EditorActorLayer>();
|
||||||
|
|
||||||
|
var blitSource = tool.EditorBlitSource.Value;
|
||||||
|
|
||||||
|
editorBlit = new EditorBlit(
|
||||||
|
MapBlitFilters.Terrain | MapBlitFilters.Actors,
|
||||||
|
null,
|
||||||
|
blitSource.CellRegion.TopLeft,
|
||||||
|
world.Map,
|
||||||
|
blitSource,
|
||||||
|
editorActorLayer,
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Execute()
|
||||||
|
{
|
||||||
|
Do();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Do()
|
||||||
|
{
|
||||||
|
tool.SetPlan(null);
|
||||||
|
editorBlit.Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Undo()
|
||||||
|
{
|
||||||
|
editorBlit.Revert();
|
||||||
|
tool.SetPlan(plan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -61,19 +61,39 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Get the WPos of the -X-Y corner of a CPos cell.</summary>
|
/// <summary>Get the WPos of the -X-Y corner of a CPos cell.</summary>
|
||||||
public static WPos CornerToWPos(CPos xy, MapGridType gridType)
|
public static WPos CornerToWPos(CPos cpos, MapGridType gridType)
|
||||||
{
|
{
|
||||||
switch (gridType)
|
switch (gridType)
|
||||||
{
|
{
|
||||||
case MapGridType.Rectangular:
|
case MapGridType.Rectangular:
|
||||||
return new WPos(
|
return new WPos(
|
||||||
xy.X * 1024,
|
cpos.X * 1024,
|
||||||
xy.Y * 1024,
|
cpos.Y * 1024,
|
||||||
0);
|
0);
|
||||||
case MapGridType.RectangularIsometric:
|
case MapGridType.RectangularIsometric:
|
||||||
return new WPos(
|
return new WPos(
|
||||||
(xy.X - xy.Y) * 724 + 724,
|
(cpos.X - cpos.Y) * 724 + 724,
|
||||||
(xy.X + xy.Y) * 724,
|
(cpos.X + cpos.Y) * 724,
|
||||||
|
0);
|
||||||
|
default:
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Get the closest -X-Y corner of a CPos cell to a WPos.</summary>
|
||||||
|
public static CPos WPosToCorner(WPos cpos, MapGridType gridType)
|
||||||
|
{
|
||||||
|
switch (gridType)
|
||||||
|
{
|
||||||
|
case MapGridType.Rectangular:
|
||||||
|
return new CPos(
|
||||||
|
FloorDiv(cpos.X + 512, 1024),
|
||||||
|
FloorDiv(cpos.Y + 512, 1024),
|
||||||
|
0);
|
||||||
|
case MapGridType.RectangularIsometric:
|
||||||
|
return new CPos(
|
||||||
|
FloorDiv(cpos.Y + cpos.X, 1448),
|
||||||
|
FloorDiv(cpos.Y - cpos.X, 1448),
|
||||||
0);
|
0);
|
||||||
default:
|
default:
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|||||||
@@ -125,6 +125,18 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
throw new ArgumentException("bad direction");
|
throw new ArgumentException("bad direction");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static readonly ImmutableArray<int2> KiloVectors =
|
||||||
|
[
|
||||||
|
new(1024, 0),
|
||||||
|
new(724, 724),
|
||||||
|
new(0, 1024),
|
||||||
|
new(-724, 724),
|
||||||
|
new(-1024, 0),
|
||||||
|
new(-724, -724),
|
||||||
|
new(0, -1024),
|
||||||
|
new(724, -724),
|
||||||
|
];
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert a non-none direction to a CVec offset. Assumes that
|
/// Convert a non-none direction to a CVec offset. Assumes that
|
||||||
/// CVec(1, 0) corresponds to Direction.R.
|
/// CVec(1, 0) corresponds to Direction.R.
|
||||||
@@ -137,8 +149,21 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
throw new ArgumentException("bad direction");
|
throw new ArgumentException("bad direction");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert a non-none direction to a WVec offset. Assumes that
|
||||||
|
/// WVec(1, 0, 0) corresponds to Direction.R.
|
||||||
|
/// </summary>
|
||||||
|
public static WVec ToWVec(int d)
|
||||||
|
{
|
||||||
|
if (d >= 0 && d < 8)
|
||||||
|
return new WVec(Spread8[d].X, Spread8[d].Y, 0);
|
||||||
|
else
|
||||||
|
throw new ArgumentException("bad direction");
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
||||||
|
/// The direction is based purely on the signs of the inputs.
|
||||||
/// Supplying a zero-offset will throw.
|
/// Supplying a zero-offset will throw.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static int FromOffset(int dx, int dy)
|
public static int FromOffset(int dx, int dy)
|
||||||
@@ -172,6 +197,32 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
||||||
|
/// The direction with the closest angle wins. Keep inputs to 1000000 or less.
|
||||||
|
/// Supplying a zero-offset will throw.
|
||||||
|
/// </summary>
|
||||||
|
public static int FromOffsetRounding(int dx, int dy)
|
||||||
|
{
|
||||||
|
if (dx == 0 && dy == 0)
|
||||||
|
throw new ArgumentException("Bad direction");
|
||||||
|
|
||||||
|
var d = new int2(dx, dy);
|
||||||
|
var direction = None;
|
||||||
|
var best = 0;
|
||||||
|
for (var i = 0; i < KiloVectors.Length; i++)
|
||||||
|
{
|
||||||
|
var score = int2.Dot(d, KiloVectors[i]);
|
||||||
|
if (score > best)
|
||||||
|
{
|
||||||
|
best = score;
|
||||||
|
direction = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return direction;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
||||||
/// Supplying a zero-offset will throw.
|
/// Supplying a zero-offset will throw.
|
||||||
@@ -187,6 +238,14 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
public static int FromCVec(CVec delta)
|
public static int FromCVec(CVec delta)
|
||||||
=> FromOffset(delta.X, delta.Y);
|
=> FromOffset(delta.X, delta.Y);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert an offset (of arbitrary non-zero magnitude) to a direction.
|
||||||
|
/// Supplying a zero-offset will throw. Assumes that CVec(1, 0)
|
||||||
|
/// corresponds to Direction.R.
|
||||||
|
/// </summary>
|
||||||
|
public static int FromCVecRounding(CVec delta)
|
||||||
|
=> FromOffsetRounding(delta.X, delta.Y);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert an offset (of arbitrary non-zero magnitude) to a non-diagonal direction.
|
/// Convert an offset (of arbitrary non-zero magnitude) to a non-diagonal direction.
|
||||||
/// Supplying a zero-offset will throw.
|
/// Supplying a zero-offset will throw.
|
||||||
|
|||||||
@@ -14,7 +14,10 @@ using System.Collections.Generic;
|
|||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Mods.Common.EditorBrushes;
|
||||||
using OpenRA.Mods.Common.Terrain;
|
using OpenRA.Mods.Common.Terrain;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
using OpenRA.Support;
|
using OpenRA.Support;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.MapGenerator
|
namespace OpenRA.Mods.Common.MapGenerator
|
||||||
@@ -236,8 +239,12 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
/// <summary>Total area covered by the MultiBrush.</summary>
|
/// <summary>Total area covered by the MultiBrush.</summary>
|
||||||
public int Area => GetShape().Length;
|
public int Area => GetShape().Length;
|
||||||
|
|
||||||
/// <summary>The CVec of the top-left most cell covered by the MultiBrush.</summary>
|
/// <summary>
|
||||||
public CVec TopLeft => GetShape()[0];
|
/// The CVec of the first cell covered by the MultiBrush. This is the left-most cell in the
|
||||||
|
/// top-row. Note that this does not necessarily correspond to the top-left corner of the
|
||||||
|
/// rectangular bounds of the MultiBrush.
|
||||||
|
/// </summary>
|
||||||
|
public CVec FirstCell => GetShape()[0];
|
||||||
|
|
||||||
public Replaceability Contract()
|
public Replaceability Contract()
|
||||||
{
|
{
|
||||||
@@ -618,7 +625,7 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
foreach (var mpos in mposes)
|
foreach (var mpos in mposes)
|
||||||
{
|
{
|
||||||
var brush = brushes[random.PickWeighted(brushWeights)];
|
var brush = brushes[random.PickWeighted(brushWeights)];
|
||||||
var paintAt = mpos.ToCPos(map) - brush.TopLeft;
|
var paintAt = mpos.ToCPos(map) - brush.FirstCell;
|
||||||
var contract = ReserveShape(paintAt, brush.Shape, brush.Contract());
|
var contract = ReserveShape(paintAt, brush.Shape, brush.Contract());
|
||||||
if (contract != Replaceability.None)
|
if (contract != Replaceability.None)
|
||||||
brush.Paint(map, actorPlans, paintAt, contract);
|
brush.Paint(map, actorPlans, paintAt, contract);
|
||||||
@@ -629,5 +636,71 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a sparse EditorBlitSource from this MultiBrush. The EditorBlitSource will have
|
||||||
|
/// the minimum bounding CellRegion fully containing all content. For actors without a
|
||||||
|
/// preconfigured owner, a default owner can be specified or derived automatically.
|
||||||
|
/// </summary>
|
||||||
|
public EditorBlitSource ToEditorBlitSource(
|
||||||
|
WorldRenderer worldRenderer,
|
||||||
|
PlayerReference defaultActorOwner = null)
|
||||||
|
{
|
||||||
|
var world = worldRenderer.World;
|
||||||
|
var map = world.Map;
|
||||||
|
|
||||||
|
if (defaultActorOwner == null)
|
||||||
|
{
|
||||||
|
var editorActorLayer = world.WorldActor.Trait<EditorActorLayer>();
|
||||||
|
if (editorActorLayer != null)
|
||||||
|
defaultActorOwner = editorActorLayer.Players.Players.Values.First();
|
||||||
|
}
|
||||||
|
|
||||||
|
var players = world.Players.ToDictionary(
|
||||||
|
player => player.InternalName,
|
||||||
|
player => player.PlayerReference);
|
||||||
|
|
||||||
|
var topLeft = new CPos(
|
||||||
|
Shape.Min(cvec => cvec.X),
|
||||||
|
Shape.Min(cvec => cvec.Y));
|
||||||
|
var bottomRight = new CPos(
|
||||||
|
Shape.Max(cvec => cvec.X),
|
||||||
|
Shape.Max(cvec => cvec.Y));
|
||||||
|
var cellRegion = new CellRegion(map.Grid.Type, topLeft, bottomRight);
|
||||||
|
|
||||||
|
var actorPreviews = new Dictionary<string, EditorActorPreview>();
|
||||||
|
for (var i = 0; i < actorPlans.Count; i++)
|
||||||
|
{
|
||||||
|
// A (non-revert) EditorBlitSource's actors' names are generally unimportant beyond
|
||||||
|
// needing to be distinct. They will get renamed when blitting.
|
||||||
|
var name = $"Actor{i}";
|
||||||
|
var actorReference = actorPlans[i].Reference.Clone();
|
||||||
|
var ownerInit = actorReference.Get<OwnerInit>();
|
||||||
|
if (!players.TryGetValue(ownerInit.InternalName, out var owner))
|
||||||
|
owner = defaultActorOwner;
|
||||||
|
|
||||||
|
if (owner == null)
|
||||||
|
throw new InvalidOperationException("MultiBrush actor has invalid (or no) owner and no default available.");
|
||||||
|
|
||||||
|
actorPreviews[name] = new EditorActorPreview(
|
||||||
|
worldRenderer,
|
||||||
|
name,
|
||||||
|
actorReference,
|
||||||
|
owner);
|
||||||
|
}
|
||||||
|
|
||||||
|
var blitTiles =
|
||||||
|
Tiles
|
||||||
|
.Where(t => map.Tiles.Contains(CPos.Zero + t.XY))
|
||||||
|
.DistinctBy(t => t.XY)
|
||||||
|
.ToDictionary(
|
||||||
|
t => CPos.Zero + t.XY,
|
||||||
|
t => new BlitTile(t.Tile, default, null, map.Height[CPos.Zero + t.XY]));
|
||||||
|
|
||||||
|
return new EditorBlitSource(
|
||||||
|
cellRegion,
|
||||||
|
actorPreviews,
|
||||||
|
blitTiles);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,6 +109,25 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
FindSegments(multiBrushes, innerTypesArray, innerTypesArray, terminalTypesArray));
|
FindSegments(multiBrushes, innerTypesArray, innerTypesArray, terminalTypesArray));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a PermittedSegments suitable for a path with given inner and terminal types
|
||||||
|
/// at the start and end.
|
||||||
|
/// </summary>
|
||||||
|
public static PermittedSegments FromTypes(
|
||||||
|
IReadOnlyList<MultiBrush> multiBrushes,
|
||||||
|
IEnumerable<string> startTypes,
|
||||||
|
IEnumerable<string> innerTypes,
|
||||||
|
IEnumerable<string> endTypes)
|
||||||
|
{
|
||||||
|
var startTypesArray = startTypes.ToImmutableArray();
|
||||||
|
var innerTypesArray = innerTypes.ToImmutableArray();
|
||||||
|
var endTypesArray = endTypes.ToImmutableArray();
|
||||||
|
return new(
|
||||||
|
FindSegments(multiBrushes, startTypesArray, innerTypesArray, innerTypesArray),
|
||||||
|
FindSegments(multiBrushes, innerTypesArray),
|
||||||
|
FindSegments(multiBrushes, innerTypesArray, innerTypesArray, endTypesArray));
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Equivalent to FindSegments(multiBrushes, types, types, types).
|
/// Equivalent to FindSegments(multiBrushes, types, types, types).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -604,8 +623,10 @@ namespace OpenRA.Mods.Common.MapGenerator
|
|||||||
return (typeId, new CVec(xy % size.X, xy / size.X), priority);
|
return (typeId, new CVec(xy % size.X, xy / size.X), priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pathStartTypeId = segmentTypeToId[start.SegmentType];
|
if (!segmentTypeToId.TryGetValue(start.SegmentType, out var pathStartTypeId))
|
||||||
var pathEndTypeId = segmentTypeToId[end.SegmentType];
|
return null;
|
||||||
|
if (!segmentTypeToId.TryGetValue(end.SegmentType, out var pathEndTypeId))
|
||||||
|
return null;
|
||||||
|
|
||||||
// Lower (closer to zero) costs are better matches.
|
// Lower (closer to zero) costs are better matches.
|
||||||
// MaxScore means totally unacceptable.
|
// MaxScore means totally unacceptable.
|
||||||
|
|||||||
@@ -137,7 +137,17 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public IEnumerable<IRenderable> Render()
|
public IEnumerable<IRenderable> Render()
|
||||||
{
|
{
|
||||||
var items = previews.SelectMany(p => p.Render(worldRenderer, CenterPosition));
|
return RenderAt(CenterPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<IRenderable> RenderWithOffset(WVec offset)
|
||||||
|
{
|
||||||
|
return RenderAt(CenterPosition + offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<IRenderable> RenderAt(WPos centerPosition)
|
||||||
|
{
|
||||||
|
var items = previews.SelectMany(p => p.Render(worldRenderer, centerPosition));
|
||||||
if (Selected)
|
if (Selected)
|
||||||
{
|
{
|
||||||
var overlay = items.Where(r => !r.IsDecoration && r is IModifyableRenderable)
|
var overlay = items.Where(r => !r.IsDecoration && r is IModifyableRenderable)
|
||||||
|
|||||||
@@ -207,5 +207,16 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerable<IRenderable> ITiledTerrainRenderer.RenderPreview(WorldRenderer wr, TerrainTile tile, WPos origin)
|
||||||
|
{
|
||||||
|
if (!terrainInfo.TryGetTileInfo(tile, out var tileInfo))
|
||||||
|
yield break;
|
||||||
|
var sprite = tileCache.TileSprite(tile, 0);
|
||||||
|
var offset = map.Offset(new CVec(0, 0), tileInfo.Height);
|
||||||
|
var palette = wr.Palette(terrainInfo.Palette);
|
||||||
|
|
||||||
|
yield return new SpriteRenderable(sprite, origin, offset, 0, palette, 1f, 1f, float3.Ones, TintModifiers.None, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
497
OpenRA.Mods.Common/Traits/World/TilingPathTool.cs
Normal file
497
OpenRA.Mods.Common/Traits/World/TilingPathTool.cs
Normal file
@@ -0,0 +1,497 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright (c) The OpenRA Developers and Contributors
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version. For more
|
||||||
|
* information, see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.Immutable;
|
||||||
|
using System.Linq;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Mods.Common.EditorBrushes;
|
||||||
|
using OpenRA.Mods.Common.MapGenerator;
|
||||||
|
using OpenRA.Mods.Common.Terrain;
|
||||||
|
using OpenRA.Support;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Traits
|
||||||
|
{
|
||||||
|
[TraitLocation(SystemActors.EditorWorld)]
|
||||||
|
public sealed class TilingPathToolInfo : TraitInfo, IEditorToolInfo
|
||||||
|
{
|
||||||
|
[FluentReference]
|
||||||
|
const string Label = "label-tool-tiling-path";
|
||||||
|
|
||||||
|
[Desc("The widget tree to open when the tool is selected.")]
|
||||||
|
const string PanelWidget = "TILING_PATH_TOOL_PANEL";
|
||||||
|
|
||||||
|
[Desc("The preferred defaults for the start type.")]
|
||||||
|
public readonly string[] DefaultStart = [];
|
||||||
|
[Desc("The preferred defaults for the inner type.")]
|
||||||
|
public readonly string[] DefaultInner = [];
|
||||||
|
[Desc("The preferred defaults for the end type.")]
|
||||||
|
public readonly string[] DefaultEnd = [];
|
||||||
|
|
||||||
|
public override object Create(ActorInitializer init)
|
||||||
|
{
|
||||||
|
return new TilingPathTool(init.Self, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
string IEditorToolInfo.Label => Label;
|
||||||
|
string IEditorToolInfo.PanelWidget => PanelWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class TilingPathTool : IRenderAnnotations, INotifyActorDisposing, IWorldLoaded
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Holds the shape of a path being planned out in the map editor.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class PathPlan
|
||||||
|
{
|
||||||
|
public readonly int Start;
|
||||||
|
public readonly int End;
|
||||||
|
public readonly bool Loop;
|
||||||
|
public readonly ImmutableArray<CPos> Rallies;
|
||||||
|
public int AutoStart
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Start != Direction.None)
|
||||||
|
{
|
||||||
|
return Start;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Rallies.Length >= 2)
|
||||||
|
return Direction.FromCVecRounding(Rallies[1] - Rallies[0]);
|
||||||
|
else
|
||||||
|
return Direction.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int AutoEnd
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (End != Direction.None)
|
||||||
|
{
|
||||||
|
return End;
|
||||||
|
}
|
||||||
|
else if (Loop)
|
||||||
|
{
|
||||||
|
return AutoStart;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Rallies.Length >= 2)
|
||||||
|
return Direction.FromCVecRounding(Rallies[^1] - Rallies[^2]);
|
||||||
|
else
|
||||||
|
return Direction.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CPos FirstPoint => Rallies[0];
|
||||||
|
public CPos LastPoint => Loop ? Rallies[0] : Rallies[^1];
|
||||||
|
|
||||||
|
PathPlan(int start, int end, bool loop, ImmutableArray<CPos> rallies)
|
||||||
|
{
|
||||||
|
if (rallies == null || rallies.Length == 0)
|
||||||
|
throw new ArgumentException("rallies must have at least one point");
|
||||||
|
|
||||||
|
Start = start;
|
||||||
|
End = end;
|
||||||
|
Loop = loop && rallies.Length >= 3;
|
||||||
|
Rallies = rallies;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Start a new path with a given first point.</summary>
|
||||||
|
public PathPlan(CPos first)
|
||||||
|
{
|
||||||
|
Start = Direction.None;
|
||||||
|
End = Direction.None;
|
||||||
|
Loop = false;
|
||||||
|
Rallies = [first];
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, modifying the start direction.</summary>
|
||||||
|
public PathPlan WithStart(int start)
|
||||||
|
{
|
||||||
|
return new PathPlan(start, End, Loop, Rallies);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, modifying the end direction.</summary>
|
||||||
|
public PathPlan WithEnd(int end)
|
||||||
|
{
|
||||||
|
return new PathPlan(Start, end, Loop, Rallies);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, modifying whether the path is looped.</summary>
|
||||||
|
public PathPlan WithLoop(bool loop)
|
||||||
|
{
|
||||||
|
return new PathPlan(Start, End, loop, Rallies);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with a rally appended.</summary>
|
||||||
|
public PathPlan WithRallyAppended(CPos cpos)
|
||||||
|
{
|
||||||
|
return new PathPlan(Start, Direction.None, Loop, [.. Rallies, cpos]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with the rally at index removed.</summary>
|
||||||
|
public PathPlan WithRallyRemoved(int index)
|
||||||
|
{
|
||||||
|
if (Rallies.Length == 1)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return new PathPlan(
|
||||||
|
index != 0 ? Start : Direction.None,
|
||||||
|
index != Rallies.Length - 1 ? End : Direction.None,
|
||||||
|
Loop,
|
||||||
|
[.. Rallies[..index], .. Rallies[(index + 1)..]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with the rally at index replace/moved.</summary>
|
||||||
|
public PathPlan WithRallyReplaced(int index, CPos cpos)
|
||||||
|
{
|
||||||
|
return new PathPlan(Start, End, Loop, [.. Rallies[..index], cpos, .. Rallies[(index + 1)..]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with a rally inserted before index.</summary>
|
||||||
|
public PathPlan WithRallyInserted(int index, CPos cpos)
|
||||||
|
{
|
||||||
|
return new PathPlan(Start, End, Loop, [.. Rallies[..index], cpos, .. Rallies[index..]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with everything translated by offset.</summary>
|
||||||
|
public PathPlan Moved(CVec offset)
|
||||||
|
{
|
||||||
|
var rallies = Rallies.Select(r => r + offset).ToImmutableArray();
|
||||||
|
return new PathPlan(Start, End, Loop, rallies);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Return a copy, with rallies reversed and directions swapped.</summary>
|
||||||
|
public PathPlan Reversed()
|
||||||
|
{
|
||||||
|
if (Loop)
|
||||||
|
{
|
||||||
|
var reversedStart = End;
|
||||||
|
var reversedEnd = Start;
|
||||||
|
if (Start != Direction.None && End == Direction.None)
|
||||||
|
{
|
||||||
|
reversedStart = AutoEnd;
|
||||||
|
reversedEnd = Direction.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PathPlan(
|
||||||
|
Direction.Reverse(reversedStart),
|
||||||
|
Direction.Reverse(reversedEnd),
|
||||||
|
Loop,
|
||||||
|
Rallies.Skip(1).Append(Rallies[0]).Reverse().ToImmutableArray());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new PathPlan(
|
||||||
|
Direction.Reverse(End),
|
||||||
|
Direction.Reverse(Start),
|
||||||
|
Loop,
|
||||||
|
Rallies.Reverse().ToImmutableArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert the rally points into a sequence of unit-space CPos points, suitable for
|
||||||
|
/// processing with TilingPath.
|
||||||
|
/// </summary>
|
||||||
|
public CPos[] Points()
|
||||||
|
{
|
||||||
|
return PointsWithRallyIndex().Select(pair => pair.CPos).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert the rally points into a sequence of unit-space CPos points and their
|
||||||
|
/// associated latest rally index. For loops, the last rally index is the number of the
|
||||||
|
/// rallies.
|
||||||
|
/// </summary>
|
||||||
|
public (CPos CPos, int RallyIndex)[] PointsWithRallyIndex()
|
||||||
|
{
|
||||||
|
if (Rallies.Length == 1)
|
||||||
|
return [(Rallies[0], 0)];
|
||||||
|
|
||||||
|
var points = new List<(CPos CPos, int RallyIndex)>();
|
||||||
|
var cpos = Rallies[0];
|
||||||
|
points.Add((cpos, 0));
|
||||||
|
var inertia = Direction.ToCVec(AutoStart);
|
||||||
|
if (inertia.X != 0 && inertia.Y != 0)
|
||||||
|
inertia = new CVec(inertia.X, 0);
|
||||||
|
|
||||||
|
void AddPointsUpTo(CPos target, int i)
|
||||||
|
{
|
||||||
|
if (cpos == target)
|
||||||
|
throw new InvalidOperationException("there are duplicate rally points");
|
||||||
|
|
||||||
|
var offset = target - cpos;
|
||||||
|
var xStep = Math.Sign(offset.X);
|
||||||
|
var yStep = Math.Sign(offset.Y);
|
||||||
|
|
||||||
|
var axisAligned = xStep == 0 || yStep == 0;
|
||||||
|
|
||||||
|
if (axisAligned)
|
||||||
|
{
|
||||||
|
while (cpos != target)
|
||||||
|
{
|
||||||
|
inertia = new CVec(xStep, yStep);
|
||||||
|
cpos += inertia;
|
||||||
|
points.Add((cpos, i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var xUnderModulo = Math.Abs(offset.Y);
|
||||||
|
var yUnderModulo = Math.Abs(offset.X);
|
||||||
|
|
||||||
|
// Technically, these range from 0 inclusive to modulo inclusive!
|
||||||
|
var xModulo = xUnderModulo * 2;
|
||||||
|
var yModulo = yUnderModulo * 2;
|
||||||
|
|
||||||
|
if (xUnderModulo < yUnderModulo)
|
||||||
|
inertia = new CVec(xStep, 0);
|
||||||
|
else if (yUnderModulo > xUnderModulo)
|
||||||
|
inertia = new CVec(0, yStep);
|
||||||
|
else
|
||||||
|
inertia =
|
||||||
|
Direction.ToCVec(
|
||||||
|
Direction.FromCVecNonDiagonal(
|
||||||
|
inertia + new CVec(xStep * 2, yStep * 2)));
|
||||||
|
|
||||||
|
while (cpos != target)
|
||||||
|
{
|
||||||
|
if (xUnderModulo < yUnderModulo)
|
||||||
|
{
|
||||||
|
yUnderModulo -= xUnderModulo;
|
||||||
|
xUnderModulo = xModulo;
|
||||||
|
inertia = new CVec(xStep, 0);
|
||||||
|
}
|
||||||
|
else if (xUnderModulo > yUnderModulo)
|
||||||
|
{
|
||||||
|
xUnderModulo -= yUnderModulo;
|
||||||
|
yUnderModulo = yModulo;
|
||||||
|
inertia = new CVec(0, yStep);
|
||||||
|
}
|
||||||
|
else if (inertia.X != 0)
|
||||||
|
{
|
||||||
|
xUnderModulo = xModulo;
|
||||||
|
yUnderModulo = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
yUnderModulo = yModulo;
|
||||||
|
xUnderModulo = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cpos += inertia;
|
||||||
|
points.Add((cpos, i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 1; i < Rallies.Length; i++)
|
||||||
|
AddPointsUpTo(Rallies[i], i);
|
||||||
|
|
||||||
|
if (Loop)
|
||||||
|
AddPointsUpTo(Rallies[0], Rallies.Length);
|
||||||
|
|
||||||
|
return points.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Whether the TilingPathTool can be used.</summary>
|
||||||
|
public readonly bool Available;
|
||||||
|
|
||||||
|
public readonly World World;
|
||||||
|
public WorldRenderer WorldRenderer = null;
|
||||||
|
public readonly ImmutableArray<MultiBrush> SegmentedBrushes;
|
||||||
|
public readonly ImmutableArray<string> StartTypes;
|
||||||
|
public readonly ImmutableArray<string> InnerTypes;
|
||||||
|
public readonly ImmutableArray<string> EndTypes;
|
||||||
|
public PathPlan Plan { get; private set; } = null;
|
||||||
|
public string StartType { get; private set; } = null;
|
||||||
|
public string InnerType { get; private set; } = null;
|
||||||
|
public string EndType { get; private set; } = null;
|
||||||
|
public bool ClosedLoops { get; private set; } = true;
|
||||||
|
public int RandomSeed { get; private set; } = 0;
|
||||||
|
public int MaxDeviation { get; private set; } = 5;
|
||||||
|
public EditorBlitSource? EditorBlitSource { get; private set; } = null;
|
||||||
|
|
||||||
|
bool disposed;
|
||||||
|
|
||||||
|
public TilingPathTool(Actor self, TilingPathToolInfo info)
|
||||||
|
{
|
||||||
|
World = self.World;
|
||||||
|
|
||||||
|
var templatedTerrainInfo = World.Map.Rules.TerrainInfo as ITemplatedTerrainInfo;
|
||||||
|
SegmentedBrushes =
|
||||||
|
templatedTerrainInfo.MultiBrushCollections.Keys
|
||||||
|
.Order()
|
||||||
|
.SelectMany(name => MultiBrush.LoadCollection(World.Map, name))
|
||||||
|
.Where(multiBrush => multiBrush.Segment != null)
|
||||||
|
.ToImmutableArray();
|
||||||
|
|
||||||
|
Available = SegmentedBrushes.Length > 0;
|
||||||
|
|
||||||
|
if (!Available)
|
||||||
|
return;
|
||||||
|
|
||||||
|
StartTypes = SegmentedBrushes
|
||||||
|
.Where(b => b.Segment != null)
|
||||||
|
.Select(b => string.Join(".", b.Segment.Start.Split('.').SkipLast(1)))
|
||||||
|
.Distinct()
|
||||||
|
.Order()
|
||||||
|
.ToImmutableArray();
|
||||||
|
|
||||||
|
InnerTypes = SegmentedBrushes
|
||||||
|
.Where(b => b.Segment != null)
|
||||||
|
.Select(b => b.Segment.Inner.Split('.')[0])
|
||||||
|
.Distinct()
|
||||||
|
.Order()
|
||||||
|
.ToImmutableArray();
|
||||||
|
|
||||||
|
EndTypes = SegmentedBrushes
|
||||||
|
.Where(b => b.Segment != null)
|
||||||
|
.Select(b => string.Join(".", b.Segment.End.Split('.').SkipLast(1)))
|
||||||
|
.Distinct()
|
||||||
|
.Order()
|
||||||
|
.ToImmutableArray();
|
||||||
|
|
||||||
|
StartType = info.DefaultStart
|
||||||
|
.FirstOrDefault(StartTypes.Contains, StartTypes[0]);
|
||||||
|
InnerType = info.DefaultInner
|
||||||
|
.FirstOrDefault(InnerTypes.Contains, InnerTypes[0]);
|
||||||
|
EndType = info.DefaultEnd
|
||||||
|
.FirstOrDefault(EndTypes.Contains, EndTypes[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WorldLoaded(World w, WorldRenderer wr)
|
||||||
|
{
|
||||||
|
WorldRenderer = wr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void INotifyActorDisposing.Disposing(Actor self)
|
||||||
|
{
|
||||||
|
if (disposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
disposed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerable<IRenderable> IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr)
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IRenderAnnotations.SpatiallyPartitionable => false;
|
||||||
|
|
||||||
|
EditorBlitSource? TilePlan(PathPlan plan)
|
||||||
|
{
|
||||||
|
if (WorldRenderer == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (plan == null || plan.Rallies.Length < 2)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var points = plan.Points();
|
||||||
|
if (points == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
(string Start, string End)[] terminalTypes = [(StartType, EndType)];
|
||||||
|
if (ClosedLoops && plan.Loop)
|
||||||
|
{
|
||||||
|
terminalTypes = StartTypes.Concat(EndTypes)
|
||||||
|
.Distinct()
|
||||||
|
.Where(t => t.Split('.')[0] == InnerType)
|
||||||
|
.Select(t => (t, t))
|
||||||
|
.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
var map = World.Map;
|
||||||
|
var permittedTemplates =
|
||||||
|
TilingPath.PermittedSegments.FromTypes(
|
||||||
|
SegmentedBrushes,
|
||||||
|
terminalTypes.Select(t => t.Start),
|
||||||
|
[InnerType],
|
||||||
|
terminalTypes.Select(t => t.End));
|
||||||
|
|
||||||
|
foreach (var (startType, endType) in terminalTypes)
|
||||||
|
{
|
||||||
|
var tilingPath = new TilingPath(
|
||||||
|
map,
|
||||||
|
points,
|
||||||
|
MaxDeviation,
|
||||||
|
startType,
|
||||||
|
endType,
|
||||||
|
permittedTemplates);
|
||||||
|
tilingPath.Start.Direction = plan.AutoStart;
|
||||||
|
tilingPath.End.Direction = plan.AutoEnd;
|
||||||
|
var result = tilingPath.Tile(new MersenneTwister(RandomSeed));
|
||||||
|
if (result != null)
|
||||||
|
return result.ToEditorBlitSource(WorldRenderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
EditorBlitSource = TilePlan(Plan);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetPlan(PathPlan value)
|
||||||
|
{
|
||||||
|
Plan = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetStartType(string value)
|
||||||
|
{
|
||||||
|
StartType = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetInnerType(string value)
|
||||||
|
{
|
||||||
|
InnerType = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetEndType(string value)
|
||||||
|
{
|
||||||
|
EndType = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetClosedLoops(bool value)
|
||||||
|
{
|
||||||
|
ClosedLoops = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetRandomSeed(int value)
|
||||||
|
{
|
||||||
|
RandomSeed = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetMaxDeviation(int value)
|
||||||
|
{
|
||||||
|
MaxDeviation = value;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -779,6 +779,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Rectangle TemplateBounds(TerrainTemplateInfo template);
|
Rectangle TemplateBounds(TerrainTemplateInfo template);
|
||||||
IEnumerable<IRenderable> RenderUIPreview(WorldRenderer wr, TerrainTemplateInfo template, int2 origin, float scale);
|
IEnumerable<IRenderable> RenderUIPreview(WorldRenderer wr, TerrainTemplateInfo template, int2 origin, float scale);
|
||||||
IEnumerable<IRenderable> RenderPreview(WorldRenderer wr, TerrainTemplateInfo template, WPos origin);
|
IEnumerable<IRenderable> RenderPreview(WorldRenderer wr, TerrainTemplateInfo template, WPos origin);
|
||||||
|
IEnumerable<IRenderable> RenderPreview(WorldRenderer wr, TerrainTile tile, WPos origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IResourceLayerInfo : ITraitInfoInterface
|
public interface IResourceLayerInfo : ITraitInfoInterface
|
||||||
|
|||||||
111
OpenRA.Mods.Common/Widgets/Logic/Editor/TilingPathToolLogic.cs
Normal file
111
OpenRA.Mods.Common/Widgets/Logic/Editor/TilingPathToolLogic.cs
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright (c) The OpenRA Developers and Contributors
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version. For more
|
||||||
|
* information, see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.Immutable;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||||
|
{
|
||||||
|
[IncludeStaticFluentReferences(
|
||||||
|
typeof(UpdateTilingPathPlanEditorAction),
|
||||||
|
typeof(PaintTilingPathEditorAction),
|
||||||
|
typeof(TilingPathToolInfo))]
|
||||||
|
public sealed class TilingPathToolLogic : ChromeLogic
|
||||||
|
{
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public TilingPathToolLogic(
|
||||||
|
Widget widget,
|
||||||
|
World world,
|
||||||
|
ModData modData,
|
||||||
|
WorldRenderer worldRenderer,
|
||||||
|
Dictionary<string, MiniYaml> logicArgs)
|
||||||
|
{
|
||||||
|
var tool = world.WorldActor.Trait<TilingPathTool>();
|
||||||
|
var editorActionManager = world.WorldActor.Trait<EditorActionManager>();
|
||||||
|
|
||||||
|
var editorWidget = widget.Parent.Parent.Parent.Parent.Get<EditorViewportControllerWidget>("MAP_EDITOR");
|
||||||
|
|
||||||
|
((ScrollPanelWidget)widget).Layout.AdjustChildren();
|
||||||
|
|
||||||
|
var editCheckbox = widget.Get<CheckboxWidget>("EDIT");
|
||||||
|
editCheckbox.Disabled = !tool.Available;
|
||||||
|
if (!tool.Available)
|
||||||
|
return;
|
||||||
|
|
||||||
|
editCheckbox.IsChecked = () => editorWidget.CurrentBrush is EditorTilingPathBrush;
|
||||||
|
editCheckbox.OnClick = () =>
|
||||||
|
editorWidget.SetBrush(
|
||||||
|
editCheckbox.IsChecked()
|
||||||
|
? null
|
||||||
|
: new EditorTilingPathBrush(tool));
|
||||||
|
|
||||||
|
void SetupDropDown(
|
||||||
|
string name,
|
||||||
|
ImmutableArray<string> choices,
|
||||||
|
Func<string> read,
|
||||||
|
Action<string> write)
|
||||||
|
{
|
||||||
|
var dropDown = widget
|
||||||
|
.Get<ContainerWidget>(name)
|
||||||
|
.Get<DropDownButtonWidget>("DROPDOWN");
|
||||||
|
dropDown.GetText = read;
|
||||||
|
dropDown.OnMouseDown = _ =>
|
||||||
|
{
|
||||||
|
ScrollItemWidget SetupItem(string choice, ScrollItemWidget template)
|
||||||
|
{
|
||||||
|
bool IsSelected() => choice == read();
|
||||||
|
void OnClick() => write(choice);
|
||||||
|
var item = ScrollItemWidget.Setup(template, IsSelected, OnClick);
|
||||||
|
item.Get<LabelWidget>("LABEL").GetText = () => choice;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
dropDown.ShowDropDown("LABEL_DROPDOWN_WITH_TOOLTIP_TEMPLATE", choices.Length * 30, choices, SetupItem);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
SetupDropDown("START_TYPE", tool.StartTypes, () => tool.StartType, tool.SetStartType);
|
||||||
|
SetupDropDown("INNER_TYPE", tool.InnerTypes, () => tool.InnerType, tool.SetInnerType);
|
||||||
|
SetupDropDown("END_TYPE", tool.EndTypes, () => tool.EndType, tool.SetEndType);
|
||||||
|
|
||||||
|
var deviationSlider = widget.Get<ContainerWidget>("DEVIATION").Get<SliderWidget>("SLIDER");
|
||||||
|
deviationSlider.GetValue = () => tool.MaxDeviation;
|
||||||
|
deviationSlider.OnChange += (value) => tool.SetMaxDeviation((int)value);
|
||||||
|
|
||||||
|
var closedLoopsCheckbox = widget.Get<CheckboxWidget>("CLOSED_LOOPS");
|
||||||
|
closedLoopsCheckbox.IsChecked = () => tool.ClosedLoops;
|
||||||
|
closedLoopsCheckbox.OnClick = () => tool.SetClosedLoops(!tool.ClosedLoops);
|
||||||
|
|
||||||
|
var resetButton = widget.Get<ButtonWidget>("RESET");
|
||||||
|
resetButton.IsDisabled = () => tool.Plan == null;
|
||||||
|
resetButton.OnClick = () => editorActionManager.Add(
|
||||||
|
new UpdateTilingPathPlanEditorAction(tool, null));
|
||||||
|
|
||||||
|
var reverseButton = widget.Get<ButtonWidget>("REVERSE");
|
||||||
|
reverseButton.IsDisabled = () => tool.Plan == null;
|
||||||
|
reverseButton.OnClick = () => editorActionManager.Add(
|
||||||
|
new UpdateTilingPathPlanEditorAction(tool, tool.Plan.Reversed()));
|
||||||
|
|
||||||
|
var randomizeButton = widget.Get<ButtonWidget>("RANDOMIZE");
|
||||||
|
randomizeButton.IsDisabled = () => tool.Plan == null;
|
||||||
|
randomizeButton.OnClick = () => tool.SetRandomSeed(Environment.TickCount);
|
||||||
|
|
||||||
|
var paintButton = widget.Get<ButtonWidget>("PAINT");
|
||||||
|
paintButton.IsDisabled = () => tool.EditorBlitSource == null;
|
||||||
|
paintButton.OnClick = () => editorActionManager.Add(
|
||||||
|
new PaintTilingPathEditorAction(tool));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1077,3 +1077,108 @@ Container@MAP_GENERATOR_TOOL_PANEL:
|
|||||||
Width: PARENT_WIDTH
|
Width: PARENT_WIDTH
|
||||||
Height: 25
|
Height: 25
|
||||||
PanelRoot: EDITOR_WORLD_ROOT
|
PanelRoot: EDITOR_WORLD_ROOT
|
||||||
|
|
||||||
|
|
||||||
|
ScrollPanel@TILING_PATH_TOOL_PANEL:
|
||||||
|
Y: 24
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: PARENT_HEIGHT - 25
|
||||||
|
TopBottomSpacing: 5
|
||||||
|
ItemSpacing: 5
|
||||||
|
Background: scrollpanel-bg
|
||||||
|
Visible: false
|
||||||
|
Logic: TilingPathToolLogic
|
||||||
|
Children:
|
||||||
|
Checkbox@EDIT:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: checkbox-tiling-path-edit
|
||||||
|
Container@START_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-start
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@INNER_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-inner
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@END_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-end
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@DEVIATION:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-deviation
|
||||||
|
For: SLIDER
|
||||||
|
Slider@SLIDER:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
MinimumValue: 0
|
||||||
|
MaximumValue: 10
|
||||||
|
Ticks: 11
|
||||||
|
Checkbox@CLOSED_LOOPS:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: checkbox-tiling-path-closed-loops
|
||||||
|
Button@REVERSE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-reverse
|
||||||
|
Button@RESET:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-reset
|
||||||
|
Button@RANDOMIZE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-randomize
|
||||||
|
Button@PAINT:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-paint
|
||||||
|
|||||||
@@ -78,6 +78,16 @@ label-marker-mirror-mode = Mirror Mode
|
|||||||
label-marker-axis-angle = Axis Angle
|
label-marker-axis-angle = Axis Angle
|
||||||
button-map-generator-generate = Generate
|
button-map-generator-generate = Generate
|
||||||
button-map-generator-generate-random = Generate Random
|
button-map-generator-generate-random = Generate Random
|
||||||
|
checkbox-tiling-path-edit = Enable editing
|
||||||
|
label-tiling-path-type-start = Start type
|
||||||
|
label-tiling-path-type-inner = Inner type
|
||||||
|
label-tiling-path-type-end = End type
|
||||||
|
label-tiling-path-deviation = Deviation limit
|
||||||
|
checkbox-tiling-path-closed-loops = Loops use only inner types
|
||||||
|
button-tiling-path-reverse = Reverse path
|
||||||
|
button-tiling-path-reset = Discard path
|
||||||
|
button-tiling-path-randomize = Re-randomize tiling
|
||||||
|
button-tiling-path-paint = Paint tiling to map
|
||||||
|
|
||||||
button-map-editor-tab-container-select-tooltip = Selection
|
button-map-editor-tab-container-select-tooltip = Selection
|
||||||
button-map-editor-tab-container-tiles-tooltip = Tiles
|
button-map-editor-tab-container-tiles-tooltip = Tiles
|
||||||
@@ -115,6 +125,7 @@ button-select-categories-buttons-all = All
|
|||||||
button-select-categories-buttons-none = None
|
button-select-categories-buttons-none = None
|
||||||
|
|
||||||
label-tool-marker-tiles = Marker Tiles
|
label-tool-marker-tiles = Marker Tiles
|
||||||
|
label-tool-tiling-path = Path Tiler
|
||||||
|
|
||||||
## encyclopedia.yaml, mainmenu.yaml
|
## encyclopedia.yaml, mainmenu.yaml
|
||||||
label-encyclopedia-title = EVA Database
|
label-encyclopedia-title = EVA Database
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
ClearSegmentTypes: Clear
|
ClearSegmentTypes: Clear
|
||||||
BeachSegmentTypes: Beach
|
BeachSegmentTypes: Beach
|
||||||
CliffSegmentTypes: Cliff
|
CliffSegmentTypes: Cliff
|
||||||
RoadSegmentTypes: Road,RoadIn,RoadOut
|
RoadSegmentTypes: Road
|
||||||
ForestObstacles: Trees
|
ForestObstacles: Trees
|
||||||
UnplayableObstacles: Obstructions
|
UnplayableObstacles: Obstructions
|
||||||
CivilianBuildingsObstacles: CivilianBuildings
|
CivilianBuildingsObstacles: CivilianBuildings
|
||||||
|
|||||||
@@ -301,4 +301,8 @@ EditorWorld:
|
|||||||
BuildableTerrainOverlay:
|
BuildableTerrainOverlay:
|
||||||
AllowedTerrainTypes: Clear, Road
|
AllowedTerrainTypes: Clear, Road
|
||||||
MarkerLayerOverlay:
|
MarkerLayerOverlay:
|
||||||
|
TilingPathTool:
|
||||||
|
DefaultStart: Clear
|
||||||
|
DefaultInner: Beach
|
||||||
|
DefaultEnd: Clear
|
||||||
Inherits@MapGenerators: ^MapGenerators
|
Inherits@MapGenerators: ^MapGenerators
|
||||||
|
|||||||
@@ -2484,11 +2484,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@93reverse:
|
MultiBrush@93reverse:
|
||||||
Template: 93
|
Template: 93
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -2498,11 +2498,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@94reverse:
|
MultiBrush@94reverse:
|
||||||
Template: 94
|
Template: 94
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -2512,11 +2512,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@95reverse:
|
MultiBrush@95reverse:
|
||||||
Template: 95
|
Template: 95
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -2526,420 +2526,420 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@96reverse:
|
MultiBrush@96reverse:
|
||||||
Template: 96
|
Template: 96
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@97:
|
MultiBrush@97:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@97reverse:
|
MultiBrush@97reverse:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@98:
|
MultiBrush@98:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@98reverse:
|
MultiBrush@98reverse:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@99:
|
MultiBrush@99:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@99reverse:
|
MultiBrush@99reverse:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@100:
|
MultiBrush@100:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@100reverse:
|
MultiBrush@100reverse:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@101:
|
MultiBrush@101:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@101reverse:
|
MultiBrush@101reverse:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@102:
|
MultiBrush@102:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@102reverse:
|
MultiBrush@102reverse:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@103:
|
MultiBrush@103:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@103reverse:
|
MultiBrush@103reverse:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@104:
|
MultiBrush@104:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@104reverse:
|
MultiBrush@104reverse:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@105:
|
MultiBrush@105:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@105reverse:
|
MultiBrush@105reverse:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@112:
|
MultiBrush@112:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@112reverse:
|
MultiBrush@112reverse:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@113:
|
MultiBrush@113:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@113reverse:
|
MultiBrush@113reverse:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@114:
|
MultiBrush@114:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@114reverse:
|
MultiBrush@114reverse:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@115:
|
MultiBrush@115:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@115reverse:
|
MultiBrush@115reverse:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@116:
|
MultiBrush@116:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@116reverse:
|
MultiBrush@116reverse:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@117:
|
MultiBrush@117:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@117:
|
MultiBrush@117:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@118:
|
MultiBrush@118:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@118:
|
MultiBrush@118:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@119:
|
MultiBrush@119:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@119:
|
MultiBrush@119:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@121:
|
MultiBrush@121:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@121:
|
MultiBrush@121:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@123:
|
MultiBrush@123:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@123:
|
MultiBrush@123:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@131:
|
MultiBrush@131:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@131:
|
MultiBrush@131:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@133:
|
MultiBrush@133:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@133:
|
MultiBrush@133:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@134:
|
MultiBrush@134:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@134:
|
MultiBrush@134:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@174:
|
MultiBrush@174:
|
||||||
Template: 174
|
Template: 174
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -2145,11 +2145,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@93reverse:
|
MultiBrush@93reverse:
|
||||||
Template: 93
|
Template: 93
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -2159,11 +2159,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@94reverse:
|
MultiBrush@94reverse:
|
||||||
Template: 94
|
Template: 94
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -2173,11 +2173,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@95reverse:
|
MultiBrush@95reverse:
|
||||||
Template: 95
|
Template: 95
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -2187,420 +2187,420 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@96reverse:
|
MultiBrush@96reverse:
|
||||||
Template: 96
|
Template: 96
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@97:
|
MultiBrush@97:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@97reverse:
|
MultiBrush@97reverse:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@98:
|
MultiBrush@98:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@98reverse:
|
MultiBrush@98reverse:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@99:
|
MultiBrush@99:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@99reverse:
|
MultiBrush@99reverse:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@100:
|
MultiBrush@100:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@100reverse:
|
MultiBrush@100reverse:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@101:
|
MultiBrush@101:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@101reverse:
|
MultiBrush@101reverse:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@102:
|
MultiBrush@102:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@102reverse:
|
MultiBrush@102reverse:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@103:
|
MultiBrush@103:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@103reverse:
|
MultiBrush@103reverse:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@104:
|
MultiBrush@104:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@104reverse:
|
MultiBrush@104reverse:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@105:
|
MultiBrush@105:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@105reverse:
|
MultiBrush@105reverse:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@112:
|
MultiBrush@112:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@112reverse:
|
MultiBrush@112reverse:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@113:
|
MultiBrush@113:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@113reverse:
|
MultiBrush@113reverse:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@114:
|
MultiBrush@114:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@114reverse:
|
MultiBrush@114reverse:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@115:
|
MultiBrush@115:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@115reverse:
|
MultiBrush@115reverse:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@116:
|
MultiBrush@116:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@116reverse:
|
MultiBrush@116reverse:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@117:
|
MultiBrush@117:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@117reverse:
|
MultiBrush@117reverse:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@118:
|
MultiBrush@118:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@118reverse:
|
MultiBrush@118reverse:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@119:
|
MultiBrush@119:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@119reverse:
|
MultiBrush@119reverse:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@120reverse:
|
MultiBrush@120reverse:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@121:
|
MultiBrush@121:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@121reverse:
|
MultiBrush@121reverse:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@123:
|
MultiBrush@123:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@123reverse:
|
MultiBrush@123reverse:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@124reverse:
|
MultiBrush@124reverse:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@126reverse:
|
MultiBrush@126reverse:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@127reverse:
|
MultiBrush@127reverse:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@128reverse:
|
MultiBrush@128reverse:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@129reverse:
|
MultiBrush@129reverse:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@130reverse:
|
MultiBrush@130reverse:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@131:
|
MultiBrush@131:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@131reverse:
|
MultiBrush@131reverse:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@133:
|
MultiBrush@133:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@133reverse:
|
MultiBrush@133reverse:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@134:
|
MultiBrush@134:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@134reverse:
|
MultiBrush@134reverse:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@186:
|
MultiBrush@186:
|
||||||
Template: 186
|
Template: 186
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -2146,11 +2146,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@93reverse:
|
MultiBrush@93reverse:
|
||||||
Template: 93
|
Template: 93
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -2160,11 +2160,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@94reverse:
|
MultiBrush@94reverse:
|
||||||
Template: 94
|
Template: 94
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -2174,11 +2174,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@95reverse:
|
MultiBrush@95reverse:
|
||||||
Template: 95
|
Template: 95
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -2188,420 +2188,420 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@96reverse:
|
MultiBrush@96reverse:
|
||||||
Template: 96
|
Template: 96
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@97:
|
MultiBrush@97:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@97reverse:
|
MultiBrush@97reverse:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@98:
|
MultiBrush@98:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@98reverse:
|
MultiBrush@98reverse:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@99:
|
MultiBrush@99:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@99reverse:
|
MultiBrush@99reverse:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@100:
|
MultiBrush@100:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@100reverse:
|
MultiBrush@100reverse:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@101:
|
MultiBrush@101:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@101reverse:
|
MultiBrush@101reverse:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@102:
|
MultiBrush@102:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@102reverse:
|
MultiBrush@102reverse:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@103:
|
MultiBrush@103:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@103reverse:
|
MultiBrush@103reverse:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@104:
|
MultiBrush@104:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@104reverse:
|
MultiBrush@104reverse:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@105:
|
MultiBrush@105:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@105reverse:
|
MultiBrush@105reverse:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@112:
|
MultiBrush@112:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@112reverse:
|
MultiBrush@112reverse:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@113:
|
MultiBrush@113:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@113reverse:
|
MultiBrush@113reverse:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@114:
|
MultiBrush@114:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@114reverse:
|
MultiBrush@114reverse:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@115:
|
MultiBrush@115:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@115reverse:
|
MultiBrush@115reverse:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@116:
|
MultiBrush@116:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@116reverse:
|
MultiBrush@116reverse:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@117:
|
MultiBrush@117:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@117reverse:
|
MultiBrush@117reverse:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@118:
|
MultiBrush@118:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@118reverse:
|
MultiBrush@118reverse:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@119:
|
MultiBrush@119:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@119reverse:
|
MultiBrush@119reverse:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@120reverse:
|
MultiBrush@120reverse:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@121:
|
MultiBrush@121:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@121reverse:
|
MultiBrush@121reverse:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@123:
|
MultiBrush@123:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@123reverse:
|
MultiBrush@123reverse:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@124reverse:
|
MultiBrush@124reverse:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@126reverse:
|
MultiBrush@126reverse:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@127reverse:
|
MultiBrush@127reverse:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@128reverse:
|
MultiBrush@128reverse:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@129reverse:
|
MultiBrush@129reverse:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@130reverse:
|
MultiBrush@130reverse:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@131:
|
MultiBrush@131:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@131reverse:
|
MultiBrush@131reverse:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@133:
|
MultiBrush@133:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@133reverse:
|
MultiBrush@133reverse:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@134:
|
MultiBrush@134:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@134reverse:
|
MultiBrush@134reverse:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@186:
|
MultiBrush@186:
|
||||||
Template: 186
|
Template: 186
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -2181,11 +2181,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@93reverse:
|
MultiBrush@93reverse:
|
||||||
Template: 93
|
Template: 93
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -2195,11 +2195,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@94reverse:
|
MultiBrush@94reverse:
|
||||||
Template: 94
|
Template: 94
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -2209,11 +2209,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@95reverse:
|
MultiBrush@95reverse:
|
||||||
Template: 95
|
Template: 95
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -2223,420 +2223,420 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@96reverse:
|
MultiBrush@96reverse:
|
||||||
Template: 96
|
Template: 96
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@97:
|
MultiBrush@97:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@97reverse:
|
MultiBrush@97reverse:
|
||||||
Template: 97
|
Template: 97
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@98:
|
MultiBrush@98:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@98reverse:
|
MultiBrush@98reverse:
|
||||||
Template: 98
|
Template: 98
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@99:
|
MultiBrush@99:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@99reverse:
|
MultiBrush@99reverse:
|
||||||
Template: 99
|
Template: 99
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@100:
|
MultiBrush@100:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@100reverse:
|
MultiBrush@100reverse:
|
||||||
Template: 100
|
Template: 100
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@101:
|
MultiBrush@101:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@101reverse:
|
MultiBrush@101reverse:
|
||||||
Template: 101
|
Template: 101
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@102:
|
MultiBrush@102:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@102reverse:
|
MultiBrush@102reverse:
|
||||||
Template: 102
|
Template: 102
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@103:
|
MultiBrush@103:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@103reverse:
|
MultiBrush@103reverse:
|
||||||
Template: 103
|
Template: 103
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@104:
|
MultiBrush@104:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@104reverse:
|
MultiBrush@104reverse:
|
||||||
Template: 104
|
Template: 104
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@105:
|
MultiBrush@105:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@105reverse:
|
MultiBrush@105reverse:
|
||||||
Template: 105
|
Template: 105
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@112:
|
MultiBrush@112:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@112reverse:
|
MultiBrush@112reverse:
|
||||||
Template: 112
|
Template: 112
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@113:
|
MultiBrush@113:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@113reverse:
|
MultiBrush@113reverse:
|
||||||
Template: 113
|
Template: 113
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@114:
|
MultiBrush@114:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@114reverse:
|
MultiBrush@114reverse:
|
||||||
Template: 114
|
Template: 114
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@115:
|
MultiBrush@115:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@115reverse:
|
MultiBrush@115reverse:
|
||||||
Template: 115
|
Template: 115
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@116:
|
MultiBrush@116:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@116reverse:
|
MultiBrush@116reverse:
|
||||||
Template: 116
|
Template: 116
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@117:
|
MultiBrush@117:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@117reverse:
|
MultiBrush@117reverse:
|
||||||
Template: 117
|
Template: 117
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@118:
|
MultiBrush@118:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@118reverse:
|
MultiBrush@118reverse:
|
||||||
Template: 118
|
Template: 118
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@119:
|
MultiBrush@119:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@119reverse:
|
MultiBrush@119reverse:
|
||||||
Template: 119
|
Template: 119
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@120reverse:
|
MultiBrush@120reverse:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@121:
|
MultiBrush@121:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@121reverse:
|
MultiBrush@121reverse:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@123:
|
MultiBrush@123:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@123reverse:
|
MultiBrush@123reverse:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@124reverse:
|
MultiBrush@124reverse:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@126reverse:
|
MultiBrush@126reverse:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@127reverse:
|
MultiBrush@127reverse:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@128reverse:
|
MultiBrush@128reverse:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@129reverse:
|
MultiBrush@129reverse:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@130reverse:
|
MultiBrush@130reverse:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@131:
|
MultiBrush@131:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@131reverse:
|
MultiBrush@131reverse:
|
||||||
Template: 131
|
Template: 131
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@133:
|
MultiBrush@133:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@133reverse:
|
MultiBrush@133reverse:
|
||||||
Template: 133
|
Template: 133
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@134:
|
MultiBrush@134:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@134reverse:
|
MultiBrush@134reverse:
|
||||||
Template: 134
|
Template: 134
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@186:
|
MultiBrush@186:
|
||||||
Template: 186
|
Template: 186
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -855,6 +855,7 @@ Background@MARKER_TOOL_PANEL:
|
|||||||
Width: PARENT_WIDTH - 20
|
Width: PARENT_WIDTH - 20
|
||||||
Height: WINDOW_HEIGHT - 490
|
Height: WINDOW_HEIGHT - 490
|
||||||
Background: scrollpanel-bg
|
Background: scrollpanel-bg
|
||||||
|
Visible: false
|
||||||
Logic: MapMarkerTilesLogic
|
Logic: MapMarkerTilesLogic
|
||||||
Children:
|
Children:
|
||||||
ScrollPanel@TILE_COLOR_PANEL:
|
ScrollPanel@TILE_COLOR_PANEL:
|
||||||
@@ -1049,4 +1050,109 @@ ScrollPanel@MAP_GENERATOR_TOOL_PANEL:
|
|||||||
Y: 20
|
Y: 20
|
||||||
Width: PARENT_WIDTH
|
Width: PARENT_WIDTH
|
||||||
Height: 25
|
Height: 25
|
||||||
PanelRoot: EDITOR_WORLD_ROOT
|
PanelRoot: EDITOR_WORLD_ROOT
|
||||||
|
|
||||||
|
ScrollPanel@TILING_PATH_TOOL_PANEL:
|
||||||
|
X: 10
|
||||||
|
Y: 35
|
||||||
|
Width: PARENT_WIDTH - 20
|
||||||
|
Height: WINDOW_HEIGHT - 490
|
||||||
|
TopBottomSpacing: 5
|
||||||
|
ItemSpacing: 5
|
||||||
|
Background: scrollpanel-bg
|
||||||
|
Visible: false
|
||||||
|
Logic: TilingPathToolLogic
|
||||||
|
Children:
|
||||||
|
Checkbox@EDIT:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: checkbox-tiling-path-edit
|
||||||
|
Container@START_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-start
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@INNER_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-inner
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@END_TYPE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-type-end
|
||||||
|
For: DROPDOWN
|
||||||
|
DropDownButton@DROPDOWN:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
Container@DEVIATION:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 50
|
||||||
|
Children:
|
||||||
|
LabelForInput@LABEL:
|
||||||
|
Y: 0
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 20
|
||||||
|
Text: label-tiling-path-deviation
|
||||||
|
For: SLIDER
|
||||||
|
Slider@SLIDER:
|
||||||
|
Y: 20
|
||||||
|
Width: PARENT_WIDTH
|
||||||
|
Height: 25
|
||||||
|
MinimumValue: 0
|
||||||
|
MaximumValue: 10
|
||||||
|
Ticks: 11
|
||||||
|
Checkbox@CLOSED_LOOPS:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: checkbox-tiling-path-closed-loops
|
||||||
|
Button@REVERSE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-reverse
|
||||||
|
Button@RESET:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-reset
|
||||||
|
Button@RANDOMIZE:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-randomize
|
||||||
|
Button@PAINT:
|
||||||
|
X: 5
|
||||||
|
Width: PARENT_WIDTH - 35
|
||||||
|
Height: 25
|
||||||
|
Text: button-tiling-path-paint
|
||||||
|
|||||||
@@ -74,6 +74,16 @@ label-marker-mirror-mode = Mirror Mode
|
|||||||
label-marker-axis-angle = Axis Angle
|
label-marker-axis-angle = Axis Angle
|
||||||
button-map-generator-generate = Generate
|
button-map-generator-generate = Generate
|
||||||
button-map-generator-generate-random = Generate Random
|
button-map-generator-generate-random = Generate Random
|
||||||
|
checkbox-tiling-path-edit = Enable editing
|
||||||
|
label-tiling-path-type-start = Start type
|
||||||
|
label-tiling-path-type-inner = Inner type
|
||||||
|
label-tiling-path-type-end = End type
|
||||||
|
label-tiling-path-deviation = Deviation limit
|
||||||
|
checkbox-tiling-path-closed-loops = Loops use only inner types
|
||||||
|
button-tiling-path-reverse = Reverse path
|
||||||
|
button-tiling-path-reset = Discard path
|
||||||
|
button-tiling-path-randomize = Re-randomize tiling
|
||||||
|
button-tiling-path-paint = Paint tiling to map
|
||||||
|
|
||||||
button-map-editor-tab-container-select-tooltip = Selection
|
button-map-editor-tab-container-select-tooltip = Selection
|
||||||
button-map-editor-tab-container-tiles-tooltip = Tiles
|
button-map-editor-tab-container-tiles-tooltip = Tiles
|
||||||
@@ -115,6 +125,7 @@ button-select-categories-buttons-all = All
|
|||||||
button-select-categories-buttons-none = None
|
button-select-categories-buttons-none = None
|
||||||
|
|
||||||
label-tool-marker-tiles = Marker Tiles
|
label-tool-marker-tiles = Marker Tiles
|
||||||
|
label-tool-tiling-path = Path Tiler
|
||||||
|
|
||||||
## gamesave-browser.yaml
|
## gamesave-browser.yaml
|
||||||
label-gamesave-browser-panel-load-title = Load game
|
label-gamesave-browser-panel-load-title = Load game
|
||||||
|
|||||||
@@ -1107,3 +1107,9 @@ keycode =
|
|||||||
label-map-generator-failed-cancel = Dismiss
|
label-map-generator-failed-cancel = Dismiss
|
||||||
notification-map-generator-generated = Generated using { $name }
|
notification-map-generator-generated = Generated using { $name }
|
||||||
notification-map-generator-failed = Map generation failed
|
notification-map-generator-failed = Map generation failed
|
||||||
|
|
||||||
|
## EditorTilingPathBrush
|
||||||
|
notification-tiling-path-started = Started tiling path
|
||||||
|
notification-tiling-path-updated = Updated tiling path
|
||||||
|
notification-tiling-path-reset = Discarded tiling path
|
||||||
|
notification-tiling-path-painted = Painted tiling path
|
||||||
|
|||||||
@@ -190,4 +190,3 @@ button-production-types-aircraft-tooltip = Aircraft
|
|||||||
button-production-types-naval-tooltip = Naval
|
button-production-types-naval-tooltip = Naval
|
||||||
button-production-types-scroll-up-tooltip = Scroll up
|
button-production-types-scroll-up-tooltip = Scroll up
|
||||||
button-production-types-scroll-down-tooltip = Scroll down
|
button-production-types-scroll-down-tooltip = Scroll down
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
ClearSegmentTypes: Clear
|
ClearSegmentTypes: Clear
|
||||||
BeachSegmentTypes: Beach
|
BeachSegmentTypes: Beach
|
||||||
CliffSegmentTypes: Cliff
|
CliffSegmentTypes: Cliff
|
||||||
RoadSegmentTypes: Road,RoadIn,RoadOut
|
RoadSegmentTypes: Road
|
||||||
ForestObstacles: Trees
|
ForestObstacles: Trees
|
||||||
UnplayableObstacles: Obstructions
|
UnplayableObstacles: Obstructions
|
||||||
CivilianBuildingsObstacles: CivilianBuildings
|
CivilianBuildingsObstacles: CivilianBuildings
|
||||||
|
|||||||
@@ -319,4 +319,8 @@ EditorWorld:
|
|||||||
BuildableTerrainOverlay:
|
BuildableTerrainOverlay:
|
||||||
AllowedTerrainTypes: Clear, Road
|
AllowedTerrainTypes: Clear, Road
|
||||||
MarkerLayerOverlay:
|
MarkerLayerOverlay:
|
||||||
|
TilingPathTool:
|
||||||
|
DefaultStart: Clear
|
||||||
|
DefaultInner: Beach
|
||||||
|
DefaultEnd: Clear
|
||||||
Inherits@MapGenerators: ^MapGenerators
|
Inherits@MapGenerators: ^MapGenerators
|
||||||
|
|||||||
@@ -3437,42 +3437,42 @@ MultiBrushCollections:
|
|||||||
MultiBrush@164:
|
MultiBrush@164:
|
||||||
Template: 164
|
Template: 164
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1
|
Points: 0,1, 1,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@164reverse:
|
MultiBrush@164reverse:
|
||||||
Template: 164
|
Template: 164
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0
|
Points: 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@165:
|
MultiBrush@165:
|
||||||
Template: 165
|
Template: 165
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1
|
Points: 0,0, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@165reverse:
|
MultiBrush@165reverse:
|
||||||
Template: 165
|
Template: 165
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 1,0
|
Points: 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@120:
|
MultiBrush@120:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@120reverse:
|
MultiBrush@120reverse:
|
||||||
Template: 120
|
Template: 120
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -3482,11 +3482,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@121reverse:
|
MultiBrush@121reverse:
|
||||||
Template: 121
|
Template: 121
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -3496,11 +3496,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@122reverse:
|
MultiBrush@122reverse:
|
||||||
Template: 122
|
Template: 122
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -3510,420 +3510,420 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@123reverse:
|
MultiBrush@123reverse:
|
||||||
Template: 123
|
Template: 123
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@124:
|
MultiBrush@124:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@124reverse:
|
MultiBrush@124reverse:
|
||||||
Template: 124
|
Template: 124
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@125:
|
MultiBrush@125:
|
||||||
Template: 125
|
Template: 125
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@125reverse:
|
MultiBrush@125reverse:
|
||||||
Template: 125
|
Template: 125
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@126:
|
MultiBrush@126:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@126reverse:
|
MultiBrush@126reverse:
|
||||||
Template: 126
|
Template: 126
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@127:
|
MultiBrush@127:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@127reverse:
|
MultiBrush@127reverse:
|
||||||
Template: 127
|
Template: 127
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@128:
|
MultiBrush@128:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@128reverse:
|
MultiBrush@128reverse:
|
||||||
Template: 128
|
Template: 128
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@129:
|
MultiBrush@129:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@129reverse:
|
MultiBrush@129reverse:
|
||||||
Template: 129
|
Template: 129
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@130:
|
MultiBrush@130:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@130reverse:
|
MultiBrush@130reverse:
|
||||||
Template: 130
|
Template: 130
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@500:
|
MultiBrush@500:
|
||||||
Template: 500
|
Template: 500
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@500reverse:
|
MultiBrush@500reverse:
|
||||||
Template: 500
|
Template: 500
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@501:
|
MultiBrush@501:
|
||||||
Template: 501
|
Template: 501
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@501reverse:
|
MultiBrush@501reverse:
|
||||||
Template: 501
|
Template: 501
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@139:
|
MultiBrush@139:
|
||||||
Template: 139
|
Template: 139
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@139reverse:
|
MultiBrush@139reverse:
|
||||||
Template: 139
|
Template: 139
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@140:
|
MultiBrush@140:
|
||||||
Template: 140
|
Template: 140
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@140reverse:
|
MultiBrush@140reverse:
|
||||||
Template: 140
|
Template: 140
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@141:
|
MultiBrush@141:
|
||||||
Template: 141
|
Template: 141
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@141reverse:
|
MultiBrush@141reverse:
|
||||||
Template: 141
|
Template: 141
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@142:
|
MultiBrush@142:
|
||||||
Template: 142
|
Template: 142
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@142reverse:
|
MultiBrush@142reverse:
|
||||||
Template: 142
|
Template: 142
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@143:
|
MultiBrush@143:
|
||||||
Template: 143
|
Template: 143
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@143reverse:
|
MultiBrush@143reverse:
|
||||||
Template: 143
|
Template: 143
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@144:
|
MultiBrush@144:
|
||||||
Template: 144
|
Template: 144
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@144reverse:
|
MultiBrush@144reverse:
|
||||||
Template: 144
|
Template: 144
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@145:
|
MultiBrush@145:
|
||||||
Template: 145
|
Template: 145
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@145reverse:
|
MultiBrush@145reverse:
|
||||||
Template: 145
|
Template: 145
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@146:
|
MultiBrush@146:
|
||||||
Template: 146
|
Template: 146
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@146reverse:
|
MultiBrush@146reverse:
|
||||||
Template: 146
|
Template: 146
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@147:
|
MultiBrush@147:
|
||||||
Template: 147
|
Template: 147
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@147reverse:
|
MultiBrush@147reverse:
|
||||||
Template: 147
|
Template: 147
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@148:
|
MultiBrush@148:
|
||||||
Template: 148
|
Template: 148
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@148reverse:
|
MultiBrush@148reverse:
|
||||||
Template: 148
|
Template: 148
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@151:
|
MultiBrush@151:
|
||||||
Template: 151
|
Template: 151
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@151reverse:
|
MultiBrush@151reverse:
|
||||||
Template: 151
|
Template: 151
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@152:
|
MultiBrush@152:
|
||||||
Template: 152
|
Template: 152
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@152reverse:
|
MultiBrush@152reverse:
|
||||||
Template: 152
|
Template: 152
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@154:
|
MultiBrush@154:
|
||||||
Template: 154
|
Template: 154
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@154reverse:
|
MultiBrush@154reverse:
|
||||||
Template: 154
|
Template: 154
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@155:
|
MultiBrush@155:
|
||||||
Template: 155
|
Template: 155
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@155reverse:
|
MultiBrush@155reverse:
|
||||||
Template: 155
|
Template: 155
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@156:
|
MultiBrush@156:
|
||||||
Template: 156
|
Template: 156
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@156reverse:
|
MultiBrush@156reverse:
|
||||||
Template: 156
|
Template: 156
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@157:
|
MultiBrush@157:
|
||||||
Template: 157
|
Template: 157
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@157reverse:
|
MultiBrush@157reverse:
|
||||||
Template: 157
|
Template: 157
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@158:
|
MultiBrush@158:
|
||||||
Template: 158
|
Template: 158
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@158reverse:
|
MultiBrush@158reverse:
|
||||||
Template: 158
|
Template: 158
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@159:
|
MultiBrush@159:
|
||||||
Template: 159
|
Template: 159
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@159reverse:
|
MultiBrush@159reverse:
|
||||||
Template: 159
|
Template: 159
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@161:
|
MultiBrush@161:
|
||||||
Template: 161
|
Template: 161
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@161reverse:
|
MultiBrush@161reverse:
|
||||||
Template: 161
|
Template: 161
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@162:
|
MultiBrush@162:
|
||||||
Template: 162
|
Template: 162
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@162reverse:
|
MultiBrush@162reverse:
|
||||||
Template: 162
|
Template: 162
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@400:
|
MultiBrush@400:
|
||||||
Template: 400
|
Template: 400
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -3833,11 +3833,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@173reverse:
|
MultiBrush@173reverse:
|
||||||
Template: 173
|
Template: 173
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -3847,11 +3847,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@174reverse:
|
MultiBrush@174reverse:
|
||||||
Template: 174
|
Template: 174
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -3861,11 +3861,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@175reverse:
|
MultiBrush@175reverse:
|
||||||
Template: 175
|
Template: 175
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -3875,448 +3875,448 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@176reverse:
|
MultiBrush@176reverse:
|
||||||
Template: 176
|
Template: 176
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@177:
|
MultiBrush@177:
|
||||||
Template: 177
|
Template: 177
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@177reverse:
|
MultiBrush@177reverse:
|
||||||
Template: 177
|
Template: 177
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@178:
|
MultiBrush@178:
|
||||||
Template: 178
|
Template: 178
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@178reverse:
|
MultiBrush@178reverse:
|
||||||
Template: 178
|
Template: 178
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@179:
|
MultiBrush@179:
|
||||||
Template: 179
|
Template: 179
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@179reverse:
|
MultiBrush@179reverse:
|
||||||
Template: 179
|
Template: 179
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@180:
|
MultiBrush@180:
|
||||||
Template: 180
|
Template: 180
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@180reverse:
|
MultiBrush@180reverse:
|
||||||
Template: 180
|
Template: 180
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@181:
|
MultiBrush@181:
|
||||||
Template: 181
|
Template: 181
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@181reverse:
|
MultiBrush@181reverse:
|
||||||
Template: 181
|
Template: 181
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@182:
|
MultiBrush@182:
|
||||||
Template: 182
|
Template: 182
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@182reverse:
|
MultiBrush@182reverse:
|
||||||
Template: 182
|
Template: 182
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@183:
|
MultiBrush@183:
|
||||||
Template: 183
|
Template: 183
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@183reverse:
|
MultiBrush@183reverse:
|
||||||
Template: 183
|
Template: 183
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@184:
|
MultiBrush@184:
|
||||||
Template: 184
|
Template: 184
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@184reverse:
|
MultiBrush@184reverse:
|
||||||
Template: 184
|
Template: 184
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@185:
|
MultiBrush@185:
|
||||||
Template: 185
|
Template: 185
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@185reverse:
|
MultiBrush@185reverse:
|
||||||
Template: 185
|
Template: 185
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@192:
|
MultiBrush@192:
|
||||||
Template: 192
|
Template: 192
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@192reverse:
|
MultiBrush@192reverse:
|
||||||
Template: 192
|
Template: 192
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@193:
|
MultiBrush@193:
|
||||||
Template: 193
|
Template: 193
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@193reverse:
|
MultiBrush@193reverse:
|
||||||
Template: 193
|
Template: 193
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@194:
|
MultiBrush@194:
|
||||||
Template: 194
|
Template: 194
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@194reverse:
|
MultiBrush@194reverse:
|
||||||
Template: 194
|
Template: 194
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@195:
|
MultiBrush@195:
|
||||||
Template: 195
|
Template: 195
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@195reverse:
|
MultiBrush@195reverse:
|
||||||
Template: 195
|
Template: 195
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@196:
|
MultiBrush@196:
|
||||||
Template: 196
|
Template: 196
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@196reverse:
|
MultiBrush@196reverse:
|
||||||
Template: 196
|
Template: 196
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@197:
|
MultiBrush@197:
|
||||||
Template: 197
|
Template: 197
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@197reverse:
|
MultiBrush@197reverse:
|
||||||
Template: 197
|
Template: 197
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@198:
|
MultiBrush@198:
|
||||||
Template: 198
|
Template: 198
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@198reverse:
|
MultiBrush@198reverse:
|
||||||
Template: 198
|
Template: 198
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@199:
|
MultiBrush@199:
|
||||||
Template: 199
|
Template: 199
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@199reverse:
|
MultiBrush@199reverse:
|
||||||
Template: 199
|
Template: 199
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@200:
|
MultiBrush@200:
|
||||||
Template: 200
|
Template: 200
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@200reverse:
|
MultiBrush@200reverse:
|
||||||
Template: 200
|
Template: 200
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@201:
|
MultiBrush@201:
|
||||||
Template: 201
|
Template: 201
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@201reverse:
|
MultiBrush@201reverse:
|
||||||
Template: 201
|
Template: 201
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@203:
|
MultiBrush@203:
|
||||||
Template: 203
|
Template: 203
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@203reverse:
|
MultiBrush@203reverse:
|
||||||
Template: 203
|
Template: 203
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@204:
|
MultiBrush@204:
|
||||||
Template: 204
|
Template: 204
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@204reverse:
|
MultiBrush@204reverse:
|
||||||
Template: 204
|
Template: 204
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@206:
|
MultiBrush@206:
|
||||||
Template: 206
|
Template: 206
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@206reverse:
|
MultiBrush@206reverse:
|
||||||
Template: 206
|
Template: 206
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@207:
|
MultiBrush@207:
|
||||||
Template: 207
|
Template: 207
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@207reverse:
|
MultiBrush@207reverse:
|
||||||
Template: 207
|
Template: 207
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@208:
|
MultiBrush@208:
|
||||||
Template: 208
|
Template: 208
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@208reverse:
|
MultiBrush@208reverse:
|
||||||
Template: 208
|
Template: 208
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@209:
|
MultiBrush@209:
|
||||||
Template: 209
|
Template: 209
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@209reverse:
|
MultiBrush@209reverse:
|
||||||
Template: 209
|
Template: 209
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@210:
|
MultiBrush@210:
|
||||||
Template: 210
|
Template: 210
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@210reverse:
|
MultiBrush@210reverse:
|
||||||
Template: 210
|
Template: 210
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@211:
|
MultiBrush@211:
|
||||||
Template: 211
|
Template: 211
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@211reverse:
|
MultiBrush@211reverse:
|
||||||
Template: 211
|
Template: 211
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@213:
|
MultiBrush@213:
|
||||||
Template: 213
|
Template: 213
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@213reverse:
|
MultiBrush@213reverse:
|
||||||
Template: 213
|
Template: 213
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@214:
|
MultiBrush@214:
|
||||||
Template: 214
|
Template: 214
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@214reverse:
|
MultiBrush@214reverse:
|
||||||
Template: 214
|
Template: 214
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@227:
|
MultiBrush@227:
|
||||||
Template: 227
|
Template: 227
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1
|
Points: 0,0, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@227reverse:
|
MultiBrush@227reverse:
|
||||||
Template: 227
|
Template: 227
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 1,0
|
Points: 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@228:
|
MultiBrush@228:
|
||||||
Template: 228
|
Template: 228
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1
|
Points: 0,1, 1,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@228reverse:
|
MultiBrush@228reverse:
|
||||||
Template: 228
|
Template: 228
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0
|
Points: 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@401:
|
MultiBrush@401:
|
||||||
Template: 401
|
Template: 401
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
@@ -4293,11 +4293,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.D
|
End: Clear.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1
|
Points: 1,0, 1,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@173reverse:
|
MultiBrush@173reverse:
|
||||||
Template: 173
|
Template: 173
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0
|
Points: 2,1, 2,0
|
||||||
Start: Clear.U
|
Start: Clear.U
|
||||||
@@ -4307,11 +4307,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.L
|
End: Clear.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0
|
Points: 2,0, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@174reverse:
|
MultiBrush@174reverse:
|
||||||
Template: 174
|
Template: 174
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 2,1
|
Points: 1,1, 2,1
|
||||||
Start: Clear.R
|
Start: Clear.R
|
||||||
@@ -4321,11 +4321,11 @@ MultiBrushCollections:
|
|||||||
End: Clear.U
|
End: Clear.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1
|
Points: 1,2, 1,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@175reverse:
|
MultiBrush@175reverse:
|
||||||
Template: 175
|
Template: 175
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: Clear.D
|
Start: Clear.D
|
||||||
@@ -4335,448 +4335,448 @@ MultiBrushCollections:
|
|||||||
End: Clear.R
|
End: Clear.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2
|
Points: 0,2, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@176reverse:
|
MultiBrush@176reverse:
|
||||||
Template: 176
|
Template: 176
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 0,1
|
Points: 1,1, 0,1
|
||||||
Start: Clear.L
|
Start: Clear.L
|
||||||
MultiBrush@177:
|
MultiBrush@177:
|
||||||
Template: 177
|
Template: 177
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
Points: 1,0, 1,1, 0,1, 0,2, 0,3, 0,4, 1,4
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@177reverse:
|
MultiBrush@177reverse:
|
||||||
Template: 177
|
Template: 177
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
Points: 2,4, 2,3, 1,3, 1,2, 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@178:
|
MultiBrush@178:
|
||||||
Template: 178
|
Template: 178
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 0,3
|
Points: 0,0, 0,1, 0,2, 0,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@178reverse:
|
MultiBrush@178reverse:
|
||||||
Template: 178
|
Template: 178
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 1,2, 1,1, 1,0
|
Points: 1,3, 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@179:
|
MultiBrush@179:
|
||||||
Template: 179
|
Template: 179
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@179reverse:
|
MultiBrush@179reverse:
|
||||||
Template: 179
|
Template: 179
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@180:
|
MultiBrush@180:
|
||||||
Template: 180
|
Template: 180
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2
|
Points: 1,0, 1,1, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@180reverse:
|
MultiBrush@180reverse:
|
||||||
Template: 180
|
Template: 180
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 2,0
|
Points: 2,2, 2,1, 2,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@181:
|
MultiBrush@181:
|
||||||
Template: 181
|
Template: 181
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@181reverse:
|
MultiBrush@181reverse:
|
||||||
Template: 181
|
Template: 181
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@182:
|
MultiBrush@182:
|
||||||
Template: 182
|
Template: 182
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
Points: 0,2, 1,2, 2,2, 3,2, 4,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@182reverse:
|
MultiBrush@182reverse:
|
||||||
Template: 182
|
Template: 182
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
Points: 4,1, 3,1, 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@183:
|
MultiBrush@183:
|
||||||
Template: 183
|
Template: 183
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@183reverse:
|
MultiBrush@183reverse:
|
||||||
Template: 183
|
Template: 183
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@184:
|
MultiBrush@184:
|
||||||
Template: 184
|
Template: 184
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2
|
Points: 0,2, 1,2, 2,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@184reverse:
|
MultiBrush@184reverse:
|
||||||
Template: 184
|
Template: 184
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 0,1
|
Points: 2,1, 1,1, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@185:
|
MultiBrush@185:
|
||||||
Template: 185
|
Template: 185
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
Points: 0,1, 1,1, 1,2, 2,2, 2,3, 3,3, 4,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@185reverse:
|
MultiBrush@185reverse:
|
||||||
Template: 185
|
Template: 185
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
Points: 4,2, 3,2, 3,1, 2,1, 2,0, 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@192:
|
MultiBrush@192:
|
||||||
Template: 192
|
Template: 192
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
Points: 0,0, 0,1, 0,2, 1,2, 1,3, 2,3, 3,3
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@192reverse:
|
MultiBrush@192reverse:
|
||||||
Template: 192
|
Template: 192
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
Points: 3,2, 2,2, 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@193:
|
MultiBrush@193:
|
||||||
Template: 193
|
Template: 193
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,2, 2,1, 3,1
|
Points: 2,2, 2,1, 3,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@193reverse:
|
MultiBrush@193reverse:
|
||||||
Template: 193
|
Template: 193
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
Points: 3,0, 2,0, 1,0, 1,1, 1,2
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@194:
|
MultiBrush@194:
|
||||||
Template: 194
|
Template: 194
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 1,3
|
Points: 0,2, 1,2, 1,3
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@194reverse:
|
MultiBrush@194reverse:
|
||||||
Template: 194
|
Template: 194
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
Points: 2,3, 2,2, 2,1, 1,1, 0,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@195:
|
MultiBrush@195:
|
||||||
Template: 195
|
Template: 195
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
Points: 0,3, 1,3, 2,3, 2,2, 2,1, 2,0
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@195reverse:
|
MultiBrush@195reverse:
|
||||||
Template: 195
|
Template: 195
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 1,2, 0,2
|
Points: 1,0, 1,1, 1,2, 0,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@196:
|
MultiBrush@196:
|
||||||
Template: 196
|
Template: 196
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@196reverse:
|
MultiBrush@196reverse:
|
||||||
Template: 196
|
Template: 196
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@197:
|
MultiBrush@197:
|
||||||
Template: 197
|
Template: 197
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RD
|
End: Road.Out.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
Points: 0,1, 0,2, 1,2, 1,3, 2,3
|
||||||
Start: RoadIn.RD
|
Start: Road.In.RD
|
||||||
MultiBrush@197reverse:
|
MultiBrush@197reverse:
|
||||||
Template: 197
|
Template: 197
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LU
|
End: Road.Out.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
Points: 3,2, 3,1, 2,1, 2,0, 1,0
|
||||||
Start: RoadIn.LU
|
Start: Road.In.LU
|
||||||
MultiBrush@198:
|
MultiBrush@198:
|
||||||
Template: 198
|
Template: 198
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@198reverse:
|
MultiBrush@198reverse:
|
||||||
Template: 198
|
Template: 198
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@199:
|
MultiBrush@199:
|
||||||
Template: 199
|
Template: 199
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2
|
Points: 0,1, 0,2, 1,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@199reverse:
|
MultiBrush@199reverse:
|
||||||
Template: 199
|
Template: 199
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0
|
Points: 2,1, 2,0, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@200:
|
MultiBrush@200:
|
||||||
Template: 200
|
Template: 200
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1, 1,2
|
Points: 0,1, 1,1, 1,2
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@200reverse:
|
MultiBrush@200reverse:
|
||||||
Template: 200
|
Template: 200
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 2,0, 1,0, 0,0
|
Points: 2,1, 2,0, 1,0, 0,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@201:
|
MultiBrush@201:
|
||||||
Template: 201
|
Template: 201
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RD
|
End: Road.In.RD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1, 0,2, 1,2
|
Points: 0,0, 0,1, 0,2, 1,2
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@201reverse:
|
MultiBrush@201reverse:
|
||||||
Template: 201
|
Template: 201
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: RoadOut.LU
|
Start: Road.Out.LU
|
||||||
MultiBrush@203:
|
MultiBrush@203:
|
||||||
Template: 203
|
Template: 203
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2, 1,2, 2,2
|
Points: 0,1, 0,2, 1,2, 2,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@203reverse:
|
MultiBrush@203reverse:
|
||||||
Template: 203
|
Template: 203
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,1, 1,1, 1,0
|
Points: 2,1, 1,1, 1,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@204:
|
MultiBrush@204:
|
||||||
Template: 204
|
Template: 204
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 0,2
|
Points: 0,1, 0,2
|
||||||
Start: RoadOut.RD
|
Start: Road.Out.RD
|
||||||
MultiBrush@204reverse:
|
MultiBrush@204reverse:
|
||||||
Template: 204
|
Template: 204
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LU
|
End: Road.In.LU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 1,0
|
Points: 1,2, 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@206:
|
MultiBrush@206:
|
||||||
Template: 206
|
Template: 206
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@206reverse:
|
MultiBrush@206reverse:
|
||||||
Template: 206
|
Template: 206
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@207:
|
MultiBrush@207:
|
||||||
Template: 207
|
Template: 207
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.RU
|
End: Road.Out.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
Points: 1,3, 2,3, 2,2, 3,2, 3,1
|
||||||
Start: RoadIn.RU
|
Start: Road.In.RU
|
||||||
MultiBrush@207reverse:
|
MultiBrush@207reverse:
|
||||||
Template: 207
|
Template: 207
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadOut.LD
|
End: Road.Out.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
Points: 2,0, 1,0, 1,1, 0,1, 0,2
|
||||||
Start: RoadIn.LD
|
Start: Road.In.LD
|
||||||
MultiBrush@208:
|
MultiBrush@208:
|
||||||
Template: 208
|
Template: 208
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@208reverse:
|
MultiBrush@208reverse:
|
||||||
Template: 208
|
Template: 208
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@209:
|
MultiBrush@209:
|
||||||
Template: 209
|
Template: 209
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1
|
Points: 1,2, 2,2, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@209reverse:
|
MultiBrush@209reverse:
|
||||||
Template: 209
|
Template: 209
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1
|
Points: 1,0, 0,0, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@210:
|
MultiBrush@210:
|
||||||
Template: 210
|
Template: 210
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@210reverse:
|
MultiBrush@210reverse:
|
||||||
Template: 210
|
Template: 210
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 2,0, 1,0, 0,0, 0,1
|
Points: 2,0, 1,0, 0,0, 0,1
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@211:
|
MultiBrush@211:
|
||||||
Template: 211
|
Template: 211
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 2,2, 2,1, 2,0
|
Points: 1,2, 2,2, 2,1, 2,0
|
||||||
Start: RoadOut.RU
|
Start: Road.Out.RU
|
||||||
MultiBrush@211reverse:
|
MultiBrush@211reverse:
|
||||||
Template: 211
|
Template: 211
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.LD
|
End: Road.In.LD
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@213:
|
MultiBrush@213:
|
||||||
Template: 213
|
Template: 213
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,2, 1,2, 2,2, 2,1
|
Points: 0,2, 1,2, 2,2, 2,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@213reverse:
|
MultiBrush@213reverse:
|
||||||
Template: 213
|
Template: 213
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 1,1, 0,1
|
Points: 1,0, 1,1, 0,1
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@214:
|
MultiBrush@214:
|
||||||
Template: 214
|
Template: 214
|
||||||
Segment:
|
Segment:
|
||||||
End: RoadIn.RU
|
End: Road.In.RU
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,2, 1,1, 2,1
|
Points: 1,2, 1,1, 2,1
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@214reverse:
|
MultiBrush@214reverse:
|
||||||
Template: 214
|
Template: 214
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0, 0,1, 0,2
|
Points: 1,0, 0,0, 0,1, 0,2
|
||||||
Start: RoadOut.LD
|
Start: Road.Out.LD
|
||||||
MultiBrush@227:
|
MultiBrush@227:
|
||||||
Template: 227
|
Template: 227
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.D
|
End: Road.Main.D
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,0, 0,1
|
Points: 0,0, 0,1
|
||||||
Start: Road.D
|
Start: Road.Main.D
|
||||||
MultiBrush@227reverse:
|
MultiBrush@227reverse:
|
||||||
Template: 227
|
Template: 227
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.U
|
End: Road.Main.U
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,1, 1,0
|
Points: 1,1, 1,0
|
||||||
Start: Road.U
|
Start: Road.Main.U
|
||||||
MultiBrush@228:
|
MultiBrush@228:
|
||||||
Template: 228
|
Template: 228
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.R
|
End: Road.Main.R
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 0,1, 1,1
|
Points: 0,1, 1,1
|
||||||
Start: Road.R
|
Start: Road.Main.R
|
||||||
MultiBrush@228reverse:
|
MultiBrush@228reverse:
|
||||||
Template: 228
|
Template: 228
|
||||||
Segment:
|
Segment:
|
||||||
End: Road.L
|
End: Road.Main.L
|
||||||
Inner: Road
|
Inner: Road
|
||||||
Points: 1,0, 0,0
|
Points: 1,0, 0,0
|
||||||
Start: Road.L
|
Start: Road.Main.L
|
||||||
MultiBrush@401:
|
MultiBrush@401:
|
||||||
Template: 401
|
Template: 401
|
||||||
Segment:
|
Segment:
|
||||||
|
|||||||
Reference in New Issue
Block a user