<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trainzsimulator.com/index.php?action=history&amp;feed=atom&amp;title=Class_Industry</id>
	<title>Class Industry - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trainzsimulator.com/index.php?action=history&amp;feed=atom&amp;title=Class_Industry"/>
	<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;action=history"/>
	<updated>2026-11-05T12:10:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=38989&amp;oldid=prev</id>
		<title>Pw3r: /* Methods */</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=38989&amp;oldid=prev"/>
		<updated>2023-10-04T00:05:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Methods&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:05, 4 October 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;Line 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===AppendDriverDestinations===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===AppendDriverDestinations===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{MethodHeader|public void AppendDriverDestinations(string[ ] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;destNames, string[ ] destTracks)}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{MethodHeader|public void AppendDriverDestinations(string[] destNames, string[] destTracks)}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Parameters&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Parameters&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&#039;&#039;&#039;destNames&#039;&#039;&#039; = An array of names &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of destinations &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be displayed in a menu&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&#039;&#039;&#039;destNames&#039;&#039;&#039; = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;OUTPUT - &lt;/ins&gt;An array of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;localised and human-readable track &lt;/ins&gt;names&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. See StringTable.gs for details on how &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;support localisation&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&#039;&#039;&#039;destTracks&#039;&#039;&#039; = An array of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;attached&lt;/del&gt;-track names as &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;defined &lt;/del&gt;in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Industry&#039;s &#039;&#039;&lt;/del&gt;config&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.txt&#039;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&#039;&#039;&#039;destTracks&#039;&#039;&#039; = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;OUTPUT - &lt;/ins&gt;An array of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;machine&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;readable &lt;/ins&gt;track names&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;as &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;specified &lt;/ins&gt;in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;industry asset &lt;/ins&gt;config &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;file&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*The array size of these two parameters must contain the same number of entries&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Returned Value&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Returned Value&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*None&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*None&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Syntax&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Syntax&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  AppendDriverDestinations(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Str.Tokens(&quot;Bay 1,Bay 2&quot;,&quot;,&quot;),Str.Tokens(&quot;track01,track02&quot;,&quot;&lt;/del&gt;,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;)&lt;/del&gt;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; string[] localisedNames = new string[0];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; string[] destinationNames = new string[0];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  AppendDriverDestinations(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;localisedNames&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;destinationNames&lt;/ins&gt;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Notes&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Notes&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Provides destinations for use of this industry on the Drive To sub-menu.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Provides destinations for use of this industry on the Drive To sub-menu.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l64&quot;&gt;Line 64:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*The indexes of each these arrays must correspond.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*The indexes of each these arrays must correspond.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*You don&amp;#039;t have to worry about allocating memory for the arrays as Trainzscript expands the array size automatically if this is necessary.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*You don&amp;#039;t have to worry about allocating memory for the arrays as Trainzscript expands the array size automatically if this is necessary.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===AppendDriverDestinations===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{MethodHeader|public void AppendDriverDestinations(Asset product, bool bIsForUnloading, string[] destNames, string[] destTracks)}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;Parameters&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&#039;&#039;&#039;product&#039;&#039;&#039; = A product asset that the caller wants to load/unload.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&#039;&#039;&#039;bIsForUnloading&#039;&#039;&#039; = Specifies whether the caller wants deliver/unload the product (true) or pickup/load it (false).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&#039;&#039;&#039;destNames&#039;&#039;&#039; = OUTPUT - An array of localised and human-readable track names. See StringTable.gs for details on how to support localisation.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&#039;&#039;&#039;destTracks&#039;&#039;&#039; = OUTPUT - An array of machine-readable track names, as specified in the industry asset config file.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;Returned Value&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Whether the function is implemented. This function should only return false if the scripter has not implemented it at all. If the the function is implemented to ever return any destination tracks (for any product), then it should always return true.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;Syntax&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; string[] localisedNames = new string[0];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; string[] destinationNames = new string[0];&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; AppendDriverDestinations(desiredProduct, desiredLoadUnloadAction, localisedNames, destinationNames);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;Notes&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Functions as per the original AppendDriverDestinations variant (detailed above), but filters the returned list to a specific product and load/unload action.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Required to correctly support Living Railroad load/unload at multi-track industries.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pw3r</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=26554&amp;oldid=prev</id>
		<title>Danny252: Change link to library reference, not language reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=26554&amp;oldid=prev"/>
		<updated>2020-12-28T13:41:59Z</updated>

		<summary type="html">&lt;p&gt;Change link to library reference, not language reference&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:41, 28 December 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[TrainzScript &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Language &lt;/del&gt;Reference|API Hierarchy]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[TrainzScript &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Library &lt;/ins&gt;Reference|API Hierarchy]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**[[Class GSObject|GSObject]] *&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**[[Class GSObject|GSObject]] *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***[[Class GameObject|GameObject]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***[[Class GameObject|GameObject]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Danny252</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=1103&amp;oldid=prev</id>
		<title>Windwalkr at 16:20, 9 February 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=1103&amp;oldid=prev"/>
		<updated>2010-02-09T16:20:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:20, 9 February 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[TrainzScript &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Langage &lt;/del&gt;Reference|API Hierarchy]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[TrainzScript &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Language &lt;/ins&gt;Reference|API Hierarchy]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**[[Class GSObject|GSObject]] *&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**[[Class GSObject|GSObject]] *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***[[Class GameObject|GameObject]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;***[[Class GameObject|GameObject]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Windwalkr</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=240&amp;oldid=prev</id>
		<title>Windwalkr: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=240&amp;oldid=prev"/>
		<updated>2010-02-03T13:58:35Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:58, 3 February 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Windwalkr</name></author>
	</entry>
	<entry>
		<id>https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=239&amp;oldid=prev</id>
		<title>Andi06 at 00:23, 9 August 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.trainzsimulator.com/index.php?title=Class_Industry&amp;diff=239&amp;oldid=prev"/>
		<updated>2008-08-09T00:23:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;*[[TrainzScript Langage Reference|API Hierarchy]]&lt;br /&gt;
**[[Class GSObject|GSObject]] *&lt;br /&gt;
***[[Class GameObject|GameObject]]&lt;br /&gt;
****[[Class TrainzGameObject|TrainzGameObject]]&lt;br /&gt;
****[[Class PropertyObject|PropertyObject]] *&lt;br /&gt;
*****[[Class MeshObject|MeshObject]]&lt;br /&gt;
******[[Class MapObject|MapObject]]&lt;br /&gt;
*******[[Class SceneryWithTrack|SceneryWithTrack]]&lt;br /&gt;
********[[Class Buildable|Buildable]]&lt;br /&gt;
*********Industry&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Parent class for industry objects.&lt;br /&gt;
*Industries support attached tracks and triggers and processes.&lt;br /&gt;
*The methods include support for the transfer of products to ad from vehicles.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Constants &amp;amp; Messages==&lt;br /&gt;
&lt;br /&gt;
===Load and Unload Driver Command Strings===&lt;br /&gt;
*These values indicate the type of command calling HandleTrain().&lt;br /&gt;
{{TableHeader|width=95%|margin=15px}}&lt;br /&gt;
|width=375|public define string  LOAD_COMMAND = &amp;quot;load&amp;quot;||Driver command &amp;#039;&amp;#039;Load&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|public define string  UNLOAD_COMMAND = &amp;quot;unload&amp;quot;||Driver command &amp;#039;&amp;#039;Unload&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Related Messages===&lt;br /&gt;
*Messages sent to and from Industry objects are listed below:&lt;br /&gt;
{{TableHeader|width=50%|margin=15px}}&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#EEEEEE&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Major&amp;#039;&amp;#039;&amp;#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Minor&amp;#039;&amp;#039;&amp;#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039;||bgcolor=&amp;quot;#EEEEEE&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Destination&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Process-Start||&amp;#039;&amp;#039;process name&amp;#039;&amp;#039;||Industry||Industry&lt;br /&gt;
|-&lt;br /&gt;
|Process-Stop||&amp;#039;&amp;#039;process name&amp;#039;&amp;#039;||Industry||Industry&lt;br /&gt;
|-&lt;br /&gt;
|HandleTrain||Release||Industry||Train&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle||LoadComplete||Industry||Vehicle&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*See also [[Object Messages]] for details of messages exchanged between Vehicles and attached triggers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
&lt;br /&gt;
===AppendDriverDestinations===&lt;br /&gt;
{{MethodHeader|public void AppendDriverDestinations(string[ ]  destNames, string[ ] destTracks)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;destNames&amp;#039;&amp;#039;&amp;#039; = An array of names of destinations to be displayed in a menu.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;destTracks&amp;#039;&amp;#039;&amp;#039; = An array of attached-track names as defined in the Industry&amp;#039;s &amp;#039;&amp;#039;config.txt&amp;#039;&amp;#039;&lt;br /&gt;
*The array size of these two parameters must contain the same number of entries.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 AppendDriverDestinations(Str.Tokens(&amp;quot;Bay 1,Bay 2&amp;quot;,&amp;quot;,&amp;quot;),Str.Tokens(&amp;quot;track01,track02&amp;quot;,&amp;quot;,&amp;quot;));&lt;br /&gt;
;Notes&lt;br /&gt;
*Provides destinations for use of this industry on the Drive To sub-menu.&lt;br /&gt;
*If the programmer wants the appropriate destinations to appear in the Drive To command&amp;#039;s menus, this method must be implemented.&lt;br /&gt;
*A user readable name and the name of the actual destination track must be provided.&lt;br /&gt;
*Two arrays are passed in as return arguments, one for the readable names and the other for the track names.&lt;br /&gt;
*The indexes of each these arrays must correspond.&lt;br /&gt;
*You don&amp;#039;t have to worry about allocating memory for the arrays as Trainzscript expands the array size automatically if this is necessary.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AppendProductList===&lt;br /&gt;
{{MethodHeader|public void AppendProductList(Asset[ ] productList)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;productList&amp;#039;&amp;#039;&amp;#039; = Asset array to which products will be added.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 AppendProductList(assets);&lt;br /&gt;
;Notes&lt;br /&gt;
*Adds all of the products that the industry is currently capable of producing to the given asset array.&lt;br /&gt;
*Check that the given products are not already present before calling this method.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BeginLoad===&lt;br /&gt;
{{MethodHeader|public float BeginLoad(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the loading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for any animations or other effects required before the loading operation commences.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#LoadProduct|Vehicle.LoadProduct()]] before carrying out any loading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BeginUnload===&lt;br /&gt;
{{MethodHeader|public float BeginUnload(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the loading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for any animations or other effects required before the unloading operation commences.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#UnloadProduct|Vehicle.UnloadProduct()]] before carrying out any unloading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ClearProcess===&lt;br /&gt;
{{MethodHeader|public native void ClearProcess(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process to reset.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 ClearProcess(&amp;quot;timberProduction&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Clears all current inputs and outputs for the named process.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CreateLoadingReport===&lt;br /&gt;
{{MethodHeader|public LoadingReport CreateLoadingReport(ProductQueue queue, int amount)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Industry source queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;amount&amp;#039;&amp;#039;&amp;#039; = Quantity of product to load.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*A newly created LoadingReport object describing the loading operation.&lt;br /&gt;
;Syntax&lt;br /&gt;
 LoadingReport report = CreateLoadingReport(&amp;quot;brickstore&amp;quot;,5000);&lt;br /&gt;
;Notes&lt;br /&gt;
*This method creates &amp;#039;documentation&amp;#039; but doesn&amp;#039;t actually perform the operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CreateUnloadingReport===&lt;br /&gt;
{{MethodHeader|public LoadingReport CreateUnloadingReport(ProductQueue queue, int amount)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Industry source queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;amount&amp;#039;&amp;#039;&amp;#039; = Quantity of product to unload.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*A newly created LoadingReport object describing the unloading operation.&lt;br /&gt;
;Syntax&lt;br /&gt;
 LoadingReport report = CreateUnloadingReport(&amp;quot;deliveries&amp;quot;,5000);&lt;br /&gt;
;Notes&lt;br /&gt;
*This method creates &amp;#039;documentation&amp;#039; but doesn&amp;#039;t actually perform the operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EndLoad===&lt;br /&gt;
{{MethodHeader|public float EndLoad(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the loading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for any animations or other effects required after the loading operation is completed.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#LoadProduct|Vehicle.LoadProduct()]] after carrying out any loading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EndUnload===&lt;br /&gt;
{{MethodHeader|public float EndUnload(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the unloading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for any animations or other effects required after the unloading operation is completed.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#UnloadProduct|Vehicle.UnloadProduct()]] after carrying out any unloading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetLoadTime===&lt;br /&gt;
{{MethodHeader|public float GetLoadTime(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the loading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for the loading operation to take place.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#LoadProduct|Vehicle.LoadProduct()]] to detemine the time needed for the loading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessDuration===&lt;br /&gt;
{{MethodHeader|public native float GetProcessDuration(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = The name of the process to query.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The duration of the named process in seconds.&lt;br /&gt;
;Syntax&lt;br /&gt;
 float processTime = GetProcessDuration(&amp;quot;outputProcess&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessEnabled===&lt;br /&gt;
{{MethodHeader|public native bool GetProcessEnabled(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = The name of the process to query.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the specified process is enabled, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool canProcess = GetProcessEnabled(&amp;quot;outputProcess&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessInput===&lt;br /&gt;
{{MethodHeader|public native int GetProcessInput(string processName, ProductQueue queue, Asset product)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = The name of the process to query.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Name of the input queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;product&amp;#039;&amp;#039;&amp;#039; = Type of product being processed.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The unit quantity of products consumed by this process from the specified queue during one process cycle.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int input = GetProcessInput(&amp;quot;processName&amp;quot;,queue,product);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessIOAmount===&lt;br /&gt;
{{MethodHeader|public native int GetProcessIOAmount(string processName, bool wantInput, int ioIndex)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process to query.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;wantInput&amp;#039;&amp;#039;&amp;#039; = True for an input queue, false for an output queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ioIndex&amp;#039;&amp;#039;&amp;#039; = Index of the input or output queue to query, use 0 for the first queue defined.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The quantity of product produced or consumed by the specified process during one product cycle, 0 if the information cannot be established.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int consumption = GetProcessIOAmount(&amp;quot;input&amp;quot;,true,0);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessIOProduct===&lt;br /&gt;
{{MethodHeader|public native Asset GetProcessIOProduct(string processName, bool wantInput, int ioIndex)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process to query.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;wantInput&amp;#039;&amp;#039;&amp;#039; = True for an input queue, false for an output queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ioIndex&amp;#039;&amp;#039;&amp;#039; = Index of the input or output queue to query, use 0 for the first queue defined.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The product for the specified process if possible, null otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 Asset product = GetProcessIOProduct(&amp;quot;input&amp;quot;,true,0);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessIOQueue===&lt;br /&gt;
{{MethodHeader|public native ProductQueue GetProcessIOQueue(string processName, bool wantInput, int ioIndex)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process to query.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;wantInput&amp;#039;&amp;#039;&amp;#039; = True for an input queue, false for an output queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ioIndex&amp;#039;&amp;#039;&amp;#039; = Index of the input or output queue to query, use 0 for the first queue defined.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The queue related to the specified process if possible, null otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 ProductQueue queue = GetProcessIOProduct(&amp;quot;input&amp;quot;,true,0);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessNameList===&lt;br /&gt;
{{MethodHeader|public native string[ ] GetProcessNameList(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The names of all the processes associated with this Industry object.&lt;br /&gt;
;Syntax&lt;br /&gt;
 string[] processes = GetProcessNameList();&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessOutput===&lt;br /&gt;
{{MethodHeader|public native int GetProcessOutput(string processName, ProductQueue queue, Asset product)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = The name of the process to query.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Name of the output queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;product&amp;#039;&amp;#039;&amp;#039; = Type of product being processed.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The unit quantity of products produced by this process from the specified queue during one process cycle.&lt;br /&gt;
;Syntax&lt;br /&gt;
 int output = GetProcessOutput(&amp;quot;processName&amp;quot;,queue,product);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetProcessStarted===&lt;br /&gt;
{{MethodHeader|public native bool GetProcessStarted(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = The name of the process to query.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if the named process has started, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool hasStarted = GetProcessStarted(&amp;quot;production&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetRequirements===&lt;br /&gt;
{{MethodHeader|public Requirement[ ] GetRequirements(void)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
;Returned Value&lt;br /&gt;
*An array of Requirements to enable a waybill listing to be produced.&lt;br /&gt;
;Notes&lt;br /&gt;
*A callback method  which returns an empty array by default.&lt;br /&gt;
*This method is called by Trainz to determine the product requirements of an industry so that a waybill listing can be generated for display.&lt;br /&gt;
*The default implementation in Industry returns an empty array, so the programmer must implement their own overridden version if they want their industry to provide requirements data for waybills.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GetUnloadTime===&lt;br /&gt;
{{MethodHeader|public float GetUnloadTime(LoadingReport report)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;report&amp;#039;&amp;#039;&amp;#039; = Report on the current state of the unloading operation.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*The time required, in seconds, for the unloading operation to take place.&lt;br /&gt;
;Notes&lt;br /&gt;
*Callback method called by [[Class Vehicle#UnloadProduct|Vehicle.UnloadProduct()]] to detemine the time needed for the unloading operation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HandleTrain===&lt;br /&gt;
{{MethodHeader|public bool HandleTrain(Train train, string loadCommand)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*None&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;train&amp;#039;&amp;#039;&amp;#039; = Train to be controlled through the industry.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;loadCommand&amp;#039;&amp;#039;&amp;#039; = Either of the [[#Load and Unload Driver Command Strings|Load and Unload Driver Command String]] constants indicating a &amp;#039;&amp;#039;load&amp;#039;&amp;#039; or &amp;#039;&amp;#039;unload&amp;#039;&amp;#039; command.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if successful or if the operation is handled by another thread, false on failure. The default implementation always returns false.&lt;br /&gt;
;Notes&lt;br /&gt;
*Called by the Load and Unload driver commands to initiate loading or unloading.&lt;br /&gt;
*The method is called from within a schedule and is permitted to control the train, but not to perform loading or unloading.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HasTrack===&lt;br /&gt;
{{MethodHeader|public bool HasTrack(string trackName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;trackName&amp;#039;&amp;#039;&amp;#039; = Name of attached track section.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if &amp;#039;&amp;#039;trackName&amp;#039;&amp;#039; exists in this Industry, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 bool IsCoalmine = industry.HasTrack(&amp;quot;pithead&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NotifyProcessFinished===&lt;br /&gt;
{{MethodHeader|public void NotifyProcessFinished(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Notes&lt;br /&gt;
*Called by Trainz once when a process is ready to stop running.&lt;br /&gt;
*You may override this function to provide custom behavior, however, you MUST call the [[#PerformProcessOutput|PerformProcessOutput()]] and [[#PerformProcessFinished|PerformProcessFinished()]] methods.&lt;br /&gt;
*The call to these methods may be delayed for animation purposes, but it must happen.&lt;br /&gt;
*As this is not a threaded function, you must not use Sleep() or wait().&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NotifyProcessStarted===&lt;br /&gt;
{{MethodHeader|NotifyProcessStarted(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Notes&lt;br /&gt;
*Called by Trainz once when a process is ready to start.&lt;br /&gt;
*You may override this function to provide custom behavior, however, you MUST call the [[#PerformProcessInput|PerformProcessInput()]] and [[#PerformProcessStarted|PerformProcessStarted()]] methods.&lt;br /&gt;
*The call to these methods may be delayed for animation purposes, but it must happen.&lt;br /&gt;
*As this is not a threaded function, you must not use Sleep() or wait().&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PerformProcessCancelled===&lt;br /&gt;
{{MethodHeader|public native void PerformProcessCancelled(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process to cancel.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 PerformProcessCancelled(&amp;quot;production&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Instructs Trainz to cancel the named process.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PerformProcessFinished===&lt;br /&gt;
{{MethodHeader|PerformProcessFinished(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 PerformProcessFinished(&amp;quot;production&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Instructs Trainz to complete the named process.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PerformProcessInput===&lt;br /&gt;
{{MethodHeader|public native bool PerformProcessInput(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if successful, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 PerformProcessInput(&amp;quot;input&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Instructs Trainz to perform inputs for the named process.&lt;br /&gt;
*This method should be called once only after each call to [[#NotifyProcessStarted|NotifyProcessStarted()]], unless [[#PerformProcessCancelled|PerformProcessCancelled()]] is called first.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PerformProcessOutput===&lt;br /&gt;
{{MethodHeader|public native bool PerformProcessOutput(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*True if successful, false otherwise.&lt;br /&gt;
;Syntax&lt;br /&gt;
 PerformProcessOutput(&amp;quot;output&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Instructs Trainz to perform outputs for the named process.&lt;br /&gt;
*This method should be called once only after each call to [[#NotifyProcessStarted|NotifyProcessStarted()]], unless [[#PerformProcessCancelled|PerformProcessCancelled()]] is called first.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PerformProcessStarted===&lt;br /&gt;
{{MethodHeader|PerformProcessStarted(string processName)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 PerformProcessStarted(&amp;quot;production&amp;quot;);&lt;br /&gt;
;Notes&lt;br /&gt;
*Instructs Trainz to start the named process.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetProcessDuration===&lt;br /&gt;
{{MethodHeader|public native void SetProcessDuration(string processName, float duration)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;duration&amp;#039;&amp;#039;&amp;#039; = New duration for the named process, in seconds.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 SetProcessDuration(&amp;quot;input&amp;quot;,25.0);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetProcessEnabled===&lt;br /&gt;
{{MethodHeader|public native void SetProcessEnabled(string processName, bool enabled)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;enabled&amp;#039;&amp;#039;&amp;#039; = True to enable the process, false to disable.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 SetProcessEnabled(&amp;quot;input&amp;quot;,true);&lt;br /&gt;
;Notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetProcessInput===&lt;br /&gt;
{{MethodHeader|public native void SetProcessInput(string processName, ProductQueue queue, Asset product, int amount)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Input queue to adjust.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;product&amp;#039;&amp;#039;&amp;#039; = Product type to accept as new input into queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;amount&amp;#039;&amp;#039;&amp;#039; = Quantity of product per process cycle, 0 will remove input requirements.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 SetProcessInput(&amp;quot;input&amp;quot;,inputQueue,product,50);&lt;br /&gt;
;Notes&lt;br /&gt;
*Modifies the input requirements for the specified process.&lt;br /&gt;
*Using this method will override any existing requirements for the process, whether they have been set previously via this method or predefined in the industry&amp;#039;s configuration.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SetProcessOutput===&lt;br /&gt;
{{MethodHeader|public native void SetProcessOutput(string processName, ProductQueue queue, Asset product, int amount)}}&lt;br /&gt;
;Parameters&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;processName&amp;#039;&amp;#039;&amp;#039; = Name of the process.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;queue&amp;#039;&amp;#039;&amp;#039; = Output queue to adjust.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;product&amp;#039;&amp;#039;&amp;#039; = Product type to accept as new input into queue.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;amount&amp;#039;&amp;#039;&amp;#039; = Quantity of product per process cycle, 0 will remove output requirements.&lt;br /&gt;
;Returned Value&lt;br /&gt;
*None&lt;br /&gt;
;Syntax&lt;br /&gt;
 SetProcessOutput(&amp;quot;input&amp;quot;,outputQueue,product,50);&lt;br /&gt;
;Notes&lt;br /&gt;
*Modifies the output requirements for the specified process.&lt;br /&gt;
*Using this method will override any existing requirements for the process, whether they have been set previously via this method or predefined in the industry&amp;#039;s configuration.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Code Examples==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Methods==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
[[Category:Script Class]]&lt;/div&gt;</summary>
		<author><name>Andi06</name></author>
	</entry>
</feed>