Adventure Creator Wikia
(Created page with "This script allows Global Variables made with AC to be linked with Application and Saved variables made with [https://assetstore.unity.com/packages/tools/visual-scripting/bolt...")
 
(Updated to latest AC)
Tag: Visual edit
Line 9: Line 9:
   
 
BoltVariableLink.cs
 
BoltVariableLink.cs
  +
using System.Collections;<br>
<span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> System</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Collections</span><span style="color:#d3d7ce;">;</span>
 
  +
using System.Collections.Generic;<br>
<span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> System</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Collections</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Generic</span><span style="color:#d3d7ce;">;</span>
 
  +
using UnityEngine;<br>
<span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> UnityEngine</span><span style="color:#d3d7ce;">;</span>
 
  +
using AC;<br>
<span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> AC</span><span style="color:#d3d7ce;">;</span>
 
  +
using Bolt;<br>
<span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> Bolt</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
 
  +
public class BoltVariableLink : MonoBehaviour<br>
<span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">class</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableLink</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">:</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">MonoBehaviour</span>
 
  +
{<br>
<span style="color:#d3d7ce;">{</span>
 
  +
<br>
 
  +
[SerializeField] BoltVarLink[] boltVarLinks;<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">SerializeField</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVarLink</span><span style="color:#d3d7ce;">[]</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">boltVarLinks</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
 
  +
<br>
 
  +
private void OnEnable ()<br>
<span style="color:#d3d7ce;">    </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnEnable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span>
 
  +
{<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">{</span>
 
  +
EventManager.OnDownloadVariable += OnDownload;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#8ae233;">EventManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">OnDownloadVariable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">+=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnDownload</span><span style="color:#d3d7ce;">;</span>
 
  +
EventManager.OnUploadVariable += OnUpload;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#8ae233;">EventManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">OnUploadVariable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">+=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnUpload</span><span style="color:#d3d7ce;">;</span>
 
  +
}<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">}</span>
 
  +
<br>
 
  +
<br>
 
  +
private void OnDisable ()<br>
<span style="color:#d3d7ce;">    </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnDisable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span>
 
  +
{<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">{</span>
 
  +
EventManager.OnDownloadVariable -= OnDownload;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#8ae233;">EventManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">OnDownloadVariable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnDownload</span><span style="color:#d3d7ce;">;</span>
 
  +
EventManager.OnUploadVariable -= OnUpload;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#8ae233;">EventManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">OnUploadVariable</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnUpload</span><span style="color:#d3d7ce;">;</span>
 
  +
}<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">}</span>
 
  +
<br>
 
  +
<br>
 
  +
private void OnDownload (GVar variable, AC.Variables variables)<br>
<span style="color:#d3d7ce;">    </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnDownload</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">GVar</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">{</span>
 
  +
foreach (BoltVarLink boltVarLink in boltVarLinks)<br>
<span style="color:#d3d7ce;">        </span><span style="font-weight:700;color:#ad7fa7;">foreach</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">BoltVarLink</span><span style="color:#d3d7ce;"> boltVarLink </span><span style="font-weight:700;color:#ad7fa7;">in</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">boltVarLinks</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">{</span>
 
  +
boltVarLink.Download (variable);<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">boltVarLink</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Download</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
}<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">}</span>
 
  +
<br>
 
  +
<br>
 
  +
private void OnUpload (GVar variable, AC.Variables variables)<br>
<span style="color:#d3d7ce;">    </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">OnUpload</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">GVar</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">{</span>
 
  +
foreach (BoltVarLink boltVarLink in boltVarLinks)<br>
<span style="color:#d3d7ce;">        </span><span style="font-weight:700;color:#ad7fa7;">foreach</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">BoltVarLink</span><span style="color:#d3d7ce;"> boltVarLink </span><span style="font-weight:700;color:#ad7fa7;">in</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">boltVarLinks</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">{</span>
 
  +
boltVarLink.Upload (variable);<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">boltVarLink</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Upload</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
}<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">}</span>
 
  +
<br>
 
  +
<br>
 
  +
[System.Serializable] private class BoltVarLink<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">System</span><span style="color:#d3d7ce;">.</span><span style="color:#8ae233;">Serializable</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">class</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVarLink</span>
 
  +
{<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">{</span>
 
  +
<br>
 
  +
[SerializeField] private string boltVariableName = "";<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">SerializeField</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">"</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">;</span>
 
  +
[SerializeField] private BoltVariableType boltVariableType = BoltVariableType.Application;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">SerializeField</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">boltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">;</span>
 
  +
private enum BoltVariableType { Application, Saved };<br>
<span style="color:#d3d7ce;">        </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">enum</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span><span style="color:#d3d7ce;"> Application</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> Saved </span><span style="color:#d3d7ce;">}</span><span style="color:#d3d7ce;">;</span>
 
  +
[SerializeField] private int acVariableID = 0;<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">SerializeField</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">private</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">acVariableID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
 
  +
<br>
 
  +
public void Download (GVar variable)<br>
<span style="color:#d3d7ce;">        </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">Download</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">GVar</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">{</span>
 
  +
if (!string.IsNullOrEmpty (boltVariableName) && variable.id == acVariableID)<br>
<span style="color:#d3d7ce;">            </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IsNullOrEmpty</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">id</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">acVariableID</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">{</span>
 
  +
if (boltVariableType == BoltVariableType.Application)<br>
<span style="color:#d3d7ce;">                </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">{</span>
 
  +
switch (variable.type)<br>
<span style="color:#d3d7ce;">                    </span><span style="font-weight:700;color:#ffffff;">switch</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">type</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">{</span>
 
  +
case VariableType.Integer:<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Integer</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.PopUp:<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">PopUp</span><span style="color:#d3d7ce;">:</span>
 
  +
variable.IntegerValue = (int) Bolt.Variables.Application.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IntegerValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
 
  +
case VariableType.Boolean:<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Boolean</span><span style="color:#d3d7ce;">:</span>
 
  +
variable.BooleanValue = (bool) Bolt.Variables.Application.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">BooleanValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
<span style="color:#d3d7ce;">                    </span>
 
  +
<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Float:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.FloatValue = (float) Bolt.Variables.Application.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
 
  +
<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">String</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.String:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">TextValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.TextValue = (string) Bolt.Variables.Application.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
 
  +
<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Vector3:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3Value</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.Vector3Value = (Vector3) Bolt.Variables.Application.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">                </span><span style="font-weight:700;color:#ffffff;">else</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">)</span>
 
  +
else if (boltVariableType == BoltVariableType.Saved)<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">{</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                    </span><span style="font-weight:700;color:#ffffff;">switch</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">type</span><span style="color:#d3d7ce;">)</span>
 
  +
switch (variable.type)<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">{</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Integer</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Integer:<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">PopUp</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.PopUp:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IntegerValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.IntegerValue = (int) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
 
  +
<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Boolean</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Boolean:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">BooleanValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.BooleanValue = (bool) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                    </span>
 
  +
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Float:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.FloatValue = (float) Bolt.Variables.Saved.Get (boltVariableName);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">String</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">TextValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.String:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.TextValue = (string) Bolt.Variables.Saved.Get (boltVariableName);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3Value</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Vector3:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.Vector3Value = (Vector3) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">}</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
 
  +
}<br>
 
  +
<br>
<span style="color:#d3d7ce;">        </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">Upload</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">GVar</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">)</span>
 
  +
<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">{</span>
 
  +
public void Upload (GVar variable)<br>
<span style="color:#d3d7ce;">            </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IsNullOrEmpty</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">id</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">acVariableID</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">{</span>
 
  +
if (!string.IsNullOrEmpty (boltVariableName) && variable.id == acVariableID)<br>
<span style="color:#d3d7ce;">                </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">{</span>
 
  +
if (boltVariableType == BoltVariableType.Application)<br>
<span style="color:#d3d7ce;">                    </span><span style="font-weight:700;color:#ffffff;">switch</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">type</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">{</span>
 
  +
switch (variable.type)<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Integer</span><span style="color:#d3d7ce;">:</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">PopUp</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Integer:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Set</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IntegerValue</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.PopUp:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
Bolt.Variables.Application.Set (boltVariableName, variable.IntegerValue);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Boolean</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Set</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">BooleanValue</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Boolean:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
Bolt.Variables.Application.Set (boltVariableName, variable.BooleanValue);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Set</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatValue</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Float:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
Bolt.Variables.Application.Set (boltVariableName, variable.FloatValue);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">String</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Set</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">TextValue</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.String:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
Bolt.Variables.Application.Set (boltVariableName, variable.TextValue);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Application</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Set</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3Value</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Vector3:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
Bolt.Variables.Application.Set (boltVariableName, variable.Vector3Value);<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">}</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">                </span><span style="font-weight:700;color:#ffffff;">else</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">BoltVariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">)</span>
 
  +
}<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">{</span>
 
  +
else if (boltVariableType == BoltVariableType.Saved)<br>
<span style="color:#d3d7ce;">                    </span><span style="font-weight:700;color:#ffffff;">switch</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">type</span><span style="color:#d3d7ce;">)</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">{</span>
 
  +
switch (variable.type)<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Integer</span><span style="color:#d3d7ce;">:</span>
 
  +
{<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">PopUp</span><span style="color:#d3d7ce;">:</span>
 
  +
case VariableType.Integer:<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IntegerValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.PopUp:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.IntegerValue = (int) Bolt.Variables.Saved.Get (boltVariableName);<br>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Boolean</span><span style="color:#d3d7ce;">:</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">BooleanValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Boolean:<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
variable.BooleanValue = (bool) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                    </span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">:</span>
 
  +
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Float:<br>
 
  +
variable.FloatValue = (float) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">String</span><span style="color:#d3d7ce;">:</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">TextValue</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">string</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.String:<br>
 
  +
variable.TextValue = (string) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                        </span><span style="font-weight:700;color:#ffffff;">case</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">VariableType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3</span><span style="color:#d3d7ce;">:</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">                            </span><span style="color:#d3d7ce;">variable</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Vector3Value</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Variables</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Saved</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Get</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">boltVariableName</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span>
 
  +
<br>
<span style="color:#d3d7ce;">                            </span><span style="font-weight:700;color:#ad7fa7;">break</span><span style="color:#d3d7ce;">;</span>
 
  +
case VariableType.Vector3:<br>
<span style="color:#d3d7ce;">                    </span><span style="color:#d3d7ce;">}</span>
 
  +
variable.Vector3Value = (Vector3) Bolt.Variables.Saved.Get (boltVariableName);<br>
<span style="color:#d3d7ce;">                </span><span style="color:#d3d7ce;">}</span>
 
  +
