Пример #1
0
        public static void triggerChangeDelegate(SimCapiPointArray simCapiPointArray, ChangedBy changedBy)
        {
            if (simCapiPointArray._pointArrayChangedDelegate == null)
            {
                return;
            }

            simCapiPointArray._pointArrayChangedDelegate(simCapiPointArray._pointList.ToArray(), changedBy);
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
 public static void setInternalValue(SimCapiPointArray simCapiPointArray, UnityEngine.Vector2[] array)
 {
     simCapiPointArray._pointList.Clear();
     simCapiPointArray._pointList.AddRange(array);
 }