Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------
- // Class: Config_TaggedConfigProperty
- // Author: Musashi
- // Defines a config entry for a config value with meta information for automatic localization tags
- //-----------------------------------------------------------
- class Config_TaggedConfigProperty extends Object;
- var protectedwrite vector VectorValue;
- var protectedwrite string Value;
- var protectedwrite array<string> ArrayValue;
- var protectedwrite string Namespace;
- var protectedwrite string TagFunction;
- var protectedwrite string TagParam;
- var protectedwrite string TagPrefix;
- var protectedwrite string TagSuffix;
- var protectedwrite bool bIsVector;
- var protectedwrite bool bIs${1}< ${3} >
- public function string GetTagParam()
- {
- return TagParam;;
- }
- public function string GetValue()
- {
- return Value;
- }
- public function vector GetVectorValue()
- {
- return VectorValue;
- }
- public function array<string> GetArrayValue()
- {
- `LOG(default.class @ GetFuncName() @ `ShowVar(ArrayValue[0]),, 'RPG');
- return ArrayValue;
- }
- public function string GetTagValue()
- {
- local LWTuple Tuple;
- local string TagValue;
- if (bIsVector)
- {
- TagValue = VectorValue.X $ "," $ VectorValue.Y $ "," $ VectorValue.Z;
- }
- else if (bIsArray && ArrayValue.Length > 0)
- {
- TagValue = Join(ArrayValue, ", ");
- }
- else
- {
- TagValue = Value;
- }
- if (!bIsVector &&
- TagFunction != "")
- {
- Tuple = new class'LWTuple';
- Tuple.Id = 'TagFunction';
- Tuple.Data.Add(1);
- Tuple.Data[0].kind = LWTVString;
- Tuple.Data[0].s = "";
- `XEVENTMGR.TriggerEvent(name(TagFunction), Tuple, self);
- if (Tuple.Data[0].s != "")
- {
- TagValue = Tuple.Data[0].s;
- }
- }
- return TagPrefix $ TagValue $ TagSuffix;
- }
- function JSonObject Serialize()
- {
- local JsonObject JsonObject;
- JSonObject = new () class'JsonObject';
- if (ArrayValue.Length > 0)
- {
- bIsArray = true;
- JSonObject.SetStringValue("ArrayValue", Join(ArrayValue, ", "));
- }
- JSonObject.SetStringValue("VectorValue", "{\"X\":" $ VectorValue.X $ ",\"Y\":" $ VectorValue.Y $ ",\"Z\":" $ VectorValue.Z $ "}");
- JSonObject.SetStringValue("Value", Value);
- JSonObject.SetStringValue("Namespace", Namespace);
- JSonObject.SetStringValue("TagFunction", TagFunction);
- JSonObject.SetStringValue("TagParam", TagParam);
- JSonObject.SetStringValue("TagPrefix", TagPrefix);
- JSonObject.SetStringValue("TagSuffix", TagSuffix);
- return JSonObject;
- }
- function Deserialize(JSonObject Data)
- {
- local JSonObject VectorJson;
- local string UnserializedArrayValue;
- VectorJson = Data.GetObject("VectorValue");
- if (VectorJson != none)
- {
- bIsVector = true;
- VectorValue.X = VectorJson.GetIntValue("X");
- VectorValue.Y = VectorJson.GetIntValue("Y");
- VectorValue.Z = VectorJson.GetIntValue("Z");
- }
- UnserializedArrayValue = Data.GetStringValue("ArrayValue");
- if (UnserializedArrayValue != "")
- {
- ArrayValue = SplitString(Repl(Repl(UnserializedArrayValue, " ", ""), " ", ""), ",", true);
- bIsArray = true;
- }
- Value = Data.GetStringValue("Value");
- Namespace = Data.GetStringValue("Namespace");
- TagFunction = Data.GetStringValue("TagFunction");
- TagParam = Data.GetStringValue("TagParam");
- TagPrefix = Data.GetStringValue("TagPrefix");
- TagSuffix = Data.GetStringValue("TagSuffix");
- }
- function static string Join(array<string> StringArray, optional string Delimiter = ",", optional bool bIgnoreBlanks = true)
- {
- local string Result;
- JoinArray(StringArray, Result, Delimiter, bIgnoreBlanks);
- return Result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement