Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mod/reverse.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ func (r *Reverser) Write(raw map[string]interface{}) error {
}
// decide if creating a separte file is worth it
if len(strVal) < 80 {
raw[strKey] = strVal
continue
}

Expand Down
53 changes: 53 additions & 0 deletions mod/reverse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ func TestReverse(t *testing.T) {
},
},
wantModSettings: map[string]types.J{},
wantObjTexts: map[string]string{},
},
{
name: "SnapPointsOwnFile",
Expand Down Expand Up @@ -128,6 +129,55 @@ func TestReverse(t *testing.T) {
},
},
},
wantObjTexts: map[string]string{},
},
{
name: "ShortLua",
input: map[string]interface{}{
"LuaScript": "var foo = 42",
},
wantRootConfig: map[string]interface{}{
"LuaScript": "var foo = 42",
},
wantModSettings: map[string]types.J{},
wantObjTexts: map[string]string{},
},
{
name: "ShortLuaBundled",
input: map[string]interface{}{
"LuaScript": "-- Bundled by luabundle {\"version\":\"1.6.0\"}\nlocal __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire)\n\tlocal loadingPlaceholder = {[{}] = true}\n\n\tlocal register\n\tlocal modules = {}\n\n\tlocal require\n\tlocal loaded = {}\n\n\tregister = function(name, body)\n\t\tif not modules[name] then\n\t\t\tmodules[name] = body\n\t\tend\n\tend\n\n\trequire = function(name)\n\t\tlocal loadedModule = loaded[name]\n\n\t\tif loadedModule then\n\t\t\tif loadedModule == loadingPlaceholder then\n\t\t\t\treturn nil\n\t\t\tend\n\t\telse\n\t\t\tif not modules[name] then\n\t\t\t\tif not superRequire then\n\t\t\t\t\tlocal identifier = type(name) == 'string' and '\\\"' .. name .. '\\\"' or tostring(name)\n\t\t\t\t\terror('Tried to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playermat/SkillToken\")\nend)\n__bundle_register(\"playermat/SkillToken\", function(require, _LOADED, __bundle_register, __bundle_modules)\nMIN_VALUE = -99\r\nMAX_VALUE = 999\r\n\r\nfunction onload(saved_data)\r\n light_mode = false\r\n val = 0\r\n\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n light_mode = loaded_data[1]\r\n val = loaded_data[2]\r\n end\r\n\r\n createAll()\r\nend\r\n\r\nfunction updateSave()\r\n local data_to_save = {light_mode, val}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction createAll()\r\n s_color = {0.5, 0.5, 0.5, 95}\r\n\r\n if light_mode then\r\n f_color = {1,1,1,95}\r\n else\r\n f_color = {0,0,0,100}\r\n end\r\n\r\n\r\n\r\n self.createButton({\r\n label=tostring(val),\r\n click_function=\"add_subtract\",\r\n function_owner=self,\r\n position={0,0.05,0},\r\n height=600,\r\n width=1000,\r\n alignment = 3,\r\n scale={x=1.5, y=1.5, z=1.5},\r\n font_size=600,\r\n font_color=f_color,\r\n color={0,0,0,0}\r\n })\r\n\r\n\r\n\r\n\r\n if light_mode then\r\n lightButtonText = \"[ Set dark ]\"\r\n else\r\n lightButtonText = \"[ Set light ]\"\r\n end\r\n\r\nend\r\n\r\nfunction removeAll()\r\n self.removeInput(0)\r\n self.removeInput(1)\r\n self.removeButton(0)\r\n self.removeButton(1)\r\n self.removeButton(2)\r\nend\r\n\r\nfunction reloadAll()\r\n removeAll()\r\n createAll()\r\n\r\n updateSave()\r\nend\r\n\r\nfunction swap_fcolor(_obj, _color, alt_click)\r\n light_mode = not light_mode\r\n reloadAll()\r\nend\r\n\r\nfunction swap_align(_obj, _color, alt_click)\r\n center_mode = not center_mode\r\n reloadAll()\r\nend\r\n\r\nfunction editName(_obj, _string, value)\r\n self.setName(value)\r\n setTooltips()\r\nend\r\n\r\nfunction add_subtract(_obj, _color, alt_click)\r\n mod = alt_click and -1 or 1\r\n new_value = math.min(math.max(val + mod, MIN_VALUE), MAX_VALUE)\r\n if val ~= new_value then\r\n val = new_value\r\n updateVal()\r\n updateSave()\r\n end\r\nend\r\n\r\nfunction updateVal()\r\n\r\n self.editButton({\r\n index = 0,\r\n label = tostring(val),\r\n\r\n })\r\nend\r\n\r\nfunction reset_val()\r\n val = 0\r\n updateVal()\r\n updateSave()\r\nend\r\n\r\nfunction setTooltips()\r\n self.editInput({\r\n index = 0,\r\n value = self.getName(),\r\n tooltip = ttText\r\n })\r\n self.editButton({\r\n index = 0,\r\n value = tostring(val),\r\n tooltip = ttText\r\n })\r\nend\r\n\r\nfunction null()\r\nend\r\n\r\nfunction keepSample(_obj, _string, value)\r\n reloadAll()\r\nend\r\n\nend)\nreturn __bundle_require(\"__root\")",
},
wantRootConfig: map[string]interface{}{
"LuaScript": "require(\"playermat/SkillToken\")",
},
wantModSettings: map[string]types.J{},
wantObjTexts: map[string]string{},
},
{
name: "LongLua",
input: map[string]interface{}{
"LuaScript": "var foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\n",
},
wantRootConfig: map[string]interface{}{
"LuaScript_path": "LuaScript.ttslua",
},
wantModSettings: map[string]types.J{},
wantObjTexts: map[string]string{
"LuaScript.ttslua": "var foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\n",
},
},
{
name: "LongLuaBundled",
input: map[string]interface{}{
"LuaScript": "-- Bundled by luabundle {\"version\":\"1.6.0\"}\nlocal __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire)\n\tlocal loadingPlaceholder = {[{}] = true}\n\n\tlocal register\n\tlocal modules = {}\n\n\tlocal require\n\tlocal loaded = {}\n\n\tregister = function(name, body)\n\t\tif not modules[name] then\n\t\t\tmodules[name] = body\n\t\tend\n\tend\n\n\trequire = function(name)\n\t\tlocal loadedModule = loaded[name]\n\n\t\tif loadedModule then\n\t\t\tif loadedModule == loadingPlaceholder then\n\t\t\t\treturn nil\n\t\t\tend\n\t\telse\n\t\t\tif not modules[name] then\n\t\t\t\tif not superRequire then\n\t\t\t\t\tlocal identifier = type(name) == 'string' and '\\\"' .. name .. '\\\"' or tostring(name)\n\t\t\t\t\terror('Tried to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playermat/SkillToken\")\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nend)\n__bundle_register(\"playermat/SkillToken\", function(require, _LOADED, __bundle_register, __bundle_modules)\nMIN_VALUE = -99\r\nMAX_VALUE = 999\r\n\r\nfunction onload(saved_data)\r\n light_mode = false\r\n val = 0\r\n\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n light_mode = loaded_data[1]\r\n val = loaded_data[2]\r\n end\r\n\r\n createAll()\r\nend\r\n\r\nfunction updateSave()\r\n local data_to_save = {light_mode, val}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction createAll()\r\n s_color = {0.5, 0.5, 0.5, 95}\r\n\r\n if light_mode then\r\n f_color = {1,1,1,95}\r\n else\r\n f_color = {0,0,0,100}\r\n end\r\n\r\n\r\n\r\n self.createButton({\r\n label=tostring(val),\r\n click_function=\"add_subtract\",\r\n function_owner=self,\r\n position={0,0.05,0},\r\n height=600,\r\n width=1000,\r\n alignment = 3,\r\n scale={x=1.5, y=1.5, z=1.5},\r\n font_size=600,\r\n font_color=f_color,\r\n color={0,0,0,0}\r\n })\r\n\r\n\r\n\r\n\r\n if light_mode then\r\n lightButtonText = \"[ Set dark ]\"\r\n else\r\n lightButtonText = \"[ Set light ]\"\r\n end\r\n\r\nend\r\n\r\nfunction removeAll()\r\n self.removeInput(0)\r\n self.removeInput(1)\r\n self.removeButton(0)\r\n self.removeButton(1)\r\n self.removeButton(2)\r\nend\r\n\r\nfunction reloadAll()\r\n removeAll()\r\n createAll()\r\n\r\n updateSave()\r\nend\r\n\r\nfunction swap_fcolor(_obj, _color, alt_click)\r\n light_mode = not light_mode\r\n reloadAll()\r\nend\r\n\r\nfunction swap_align(_obj, _color, alt_click)\r\n center_mode = not center_mode\r\n reloadAll()\r\nend\r\n\r\nfunction editName(_obj, _string, value)\r\n self.setName(value)\r\n setTooltips()\r\nend\r\n\r\nfunction add_subtract(_obj, _color, alt_click)\r\n mod = alt_click and -1 or 1\r\n new_value = math.min(math.max(val + mod, MIN_VALUE), MAX_VALUE)\r\n if val ~= new_value then\r\n val = new_value\r\n updateVal()\r\n updateSave()\r\n end\r\nend\r\n\r\nfunction updateVal()\r\n\r\n self.editButton({\r\n index = 0,\r\n label = tostring(val),\r\n\r\n })\r\nend\r\n\r\nfunction reset_val()\r\n val = 0\r\n updateVal()\r\n updateSave()\r\nend\r\n\r\nfunction setTooltips()\r\n self.editInput({\r\n index = 0,\r\n value = self.getName(),\r\n tooltip = ttText\r\n })\r\n self.editButton({\r\n index = 0,\r\n value = tostring(val),\r\n tooltip = ttText\r\n })\r\nend\r\n\r\nfunction null()\r\nend\r\n\r\nfunction keepSample(_obj, _string, value)\r\n reloadAll()\r\nend\r\n\nend)\nreturn __bundle_require(\"__root\")",
},
wantRootConfig: map[string]interface{}{
"LuaScript_path": "LuaScript.ttslua",
},
wantModSettings: map[string]types.J{},
wantObjTexts: map[string]string{
"LuaScript.ttslua": "require(\"playermat/SkillToken\")\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42\nvar foo = 42",
},
},
} {
t.Run(tc.name, func(t *testing.T) {
Expand Down Expand Up @@ -155,6 +205,9 @@ func TestReverse(t *testing.T) {
if diff := cmp.Diff(tc.wantModSettings, modsettings.Data); diff != "" {
t.Errorf("want != got:\n%v\n", diff)
}
if diff := cmp.Diff(tc.wantObjTexts, objsAndLua.Fs); diff != "" {
t.Errorf("want != got:\n%v\n", diff)
}
})
}

Expand Down