Icon representing a recipe

Recipe: Co lapse's Settle Lua version a

created by LociOiling

Profile


Name
Co lapse's Settle Lua version a
ID
104141
Shared with
Public
Parent
None
Children
Created on
November 24, 2020 at 07:57 AM UTC
Updated on
November 24, 2020 at 07:57 AM UTC
Description

Simple Lua conversion of Co lapse's Settle, https://fold.it/portal/recipe/1773

Best for


Code


--[[ Co lapse's Settle Lua version a Lua conversion of Co lapse's Settle from 2009 https://fold.it/portal/recipe/1773 See "GUI to Lua - converting Co lapse's Settle" on the wiki https://foldit.fandom.com/wiki/GUI_to_Lua_-_converting_Co_lapse%27s_Settle This version converts the GUI commands to their Lua counterparts in a straightforward way, with nothing added. The major trick demonstrated here is using for loops to emulate the "by stride" option of the segments ingredient. A future version will refine the approach. version a - 2020/11/24 - LociOiling ]]-- segCnt = structure.GetCount () -- get number of segments, save in "segCnt" for ii = 2, segCnt, 4 do -- statement 1 freeze.Freeze ( ii, true, true ) -- statement 1 end -- statement 1 for ii = 1, segCnt, 4 do -- statement 2 selection.DeselectAll () -- statement 2 selection.Select ( ii ) -- statement 2 structure.LocalWiggleSelected ( 3 ) -- statement 2 end -- statement 2 freeze.UnfreezeAll () -- statement 3 for ii = 1, segCnt, 2 do -- statement 4 freeze.Freeze ( ii, true, true ) -- statement 4 end -- statement 4 for ii = 2, segCnt, 2 do -- statement 5 selection.DeselectAll () -- statement 5 selection.Select ( ii ) -- statement 5 structure.LocalWiggleSelected ( 3 ) -- statement 5 end -- statement 5 freeze.FreezeAll () -- statement 6 for ii = 1, segCnt, 2 do -- statement 7 freeze.Unfreeze ( ii, true, true ) -- statement 7 end -- statement 7 for ii = 1, segCnt, 2 do -- statement 8 selection.DeselectAll () -- statement 8 selection.Select ( ii ) -- statement 8 structure.LocalWiggleSelected ( 3 ) -- statement 8 end -- statement 8 freeze.UnfreezeAll () -- statement 9 for ii = 2, segCnt, 3 do -- statement 10 freeze.Freeze ( ii, true, true ) -- statement 10 end -- statement 10 for ii = 1, segCnt, 3 do -- statement 11 selection.DeselectAll () -- statement 11 selection.Select ( ii ) -- statement 11 structure.LocalWiggleSelected ( 3 ) -- statement 11 end -- statement 11 freeze.UnfreezeAll () -- statement 12 for ii = 1, segCnt, 2 do -- statement 13 freeze.Freeze ( ii, true, true ) -- statement 13 end -- statement 13 structure.WiggleAll ( 30 ) -- statement 14 freeze.UnfreezeAll () -- statement 15 structure.ShakeSidechainsAll ( 1 ) -- statement 16 structure.WiggleAll ( 30 ) -- statement 17

Comments


LociOiling Lv 1

I've been comparing the Lua version of Settle to the original GUI version.

I had to use an old client to get a working version of the "by stride" in GUI recipes. Currently, I'm running a client from 2015, but I'll try some more recent clients when time permits.

The tests with the 2015 client show some unexpected results. The GUI version runs faster than the Lua version, but the Lua version finds more points.

Even when I minimize Foldit, the Lua version is still slower than the GUI running with its screen up. The points results are the same each time.

There appears to be a slight difference in how local wiggle works. In the GUI version, local wiggle by stride seems to wiggle everything up to the next frozen segment, based on what pulsates as the recipe runs.

In the Lua version, it wiggles only one segment. It's written that way, and only a single segment pulsates.

The next Lua version of Settle will attempt to emulate the GUI version more closely.