Major pipeline changes to map building, introducing 3player map, and adding Shared build mode to level authoring options

This commit is contained in:
Matt F 2026-08-04 22:50:33 -07:00
parent 749c9203de
commit 2b1aee3e03
37 changed files with 5418 additions and 30 deletions

View file

@ -203,6 +203,31 @@ namespace TD.Core
Restricted = 2,
}
/// <summary>
/// Whether a map restricts tower placement to each player's own zone, or lets everyone build
/// anywhere on the map's buildable area.
/// </summary>
/// <remarks>
/// <para>This governs placement PERMISSION only. Zone ownership keeps doing everything else it
/// does today under both modes — leak attribution, camera start position, builder spawn point,
/// minimap tinting. A shared-build map still has distinct player territories; they are simply
/// all buildable by everyone.</para>
///
/// <para>Backed by byte with <c>OwnerOnly = 0</c> so <c>LevelData</c> assets baked before this
/// existed deserialize to the pre-existing behaviour without needing a re-bake.</para>
///
/// <para>Tower OWNERSHIP is unaffected: a tower belongs to whoever paid for it, and sell /
/// upgrade stay owner-gated in both modes.</para>
/// </remarks>
public enum BuildAccess : byte
{
/// <summary>A player may only build on tiles covered by their own PlayerZoneVolume.</summary>
OwnerOnly = 0,
/// <summary>Any player may build on any Buildable tile, whichever zone owns it.</summary>
Shared = 1,
}
/// <summary>
/// Outcome of a bake operation, recorded on the baked <see cref="TD.Levels.LevelData"/> asset.
/// </summary>