Last active
February 18, 2024 20:21
-
-
Save Draco18s/a1d61eb54fe26f54cbbcf4945a2429e0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"SaveName": "", | |
"Date": "", | |
"VersionNumber": "", | |
"GameMode": "", | |
"GameType": "", | |
"GameComplexity": "", | |
"Tags": [], | |
"Gravity": 0.5, | |
"PlayArea": 0.5, | |
"Table": "", | |
"Sky": "", | |
"Note": "", | |
"TabStates": {}, | |
"LuaScript": "", | |
"LuaScriptState": "", | |
"XmlUI": "", | |
"ObjectStates": [ | |
{ | |
"GUID": "dca203", | |
"Name": "Custom_Tile", | |
"Transform": { | |
"posX": 53.52207, | |
"posY": 1.481497, | |
"posZ": 22.5702553, | |
"rotX": 8.54998052E-06, | |
"rotY": 179.997009, | |
"rotZ": -8.26219839E-05, | |
"scaleX": 4.15, | |
"scaleY": 1.0, | |
"scaleZ": 4.15 | |
}, | |
"Nickname": "Crafting Lookup", | |
"Description": "", | |
"GMNotes": "", | |
"AltLookAngle": { | |
"x": 0.0, | |
"y": 0.0, | |
"z": 0.0 | |
}, | |
"ColorDiffuse": { | |
"r": 1.0, | |
"g": 1.0, | |
"b": 1.0 | |
}, | |
"LayoutGroupSortIndex": 0, | |
"Value": 0, | |
"Locked": false, | |
"Grid": true, | |
"Snap": true, | |
"IgnoreFoW": false, | |
"MeasureMovement": false, | |
"DragSelectable": true, | |
"Autoraise": true, | |
"Sticky": true, | |
"Tooltip": true, | |
"GridProjection": false, | |
"HideWhenFaceDown": false, | |
"Hands": false, | |
"CustomImage": { | |
"ImageURL": "https://i.postimg.cc/mD2VZFvc/Crafting-Lookup.png", | |
"ImageSecondaryURL": "", | |
"ImageScalar": 1.0, | |
"WidthScale": 0.0, | |
"CustomTile": { | |
"Type": 0, | |
"Thickness": 0.2, | |
"Stackable": false, | |
"Stretch": true | |
} | |
}, | |
"LuaScript": "function onLoad(saved_game_data)\r\n createSearchField()\r\n createSearchButtons()\r\n crafting = {\r\n red = { },\r\n yellow = { },\r\n blue = { },\r\n purple = { }\r\n }\r\n \r\n WebRequest.get(\"https://gist.githubusercontent.com/Draco18s/1fe2e0507fbd0d4c0712460e003be8b5/raw/1b6f60044b92e77bfb38b311d352515945e3e4cc/stonesaga-crafting-red.csv\", function(request)\r\n if request.is_error then\r\n log(request.error)\r\n else\r\n for i,line in pairs(stringsplit(request.text, \"\\n\")) do\r\n if i > 1 then\r\n obj = stringsplit(line, \";\")\r\n crafting.red[parseInput(obj[1])] = {\r\n flavor = obj[2],\r\n text = obj[3],\r\n item = obj[4]\r\n }\r\n end\r\n end\r\n end\r\n end)\r\n WebRequest.get(\"https://gist.githubusercontent.com/Draco18s/32bd7d10c3ebf364b2a10b996d9a94cb/raw/af98f4dd9aa350490af787ead10518fa567d0a06/stonesaga-crafting-yellow.csv\", function(request)\r\n if request.is_error then\r\n log(request.error)\r\n else\r\n for i,line in pairs(stringsplit(request.text, \"\\n\")) do\r\n if i > 1 then\r\n obj = stringsplit(line, \";\")\r\n crafting.yellow[parseInput(obj[1])] = {\r\n flavor = obj[2],\r\n text = obj[3],\r\n item = obj[4]\r\n }\r\n end\r\n end\r\n end\r\n end)\r\n WebRequest.get(\"https://gist.githubusercontent.com/Draco18s/e736850eceae193786a82e885811c305/raw/79208d9fab7b7d674751add7880c21516e4d7f54/stonesaga-crafting-blue.csv\", function(request)\r\n if request.is_error then\r\n log(request.error)\r\n else\r\n for i,line in pairs(stringsplit(request.text, \"\\n\")) do\r\n if i > 1 then\r\n obj = stringsplit(line, \";\")\r\n crafting.blue[parseInput(obj[1])] = {\r\n flavor = obj[2],\r\n text = obj[3],\r\n item = obj[4]\r\n }\r\n end\r\n end\r\n end\r\n end)\r\n WebRequest.get(\"https://gist.githubusercontent.com/Draco18s/d21a3d62bce8423c5093e67a6228daaa/raw/5dafb176b68b1da6ffae8a29447fc221e80c57e7/stonesaga-crafting-purple.csv\", function(request)\r\n if request.is_error then\r\n log(request.error)\r\n else\r\n for i,line in pairs(stringsplit(request.text, \"\\n\")) do\r\n if i > 1 then\r\n obj = stringsplit(line, \";\")\r\n crafting.purple[parseInput(obj[1])] = {\r\n flavor = obj[2],\r\n text = obj[3],\r\n item = obj[4]\r\n }\r\n end\r\n end\r\n end\r\n end)\r\nend\r\n\r\nfunction stringsplit (inputstr, sep)\r\n if sep == nil then\r\n sep = \"%s\"\r\n end\r\n local t={}\r\n for str in string.gmatch(inputstr, \"([^\"..sep..\"]+)\") do\r\n table.insert(t, str)\r\n end\r\n return t\r\nend\r\n\r\nfunction onSave()\r\n return nil\r\nend\r\n\r\nfunction setup()\r\n cleanStart()\r\n createSearchField()\r\n createSearchButtons()\r\n isSetup = true\r\nend\r\n\r\nfunction cleanStart()\r\n local btns = self.getButtons()\r\n if btns ~= nil then\r\n for i = 0, #btns - 1 do\r\n self.removeButton(i)\r\n end\r\n end\r\n local inps = self.getInputs()\r\n if inps ~= nil then\r\n for i = 0, #inps - 1 do\r\n self.removeInput(i)\r\n end\r\n end\r\nend\r\n\r\nfunction createSearchField()\r\n self.createInput({\r\n input_function = \"enterCheck\",\r\n function_owner = self,\r\n label = \"...\",\r\n position = {0, 0.25, 0.325},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 400,\r\n height = 100,\r\n tooltip = \"\",\r\n alignment = 3,\r\n font_color = \"White\",\r\n font_size = 75,\r\n color = \"Brown\"\r\n })\r\n \r\n self.createInput({\r\n input_function = \"nop\",\r\n function_owner = self,\r\n label = \" \",\r\n position = {0, 0.25, -0.7},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 800,\r\n height = 300,\r\n tooltip = \"\",\r\n alignment = 2,\r\n font_color = \"White\",\r\n font_size = 45,\r\n color = \"Brown\"\r\n })\r\n \r\n self.createInput({\r\n input_function = \"nop\",\r\n function_owner = self,\r\n label = \" \",\r\n position = {0, 0.25, -0.2},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 800,\r\n height = 200,\r\n tooltip = \"\",\r\n alignment = 2,\r\n font_color = \"White\",\r\n font_size = 45,\r\n color = \"Brown\"\r\n })\r\n \r\n self.createInput({\r\n input_function = \"nop\",\r\n function_owner = self,\r\n label = \" \",\r\n position = {0, 0.25, 0.1},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 800,\r\n height = 100,\r\n tooltip = \"\",\r\n alignment = 2,\r\n font_color = \"White\",\r\n font_size = 55,\r\n color = \"Brown\"\r\n })\r\nend\r\n\r\nfunction nop(obj, color, value, focus)\r\n\r\nend\r\n\r\nfunction enterCheck(obj, color, value, focus)\r\n local key = string.sub(value,-1,-1)\r\n if focus and key == '\\n' then\r\n search()\r\n end\r\nend\r\n\r\nfunction createSearchButtons()\r\n self.createButton({\r\n click_function = \"searchRed\",\r\n function_owner = self,\r\n label = \"Craft Red\",\r\n position = {0.5, 0.25, 0.55},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 500,\r\n height = 90,\r\n tooltip = \"\",\r\n font_color = {1, 1, 1},\r\n font_size = 80,\r\n color = \"Brown\"\r\n })\r\n \r\n self.createButton({\r\n click_function = \"searchYellow\",\r\n function_owner = self,\r\n label = \"Craft Yellow\",\r\n position = {-0.5, 0.25, 0.55},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 500,\r\n height = 90,\r\n tooltip = \"\",\r\n font_color = {1, 1, 1},\r\n font_size = 80,\r\n color = \"Brown\"\r\n })\r\n self.createButton({\r\n click_function = \"searchBlue\",\r\n function_owner = self,\r\n label = \"Craft Blue\",\r\n position = {0.5, 0.25, 0.8},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 500,\r\n height = 90,\r\n tooltip = \"\",\r\n font_color = {1, 1, 1},\r\n font_size = 80,\r\n color = \"Brown\"\r\n })\r\n \r\n self.createButton({\r\n click_function = \"searchPurple\",\r\n function_owner = self,\r\n tooltip = \"Craft Other\",\r\n label = \"Craft Other\",\r\n position = {-0.5, 0.25, 0.8},\r\n rotation = {0, 0, 0},\r\n scale = {.9,.9,.9},\r\n width = 500,\r\n height = 90,\r\n tooltip = \"\",\r\n font_color = {1, 1, 1},\r\n font_size = 80,\r\n color = \"Brown\"\r\n })\r\nend\r\n\r\nfunction searchRed()\r\n local value = parseInput(self.getInputs()[1].value)\r\n\r\n if value == nil then\r\n return\r\n end\r\n \r\n showResult(crafting.red[value])\r\nend\r\n\r\nfunction searchYellow()\r\n local value = parseInput(self.getInputs()[1].value)\r\n\r\n if value == nil then\r\n return\r\n end\r\n \r\n showResult(crafting.yellow[value])\r\nend\r\n\r\nfunction searchPurple()\r\n local value = parseInput(self.getInputs()[1].value)\r\n\r\n if value == nil then\r\n return\r\n end\r\n \r\n showResult(crafting.purple[value])\r\nend\r\n\r\nfunction searchBlue()\r\n local value = parseInput(self.getInputs()[1].value)\r\n\r\n if value == nil then\r\n return\r\n end\r\n \r\n showResult(crafting.blue[value])\r\nend\r\n\r\nfunction parseInput(str)\r\n local upp = string.upper(str):gsub(\"%D\", \"\")\r\n return tonumber(upp)\r\nend\r\n\r\nfunction showResult(result)\r\n self.editInput({index=0, value=\"\"})\r\n self.editInput({index=1, value=\"\"})\r\n self.editInput({index=2, value=\"\"})\r\n self.editInput({index=3, value=\"\"})\r\n \r\n self.editInput({index=1, value=result.flavor})\r\n self.editInput({index=2, value=result.text})\r\n self.editInput({index=3, value=result.item})\r\nend", | |
"XmlUI": "" | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment