********************************************************************************
Permafrost Engine Python API documentation
Module: pf
********************************************************************************

This file is generated by the script: ./scripts/dump_api.py.
Use this script as the engine argument to generate up-to-date API documentation.

********************************************************************************
BUILT-IN FUNCTIONS
********************************************************************************

    [activate_named_cursor]
    ----------------------------------------------------------------------------
    Make a cursor (specified by name) the currently displayed cursor.

    [activate_system_cursor]
    ----------------------------------------------------------------------------
    Make a cursor (specified by CURSOR enum type) the currently displayed
    cursor.

    [add_faction]
    ----------------------------------------------------------------------------
    Add a new faction with the specified name and color. By default, this
    faction is mutually at peace with every other existing faction. By default,
    new factions are player-controllable.

    [attack_in_formation]
    ----------------------------------------------------------------------------
    Order the specified units to arrange themselves at the target location and
    orientation, attacking any enemies along the way.

    [clear_unit_selection]
    ----------------------------------------------------------------------------
    Clear the current unit seleciton.

    [ctrl_pressed]
    ----------------------------------------------------------------------------
    Returns True if either of the CTRL keys are currently pressed.

    [curr_music]
    ----------------------------------------------------------------------------
    Return the name of the currently playing music track, or None.

    [disable_fog_of_war]
    ----------------------------------------------------------------------------
    Disable the fog of war.

    [disable_unit_selection]
    ----------------------------------------------------------------------------
    Make it impossible to select units with the mouse. Disable drawing of a
    selection box when dragging the mouse.

    [draw_text]
    ----------------------------------------------------------------------------
    Draw a text label with the specified bounds (X, Y, W, H) )and with the
    specified color (R, G, B, A). The label lasts for one frame, meaning this
    should be called every tick to keep the label fixed.

    [enable_fog_of_war]
    ----------------------------------------------------------------------------
    Enable the fog of war.

    [enable_unit_selection]
    ----------------------------------------------------------------------------
    Make it possible to select units with the mouse. Enable drawing of a
    selection box when dragging the mouse.

    [entities_for_tag]
    ----------------------------------------------------------------------------
    Get a tuple of entities that have the specific tag.

    [ents_in_circle]
    ----------------------------------------------------------------------------
    Returns a list of entities in the specified circle (defined by (X, Z)
    'position' and 'radius'). Takes an optional 'predicate' callable argument
    to filter the results.

    [ents_in_rect]
    ----------------------------------------------------------------------------
    Returns a list of entities in the specified rectangle (defined by two (X,
    Z) points - the 'minimum' and 'maximum' corners. Takes an optional
    'predicate' callable argument to filter the results.

    [exec_]
    ----------------------------------------------------------------------------
    Replace the current subsession with one set up by the provided script. This
    is performed asynchronously. Failure is notified via an
    EVENT_SESSION_FAIL_LOAD event.

    [exec_pop]
    ----------------------------------------------------------------------------
    Pop a previously saved subsession, using it to replace the current
    subsession. This is performed asynchronously. Failure is notified via an
    EVENT_SESSION_FAIL_LOAD event.

    [exec_pop_to_root]
    ----------------------------------------------------------------------------
    Pop the root subsession, using it to replace the current subsession. This
    is performed asynchronously. Failure is notified via an
    EVENT_SESSION_FAIL_LOAD event.

    [exec_push]
    ----------------------------------------------------------------------------
    Replace the current subsession with one set up by the provided script,
    saving the current subsession onto a stack. This is performed
    asynchronously. Failure is notified via an EVENT_SESSION_FAIL_LOAD event.

    [explore_map]
    ----------------------------------------------------------------------------
    Set the entire map as having being 'explored' for a particular faction.

    [flush_tasks]
    ----------------------------------------------------------------------------
    Run every single active scripting task until it either gets blocked or
    completes. Useful mainly for serialization during initialization.

    [formation_arrange]
    ----------------------------------------------------------------------------
    Arrange the specified units into a formation of the specified type.

    [formation_preferred_for_set]
    ----------------------------------------------------------------------------
    Returns the preferred formation type for the specified set of entities.

    [garrison_show_ui]
    ----------------------------------------------------------------------------
    Set a flag controlling whether or not the UI labels are rendered over the
    garrisonable entities.

    [get_active_camera]
    ----------------------------------------------------------------------------
    Get a pf.Camera object describing the active camera from whose point of
    view the scene is currently rendered.

    [get_active_font]
    ----------------------------------------------------------------------------
    Get the name of the current active font.

    [get_active_window]
    ----------------------------------------------------------------------------
    Get the currently active (having focus) window, or None.

    [get_all_music]
    ----------------------------------------------------------------------------
    Get a list of all the currently loaded music track names.

    [get_basedir]
    ----------------------------------------------------------------------------
    Get the path to the top-level game resource folder (parent of 'assets').

    [get_cursor_rts_mode]
    ----------------------------------------------------------------------------
    Returns the current state of the RTS cursor mode enablement.

    [get_diplomacy_state]
    ----------------------------------------------------------------------------
    Query the diplomacy state of the specified two faction IDs.

    [get_factions_list]
    ----------------------------------------------------------------------------
    Returns a list of descriptors (dictionaries) for each faction in the game.

    [get_file_size]
    ----------------------------------------------------------------------------
    Get the size (in bytes) of a Python file object.

    [get_hovered_unit]
    ----------------------------------------------------------------------------
    Get the closest unit under the mouse cursor, or None.

    [get_idle_units]
    ----------------------------------------------------------------------------
    Returns a list of currently idle units.

    [get_key_name]
    ----------------------------------------------------------------------------
    Returns the string name for an SDL_Keycode integer value.

    [get_minimap_position]
    ----------------------------------------------------------------------------
    Returns the current minimap position in virtual screen coordinates.

    [get_minimap_size]
    ----------------------------------------------------------------------------
    Get the center position of the minimap in virtual screen coordinates.

    [get_mouse_pos]
    ----------------------------------------------------------------------------
    Get the (x, y) cursor position on the screen.

    [get_native_resolution]
    ----------------------------------------------------------------------------
    Returns the native resolution of the active monitor.

    [get_nav_perfstats]
    ----------------------------------------------------------------------------
    Returns a dictionary holding various performance couners for the navigation
    subsystem.

    [get_render_info]
    ----------------------------------------------------------------------------
    Returns a dictionary describing the renderer context. It will have the
    string keys 'renderer', 'version', 'shading_language_version', and 'vendor'.

    [get_resolution]
    ----------------------------------------------------------------------------
    Get the currently set resolution of the game window.

    [get_resource_capacity]
    ----------------------------------------------------------------------------
    Returns the total capacity for storing a particular resource between all
    player-controlled storage sites.

    [get_resource_icon]
    ----------------------------------------------------------------------------
    Returns an image path (stirng) that is currently set to be used as the icon
    for the specified resource name.

    [get_resource_list]
    ----------------------------------------------------------------------------
    Returns a list of the names of all the resources that are present (or have
    ever been present) in the current session.

    [get_resource_stored]
    ----------------------------------------------------------------------------
    Returns the total amount of a particular resource between all
    player-controlled storage sites.

    [get_simstate]
    ----------------------------------------------------------------------------
    Returns the current simulation state.

    [get_ticks]
    ----------------------------------------------------------------------------
    Get the current number of game ticks (milliseconsd) - only useful in
    finding elapsed times in relation to other ticks.

    [get_tile]
    ----------------------------------------------------------------------------
    Get the pf.Tile object describing the tile at the specified coordinates.

    [get_unit_selection]
    ----------------------------------------------------------------------------
    Returns a list of objects currently selected by the player.

    [global_event]
    ----------------------------------------------------------------------------
    Broadcast a global event so all handlers can get invoked. Any weakref
    argument is automatically unpacked before being sent to the handler.

    [hide_healthbars]
    ----------------------------------------------------------------------------
    Disable rendering of healthbars. Overrides the user-configurable dynamic
    setting.

    [hide_regions]
    ----------------------------------------------------------------------------
    Hide region outlines and names.

    [hide_unit_icons]
    ----------------------------------------------------------------------------
    Disable rendering of icons on top of entities.

    [load_map]
    ----------------------------------------------------------------------------
    Loads the map from the specified file.

    [load_map_string]
    ----------------------------------------------------------------------------
    Loads the map from the specified PFMAP string.

    [load_scene]
    ----------------------------------------------------------------------------
    Import list of entities from a PFSCENE file (specified as a path string).
    Returns a tuple of the following items: list of loaded entities, list of
    loaded regions.

    [load_session]
    ----------------------------------------------------------------------------
    Load a session previously saved with the 'save_session' call.

    [map_height_at_point]
    ----------------------------------------------------------------------------
    Returns the Y-dimension map height at the specified XZ coordinate. Returns
    None if the specified coordinate is outside the map bounds.

    [map_nearest_pathable]
    ----------------------------------------------------------------------------
    Returns the closest XZ map position that is pathable and not currently
    blocked.

    [map_nearest_pathable_air]
    ----------------------------------------------------------------------------
    Returns the closest XZ map position that is not currently blocked by other
    air units.

    [map_nearest_pathable_water]
    ----------------------------------------------------------------------------
    Returns the closest XZ map position that is on water, pathable and not
    currently blocked.

    [map_pos_over_land]
    ----------------------------------------------------------------------------
    Returns true if the XZ position is over land.

    [map_pos_over_water]
    ----------------------------------------------------------------------------
    Returns true if the XZ position is over water.

    [map_pos_under_cursor]
    ----------------------------------------------------------------------------
    Returns the XYZ coordinate of the point of the map underneath the cursor.
    Returns 'None' if the cursor is not over the map.

    [mouse_over_minimap]
    ----------------------------------------------------------------------------
    Returns true if the mouse cursor is over the minimap, false otherwise.

    [mouse_over_ui]
    ----------------------------------------------------------------------------
    Returns True if the mouse cursor is within the bounds of any UI windows.

    [move_in_formation]
    ----------------------------------------------------------------------------
    Order the specified units to arrange themselves at the target location and
    orientation.

    [multiply_quaternions]
    ----------------------------------------------------------------------------
    Returns the normalized result of multiplying 2 quaternions (specified as a
    list of 4 floats - XYZW order).

    [nearest_ent]
    ----------------------------------------------------------------------------
    Returns the nearest entity to the specified 'position' - (X, Z) point or
    None. Takes an optional 'predicate' callable argument to filter the results
    and an optional 'max_range' (Float) argument.

    [open_url]
    ----------------------------------------------------------------------------
    Open the specified URL in the system's browser.

    [pickle_object]
    ----------------------------------------------------------------------------
    Returns an ASCII string holding the serialized representation of the object
    graph.

    [play_effect]
    ----------------------------------------------------------------------------
    Play a specified audio effect at the specified (X, Y, Z) position. The name
    must be a name of a WAV file in the 'assets/sounds' folder, without the
    file extension.

    [play_global_effect]
    ----------------------------------------------------------------------------
    Play a specified audio effect with global range. The name must be a name of
    a WAV file in the 'assets/sounds' folder, without the file extension. If
    another global effect is already playing, the effect will be ignored,
    unless 'interrupt' is set to True.

    [play_music]
    ----------------------------------------------------------------------------
    Set the specified audio track to loop in the background. The argument must
    be a name of a WAV file in the 'assets/music' folder, without the file
    extension.

    [prev_frame_ms]
    ----------------------------------------------------------------------------
    Get the duration of the previous game frame in milliseconds.

    [prev_frame_perfstats]
    ----------------------------------------------------------------------------
    Get a dictionary of the performance data for the previous frame.

    [rand]
    ----------------------------------------------------------------------------
    Return a pseudo-random number in the range of 0 to the integer argument.

    [register_event_handler]
    ----------------------------------------------------------------------------
    Adds a script event handler to be called when the specified global event
    occurs. Any weakref user arguments are automatically unpacked before being
    passed to the handler.

    [register_ui_event_handler]
    ----------------------------------------------------------------------------
    Same as 'register_event_handler' but the handler will also be run when the
    simulation state is pf.G_PAUSED_UI_RUNNING. This is for UI callbacks that
    should still be invoked even when the game is in a 'paused' state.

    [remove_faction]
    ----------------------------------------------------------------------------
    Remove the faction with the specified faction_id. This will remove all
    entities belonging to that faction. This may change the values of some
    other entities' faction_ids.

    [save_session]
    ----------------------------------------------------------------------------
    Save the current state of the engine to the specified file. The session can
    then be loaded from the file with the 'load_session' call.

    [session_stack_depth]
    ----------------------------------------------------------------------------
    Returns the number of sessions currently on the sessin stack.

    [set_active_camera]
    ----------------------------------------------------------------------------
    Set a pf.Camera object to be the active camera from whose point of view the
    scene is currently rendered.

    [set_active_font]
    ----------------------------------------------------------------------------
    Set the current active font to that of the specified name.

    [set_ambient_light_color]
    ----------------------------------------------------------------------------
    Sets the global ambient light color (specified as an RGB multiplier) for
    the scene.

    [set_attack_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue an attack
    command to the location under the cursor.

    [set_build_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a build
    command to the building under the cursor.

    [set_click_move_enabled]
    ----------------------------------------------------------------------------
    Enable or disable issuing move orders by right-clicking.

    [set_cursor_rts_mode]
    ----------------------------------------------------------------------------
    Activates or deactivates the cursor RTS mode which keeps the cursor icon
    updated based on which edge of the screen it is at.

    [set_diplomacy_state]
    ----------------------------------------------------------------------------
    Symmetrically sets the diplomacy state between two distinct factions
    (passed in as IDs).

    [set_drop_off_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a 'drop off'
    command to the storage site under the cursor.

    [set_emit_light_color]
    ----------------------------------------------------------------------------
    Sets the color (specified as an RGB multiplier) for the global light source.

    [set_emit_light_pos]
    ----------------------------------------------------------------------------
    Sets the position (in XYZ worldspace coordinates)

    [set_evict_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue an 'evict'
    command to the garrisonable units in the selection, to get as close as
    possible to the target and evict all units..

    [set_faction_controllable]
    ----------------------------------------------------------------------------
    Sets whether units of this faction can be controlled by the player or not.

    [set_garrison_ui_font_color]
    ----------------------------------------------------------------------------
    Set the garrison UI text color to the specified color (R, G, B, A).

    [set_garrison_ui_icon]
    ----------------------------------------------------------------------------
    Set the garrisonable UI icon to the specified image (specified as an image
    path string).

    [set_garrison_ui_style]
    ----------------------------------------------------------------------------
    Set the garrisonable UI background to the specified color (R, G, B, A) or
    image (string).

    [set_gather_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a gather
    command to the resource under the cursor.

    [set_map_highlight_size]
    ----------------------------------------------------------------------------
    Determines how many tiles around the currently hovered tile are
    highlighted. (0 = none, 1 = single tile highlighted, 2 = 3x3 grid
    highlighted, etc.)

    [set_minimap_border_clr]
    ----------------------------------------------------------------------------
    Set the border color for the minimap.

    [set_minimap_position]
    ----------------------------------------------------------------------------
    Set the center position of the minimap in virtual screen coordinates.

    [set_minimap_render_all_ents]
    ----------------------------------------------------------------------------
    Set a boolean to control whether all entities should be shown on the
    minimap, or just more relevant ones, such as movable ones and buildings.

    [set_minimap_resize_mask]
    ----------------------------------------------------------------------------
    Set the anchor points for the minimap, to control its bounds as the screen
    resizes.

    [set_minimap_size]
    ----------------------------------------------------------------------------
    Set the center position of the minimap in virtual screen coordinates. A
    size of 0 fully hides the minimap.

    [set_move_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a move
    command to the location under the cursor.

    [set_named_cursor]
    ----------------------------------------------------------------------------
    Load a BMP cursor and associate it with a particular name.

    [set_pick_up_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a 'pick up'
    command to the storage site under the cursor.

    [set_position_rally_point_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will update the rally
    points of all currently selected buildings.

    [set_resource_icon]
    ----------------------------------------------------------------------------
    Specify an image path (string) to be used as the icon for a resource with
    the specified resource name.

    [set_simstate]
    ----------------------------------------------------------------------------
    Set the current simulation state.

    [set_storage_site_ui_border_color]
    ----------------------------------------------------------------------------
    Set the storage site UI border color to the specified color (R, G, B, A).

    [set_storage_site_ui_font_color]
    ----------------------------------------------------------------------------
    Set the storage site UI text color to the specified color (R, G, B, A).

    [set_storage_site_ui_style]
    ----------------------------------------------------------------------------
    Set the storage site UI background to the specified color (R, G, B, A) or
    image (string).

    [set_system_cursor]
    ----------------------------------------------------------------------------
    Set a BMP for one of the cursors used by the engine core.

    [set_transport_on_left_click]
    ----------------------------------------------------------------------------
    Set the cursor to target mode. The next left click will issue a 'transport'
    command to the storage site under the cursor.

    [set_unit_selection]
    ----------------------------------------------------------------------------
    Overwrites the list of objects currently selected by the player with the
    specified entity list.

    [settings_create]
    ----------------------------------------------------------------------------
    Create a new setting, the value of which will be saved in the settings file
    and will be accessible in another session. Settings may hold the following
    types: int, float, string, bool, and tuple of 2 floats (vec2). Setting
    names beginning with 'pf' are reserved for the engine.

    [settings_delete]
    ----------------------------------------------------------------------------
    Delete a setting with the specified name. Setting names beginning with 'pf'
    are reserved for the engine and may not be deleted.

    [settings_flush]
    ----------------------------------------------------------------------------
    Write the current settings to the settings file.

    [settings_get]
    ----------------------------------------------------------------------------
    Returns the value of the setting with the specified name. Will throw an
    exception if the setting is not found.

    [settings_set]
    ----------------------------------------------------------------------------
    Updates the value of the setting with the specified name. Will throw an
    exception if the setting is not found or if the new value for the setting
    is invalid.

    [shift_pressed]
    ----------------------------------------------------------------------------
    Returns True if either of the SHIFT keys are currently pressed.

    [show_console]
    ----------------------------------------------------------------------------
    Brings up the interactive Python console.

    [show_healthbars]
    ----------------------------------------------------------------------------
    Re-enable showing the healthbars after a 'hide_healthbars' call. Note that
    the healthbars will only be rendered if the corresponding user-configurable
    setting is set.

    [show_regions]
    ----------------------------------------------------------------------------
    Show region outlines and names over the map surface.

    [show_unit_icons]
    ----------------------------------------------------------------------------
    Enable rendering of icons on top of entities.

    [spawn_projectile]
    ----------------------------------------------------------------------------
    Spawn a projectile with the specified parameters at a map location. The
    projectile will travel with the specified velocity until it leaves the map
    bounds or hits a unit. The hit event can be handled.

    [storage_site_show_ui]
    ----------------------------------------------------------------------------
    Set a flag controlling whether or not the UI windows are rendered over the
    storage sites.

    [ticks_delta]
    ----------------------------------------------------------------------------
    Compute the MS delta between two tick values retried by 'get_ticks'. This
    handles unsigned overflow unlike regular Python integer arithmnetic.

    [ui_text_edit_has_focus]
    ----------------------------------------------------------------------------
    Returns True if the mouse cursor is currently in an editable text field of
    a UI window, such that the field records the keystrokes.

    [unpickle_object]
    ----------------------------------------------------------------------------
    Returns a new reference to an object built from its' serialized
    representation. The argument string must an earlier return value of
    'pf.pickle_object'.

    [unregister_event_handler]
    ----------------------------------------------------------------------------
    Removes a script event handler added by 'register_event_handler'.

    [update_faction]
    ----------------------------------------------------------------------------
    Updates the name and color of the faction with the specified faction_id.

    [update_tile]
    ----------------------------------------------------------------------------
    Update the map tile at the specified coordinates to the new value.

********************************************************************************
BUILT-IN CLASSES
********************************************************************************

    [AirEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine air-based (flying) entity. This is a subclass of
    pf.Entity. This kind of entity .

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [AnimEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine animated entity. This type requires the 'idle_clip'
    keyword argument to be passed to __init__. This is a subclass of pf.Entity.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine animated entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_anim]
        Get the name of the currently playing animation clip.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [play_anim]
        Play the animation clip with the specified name. Set kwarg 'mode=%d' to
        set the animation mode. The default is ANIM_MODE_LOOP.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [BuildableEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine entity buildable entity. This is a subclass of pf.Entity.
    The building starts out in the 'PLACEMENT' state. It must then go through
    the 'MARKED', 'FOUNDED', 'SUPPLIED', and 'COMPLETED' states. This type
    requires the 'required_resources' keyword argument to be passed to __init__.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [completed]
        Boolean indicating if the building is at or past the 'COMPLETED' state.

        [faction_id]
        Index of the faction that the entity belongs to.

        [founded]
        Boolean indicating if the building is at or past the 'FOUNDED' state.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rally_point]
        The location to which newly created or upgraded units will rally to.

        [required_resources]
        Get a dictionary of the resources required to supply this building.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [supplied]
        Boolean indicating if the building is at or past the 'SUPPLIED' state.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine buildable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [complete]
        Advance a building to the 'COMPLETED' state from the 'SUPPLIED' state.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [found]
        Advance a building to the 'FOUNDED' state from the 'MARKED' state,
        where it becomes a build site and wait for workers to supply it.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [mark]
        Advance a building to the 'MARKED' state from the initial 'PLACEMENT'
        state, where it will wait for a worker to found it.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [supply]
        Advance a building to the 'SUPPLIED' state from the 'FOUNDED' state,
        where it meets the construction resource requirements and wait for
        workers to finish constructing it.

        [unobstructed]
        Returns True if there is no obstruction under any of the building's
        tiles.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [BuilderEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine builder entity. This is a subclass of pf.Entity. This
    kind of entity is able to construct and repair pf.BuildableEntity
    instances. This type requires the 'build_speed' keyword argument to be
    passed to '__init__'.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine builder entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [build]
        Issue an order to build a specific buildable entity.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [Camera]
    ----------------------------------------------------------------------------
    Permafrost Engine camera object.                               
                                                                   
    The camera takes the following (optional) keyword  arguments   
    in its' constructor:                                           
                                                                   
      - mode {pf.CAM_MODE_RTS, pf.CAM_MODE_FPS, pf.CAM_MODE_FREE}  
      - position (tuple of 3 floats)                               
      - pitch (float)                                              
      - yaw (float)                                                
      - speed (float)                                              
      - sensitivity (float)                                        


        ************************************************************************
        MEMBERS
        ************************************************************************
        [direction]
        The current worldspace direction of the camera

        [mode]
        The mode determines which controller is installed when the camera is
        activated. Can be one of pf.CAM_MODE_RTS, pf.CAM_MODE_FPS,
        pf.CAM_MODE_FREE

        [pitch]
        The camera's pitch (in degrees)

        [position]
        The current worldspace position of the camera

        [sensitivity]
        The camera's sensitivity (how fast direction can be changed)

        [speed]
        The camera's speed (in OpenGL units / ms)

        [yaw]
        The camera's yaw (in degrees)

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine camera object to a string.

        [center_over_location]
        Position the camera over the specified (X, Z) map location, by only
        shifting it in the XZ plane.

    [CombatableEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine entity which is able to take part in combat. This type
    requires the 'max_hp', 'base_dmg', and 'base_armour' keyword arguments to
    be passed to __init__. An optional 'attack_range' keyword argument may also
    be passed. This is a subclass of pf.Entity.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [attack_range]
        The distance from which an entity can attack. 0 for melee units.

        [base_armour]
        The base armour (as a fraction from 0.0 to 1.0) specifying which
        percentage of incoming damage is blocked.

        [base_dmg]
        The base damage for which this entity's attacks hit.

        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [hp]
        The current number of hitpoints that the entity has.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [max_hp]
        The maximum number of hitpoints that the entity starts out with.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [attack]
        Issues an 'attack move' order to the entity at the XZ position
        specified by the argument.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [hold_position]
        Issues a 'hold position' order to the entity, stopping it and
        preventing it from moving to attack.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [Entity]
    ----------------------------------------------------------------------------
    Permafrost Engine generic game entity.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [GarrisonEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine entity that is able to be garrisoned inside buildings or
    transport units. This is a subclass of pf.Entity.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [garrison_capacity]
        The capacity of the garrisonable entity that is used up when this
        entity is garrisoned.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [garrison]
        Issues a 'garrison' order to the entity to try and enter the
        garrisonable entity specified by the argument.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [GarrisonableEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine entity that is able to hold a garrison of units. This is
    a subclass of pf.Entity.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [garrisonable_capacity]
        The capacity of for the total garrisoned population.

        [garrisonable_current]
        The total of the currently garrisoned population.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [HarvesterEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine resource entity. This is a subclass of pf.Entity. This
    kind of entity is able to gather and transport resources (from
    pf.ResourceEntity types).

        ************************************************************************
        MEMBERS
        ************************************************************************
        [automatic_transport]
        Boolean indicating whether the unit is currently in 'automatic
        transport' mode. When in this mode, the unit will perform transporting
        jobs each time it becomes idle.

        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [strategy]
        The approach used by the harvester to pick the next storage site to get
        resources from. Must be a pf.TRANSPORT_ enum value.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [total_carry]
        Get the total amount of resources currently carried by the entity.

        [transport_priority]
        Get the ordered list of the resource names that the harvester will
        prioritize transporting.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_curr_carry]
        Clear any resources that the unit is currently carrying.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [decrease_transport_priority]
        Move the specified resource down in the priority list the peasant uses
        for selecting which resource to bring next to the target storage site.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [drop_off]
        Instruct an entity to bring the resources it is currently holding to
        the specified storage site.

        [face_towards]
        Make the entity face towards the specified point.

        [gather]
        Instruct an entity to harvest a particular resource.

        [get_curr_carry]
        Get the amount of a particular resources that this entity is currently
        carrying.

        [get_do_not_transport]
        Get flag indicating whether the enitty is forbidden from transporting
        the particular resource.

        [get_gather_speed]
        Get how much of the specified resource the entity gathers in a single
        animation.

        [get_icons]
        Get the set of icons displayed over the entity.

        [get_max_carry]
        Get the maximum amount of a particular resources that this entity is
        able to carry.

        [increase_transport_priority]
        Move the specified resource up in the priority list the peasant uses
        for selecting which resource to bring next to the target storage site.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_do_not_transport]
        Get flag indicating whether the enitty is forbidden from transporting
        the particular resource.

        [set_gather_speed]
        Set how much of the specified resource the entity gathers in a single
        animation.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_max_carry]
        Set how much of the specified resource the entity is able to carry at a
        time.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [transport]
        Instruct an entity to bring resources to the target storage site, using
        its' strategy and priority list to select the appropriate source
        storage sites.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [MovableEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine movable entity. This is a subclass of pf.Entity. This
    kind of entity is able to receive move orders and travel around the map.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [preferred_formation]
        The preferred formation type for the entity (the formation to move in
        for the next move order).

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [speed]
        Entity's movement speed (in OpenGL coordinates per second).

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [move]
        Issues a 'move' order to the entity at the XZ position specified by the
        argument.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [Region]
    ----------------------------------------------------------------------------
    Permafrost Engine region object.                               
                                                                   
    The regions takes the following (mandatory) keyword arguments  
    in its' constructor:                                           
                                                                   
      - type {pf.REGION_CIRCLE, pf.REGION_RECTANGLE}               
      - name (string)                                              
      - position (tuple of 2 floats)                               
                                                                   
    In addition, it takes the following arguments depending on the 
    type:                                                          
                                                                   
      - radius (float) [circle regions only]                       
      - dimensions (tuple of 2 floats) [rectangular regions only]  


        ************************************************************************
        MEMBERS
        ************************************************************************
        [name]
        The name of the region.

        [parameters]
        Get a dictionary with the size parameters of the region, which vary
        depending on the region type

        [position]
        The current worldspace position of the region

        [shown]
        Boolean to control whether the region is rendered on the map surface

        [type]
        The type (pf.REGION_CIRCLE or pf.REGION_RECTANGLE) of the region.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine region object to a string.

        [contains]
        Returns True if the specified entity is currently within the region.

        [curr_ents]
        Get a list of all the entities currently within the region.

        [explore]
        Explore the Fog of War in the region for the specified faction.

    [ResourceEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine resource entity. This is a subclass of pf.Entity. This
    type requires the 'resource_name' and 'resource_amount' keyword arguments
    to be passed to '__init__'.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [cursor]
        The name of the cursor to display as a contextual gather command
        indicator when hovering over the resource.

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [replenishable]
        Boolean indicating whether this resource can be replenished after it is
        exhausted.

        [resource_amount]
        The amount of resources that this entity currently holds

        [resource_name]
        The name of resource that can be harvested from this entity

        [restored_amount]
        The amount of the resource that will be restored to the entity when it
        is replenished.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [get_replenish_amount]
        Gets the amount of a resource required to replenish the resource after
        it is exhausted.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [set_replenish_amount]
        Sets the amount of a resource required to replenish the resource after
        it is exhausted.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [StorageSiteEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine storage site entity. This is a subclass of pf.Entity.
    This kind of entity is able to hold resources that can be dropped off by
    pf.HarvesterEntity types.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [do_not_take_land]
        Boolean specifying whether land-based units are forbidden from taking
        resources from this site.

        [do_not_take_water]
        Boolean specifying whether water-based units are forbidden from taking
        resources from this site.

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [storable]
        The list of resources that are currently able to be held at this
        storage site.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_capacity]
        Gets the maximum amount of the specified resource that can be stored in
        the storage site.

        [get_curr_amount]
        Gets the amount of the specified resource currently stored in the
        storage site.

        [get_desired]
        Gets the target amount of the specified resource that harvesters will
        aim to store there.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_capacity]
        Sets the maximum amount of the specified resource that can be stored in
        the storage site.

        [set_curr_amount]
        Sets the amount of the specified resource currently stored in the
        storage site.

        [set_desired]
        Sets the target amount of the specified resource that harvesters will
        aim to store there.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [Task]
    ----------------------------------------------------------------------------
    Permafrost Engine runnable task.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [completed]
        Returns True if the task has ran to completion

        ************************************************************************
        METHODS
        ************************************************************************
        [__call__]
        x.__call__(...) <==> x(...)

        [__pickle__]
        Serialize a Permafrost Engine task object to a string.

        [await_event]
        Become blocked unitl a particular event takes place.

        [receive]
        Become blocked, waiting until a message is received from the specified
        task.

        [register]
        Register this task for a specific name.

        [reply]
        Respond to a sent message from another task, unblocking it.

        [run]
        Start the task, invoking its' __run__ method in a fiber context.

        [send]
        Send a message to another pf.Task instance, becoming blocked until it
        replies.

        [sleep]
        Become blocked for a period of time specified in milliseconds.

        [wait]
        Block until the completion of another pf.Task instance.

        [who_is]
        Look up a task for a specific name

        [yield_]
        Yield to the scheduler, allowing other tasks to run. The task may be
        suspended until the next frame. Yielding periodically is a means to
        make sure that long-running tasks don't exceed the frame's time budget.

    [Tile]
    ----------------------------------------------------------------------------
    Map tile representation for Permafrost Engine maps.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [base_height]
        The height level of the bottom plane of the tile.

        [blend_mode]
        The mode which determines how this tile's texture is blended with
        adjacent tiles' textures.

        [blend_normals]
        A boolean which determines if this tile's normals are averaged together
        with adjacent normals to create a 'smooth' terrain look.

        [bot_left_height]
        The height of the bot left corner.

        [bot_right_height]
        The height of the bot right corner.

        [no_bump_map]
        A boolean which determines if the bump map is used for giving an uneven
        texture to the top surface.('False' means that the bump map is used).

        [pathable]
        Whether or not units can travel through this tile.

        [ramp_height]
        The height of the top edge of the ramp or corner above the base_height.

        [sides_mat_idx]
        Material index for the side faces of the tile.

        [top_left_height]
        The height of the top left corner.

        [top_mat_idx]
        Material index for the top face of the tile.

        [top_right_height]
        The height of the top right corner.

        [type]
        Integer value specifying whether this tile is a ramp, which direction
        it faces, etc.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine tile to a string.

    [UIButtonStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI buttons.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the button in the active (pressed) state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [border]
        A floating-point value of the button border width, in pixels.

        [border_color]
        The (R, G, B, A) color of button borders.

        [hover]
        The look of the button when the mouse is hovered over it - either an
        (R, G, B, A) tuple or a string representing a path to an image.

        [image_padding]
        An (X, Y) tuple of floats to control the padding around images.

        [normal]
        The look of the button in the normal state - either an (R, G, B, A)
        tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple of floats to control the padding around buttons.

        [rounding]
        A floating-point value to control how rounded the button corners are.

        [text_active]
        The (R, G, B, A) color of button text when the button is in the active
        state.

        [text_alignment]
        A set of flags to control the text alignment of the button label.

        [text_background]
        The (R, G, B, A) background color of the text when an image is used for
        the button.

        [text_hover]
        The (R, G, B, A) color of button text when the cursor is hovered over
        the button.

        [text_normal]
        The (R, G, B, A) color of button text when the button is in the default
        state.

        [touch_padding]
        An (X, Y) tuple of floats to control the clickable region of the button.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIButtonStyle object to a string.

    [UIComboStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine combo box UI elements.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the combo element in the active state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [border]
        A floating-point value to control width of the combo box border.

        [border_color]
        The color of the combo box border - an (R, G, B, A) tuple.

        [button]
        A pf.UIButtonStyle object describing the style of the combo box
        drop-down button.

        [button_padding]
        An (X, Y) tuple of floats to control the padding around combo box
        drop-down buttons.

        [content_padding]
        An (X, Y) tuple of floats to control the padding around combo box
        contents.

        [hover]
        The look of the combo element in the hovered state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [label_active]
        The color of the combo item label in the active state - an (R, G, B, A)
        tuple

        [label_hover]
        The color of the combo item label in the hovered state - an (R, G, B,
        A) tuple

        [label_normal]
        The color of the combo item label in the normal state - an (R, G, B, A)
        tuple.

        [normal]
        The look of the combo element in the normal state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [rounding]
        A floating-point value to control how rounded the selectable label
        corners are.

        [spacing]
        An (X, Y) tuple of floats to control the spacing in between combo box
        elements.

        [sym_active]
        The type of the combo box drop-down glyph in the active state - an
        integer (pf.NK_SYMBOL_X, etc.)

        [sym_hover]
        The type of the combo box drop-down glyph in the hovered state - an
        integer (pf.NK_SYMBOL_X, etc.)

        [sym_normal]
        The type of the combo box drop-down glyph in the normal state - an
        integer (pf.NK_SYMBOL_X, etc.)

        [symbol_active]
        The color of the combo symbol in the active state - an (R, G, B, A)
        tuple

        [symbol_hover]
        The color of the combo symbol in the hovered state - an (R, G, B, A)
        tuple

        [symbol_normal]
        The color of the combo symbol in the normal state - an (R, G, B, A)
        tuple.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIComboStyle object to a string.

    [UIEditStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI toggle-able options.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the editable field in the active state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [border]
        The width of the editable field borders.

        [border_color]
        The color of the editable field border - an (R, G, B, A) tuple.

        [cursor_hover]
        The color of the cursor in the hover state - an (R, G, B, A) tuple.

        [cursor_normal]
        The color of the cursor in the normal state - an (R, G, B, A) tuple.

        [cursor_size]
        A float to control the size of the cursor.

        [cursor_text_hover]
        The color of the text cursor in hover mode - an (R, G, B, A) tuple.

        [cursor_text_normal]
        The color of the text cursor in normal mode - an (R, G, B, A) tuple.

        [hover]
        The look of the editable field in the hovered state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [normal]
        The look of the editable field in the normal state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple to control the padding within an editable field.

        [rounding]
        An (X, Y) tuple of floats to control the rounding of the editable
        fields.

        [row_padding]
        An float to control the row padding within an editable field.

        [scrollbar]
        The style of the scrollbar of editable fields - a UIStyleObject instance

        [scrollbar_size]
        An (X, Y) tuple to control the size of the editable field scrollbar.

        [selected_hover]
        The color of the selection box in hover mode - an (R, G, B, A) tuple.

        [selected_normal]
        The color of the selection box in normal mode - an (R, G, B, A) tuple.

        [selected_text_hover]
        The color of the (selected) text in hover mode - an (R, G, B, A) tuple.

        [selected_text_normal]
        The color of the (selected) text in normal mode - an (R, G, B, A) tuple.

        [text_active]
        The color of the (unselected) text in active mode - an (R, G, B, A)
        tuple.

        [text_hover]
        The color of the (unselected) text in hover mode - an (R, G, B, A)
        tuple.

        [text_normal]
        The color of the (unselected) text in normal mode - an (R, G, B, A)
        tuple.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIEditStyle object to a string.

    [UIHeaderStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI window headers.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the button in the active (pressed) state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [close_button]
        A pf.UIButtonStyle object describing the style of the close button.

        [hover]
        The look of the button when the mouse is hovered over it - either an
        (R, G, B, A) tuple or a string representing a path to an image.

        [label_active]
        The (R, G, B, A) color of header label when the window is in the active
        state.

        [label_hover]
        The (R, G, B, A) color of header label when the cursor is hovered over
        the window.

        [label_normal]
        The (R, G, B, A) color of header label when the window is in the
        default state.

        [minimize_button]
        A pf.UIButtonStyle object describing the style of the minimize button.

        [normal]
        The look of the button in the normal state - either an (R, G, B, A)
        tuple or a string representing a path to an image.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIButtonStyle object to a string.

    [UIProgressStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI progress bar options.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the progress bar background in the active state - either an
        (R, G, B, A) tuple or a string representing a path to an image.

        [border]
        The width of the progress bar borders.

        [border_color]
        The color of the progress bar border - an (R, G, B, A) tuple.

        [cursor_active]
        The look of the progress bar cursor in the active state - either an (R,
        G, B, A) tuple or a string representing a path to an image.

        [cursor_border]
        The width of the progress bar cursor borders.

        [cursor_border_color]
        The color of the progress bar cursor border - an (R, G, B, A) tuple.

        [cursor_hover]
        The look of the progress bar cursor in the hovered state - either an
        (R, G, B, A) tuple or a string representing a path to an image.

        [cursor_normal]
        The look of the progress bar cursor in the normal state - either an (R,
        G, B, A) tuple or a string representing a path to an image.

        [cursor_rounding]
        An (X, Y) tuple of floats to control the rounding of the progress bar
        cursor.

        [hover]
        The look of the progress bar background in the hovered state - either
        an (R, G, B, A) tuple or a string representing a path to an image.

        [normal]
        The look of the progress bar background in the normal state - either an
        (R, G, B, A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple to control the padding within a progress bar widget.

        [rounding]
        An (X, Y) tuple of floats to control the rounding of the progress bar
        widget.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIProgressStyle object to a string.

    [UIPropertyStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI property fields.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the property field in the active state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [border]
        The width of the property field borders.

        [border_color]
        The color of the property field border - an (R, G, B, A) tuple.

        [dec_button]
        The style of the property decrement value button - a
        pf.UIButtonStyleObject instance.

        [edit]
        The style of the property editable region a pf.UIEditStyleObject
        instance.

        [hover]
        The look of the property field in the hovered state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [inc_button]
        The style of the property increment value button - a
        pf.UIButtonStyleObject instance.

        [label_active]
        The color of the label in the active state - an (R, G, B, A) tuple.

        [label_hover]
        The color of the label in the hover state - an (R, G, B, A) tuple.

        [label_normal]
        The color of the label in the normal state - an (R, G, B, A) tuple.

        [normal]
        The look of the property field in the normal state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple to control the padding within a property field.

        [rounding]
        An (X, Y) tuple of floats to control the rounding of the property
        fields.

        [sym_left]
        The style of the left button symbol - an NK_SYMBOL enum value.

        [sym_right]
        The style of the left button symbol - an NK_SYMBOL enum value.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIPropertyStyle object to a string.

    [UIScrollbarStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI toggle-able options.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the scrollbar in the active state - either an (R, G, B, A)
        tuple or a string representing a path to an image.

        [border]
        The width of the scrollbar borders.

        [border_color]
        The color of the scrollbar border - an (R, G, B, A) tuple.

        [border_cursor]
        A float to control the border of the cursor.

        [cursor_active]
        The look of the scrollbar cursor (selection indicator) in the active
        state - either an (R, G, B, A) tuple or a string representing a path to
        an image.

        [cursor_border_color]
        The look of the scrollbar cursor (selection indicator) in the active
        state - an (R, G, B, A) tuple.

        [cursor_hover]
        The look of the scrollbar cursor (selection indicator) in the hover
        state - either an (R, G, B, A) tuple or a string representing a path to
        an image.

        [cursor_normal]
        The look of the scrollbar cursor (selection indicator) in the normal
        state - either an (R, G, B, A) tuple or a string representing a path to
        an image.

        [hover]
        The look of the scrollbar in the hovered state - either an (R, G, B, A)
        tuple or a string representing a path to an image.

        [normal]
        The look of the scrollbar in the normal state - either an (R, G, B, A)
        tuple or a string representing a path to an image.

        [padding]
        A float to control the padding within a scrollbar.

        [rounding]
        An (X, Y) tuple of floats to control the rounding of the scrollbars.

        [rounding_cursor]
        A float to control the rounding of the cursor.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIScrollbarStyle object to a string.

    [UISelectableStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine selectable labels.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [hover]
        The look of the selectable label in the hovered (inactive) state -
        either an (R, G, B, A) tuple or a string representing a path to an
        image.

        [hover_active]
        The look of the selectable label in the hovered (active) state - either
        an (R, G, B, A) tuple or a string representing a path to an image.

        [image_padding]
        An (X, Y) tuple of floats to control the padding around images.

        [normal]
        The look of the selectable label in the normal (inactive) state -
        either an (R, G, B, A) tuple or a string representing a path to an
        image.

        [normal_active]
        The look of the selectable label in the normal (active) state - either
        an (R, G, B, A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple of floats to control the padding around selectable
        labels.

        [pressed]
        The look of the selectable label in the pressed (inactive) state -
        either an (R, G, B, A) tuple or a string representing a path to an
        image.

        [pressed_active]
        The look of the selectable label in the pressed (active) state - either
        an (R, G, B, A) tuple or a string representing a path to an image.

        [rounding]
        A floating-point value to control how rounded the selectable label
        corners are.

        [text_alignment]
        The mode of text alignment (pf.NK_TEXT_CENTERED, etc.).

        [text_hover]
        The color of the selectable label text in the hovered (inactive) state
        - an (R, G, B, A) tuple

        [text_hover_active]
        The color of the selectable label text in the hovered (active) state -
        an (R, G, B, A) tuple

        [text_normal]
        The color of the selectable label text in the normal (inactive) state -
        an (R, G, B, A) tuple.

        [text_normal_active]
        The color of the selectable label text in the normal (active) state -
        an (R, G, B, A) tuple.

        [text_pressed]
        The color of the selectable label text in the pressed (inactive) state
        - an (R, G, B, A) tuple

        [text_pressed_active]
        The color of the selectable label text in the pressed (active) state -
        an (R, G, B, A) tuple

        [touch_padding]
        An (X, Y) tuple of floats to control the clickable region of the
        selectable label.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UISelectableStyle object to a string.

    [UISliderStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI slider options.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the slider background in the active state - either an (R,
        G, B, A) tuple or a string representing a path to an image.

        [bar_active]
        The color of the slider bar in the active state - an (R, G, B, A) tuple.

        [bar_filled]
        The color of the slider bar in the filled state - an (R, G, B, A) tuple.

        [bar_height]
        The height of the slider bar.

        [bar_hover]
        The color of the slider bar in the hover state - an (R, G, B, A) tuple.

        [bar_normal]
        The color of the slider bar in the normal state - an (R, G, B, A) tuple.

        [border]
        The width of the slider widget borders.

        [border_color]
        The color of the slider bar border - an (R, G, B, A) tuple.

        [cursor_active]
        The look of the slider cursor in the active state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [cursor_hover]
        The look of the slider cursor in the hovered state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [cursor_normal]
        The look of the slider cursor in the normal state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [cursor_size]
        An (X, Y) tuple to control the size of the slider cursor.

        [dec_button]
        Returns a UIButtonStyleObject to control the look of the decrement
        button.

        [dec_symbol]
        The style of the decrement button symbol - an NK_SYMBOL enum value.

        [hover]
        The look of the slider background in the hovered state - either an (R,
        G, B, A) tuple or a string representing a path to an image.

        [inc_button]
        Returns a UIButtonStyleObject to control the look of the increment
        button.

        [inc_symbol]
        The style of the increment button symbol - an NK_SYMBOL enum value.

        [normal]
        The look of the slider background in the normal state - either an (R,
        G, B, A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple to control the padding within a slider widget.

        [rounding]
        An (X, Y) tuple of floats to control the rounding of the slider widget.

        [show_buttons]
        A boolean to control whether to show the increment/decrement buttons at
        the edges of the slider widget.

        [spacing]
        An (X, Y) tuple to control the spacing within a slider widget.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UISliderStyle object to a string.

    [UIToggleStyle]
    ----------------------------------------------------------------------------
    Style configuration for Permafrost Engine UI toggle-able options.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [active]
        The look of the toggle button in the active state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [border]
        A floating-point value of the toggle button border width, in pixels.

        [border_color]
        The color of the toggle button border - an (R, G, B, A) tuple.

        [cursor_hover]
        The look of the toggle button cursor (selection indicator) in the hover
        state - either an (R, G, B, A) tuple or a string representing a path to
        an image.

        [cursor_normal]
        The look of the toggle button cursor (selection indicator) in the
        normal state - either an (R, G, B, A) tuple or a string representing a
        path to an image.

        [hover]
        The look of the toggle button in the hovered state - either an (R, G,
        B, A) tuple or a string representing a path to an image.

        [normal]
        The look of the toggle button in the normal state - either an (R, G, B,
        A) tuple or a string representing a path to an image.

        [padding]
        An (X, Y) tuple of floats to control the padding around toggle buttons.

        [spacing]
        A float to control the spacing within a toggle button widget.

        [text_active]
        The color of the option text in the active state - an (R, G, B, A) tuple

        [text_alignment]
        A set of flags to control the text alignment of the option label.

        [text_background]
        The color of the option text background - an (R, G, B, A) tuple

        [text_hover]
        The color of the option text in the hovered state - an (R, G, B, A)
        tuple

        [text_normal]
        The color of the option text in the normal state - an (R, G, B, A)
        tuple.

        [touch_padding]
        An (X, Y) tuple of floats to control the clickable region of the toggle
        button.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine UIToggleStyle object to a string.

    [WaterEntity]
    ----------------------------------------------------------------------------
    Permafrost Engine water-based entity. This is a subclass of pf.Entity. This
    kind of entity ignores ground and water obstacles.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [bounds]
        Return an (X, Y, Z) tuple of the dimensions of the entity's bounding
        box (in OpenGL coordinates).

        [faction_id]
        Index of the faction that the entity belongs to.

        [height]
        Returns the scaled height of the entity, in OpenGL coordinates.

        [idle]
        Boolean indicating whether the entity is currently in an idle state.

        [name]
        Custom name given to this enity.

        [pfobj_path]
        The relative path of the PFOBJ file used to instantiate the entity.
        Readonly.

        [pos]
        The XYZ position in worldspace coordinates.

        [rotation]
        XYZW quaternion for rotaion about local origin.

        [scale]
        The XYZ scaling factors.

        [selectable]
        Flag indicating whether this entity can be selected with the mouse.

        [selection_radius]
        Radius (in OpenGL coordinates) of the unit selection circle for this
        entity.

        [tags]
        Return a tuple with all the entity's tags.

        [top_screen_pos]
        Get the location of the top center point of the entity, in screenspace
        coordinates.

        [uid]
        The unique integer ID of this entity

        [vision_range]
        The radius (in OpenGL coordinates) that the entity sees around itself.

        [zombie]
        Returns True if the entity is a zombie (destroyed in the game
        simulation, but retained via a scripting reference).

        ************************************************************************
        METHODS
        ************************************************************************
        [__del__]
        Calls the next __del__ in the MRO if there is one, otherwise do nothing.

        [__pickle__]
        Serialize a Permafrost Engine combatable entity to a string.

        [add_tag]
        Add a string tag to this entity's list of tags.

        [clear_icons]
        Clear the set of icons displayed over the entity.

        [deselect]
        Removes the entity from the current unit selection, if it is selected.

        [face_towards]
        Make the entity face towards the specified point.

        [get_icons]
        Get the set of icons displayed over the entity.

        [is_garrisoned]
        Returns True if the entity is currently garrisoned.

        [notify]
        Send a specific event to an entity in order to invoke the entity's
        event handlers. Weakref arguments are automatically unpacked before
        being passed to the handler.

        [ping]
        Temporarily blink the enitity's selection circle.

        [register]
        Registers the specified callable to be invoked when an event of the
        specified type is sent to this entity.

        [remove_tag]
        Remove a string tag from this entity's list of tags.

        [select]
        Adds the entity to the current unit selection, if it is not present
        there already.

        [set_icons]
        Assign a set of icons to be displayed over the entity.

        [set_model]
        Replace the current entity's current model and animation data with the
        specified PFOBJ data.

        [stop]
        Issues a 'stop' command to the entity, stopping its' movement and
        attack. Cancels 'hold position' order.

        [unregister]
        Unregisters a callable previously registered to be invoked on the
        specified event.

        [zombiefy]
        Make the entity a 'zombie', effectively removing it from the game
        simulation but allowing the scripting object to persist.

    [Window]
    ----------------------------------------------------------------------------
    Permafrost Engine UI window.

        ************************************************************************
        MEMBERS
        ************************************************************************
        [background]
        An (R, G, B, A) tuple of floats specifying the background color for
        some panels such as the combo box popup.

        [border]
        A float to control the border width of a window.

        [border_color]
        An (R,G,B,A) tuple to control the border color of a window.

        [closed]
        A readonly bool indicating if this window is 'closed'.

        [combo_border]
        A float to control the border width around a combo section.

        [combo_border_color]
        An (R,G,B,A) tuple to control the border color of window combo boxes.

        [combo_padding]
        An (X, Y) tuple of floats to control the padding around a combo section
        in a window.

        [contextual_border]
        A float to control the border width around a contextual button.

        [contextual_border_color]
        An (R,G,B,A) tuple to control the border color of window contextual
        panels.

        [contextual_padding]
        An (X, Y) tuple of floats to control the padding around a contextual
        button.

        [fixed_background]
        An image path or an (R, G, B, A) tuple of floats specifying the
        background style of the window.

        [group_border]
        A float to control the border width around a group.

        [group_border_color]
        An (R,G,B,A) tuple to control the border color of window group panels.

        [group_padding]
        An (X, Y) tuple of floats to control the padding around a group in a
        window.

        [header]
        An pf.UIHeaderStyle type for controlling the style parameters of the
        window header.

        [header_height]
        A float specifying the height of the window header in pixels.

        [hidden]
        A readonly bool indicating if this window is 'hidden'.

        [interactive]
        A read-write bool to enable or disable user interactivity for this
        window.

        [menu_border]
        A float to control the border width around a menu button.

        [menu_border_color]
        An (R,G,B,A) tuple to control the border color of window menus.

        [menu_padding]
        An (X, Y) tuple of floats to control the padding around a menu button
        in a window.

        [min_row_height_padding]
        A float to control the minimum number of pixels of padding at the
        header and footer of a row..

        [min_size]
        An (X, Y) tuple of floats to control the minimum size of the window.

        [padding]
        An (X, Y) tuple of floats to control the padding (between border and
        content) of a window.

        [popup_border]
        A float to control the border width around a popup window.

        [popup_border_color]
        An (R,G,B,A) tuple to control the border color of window popups.

        [popup_padding]
        An (X, Y) tuple of floats to control the padding in a popup window.

        [position]
        A tuple of two integers specifying the X and Y position of the window.

        [scrollbar_size]
        An (X, Y) tuple of floats to control the size of the scrollbar.

        [size]
        A tuple of two integers specifying the width and height dimentions of
        the window.

        [spacing]
        An (X, Y) tuple of floats to control the spacing (between components)
        within a window.

        [tooltip_border]
        A float to control the border width around a tooltip window.

        [tooltip_border_color]
        An (R,G,B,A) tuple to control the border color of tooltip panels.

        [tooltip_padding]
        An (X, Y) tuple of floats to control the padding in a tooltip window.

        ************************************************************************
        METHODS
        ************************************************************************
        [__pickle__]
        Serialize a Permafrost Engine window to a string.

        [animated_button_label]
        Add a button with a label and action with a circling animation around
        it.

        [button_label]
        Add a button with a label and action.

        [checkbox]
        Checkbox which can be toggled. Returns True if checked.

        [color_picker]
        Graphical color picker widget. Returns the selected color as an RGBA
        tuple.

        [combo_box]
        Present a combo box with a list of selectable options.

        [edit_focus]
        Give focus to the next active text edit widget.

        [edit_string]
        Text field for getting string input from the user. Returns the current
        text.

        [file_browser]
        Present a file browser widget.

        [group]
        The window UI components pushed in the callable argument will be nested
        under a group.

        [hide]
        Make the window invisible.

        [image]
        Present an image at the specified path.

        [label_colored]
        Add a colored label layout with the specified alignment.

        [label_colored_wrap]
        Add a colored label layout.

        [layout_row_begin]
        Begin a new row to which widgets can be pushed.

        [layout_row_dynamic]
        Add a row with a dynamic layout.

        [layout_row_end]
        End a row previously started with 'layout_row_begin'.

        [layout_row_push]
        Add a widget to the currently active row. Note that this must be
        preceded by a call to 'layout_row_begin'.

        [layout_row_static]
        Add a row with a static layout.

        [on_hide]
        Callback that gets invoked when the user hides the window with the
        close button (or via an API call).

        [on_maximize]
        Callback that gets invoked when the user maximizes the window with the
        maximize button.

        [on_minimize]
        Callback that gets invoked when the user minimizes the window with the
        minimize button.

        [option_label]
        Radio button with the specified text. Returns if the radio button is
        selected.

        [popup]
        The window UI components pushed in the callable argument will be
        presented in a popup.

        [popup_close]
        Close the currently active popup window. Must only be called from poup
        context.

        [progress]
        Present a progress bar widget with the current value, the maximum value
        and a 'modifiable' flag.

        [progress_text]
        Like 'progress', but also taking a string and (RGBA) parameters to draw
        a label over the progress bar.

        [property_float]
        Editable input field for floating-point properties.

        [property_int]
        Editable input field for integer properties.

        [selectable_label]
        Adds a label that can be toggled to be selected with a mouse click.
        Returns the new state of the selectable label.

        [selectable_symbol_label]
        Text label preceded by one of the pf.NK_SYMBOL_ symbols.

        [show]
        Make the window visible.

        [simple_chart]
        Add a chart with a single slot.

        [slider_float]
        Present a slider widget with floating-point precision.

        [slider_int]
        Present a slider widget with integer precision.

        [spacer]
        Empty widget to consume slots in a row.

        [text_lines]
        Returns the number of lines taken up by the specified text.

        [text_lines_width]
        Returns the number of lines taken up by the specified text in a widget
        of the specified width.

        [tree]
        The window UI components pushed in the callable argument will be nested
        under a collapsable tree section.

        [tree_element]
        The window UI components pushed in the callable argument will be nested
        under a collapsable non-root tree section.

        [update]
        Handles layout and state changes of the window. Default implementation
        is empty. This method should be overridden by subclasses to customize
        the window look and behavior.

********************************************************************************
BUILT-IN CONSTANTS
********************************************************************************

    AIR_UNIT_HEIGHT 20
    ANCHOR_DEFAULT 9
    ANCHOR_X_CENTER 4
    ANCHOR_X_LEFT 1
    ANCHOR_X_MASK 7
    ANCHOR_X_RIGHT 2
    ANCHOR_Y_BOT 16
    ANCHOR_Y_CENTER 32
    ANCHOR_Y_MASK 56
    ANCHOR_Y_TOP 8
    ANIM_MODE_LOOP 0
    ANIM_MODE_ONCE 1
    AUDIO_NUM_FG_CHANNELS 4
    BLEND_MODE_BLUR 1
    BLEND_MODE_NOBLEND 0
    CAM_MODE_FPS 0
    CAM_MODE_FREE 2
    CAM_MODE_RTS 1
    CURSOR_ATTACK 10
    CURSOR_BUILD 12
    CURSOR_DROP_OFF 13
    CURSOR_GARRISON 15
    CURSOR_NO_ATTACK 11
    CURSOR_POINTER 0
    CURSOR_SCROLL_BOT 5
    CURSOR_SCROLL_BOT_LEFT 6
    CURSOR_SCROLL_BOT_RIGHT 4
    CURSOR_SCROLL_LEFT 7
    CURSOR_SCROLL_RIGHT 3
    CURSOR_SCROLL_TOP 1
    CURSOR_SCROLL_TOP_LEFT 8
    CURSOR_SCROLL_TOP_RIGHT 2
    CURSOR_TARGET 9
    CURSOR_TRANSPORT 14
    DIPLOMACY_STATE_PEACE 0
    DIPLOMACY_STATE_WAR 1
    EVENT_10HZ_TICK 65550
    EVENT_1HZ_TICK 65551
    EVENT_20HZ_TICK 65548
    EVENT_30HZ_TICK 65547
    EVENT_60HZ_TICK 65546
    EVENT_ANIM_CYCLE_FINISHED 65553
    EVENT_ANIM_FINISHED 65552
    EVENT_ATTACK_END 65560
    EVENT_ATTACK_START 65557
    EVENT_BUILDING_COMPLETED 65574
    EVENT_BUILDING_CONSTRUCTED 65575
    EVENT_BUILDING_FOUNDED 65573
    EVENT_BUILDING_PLACED 65597
    EVENT_BUILDING_REMOVED 65598
    EVENT_BUILD_BEGIN 65569
    EVENT_BUILD_END 65570
    EVENT_BUILD_FAIL_FOUND 65571
    EVENT_BUILD_TARGET_ACQUIRED 65572
    EVENT_ENGINE_LAST 131071
    EVENT_ENTERED_REGION 65588
    EVENT_ENTITY_DEATH 65558
    EVENT_ENTITY_DEATH_IMMEDIATE 65559
    EVENT_ENTITY_DIED 65576
    EVENT_ENTITY_DISAPPEARED 65593
    EVENT_ENTITY_STOP 65577
    EVENT_EXITED_REGION 65589
    EVENT_GAME_SIMSTATE_CHANGED 65561
    EVENT_HARVEST_BEGIN 65578
    EVENT_HARVEST_END 65579
    EVENT_HARVEST_TARGET_ACQUIRED 65580
    EVENT_MOTION_END 65556
    EVENT_MOTION_START 65555
    EVENT_MOVABLE_ENTITY_BLOCK 65596
    EVENT_MOVABLE_ENTITY_UNBLOCK 65595
    EVENT_MOVE_ISSUED 65554
    EVENT_NEW_GAME 65544
    EVENT_ORDER_ISSUED 65594
    EVENT_PROJECTILE_DISAPPEAR 65591
    EVENT_PROJECTILE_HIT 65592
    EVENT_RALLY_POINT_SET 65599
    EVENT_RENDER_3D_POST 65540
    EVENT_RENDER_3D_PRE 65539
    EVENT_RENDER_FINISH 65542
    EVENT_RENDER_UI 65541
    EVENT_RESOURCE_AMOUNT_CHANGED 65587
    EVENT_RESOURCE_DROPPED_OFF 65584
    EVENT_RESOURCE_EXHAUSTED 65586
    EVENT_RESOURCE_PICKED_UP 65585
    EVENT_SCRIPT_TASK_EXCEPTION 65567
    EVENT_SCRIPT_TASK_FINISHED 65568
    EVENT_SELECTED_TILE_CHANGED 65543
    EVENT_SESSION_FAIL_LOAD 65565
    EVENT_SESSION_FAIL_SAVE 65566
    EVENT_SESSION_LOADED 65562
    EVENT_SESSION_POPPED 65563
    EVENT_SESSION_SAVED 65564
    EVENT_STORAGE_SITE_AMOUNT_CHANGED 65583
    EVENT_STORAGE_TARGET_ACQUIRED 65582
    EVENT_TRANSPORT_TARGET_ACQUIRED 65581
    EVENT_UNIT_BECAME_ACTIVE 65601
    EVENT_UNIT_BECAME_IDLE 65600
    EVENT_UNIT_SELECTION_CHANGED 65545
    EVENT_UPDATE_END 65537
    EVENT_UPDATE_FACTION 65590
    EVENT_UPDATE_START 65536
    EVENT_UPDATE_UI 65538
    FORMATION_COLUMN 2
    FORMATION_MAX 3
    FORMATION_NONE 0
    FORMATION_RANK 1
    G_PAUSED_FULL 2
    G_PAUSED_UI_RUNNING 4
    G_RUNNING 1
    HB_MODE_ALWAYS 0
    HB_MODE_DAMAGED 1
    HB_MODE_NEVER 2
    KMOD_ALT 768
    KMOD_CAPS 8192
    KMOD_CTRL 192
    KMOD_GUI 3072
    KMOD_LALT 256
    KMOD_LCTRL 64
    KMOD_LGUI 1024
    KMOD_LSHIFT 1
    KMOD_MODE 16384
    KMOD_NONE 0
    KMOD_NUM 4096
    KMOD_RALT 512
    KMOD_RCTRL 128
    KMOD_RESERVED 32768
    KMOD_RGUI 2048
    KMOD_RSHIFT 2
    KMOD_SHIFT 3
    MAX_FACTIONS 15
    MUSIC_MODE_LOOP 0
    MUSIC_MODE_PLAYLIST 1
    MUSIC_MODE_SHUFFLE 2
    NK_BUTTON_DEFAULT 0
    NK_BUTTON_REPEATER 1
    NK_CHART_CLICKED 2
    NK_CHART_COLUMN 1
    NK_CHART_HOVERING 1
    NK_CHART_LINES 0
    NK_CHART_MAX 2
    NK_DYNAMIC 0
    NK_EDIT_ALLOW_TAB 8
    NK_EDIT_ALWAYS_INSERT_MODE 512
    NK_EDIT_AUTO_SELECT 2
    NK_EDIT_BOX 1640
    NK_EDIT_CLIPBOARD 64
    NK_EDIT_CTRL_ENTER_NEWLINE 128
    NK_EDIT_DEFAULT 0
    NK_EDIT_EDITOR 1128
    NK_EDIT_FIELD 608
    NK_EDIT_GOTO_END_ON_ACTIVATE 2048
    NK_EDIT_MULTILINE 1024
    NK_EDIT_NO_CURSOR 16
    NK_EDIT_NO_HORIZONTAL_SCROLL 256
    NK_EDIT_READ_ONLY 1
    NK_EDIT_SELECTABLE 32
    NK_EDIT_SIG_ENTER 4
    NK_EDIT_SIMPLE 512
    NK_FIXED 0
    NK_HIDDEN 0
    NK_HORIZONTAL 1
    NK_MAXIMIZED 1
    NK_MINIMIZED 0
    NK_MODIFIABLE 1
    NK_POPUP_DYNAMIC 1
    NK_POPUP_STATIC 0
    NK_RGB 0
    NK_RGBA 1
    NK_SHOWN 1
    NK_STATIC 1
    NK_SYMBOL_CIRCLE_OUTLINE 4
    NK_SYMBOL_CIRCLE_SOLID 3
    NK_SYMBOL_MAX 13
    NK_SYMBOL_MINUS 12
    NK_SYMBOL_NONE 0
    NK_SYMBOL_PLUS 11
    NK_SYMBOL_RECT_OUTLINE 6
    NK_SYMBOL_RECT_SOLID 5
    NK_SYMBOL_TRIANGLE_DOWN 8
    NK_SYMBOL_TRIANGLE_LEFT 9
    NK_SYMBOL_TRIANGLE_RIGHT 10
    NK_SYMBOL_TRIANGLE_UP 7
    NK_SYMBOL_UNDERSCORE 2
    NK_SYMBOL_X 1
    NK_TEXT_ALIGN_BOTTOM 32
    NK_TEXT_ALIGN_CENTERED 2
    NK_TEXT_ALIGN_LEFT 1
    NK_TEXT_ALIGN_MIDDLE 16
    NK_TEXT_ALIGN_RIGHT 4
    NK_TEXT_ALIGN_TOP 8
    NK_TEXT_CENTERED 18
    NK_TEXT_LEFT 17
    NK_TEXT_RIGHT 20
    NK_TREE_NODE 0
    NK_TREE_TAB 1
    NK_VERTICAL 0
    NK_WINDOW_BACKGROUND 256
    NK_WINDOW_BORDER 1
    NK_WINDOW_CLOSABLE 8
    NK_WINDOW_MINIMIZABLE 16
    NK_WINDOW_MOVABLE 2
    NK_WINDOW_NO_INPUT 1024
    NK_WINDOW_NO_SCROLLBAR 32
    NK_WINDOW_SCALABLE 4
    NK_WINDOW_SCALE_LEFT 512
    NK_WINDOW_SCROLL_AUTO_HIDE 128
    NK_WINDOW_TITLE 64
    PF_WF_BORDERLESS_WIN 272
    PF_WF_FULLSCREEN 257
    PF_WF_WINDOW 256
    PROJ_ONLY_HIT_COMBATABLE 1
    PROJ_ONLY_HIT_ENEMIES 2
    REGION_CIRCLE 1
    REGION_RECTANGLE 0
    SDLK_0 48
    SDLK_1 49
    SDLK_2 50
    SDLK_3 51
    SDLK_4 52
    SDLK_5 53
    SDLK_6 54
    SDLK_7 55
    SDLK_8 56
    SDLK_9 57
    SDLK_AC_BACK 1073742094
    SDLK_AC_BOOKMARKS 1073742098
    SDLK_AC_FORWARD 1073742095
    SDLK_AC_HOME 1073742093
    SDLK_AC_REFRESH 1073742097
    SDLK_AC_SEARCH 1073742092
    SDLK_AC_STOP 1073742096
    SDLK_AGAIN 1073741945
    SDLK_ALTERASE 1073741977
    SDLK_AMPERSAND 38
    SDLK_APP1 1073742107
    SDLK_APP2 1073742108
    SDLK_APPLICATION 1073741925
    SDLK_ASTERISK 42
    SDLK_AT 64
    SDLK_AUDIOFASTFORWARD 1073742110
    SDLK_AUDIOMUTE 1073742086
    SDLK_AUDIONEXT 1073742082
    SDLK_AUDIOPLAY 1073742085
    SDLK_AUDIOPREV 1073742083
    SDLK_AUDIOREWIND 1073742109
    SDLK_AUDIOSTOP 1073742084
    SDLK_BACKQUOTE 96
    SDLK_BACKSLASH 92
    SDLK_BACKSPACE 8
    SDLK_BRIGHTNESSDOWN 1073742099
    SDLK_BRIGHTNESSUP 1073742100
    SDLK_CALCULATOR 1073742090
    SDLK_CANCEL 1073741979
    SDLK_CAPSLOCK 1073741881
    SDLK_CARET 94
    SDLK_CLEAR 1073741980
    SDLK_CLEARAGAIN 1073741986
    SDLK_COLON 58
    SDLK_COMMA 44
    SDLK_COMPUTER 1073742091
    SDLK_COPY 1073741948
    SDLK_CRSEL 1073741987
    SDLK_CURRENCYSUBUNIT 1073742005
    SDLK_CURRENCYUNIT 1073742004
    SDLK_CUT 1073741947
    SDLK_DECIMALSEPARATOR 1073742003
    SDLK_DELETE 127
    SDLK_DISPLAYSWITCH 1073742101
    SDLK_DOLLAR 36
    SDLK_DOWN 1073741905
    SDLK_EJECT 1073742105
    SDLK_END 1073741901
    SDLK_EQUALS 61
    SDLK_ESCAPE 27
    SDLK_EXCLAIM 33
    SDLK_EXECUTE 1073741940
    SDLK_EXSEL 1073741988
    SDLK_F1 1073741882
    SDLK_F10 1073741891
    SDLK_F11 1073741892
    SDLK_F12 1073741893
    SDLK_F13 1073741928
    SDLK_F14 1073741929
    SDLK_F15 1073741930
    SDLK_F16 1073741931
    SDLK_F17 1073741932
    SDLK_F18 1073741933
    SDLK_F19 1073741934
    SDLK_F2 1073741883
    SDLK_F20 1073741935
    SDLK_F21 1073741936
    SDLK_F22 1073741937
    SDLK_F23 1073741938
    SDLK_F24 1073741939
    SDLK_F3 1073741884
    SDLK_F4 1073741885
    SDLK_F5 1073741886
    SDLK_F6 1073741887
    SDLK_F7 1073741888
    SDLK_F8 1073741889
    SDLK_F9 1073741890
    SDLK_FIND 1073741950
    SDLK_GREATER 62
    SDLK_HASH 35
    SDLK_HELP 1073741941
    SDLK_HOME 1073741898
    SDLK_INSERT 1073741897
    SDLK_KBDILLUMDOWN 1073742103
    SDLK_KBDILLUMTOGGLE 1073742102
    SDLK_KBDILLUMUP 1073742104
    SDLK_KP_0 1073741922
    SDLK_KP_00 1073742000
    SDLK_KP_000 1073742001
    SDLK_KP_1 1073741913
    SDLK_KP_2 1073741914
    SDLK_KP_3 1073741915
    SDLK_KP_4 1073741916
    SDLK_KP_5 1073741917
    SDLK_KP_6 1073741918
    SDLK_KP_7 1073741919
    SDLK_KP_8 1073741920
    SDLK_KP_9 1073741921
    SDLK_KP_A 1073742012
    SDLK_KP_AMPERSAND 1073742023
    SDLK_KP_AT 1073742030
    SDLK_KP_B 1073742013
    SDLK_KP_BACKSPACE 1073742011
    SDLK_KP_BINARY 1073742042
    SDLK_KP_C 1073742014
    SDLK_KP_CLEAR 1073742040
    SDLK_KP_CLEARENTRY 1073742041
    SDLK_KP_COLON 1073742027
    SDLK_KP_COMMA 1073741957
    SDLK_KP_D 1073742015
    SDLK_KP_DBLAMPERSAND 1073742024
    SDLK_KP_DBLVERTICALBAR 1073742026
    SDLK_KP_DECIMAL 1073742044
    SDLK_KP_DIVIDE 1073741908
    SDLK_KP_E 1073742016
    SDLK_KP_ENTER 1073741912
    SDLK_KP_EQUALS 1073741927
    SDLK_KP_EQUALSAS400 1073741958
    SDLK_KP_EXCLAM 1073742031
    SDLK_KP_F 1073742017
    SDLK_KP_GREATER 1073742022
    SDLK_KP_HASH 1073742028
    SDLK_KP_HEXADECIMAL 1073742045
    SDLK_KP_LEFTBRACE 1073742008
    SDLK_KP_LEFTPAREN 1073742006
    SDLK_KP_LESS 1073742021
    SDLK_KP_MEMADD 1073742035
    SDLK_KP_MEMCLEAR 1073742034
    SDLK_KP_MEMDIVIDE 1073742038
    SDLK_KP_MEMMULTIPLY 1073742037
    SDLK_KP_MEMRECALL 1073742033
    SDLK_KP_MEMSTORE 1073742032
    SDLK_KP_MEMSUBTRACT 1073742036
    SDLK_KP_MINUS 1073741910
    SDLK_KP_MULTIPLY 1073741909
    SDLK_KP_OCTAL 1073742043
    SDLK_KP_PERCENT 1073742020
    SDLK_KP_PERIOD 1073741923
    SDLK_KP_PLUS 1073741911
    SDLK_KP_PLUSMINUS 1073742039
    SDLK_KP_POWER 1073742019
    SDLK_KP_RIGHTBRACE 1073742009
    SDLK_KP_RIGHTPAREN 1073742007
    SDLK_KP_SPACE 1073742029
    SDLK_KP_TAB 1073742010
    SDLK_KP_VERTICALBAR 1073742025
    SDLK_KP_XOR 1073742018
    SDLK_LALT 1073742050
    SDLK_LCTRL 1073742048
    SDLK_LEFT 1073741904
    SDLK_LEFTBRACKET 91
    SDLK_LEFTPAREN 40
    SDLK_LESS 60
    SDLK_LGUI 1073742051
    SDLK_LSHIFT 1073742049
    SDLK_MAIL 1073742089
    SDLK_MEDIASELECT 1073742087
    SDLK_MENU 1073741942
    SDLK_MINUS 45
    SDLK_MODE 1073742081
    SDLK_MUTE 1073741951
    SDLK_NUMLOCKCLEAR 1073741907
    SDLK_OPER 1073741985
    SDLK_OUT 1073741984
    SDLK_PAGEDOWN 1073741902
    SDLK_PAGEUP 1073741899
    SDLK_PASTE 1073741949
    SDLK_PAUSE 1073741896
    SDLK_PERCENT 37
    SDLK_PERIOD 46
    SDLK_PLUS 43
    SDLK_POWER 1073741926
    SDLK_PRINTSCREEN 1073741894
    SDLK_PRIOR 1073741981
    SDLK_QUESTION 63
    SDLK_QUOTE 39
    SDLK_QUOTEDBL 34
    SDLK_RALT 1073742054
    SDLK_RCTRL 1073742052
    SDLK_RETURN 13
    SDLK_RETURN2 1073741982
    SDLK_RGUI 1073742055
    SDLK_RIGHT 1073741903
    SDLK_RIGHTBRACKET 93
    SDLK_RIGHTPAREN 41
    SDLK_RSHIFT 1073742053
    SDLK_SCROLLLOCK 1073741895
    SDLK_SELECT 1073741943
    SDLK_SEMICOLON 59
    SDLK_SEPARATOR 1073741983
    SDLK_SLASH 47
    SDLK_SLEEP 1073742106
    SDLK_SPACE 32
    SDLK_STOP 1073741944
    SDLK_SYSREQ 1073741978
    SDLK_TAB 9
    SDLK_THOUSANDSSEPARATOR 1073742002
    SDLK_UNDERSCORE 95
    SDLK_UNDO 1073741946
    SDLK_UNKNOWN 0
    SDLK_UP 1073741906
    SDLK_VOLUMEDOWN 1073741953
    SDLK_VOLUMEUP 1073741952
    SDLK_WWW 1073742088
    SDLK_a 97
    SDLK_b 98
    SDLK_c 99
    SDLK_d 100
    SDLK_e 101
    SDLK_f 102
    SDLK_g 103
    SDLK_h 104
    SDLK_i 105
    SDLK_j 106
    SDLK_k 107
    SDLK_l 108
    SDLK_m 109
    SDLK_n 110
    SDLK_o 111
    SDLK_p 112
    SDLK_q 113
    SDLK_r 114
    SDLK_s 115
    SDLK_t 116
    SDLK_u 117
    SDLK_v 118
    SDLK_w 119
    SDLK_x 120
    SDLK_y 121
    SDLK_z 122
    SDL_APP_DIDENTERBACKGROUND 260
    SDL_APP_DIDENTERFOREGROUND 262
    SDL_APP_LOWMEMORY 258
    SDL_APP_TERMINATING 257
    SDL_APP_WILLENTERBACKGROUND 259
    SDL_APP_WILLENTERFOREGROUND 261
    SDL_AUDIODEVICEADDED 4352
    SDL_AUDIODEVICEREMOVED 4353
    SDL_BUTTON_LEFT 1
    SDL_BUTTON_MIDDLE 2
    SDL_BUTTON_RIGHT 3
    SDL_BUTTON_X1 4
    SDL_BUTTON_X2 5
    SDL_CLIPBOARDUPDATE 2304
    SDL_CONTROLLERAXISMOTION 1616
    SDL_CONTROLLERBUTTONDOWN 1617
    SDL_CONTROLLERBUTTONUP 1618
    SDL_CONTROLLERDEVICEADDED 1619
    SDL_CONTROLLERDEVICEREMAPPED 1621
    SDL_CONTROLLERDEVICEREMOVED 1620
    SDL_DOLLARGESTURE 2048
    SDL_DOLLARRECORD 2049
    SDL_DROPBEGIN 4098
    SDL_DROPCOMPLETE 4099
    SDL_DROPFILE 4096
    SDL_DROPTEXT 4097
    SDL_FINGERDOWN 1792
    SDL_FINGERMOTION 1794
    SDL_FINGERUP 1793
    SDL_JOYAXISMOTION 1536
    SDL_JOYBALLMOTION 1537
    SDL_JOYBUTTONDOWN 1539
    SDL_JOYBUTTONUP 1540
    SDL_JOYDEVICEADDED 1541
    SDL_JOYDEVICEREMOVED 1542
    SDL_JOYHATMOTION 1538
    SDL_KEYDOWN 768
    SDL_KEYMAPCHANGED 772
    SDL_KEYUP 769
    SDL_LASTEVENT 65535
    SDL_MOUSEBUTTONDOWN 1025
    SDL_MOUSEBUTTONUP 1026
    SDL_MOUSEMOTION 1024
    SDL_MOUSEWHEEL 1027
    SDL_MULTIGESTURE 2050
    SDL_PRESSED 1
    SDL_QUIT 256
    SDL_RELEASED 0
    SDL_RENDER_DEVICE_RESET 8193
    SDL_RENDER_TARGETS_RESET 8192
    SDL_SCANCODE_0 39
    SDL_SCANCODE_1 30
    SDL_SCANCODE_2 31
    SDL_SCANCODE_3 32
    SDL_SCANCODE_4 33
    SDL_SCANCODE_5 34
    SDL_SCANCODE_6 35
    SDL_SCANCODE_7 36
    SDL_SCANCODE_8 37
    SDL_SCANCODE_9 38
    SDL_SCANCODE_A 4
    SDL_SCANCODE_AC_BACK 270
    SDL_SCANCODE_AC_BOOKMARKS 274
    SDL_SCANCODE_AC_FORWARD 271
    SDL_SCANCODE_AC_HOME 269
    SDL_SCANCODE_AC_REFRESH 273
    SDL_SCANCODE_AC_SEARCH 268
    SDL_SCANCODE_AC_STOP 272
    SDL_SCANCODE_AGAIN 121
    SDL_SCANCODE_ALTERASE 153
    SDL_SCANCODE_APOSTROPHE 52
    SDL_SCANCODE_APP1 283
    SDL_SCANCODE_APP2 284
    SDL_SCANCODE_APPLICATION 101
    SDL_SCANCODE_AUDIOMUTE 262
    SDL_SCANCODE_AUDIONEXT 258
    SDL_SCANCODE_AUDIOPLAY 261
    SDL_SCANCODE_AUDIOPREV 259
    SDL_SCANCODE_AUDIOSTOP 260
    SDL_SCANCODE_B 5
    SDL_SCANCODE_BACKSLASH 49
    SDL_SCANCODE_BACKSPACE 42
    SDL_SCANCODE_BRIGHTNESSDOWN 275
    SDL_SCANCODE_BRIGHTNESSUP 276
    SDL_SCANCODE_C 6
    SDL_SCANCODE_CALCULATOR 266
    SDL_SCANCODE_CANCEL 155
    SDL_SCANCODE_CAPSLOCK 57
    SDL_SCANCODE_CLEAR 156
    SDL_SCANCODE_CLEARAGAIN 162
    SDL_SCANCODE_COMMA 54
    SDL_SCANCODE_COMPUTER 267
    SDL_SCANCODE_COPY 124
    SDL_SCANCODE_CRSEL 163
    SDL_SCANCODE_CURRENCYSUBUNIT 181
    SDL_SCANCODE_CURRENCYUNIT 180
    SDL_SCANCODE_CUT 123
    SDL_SCANCODE_D 7
    SDL_SCANCODE_DECIMALSEPARATOR 179
    SDL_SCANCODE_DELETE 76
    SDL_SCANCODE_DISPLAYSWITCH 277
    SDL_SCANCODE_DOWN 81
    SDL_SCANCODE_E 8
    SDL_SCANCODE_EJECT 281
    SDL_SCANCODE_END 77
    SDL_SCANCODE_EQUALS 46
    SDL_SCANCODE_ESCAPE 41
    SDL_SCANCODE_EXECUTE 116
    SDL_SCANCODE_EXSEL 164
    SDL_SCANCODE_F 9
    SDL_SCANCODE_F1 58
    SDL_SCANCODE_F10 67
    SDL_SCANCODE_F11 68
    SDL_SCANCODE_F12 69
    SDL_SCANCODE_F13 104
    SDL_SCANCODE_F14 105
    SDL_SCANCODE_F15 106
    SDL_SCANCODE_F16 107
    SDL_SCANCODE_F17 108
    SDL_SCANCODE_F18 109
    SDL_SCANCODE_F19 110
    SDL_SCANCODE_F2 59
    SDL_SCANCODE_F20 111
    SDL_SCANCODE_F21 112
    SDL_SCANCODE_F22 113
    SDL_SCANCODE_F23 114
    SDL_SCANCODE_F24 115
    SDL_SCANCODE_F3 60
    SDL_SCANCODE_F4 61
    SDL_SCANCODE_F5 62
    SDL_SCANCODE_F6 63
    SDL_SCANCODE_F7 64
    SDL_SCANCODE_F8 65
    SDL_SCANCODE_F9 66
    SDL_SCANCODE_FIND 126
    SDL_SCANCODE_G 10
    SDL_SCANCODE_GRAVE 53
    SDL_SCANCODE_H 11
    SDL_SCANCODE_HELP 117
    SDL_SCANCODE_HOME 74
    SDL_SCANCODE_I 12
    SDL_SCANCODE_INSERT 73
    SDL_SCANCODE_INTERNATIONAL2 136
    SDL_SCANCODE_INTERNATIONAL3 137
    SDL_SCANCODE_INTERNATIONAL4 138
    SDL_SCANCODE_INTERNATIONAL5 139
    SDL_SCANCODE_INTERNATIONAL6 140
    SDL_SCANCODE_INTERNATIONAL7 141
    SDL_SCANCODE_INTERNATIONAL8 142
    SDL_SCANCODE_INTERNATIONAL9 143
    SDL_SCANCODE_J 13
    SDL_SCANCODE_K 14
    SDL_SCANCODE_KBDILLUMDOWN 279
    SDL_SCANCODE_KBDILLUMTOGGLE 278
    SDL_SCANCODE_KBDILLUMUP 280
    SDL_SCANCODE_KP_0 98
    SDL_SCANCODE_KP_00 176
    SDL_SCANCODE_KP_000 177
    SDL_SCANCODE_KP_1 89
    SDL_SCANCODE_KP_2 90
    SDL_SCANCODE_KP_3 91
    SDL_SCANCODE_KP_4 92
    SDL_SCANCODE_KP_5 93
    SDL_SCANCODE_KP_6 94
    SDL_SCANCODE_KP_7 95
    SDL_SCANCODE_KP_8 96
    SDL_SCANCODE_KP_9 97
    SDL_SCANCODE_KP_A 188
    SDL_SCANCODE_KP_AMPERSAND 199
    SDL_SCANCODE_KP_AT 206
    SDL_SCANCODE_KP_B 189
    SDL_SCANCODE_KP_BACKSPACE 187
    SDL_SCANCODE_KP_BINARY 218
    SDL_SCANCODE_KP_C 190
    SDL_SCANCODE_KP_CLEAR 216
    SDL_SCANCODE_KP_CLEARENTRY 217
    SDL_SCANCODE_KP_COLON 203
    SDL_SCANCODE_KP_D 191
    SDL_SCANCODE_KP_DBLAMPERSAND 200
    SDL_SCANCODE_KP_DBLVERTICALBAR 202
    SDL_SCANCODE_KP_DECIMAL 220
    SDL_SCANCODE_KP_DIVIDE 84
    SDL_SCANCODE_KP_E 192
    SDL_SCANCODE_KP_ENTER 88
    SDL_SCANCODE_KP_EQUALS 103
    SDL_SCANCODE_KP_EXCLAM 207
    SDL_SCANCODE_KP_F 193
    SDL_SCANCODE_KP_GREATER 198
    SDL_SCANCODE_KP_HASH 204
    SDL_SCANCODE_KP_HEXADECIMAL 221
    SDL_SCANCODE_KP_LEFTBRACE 184
    SDL_SCANCODE_KP_LEFTPAREN 182
    SDL_SCANCODE_KP_LESS 197
    SDL_SCANCODE_KP_MEMADD 211
    SDL_SCANCODE_KP_MEMCLEAR 210
    SDL_SCANCODE_KP_MEMDIVIDE 214
    SDL_SCANCODE_KP_MEMMULTIPLY 213
    SDL_SCANCODE_KP_MEMRECALL 209
    SDL_SCANCODE_KP_MEMSTORE 208
    SDL_SCANCODE_KP_MEMSUBTRACT 212
    SDL_SCANCODE_KP_MINUS 86
    SDL_SCANCODE_KP_MULTIPLY 85
    SDL_SCANCODE_KP_OCTAL 219
    SDL_SCANCODE_KP_PERCENT 196
    SDL_SCANCODE_KP_PERIOD 99
    SDL_SCANCODE_KP_PLUS 87
    SDL_SCANCODE_KP_PLUSMINUS 215
    SDL_SCANCODE_KP_POWER 195
    SDL_SCANCODE_KP_RIGHTBRACE 185
    SDL_SCANCODE_KP_RIGHTPAREN 183
    SDL_SCANCODE_KP_SPACE 205
    SDL_SCANCODE_KP_TAB 186
    SDL_SCANCODE_KP_VERTICALBAR 201
    SDL_SCANCODE_KP_XOR 194
    SDL_SCANCODE_L 15
    SDL_SCANCODE_LALT 226
    SDL_SCANCODE_LANG1 144
    SDL_SCANCODE_LANG2 145
    SDL_SCANCODE_LANG3 146
    SDL_SCANCODE_LANG4 147
    SDL_SCANCODE_LANG5 148
    SDL_SCANCODE_LANG6 149
    SDL_SCANCODE_LANG7 150
    SDL_SCANCODE_LANG8 151
    SDL_SCANCODE_LANG9 152
    SDL_SCANCODE_LCTRL 224
    SDL_SCANCODE_LEFT 80
    SDL_SCANCODE_LEFTBRACKET 47
    SDL_SCANCODE_LGUI 227
    SDL_SCANCODE_LSHIFT 225
    SDL_SCANCODE_M 16
    SDL_SCANCODE_MAIL 265
    SDL_SCANCODE_MEDIASELECT 263
    SDL_SCANCODE_MENU 118
    SDL_SCANCODE_MINUS 45
    SDL_SCANCODE_MODE 257
    SDL_SCANCODE_MUTE 127
    SDL_SCANCODE_N 17
    SDL_SCANCODE_NONUSBACKSLASH 100
    SDL_SCANCODE_NONUSHASH 50
    SDL_SCANCODE_NUMLOCKCLEAR 83
    SDL_SCANCODE_O 18
    SDL_SCANCODE_OPER 161
    SDL_SCANCODE_OUT 160
    SDL_SCANCODE_P 19
    SDL_SCANCODE_PAGEDOWN 78
    SDL_SCANCODE_PAGEUP 75
    SDL_SCANCODE_PASTE 125
    SDL_SCANCODE_PAUSE 72
    SDL_SCANCODE_PERIOD 55
    SDL_SCANCODE_POWER 102
    SDL_SCANCODE_PRINTSCREEN 70
    SDL_SCANCODE_PRIOR 157
    SDL_SCANCODE_Q 20
    SDL_SCANCODE_R 21
    SDL_SCANCODE_RALT 230
    SDL_SCANCODE_RCTRL 228
    SDL_SCANCODE_RETURN 40
    SDL_SCANCODE_RETURN2 158
    SDL_SCANCODE_RGUI 231
    SDL_SCANCODE_RIGHT 79
    SDL_SCANCODE_RIGHTBRACKET 48
    SDL_SCANCODE_RSHIFT 229
    SDL_SCANCODE_S 22
    SDL_SCANCODE_SCROLLLOCK 71
    SDL_SCANCODE_SELECT 119
    SDL_SCANCODE_SEMICOLON 51
    SDL_SCANCODE_SEPARATOR 159
    SDL_SCANCODE_SLASH 56
    SDL_SCANCODE_SLEEP 282
    SDL_SCANCODE_SPACE 44
    SDL_SCANCODE_STOP 120
    SDL_SCANCODE_SYSREQ 154
    SDL_SCANCODE_T 23
    SDL_SCANCODE_TAB 43
    SDL_SCANCODE_THOUSANDSSEPARATOR 178
    SDL_SCANCODE_U 24
    SDL_SCANCODE_UNDO 122
    SDL_SCANCODE_UP 82
    SDL_SCANCODE_V 25
    SDL_SCANCODE_VOLUMEDOWN 129
    SDL_SCANCODE_VOLUMEUP 128
    SDL_SCANCODE_W 26
    SDL_SCANCODE_WWW 264
    SDL_SCANCODE_X 27
    SDL_SCANCODE_Y 28
    SDL_SCANCODE_Z 29
    SDL_SYSWMEVENT 513
    SDL_TEXTEDITING 770
    SDL_TEXTINPUT 771
    SDL_USEREVENT 32768
    SDL_WINDOWEVENT 512
    SS_UI_SHOW_ALWAYS 0
    SS_UI_SHOW_NEVER 2
    SS_UI_SHOW_SELECTED 1
    TILES_PER_CHUNK_HEIGHT 32
    TILES_PER_CHUNK_WIDTH 32
    TILETYPE_CORNER_CONCAVE_NE 11
    TILETYPE_CORNER_CONCAVE_NW 9
    TILETYPE_CORNER_CONCAVE_SE 7
    TILETYPE_CORNER_CONCAVE_SW 5
    TILETYPE_CORNER_CONVEX_NE 12
    TILETYPE_CORNER_CONVEX_NW 10
    TILETYPE_CORNER_CONVEX_SE 8
    TILETYPE_CORNER_CONVEX_SW 6
    TILETYPE_FLAT 0
    TILETYPE_RAMP_EW 3
    TILETYPE_RAMP_NS 2
    TILETYPE_RAMP_SN 1
    TILETYPE_RAMP_WE 4
    TRANSPORT_STRATEGY_EXCESS 1
    TRANSPORT_STRATEGY_GATHERING 2
    TRANSPORT_STRATEGY_NEAREST 0
    X_COORDS_PER_TILE 8
    Y_COORDS_PER_TILE 4
    Z_COORDS_PER_TILE 8
    _CURSOR_MAX 16
    trace_pickling False
