Files
2025-09-29 00:52:08 +02:00

1633 lines
82 KiB
Plaintext
Executable File

---------------------------------------------------------------------------------------------------------------------------------------
-- RSL_CollisionOps2SelectDisplay
-- By Paul Truss
-- Senior Technical Artist
-- Rockstar Games London
-- 12/01/2011
--
-- Modified for Rockstar North by Neil Gregory
-- 07/2011
--
--
-- Structure containing functions and UI used by RSL_CollisionOps2 in select/display mode
---------------------------------------------------------------------------------------------------------------------------------------
-- struct used to store both rexBound and standard attribute data for attributes e.g. stairs
struct RSL_flag
(
---------------------------------------------------------------------------------------------------------------------------------------
-- Struct variables
---------------------------------------------------------------------------------------------------------------------------------------
name,
attr,
rex,
value,
---------------------------------------------------------------------------------------------------------------------------------------
--
-- FUNCTIONS
--
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
-- compare() Compares the parsed flag with the struct variables. Returns true if they are the same.
-- name and value struct variables are ignored.
---------------------------------------------------------------------------------------------------------------------------------------
fn compare flag =
(
if flag.attr == attr and flag.rex == rex then
(
true
)
else
(
false
)
)
)
-- main struct
struct RSL_CollisionOps2SelectDisplay
(
---------------------------------------------------------------------------------------------------------------------------------------
-- Struct variables
---------------------------------------------------------------------------------------------------------------------------------------
INIfile = (RsConfigGetWildWestDir() + "etc/config/general/collisionOps2.ini"),
hideClassArray = #(),
hideFlagArray = #(),
otherHelpersArray = #(),
hiddenObjectArray = #(),
selectObjectArray = #(),
HiddenFlagArray = #(),
selectFlagArray = #(),
hiddenSurfaceArray = #(),
unHiddenSurfaceArray = #(),
objectsurfaceTypeArray = #(),
hiddenIcon = (RsConfigGetWildWestDir() + "script\\max\\Rockstar_London\\images\\EyeClosed.png"),
unHiddenIcon = (RsConfigGetWildWestDir() + "script\\max\\Rockstar_London\\images\\EyeOpen.png"),
ignoreCheck = false,
---------------------------------------------------------------------------------------------------------------------------------------
-- UI variables
---------------------------------------------------------------------------------------------------------------------------------------
checkButtonType = (dotNetObject "CheckBox").getType(),
selectDisplayTableLayout,
colTypeTableLayout,
meshHideCheckButton,meshSelectButton,boxHideCheckButton,boxSelectButton,capsuleHideCheckButton,capsuleSelectButton,
cylinderHideCheckButton,cylinderSelectButton,planeHideCheckButton,planeSelectButton,sphereHideCheckButton,sphereSelectButton,
colTypeAllButton,colTypeNoneButton,colTypeInvertButton,
attributeHideButton,attributeSelectButton,
surfaceTypeDataGrid,surfaceTypeAllButton,surfaceTypeNoneButton,surfaceTypeInvertButton,
attributesTableLayout,
cameraHideCheckButton,cameraSelectButton,physicsHideCheckButton,physicsSelectButton,
hiDetailHideCheckButton,hiDetailSelectButton,locoHideCheckButton,locoSelectButton,
stairsHideCheckButton,stairsSelectButton,noCoverHideCheckButton,noCoverSelectButton,
noClimbHideCheckButton,noClimbSelectButton,noWalkHideCheckButton,noWalkSelectButton,
seeHideCheckButton,seeSelectButton,noCamHideCheckButton,noCamSelectButton,
shootHideCheckButton,shootSelectButton,
attributeAllButton,attributeNoneButton,attributeInvertButton,
---------------------------------------------------------------------------------------------------------------------------------------
--
-- FUNCTIONS
--
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
-- hideByClass() Sets the isHidden state for each parsed object to the parsed state if it is the same class as the parsed class
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn hideByClass object class state =
(
-- make sure we only do this for collision objects
if (getAttrClass object) == "Gta Collision" then
(
if (classOf object) == class then
(
object.isHidden = state
if state then
(
appendIfUnique hiddenObjectArray object
)
else
(
local index = (findItem hiddenObjectArray object)
if index > 0 then
(
deleteItem hiddenObjectArray index
)
)
)
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- selectByClass() Selects each parsed object if it is the same class as the parsed class
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn selectByClass object class =
(
if (classOf object) == class then
(
selectMore object
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- isRexBound() Checks to see if the object contains any rexBound materials. Returns true if rexBound materials are found
---------------------------------------------------------------------------------------------------------------------------------------
fn isRexBound object =
(
local result = true
if object.material != undefined then
(
case (classOf object.material) of
(
default:
(
result = false
)
RexBoundMtl:
(
result = true
)
Multimaterial:
(
for i = 1 to object.material.materialList.count do
(
local subMaterial = object.material.materialList[i]
if (classOf subMaterial) == RexBoundMtl then
(
result = true
)
)
)
)
)
else
(
result = false
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getFlagRexBound() Checks to see if any of the rexBound materials assigned to the parsed object have the parsed flag set
-- Returns true if the flag is found
---------------------------------------------------------------------------------------------------------------------------------------
fn getFlagRexBound object flag =
(
local result = false
local material = object.material
case (classOf material) of
(
RexBoundMtl:
(
local flags = RexGetCollisionFlags material
if (bit.and flags (bit.shift 1 flag.rex) > 0) then
(
result = true
)
)
Multimaterial:
(
for i = 1 to material.materialList.count do
(
local subMaterial = material.materialList[i]
if (classOf subMaterial) == RexBoundMtl then
(
local flags = RexGetCollisionFlags subMaterial
if (bit.and flags (bit.shift 1 flag.rex) > 0) then
(
result = true
)
)
)
)
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getFlagAttribute() Checks to see if the parsed object has the parsed flag attribute set. Returns true if the flag is set
---------------------------------------------------------------------------------------------------------------------------------------
fn getFlagAttribute object flag =
(
try (getAttr object flag.attr) catch (false)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getFlagRexBound() Checks to see if any of the rexBound materials assigned to the parsed object have the parsed surfaceType
-- Returns true if the surfaceType is found
---------------------------------------------------------------------------------------------------------------------------------------
fn hasSurfaceTypeRexBound object surfaceType =
(
local result = false
local material = object.material
case (classOf material) of
(
RexBoundMtl:
(
local sType = RexGetCollisionName material
if (toUpper sType) == (toUpper surfaceType) then
(
result = true
)
)
Multimaterial:
(
for i = 1 to material.materialList.count do
(
local subMaterial = material.materialList[i]
if (classOf subMaterial) == RexBoundMtl then
(
local sType = RexGetCollisionName subMaterial
if (toUpper sType) == (toUpper surfaceType) then
(
result = true
)
)
)
)
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getFlagAttribute() Checks to see if the parsed object has the parsed surfaceType attribute set. Returns true if the flag is set
---------------------------------------------------------------------------------------------------------------------------------------
fn hasSurfaceTypeAttribute object surfaceType =
(
local sType = getAttr object (getAttrIndex "Gta Collision" "Coll Type")
if (toUpper sType) == (toUpper surfaceType) then
(
true
)
else
(
false
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getSurfaceTypeRexBound() Gathers all the surface types set for the parsed object from the rexBound materials. Returns
-- an array
---------------------------------------------------------------------------------------------------------------------------------------
fn getSurfaceTypeRexBound object =
(
local result = #()
local material = object.material
case (classOf material) of
(
RexBoundMtl:
(
append result (RexGetCollisionName material)
)
Multimaterial:
(
for i = 1 to material.materialList.count do
(
local subMaterial = material.materialList[i]
if (classOf subMaterial) == RexBoundMtl then
(
append result (RexGetCollisionName subMaterial)
)
)
)
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getSurfaceTypeRexBound() Gets the surface type attribute set for the parsed object. Returns an array
---------------------------------------------------------------------------------------------------------------------------------------
fn getSurfaceTypeAttribute object =
(
#(getAttr object (getAttrIndex "Gta Collision" "Coll Type"))
),
---------------------------------------------------------------------------------------------------------------------------------------
-- recurseCheckAttributes() Checks to see if the parsed attribute control, if it's marked as visible (un-checked), is set on
-- the parsed object. Returns false if found because this is used to set the isHidden state of the parsed object.
---------------------------------------------------------------------------------------------------------------------------------------
fn recurseCheckAttributes control object &hideState =
(
-- make sure the control is a check button and it's un-checked
if control.getType() == checkButtonType and not control.checked then
(
local flag = control.tag.value
local rexBound = isRexBound object
local state
if rexBound and flag.rex != undefined then
(
state = getFlagRexBound object flag
)
else
(
state = getFlagAttribute object flag
)
if state then hideState = false
)
-- run the function on any sub controls of the control because the controls are embedded
for i = 0 to control.controls.count - 1 do
(
local subControl = control.controls.item[i]
recurseCheckAttributes subControl object &hideState
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- hideByAttributes() Sets the isHidden state for each parsed object based on the attributes
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn hideByAttributes object =
(
-- make sure we only do this for collision objects
if (getAttrClass object) == "Gta Collision" then
(
local hideState = true
-- check the attribute check buttons to see if any visible controls are attributes the object has
recurseCheckAttributes attributesTableLayout object &hideState
object.isHidden = hideState
if hideState then
(
appendIfUnique HiddenFlagArray object
)
else
(
local index = findItem HiddenFlagArray object
if index > 0 then
(
deleteItem HiddenFlagArray index
)
)
)
else
(
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- selectByAttribute() Selects each parsed object if it has the parsed flag attribute set
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn selectByAttribute object flag =
(
-- make sure we only do this for collision objects
if (getAttrClass object) == "Gta Collision" then
(
local rexBound = isRexBound object
local state
-- get the state of the flag on the object using the correct function
if rexBound and flag.rex != undefined then
(
state = getFlagRexBound object flag
)
else
(
state = getFlagAttribute object flag
)
if state then
(
selectMore object
)
)
else
(
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- gatherObjectSurfaceTypes() Populates the objectSurfaceTypeArray with a dataPair containing surface types set for
-- each parsed object
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn gatherObjectSurfaceTypes object =
(
-- make sure we only do this for collision objects
if (getAttrClass object) == "Gta Collision" then
(
local data = DataPair object:object surfaceTypeArray:#()
local rexBound = isRexBound object
local state
if rexBound then
(
data.surfaceTypeArray = getSurfaceTypeRexBound object
)
else
(
data.surfaceTypeArray = getSurfaceTypeAttribute object
)
append objectSurfaceTypeArray data
)
else
(
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- hasSurfaceType() Searches the objectSurfaceTypeArray for the parsed object to see if it has the parsed type assigned.
-- Returns true if found
---------------------------------------------------------------------------------------------------------------------------------------
fn hasSurfaceType object type =
(
local result = false
for entry in objectSurfaceTypeArray do
(
if entry.object == object then
(
if (findItem entry.surfaceTypeArray type) > 0 then
(
result = true
)
)
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- checkSurfaceTypes() Checks to see if any of the surface type dataGrid items, if they're marked as visible, are assigned
-- to the parsed object. Returns false if any are found because this is used to set the isHidden state of the parsed object.
---------------------------------------------------------------------------------------------------------------------------------------
fn checkSurfaceTypes object =
(
local result = true
for i = 0 to surfaceTypeDataGrid.Rows.count - 1 do
(
local row = surfaceTypeDataGrid.Rows.Item[i]
local hidden = row.cells.item[3].value
if not hidden then
(
local surfaceType = row.Cells.Item[0].value
local state = hasSurfaceType object surfaceType
if state then result = false
)
)
result
),
---------------------------------------------------------------------------------------------------------------------------------------
-- hideBySurfaceType() Sets the isHidden state for each parsed object based on the surface type
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn hideBySurfaceType object =
(
if (getAttrClass object) == "Gta Collision" then
(
local hideState = checkSurfaceTypes object
if hideState then
(
append hiddenSurfaceArray object
)
else
(
append unHiddenSurfaceArray object
)
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- hideBySurfaceType() Selects each parsed object if it has the parsed surfaceType set
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn selectBySurfaceType object surfaceType =
(
if (getAttrClass object) == "Gta Collision" then
(
local state = hasSurfaceType object surfaceType
if state then
(
selectMore object
)
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- exitSelectDisplay() Unhides any objects in the hiddenObjectArray and HiddenFlagArray variables.
-- CURRENTLY NOT USED
---------------------------------------------------------------------------------------------------------------------------------------
fn exitSelectDisplay =
(
if colTypeHideButton != undefined and colTypeHideButton.checked then
(
unHide hiddenObjectArray
unHide HiddenFlagArray
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- hideBySurfaceType() Recursive function that sets the check state property of the parsed control to the parsed state
---------------------------------------------------------------------------------------------------------------------------------------
fn recurseSetCheck control state =
(
-- make sure we only set this on check buttons
if control.getType() == checkButtonType then
(
if state == #invert then
(
control.checked = not control.checked
)
else
(
control.checked = state
)
)
for i = 0 to control.controls.count - 1 do
(
local subControl = control.controls.item[i]
recurseSetCheck subControl state
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- setupDataColumns() Sets up the data columns for the surfaceTypeDataGrid
---------------------------------------------------------------------------------------------------------------------------------------
fn setupDataColumns =
(
local nameColumn = dotNetObject "System.Windows.Forms.DataGridViewTextBoxColumn"
nameColumn.width = 200
-- set the AutoSizeMode so that this column resizes to fit the available area when the form is resized
nameColumn.AutoSizeMode = (dotNetClass "System.Windows.Forms.DataGridViewAutoSizeColumnMode").Fill
nameColumn.fillWeight = 100
nameColumn.ReadOnly = true
local hideColumn = dotNetObject "System.Windows.Forms.DataGridViewImageColumn"
hideColumn.width = 24
local selectColumn = dotNetObject "System.Windows.Forms.DataGridViewButtonColumn"
selectColumn.width = 24
-- this column is hidden and only used internally
local checkColumn = dotNetObject "System.Windows.Forms.DataGridViewCheckBoxColumn"
checkColumn.width = 0
surfaceTypeDataGrid.columns.AddRange #(nameColumn, hideColumn, selectColumn, checkColumn)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- addSurfaceTypeData() Creates a row for each parsed surfaceType and assigns it to the surfaceTypeDataGrid
---------------------------------------------------------------------------------------------------------------------------------------
mapped fn addSurfaceTypeData surfaceType =
(
surfaceTypeDataGrid.Rows.add #(surfaceType.type, (RS_dotNetObject.imageObject unHiddenIcon), "S")
local row = surfaceTypeDataGrid.Rows.item[surfaceTypeDataGrid.Rows.count - 1]
row.cells.item[0].ToolTipText = surfaceType.type
row.cells.item[3].value = false
row.cells.item[0].Style.backColor = RS_dotNetClass.colourClass.White
-- check to see if there's a colour in the INI file for this surface type
local colour = getINISetting INIFile "surfaceColours" surfaceType.type
if colour != "" then
(
local colourValue = readExpr (colour as stringStream)
row.cells.item[0].Style.backColor = RS_dotNetClass.colourClass.fromARGB colourValue.r colourValue.g colourValue.b
-- make sure the fore colour is not to similar to the back colour
local backColTotal = colourValue.r + colourValue.g + colourValue.b
local foreColTotal = row.cells.item[0].Style.foreColor.r + row.cells.item[0].Style.foreColor.g + row.cells.item[0].Style.foreColor.b
-- it is so we make the fore colour either black or white
if (abs (backColTotal - foreColTotal)) < 128 then
(
if row.cells.item[0].Style.foreColor == RS_dotNetClass.colourClass.White then
(
row.cells.item[0].Style.foreColor = RS_dotNetClass.colourClass.Black
)
else
(
row.cells.item[0].Style.foreColor = RS_dotNetClass.colourClass.White
)
)
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- surfaceTypeSetCheck() Sets the visibility state of each surface type in the surfaceTypeDataGrid to the parsed state
---------------------------------------------------------------------------------------------------------------------------------------
fn surfaceTypeSetCheck state =
(
for i = 0 to surfaceTypeDataGrid.Rows.count - 1 do
(
local icon = surfaceTypeDataGrid.Rows.Item[i].Cells.Item[1]
local control = surfaceTypeDataGrid.Rows.Item[i].Cells.Item[3]
if state == #invert then
(
control.value = not control.value
)
else
(
control.value = state
)
if control.value then
(
icon.value = RS_dotNetObject.imageObject hiddenIcon
)
else
(
icon.value = RS_dotNetObject.imageObject unHiddenIcon
)
)
hiddenSurfaceArray = #()
unHiddenSurfaceArray = #()
hideBySurfaceType helpers
hide hiddenSurfaceArray
unHide unHiddenSurfaceArray
),
---------------------------------------------------------------------------------------------------------------------------------------
--
-- UI FUNCTIONS
--
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchFlagSelectClick() Dispatches flagSelectClick() Called when the user checks any one of the attribute selection buttons
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchFlagSelectClick s e =
(
::RSL_CollisionOps.selectDisplayUI.flagSelectClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- flagSelectClick() Runs the selectByAttribute function
---------------------------------------------------------------------------------------------------------------------------------------
fn flagSelectClick s e =
(
-- check to see if the control button is not down and set the object selection to none
local control = dotNetClass "system.windows.forms.control"
if control.modifierKeys != control.modifierKeys.Control then
(
max select none
)
selectByAttribute helpers s.tag.value
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchFlagHideCheck() Dispatches flagHideCheck() Called when the user checks any one of the collision type attribute
-- visibility buttons
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchFlagHideCheck s e =
(
::RSL_CollisionOps.selectDisplayUI.flagHideCheck s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- flagHideCheck() Sets the icon for the pressed check button, the check state for the tag and then runs hideByAttributes
-- if ignoreCheck is false
---------------------------------------------------------------------------------------------------------------------------------------
fn flagHideCheck s e =
(
if s.checked then
(
s.BackgroundImage = RS_dotNetObject.imageObject hiddenIcon
)
else
(
s.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
)
s.tag.value.value = s.checked
if not ignoreCheck then
(
hideByAttributes helpers
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchAttributeCheckClick() Dispatches attributeCheckClick() Called when the user checks any one of the all, none and
-- invert buttons for attributes
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchAttributeCheckClick s e =
(
::RSL_CollisionOps.selectDisplayUI.attributeCheckClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- attributeCheckClick() Sets the visibility state based on which button is pressed, then sets the check state for all attribute
-- check buttons and then runs hideByAttributes
---------------------------------------------------------------------------------------------------------------------------------------
fn attributeCheckClick s e =
(
-- set ignoreCheck to true because we dont want it to hideByAttributes each time we set the check state for an
-- attribute check button
ignoreCheck = true
local state = #invert
case s.name of
(
"attributeAllButton":(state = true)
"attributeNoneButton":(state = false)
)
recurseSetCheck attributesTableLayout state
hideByAttributes helpers
ignoreCheck = false
),
---------------------------------------------------------------------------------------------------------------------------------------
-- createAttributeControls() Creates the attribute controls. These are the basic attributes shared between rexBound and
-- standard atributes
---------------------------------------------------------------------------------------------------------------------------------------
fn createAttributeControls =
(
-- we set the tag value on each control to an RSL_flag struct so that we can use a single function to check for the existence of
-- the attribute or lack when we decide to hide or select the object e.g...
-- (RSL_flag name:"Does Not Provide Cover" attr:(getAttrIndex "Gta Collision" "Does Not Provide Cover") rex:4 value:false)
-- This has all the info we need to check if an object has "Does Not Provide Cover" set or un-set in both standard attribute and
-- rexBound data.
/*
cameraLabel = RS_dotNetUI.Label "cameraLabel" text:" Camera" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
cameraHideCheckButton = RS_dotNetUI.checkBox "cameraHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
cameraHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
cameraHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
cameraHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Camera" attr:(getAttrIndex "Gta Collision" "Camera") value:false)
dotnet.addEventHandler cameraHideCheckButton "CheckedChanged" dispatchFlagHideCheck
cameraSelectButton = RS_dotNetUI.Button "cameraSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
cameraSelectButton.tag = dotNetMXSValue (RSL_flag name:"Camera" attr:(getAttrIndex "Gta Collision" "Camera") value:true)
dotnet.addEventHandler cameraSelectButton "click" dispatchFlagSelectClick
cameraTableLayout = RS_dotNetUI.tableLayout "cameraTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
cameraTableLayout.controls.add cameraLabel 0 0
cameraTableLayout.controls.add cameraHideCheckButton 1 0
cameraTableLayout.controls.add cameraSelectButton 2 0
physicsLabel = RS_dotNetUI.Label "physicsLabel" text:" Physics" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
physicsHideCheckButton = RS_dotNetUI.checkBox "physicsHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
physicsHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
physicsHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
physicsHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Physics" attr:(getAttrIndex "Gta Collision" "Physics") value:false)
dotnet.addEventHandler physicsHideCheckButton "CheckedChanged" dispatchFlagHideCheck
physicsSelectButton = RS_dotNetUI.Button "physicsSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
physicsSelectButton.tag = dotNetMXSValue (RSL_flag name:"Physics" attr:(getAttrIndex "Gta Collision" "Physics") value:true)
dotnet.addEventHandler physicsSelectButton "click" dispatchFlagSelectClick
physicsTableLayout = RS_dotNetUI.tableLayout "physicsTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
physicsTableLayout.controls.add physicsLabel 0 0
physicsTableLayout.controls.add physicsHideCheckButton 1 0
physicsTableLayout.controls.add physicsSelectButton 2 0
hiDetailLabel = RS_dotNetUI.Label "hiDetailLabel" text:" Hi Detail" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
hiDetailHideCheckButton = RS_dotNetUI.checkBox "hiDetailHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
hiDetailHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
hiDetailHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
hiDetailHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Hi Detail" attr:(getAttrIndex "Gta Collision" "Hi Detail") value:false)
dotnet.addEventHandler hiDetailHideCheckButton "CheckedChanged" dispatchFlagHideCheck
hiDetailSelectButton = RS_dotNetUI.Button "hiDetailSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
hiDetailSelectButton.tag = dotNetMXSValue (RSL_flag name:"Hi Detail" attr:(getAttrIndex "Gta Collision" "Hi Detail") value:true)
dotnet.addEventHandler hiDetailSelectButton "click" dispatchFlagSelectClick
hiDetailTableLayout = RS_dotNetUI.tableLayout "hiDetailTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
hiDetailTableLayout.controls.add hiDetailLabel 0 0
hiDetailTableLayout.controls.add hiDetailHideCheckButton 1 0
hiDetailTableLayout.controls.add hiDetailSelectButton 2 0
locoLabel = RS_dotNetUI.Label "locoLabel" text:" Loco" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
locoHideCheckButton = RS_dotNetUI.checkBox "locoHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
locoHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
locoHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
locoHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Loco" attr:(getAttrIndex "Gta Collision" "Loco") value:false)
dotnet.addEventHandler locoHideCheckButton "CheckedChanged" dispatchFlagHideCheck
locoSelectButton = RS_dotNetUI.Button "locoSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
locoSelectButton.tag = dotNetMXSValue (RSL_flag name:"Loco" attr:(getAttrIndex "Gta Collision" "Loco") value:true)
dotnet.addEventHandler locoSelectButton "click" dispatchFlagSelectClick
locoTableLayout = RS_dotNetUI.tableLayout "locoTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
locoTableLayout.controls.add locoLabel 0 0
locoTableLayout.controls.add locoHideCheckButton 1 0
locoTableLayout.controls.add locoSelectButton 2 0
*/
stairsLabel = RS_dotNetUI.Label "stairsLabel" text:" Stairs" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
stairsHideCheckButton = RS_dotNetUI.checkBox "stairsHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
stairsHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
stairsHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
stairsHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Stairs" attr:(getAttrIndex "Gta Collision" "Stairs") rex:0 value:false)
dotnet.addEventHandler stairsHideCheckButton "CheckedChanged" dispatchFlagHideCheck
stairsSelectButton = RS_dotNetUI.Button "stairsSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
stairsSelectButton.tag = dotNetMXSValue (RSL_flag name:"Stairs" attr:(getAttrIndex "Gta Collision" "Stairs") rex:0 value:true)
dotnet.addEventHandler stairsSelectButton "click" dispatchFlagSelectClick
stairsTableLayout = RS_dotNetUI.tableLayout "stairsTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
stairsTableLayout.controls.add stairsLabel 0 0
stairsTableLayout.controls.add stairsHideCheckButton 1 0
stairsTableLayout.controls.add stairsSelectButton 2 0
/*
noCoverLabel = RS_dotNetUI.Label "noCoverLabel" text:" Doesn't Provide Cover" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
noCoverHideCheckButton = RS_dotNetUI.checkBox "noCoverHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
noCoverHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
noCoverHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
noCoverHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Does Not Provide Cover" attr:(getAttrIndex "Gta Collision" "Does Not Provide Cover") rex:4 value:false)
dotnet.addEventHandler noCoverHideCheckButton "CheckedChanged" dispatchFlagHideCheck
noCoverSelectButton = RS_dotNetUI.Button "noCoverSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
noCoverSelectButton.tag = dotNetMXSValue (RSL_flag name:"Does Not Provide Cover" attr:(getAttrIndex "Gta Collision" "Does Not Provide Cover") rex:4 value:true)
dotnet.addEventHandler noCoverSelectButton "click" dispatchFlagSelectClick
noCoverTableLayout = RS_dotNetUI.tableLayout "noCoverTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
noCoverTableLayout.controls.add noCoverLabel 0 0
noCoverTableLayout.controls.add noCoverHideCheckButton 1 0
noCoverTableLayout.controls.add noCoverSelectButton 2 0
*/
noClimbLabel = RS_dotNetUI.Label "noClimbLabel" text:" Non Climable" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
noClimbHideCheckButton = RS_dotNetUI.checkBox "noClimbHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
noClimbHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
noClimbHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
noClimbHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Non Climable" attr:(getAttrIndex "Gta Collision" "Non Climable") rex:1 value:false)
dotnet.addEventHandler noClimbHideCheckButton "CheckedChanged" dispatchFlagHideCheck
noClimbSelectButton = RS_dotNetUI.Button "noClimbSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
noClimbSelectButton.tag = dotNetMXSValue (RSL_flag name:"Non Climable" attr:(getAttrIndex "Gta Collision" "Non Climable") rex:1 value:true)
dotnet.addEventHandler noClimbSelectButton "click" dispatchFlagSelectClick
noClimbTableLayout = RS_dotNetUI.tableLayout "noClimbTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
noClimbTableLayout.controls.add noClimbLabel 0 0
noClimbTableLayout.controls.add noClimbHideCheckButton 1 0
noClimbTableLayout.controls.add noClimbSelectButton 2 0
/*
noWalkLabel = RS_dotNetUI.Label "noWalkLabel" text:" Non Walkable" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
noWalkHideCheckButton = RS_dotNetUI.checkBox "noWalkHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
noWalkHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
noWalkHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
noWalkHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Non Walkable" attr:(getAttrIndex "Gta Collision" "Non Walkable") rex:5 value:false)
dotnet.addEventHandler noWalkHideCheckButton "CheckedChanged" dispatchFlagHideCheck
noWalkSelectButton = RS_dotNetUI.Button "noWalkSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
noWalkSelectButton.tag = dotNetMXSValue (RSL_flag name:"Non Walkable" attr:(getAttrIndex "Gta Collision" "Non Walkable") rex:5 value:true)
dotnet.addEventHandler noWalkSelectButton "click" dispatchFlagSelectClick
noWalkTableLayout = RS_dotNetUI.tableLayout "noWalkTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
noWalkTableLayout.controls.add noWalkLabel 0 0
noWalkTableLayout.controls.add noWalkHideCheckButton 1 0
noWalkTableLayout.controls.add noWalkSelectButton 2 0
*/
seeLabel = RS_dotNetUI.Label "seeLabel" text:" See Through" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
seeHideCheckButton = RS_dotNetUI.checkBox "seeHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
seeHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
seeHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
seeHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"See Through" attr:(getAttrIndex "Gta Collision" "See Through") rex:2 value:false)
dotnet.addEventHandler seeHideCheckButton "CheckedChanged" dispatchFlagHideCheck
seeSelectButton = RS_dotNetUI.Button "seeSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
seeSelectButton.tag = dotNetMXSValue (RSL_flag name:"See Through" attr:(getAttrIndex "Gta Collision" "See Through") rex:2 value:true)
dotnet.addEventHandler seeSelectButton "click" dispatchFlagSelectClick
seeTableLayout = RS_dotNetUI.tableLayout "seeTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
seeTableLayout.controls.add seeLabel 0 0
seeTableLayout.controls.add seeHideCheckButton 1 0
seeTableLayout.controls.add seeSelectButton 2 0
noCamLabel = RS_dotNetUI.Label "noCamLabel" text:" Non Camera Collidable" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
noCamHideCheckButton = RS_dotNetUI.checkBox "noCamHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
noCamHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
noCamHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
noCamHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Non Camera Collidable" attr:(getAttrIndex "Gta Collision" "Non Camera Collidable") rex:7 value:false)
dotnet.addEventHandler noCamHideCheckButton "CheckedChanged" dispatchFlagHideCheck
noCamSelectButton = RS_dotNetUI.Button "noCamSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
noCamSelectButton.tag = dotNetMXSValue (RSL_flag name:"Non Camera Collidable" attr:(getAttrIndex "Gta Collision" "Non Camera Collidable") rex:7 value:true)
dotnet.addEventHandler noCamSelectButton "click" dispatchFlagSelectClick
noCamTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
noCamTableLayout.controls.add noCamLabel 0 0
noCamTableLayout.controls.add noCamHideCheckButton 1 0
noCamTableLayout.controls.add noCamSelectButton 2 0
-------------------
--Shoot Through
-------------------
shootLabel = RS_dotNetUI.Label "shootLabel" text:" Shoot Through" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
shootHideCheckButton = RS_dotNetUI.checkBox "shootHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
shootHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
shootHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
shootHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Shoot Through" attr:(getAttrIndex "Gta Collision" "Shoot Through") rex:3 value:false)
dotnet.addEventHandler shootHideCheckButton "CheckedChanged" dispatchFlagHideCheck
shootSelectButton = RS_dotNetUI.Button "shootSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
shootSelectButton.tag = dotNetMXSValue (RSL_flag name:"Shoot Through" attr:(getAttrIndex "Gta Collision" "Shoot Through") rex:3 value:true)
dotnet.addEventHandler shootSelectButton "click" dispatchFlagSelectClick
shootTableLayout = RS_dotNetUI.tableLayout "shootTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
shootTableLayout.controls.add shootLabel 0 0
shootTableLayout.controls.add shootHideCheckButton 1 0
shootTableLayout.controls.add shootSelectButton 2 0
-----------------------
--Edited by leeds
-----------------------
/*
leedsLabel = RS_dotNetUI.Label "leedsLabel" text:" Edited by Leeds" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
leedsHideCheckButton = RS_dotNetUI.checkBox "shootHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
leedsHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
leedsHideCheckButton.BackgroundImageLayout =q (dotNetClass "System.Windows.Forms.ImageLayout").Center
leedsHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Edited by Leeds" attr:(getAttrIndex "Gta Collision" "Edited by Leeds") rex:6 value:false)
dotnet.addEventHandler leedsHideCheckButton "CheckedChanged" dispatchFlagHideCheck
leedsSelectButton = RS_dotNetUI.Button "leedsSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
leedsSelectButton.tag = dotNetMXSValue (RSL_flag name:"Edited by Leeds" attr:(getAttrIndex "Gta Collision" "Edited by Leeds") rex:6 value:true)
dotnet.addEventHandler leedsSelectButton "click" dispatchFlagSelectClick
leedsTableLayout = RS_dotNetUI.tableLayout "leedsTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
leedsTableLayout.controls.add leedsLabel 0 0
leedsTableLayout.controls.add leedsHideCheckButton 1 0
leedsTableLayout.controls.add leedsSelectButton 2 0
*/
---------------------
--BVH Bound
---------------------
BVHBoundLabel = RS_dotNetUI.Label "BVHBoundLabel" text:" BVH Bound" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
BVHBoundHideCheckButton = RS_dotNetUI.checkBox "BVHBoundHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
BVHBoundHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
BVHBoundHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
BVHBoundHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"BVH Bound" attr:(getAttrIndex "Gta Collision" "BVH Bound") rex:8 value:false)
dotnet.addEventHandler BVHBoundHideCheckButton "CheckedChanged" dispatchFlagHideCheck
BVHBoundSelectButton = RS_dotNetUI.Button "BVHBoundSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
BVHBoundSelectButton.tag = dotNetMXSValue (RSL_flag name:"BVH Bound" attr:(getAttrIndex "Gta Collision" "BVH Bound") rex:8 value:true)
BVHBoundTableLayout = RS_dotNetUI.tableLayout "BVHBoundTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
BVHBoundTableLayout.controls.add BVHBoundLabel 0 0
BVHBoundTableLayout.controls.add BVHBoundHideCheckButton 1 0
BVHBoundTableLayout.controls.add BVHBoundSelectButton 2 0
-------------------------
--Wet
-------------------------
WetLabel = RS_dotNetUI.Label "WetLabel" text:" Wet" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
WetHideCheckButton = RS_dotNetUI.checkBox "WetHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
WetHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
WetHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
WetHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Wet" attr:(getAttrIndex "Gta Collision" "Wet") rex:4 value:false)
dotnet.addEventHandler WetHideCheckButton "CheckedChanged" dispatchFlagHideCheck
WetSelectButton = RS_dotNetUI.Button "WetSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
WetSelectButton.tag = dotNetMXSValue (RSL_flag name:"Wet" attr:(getAttrIndex "Gta Collision" "Wet") rex:4 value:true)
WetTableLayout = RS_dotNetUI.tableLayout "WetTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
WetTableLayout.controls.add WetLabel 0 0
WetTableLayout.controls.add WetHideCheckButton 1 0
WetTableLayout.controls.add WetSelectButton 2 0
-------------------------
--Path
-------------------------
pathLabel = RS_dotNetUI.Label "pathLabel" text:" Path" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
pathHideCheckButton = RS_dotNetUI.checkBox "pathHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
pathHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
pathHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
pathHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Path" attr:(getAttrIndex "Gta Collision" "Path") rex:5 value:false)
dotnet.addEventHandler pathHideCheckButton "CheckedChanged" dispatchFlagHideCheck
pathSelectButton = RS_dotNetUI.Button "pathSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
pathSelectButton.tag = dotNetMXSValue (RSL_flag name:"Path" attr:(getAttrIndex "Gta Collision" "Path") rex:5 value:true)
pathTableLayout = RS_dotNetUI.tableLayout "pathTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
pathTableLayout.controls.add pathLabel 0 0
pathTableLayout.controls.add pathHideCheckButton 1 0
pathTableLayout.controls.add pathSelectButton 2 0
-------------------------
--Use Procedural Tint
-------------------------
procTintLabel = RS_dotNetUI.Label "procTintLabel" text:" Use Procedural Tint" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
procTintHideCheckButton = RS_dotNetUI.checkBox "procTintHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
procTintHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
procTintHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
procTintHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Use Procedural Tint" attr:(getAttrIndex "Gta Collision" "Use Procedural Tint") rex:9 value:false)
dotnet.addEventHandler procTintHideCheckButton "CheckedChanged" dispatchFlagHideCheck
procTintSelectButton = RS_dotNetUI.Button "procTintSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
procTintSelectButton.tag = dotNetMXSValue (RSL_flag name:"Use Procedural Tint" attr:(getAttrIndex "Gta Collision" "Use Procedural Tint") rex:9 value:true)
procTintTableLayout = RS_dotNetUI.tableLayout "procTintTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
procTintTableLayout.controls.add procTintLabel 0 0
procTintTableLayout.controls.add procTintHideCheckButton 1 0
procTintTableLayout.controls.add procTintSelectButton 2 0
-------------------------
--Is Cloth Collision
-------------------------
clothCollLabel = RS_dotNetUI.Label "clothCollLabel" text:" Is Cloth Collision" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
clothCollHideCheckButton = RS_dotNetUI.checkBox "clothCollHideCheckButton" text:"" dockStyle:RS_dotNetPreset.DS_Fill appearance:RS_dotNetPreset.AC_Button \
margin:(RS_dotNetObject.paddingObject 0)
clothCollHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
clothCollHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
clothCollHideCheckButton.tag = dotNetMXSValue (RSL_flag name:"Is Cloth Collision" attr:(getAttrIndex "Gta Collision" "Is Cloth Collision") rex:10 value:false)
dotnet.addEventHandler clothCollHideCheckButton "CheckedChanged" dispatchFlagHideCheck
clothCollSelectButton = RS_dotNetUI.Button "clothCollSelectButton" text:"S" dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
clothCollSelectButton.tag = dotNetMXSValue (RSL_flag name:"Is Cloth Collision" attr:(getAttrIndex "Gta Collision" "Is Cloth Collision") rex:10 value:true)
clothCollTableLayout = RS_dotNetUI.tableLayout "clothCollTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
clothCollTableLayout.controls.add clothCollLabel 0 0
clothCollTableLayout.controls.add clothCollHideCheckButton 1 0
clothCollTableLayout.controls.add clothCollSelectButton 2 0
-------------------------
--Attribute buttons
-------------------------
attributeAllButton = RS_dotNetUI.Button "attributeAllButton" text:("All") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler attributeAllButton "click" dispatchAttributeCheckClick
attributeNoneButton = RS_dotNetUI.Button "attributeNoneButton" text:("None") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler attributeNoneButton "click" dispatchAttributeCheckClick
attributeInvertButton = RS_dotNetUI.Button "attributeInvertButton" text:("Invert") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler attributeInvertButton "click" dispatchAttributeCheckClick
attributesTableLayout = RS_dotNetUI.tableLayout "attributesTableLayout" text:"attributesTableLayout" \
collumns:#((dataPair type:"Percent" value:75),(dataPair type:"Percent" value:25)) \
rows:#((dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)
,(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
dockStyle:RS_dotNetPreset.DS_Fill
attributesTableLayout.controls.add attributeAllButton 1 0
attributesTableLayout.controls.add stairsTableLayout 0 0 --stairsCheckBox
attributesTableLayout.controls.add noClimbTableLayout 0 1 --noClimbCheckBox
--attributesTableLayout.controls.add cameraTableLayout 0 0 --cameraCheckBox
attributesTableLayout.controls.add attributeNoneButton 1 1
attributesTableLayout.controls.add seeTableLayout 0 2 --seeCheckBox
--attributesTableLayout.controls.add physicsTableLayout 0 1 --physicsCheckBox
attributesTableLayout.controls.add attributeInvertButton 1 2
attributesTableLayout.controls.add noCamTableLayout 0 3 --noCameraCheckBox
--attributesTableLayout.controls.add hiDetailTableLayout 0 2 --hiDetailCheckBox
--attributesTableLayout.controls.add locoTableLayout 0 3 --locoCheckBox
attributesTableLayout.controls.add shootTableLayout 0 4 --shootCheckBox
attributesTableLayout.controls.add BVHBoundTableLayout 0 5 --BVHBoundCheckbox
attributesTableLayout.controls.add WetTableLayout 0 6 --wetCheckbox
attributesTableLayout.controls.add pathTableLayout 0 7 --PathCheckbox
attributesTableLayout.controls.add procTintTableLayout 0 8 --procTintCheckbox
attributesTableLayout.controls.add clothCollTableLayout 0 9 --clothCollCheckbox
attributesTableLayout
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchColTypeCheckClick() Dispatches colTypeCheckClick() Called when the user checks any one of the all, none and
-- invert buttons for collision object types
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchColTypeCheckClick s e =
(
::RSL_CollisionOps.selectDisplayUI.colTypeCheckClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- colTypeCheckClick() Set the state based on which button is pressed and then set the check state for all the collision object
-- type check buttons based on the state
---------------------------------------------------------------------------------------------------------------------------------------
fn colTypeCheckClick s e =
(
local state = #invert
case s.name of
(
"colTypeAllButton":(state = true)
"colTypeNoneButton":(state = false)
)
recurseSetCheck colTypeTableLayout state
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchColTypeHideCheck() Dispatches colTypeHideCheck() Called when the user checks any one of the collision object type
-- visibility check buttons
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchColTypeHideCheck s e =
(
::RSL_CollisionOps.selectDisplayUI.colTypeHideCheck s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- colTypeHideCheck() Set the icon for the pressed button and the runs the hideByClass function
---------------------------------------------------------------------------------------------------------------------------------------
fn colTypeHideCheck s e =
(
if s.checked then
(
s.BackgroundImage = RS_dotNetObject.imageObject hiddenIcon
)
else
(
s.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
)
hideByClass helpers s.tag.value s.checked
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchColTypeSelectClick() Dispatches colTypeSelectClick() Called when the user checks any one of the collision object type
-- selection check buttons
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchColTypeSelectClick s e =
(
::RSL_CollisionOps.selectDisplayUI.colTypeSelectClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- colTypeSelectClick() Runs the selectByClass function
---------------------------------------------------------------------------------------------------------------------------------------
fn colTypeSelectClick s e =
(
-- check to see if the control button is not down and set the object selection to none
local control = dotNetClass "system.windows.forms.control"
if control.modifierKeys != control.modifierKeys.Control then
(
max select none
)
selectByClass helpers s.tag.value
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchSurfaceTypeGridClick() Dispatches surfaceTypeGridClick(), called when the user clicks a cell in the surfaceTypeDataGrid
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchSurfaceTypeGridClick s e =
(
::RSL_CollisionOps.selectDisplayUI.surfaceTypeGridClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- surfaceTypeGridClick() Either hides or selects based on which cell is clicked
---------------------------------------------------------------------------------------------------------------------------------------
fn surfaceTypeGridClick s e =
(
local row = surfaceTypeDataGrid.rows.item[e.RowIndex]
case e.columnIndex of
(
default:()
1:
(
-- A visibility cell has been clicked so we gather the surface types for each object, set the icon
-- based on the check state of the hidden check button and then hideBySurfaceType
objectSurfaceTypeArray = #()
gatherObjectSurfaceTypes helpers
if not row.cells.item[3].value then
(
row.cells.item[3].value = true
row.cells.item[1].value = RS_dotNetObject.imageObject hiddenIcon
)
else
(
row.cells.item[3].value = false
row.cells.item[1].value = RS_dotNetObject.imageObject unHiddenIcon
)
hiddenSurfaceArray = #()
unHiddenSurfaceArray = #()
hideBySurfaceType helpers
hide hiddenSurfaceArray
unHide unHiddenSurfaceArray
)
2:
(
-- A Selection cell button has been clicked so we gather the surface types for each object and
-- selectBySurfaceType
objectsurfaceTypeArray = #()
gatherObjectSurfaceTypes helpers
-- check to see if the control button is not down and set the object selection to none
local control = dotNetClass "system.windows.forms.control"
if control.modifierKeys != control.modifierKeys.Control then
(
max select none
)
selectBySurfaceType helpers row.cells.item[0].value
)
)
),
---------------------------------------------------------------------------------------------------------------------------------------
-- dispatchSurfaceTypeCheckClick() Dispatches surfaceTypeCheckClick(), called when the user clicks any of the all, none or
-- invert buttons for the surface type group
---------------------------------------------------------------------------------------------------------------------------------------
fn dispatchSurfaceTypeCheckClick s e =
(
::RSL_CollisionOps.selectDisplayUI.surfaceTypeCheckClick s e
),
---------------------------------------------------------------------------------------------------------------------------------------
-- surfaceTypeCheckClick() Sets the visibility state for every surface type in the surfaceTypeDataGrid based on the pressed
-- button
---------------------------------------------------------------------------------------------------------------------------------------
fn surfaceTypeCheckClick s e =
(
local state = #invert
case s.name of
(
"surfaceTypeAllButton":(state = true)
"surfaceTypeNoneButton":(state = false)
)
surfaceTypeSetCheck state
),
---------------------------------------------------------------------------------------------------------------------------------------
-- getUI() Creates the UI for select/display mode
---------------------------------------------------------------------------------------------------------------------------------------
fn getUI =
(
hideClassArray = #()
otherHelpersArray = #()
hiddenObjectArray = #()
selectObjectArray = #()
selectDisplayTableLayout = RS_dotNetUI.tableLayout "selectDisplayTableLayout" text:"selectDisplayTableLayout" \
collumns:#((dataPair type:"Percent" value:50)) \
rows:#((dataPair type:"Absolute" value:170),(dataPair type:"Absolute" value:(316 - 27)),(dataPair type:"Absolute" value:(24 + 244)),(dataPair type:"Absolute" value:24)) \
dockStyle:RS_dotNetPreset.DS_Fill
meshLabel = RS_dotNetUI.Label "meshLabel" text:" Mesh" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
meshHideCheckButton = RS_dotNetUI.checkBox "meshHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
meshHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
meshHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
meshHideCheckButton.tag = dotNetMXSValue Col_Mesh
dotnet.addEventHandler meshHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
meshSelectButton = RS_dotNetUI.Button "meshSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
meshSelectButton.tag = dotNetMXSValue Col_Mesh
dotnet.addEventHandler meshSelectButton "click" dispatchColTypeSelectClick
meshClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
meshClassTableLayout.controls.add meshLabel 0 0
meshClassTableLayout.controls.add meshHideCheckButton 1 0
meshClassTableLayout.controls.add meshSelectButton 2 0
boxLabel = RS_dotNetUI.Label "boxLabel" text:" Box" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
boxHideCheckButton = RS_dotNetUI.checkBox "boxHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
boxHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
boxHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
boxHideCheckButton.tag = dotNetMXSValue Col_box
dotnet.addEventHandler boxHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
boxSelectButton = RS_dotNetUI.Button "boxSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
boxSelectButton.tag = dotNetMXSValue Col_box
dotnet.addEventHandler boxSelectButton "click" dispatchColTypeSelectClick
boxClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
boxClassTableLayout.controls.add boxLabel 0 0
boxClassTableLayout.controls.add boxHideCheckButton 1 0
boxClassTableLayout.controls.add boxSelectButton 2 0
capsuleLabel = RS_dotNetUI.Label "capsuleLabel" text:" capsule" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
capsuleHideCheckButton = RS_dotNetUI.checkBox "capsuleHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
capsuleHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
capsuleHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
capsuleHideCheckButton.tag = dotNetMXSValue Col_capsule
dotnet.addEventHandler capsuleHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
capsuleSelectButton = RS_dotNetUI.Button "capsuleSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
capsuleSelectButton.tag = dotNetMXSValue Col_capsule
dotnet.addEventHandler capsuleSelectButton "click" dispatchColTypeSelectClick
capsuleClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
capsuleClassTableLayout.controls.add capsuleLabel 0 0
capsuleClassTableLayout.controls.add capsuleHideCheckButton 1 0
capsuleClassTableLayout.controls.add capsuleSelectButton 2 0
cylinderLabel = RS_dotNetUI.Label "cylinderLabel" text:" cylinder" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
cylinderHideCheckButton = RS_dotNetUI.checkBox "cylinderHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
cylinderHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
cylinderHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
cylinderHideCheckButton.tag = dotNetMXSValue Col_cylinder
dotnet.addEventHandler cylinderHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
cylinderSelectButton = RS_dotNetUI.Button "cylinderSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
cylinderSelectButton.tag = dotNetMXSValue Col_cylinder
dotnet.addEventHandler cylinderSelectButton "click" dispatchColTypeSelectClick
cylinderClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
cylinderClassTableLayout.controls.add cylinderLabel 0 0
cylinderClassTableLayout.controls.add cylinderHideCheckButton 1 0
cylinderClassTableLayout.controls.add cylinderSelectButton 2 0
planeLabel = RS_dotNetUI.Label "planeLabel" text:" plane" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
planeHideCheckButton = RS_dotNetUI.checkBox "planeHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
planeHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
planeHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
planeHideCheckButton.tag = dotNetMXSValue Col_plane
dotnet.addEventHandler planeHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
planeSelectButton = RS_dotNetUI.Button "planeSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
planeSelectButton.tag = dotNetMXSValue Col_plane
dotnet.addEventHandler planeSelectButton "click" dispatchColTypeSelectClick
planeClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
planeClassTableLayout.controls.add planeLabel 0 0
planeClassTableLayout.controls.add planeHideCheckButton 1 0
planeClassTableLayout.controls.add planeSelectButton 2 0
sphereLabel = RS_dotNetUI.Label "sphereLabel" text:" sphere" textAlign:RS_dotNetPreset.CA_MiddleLeft \
borderStyle:RS_dotNetPreset.BS_None dockStyle:RS_dotNetPreset.DS_Fill
sphereHideCheckButton = RS_dotNetUI.checkBox "sphereHideCheckButton" text:"" appearance:RS_dotNetPreset.AC_Button textAlign:RS_dotNetPreset.CA_MiddleLeft \
dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
sphereHideCheckButton.BackgroundImage = RS_dotNetObject.imageObject unHiddenIcon
sphereHideCheckButton.BackgroundImageLayout = (dotNetClass "System.Windows.Forms.ImageLayout").Center
sphereHideCheckButton.tag = dotNetMXSValue Col_sphere
dotnet.addEventHandler sphereHideCheckButton "CheckedChanged" dispatchColTypeHideCheck
sphereSelectButton = RS_dotNetUI.Button "sphereSelectButton" text:("S") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
sphereSelectButton.tag = dotNetMXSValue Col_sphere
dotnet.addEventHandler sphereSelectButton "click" dispatchColTypeSelectClick
sphereClassTableLayout = RS_dotNetUI.tableLayout "noCamTableLayout" \
collumns:#((dataPair type:"Percent" value:50),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
rows:#((dataPair type:"Absolute" value:24)) dockStyle:RS_dotNetPreset.DS_Fill
sphereClassTableLayout.controls.add sphereLabel 0 0
sphereClassTableLayout.controls.add sphereHideCheckButton 1 0
sphereClassTableLayout.controls.add sphereSelectButton 2 0
colTypeAllButton = RS_dotNetUI.Button "colTypeAllButton" text:("All") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler colTypeAllButton "click" dispatchColTypeCheckClick
colTypeNoneButton = RS_dotNetUI.Button "colTypeNoneButton" text:("None") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler colTypeNoneButton "click" dispatchColTypeCheckClick
colTypeInvertButton = RS_dotNetUI.Button "colTypeInvertButton" text:("Invert") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler colTypeInvertButton "click" dispatchColTypeCheckClick
colTypeTableLayout = RS_dotNetUI.tableLayout "colTypeTableLayout" text:"colTypeTableLayout" \
collumns:#((dataPair type:"Percent" value:75),(dataPair type:"Percent" value:25)) \
rows:#((dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)
,(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24)) \
dockStyle:RS_dotNetPreset.DS_Fill
colTypeTableLayout.controls.add meshClassTableLayout 0 0 --meshCheckBox
colTypeTableLayout.controls.add colTypeAllButton 1 0
colTypeTableLayout.controls.add boxClassTableLayout 0 1 --boxCheckBox
colTypeTableLayout.controls.add colTypeNoneButton 1 1
colTypeTableLayout.controls.add capsuleClassTableLayout 0 2 --capsuleCheckBox
colTypeTableLayout.controls.add colTypeInvertButton 1 2
colTypeTableLayout.controls.add cylinderClassTableLayout 0 3 --cylinderCheckBox
colTypeTableLayout.controls.add planeClassTableLayout 0 4 --planeCheckBox
colTypeTableLayout.controls.add sphereClassTableLayout 0 5 --sphereCheckBox
colTypeGroup = RS_dotNetUI.GroupBox "classGroup" Text:"Collision Object Type" dockStyle:RS_dotNetPreset.DS_Fill
colTypeGroup.controls.add colTypeTableLayout
attributePanel = (createAttributeControls())
attributeTableLayout = RS_dotNetUI.tableLayout "attributeTableLayout" text:"attributeTableLayout" \
collumns:#((dataPair type:"Percent" value:75),(dataPair type:"Percent" value:25)) \
rows:#((dataPair type:"Absolute" value:240),(dataPair type:"Absolute" value:24)) \
dockStyle:RS_dotNetPreset.DS_Fill --cellStyle:RS_dotNetPreset.CBS_Single
attributeTableLayout.controls.add attributePanel 0 0
attributeTableLayout.SetColumnSpan attributePanel 2
attributeGroup = RS_dotNetUI.GroupBox "attributeGroup" Text:"Attribute" dockStyle:RS_dotNetPreset.DS_Fill
attributeGroup.controls.add attributeTableLayout
surfaceTypeDataGrid = RS_dotNetUI.dataGridView "surfaceTypeDataGrid" text:"Surface Types" dockStyle:RS_dotNetPreset.DS_Fill
surfaceTypeDataGrid.ColumnHeadersVisible = false
surfaceTypeDataGrid.SelectionMode = (dotNetClass "System.Windows.Forms.DataGridViewSelectionMode").FullRowSelect --CellSelect
surfaceTypeDataGrid.RowHeadersWidthSizeMode = (dotNetClass "System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode").DisableResizing
surfaceTypeDataGrid.backColor = RS_dotNetClass.colourClass.White
dotnet.addEventHandler surfaceTypeDataGrid "CellClick" dispatchSurfaceTypeGridClick --CellContentClick
setupDataColumns()
addSurfaceTypeData ::RSL_CollisionOps.attribute.matDatSurfaceTypeArray
surfaceTypeAllButton = RS_dotNetUI.Button "surfaceTypeAllButton" text:("All") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler surfaceTypeAllButton "click" dispatchSurfaceTypeCheckClick
surfaceTypeNoneButton = RS_dotNetUI.Button "surfaceTypeNoneButton" text:("None") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler surfaceTypeNoneButton "click" dispatchSurfaceTypeCheckClick
surfaceTypeInvertButton = RS_dotNetUI.Button "surfaceTypeInvertButton" text:("Invert") dockStyle:RS_dotNetPreset.DS_Fill margin:(RS_dotNetObject.paddingObject 0)
dotnet.addEventHandler surfaceTypeInvertButton "click" dispatchSurfaceTypeCheckClick
surfaceTypeTableLayout = RS_dotNetUI.tableLayout "surfaceTypeTableLayout" text:"surfaceTypeTableLayout" \
collumns:#((dataPair type:"Percent" value:75),(dataPair type:"Percent" value:25)) \
rows:#((dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:24),(dataPair type:"Absolute" value:168),(dataPair type:"Absolute" value:24)) \
dockStyle:RS_dotNetPreset.DS_Fill --cellStyle:RS_dotNetPreset.CBS_Single
surfaceTypeTableLayout.controls.add surfaceTypeDataGrid 0 0 --surfaceTypeSelectButton
surfaceTypeTableLayout.controls.add surfaceTypeAllButton 1 0
surfaceTypeTableLayout.controls.add surfaceTypeNoneButton 1 1
surfaceTypeTableLayout.controls.add surfaceTypeInvertButton 1 2
surfaceTypeTableLayout.setRowSpan surfaceTypeDataGrid 4
surfaceTypeGroup = RS_dotNetUI.GroupBox "surfaceTypeGroup" Text:"Surface Type" dockStyle:RS_dotNetPreset.DS_Fill
surfaceTypeGroup.controls.add surfaceTypeTableLayout
selectDisplayTableLayout.controls.add colTypeGroup
selectDisplayTableLayout.controls.add attributeGroup
selectDisplayTableLayout.controls.add surfaceTypeGroup
selectDisplayTableLayout
)
)