Check in a loop which subtools are visible or not.
This code sample is checking all the Subtools hosted within the current Ztool, and report into a Note , which subtools are visible and report into another Note if the active subtool isn’t visible.
ZBRUSH 4R8
[VarDef,subtoolName,""] // Define a new variable to store the current subtool name
[VarDef,subtool(1024),0] // Define a Variable list to store the subtool active index
[VarSet,totalSubtools,[SubToolGetCount]] // create a variable to define the number of loop based on the subtools count
[VarSet,activeSubtool,[SubToolGetActiveIndex]] // create a variable with the current subtool Index
// Select the first subtool of the Ztool
[If, activeSubtool==0,
[SubToolSelect,1]
]
// here is the Loop that check each subtool, and check if the subtool is visible or not.
[Loop, totalSubtools,
[SubToolSelect,[Val,n]]
[VarSet,subtoolName,[IGetTitle, "Tool:ItemInfo"]]//gets the tool name
[VarSet,subtoolName,[StrExtract,subtoolName,0,[StrLength,subtoolName]-2]]// trim 2 chars from the end
// here we check if the activeSubtool is visible ( return 1 if visible and 0 if not )
[If,([IModGet,"Tool:Subtool 0"]&32 == 32),
[Note, [StrMerge, subtoolName, " is VISIBLE"],,2]
,//else
[Note, [StrMerge, subtoolName, " is NOT VISIBLE"],,2]
]
,n] //END LOOP
ZBRUSH 4R7 (and previous version)
[VarDef,subtoolName,""] // Define a new variable to store the current subtool name
[VarDef,subtool(1024),0] // Define a Variable list to store the subtool active index
[VarSet,totalSubtools,[SubToolGetCount]] // create a variable to define the number of loop based on the subtools count
[VarSet,activeSubtool,[SubToolGetActiveIndex]] // create a variable with the current subtool Index
// Select the first subtool of the Ztool
[If, activeSubtool==0,
[SubToolSelect,1]
]
// here is the Loop that check each subtool, and check if the subtool is visible or not.
[Loop, totalSubtools,
[SubToolSelect,[Val,n]]
[VarSet,subtoolName,[IGetTitle, "Tool:ItemInfo"]]//gets the tool name
[VarSet,subtoolName,[StrExtract,subtoolName,0,[StrLength,subtoolName]-2]]// trim 2 chars from the end
// here we check if the activeSubtool is visible ( return 1 if visible and 0 if not )
[If,[IModGet,[StrMerge,"Tool:Sub Tool:",#subtoolName]=]=>=16
,//cmds
[Note, [StrMerge, subtoolName, " is VISIBLE"],,2]
,//else
[Note, [StrMerge, subtoolName, " is NOT VISIBLE"],,2]
]
,n] //END LOOP