Games-Axmud
view release on metacpan or search on metacpan
lib/Games/Axmud/Client.pm view on Meta::CPAN
# If the cage is associated with the current world profile, those commands are
# considered to be available to all characters. However, if the cage is associated
# with (for example) a guild profile, those commands are considered to be available
# only to members of that guild
# Parts of Axmud code - most usually, tasks and Axbasic scripts - can choose to have
# their commands modified, or 'interpolated', before being sent to the world. For
# example, if a task wants to send the command 'kill', it looks through the command
# cages for each current profile - starting with the highest-priority profile - and
# uses the first 'kill' command it finds
# Besides the command cage, there are standard cage which store each kind of interface
# (triggers, aliases, macros, timers and hooks). It's also possible for the user to
# design their own cages
#
# Constant registry list of cage types (these values never change)
constCageTypeList => [
'cmd',
'trigger',
'alias',
'macro',
'timer',
'hook',
'route',
],
# Customisable registry list of cage types (max 8 chars)
cageTypeList => [], # Set below
# Dictionaries
# ------------
# Axmud Dictionaries contain lists of words so that Axmud can tell apart directions,
# NPCs, weapons, torches, and so on
# If the dictionary object has the same name as a world, it's automatically associated
# with that world. (Dictionaries don't have to be associated with a particular world,
# but they often are)
# Dictionaries are associated with a particular language. The default language is
# English
#
# Registry hash of dictionary objects that have been loaded since the script started,
# in the form
# $dictHash{unique_dictionary_name} = blessed_reference_to_dictionary_object
dictHash => {}, # [dicts]
# As well as dictionaries, Axmud uses a much smaller collection of data, a phrasebook
# object, containing a list of primary directions, articles, conjunctions and basic
# number words in a target language. The data is stored in a GA::Obj::Phrasebook
# object
# Registry hash in the form
# $constPhrasebookHash{'name'} = blessed_reference_to_phrasebook_object
# ...where 'name' is the the language name, rendered in lower-case English
# (e.g. 'french')
constPhrasebookHash => {},
# Interfaces
# ----------
# Interfaces are triggers, aliases, macros, timers and hooks
# Interface model objects store default values for each of these interfaces
# Registry hash of interface model objects, in the form
# $interfaceModelHash{interface_type} = blessed_reference_to_interface_model_object
interfaceModelHash => {},
# A 'clipboard' into which interfaces can be exported, and from which they can be
# imported. This allows the user to easily copy interfaces from (for example) one
# world to another, when sessions are open for both
# A list of GA::Interface::Trigger, GA::Interface::Alias, GA::Interface::Macro,
# GA::Interface::Timer and/or GA::Interface::Hook objects currently stored in the
# 'clipboard'
interfaceClipboardList => [],
# Macros use keycodes - ways of naming keys on the keyboard (F1, Escape, grave etc)
# Axmud uses a standard set of keycodes that don't vary from system to system. For
# example, on Linux the ALT-GR key produces the keycode 'ISO_Level3_Shift', but on
# MS Windows, it produces the keycode 'Alt_R'. Axmud's standard keycode is 'alt_gr'
# Note that there are no Axmud standard keycodes for ordinary letters/numbers; Axmud
# assumes that these are needed for typing, so they're not available to macros
#
# Constant registry hash of Axmud standard keycode values, and their Linux equivalents.
# Hash in the form
# $constKeycodeHash{standard_value} = linux_value_string
# ...where 'standard_value' is a value used by Axmud to uniquely identify a key or
# key combination, and 'linux_value_string' is the corresponding keycode returned by
# Linux (when there is more than one corresponding keycode, they are in a single
# string, separated by a space)
constKeycodeHash => {
shift => 'Shift_L Shift_R',
alt => 'Alt_L',
alt_gr => 'ISO_Level3_Shift',
ctrl => 'Control_L Control_R',
num_lock => 'Num_Lock',
escape => 'Escape',
pause => 'Pause',
break => 'Break',
insert => 'Insert KP_Insert',
delete => 'Delete KP_Delete',
return => 'Return',
backspace => 'BackSpace',
space => 'space',
tab => 'Tab',
home => 'Home KP_Home',
page_up => 'Page_Up KP_Page_Up',
page_down => 'Page_Down KP_Page_Down',
end => 'End KP_End',
up => 'Up KP_Up',
down => 'Down KP_Down',
left => 'Left KP_Left',
right => 'Right KP_Right',
f1 => 'F1',
f2 => 'F2',
f3 => 'F3',
f4 => 'F4',
f5 => 'F5',
f6 => 'F6',
f7 => 'F7',
f8 => 'F8',
f9 => 'F9',
f10 => 'F10',
f11 => 'F11',
f12 => 'F12',
grave => 'grave', # `
tilde => 'asciitilde', # ~
exclam => 'exclam', # !
at => 'at', # @
( run in 0.901 second using v1.01-cache-2.11-cpan-84e82930d8c )