mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 15:44:36 +00:00
Full Template for ticket #1
This commit is contained in:
parent
74f265b3b3
commit
f439dc8dcd
2150 changed files with 286240 additions and 0 deletions
122
Templates/Full/game/tools/physicsTools/main.cs
Normal file
122
Templates/Full/game/tools/physicsTools/main.cs
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
function physicsToggleSimulation()
|
||||
{
|
||||
%isEnabled = physicsSimulationEnabled();
|
||||
if ( %isEnabled )
|
||||
{
|
||||
physicsStateText.setText( "Simulation is paused." );
|
||||
physicsStopSimulation( "client" );
|
||||
physicsStopSimulation( "server" );
|
||||
}
|
||||
else
|
||||
{
|
||||
physicsStateText.setText( "Simulation is unpaused." );
|
||||
physicsStartSimulation( "client" );
|
||||
physicsStartSimulation( "server" );
|
||||
}
|
||||
}
|
||||
|
||||
function initializePhysicsTools()
|
||||
{
|
||||
echo( " % - Initializing Physics Tools" );
|
||||
|
||||
if ( !physicsPluginPresent() )
|
||||
{
|
||||
echo( "No physics plugin exists." );
|
||||
return;
|
||||
}
|
||||
|
||||
globalactionmap.bindCmd( keyboard, "alt t", "physicsToggleSimulation();", "" );
|
||||
globalactionmap.bindCmd( keyboard, "alt r", "physicsRestoreState();", "" );
|
||||
|
||||
new ScriptObject( PhysicsEditorPlugin )
|
||||
{
|
||||
superClass = "EditorPlugin";
|
||||
editorGui = EWorldEditor;
|
||||
};
|
||||
}
|
||||
|
||||
function destroyPhysicsTools()
|
||||
{
|
||||
}
|
||||
|
||||
function PhysicsEditorPlugin::onWorldEditorStartup( %this )
|
||||
{
|
||||
new PopupMenu( PhysicsToolsMenu )
|
||||
{
|
||||
superClass = "MenuBuilder";
|
||||
//class = "PhysXToolsMenu";
|
||||
|
||||
barTitle = "Physics";
|
||||
|
||||
item[0] = "Start Simulation" TAB "Ctrl-Alt P" TAB "physicsStartSimulation( \"client\" );physicsStartSimulation( \"server\" );";
|
||||
//item[1] = "Stop Simulation" TAB "" TAB "physicsSetTimeScale( 0 );";
|
||||
item[1] = "-";
|
||||
item[2] = "Speed 25%" TAB "" TAB "physicsSetTimeScale( 0.25 );";
|
||||
item[3] = "Speed 50%" TAB "" TAB "physicsSetTimeScale( 0.5 );";
|
||||
item[4] = "Speed 100%" TAB "" TAB "physicsSetTimeScale( 1.0 );";
|
||||
item[5] = "-";
|
||||
item[6] = "Reload NXBs" TAB "" TAB "";
|
||||
};
|
||||
|
||||
// Add our menu.
|
||||
EditorGui.menuBar.insert( PhysicsToolsMenu, EditorGui.menuBar.dynamicItemInsertPos );
|
||||
|
||||
// Add ourselves to the window menu.
|
||||
//EditorGui.addToWindowMenu( "Road and Path Editor", "", "RoadEditor" );
|
||||
}
|
||||
|
||||
function PhysicsToolsMenu::onMenuSelect(%this)
|
||||
{
|
||||
%isEnabled = physicsSimulationEnabled();
|
||||
|
||||
%itemText = !%isEnabled ? "Start Simulation" : "Pause Simulation";
|
||||
%itemCommand = !%isEnabled ? "physicsStartSimulation( \"client\" );physicsStartSimulation( \"server\" );" : "physicsStopSimulation( \"client\" );physicsStopSimulation( \"server\" );";
|
||||
|
||||
%this.setItemName( 0, %itemText );
|
||||
%this.setItemCommand( 0, %itemCommand );
|
||||
}
|
||||
|
||||
function PhysicsEditorPlugin::onEditorWake( %this )
|
||||
{
|
||||
// Disable physics when entering
|
||||
// the editor. Will be re-enabled
|
||||
// when the editor is closed.
|
||||
physicsStopSimulation( "client" );
|
||||
physicsStopSimulation( "server" );
|
||||
physicsRestoreState();
|
||||
}
|
||||
|
||||
function PhysicsEditorPlugin::onEditorSleep( %this )
|
||||
{
|
||||
physicsStoreState();
|
||||
|
||||
%currentTimeScale = physicsGetTimeScale();
|
||||
if ( %currentTimeScale == 0.0 )
|
||||
physicsSetTimeScale( 1.0 );
|
||||
|
||||
physicsStartSimulation( "client" );
|
||||
physicsStartSimulation( "server" );
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue