occurs when there are too many actions added to a DockScreen. This is a general
problem, but it particularly applies to the ShipInteror screen, as that is
typically where modders add an action for accessing features specific to their mod.
We came up with two solutions, independent of each other. The first solution
solves the overflowing action problem for all screens, but will be harder to
implement. The second solution can be done in the current system, but only
applies to the ShipInterior screen.
The first solution is to add pagination to DockScreens. There would be a small
indicator on the action pane showing where in the list the player currently is.
There would then be two keys (customizable in settings.xml) that allow the
player to go forward and backwards in the list. We suggest a sensible default
would be '[' and ']'. Perhaps there could be a small onscreen text that
explained what keys to use (or it should just be in the F1 help text). The
reason for not making the forwards/backwards actions regular DockScreen
actions, is that it might end up clobbering keys for other actions. We also
considered a scrollbar and buttons clickable only by mouse, but discarded that
because it would not be cool to make a mouse only interface.
The second solution applies only to the ShipInterior. It is based on a concept
made for the original DSF, the External Interfaces screen. The idea is, that if
vanilla included a "Ships computer" action in the default ship interior screen,
then modders could easily add actions to that screen, without fear of
overflowing. It would also add a little flavour to the ship interior. It would
of course not prevent a modder from adding to the main ship interior, but we
believe it would quickly be adopted. Examples of mods that could make use of
this are: G.O.D, VUI, Captains Log, Cargo Summary, Weapons Extended and Statis
Pod. In general any mod that has a DS where information is shown or settings
can be changed. Right now, many of these mods add actions to the default pane
of the ShipInterior or have a usable item that pops up a DS (essentially
cluttering important interfaces).
I have made a version of the External Interfaces concept that can be plugged
directly into vanilla. It is named Auxiliary Systems, but could be named
anything. It is a simple DS, and the means of adding elements to it is equally
simple. Here is an example. Just create an item that looks like this:
Code: Select all
<ItemType
UNID= "&itAuxiliarySystemsHookExample;"
name= "(auxiliary systems hook example)"
attributes= "AuxiliarySystems"
virtual= "true"
>
<!-- optional image -->
<!--Image imageID="&rsItems1;" imageX="0" imageY="288" imageWidth="96" imageHeight="96"/-->
<StaticData>
<Title>"Some Title"</Title>
<Subtitle>"Some subtitle (optional)."</Subtitle>
<Action>(scrShowScreen gScreen &dsSomeScreen;)</Action>
</StaticData>
</ItemType>
AuxiliarySystems attribute, and display it in the screen (a custompicker). When
an item is selected, it will run the action associated with that. Simple. The
system can easily be expanded to provide more features, but this ought to be
sufficient. Also, any code can be run from the action, not only screen changing.
You can get the code here:
http://drop.alterecco.net/transcendence ... ystems.txt
So, two different proposals for two related problems. Personally I would really
like to see the second proposal implemented in vanilla. Even if you implemented
DS pagination it would still be a valuable addition with nice flavor.
I look forward to hear what you think of these suggestions.