add box features
This commit is contained in:
164
scripts/client/wrench.cs
Normal file
164
scripts/client/wrench.cs
Normal file
@ -0,0 +1,164 @@
|
||||
// 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));
|
||||
}
|
Reference in New Issue
Block a user