Keyboard
From LagoonWiki
In /code/scripts/common/quickcommands.py:
Find:
nEventServer.register('key_pressed_0', SelGroup0)
nEventServer.register('key_pressed_1', SelGroup1)
nEventServer.register('key_pressed_2', SelGroup2)
nEventServer.register('key_pressed_3', SelGroup3)
nEventServer.register('key_pressed_4', SelGroup4)
nEventServer.register('key_pressed_5', SelGroup5)
nEventServer.register('key_pressed_6', SelGroup6)
nEventServer.register('key_pressed_7', SelGroup7)
nEventServer.register('key_pressed_8', SelGroup8)
nEventServer.register('key_pressed_9', SelGroup9)
Just after it, paste the following code:
# Camera movement code still in /src/aspect/ncameracontroller_main.cc :line 210
#/-----------------------------------------------------------------------------//
def moveShipSpeed(msg):
objs = call('/ui/planner.getobjectsselected')
ships = objs.split(' ')
for i in range(0, len(ships)):
pushsel (ships[i])
vel = gf ('desiredSpeed')
maxvel = gf ('maxSpeed')
vel += maxvel/10.0
if (vel >= maxvel):
vel = maxvel
sf ('desiredSpeed', vel)
popsel ()
#/-----------------------------------------------------------------------------//
nEventServer.register("key_pressed_num8", moveShipSpeed )
#/-----------------------------------------------------------------------------/
def moveShipSlow(msg):
objs = call('/ui/planner.getobjectsselected')
ships = objs.split(' ')
for i in range(0, len(ships)):
pushsel (ships[i])
vel = gf ('desiredSpeed')
maxvel = gf ('maxSpeed')
vel -= maxvel/10.0
if (vel <= 0.0):
vel = 0.0
sf ('desiredSpeed', vel)
popsel ()
#/-----------------------------------------------------------------------------//
nEventServer.register("key_pressed_num2", moveShipSlow )
#/-----------------------------------------------------------------------------/
def moveShipLeft(msg):
objs = call('/ui/planner.getobjectsselected')
ships = objs.split(' ')
for i in range(0, len(ships)):
pushsel (ships[i])
heading = gf ('desiredHeading') # in radians
headingDeg = math.degrees(heading)
headingDeg += 10.0
if (headingDeg >= 360.0):
headingDeg -= 360.0
heading = math.radians(headingDeg)
sf ('desiredHeading', heading)
popsel ()
#/-----------------------------------------------------------------------------//
nEventServer.register("key_pressed_num4", moveShipLeft )
#/-----------------------------------------------------------------------------/
def moveShipRight(msg):
objs = call('/ui/planner.getobjectsselected')
ships = objs.split(' ')
for i in range(0, len(ships)):
pushsel (ships[i])
heading = gf ('desiredHeading') # in radians
headingDeg = math.degrees(heading)
headingDeg -= 10.0
if (headingDeg <= 0.0):
headingDeg += 360.0
heading = math.radians(headingDeg)
sf ('desiredHeading', heading)
popsel ()
#/-----------------------------------------------------------------------------//
nEventServer.register("key_pressed_num6", moveShipRight )
#/-----------------------------------------------------------------------------/
In /code/src/gfx/ngl_xdisp.cc:
Find:
case XK_KP_Home: nk=N_KEY_HOME; break; case XK_KP_Left: nk=N_KEY_LEFT; break; case XK_KP_Up: nk=N_KEY_UP; break; case XK_KP_Right: nk=N_KEY_RIGHT; break; case XK_KP_Down: nk=N_KEY_DOWN; break; case XK_KP_End: nk=N_KEY_END; break; case XK_KP_Begin: nk=N_KEY_BEGIN; break; case XK_KP_Insert: nk=N_KEY_INSERT; break; case XK_KP_Delete: nk=N_KEY_DELETE; break; case XK_KP_Page_Up: nk=N_KEY_PRIOR; break; case XK_KP_Page_Down: nk=N_KEY_NEXT; break;
Replace the entire code block above with:
case XK_KP_Home: /*nk=N_KEY_N*/ nk=N_KEY_NUMPAD7; break; case XK_KP_Left: /*nk=N_KEY_LEFT;*/ nk=N_KEY_NUMPAD4; break; case XK_KP_Up: /*nk=N_KEY_UP;*/ nk=N_KEY_NUMPAD8; break; case XK_KP_Right: /*nk=N_KEY_RIGHT;*/ nk=N_KEY_NUMPAD6; break; case XK_KP_Down: /*nk=N_KEY_DOWN;*/ nk=N_KEY_NUMPAD2; break; case XK_KP_End: /*nk=N_KEY_END;*/ nk=N_KEY_NUMPAD1; break; case XK_KP_Begin: nk=N_KEY_BEGIN; break; case XK_KP_Insert: /*nk=N_KEY_INSERT;*/nk=N_KEY_NUMPAD0; break; case XK_KP_Delete: nk=N_KEY_DELETE; break; case XK_KP_Page_Up: /*nk=N_KEY_PRIOR;*/ nk=N_KEY_NUMPAD9; break; case XK_KP_Page_Down: /*nk=N_KEY_NEXT;*/ nk=N_KEY_NUMPAD3; break;
