This is the javadoc generated code documentation for FreeCol.
Overview
Themain package
contains the class
FreeCol
which is responsible for handling
the command-line arguments and starting either
a stand-alone server or a client-GUI.
The rest of the program has been divided into three separate packages:
client
,
common
and
server
.
You might have noticed a fourth package named
metaserver
, but this is a separate
program. The metaserver is running on meta.freecol.org:3540
in order to maintain a central list of public servers.
Client/server-architecture
We use a client/server-architecture. That is: a group of clients connects to the server in order to play a game. We are also using this approach even when a singleplayer game has been chosen (then there is only one client connected to the server).The client and the server are really two different programs, even though it is possible to start the server from the client GUI, and all interaction between the client and the server, after the creation of the server, should be done by communicating through the network.
Both the clients and the server has a game model, but only the server has the complete game model containing all the information. The client model only contains the information being visible to the player using the client.
One important point here is: You will need to update all the clients' models as well as the server model if you want perform an action (like building a colony, moving a unit etc).
Read more at:
Overview of the client/server-architecture
The game model
Thecommon
package contains everything being shared between
the client and the server. One of these things is the
game model
which is best described as
being a model of the imaginary world we are creating.
The model should only contain the information needed to model the imaginary world. That is; it should not contain information on how the map should be displayed etc.
Package | Description |
---|---|
net.sf.freecol |
FreeCol
|
net.sf.freecol.client |
FreeCol Client Package
|
net.sf.freecol.client.control |
FreeCol Client Control package
|
net.sf.freecol.client.gui |
FreeCol Client GUI package
|
net.sf.freecol.client.gui.action |
Contains the
Action s used by the GUI in menus and other places. |
net.sf.freecol.client.gui.animation |
Contains the FreeCol unit amimation classes.
|
net.sf.freecol.client.gui.dialog |
Contains the dialog-specific displays
|
net.sf.freecol.client.gui.images | |
net.sf.freecol.client.gui.label |
Contains the Label-specific displays
|
net.sf.freecol.client.gui.mapviewer | |
net.sf.freecol.client.gui.menu |
Contains the FreeCol menu classes.
|
net.sf.freecol.client.gui.option |
Contains user interface classes for visualizing
options . |
net.sf.freecol.client.gui.panel |
Contains the panel classes deriving from
MigPanel or FreeColPanel |
net.sf.freecol.client.gui.panel.colopedia |
Contains the Colopedia-specific panels
|
net.sf.freecol.client.gui.panel.report |
Contains the FreeCol Report-specific panels
|
net.sf.freecol.client.gui.plaf |
Contains the user interface objects for the "FreeCol Look and Feel".
|
net.sf.freecol.client.gui.tooltip |
Contains the
JToolTip -specific displays |
net.sf.freecol.client.gui.video |
Support for playing video.
|
net.sf.freecol.client.networking |
Contains the client networking classes.
|
net.sf.freecol.common |
FreeCol Common package
|
net.sf.freecol.common.debug |
Contains the FreeCol debugging classes.
|
net.sf.freecol.common.i18n |
FreeCol Internationalisation package
|
net.sf.freecol.common.io |
Classes for reading and writing FreeCol data files.
|
net.sf.freecol.common.io.sza |
Support for reading an animation made from images stored in a .zip file.
|
net.sf.freecol.common.logging |
FreeCol Common Logging package
|
net.sf.freecol.common.metaserver |
Contains the common networking classes.
|
net.sf.freecol.common.model |
FreeCol Game Model package
|
net.sf.freecol.common.model.mission |
Contains the FreeCol
Unit goal classes. |
net.sf.freecol.common.model.pathfinding |
Classes used when making searches on the map.
|
net.sf.freecol.common.networking |
Contains the common networking classes.
|
net.sf.freecol.common.option |
Contains classes for describing, and saving the state of,
a game option . |
net.sf.freecol.common.resources |
Classes for handling resources.
|
net.sf.freecol.common.sound |
FreeCol Sound and Music package
|
net.sf.freecol.common.util |
Contains the FreeCol Collection of small static helpers.
|
net.sf.freecol.metaserver |
FreeCol Meta server
|
net.sf.freecol.server |
The main package of the server package tree.
|
net.sf.freecol.server.ai |
FreeCol Artifical Intelligence
|
net.sf.freecol.server.ai.mission |
Contains the FreeCol Artifical Intelligence
AIUnit mission clases. |
net.sf.freecol.server.control |
Contains the classes responsible for the control of the game.
|
net.sf.freecol.server.generator |
Contains the map generator.
|
net.sf.freecol.server.model |
Contains model classes with server specific information.
|
net.sf.freecol.server.networking |
Contains the server networking classes.
|
net.sf.freecol.tools |
Contains tools directly related to FreeCol.
|