inherit
{
	mesh-object
	scriptable-asset
	base-asset
	map-object
	{
		traincar
		turntable
		buildable
		crossing
		industry
		trackside
		junction
		scenery
	}
	trackside
	scenerywithtrack
}

scenerywithtrack
{
	top-level 1
	icon scenerywithtrack
	kind "structure"
	subpossibilities
	{
		attached-track
		{
			kind element
			element-type "attached-track"
		}
		attached-trigger
		{
			kind element
			element-type "attached-trigger"
		}
		mutexes
		{
		  kind element
		  element-type "scenerywithtrack-mutex"
		}
		track-attachment-threshold
		{
		  kind value
		  type float
		  compulsory 0
		  default 0.1
		}
	}
}

trackside
{
	top-level 1
	icon trackside
	kind "Structure"
	subpossibilities
	{
		buffer-speed
		{
			kind value
			type float
			compulsory 0
			default 0.0
		}
		search-limit
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		speedlimit
		{
			kind value
			type float
			compulsory 0
			default 0.0
		}
		trackmark
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		trackside
		{
			kind value
			type float
			compulsory 0
			default 1.0
		}
		trigger
		{
			kind value
			type bool
			compulsory 0
			default 1 
			validation
			{
				//IsTrackSideType
			}
		}
		follow-gradient
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
	}
}

map-object
{
	top-level 1
	icon map-object
	kind "Structure"
	subpossibilities
	{
		autoname
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		dighole
		{
			kind value
			type vector2
			compulsory 0
			default 1,1
		}
		floating
		{
			kind value
			type float
			compulsory 0
			default 1.0
		}
		height-range
		{
			kind value
			type vector2
			compulsory 0
			default -5.0,5.0
		}	
		icon-texture
		{
			kind value
			type filepathedit
			tooltip "The texture for the icon"
			compulsory 0
			datatype "image"
		}
		interior
		{
			kind value
			type kuidbrowser
			tooltip ""
			filter "interior"
			category "CMP;INTR"
			compulsory 0	
		}
		light
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		nightmode
		{
			kind value
			type combobox
			source "nightmode.txt"
			compulsory 0
		}
		rgb
		{
			kind value
			type vector3
			compulsory 0
		}
		rollstep
		{
			kind value
			type float
			compulsory 0
			default 0.0
		}
		rotate
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		rotate-yz-range
		{
			kind value
			type vector2
			compulsory 0
			default 0,6.28
		}
		rotstep
		{
			kind value
			type float
			compulsory 0
			default 0.0
		}
		snapmode
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		snapgrid
		{
			kind value
			type float
			compulsory 0
			default 10.0
			validation
			{
				SnapModeZero
			}
		}
		surveyor-name-label
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		surveyor-only
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		queues
		{
			kind element
			element-type "queues"
		}
		smoke
		{
			kind element
			element-type "smoke"
		}
		soundscript 
		{
			kind element
			element-type "soundscript"
		}
		decal
		{
		  kind element
		  element-type "decal"
		}
	}
	obsolete-tag
	{
		region
		{
			kind value
			type string
		}
		type
		{
			kind value
			type string
		}
		night
		{
			kind value
			type string
		}	
	}
}

mesh-object
{
	top-level 1
	icon mesh-object
	kind "Structure"
	subpossibilities
	{
		alias
		{
			kind value
			type kuidbrowser
			compulsory 0
		}
		preview-mesh-kuid
		{
			kind value
			type kuidbrowser
			filter "mesh"
			category "CMP;MESH|TO|SY|BD"
			compulsory 0
		}
		preview-scale
		{
			kind value
			type float
			compulsory 0
			default 1.0
		}		
		mesh-table
		{
			kind element
			element-type "mesh-table"
			compulsory 1
		}
		mesh-detail-level-count
		{
		  kind value
		  type int
		  compulsory 0
		  default 1
		}
	}
	
	obsolete-tag
	{
		icon0
		{
			kind value
			type kuidbrowser
			filter "texture"
			category "CMP;TX"
			compulsory 0
		}
		icon1
		{
			kind value
			type kuidbrowser
			filter "texture"
			category "CMP;TX"
			compulsory 0
		}
		icon2
		{
			kind value
			type kuidbrowser
			filter "texture"
			category "CMP;TX"
			compulsory 0
		}
		icon3
		{
			kind value
			type kuidbrowser
			filter "texture"
			category "CMP;TX"
			compulsory 0
		}
	}
}

