Advertisement
Guest User

Untitled

a guest
Jun 8th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //-----------------------------------------------------------
  2. //  Class:  Config_TaggedConfigProperty
  3. //  Author: Musashi
  4. //  Defines a config entry for a config value with meta information for automatic localization tags
  5. //-----------------------------------------------------------
  6.  
  7. class Config_TaggedConfigProperty extends Object;
  8.  
  9. var protectedwrite vector VectorValue;
  10. var protectedwrite string Value;
  11. var protectedwrite array<string> ArrayValue;
  12. var protectedwrite string Namespace;
  13. var protectedwrite string TagFunction;
  14. var protectedwrite string TagParam;
  15. var protectedwrite string TagPrefix;
  16. var protectedwrite string TagSuffix;
  17.  
  18. var protectedwrite bool bIsVector;
  19. var protectedwrite bool bIs${1}< ${3} >
  20.  
  21. public function string GetTagParam()
  22. {
  23.     return TagParam;;
  24. }
  25.  
  26. public function string GetValue()
  27. {
  28.     return Value;
  29. }
  30.  
  31. public function vector GetVectorValue()
  32. {
  33.     return VectorValue;
  34. }
  35.  
  36. public function array<string> GetArrayValue()
  37. {
  38.     `LOG(default.class @ GetFuncName() @ `ShowVar(ArrayValue[0]),, 'RPG');
  39.     return ArrayValue;
  40. }
  41.  
  42. public function string GetTagValue()
  43. {
  44.     local LWTuple Tuple;
  45.     local string TagValue;
  46.  
  47.     if (bIsVector)
  48.     {
  49.         TagValue = VectorValue.X $ "," $ VectorValue.Y $ "," $ VectorValue.Z;
  50.     }
  51.     else if (bIsArray && ArrayValue.Length > 0)
  52.     {
  53.         TagValue = Join(ArrayValue, ", ");
  54.     }
  55.     else
  56.     {
  57.         TagValue = Value;
  58.     }
  59.  
  60.     if (!bIsVector &&
  61.         TagFunction != "")
  62.     {
  63.         Tuple = new class'LWTuple';
  64.         Tuple.Id = 'TagFunction';
  65.         Tuple.Data.Add(1);
  66.         Tuple.Data[0].kind = LWTVString;
  67.         Tuple.Data[0].s = "";
  68.  
  69.         `XEVENTMGR.TriggerEvent(name(TagFunction), Tuple, self);
  70.  
  71.         if (Tuple.Data[0].s != "")
  72.         {
  73.             TagValue = Tuple.Data[0].s;
  74.         }
  75.     }
  76.  
  77.     return TagPrefix $ TagValue $ TagSuffix;
  78. }
  79.  
  80.  
  81. function JSonObject Serialize()
  82. {
  83.     local JsonObject JsonObject;
  84.  
  85.     JSonObject = new () class'JsonObject';
  86.  
  87.     if (ArrayValue.Length > 0)
  88.     {
  89.         bIsArray = true;
  90.         JSonObject.SetStringValue("ArrayValue", Join(ArrayValue, ", "));
  91.     }
  92.    
  93.     JSonObject.SetStringValue("VectorValue", "{\"X\":" $ VectorValue.X $ ",\"Y\":" $ VectorValue.Y $ ",\"Z\":" $ VectorValue.Z $ "}");
  94.     JSonObject.SetStringValue("Value", Value);
  95.     JSonObject.SetStringValue("Namespace", Namespace);
  96.     JSonObject.SetStringValue("TagFunction", TagFunction);
  97.     JSonObject.SetStringValue("TagParam", TagParam);
  98.     JSonObject.SetStringValue("TagPrefix", TagPrefix);
  99.     JSonObject.SetStringValue("TagSuffix", TagSuffix);
  100.  
  101.     return JSonObject;
  102. }
  103.  
  104. function Deserialize(JSonObject Data)
  105. {
  106.     local JSonObject VectorJson;
  107.     local string UnserializedArrayValue;
  108.  
  109.     VectorJson = Data.GetObject("VectorValue");
  110.     if (VectorJson != none)
  111.     {
  112.         bIsVector = true;
  113.         VectorValue.X = VectorJson.GetIntValue("X");
  114.         VectorValue.Y = VectorJson.GetIntValue("Y");
  115.         VectorValue.Z = VectorJson.GetIntValue("Z");
  116.     }
  117.  
  118.     UnserializedArrayValue = Data.GetStringValue("ArrayValue");
  119.     if (UnserializedArrayValue != "")
  120.     {
  121.         ArrayValue = SplitString(Repl(Repl(UnserializedArrayValue, " ", ""), "  ", ""), ",", true);
  122.         bIsArray = true;
  123.     }
  124.  
  125.     Value = Data.GetStringValue("Value");
  126.     Namespace = Data.GetStringValue("Namespace");
  127.     TagFunction = Data.GetStringValue("TagFunction");
  128.     TagParam = Data.GetStringValue("TagParam");
  129.     TagPrefix = Data.GetStringValue("TagPrefix");
  130.     TagSuffix = Data.GetStringValue("TagSuffix");
  131. }
  132.  
  133.  
  134. function static string Join(array<string> StringArray, optional string Delimiter = ",", optional bool bIgnoreBlanks = true)
  135. {
  136.     local string Result;
  137.  
  138.     JoinArray(StringArray, Result, Delimiter, bIgnoreBlanks);
  139.  
  140.     return Result;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement