diff --git a/DavaStorage-Helper.cs b/DavaStorage-Helper.cs new file mode 100644 index 0000000..133a93d --- /dev/null +++ b/DavaStorage-Helper.cs @@ -0,0 +1,51 @@ +//DATA STORE LOGIC + +list getDataListFromDataStorage(key _storage) +{ + return llCSV2List(osGetDataValue("game.inventar.objekt." + _storage + ".inventar")); +} + +saveDataListToDataStorage(key _storage, list _dataList) +{ + string _csv = llList2CSV(_dataList); + osSetDataValue("game.inventar.objekt." + _storage + ".inventar", _csv); +} + +integer checkDataEntryInDataList(list _dataList, string _key) +{ + integer _inListPosition = llListFindList(_dataList, [_key]); + + if(_inListPosition == -1) + return FALSE; + + return TRUE; +} + +string getDataEntryFromDataList(list _dataList, string _key) +{ + integer _inListPosition = llListFindList(_dataList, [_key]); + + if(_inListPosition == -1) + return ""; + + return llList2String(_dataList, _inListPosition + 1); +} + +list setDataEntryInDataList(list _dataList, string _key, string _value) +{ + integer _inListPosition = llListFindList(_dataList, [_key]); + + if(_inListPosition == -1) + { + _dataList += [_key, _value]; + return _dataList; + } + + return llListReplaceList(_dataList, [_value], _inListPosition + 1, _inListPosition + 1); +} + +//Example +list _dataStorage = getDataListFromDataStorage("storage.example"); +_dataStorage = setDataEntryInDataList(_dataStorage, "test.entry", "dummy"); +llOwnerSay(getDataEntryFromDataList(_dataStorage, "test.entry")); +saveDataListToDataStorage("storage.example", _dataStorage); \ No newline at end of file