scriptable-asset
{
	top-level 1
	icon scriptable-asset
	kind "Structure"
	subpossibilities
	{
		class
		{
			kind value
			type string
			compulsory 0
		}
		script
		{
			kind value
			type filepathedit
			compulsory 0
			datatype "script"
			validation
			{
				scriptfileexists
			}
		}
		script-include-table
		{
		  kind element
		  element-type "script-include-table"
		  compulsory 0
		}
	}
	obsolete-tag
	{
		scriptclass
		{
			kind value
			type string
		}
		scriptlibrary
		{
			kind value
			type string
		}
	}
}

base-asset
{
	top-level 1
	icon base-asset
	kind "Structure"
	subpossibilities
	{
		kuid
		{
			kind value
			type kuid
			compulsory 1
		}
		trainz-build
		{
			kind value
			type float
			compulsory 1
			default 2.9
			disabled 1
		}
		category-class
		{
			kind value
			type combobox
			source "category-class.txt"
			compulsory 1
		}
		category-region
		{
			kind value
			type listbox
			source "category-region.txt"
			compulsory 1
		}
		category-era
		{
			kind value
			type listbox
			source "category-era.txt"
			compulsory 1
		}
		description
		{
			kind value
			tooltip "Description"
			type string
			compulsory 0
			default "<enter a description here>"
		}
		description-cn
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 
		description-cz
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 
		description-fr
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 		
		description-de
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 
		description-it
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 
		description-pl
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		}
		description-ru
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		}
		description-es
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		} 
		description-nl
		{
			kind value
			type string
			compulsory 0
			default "<enter a description here>"
		}
		username
		{
			kind value
			type string
			compulsory 1
			default "Unnamed"
		} 				
		username-cn
		{
			kind value
			type string
		}
		username-cz
		{
			kind value
			type string
		}
		username-fr
		{
			kind value
			type string
		}
		username-de
		{
			kind value
			type string
		}
		username-it
		{
			kind value
			type string
		}
		username-pl
		{
			kind value
			type string
		}
		username-ru
		{
			kind value
			type string
		}
		username-es
		{
			kind value
			type string
		}
		username-nl
		{
			kind value
			type string
		}
		author
		{
			kind value
			type string
			compulsory 0
			default "<enter your name here>"
			noerror 1
		}
		organisation
		{
			kind value
			type string
			compulsory 0
			default "<enter the name of your organisation here>"
			noerror 1
		}
		contact-email
		{
			kind value
			type string
			compulsory 0
			default "<enter your email address here>"
			noerror 1
		}
		contact-website
		{
			kind value
			type string
			compulsory 0
			default "http://<enter your website here>"
			noerror 1
		}
		license
		{
			kind value
			type string
			compulsory 0
			default "<enter your license here>"
			noerror 1
		}
		info-url
		{
		  kind value
		  type string
		  compulsory 0
		  default ""
		}
		category-keyword
		{
			kind value
			type string
			compulsory 0
		}
		string-table
		{
			kind element
			element-type "string-table"
		}
		string-table-cn
		{
			kind element
			element-type "string-table-cn"
		}
		string-table-cz
		{
			kind element
			element-type "string-table-cz"
		}
		string-table-fr
		{
			kind element
			element-type "string-table-fr"
		}
		string-table-de
		{
			kind element
			element-type "string-table-de"
		}
		string-table-it
		{
			kind element
			element-type "string-table-it"
		}
		string-table-pl
		{
			kind element
			element-type "string-table-pl"
		}
		string-table-ru
		{
			kind element
			element-type "string-table-ru"
		}		
		string-table-es
		{
			kind element
			element-type "string-table-es"
		}			
		string-table-nl
		{
			kind element
			element-type "string-table-nl"
		}													
		kuid-table
		{
			kind element
			element-type "kuid-table"      
		}
		obsolete-table
		{
			kind element
			element-type "obsolete-table"      
		} 
		thumbnails
		{
			kind element
			element-type "thumbnails"
		}
		privileges
		{
			kind element
			element-type "privileges"
		}
		extensions
		{
			kind element
			element-type "extensions"
		}
		custom-category-list
		{
		  kind value
		  type string
		  compulsory 0
		}
	}
	obsolete-tag
	{
		asset-filename
		{
			kind value
			type string
		}
		secret
		{
			kind value
			type string
		}
		name
		{
			kind value
			type string
		}
		name-cn
		{
			kind value
			type string
		}
		name-cz
		{
			kind value
			type string
		}
		name-fr
		{
			kind value
			type string
		}
		name-de
		{
			kind value
			type string
		}
		name-it
		{
			kind value
			type string
		}
		name-pl
		{
			kind value
			type string
		}
		name-ru
		{
			kind value
			type string
		}
		name-es
		{
			kind value
			type string
		}
		name-nl
		{
			kind value
			type string
		}
		dsid
		{
			kind value
			type string
		}
		dataversion
		{
			kind value
			type string
		}
	}
}

itrack
{
   top-level 1
   icon itrack
   kind "Structure"
   subpossibilities
   {
		hidden
		{
			kind value
			type bool
			compulsory 0
		}   
		alias
		{
			kind value
			type string
			compulsory 0
		}	
		bendy
		{
			kind value
			type bool
			compulsory 1
			default 1
		}			
		bumpmap
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
		carrate
		{
			kind value
			type int
			compulsory 1
			default 55
			noerror 1
		}
		casts_shadows
		{
			kind value
			type bool
			compulsory 1
		}
		divider
		{
			kind value
			type string
			compulsory 0
		}
		dont-flip-terminator
		{
			kind value
			type bool
			compulsory 0
		}
		endlength
		{
			kind value
			type float
			compulsory 1
			default 40
		}		
		grounded
		{
			kind value
			type float
			compulsory 1
			default 0.4
			noerror 1
		}
		initiator
		{
			kind value
			type string
			compulsory 0
		}
		invisible
		{
			kind value
			type bool
			default 0
			compulsory 0
		}
		isroad
		{
			kind value
			type bool
			compulsory 1
			default 1
		}
		isfreeway
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		is_silent
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
		numlanes
		{
			kind value
			type int
			compulsory 1
			default 2
		}	
		istrack
		{
			kind value
			type bool
			compulsory 1
			default 0
			disabled 1
		}
		istunnel
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
		light
		{
			kind value
			type int
			compulsory 0
			default 1
		}
		length
		{
			kind value
			type float
			compulsory 1
			default 5
		}		
		repeats
		{
			kind value
			type int
			compulsory 1
			default 1
		}
		rgb
		{
			kind value
			type rgb
			compulsory 1
		}
		shadows
		{
			kind value
			type bool
			compulsory 1
			noerror 1
			default 0
		}
		terminator
		{
			kind value
			type string
			compulsory 0
		}
		uncached_alphas
		{
			kind value
			type bool
			compulsory 0
		}
		upright
		{
			kind value
			type float
			compulsory 1
			default 0.0
			noerror 1
		}
		visible-on-minimap
		{
			kind value
			type bool
			default 1
			compulsory 1
		}
		width
		{
			kind value
			type float
			compulsory 1
			default 7.9
		}	
		track-sound
		{
			kind element
			element-type "track-sound"
		}
		mesh-table
		{
			kind element
			element-type "mesh-table"
		}
		traffic-speed
		{
			kind value
			type int
			compulsory 0
			default 10
		}
	}
}
