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); } }
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); }
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); }
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); }