[Template WallSet]
{
	string	ids
	string	name

	string	wall_segment_ids	;; must have a WallComponent
	string	wall_corner_ids		;; must have a WallComponent
	string	gate_ids		;; must have a WallComponent that is a gate
}

[template SettlementComponent]
{
	;; if true, settlement walls are considered one entity (i.e. they are created at the same time,
	;; share health)
	bool	connected_wall = false

	;; easy flag to turn on/off walls for first-level settlements.
	bool	first_level_has_walls = false

	;; damage to a wall does this percent damage to its neighbor walls (1.0 = 100%)
	fixed	wall_neighbor_damage_factor = 1.0

	;; property given to intruders this settlement is razing
	string	intruder_raze_property = null

	[AvailableStructures]
	{
		[List Structure]
		string	structure_ids
	}
	
	[Placeholders]
	{
		;; placeholders are actors who always exist, even when the wall isn't there.
		;; they are blocking to static things (buildings).

		string	wall_segment_placeholder_ids
		string	wall_corner_placeholder_ids
		string	gate_placeholder_ids
	}

	[Levels]
	{
		[List Level]
		{
			int max_structures
			string settlement_center_ids
			string wallset_ids
		}
	}

	[Shape]
	{
		;; The code creates a polygonal wall based on the diameter and number of sides.
		;; The diameter may be increased by code so the segments fit.
		;; The gates are spead evenly among the sides.
		fixed	wall_diameter
		int		num_wall_sides
		int		num_wall_gates
	}
	
	;; kad042604 - these are used for autoplacement of buildings (and SAI placement of 
	;;	buildings) in the settlement.
	[StructureLayouts]
	{
		[list Layout]
		{
			string layout_ids
		}
	}
}
