-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathresource_transfer.html
189 lines (174 loc) · 13.5 KB
/
resource_transfer.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Transferring resources — kOS 1.4.0.0 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/kos_theme.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/sphinx_highlight.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="Structure Reference" href="../structures.html" />
<link rel="prev" title="Communication" href="communication.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html" class="icon icon-home"> kOS
<img src="../_static/kos_logo_small.png" class="logo" alt="Logo"/>
</a>
<div class="version">
1.4.0.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contents.html">Table of Contents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../downloads_links.html">Downloads and Links</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../library.html">Community Example Library</a></li>
<li class="toctree-l1"><a class="reference internal" href="../general.html">General</a></li>
<li class="toctree-l1"><a class="reference internal" href="../language.html">Language</a></li>
<li class="toctree-l1"><a class="reference internal" href="../math.html">Mathematics</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="runprogram.html">Running Programs</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html">Flight Control</a></li>
<li class="toctree-l2"><a class="reference internal" href="prediction.html">Prediction</a></li>
<li class="toctree-l2"><a class="reference internal" href="list.html">Listing Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="parts.html">Parts Information</a></li>
<li class="toctree-l2"><a class="reference internal" href="files.html">File I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="terminalgui.html">Terminal and GUI</a></li>
<li class="toctree-l2"><a class="reference internal" href="serialization.html">Serialization</a></li>
<li class="toctree-l2"><a class="reference internal" href="communication.html">Communication</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Resource Transfer</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../structures.html">Structures</a></li>
<li class="toctree-l1"><a class="reference internal" href="../addons.html">Addons</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contribute.html">Contribute</a></li>
<li class="toctree-l1"><a class="reference internal" href="../getting_help.html">Getting Help</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changes.html">Changes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../about.html">About</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">kOS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home"></a> »</li>
<li><a href="../commands.html">Command Reference</a> »</li>
<li>Transferring resources</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/commands/resource_transfer.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="transferring-resources">
<span id="resource-transfer"></span><h1>Transferring resources<a class="headerlink" href="#transferring-resources" title="Permalink to this heading">¶</a></h1>
<p>Resource transfer is an important part of many missions in Kerbal Space Program,
whether you are gassing up a lander or refuelling a station. Because of this, we need
a way to describe a resource transfer in script and monitor that transfer to be sure it
was successful.</p>
<p>To accomplish all of this we have two new functions</p>
<div class="highlight-kerboscript notranslate"><div class="highlight"><pre><span></span><span class="k">SET</span> <span class="nv">transferFoo</span> <span class="ow">TO</span> <span class="nv">TRANSFER</span><span class="p">(</span><span class="nv">resourceName</span><span class="p">,</span> <span class="nv">fromParts</span><span class="p">,</span> <span class="nv">toParts</span><span class="p">,</span> <span class="nv">amount</span><span class="p">).</span>
<span class="k">SET</span> <span class="nv">transferBar</span> <span class="ow">TO</span> <span class="nv">TRANSFERALL</span><span class="p">(</span><span class="nv">resourceName</span><span class="p">,</span> <span class="nv">fromParts</span><span class="p">,</span> <span class="nv">toParts</span><span class="p">).</span>
</pre></div>
</div>
<p>TRANSFER will move the specified amount of a resource, where TRANSFERALL will move
the resource until the source is empty or the destination is full. Both functions
return a new <a class="reference internal" href="../structures/misc/resource_transfer.html#structure:RESOURCETRANSFER" title="RESOURCETRANSFER structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">ResourceTransfer</span></code></a>.</p>
<section id="resource">
<h2>Resource<a class="headerlink" href="#resource" title="Permalink to this heading">¶</a></h2>
<p>in all transfers, you must specify a resource by name
(eg “oxidizer”, “LIQUIDFUEL”, etc). this term is not case sensitive.</p>
</section>
<section id="source-and-destination">
<h2>Source and Destination<a class="headerlink" href="#source-and-destination" title="Permalink to this heading">¶</a></h2>
<p>In all transfers, you must specify a source and a destination, both of these need
to be one of these three types:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../structures/vessels/part.html#structure:PART" title="PART structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">Part</span></code></a></p></li>
<li><p><a class="reference internal" href="../structures/collections/list.html#structure:LIST" title="LIST structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">List</span></code></a> of <a class="reference internal" href="../structures/vessels/part.html#structure:PART" title="PART structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">Part</span></code></a></p></li>
<li><p><a class="reference internal" href="../structures/vessels/element.html#structure:ELEMENT" title="ELEMENT structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">Element</span></code></a></p></li>
</ul>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this heading">¶</a></h2>
<p>Building a list of <a class="reference internal" href="../structures/vessels/element.html#structure:ELEMENT" title="ELEMENT structure"><code class="xref ks ks-struct docutils literal notranslate"><span class="pre">Element</span></code></a>, then transferring all of the oxidizer from
one element to another:</p>
<div class="highlight-kerboscript notranslate"><div class="highlight"><pre><span></span><span class="k">LIST</span> <span class="nv">ELEMENTS</span> <span class="nv">IN</span> <span class="nv">elist</span><span class="p">.</span>
<span class="k">SET</span> <span class="nv">foo</span> <span class="ow">TO</span> <span class="nv">TRANSFERALL</span><span class="p">(</span><span class="s">"OXIDIZER"</span><span class="p">,</span> <span class="nv">elist</span><span class="p">[</span><span class="mf">0</span><span class="p">],</span> <span class="nv">elist</span><span class="p">[</span><span class="mf">1</span><span class="p">]).</span>
<span class="k">SET</span> <span class="nv">foo</span><span class="p">:</span><span class="nv">ACTIVE</span> <span class="ow">to</span> <span class="nb">TRUE</span><span class="p">.</span>
</pre></div>
</div>
<p>Finding two parts by index, then transferring all of the oxidizer from
part 1 to part 2:</p>
<div class="highlight-kerboscript notranslate"><div class="highlight"><pre><span></span><span class="k">SET</span> <span class="nv">foo</span> <span class="ow">TO</span> <span class="nv">TRANSFERALL</span><span class="p">(</span><span class="s">"OXIDIZER"</span><span class="p">,</span> <span class="nv">SHIP</span><span class="p">:</span><span class="nv">PARTS</span><span class="p">[</span><span class="mf">0</span><span class="p">],</span> <span class="nv">SHIP</span><span class="p">:</span><span class="nv">PARTS</span><span class="p">[</span><span class="mf">1</span><span class="p">]).</span>
<span class="k">SET</span> <span class="nv">foo</span><span class="p">:</span><span class="nv">ACTIVE</span> <span class="ow">to</span> <span class="nb">TRUE</span><span class="p">.</span>
</pre></div>
</div>
<p>Finding two lists of parts by tag, then transferring 100 units of liquidfuel:</p>
<div class="highlight-kerboscript notranslate"><div class="highlight"><pre><span></span><span class="k">SET</span> <span class="nv">sourceParts</span> <span class="ow">to</span> <span class="nv">SHIP</span><span class="p">:</span><span class="nv">PARTSDUBBED</span><span class="p">(</span><span class="s">"fooPart"</span><span class="p">).</span>
<span class="k">SET</span> <span class="nv">destinationParts</span> <span class="ow">to</span> <span class="nv">SHIP</span><span class="p">:</span><span class="nv">PARTSDUBBED</span><span class="p">(</span><span class="s">"barPart"</span><span class="p">).</span>
<span class="k">SET</span> <span class="nv">foo</span> <span class="ow">TO</span> <span class="nv">TRANSFER</span><span class="p">(</span><span class="s">"liquidfuel"</span><span class="p">,</span> <span class="nv">sourceParts</span><span class="p">,</span> <span class="nv">destinationParts</span><span class="p">,</span> <span class="mf">100</span><span class="p">).</span>
<span class="k">SET</span> <span class="nv">foo</span><span class="p">:</span><span class="nv">ACTIVE</span> <span class="ow">to</span> <span class="nb">TRUE</span><span class="p">.</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="communication.html" class="btn btn-neutral float-left" title="Communication" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../structures.html" class="btn btn-neutral float-right" title="Structure Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>© <a href="../copyright.html">Copyright</a> 2013-2021, Developed and maintained by kOS Team, Originally By Nivekk.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>