You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2129 lines
54 KiB
Plaintext
2129 lines
54 KiB
Plaintext
-------------------------------------------------------------------------------
|
|
-- CryArtistTools.ms
|
|
-- Version 2.2 External
|
|
-- by Christopher Evans
|
|
-------------------------------------------------------------------------------
|
|
|
|
-- Globals
|
|
-------------------------------------------------------------------------------
|
|
|
|
global CryArtistTools
|
|
|
|
crytools.maxDirTxt = (getdir #maxroot)
|
|
|
|
-------------------------------------------------------------------
|
|
-----------Update "CGF Metadata Manager" Function---------
|
|
-------------------------------------------------------------------
|
|
udpInARR = #()
|
|
testFor = #()
|
|
fn udpGetFromSel =
|
|
(
|
|
likeMass = false
|
|
likeDensity = false
|
|
multipleObj = false
|
|
AllMass = false
|
|
AllDens = false
|
|
AllDensity = false
|
|
AllLimit = false
|
|
AllTwist = false
|
|
AllBend = false
|
|
AllPull = false
|
|
AllPush = false
|
|
AllShift = false
|
|
LikeLimit = false
|
|
LikeTwist = false
|
|
LikeBend = false
|
|
LikePull = false
|
|
LikePush = false
|
|
LikeShift = false
|
|
|
|
CryArtistTools.rollouts[3].objScale.value = 100
|
|
|
|
if $ == undefined then
|
|
(
|
|
CryArtistTools.rollouts[3].isMain.checked = false
|
|
CryArtistTools.rollouts[3].isRemain.checked = false
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Nothing selected"
|
|
CryArtistTools.rollouts[3].UpdateUDP.enabled = false
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = false
|
|
return undefined
|
|
)
|
|
|
|
if CryArtistTools != undefined then
|
|
(
|
|
CryArtistTools.rollouts[3].UpdateUDP.enabled = false
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = true
|
|
if selection.count > 1 then multipleObj = true
|
|
if selection.count == 1 then
|
|
(
|
|
case selection[1].name of
|
|
(
|
|
"Main": (CryArtistTools.rollouts[3].isMain.checked = true)
|
|
"Remain": (CryArtistTools.rollouts[3].isRemain.checked = true)
|
|
)
|
|
if selection[1].name != "Main" and selection[1].name!="Remain" then
|
|
(
|
|
CryArtistTools.rollouts[3].isMain.checked = false
|
|
CryArtistTools.rollouts[3].isRemain.checked = false
|
|
)
|
|
)
|
|
LimitArr = #()
|
|
TwistArr = #()
|
|
BendArr = #()
|
|
PullArr = #()
|
|
PushArr = #()
|
|
ShiftArr = #()
|
|
|
|
MassArr = #()
|
|
DensArr = #()
|
|
for obj in selection do
|
|
(
|
|
Temp = #()
|
|
udpInARR = crytools.inFromUDP obj
|
|
if udpInARR.count == 0 then
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Object has no UDP data"
|
|
if multipleObj == true then
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Objects have no UDP data"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "UDP data loaded"
|
|
IsMass = (filterstring udpInARR[1] " =")
|
|
if IsMass[1] == "mass" then
|
|
(
|
|
append MassArr obj
|
|
)
|
|
else
|
|
(
|
|
if IsMass[1] == "density" then
|
|
(
|
|
append DensArr obj
|
|
)
|
|
)
|
|
)
|
|
|
|
for i = 1 to udpInArr.count do
|
|
(
|
|
testFor = (filterstring udpInARR[i] " =")[1]
|
|
append Temp testFor
|
|
)
|
|
if (findItem Temp "limit") != 0 then append LimitArr obj
|
|
if (findItem Temp "twist") != 0 then append TwistArr obj
|
|
if (findItem Temp "bend") != 0 then append BendArr obj
|
|
if (findItem Temp "pull") != 0 then append PullArr obj
|
|
if (findItem Temp "push") != 0 then append PushArr obj
|
|
if (findItem Temp "shift") != 0 then append ShiftArr obj
|
|
)
|
|
|
|
if multipleObj == true then
|
|
(
|
|
CryArtistTools.rollouts[3].isMain.checked = false
|
|
CryArtistTools.rollouts[3].isRemain.checked = false
|
|
if MassArr.count != 0 then
|
|
(
|
|
if MassArr.count == selection.count then AllMass = true else AllMass = false
|
|
)
|
|
|
|
if DensArr.count != 0 then
|
|
(
|
|
if DensArr.count == selection.count then AllDens = true else AllDens = false
|
|
)
|
|
|
|
if LimitArr.count != 0 then
|
|
(
|
|
if LimitArr.count == selection.count then AllLimit = true else AllLimit = false
|
|
)
|
|
|
|
if TwistArr.count != 0 then
|
|
(
|
|
if TwistArr.count == selection.count then AllTwist = true else AllTwist = false
|
|
)
|
|
|
|
if BendArr.count != 0 then
|
|
(
|
|
if BendArr.count == selection.count then AllBend = true else AllBend = false
|
|
)
|
|
|
|
if PullArr.count != 0 then
|
|
(
|
|
if PullArr.count == selection.count then AllPull = true else AllPull = false
|
|
)
|
|
|
|
if PushArr.count != 0 then
|
|
(
|
|
if PushArr.count == selection.count then AllPush = true else AllPush = false
|
|
)
|
|
|
|
if ShiftArr.count != 0 then
|
|
(
|
|
if ShiftArr.count == selection.count then AllShift = true else AllShift = false
|
|
)
|
|
)
|
|
|
|
testForMass = (crytools.getUDP selection[1] "mass")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "mass") != testForMass then likeMass = false else likeMass = true
|
|
)
|
|
|
|
testForDensity = (crytools.getUDP selection[1] "density")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "density") != testForDensity then likeDensity = false else likeDensity = true
|
|
)
|
|
|
|
testForLimit = (crytools.getUDP selection[1] "limit")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "limit") != testForLimit then likeLimit = false else likeLimit = true
|
|
)
|
|
|
|
testForTwist = (crytools.getUDP selection[1] "twist")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "twist") != testForTwist then likeTwist = false else likeTwist = true
|
|
)
|
|
|
|
testForBend = (crytools.getUDP selection[1] "bend")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "bend") != testForBend then likeBend = false else likeBend = true
|
|
)
|
|
|
|
testForPull = (crytools.getUDP selection[1] "pull")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "pull") != testForPull then likePull = false else likePull = true
|
|
)
|
|
|
|
testForPush = (crytools.getUDP selection[1] "push")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "push") != testForPush then likePush = false else likePush = true
|
|
)
|
|
|
|
testForShift = (crytools.getUDP selection[1] "shift")
|
|
for i = 2 to selection.count do
|
|
(
|
|
if (crytools.getUDP selection[i] "shift") != testForShift then likeShift = false else likeShift = true
|
|
)
|
|
|
|
-- reset
|
|
CryArtistTools.rollouts[3].cylinder1.checked = false
|
|
CryArtistTools.rollouts[3].box1.checked = false
|
|
CryArtistTools.rollouts[3].capsule1.checked = false
|
|
CryArtistTools.rollouts[3].sphere1.checked = false
|
|
|
|
CryArtistTools.rollouts[3].useMass.checked = false
|
|
CryArtistTools.rollouts[3].objMass.value = 0
|
|
CryArtistTools.rollouts[3].objMass.enabled = false
|
|
CryArtistTools.rollouts[3].useDensity.checked = false
|
|
CryArtistTools.rollouts[3].objDensity.value = 0
|
|
CryArtistTools.rollouts[3].objDensity.enabled = false
|
|
CryArtistTools.rollouts[3].objScale.enabled = false
|
|
|
|
CryArtistTools.rollouts[3].jLimit.enabled = false
|
|
CryArtistTools.rollouts[3].jLimit.checked = false
|
|
CryArtistTools.rollouts[3].jTwist.enabled = false
|
|
CryArtistTools.rollouts[3].jTwist.checked = false
|
|
CryArtistTools.rollouts[3].jBend.enabled = false
|
|
CryArtistTools.rollouts[3].jBend.checked = false
|
|
CryArtistTools.rollouts[3].jPull.enabled = false
|
|
CryArtistTools.rollouts[3].jPull.checked = false
|
|
CryArtistTools.rollouts[3].jPush.enabled = false
|
|
CryArtistTools.rollouts[3].jPush.checked = false
|
|
CryArtistTools.rollouts[3].jShift.enabled = false
|
|
CryArtistTools.rollouts[3].jShift.checked = false
|
|
CryArtistTools.rollouts[3].jScale.enabled = false
|
|
CryArtistTools.rollouts[3].jScale.checked = false
|
|
CryArtistTools.rollouts[3].jointScale.enabled = false
|
|
CryArtistTools.rollouts[3].jointScale.value = 100
|
|
|
|
CryArtistTools.rollouts[3].usejoint.checked = false
|
|
CryArtistTools.rollouts[3].jointLimit.value = 0
|
|
CryArtistTools.rollouts[3].jointLimit.enabled = false
|
|
CryArtistTools.rollouts[3].jointTwist.value = 0
|
|
CryArtistTools.rollouts[3].jointTwist.enabled = false
|
|
CryArtistTools.rollouts[3].jointBend.value = 0
|
|
CryArtistTools.rollouts[3].jointBend.enabled = false
|
|
CryArtistTools.rollouts[3].jointPull.value =0
|
|
CryArtistTools.rollouts[3].jointPull.enabled = false
|
|
CryArtistTools.rollouts[3].jointPush.value = 0
|
|
CryArtistTools.rollouts[3].jointPush.enabled = false
|
|
CryArtistTools.rollouts[3].jointShift.value = 0
|
|
CryArtistTools.rollouts[3].jointShift.enabled = false
|
|
|
|
CryArtistTools.rollouts[3].isEntity.checked = false
|
|
CryArtistTools.rollouts[3].xrot.checked = false
|
|
CryArtistTools.rollouts[3].yrot.checked = false
|
|
CryArtistTools.rollouts[3].zrot.checked = false
|
|
CryArtistTools.rollouts[3].sizevar.value = 0
|
|
CryArtistTools.rollouts[3].GenericCount.value = 0
|
|
|
|
|
|
--CryArtistTools.rollouts[3].ispickable.checked = false
|
|
|
|
--lowercase inputs
|
|
for i = 1 to udpInARR.count do
|
|
(
|
|
testFor = (filterstring udpInARR[i] " =")
|
|
|
|
wordFilter = (crytools.forceLowerCase testFor[1])
|
|
|
|
jointsPresent = false
|
|
|
|
case wordFilter of
|
|
(
|
|
"mass":
|
|
(
|
|
CryArtistTools.rollouts[3].useMass.checked = true
|
|
CryArtistTools.rollouts[3].objMass.enabled = true
|
|
CryArtistTools.rollouts[3].objMass.value = (testFor[2] as float)
|
|
CryArtistTools.rollouts[3].objScale.enabled = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllMass == true then
|
|
(
|
|
if CryArtistTools.rollouts[3].objMass.value != 0 then
|
|
(
|
|
CryArtistTools.rollouts[3].UpdateUDP.enabled = true
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = false
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = true
|
|
)
|
|
|
|
if likeMass == true then
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Objects have same mass"
|
|
--print "Selected objects have like mass"
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Multiple objects: different mass"
|
|
--print "Multiple objects: different Mass"
|
|
CryArtistTools.rollouts[3].useMass.checked = false
|
|
CryArtistTools.rollouts[3].objMass.enabled = false
|
|
CryArtistTools.rollouts[3].objScale.enabled = true
|
|
CryArtistTools.rollouts[3].objMass.value = 0
|
|
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Multiple objects: Data mismatch"
|
|
CryArtistTools.rollouts[3].useMass.checked = false
|
|
CryArtistTools.rollouts[3].objMass.enabled = false
|
|
CryArtistTools.rollouts[3].objScale.enabled = false
|
|
CryArtistTools.rollouts[3].objMass.value = 0
|
|
)
|
|
)
|
|
)
|
|
"density":
|
|
(
|
|
CryArtistTools.rollouts[3].useDensity.checked = true
|
|
CryArtistTools.rollouts[3].objDensity.enabled = true
|
|
CryArtistTools.rollouts[3].objDensity.value = (testFor[2] as float)
|
|
CryArtistTools.rollouts[3].objScale.enabled = true
|
|
|
|
if multipleObj == true then
|
|
(
|
|
if AllDens == true then
|
|
(
|
|
if CryArtistTools.rollouts[3].objDensity.value != 0 then
|
|
(
|
|
CryArtistTools.rollouts[3].UpdateUDP.enabled = true
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = false
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].udpSetToSel.enabled = true
|
|
)
|
|
|
|
if likeDensity == true then
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Objects have same density"
|
|
--print "Selected Objects have like density"
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Multiple objects: different density"
|
|
--print "Multiple objects: data mismatch"
|
|
CryArtistTools.rollouts[3].useDensity.checked = false
|
|
CryArtistTools.rollouts[3].objDensity.enabled = false
|
|
CryArtistTools.rollouts[3].objDensity.value = 0
|
|
CryArtistTools.rollouts[3].objScale.enabled = true
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].updateLBL.text = "Multiple objects: Data mismatch"
|
|
CryArtistTools.rollouts[3].useDensity.checked = false
|
|
CryArtistTools.rollouts[3].objDensity.enabled = false
|
|
CryArtistTools.rollouts[3].objScale.enabled = false
|
|
CryArtistTools.rollouts[3].objDensity.value = 0
|
|
)
|
|
)
|
|
)
|
|
"limit":
|
|
(
|
|
CryArtistTools.rollouts[3].jointLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointLimit.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllLimit == true then
|
|
(
|
|
if likeLimit == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointLimit.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointLimit.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointLimit.value = 0
|
|
)
|
|
)
|
|
)
|
|
"twist":
|
|
(
|
|
CryArtistTools.rollouts[3].jointTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointTwist.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllTwist == true then
|
|
(
|
|
if likeTwist == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointTwist.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointTwist.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointTwist.value = 0
|
|
)
|
|
)
|
|
)
|
|
"bend":
|
|
(
|
|
CryArtistTools.rollouts[3].jointBend.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointBend.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllBend == true then
|
|
(
|
|
if likeBend == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointBend.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointBend.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointBend.value = 0
|
|
)
|
|
)
|
|
)
|
|
"pull":
|
|
(
|
|
CryArtistTools.rollouts[3].jointPull.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointPull.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllPull == true then
|
|
(
|
|
if likePull == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointPull.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointPull.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointPull.value = 0
|
|
)
|
|
)
|
|
)
|
|
"push":
|
|
(
|
|
CryArtistTools.rollouts[3].jointPush.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointPush.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllPush == true then
|
|
(
|
|
if likePush == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointPush.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointPush.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointPush.value = 0
|
|
)
|
|
)
|
|
)
|
|
"shift":
|
|
(
|
|
CryArtistTools.rollouts[3].jointShift.enabled = true
|
|
CryArtistTools.rollouts[3].jLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jBend.enabled = true
|
|
CryArtistTools.rollouts[3].jPull.enabled = true
|
|
CryArtistTools.rollouts[3].jPush.enabled = true
|
|
CryArtistTools.rollouts[3].jShift.enabled = true
|
|
CryArtistTools.rollouts[3].jScale.enabled = true
|
|
CryArtistTools.rollouts[3].jointScale.enabled = true
|
|
CryArtistTools.rollouts[3].usejoint.checked = true
|
|
CryArtistTools.rollouts[3].jointShift.value = (testFor[2] as float)
|
|
jointsPresent = true
|
|
if multipleObj == true then
|
|
(
|
|
if AllShift == true then
|
|
(
|
|
if likeShift == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointShift.value = (testFor[2] as float)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointShift.value = 0
|
|
)
|
|
)
|
|
else
|
|
(
|
|
CryArtistTools.rollouts[3].jointShift.value = 0
|
|
)
|
|
)
|
|
)
|
|
"pickable":
|
|
(
|
|
CryArtistTools.rollouts[3].ispickable.checked = true
|
|
)
|
|
"entity":
|
|
(
|
|
CryArtistTools.rollouts[3].isEntity.checked = true
|
|
)
|
|
"rotaxes":
|
|
(
|
|
if testFor[2] == "x" then CryArtistTools.rollouts[3].xrot.checked = true
|
|
if testFor[2] == "y" then CryArtistTools.rollouts[3].yrot.checked = true
|
|
if testFor[2] == "z" then CryArtistTools.rollouts[3].zrot.checked = true
|
|
if testFor[2] == "xy"then
|
|
(
|
|
CryArtistTools.rollouts[3].xrot.checked = true
|
|
CryArtistTools.rollouts[3].yrot.checked = true
|
|
)
|
|
if testFor[2] == "xz"then
|
|
(
|
|
CryArtistTools.rollouts[3].xrot.checked = true
|
|
CryArtistTools.rollouts[3].zrot.checked = true
|
|
)
|
|
if testFor[2] == "yz"then
|
|
(
|
|
CryArtistTools.rollouts[3].zrot.checked = true
|
|
CryArtistTools.rollouts[3].yrot.checked = true
|
|
)
|
|
if testFor[2] == "xyz"then
|
|
(
|
|
CryArtistTools.rollouts[3].xrot.checked = true
|
|
CryArtistTools.rollouts[3].Yrot.checked = true
|
|
CryArtistTools.rollouts[3].zrot.checked = true
|
|
)
|
|
)
|
|
"sizevar":
|
|
(
|
|
CryArtistTools.rollouts[3].sizevar.value = (testFor[2] as float)
|
|
)
|
|
"generic":
|
|
(
|
|
CryArtistTools.rollouts[3].GenericCount.value = (testFor[2] as float)
|
|
)
|
|
)
|
|
case udpInARR[i] of
|
|
(
|
|
"cylinder": CryArtistTools.rollouts[3].cylinder1.checked = true
|
|
"box": CryArtistTools.rollouts[3].box1.checked = true
|
|
"capsule": CryArtistTools.rollouts[3].capsule1.checked = true
|
|
"sphere": CryArtistTools.rollouts[3].sphere1.checked = true
|
|
)
|
|
if jointsPresent == true then
|
|
(
|
|
CryArtistTools.rollouts[3].jointLimit.enabled = true
|
|
CryArtistTools.rollouts[3].jointTwist.enabled = true
|
|
CryArtistTools.rollouts[3].jointBend.enabled = true
|
|
CryArtistTools.rollouts[3].jointPull.enabled = true
|
|
CryArtistTools.rollouts[3].jointPush.enabled = true
|
|
CryArtistTools.rollouts[3].jointShift.enabled = true
|
|
)
|
|
)
|
|
)
|
|
)
|
|
-------------------------------End of Update Function---------------------------------------------
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- CryArtistTools interface
|
|
-------------------------------------------------------------------------------
|
|
|
|
(
|
|
if CryArtistTools != undefined do ( closerolloutfloater CryArtistTools )
|
|
CryArtistTools = newrolloutfloater "CryArtistTools 1.4" 190 380
|
|
|
|
--ArtistTools
|
|
-------------------------------------------------------------------------------
|
|
rollout ArtistTools "Artist Tools"
|
|
(
|
|
group "General Tools"
|
|
(
|
|
button centerPivotBttn "centerPivot" offset:[-42,0]
|
|
checkbutton preserveUV "preserveUVs" offset:[40,-26]
|
|
button resetXformBttn "resetXformCollapse"
|
|
checkbutton copyModifier "Copy Modifier" height:18 width:120
|
|
button applyModifier "Select a modifier" height:18 width:120 enabled:false
|
|
)
|
|
|
|
button exportCheck "Export Check"
|
|
|
|
Group "UV Tools"
|
|
(
|
|
button scaleVert images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\scalevert.png"), undefined, 1, 1, 1, 1, 1) tooltip:"collapse vertical" offset:[-65,0]
|
|
button scaleHoriz images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\scaleHoriz.png"), undefined, 1, 1, 1, 1, 1) tooltip:"collapse horizontal" offset:[-35,-31]
|
|
button scaleUniform images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\scaleUniform.png"), undefined, 1, 1, 1, 1, 1) tooltip:"uniform scale" offset:[-5,-31]
|
|
button rot90c images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\90c.png"), undefined, 1, 1, 1, 1, 1) tooltip:"rotate 90 clockwise" offset:[25,-31]
|
|
button rot90cc images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\90cc.png"), undefined, 1, 1, 1, 1, 1) tooltip:"rotate 90 counter clockwise" offset:[55,-31]
|
|
label OBJvertsLBL "OBJ: " align:#left offset:[0,5]
|
|
label UVvertsLBL "UV: " align:#left offset:[70,-18.5]
|
|
button refreshVerts "<" align:#right offset:[0,-23]
|
|
)
|
|
|
|
Group "Modelling Tools"
|
|
(
|
|
button LimEloop images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\LEloop.png"), undefined, 1, 1, 1, 1, 1) tooltip:"Limited Edge Loop" offset:[-65,0]
|
|
button LimEring images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\LEring.png"), undefined, 1, 1, 1, 1, 1) tooltip:"Limited Edge Ring" offset:[-35,-31]
|
|
button LimVloop images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\LVloop.png"), undefined, 1, 1, 1, 1, 1) tooltip:"Limited Vert Loop" offset:[-5,-31]
|
|
button LimVring images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\LVring.png"), undefined, 1, 1, 1, 1, 1) tooltip:"Limited Vert Ring" offset:[25,-31]
|
|
button LimPloop images:#((crytools.BuildPathFull + "tools\\maxscript\\icons\\LPloop.png"), undefined, 1, 1, 1, 1, 1) tooltip:"Limited Poly Ring" offset:[55,-31]
|
|
)
|
|
|
|
-- centerPivot
|
|
on centerPivotBttn pressed do
|
|
(
|
|
for obj in selection do
|
|
(
|
|
CenterPivot obj
|
|
)
|
|
)
|
|
|
|
-- refreshVerts
|
|
on refreshVerts pressed do
|
|
(
|
|
if selection.count != 1 then
|
|
(
|
|
OBJvertsLBL.text = "OBJ: --"
|
|
UVvertsLBL.text = "UV: --"
|
|
)
|
|
else
|
|
(
|
|
try
|
|
(
|
|
OBJvertsLBL.text = ("OBJ: " + ($.numverts as string))
|
|
UVvertsLBL.text = ("UV: " + ($.modifiers[#unwrap_uvw].unwrap.numbervertices() as string))
|
|
)
|
|
catch()
|
|
)
|
|
)
|
|
|
|
-- preserveUVs
|
|
on preserveUV changed state do
|
|
(
|
|
try
|
|
if (preserveUV.checked == true) then
|
|
(
|
|
$.preserveUVs = on
|
|
)
|
|
else
|
|
(
|
|
$.preserveUVs = off
|
|
)
|
|
catch
|
|
(
|
|
messageBox "Please select an object. Or make sure that your object has an edit poly applied." title:"Error"
|
|
preserveUV.checked = false
|
|
return undefined
|
|
)
|
|
)
|
|
|
|
on ArtistTools open do
|
|
(
|
|
try
|
|
(
|
|
FileIn (BuildPathFull_crytools + "Tools\\maxscript\\CryModelling.ms")
|
|
if $.modifiers[#unwrap_uvw] != undefined then
|
|
(
|
|
OBJvertsLBL.text = ("OBJ: " + ($.numverts as string))
|
|
UVvertsLBL.text = ("UV: " + ($.modifiers[#unwrap_uvw].unwrap.numbervertices() as string))
|
|
)
|
|
)
|
|
catch()
|
|
)
|
|
|
|
-- resetXformCollapse
|
|
on resetXformBttn pressed do
|
|
(
|
|
for obj in selection do
|
|
(
|
|
ResetXForm obj
|
|
print (obj.name + " xforms reset")
|
|
modPanel.setCurrentObject obj.baseObject
|
|
maxOps.CollapseNode obj off
|
|
)
|
|
)
|
|
|
|
-- uv tools
|
|
on scaleVert pressed do
|
|
(
|
|
try($.modifiers[#unwrap_uvw].unwrap2.ScaleSelectedCenter 0.001 2)catch()
|
|
)
|
|
|
|
on scaleHoriz pressed do
|
|
(
|
|
try($.modifiers[#unwrap_uvw].unwrap2.ScaleSelectedCenter 0.001 1)catch()
|
|
)
|
|
|
|
on scaleUniform pressed do
|
|
(
|
|
try($.modifiers[#unwrap_uvw].unwrap2.ScaleSelectedCenter 0.001 0)catch()
|
|
)
|
|
|
|
on rot90c pressed do
|
|
(
|
|
try($.modifiers[#unwrap_uvw].unwrap2.RotateSelectedCenter -1.59698)catch()
|
|
)
|
|
|
|
on rot90cc pressed do
|
|
(
|
|
try($.modifiers[#unwrap_uvw].unwrap2.RotateSelectedCenter 1.6057)catch()
|
|
)
|
|
|
|
--exportCheck
|
|
on exportCheck pressed do
|
|
(
|
|
if $ == undefined then
|
|
(
|
|
messageBox "No object selected" title:"Error"
|
|
return undefined
|
|
)
|
|
if $.material == undefined then
|
|
(
|
|
messageBox "There is no defined shader for this object!" title:"Problem Found!"
|
|
return undefined
|
|
)
|
|
materials = $.material.materialIDlist
|
|
for i = 1 to materials.count do
|
|
(
|
|
checkme = $.material.material[i].shadername
|
|
if checkme != "Crytek Shader" then
|
|
(
|
|
messageBox ("The following material is not set to the Crytek Shader: " + $.material.material[i].name) title:"Problem Found!"
|
|
)
|
|
)
|
|
)
|
|
|
|
on applyModifier pressed do
|
|
(
|
|
if xferModifier == undefined then return 0
|
|
else
|
|
(
|
|
undo "paste modifiers" on
|
|
(
|
|
for obj in selection do
|
|
(
|
|
if validModifier obj xferModifier then addmodifier obj (copy xferModifier)
|
|
print "test"
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
-- modified from Velmar cgsociety post
|
|
on copyModifier changed state do
|
|
(
|
|
local o,s
|
|
if copyModifier.checked = true then
|
|
(
|
|
if selection.count == 1 then
|
|
(
|
|
try
|
|
(
|
|
o = selection[1]
|
|
s = modPanel.getcurrentObject()
|
|
if s != undefined then
|
|
(
|
|
s = (modPanel.getModifierIndex o s)
|
|
print s
|
|
global xferModifier = copy o.modifiers[s]
|
|
copyModifier.caption = o.modifiers[s].name
|
|
applyModifier.enabled = true
|
|
applyModifier.caption = "Apply Modifier"
|
|
print ("copying " + (xferModifier as string))
|
|
)
|
|
else copyModifier.checked = off
|
|
)
|
|
catch
|
|
(
|
|
copyModifier.checked = off
|
|
print "error"
|
|
)
|
|
)
|
|
else copyModifier.checked = off
|
|
)
|
|
else
|
|
(
|
|
copyModifier.caption = "Copy Modifier"
|
|
xferModifier = undefined
|
|
applyModifier.caption = "Select a modifier"
|
|
applyModifier.enabled = false
|
|
)
|
|
)
|
|
|
|
---------Modelling Tools------------------
|
|
on LimEloop pressed do
|
|
(
|
|
CryModelling.SelLimELoop ()
|
|
)
|
|
|
|
on LimEring pressed do
|
|
(
|
|
CryModelling.SelLimERing()
|
|
)
|
|
|
|
on LimVloop pressed do
|
|
(
|
|
CryModelling.SelVertLoop()
|
|
)
|
|
|
|
on LimVring pressed do
|
|
(
|
|
CryModelling.SelVertRing()
|
|
)
|
|
|
|
on LimPloop pressed do
|
|
(
|
|
CryModelling.SelPolyLoop()
|
|
)
|
|
)
|
|
|
|
|
|
rollout Diagnostics "Diagnostics"
|
|
(
|
|
fn updatePolyStats =
|
|
(
|
|
if CryArtistTools.rollouts[2].open == true then
|
|
(
|
|
stats = crytools.polyStats()
|
|
CryArtistTools.rollouts[2].faceLBL.text = ("Faces: " + stats[1] as string)
|
|
CryArtistTools.rollouts[2].edgeLBL.text = ("Edges: " + stats[2] as string)
|
|
CryArtistTools.rollouts[2].vertLBL.text = ("Verts: " + stats[3] as string)
|
|
print (("Faces: " + stats[1] as string) + (" Edges: " + stats[2] as string) + (" Verts: " + stats[3] as string))
|
|
)
|
|
)
|
|
|
|
fn thinFatStats =
|
|
(
|
|
if CryArtistTools.rollouts[2].open == true then
|
|
(
|
|
if selection.count != 1 then
|
|
(
|
|
messagebox "select one mesh"
|
|
return undefined
|
|
)
|
|
base = (crytools.forcelowercase $.name)
|
|
base = crytools.cutstring base "_LOD1"
|
|
base = crytools.cutstring base "_LOD2"
|
|
base = crytools.cutstring base "_LOD3"
|
|
base = crytools.cutstring base "_thin"
|
|
base = crytools.cutstring base "_fat"
|
|
|
|
outText = ""
|
|
try(outText = (((getnodebyname base).mesh.verts.count as string) + " " + base + "\n"))catch(outText = "BASE_LOD0: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_thin")).mesh.verts.count as string) + " " + base + "_thin\n"))catch(outText += "THIN_LOD0: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_fat")).mesh.verts.count as string) + " " + base + "_fat\n"))catch(outText += "FAT_LOD0: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_LOD1")).mesh.verts.count as string) + " " + base + "_LOD1\n"))catch(outText += "LOD1: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_thin_LOD1")).mesh.verts.count as string) + " " + base + "_thin_LOD1\n"))catch(outText += "THIN_LOD1: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_fat_LOD1")).mesh.verts.count as string) + " " + base + "_fat_LOD1\n"))catch(outText += "FAT_LOD1: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_LOD2")).mesh.verts.count as string) + " " + base + "_LOD2\n"))catch(outText += "LOD2: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_thin_LOD2")).mesh.verts.count as string) + " " + base + "_thin_LOD2\n"))catch(outText += "THIN_LOD2: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_fat_LOD2")).mesh.verts.count as string) + " " + base + "_fat_LOD2\n"))catch(outText += "FAT_LOD2: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_LOD3")).mesh.verts.count as string) + " " + base + "_LOD3\n"))catch(outText += "LOD3: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_thin_LOD3")).mesh.verts.count as string) + " " + base + "_thin_LOD3\n"))catch(outText += "THIN_LOD3: NOT FOUND\n")
|
|
try(outText += (((getnodebyname (base + "_fat_LOD3")).mesh.verts.count as string) + " " + base + "_fat_LOD2"))catch(outText += "FAT_LOD3: NOT FOUND")
|
|
|
|
messagebox outText title:"Thin/Fat Mesh Check"
|
|
if cryartisttools.rollouts[2].printThinFat.checked == true then (print outText)
|
|
)
|
|
)
|
|
|
|
group "polyStats"
|
|
(
|
|
label faceLBL "Faces: " align:#left
|
|
label edgeLBL "Edges: " align:#left
|
|
label vertLBL "Verts: " align:#left
|
|
)
|
|
group "thin/fat meshCheck"
|
|
(
|
|
button thinFat "Thin/Fat Mesh Check"
|
|
checkbox printThinFat "Print to Listener" align:#center checked:true
|
|
)
|
|
|
|
on Diagnostics rolledUp state do
|
|
(
|
|
if state == true then
|
|
(
|
|
CryArtistTools.rollouts[2].updatePolyStats()
|
|
callbacks.addScript #selectionSetChanged "CryArtistTools.rollouts[2].updatePolyStats()" id:#updatePolyStats
|
|
)
|
|
else
|
|
(
|
|
callbacks.removeScripts id:#updatePolyStats
|
|
)
|
|
)
|
|
|
|
/*on Diagnostics open do
|
|
(
|
|
callbacks.addScript #selectionSetChanged "CryArtistTools.rollouts[2].updatePolyStats()" id:#updatePolyStats
|
|
)*/
|
|
|
|
on Diagnostics close do
|
|
(
|
|
callbacks.removeScripts id:#updatePolyStats
|
|
)
|
|
|
|
on thinFat pressed do
|
|
(
|
|
thinFatStats()
|
|
)
|
|
)
|
|
|
|
rollout metadataManager "CGF Metadata Manager"
|
|
(
|
|
label updateLBL "Info will be updated here"
|
|
button UpdateUDP " Update Data " Height:25 Enabled:false
|
|
button udpSetToSel " Apply Settings to Selected " height:25
|
|
checkbox useMass "Mass:" offset:[-10,0]
|
|
spinner objMass "" type:#float range:[0,99999,0] fieldWidth:50 offset:[-40,-20]
|
|
checkbox useDensity "Density:" offset:[-10,0]
|
|
spinner objDensity "" type:#float range:[0,99999,0] fieldWidth:50 offset:[-40,-20]
|
|
spinner objScale "Scale" type:#float range:[0,99999,100] fieldWidth:50 offset:[-40,0]
|
|
button selectAllMatching "Select Objects Matching Details"
|
|
dropdownlist SelObjs items:#("mass", "density", "limit", "twist", "bend", "pull", "push", "shift") width:65 offset:[-10,0]
|
|
dropdownlist GrtrOrSmlr items:#( "=", ">", "<") width:40 offset:[63,-27.5]
|
|
spinner SelVal type:#float range:[0,99999,0] fieldWidth:40 offset:[7,-25]
|
|
|
|
group "Force Primitives"
|
|
(
|
|
checkbox box1 "box"
|
|
checkbox cylinder1 "cylinder" offset:[40,-20]
|
|
checkbox sphere1 "sphere" offset:[100,-20]
|
|
checkbox capsule1 "capsule"
|
|
)
|
|
|
|
group "Joints"
|
|
(
|
|
checkbox useJoint "Enable joint properties"
|
|
checkbox jLimit "Limit:" offset:[55,0]
|
|
checkbox jTwist "Twist:" offset:[55,0]
|
|
checkbox jBend "Bend:" offset:[55,0]
|
|
checkbox jPull "Pull:" offset:[55,0]
|
|
checkbox jPush "Push:" offset:[55,0]
|
|
checkbox jShift "Shift:" offset:[55,0]
|
|
spinner jointLimit type:#float fieldWidth:35 offset:[0,-120]
|
|
spinner jointTwist type:#float fieldWidth:35 offset:[0,0]
|
|
spinner jointBend type:#float fieldWidth:35 offset:[0,0]
|
|
spinner jointPull type:#float fieldWidth:35 offset:[0,0]
|
|
spinner jointPush type:#float fieldWidth:35 offset:[0,0]
|
|
spinner jointShift type:#float fieldWidth:35 offset:[0,0]
|
|
checkbox jScale "Scale Properties:" offset:[0,10]
|
|
spinner jointScale type:#float range:[0,99999,100] fieldWidth:40 offset:[0,-20]
|
|
)
|
|
--group "General"
|
|
--(
|
|
--checkbox isPickable "pickable"
|
|
--)
|
|
group "destroyableObjects"
|
|
(
|
|
checkbox isMain "main"
|
|
checkbox isRemain "remain" offset:[47,-20]
|
|
spinner GenericCount "Generic:" type:#float fieldWidth:35 offset:[-70,0]
|
|
label spawnLocTXT "__Spawn Location_____________"
|
|
checkbox isEntity "entity"
|
|
--checkbox isBone "bone"
|
|
--edittext isBoneTXT "" offset:[45,-21] fieldWidth:60
|
|
--pickbutton pickBone "pick" offset:[62,-24]
|
|
label rotAxesTXT "rot axes" offset:[-60,0]
|
|
checkbutton xrot "x" offset:[-25,-21]
|
|
checkbutton yrot "y" offset:[0,-26]
|
|
checkbutton zrot "z" offset:[25,-26]
|
|
spinner sizeVar "size var:" type:#float fieldWidth:35 offset:[-70,0]
|
|
)
|
|
button openMetaDataLister "Open CGF Metadata Lister" enabled:false
|
|
|
|
on selectAllMatching pressed do
|
|
(
|
|
clearSelection()
|
|
for obj in objects do
|
|
(
|
|
UDPdata = crytools.inFromUDP obj
|
|
for x = 1 to UDPdata.count do
|
|
(
|
|
if (filterstring UDPdata[x] " =")[1] == SelObjs.selected then
|
|
(
|
|
EquateVal = GrtrOrSmlr.selected
|
|
case EquateVal of
|
|
(
|
|
"=":
|
|
(
|
|
if (filterstring UDPdata[x] " =")[2] as float == SelVal.value then selectmore obj
|
|
)
|
|
|
|
">":
|
|
(
|
|
if (filterstring UDPdata[x] " =")[2] as float > SelVal.value then selectmore obj
|
|
)
|
|
|
|
"<":
|
|
(
|
|
if (filterstring UDPdata[x] " =")[2] as float < SelVal.value then selectmore obj
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on metadataManager open do
|
|
(
|
|
--isBoneTXT.enabled = false
|
|
--isBoneTXT.text = "bone name"
|
|
objDensity.value = 0
|
|
objMass.value = 0
|
|
objDensity.enabled = false
|
|
objMass.enabled = false
|
|
udpGetFromSel()
|
|
|
|
--callbacks.removeScripts id:#updateUDP
|
|
--callbacks.addScript #selectionSetChanged "udpGetFromSel()" id:#updateUDP
|
|
)
|
|
|
|
|
|
on metadataManager rolledUp state do
|
|
(
|
|
if state then --set callback for dynamic change based on selection
|
|
(
|
|
callbacks.removeScripts id:#updateUDP
|
|
callbacks.addScript #selectionSetChanged "udpGetFromSel()" id:#updateUDP
|
|
)
|
|
else --removie callbacks if the rollout is rolled up
|
|
(
|
|
callbacks.removeScripts id:#updateUDP
|
|
)
|
|
)
|
|
|
|
on useMass changed state do --Mass checkbox behaviour
|
|
(
|
|
if useMass.checked == true then
|
|
(
|
|
if useJoint.checked == true then
|
|
(
|
|
messagebox "Joints cannot have a mass or density!"
|
|
useMass.checked = false
|
|
return undefined
|
|
)
|
|
objMass.enabled = true
|
|
objDensity.enabled = false
|
|
useDensity.checked = false
|
|
)
|
|
else
|
|
(
|
|
objMass.enabled = false
|
|
)
|
|
)
|
|
|
|
on useDensity changed state do --Density checkbox behaviour
|
|
(
|
|
if useDensity.checked == true then
|
|
(
|
|
if useJoint.checked == true then
|
|
(
|
|
messagebox "Joints cannot have a mass or density!"
|
|
useDensity.checked = false
|
|
return undefined
|
|
)
|
|
objDensity.enabled = true
|
|
objMass.enabled = false
|
|
useMass.checked = false
|
|
)
|
|
else
|
|
(
|
|
objDensity.enabled = false
|
|
)
|
|
)
|
|
|
|
--Primitives checkboxes behaviors
|
|
on box1 changed state do
|
|
(
|
|
if box1.checked == true then
|
|
(
|
|
cylinder1.checked = false
|
|
sphere1.checked = false
|
|
capsule1.checked = false
|
|
)
|
|
)
|
|
|
|
on cylinder1 changed state do
|
|
(
|
|
if cylinder1.checked == true then
|
|
(
|
|
box1.checked = false
|
|
sphere1.checked = false
|
|
capsule1.checked = false
|
|
)
|
|
)
|
|
|
|
on sphere1 changed state do
|
|
(
|
|
if sphere1.checked == true then
|
|
(
|
|
cylinder1.checked = false
|
|
box1.checked = false
|
|
capsule1.checked = false
|
|
)
|
|
)
|
|
|
|
on capsule1 changed state do
|
|
(
|
|
if capsule1.checked == true then
|
|
(
|
|
cylinder1.checked = false
|
|
sphere1.checked = false
|
|
box1.checked = false
|
|
)
|
|
)
|
|
|
|
--Joint Properties checkboxes behaviors
|
|
on jLimit changed state do
|
|
(
|
|
if jLimit.checked == true then
|
|
(
|
|
jointLimit.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointLimit.enabled = true
|
|
)
|
|
)
|
|
|
|
on jTwist changed state do
|
|
(
|
|
if jTwist.checked == true then
|
|
(
|
|
jointTwist.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointTwist.enabled = true
|
|
)
|
|
)
|
|
|
|
on jBend changed state do
|
|
(
|
|
if jBend.checked == true then
|
|
(
|
|
jointBend.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointBend.enabled = true
|
|
)
|
|
)
|
|
|
|
on jPull changed state do
|
|
(
|
|
if jPull.checked == true then
|
|
(
|
|
jointPull.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointPull.enabled = true
|
|
)
|
|
)
|
|
|
|
on jPush changed state do
|
|
(
|
|
if jPush.checked == true then
|
|
(
|
|
jointPush.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointPush.enabled = true
|
|
)
|
|
)
|
|
|
|
on jShift changed state do
|
|
(
|
|
if jShift.checked == true then
|
|
(
|
|
jointShift.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointShift.enabled = true
|
|
)
|
|
)
|
|
on jScale changed state do
|
|
(
|
|
if jScale.checked == true then
|
|
(
|
|
jointScale.enabled = true
|
|
|
|
jointLimit.enabled = false
|
|
jointTwist.enabled = false
|
|
jointBend.enabled = false
|
|
jointPull.enabled = false
|
|
jointPush.enabled = false
|
|
jointShift.enabled = false
|
|
)
|
|
else
|
|
(
|
|
jointScale.enabled = false
|
|
|
|
jointLimit.enabled = true
|
|
jointTwist.enabled = true
|
|
jointBend.enabled = true
|
|
jointPull.enabled = true
|
|
jointPush.enabled = true
|
|
jointShift.enabled = true
|
|
)
|
|
)
|
|
|
|
---------------------------------------------
|
|
--------------Applying Settings------------
|
|
---------------------------------------------
|
|
|
|
on udpSetToSel pressed do
|
|
(
|
|
for obj in selection do
|
|
(
|
|
udpInARR = crytools.inFromUDP obj
|
|
|
|
-- MASS OUTPUT ----------------------------------------
|
|
if useMass.checked == true then
|
|
(
|
|
massVal = ("mass = " + objMass.value as string)
|
|
crytools.LookAndWrite obj massVal
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "mass"
|
|
)
|
|
|
|
-- DENSITY OUTPUT ----------------------------------------
|
|
if useDensity.checked == true then
|
|
(
|
|
densityVal = ("density = " + objDensity.value as string)
|
|
crytools.LookAndWrite obj densityVal
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "density"
|
|
)
|
|
|
|
-- FORCE PRIMITIVES OUTPUT ----------------------------------------
|
|
if box1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "box"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "box"
|
|
)
|
|
)
|
|
if sphere1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "sphere"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "sphere"
|
|
)
|
|
)
|
|
if cylinder1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "cylinder"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "cylinder"
|
|
)
|
|
)
|
|
if capsule1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "capsule"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "capsule"
|
|
)
|
|
)
|
|
|
|
--------JOINT PROPERTIES---------
|
|
if useJoint.checked == true then
|
|
(
|
|
if jointLimit.value != 0 then
|
|
(
|
|
jLim = ("limit = " + jointLimit.value as string)
|
|
crytools.LookAndWrite obj jLim
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "limit"
|
|
)
|
|
)
|
|
|
|
if jointTwist.enabled == true and jointTwist.value != 0 then
|
|
(
|
|
jTwis = ("twist = " + jointTwist.value as string)
|
|
crytools.LookAndWrite obj jTwis
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "twist"
|
|
)
|
|
)
|
|
|
|
if jointBend.value != 0 then
|
|
(
|
|
jBen = ("bend = " + jointBend.value as string)
|
|
crytools.LookAndWrite obj jBen
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "bend"
|
|
)
|
|
)
|
|
|
|
if jointPull.value != 0 then
|
|
(
|
|
jPul = ("pull = " + jointPull.value as string)
|
|
crytools.LookAndWrite obj jPul
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "pull"
|
|
)
|
|
)
|
|
|
|
if jointPush.value != 0 then
|
|
(
|
|
jPus = ("push = " + jointPush.value as string)
|
|
crytools.LookAndWrite obj jPus
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "push"
|
|
)
|
|
)
|
|
|
|
if jointShift.value != 0 then
|
|
(
|
|
jShif = ("shift = " + jointShift.value as string)
|
|
crytools.LookAndWrite obj jShif
|
|
)
|
|
else
|
|
(
|
|
if jScale.checked == false then
|
|
(
|
|
cryTools.LookAndDelete obj "shift"
|
|
)
|
|
)
|
|
|
|
---------Scale Joint Properties----------
|
|
jSclVal = (jointScale.value/100)
|
|
if jSclVal != 1 then
|
|
(
|
|
if jLimit.checked == true then
|
|
(
|
|
if jointLimit.value != 0 then
|
|
(
|
|
jLim = ("limit = " + (jointLimit.value * jSclVal) as string)
|
|
crytools.LookAndWrite obj jLim
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "limit") !=0 then
|
|
(
|
|
jLim = ("limit = " + ((crytools.getUDP obj "limit") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jLim
|
|
)
|
|
)
|
|
)
|
|
|
|
if jTwist.checked == true then
|
|
(
|
|
if jointTwist.value != 0 then
|
|
(
|
|
jTwis = ("twist = " + (jointTwist.value*jSclVal) as string)
|
|
crytools.LookAndWrite obj jTwis
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "twist") !=0 then
|
|
(
|
|
jTwis = ("twist = " + ((crytools.getUDP obj "twist") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jLim
|
|
)
|
|
)
|
|
)
|
|
|
|
if jBend.checked == true then
|
|
(
|
|
if jointBend.value != 0 then
|
|
(
|
|
jBen = ("bend = " + (jointBend.value*jSclVal) as string)
|
|
crytools.LookAndWrite obj jBen
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "bend") !=0 then
|
|
(
|
|
jBen = ("bend = " + ((crytools.getUDP obj "bend") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jBen
|
|
)
|
|
)
|
|
)
|
|
|
|
if jPull.checked == true then
|
|
(
|
|
if jointPull.value != 0 then
|
|
(
|
|
jPul = ("pull = " + (jointPull.value*jSclVal) as string)
|
|
crytools.LookAndWrite obj jPul
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "pull") !=0 then
|
|
(
|
|
jPul = ("pull = " + ((crytools.getUDP obj "pull") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jPul
|
|
)
|
|
)
|
|
)
|
|
|
|
if jPush.checked == true then
|
|
(
|
|
if jointPush.value != 0 then
|
|
(
|
|
jPus = ("push = " + (jointPush.value*jSclVal) as string)
|
|
crytools.LookAndWrite obj jPus
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "push") !=0 then
|
|
(
|
|
jPus = ("push = " + ((crytools.getUDP obj "push") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jPus
|
|
)
|
|
)
|
|
)
|
|
|
|
if jShift.checked == true then
|
|
(
|
|
if jointShift.value != 0 then
|
|
(
|
|
jShif = ("shift = " + (jointShift.value*jSclVal) as string)
|
|
crytools.LookAndWrite obj jShif
|
|
)
|
|
else
|
|
(
|
|
if (crytools.getUDP obj "shift") !=0 then
|
|
(
|
|
jShif = ("shift = " + ((crytools.getUDP obj "shift") * jSclVal) as string)
|
|
crytools.LookAndWrite obj jShif
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "limit"
|
|
cryTools.LookAndDelete obj "twist"
|
|
cryTools.LookAndDelete obj "bend"
|
|
cryTools.LookAndDelete obj "pull"
|
|
cryTools.LookAndDelete obj "push"
|
|
cryTools.LookAndDelete obj "shift"
|
|
)
|
|
|
|
------------Destroyable Objects------------
|
|
if isMain.checked == true then obj.name = "Main"
|
|
if isRemain.checked == true then obj.name = "Remain"
|
|
|
|
if isEntity.checked == true then
|
|
(
|
|
crytools.LookAndWrite obj "entity"
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "entity"
|
|
)
|
|
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = x"
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xy"
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = y"
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xy"
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = yz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = z"
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = yz"
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
if xrot.checked ==false and yrot.checked==false and zrot.checked==false then
|
|
(
|
|
crytools.LookAndDelete obj "rotaxes"
|
|
)
|
|
|
|
if sizeVar.value != 0 then
|
|
(
|
|
Var = ("sizevar = " + sizeVar.value as string)
|
|
crytools.LookAndWrite obj Var
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "sizevar"
|
|
)
|
|
|
|
if GenericCount.value != 0 then
|
|
(
|
|
GenCount = ("generic = " + GenericCount.value as string)
|
|
crytools.LookAndWrite obj GenCount
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "generic"
|
|
)
|
|
)
|
|
)
|
|
|
|
------------------------------------------------
|
|
--------------Updating Settings--------------
|
|
------------------------------------------------
|
|
|
|
on UpdateUDP pressed do
|
|
(
|
|
SclVal =(objScale.value/100)
|
|
for obj in selection do
|
|
(
|
|
udpInARR = crytools.inFromUDP obj
|
|
-- SCALE OUTPUT ---------------------------------------
|
|
if SclVal != 1 then
|
|
(
|
|
--Scale Mass--
|
|
testFor = filterstring udpInARR[1] " ="
|
|
|
|
if testFor[1] == "mass" then
|
|
(
|
|
massVal = ("mass = " + ((testFor[2] as float)*SclVal)as string)
|
|
udpInARR[1] = massVal
|
|
crytools.outToUDP udpInARR obj false
|
|
)
|
|
--Scale Density--
|
|
if testFor[1] == "density" then
|
|
(
|
|
densityVal = ("density =" + ((testFor[2] as float)*SclVal)as string)
|
|
udpInARR[1] = densityVal
|
|
crytools.outToUDP udpInARR obj false
|
|
)
|
|
)
|
|
|
|
-- MASS OUTPUT ---------------------------------------
|
|
|
|
if useMass.checked == true then
|
|
(
|
|
massVal = ("mass = " + objMass.value as string)
|
|
crytools.LookAndWrite obj massVal
|
|
)
|
|
else
|
|
(
|
|
|
|
)
|
|
|
|
-- DENSITY OUTPUT ----------------------------------------
|
|
if useDensity.checked == true then
|
|
(
|
|
densityVal = ("density = " + objDensity.value as string)
|
|
crytools.LookAndWrite obj densityVal
|
|
)
|
|
else
|
|
(
|
|
|
|
)
|
|
|
|
-- FORCE PRIMITIVES OUTPUT ----------------------------------------
|
|
if box1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "box"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "box"
|
|
)
|
|
)
|
|
if sphere1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "sphere"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "sphere"
|
|
)
|
|
)
|
|
if cylinder1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "cylinder"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "cylinder"
|
|
)
|
|
)
|
|
if capsule1.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
crytools.LookAndWrite obj "capsule"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
for obj in selection do
|
|
(
|
|
cryTools.LookAndDelete obj "capsule"
|
|
)
|
|
)
|
|
|
|
--------JOINT PROPERTIES---------
|
|
if useJoint.checked == true then
|
|
(
|
|
if jointLimit.value != 0 then
|
|
(
|
|
jLim = ("limit = " + jointLimit.value as string)
|
|
crytools.LookAndWrite obj jLim
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "limit"
|
|
)
|
|
|
|
if jointTwist.value != 0 then
|
|
(
|
|
jTwis = ("twist = " + jointTwist.value as string)
|
|
crytools.LookAndWrite obj jTwis
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "twist"
|
|
)
|
|
|
|
if jointBend.value != 0 then
|
|
(
|
|
jBen = ("bend = " + jointBend.value as string)
|
|
crytools.LookAndWrite obj jBen
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "bend"
|
|
)
|
|
|
|
if jointPull.value != 0 then
|
|
(
|
|
jPul = ("pull = " + jointPull.value as string)
|
|
crytools.LookAndWrite obj jPul
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "pull"
|
|
)
|
|
|
|
if jointPush.value != 0 then
|
|
(
|
|
jPus = ("push = " + jointPush.value as string)
|
|
crytools.LookAndWrite obj jPus
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "push"
|
|
)
|
|
|
|
if jointShift.value != 0 then
|
|
(
|
|
jShif = ("shift = " + jointShift.value as string)
|
|
crytools.LookAndWrite obj jShif
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "shift"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
cryTools.LookAndDelete obj "limit"
|
|
cryTools.LookAndDelete obj "twist"
|
|
cryTools.LookAndDelete obj "bend"
|
|
cryTools.LookAndDelete obj "pull"
|
|
cryTools.LookAndDelete obj "push"
|
|
cryTools.LookAndDelete obj "shift"
|
|
)
|
|
------------Destroyable Objects------------
|
|
if isMain.checked == true then obj.name = "Main"
|
|
if isRemain.checked == true then obj.name = "Remain"
|
|
|
|
if isEntity.checked == true then
|
|
(
|
|
crytools.LookAndWrite obj "entity"
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "entity"
|
|
)
|
|
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = x"
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xy"
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = y"
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xy"
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = yz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
|
|
if zrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = z"
|
|
if yrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = yz"
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xyz"
|
|
)
|
|
)
|
|
else
|
|
(
|
|
if xrot.checked == true then
|
|
(
|
|
AxisRotations = "rotaxes = xz"
|
|
)
|
|
)
|
|
crytools.LookAndWrite obj AxisRotations
|
|
)
|
|
if xrot.checked ==false and yrot.checked==false and zrot.checked==false then
|
|
(
|
|
crytools.LookAndDelete obj "rotaxes"
|
|
)
|
|
|
|
if sizeVar.value != 0 then
|
|
(
|
|
Var = ("sizevar = " + sizeVar.value as string)
|
|
crytools.LookAndWrite obj Var
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "sizevar"
|
|
)
|
|
|
|
if GenericCount.value != 0 then
|
|
(
|
|
GenCount = ("generic = " + GenericCount.value as string)
|
|
crytools.LookAndWrite obj GenCount
|
|
)
|
|
else
|
|
(
|
|
crytools.LookAndDelete obj "generic"
|
|
)
|
|
)
|
|
)
|
|
|
|
on useJoint changed state do
|
|
(
|
|
for obj in selection do
|
|
(
|
|
if (classof obj) != Dummy then
|
|
(
|
|
if (classof obj) != Point then
|
|
(
|
|
messagebox "Only Helper objects can be joints\nThe selected objects are not all Dummy or Point helpers"
|
|
useJoint.checked = false
|
|
return undefined
|
|
)
|
|
)
|
|
)
|
|
if useJoint.checked == true then
|
|
(
|
|
jointLimit.enabled = true
|
|
jointTwist.enabled = true
|
|
jointBend.enabled = true
|
|
jointPull.enabled = true
|
|
jointPush.enabled = true
|
|
jointShift.enabled = true
|
|
|
|
jLimit.enabled = true
|
|
jTwist.enabled = true
|
|
jBend.enabled = true
|
|
jPull.enabled = true
|
|
jPush.enabled = true
|
|
jShift.enabled = true
|
|
jScale.enabled = true
|
|
|
|
)
|
|
else
|
|
(
|
|
jointLimit.enabled = false
|
|
jointTwist.enabled = false
|
|
jointBend.enabled = false
|
|
jointPull.enabled = false
|
|
jointPush.enabled = false
|
|
jointShift.enabled = false
|
|
|
|
jLimit.enabled = false
|
|
jTwist.enabled = false
|
|
jBend.enabled = false
|
|
jPull.enabled = false
|
|
jPush.enabled = false
|
|
jShift.enabled = false
|
|
jScale.enabled = false
|
|
|
|
)
|
|
)
|
|
|
|
|
|
------PICKABLE GENERAL PROPERTY------
|
|
on isPickable changed state do
|
|
(
|
|
if ispickable.checked == true then
|
|
(
|
|
for obj in selection do
|
|
(
|
|
|
|
)
|
|
)
|
|
)
|
|
|
|
---------DESTROYABLE OBJECTS-------------
|
|
on isMain changed state do
|
|
(
|
|
MainPresent = false
|
|
for x in objects do
|
|
(
|
|
if x.name == "Main" then MainPresent = true
|
|
)
|
|
if MainPresent == true then
|
|
(
|
|
messagebox "There can only be one Main object"
|
|
isMain.checked = false
|
|
)
|
|
if isMain.checked == true then isRemain.checked=false
|
|
)
|
|
on isRemain changed state do
|
|
(
|
|
RemainPresent = false
|
|
for x in objects do
|
|
(
|
|
if x.name == "Remain" then RemainPresent = true
|
|
)
|
|
if RemainPresent == true then
|
|
(
|
|
messagebox "There can only be one Remain object"
|
|
isRemain.checked = false
|
|
)
|
|
if isRemain.checked == true then isMain.checked=false
|
|
)
|
|
|
|
|
|
on isBone changed state do
|
|
(
|
|
if isBone.checked == true then
|
|
(
|
|
isBoneTXT.enabled = true
|
|
)
|
|
else
|
|
(
|
|
isBoneTXT.enabled = false
|
|
)
|
|
)
|
|
|
|
---------------------------------------------
|
|
-------CGF METADATA LISTER---------
|
|
---------------------------------------------
|
|
|
|
/*on openMetaDataLister pressed do
|
|
(
|
|
rollout listview_rollout "CGF MetaData Lister"
|
|
(
|
|
fn initListView lv =
|
|
(
|
|
lv.gridLines = true
|
|
lv.View = #lvwReport
|
|
lv.fullRowSelect = true
|
|
|
|
layout_def = #("Node","Mass","Density","Primitive","Joint","Limit,Twist,Bend,Pull,Push,Shift")
|
|
|
|
for i in layout_def do
|
|
(
|
|
column = lv.ColumnHeaders.add()
|
|
column.text = I
|
|
column.width = 1500
|
|
if (column.text = I) == "Limit,Twist,Bend,Pull,Push,Shift" then
|
|
(
|
|
column.width = 4300
|
|
)
|
|
)
|
|
)
|
|
|
|
fn fillInSpreadSheet lv =
|
|
(
|
|
for o in selection do
|
|
(
|
|
li = lv.ListItems.add()
|
|
li.text = o.name
|
|
sub_li = li.ListSubItems.add()
|
|
sub_li.text = (crytools.getUDP o "mass") as string
|
|
sub_li = li.ListSubItems.add()
|
|
sub_li.text = (crytools.getUDP o "density") as string
|
|
sub_li = li.ListSubItems.add()
|
|
sub_li.text = try((o.mesh.numfaces) as string)catch("--")
|
|
sub_li = li.ListSubItems.add()
|
|
sub_li.text = (o.material) as string
|
|
)
|
|
)
|
|
|
|
activeXControl lv_objects "MSComctlLib.ListViewCtrl" width:790 height:190 align:#center
|
|
on listview_rollout open do
|
|
(
|
|
initListView lv_objects
|
|
fillInSpreadSheet lv_objects
|
|
)
|
|
)
|
|
|
|
try(destroyDialog listview_rollout)catch()
|
|
createDialog listview_rollout 800 200
|
|
)*/
|
|
)
|
|
|
|
addRollout ArtistTools CryArtistTools
|
|
addRollout Diagnostics CryArtistTools rolledup:true
|
|
addRollout metadataManager CryArtistTools rolledup:true
|
|
)
|
|
|
|
|