165 lines
3.2 KiB
C#
165 lines
3.2 KiB
C#
// Prepares the fillWrench gui and handles submitting the settings.
|
|
// -------------------------------------------------------------------
|
|
|
|
package NewDuplicator_Client
|
|
{
|
|
function clientCmdWrench_LoadMenus()
|
|
{
|
|
parent::clientCmdWrench_LoadMenus();
|
|
|
|
$ND::WrenchReloadRequired = true;
|
|
}
|
|
};
|
|
|
|
//Open the wrench gui for fill wrench mode
|
|
function clientCmdNdOpenWrenchGui()
|
|
{
|
|
if($ND::WrenchReloadRequired)
|
|
{
|
|
//Reload the drop down lists
|
|
ND_Wrench_Lights.clear();
|
|
ND_Wrench_Emitters.clear();
|
|
ND_Wrench_Items.clear();
|
|
|
|
ND_Wrench_Lights.add(" NONE", 0);
|
|
ND_Wrench_Emitters.add(" NONE", 0);
|
|
ND_Wrench_Items.add(" NONE", 0);
|
|
|
|
//Add all datablocks to list
|
|
%cnt = getDatablockGroupSize();
|
|
|
|
for(%i = 0; %i < %cnt; %i++)
|
|
{
|
|
%data = getDatablock(%i);
|
|
%uiName = %data.uiName;
|
|
|
|
//Skip non-selectable datablocks
|
|
if(%uiName $= "")
|
|
continue;
|
|
|
|
//Put datablock in correct list
|
|
switch$(%data.getClassName())
|
|
{
|
|
case "FxLightData":
|
|
ND_Wrench_Lights.add(%uiName, %data);
|
|
|
|
case "ParticleEmitterData":
|
|
ND_Wrench_Emitters.add(%uiName, %data);
|
|
|
|
case "ItemData":
|
|
ND_Wrench_Items.add(%uiName, %data);
|
|
}
|
|
}
|
|
|
|
//Sort lists
|
|
ND_Wrench_Lights.sort();
|
|
ND_Wrench_Emitters.sort();
|
|
ND_Wrench_Items.sort();
|
|
|
|
//Select NONE
|
|
ND_Wrench_Lights.setSelected(0);
|
|
ND_Wrench_Emitters.setSelected(0);
|
|
ND_Wrench_Items.setSelected(0);
|
|
|
|
$ND::WrenchReloadRequired = false;
|
|
}
|
|
|
|
//Open gui
|
|
Canvas.pushDialog(ND_WrenchDlg);
|
|
}
|
|
|
|
//Send the settings to the server
|
|
function ndSendFillWrenchData()
|
|
{
|
|
//Close gui
|
|
Canvas.popDialog(ND_WrenchDlg);
|
|
|
|
//Pack all enabled settings in string
|
|
%str = "";
|
|
|
|
if(ND_Wrench_ToggleName.getValue())
|
|
%str = %str TAB "N" SPC trim(ND_Wrench_Name.getValue());
|
|
|
|
if(ND_Wrench_ToggleLights.getValue())
|
|
%str = %str TAB "LDB" SPC ND_Wrench_Lights.getSelected();
|
|
|
|
if(ND_Wrench_ToggleEmitters.getValue())
|
|
%str = %str TAB "EDB" SPC ND_Wrench_Emitters.getSelected();
|
|
|
|
if(ND_Wrench_ToggleEmitterDir.getValue())
|
|
{
|
|
%dir = -1;
|
|
|
|
for(%i = 0; %i < 6; %i++)
|
|
{
|
|
%obj = "ND_Wrench_EmitterDir" @ %i;
|
|
|
|
if(%obj.getValue())
|
|
{
|
|
%dir = %i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(%dir >= 0)
|
|
%str = %str TAB "EDIR" SPC %dir;
|
|
}
|
|
|
|
if(ND_Wrench_ToggleItems.getValue())
|
|
%str = %str TAB "IDB" SPC ND_Wrench_Items.getSelected();
|
|
|
|
if(ND_Wrench_ToggleItemPos.getValue())
|
|
{
|
|
%pos = -1;
|
|
|
|
for(%i = 0; %i < 6; %i++)
|
|
{
|
|
%obj = "ND_Wrench_ItemPos" @ %i;
|
|
|
|
if(%obj.getValue())
|
|
{
|
|
%pos = %i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(%pos >= 0)
|
|
%str = %str TAB "IPOS" SPC %pos;
|
|
}
|
|
|
|
if(ND_Wrench_ToggleItemDir.getValue())
|
|
{
|
|
%dir = -1;
|
|
|
|
for(%i = 2; %i < 6; %i++)
|
|
{
|
|
%obj = "ND_Wrench_ItemDir" @ %i;
|
|
|
|
if(%obj.getValue())
|
|
{
|
|
%dir = %i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(%dir >= 2)
|
|
%str = %str TAB "IDIR" SPC %dir;
|
|
}
|
|
|
|
if(ND_Wrench_ToggleItemTime.getValue())
|
|
%str = %str TAB "IRT" SPC trim(ND_Wrench_ItemTime.getValue()) * 1;
|
|
|
|
if(ND_Wrench_ToggleRayCasting.getValue())
|
|
%str = %str TAB "RC" SPC ND_Wrench_RayCasting.getValue();
|
|
|
|
if(ND_Wrench_ToggleCollision.getValue())
|
|
%str = %str TAB "C" SPC ND_Wrench_Collision.getValue();
|
|
|
|
if(ND_Wrench_ToggleRendering.getValue())
|
|
%str = %str TAB "R" SPC ND_Wrench_Rendering.getValue();
|
|
|
|
//Send string
|
|
if(strLen(%str))
|
|
commandToServer('ndStartFillWrench', trim(%str));
|
|
}
|