Resource:Mapmanager
The map manager lists gamemodes/maps and manages gamemode/map loading. It applies certain map settings affecting the game world and sets ASE game type and map name rule values as well. It includes a web listing which autoupdates and highglights the current mode/map combination.
Usage
You have to tag the gamemode resource with the correct type in its info tag:
<info description="A gamemode" type="gamemode" />
Map resources also need the type="map" tag, plus a gamemodes tag listing the gamemode resources they're compatible with in a comma-separated list without spaces.
<info description="A gamemode map" type="map" gamemodes="ctv,koth" />
There can be only one gamemode and one gamemode map loaded at once.
Optional resource attributes
These attributes all go in the corresponding resource's info tag.
name: A friendly name for your gamemode or map, to be displayed in the start messages or map listings instead of the filename.
Commands
changemap newmap [newgamemode] (changes the gamemode map to a new one, optionally changing the gamemode as well)
changemode newgamemode [newmap] (changes to a new gamemode, optionally starting a map with it)
gamemode newgamemode [newmap] (same as previous one)
maps [gamemode] (lists all maps in the server, optionally all maps compatible with a gamemode)
gamemodes (lists all gamemodes)
Exported functions
bool changeGamemode ( resource newGamemode, [ resource mapToLoadWith ] )
Changes the gamemode to a new one, optionally specifying an initial map for it (will load without a map by default).
bool changeGamemodeMap ( resource newMap, [ resource gamemodeToChangeTo ] )
Changes the GM map to a new one, optionally specifying a gamemode to change to before loading it (will load with the current gamemode by default).
table getGamemodes ( )
Returns a table of all gamemode resource pointers.
table getGamemodesCompatibleWithMap ( resource theMap )
Returns a table of compatible gamemode resource pointers.
table getMaps ( )
Returns a table of all map resource pointers.
table getMapsCompatibleWithGamemode ( [ resource theGamemode ] )
Returns a table of compatible map resource pointers. If the gamemode is left blank, it returns all maps which aren't compatible with any gamemode.
resource getRunningGamemode ( )
Returns the currently running gamemode's resource pointer.
resource getRunningGamemodeMap ( )
Returns the currently running GM map's resource pointer.
bool isGamemode ( resource theGamemode )
Determines if a resource is a gamemode or not.
bool isGamemodeCompatibleWithMap ( resource theGamemode, resource theMap )
Determines if a gamemode is compatible with a map or not.
bool isMap ( resource theMap )
Determines if a resource is a map or not.
bool isMapCompatibleWithGamemode ( resource theMap, resource theGamemode )
Determines if a map is compatible with a gamemode or not.
bool stopGamemode ( )
Stops the current gamemode and its map.
bool stopGamemodeMap ( )
Stop the current GM map. Determines if a map is compatible with a gamemode or not.
Fired events
(For all these events, "source" is the resource's root element.)
onGamemodeStart ( resource startedGamemode )
Fired before a gamemode starts.
onGamemodeStop ( resource startedGamemode )
Fired before a gamemode is stopped.
onGamemodeMapStart ( resource startedMap )
Fired before a GM map starts.
onGamemodeMapStop ( resource startedMap )
Fired before a GM map is stopped.
Supported map settings
The following settings from the registry are applied by the map manager when a map is started:
gamespeed [number]: The map's game speed.
gravity [number]: The map's gravity.
time [string of the form hh:mm]: The map's time.
weather [number]: The map's weather ID.
waveheight [number]: The map's wave height.
locked_time [boolean]: Whether the set time will be frozen by the manager or not.
minplayers [number]: The required minimum number of players to start the map.
maxplayers [number]: The allowed maximum number of players to start the map.
TODO
- The manager still doesn't apply map settings, waiting for the settings registry system to be added.