break;<br>
<span style="color:#d3d7ce;">            </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
<span style="color:#d3d7ce;">        </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
 
  +
}<br>
<span style="color:#d3d7ce;">    </span><span style="color:#d3d7ce;">}</span>
 
  +
}<br>
 
  +
<br>
<span style="color:#d3d7ce;">}</span>
 
  +
}<br>
  +
<br>
  +
}
 
[[Category:Integrations]]
 
[[Category:Integrations]]

Revision as of 08:23, 4 June 2020

This script allows Global Variables made with AC to be linked with Application and Saved variables made with Bolt.

To use it:

  1. Create a new Global Variable in AC's Variables Manager, and set it's Link to field to Custom Script.
  2. Create a new Application or Saved variable in Bolt's Variables window, and have it match the type made in AC (Float, Boolean, etc)
  3. Paste the code below into a C# script named BoltVariableLink.cs, and attach it to a GameObject in the scene
  4. In the component's Inspector, increase the Size field by 1, and fill in the fields that appear.  The AC Variable ID is the number that appears beside a variable's name in the Variables Manager

The variables will now be linked - so changing its value in one asset will update the value of its associated variable in the other.

BoltVariableLink.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AC;
using Bolt;

public class BoltVariableLink : MonoBehaviour
{

[SerializeField] BoltVarLink[] boltVarLinks;


private void OnEnable ()
{
EventManager.OnDownloadVariable += OnDownload;
EventManager.OnUploadVariable += OnUpload;
}


private void OnDisable ()
{
EventManager.OnDownloadVariable -= OnDownload;
EventManager.OnUploadVariable -= OnUpload;
}


private void OnDownload (GVar variable, AC.Variables variables)
{
foreach (BoltVarLink boltVarLink in boltVarLinks)
{
boltVarLink.Download (variable);
}
}


private void OnUpload (GVar variable, AC.Variables variables)
{
foreach (BoltVarLink boltVarLink in boltVarLinks)
{
boltVarLink.Upload (variable);
}
}


[System.Serializable] private class BoltVarLink
{

[SerializeField] private string boltVariableName = "";
[SerializeField] private BoltVariableType boltVariableType = BoltVariableType.Application;
private enum BoltVariableType { Application, Saved };
[SerializeField] private int acVariableID = 0;


public void Download (GVar variable)
{
if (!string.IsNullOrEmpty (boltVariableName) && variable.id == acVariableID)
{
if (boltVariableType == BoltVariableType.Application)
{
switch (variable.type)
{
case VariableType.Integer:
case VariableType.PopUp:
variable.IntegerValue = (int) Bolt.Variables.Application.Get (boltVariableName);
break;

case VariableType.Boolean:
variable.BooleanValue = (bool) Bolt.Variables.Application.Get (boltVariableName);
break;

case VariableType.Float:
variable.FloatValue = (float) Bolt.Variables.Application.Get (boltVariableName);
break;

case VariableType.String:
variable.TextValue = (string) Bolt.Variables.Application.Get (boltVariableName);
break;

case VariableType.Vector3:
variable.Vector3Value = (Vector3) Bolt.Variables.Application.Get (boltVariableName);
break;
}
}
else if (boltVariableType == BoltVariableType.Saved)
{
switch (variable.type)
{
case VariableType.Integer:
case VariableType.PopUp:
variable.IntegerValue = (int) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Boolean:
variable.BooleanValue = (bool) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Float:
variable.FloatValue = (float) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.String:
variable.TextValue = (string) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Vector3:
variable.Vector3Value = (Vector3) Bolt.Variables.Saved.Get (boltVariableName);
break;
}
}
}
}


public void Upload (GVar variable)
{
if (!string.IsNullOrEmpty (boltVariableName) && variable.id == acVariableID)
{
if (boltVariableType == BoltVariableType.Application)
{
switch (variable.type)
{
case VariableType.Integer:
case VariableType.PopUp:
Bolt.Variables.Application.Set (boltVariableName, variable.IntegerValue);
break;

case VariableType.Boolean:
Bolt.Variables.Application.Set (boltVariableName, variable.BooleanValue);
break;

case VariableType.Float:
Bolt.Variables.Application.Set (boltVariableName, variable.FloatValue);
break;

case VariableType.String:
Bolt.Variables.Application.Set (boltVariableName, variable.TextValue);
break;

case VariableType.Vector3:
Bolt.Variables.Application.Set (boltVariableName, variable.Vector3Value);
break;
}
}
else if (boltVariableType == BoltVariableType.Saved)
{
switch (variable.type)
{
case VariableType.Integer:
case VariableType.PopUp:
variable.IntegerValue = (int) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Boolean:
variable.BooleanValue = (bool) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Float:
variable.FloatValue = (float) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.String:
variable.TextValue = (string) Bolt.Variables.Saved.Get (boltVariableName);
break;

case VariableType.Vector3:
variable.Vector3Value = (Vector3) Bolt.Variables.Saved.Get (boltVariableName);
break;
}
}
}
}

}

}