public void exposedValueChanged(SimCapiExposableValue exposableValue, SimCapiData simCapiData) { if (_valueMap.ContainsKey(exposableValue.exposedName) == false) { return; } _transporter.setValue(exposableValue.exposedName, simCapiData); }
public static void invokeInvalidValueRecivedDelegate(SimCapiExposableValue simCapiExposableValue) { if (simCapiExposableValue._invalidValueRecivedDelegate == null) { return; } simCapiExposableValue._invalidValueRecivedDelegate(); }
public void logModel() { string output = ""; foreach (KeyValuePair <string, SimCapiExposableValue> keyPair in _valueMap) { SimCapiExposableValue value = keyPair.Value; output += value.ToString() + "\n"; } SimCapiConsole.log(output); }
public bool exposeValue(SimCapiExposableValue exposableValue, SimCapiValue simCapiValue) { if (_valueMap.ContainsKey(simCapiValue.key) == true) { throw new System.Exception("Value already exposed under the key/name: " + exposableValue.exposedName); } _valueMap[simCapiValue.key] = exposableValue; _transporter.expose(simCapiValue); return(true); }
void updateValueInModel(SimCapiValue simCapiValue) { if (_valueMap.ContainsKey(simCapiValue.key) == false) { SimCapiConsole.log("Key not found in model"); return; } SimCapiExposableValue exposableValue = _valueMap[simCapiValue.key]; if (exposableValue == null) { SimCapiConsole.log("Error no linked exposed value, This should not occur"); return; } if (exposableValue.GetType() == typeof(SimCapiNumber)) { SimCapiNumber number = (SimCapiNumber)exposableValue; float?value = simCapiValue.value.getNumber(); if (value == null) { SimCapiExposableValue.invokeInvalidValueRecivedDelegate(exposableValue); } else { SimCapiNumber.setInternalValue(number, value.Value); SimCapiNumber.triggerChangeDelegate(number, ChangedBy.AELP); } } else if (exposableValue.GetType() == typeof(SimCapiString)) { SimCapiString exposableString = (SimCapiString)exposableValue; SimCapiString.setInternalValue(exposableString, simCapiValue.value.ToString()); SimCapiString.triggerChangeDelegate(exposableString, ChangedBy.AELP); } else if (exposableValue.GetType() == typeof(SimCapiStringArray)) { SimCapiStringArray stringArray = (SimCapiStringArray)exposableValue; string[] sArray = simCapiValue.value.getStringArray(); if (sArray == null) { SimCapiExposableValue.invokeInvalidValueRecivedDelegate(exposableValue); } else { stringArray.setWithStringArray(sArray); SimCapiStringArray.triggerChangeDelegate(stringArray, ChangedBy.AELP); } } else if (exposableValue.GetType() == typeof(SimCapiBoolean)) { SimCapiBoolean boolean = (SimCapiBoolean)exposableValue; bool?value = simCapiValue.value.getBool(); if (value == null) { SimCapiExposableValue.invokeInvalidValueRecivedDelegate(exposableValue); } else { boolean.setValue(value.Value); SimCapiBoolean.triggerChangeDelegate(boolean, ChangedBy.AELP); } } else if (typeof(SimCapiGenericEnum).IsAssignableFrom(exposableValue.GetType())) { SimCapiGenericEnum simCapiGenericEnum = (SimCapiGenericEnum)exposableValue; bool valid = SimCapiGenericEnum.setInternalValue(simCapiGenericEnum, simCapiValue.value.ToString()); if (valid == false) { UnityEngine.Debug.LogError("simCapiValue is not a valid Enum"); return; } else { SimCapiGenericEnum.triggerChangeDelegate(simCapiGenericEnum, ChangedBy.AELP); } } else if (exposableValue.GetType() == typeof(SimCapiMathExpression)) { SimCapiMathExpression mathExpression = (SimCapiMathExpression)exposableValue; SimCapiMathExpression.InternalUseOnly.setInternalValue(mathExpression, simCapiValue.value.ToString()); SimCapiMathExpression.triggerChangeDelegate(mathExpression, ChangedBy.AELP); } else if (exposableValue.GetType() == typeof(SimCapiPointArray)) { SimCapiPointArray pointArray = (SimCapiPointArray)exposableValue; UnityEngine.Vector2[] vector2Array = simCapiValue.value.getPointArray(); if (vector2Array == null) { SimCapiConsole.log("Invalid PointArrayData!"); } else { SimCapiPointArray.setInternalValue(pointArray, vector2Array); SimCapiPointArray.triggerChangeDelegate(pointArray, ChangedBy.AELP); } } else { SimCapiConsole.log("Exposed value not set"); } }