public Value(DsgVarValue value)
 {
     this.val = value;
     if (value != null)
     {
         InitValue(value);
     }
 }
            public void InitValue(DsgVarValue value)
            {
                this.type = value.type;

                if (value.valueArray != null)
                {
                    AsArray = new Value[value.arrayLength];
                    for (int i = 0; i < AsArray.Length; i++)
                    {
                        AsArray[i] = new Value(value.valueArray[i]);
                    }
                }
            }
 public DsgVarEditableEntry(DsgVarInfoEntry entry, DsgVarValue current, DsgVarValue initial, DsgVarValue model)
 {
     this.entry = entry;
     if (current != null)
     {
         valueCurrent = new Value(current);
     }
     if (initial != null)
     {
         valueInitial = new Value(initial);
     }
     if (model != null)
     {
         valueModel = new Value(model);
     }
 }
Beispiel #4
0
        public EDsgVar GetExportableDsgVar(DsgMem dsgMem, DsgVar dsgVar, int infoIndex)
        {
            DsgVarInfoEntry infoEntry = dsgVar.dsgVarInfos[infoIndex];
            EDsgVar         d         = new EDsgVar();

            d.type = infoEntry.type;

            if (dsgMem.values == null || dsgMem.values[infoIndex] == null)
            {
                return(d);
            }
            DsgVarValue val = dsgMem.values[infoIndex];

            d.value = GetExportableDsgVarValueString(val);

            return(d);
        }
Beispiel #5
0
        public static T GetValue <T>(DsgVarValue dsg)
        {
            string name = typeof(T).Name;

            if (typeof(PersoController).IsAssignableFrom(typeof(T)))
            {
                name = "PersoController";
            }

            switch (name)
            {
            case "Boolean":
                return((T)(object)dsg.valueBool);

            case "SByte":
                return((T)(object)dsg.valueByte);

            case "Byte":
                return((T)(object)dsg.valueUByte);

            case "Int16":
                return((T)(object)dsg.valueShort);

            case "UInt16":
                return((T)(object)dsg.valueUShort);

            case "Int32":
                return((T)(object)dsg.valueInt);

            case "UInt32":
                return((T)(object)dsg.valueUInt);

            case "Single":
                return((T)(object)dsg.valueFloat);

            case "Vector3":
                return((T)(object)dsg.valueVector);

            case "String":
                return((T)(object)("TextRef(" + dsg.valueText + ")"));

            case "WaypointGraph": if (dsg.valueGraph == null)
                {
                    return(default);
                }
Beispiel #6
0
        public string GetExportableDsgVarValueString(DsgVarValue val)
        {
            string value = "";

            switch (val.type)
            {
            default:
                value = val.ToString();
                break;

            case DsgVarType.GameMaterial:
                value = HashUtils.MD5Hash(val.valueGameMaterial?.ToJSON());
                break;

            case DsgVarType.VisualMaterial:
                value = HashUtils.MD5Hash(val.valueVisualMaterial?.ToJSON());
                break;

            case DsgVarType.Perso:
                value = val.valuePerso?.namePerso;
                break;

            case DsgVarType.PersoArray:
                List <string> persoNames = new List <string>();
                foreach (DsgVarValue child in val.valueArray)
                {
                    Perso perso = child.valuePerso;
                    if (perso != null)
                    {
                        persoNames.Add(perso.namePerso);
                    }
                    else
                    {
                        persoNames.Add("NullPointer");
                    }
                }
                value = "{ " + string.Join(", ", persoNames) + " }";
                break;

            case DsgVarType.WayPointArray:     // TODO
                break;

            case DsgVarType.TextArray:     // TODO: check
                goto default;

            //break;
            case DsgVarType.TextRefArray:     // TODO: check
                goto default;

            case DsgVarType.GraphArray:
                break;

            case DsgVarType.SOLinksArray:
                break;

            case DsgVarType.SoundEventArray:     // TODO: check
                goto default;

            case DsgVarType.VisualMatArray:
                break;

            case DsgVarType.Way:
                break;

            case DsgVarType.ActionArray:     // TODO
                break;

            case DsgVarType.SuperObjectArray:     // TODO
                break;
            }

            return(value);
        }