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 )