Esempio n. 1
0
def setup_data():
    """Setup data."""
    _sp_logger.log_debug('Setting up data...')

    from core import GameConfigObj
    from memory.manager import manager
    from paths import SP_DATA_PATH

    import players
    players.BaseClient = manager.create_type_from_dict(
        'BaseClient',
        GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))

    import listeners
    listeners.BaseEntityOutput = manager.create_type_from_dict(
        'BaseEntityOutput',
        GameConfigObj(SP_DATA_PATH / 'entity_output' /
                      'CBaseEntityOutput.ini'))

    try:
        _fire_output = listeners.BaseEntityOutput.fire_output
    except AttributeError:
        from warnings import warn
        warn('BaseEntityOutput.fire_output not found. '
             'OnEntityOutput listener will not fire.')
    else:
        _fire_output.add_pre_hook(listeners._pre_fire_output)
Esempio n. 2
0
def setup_data():
    """Setup data."""
    _sp_logger.log_debug('Setting up data...')

    from core import GameConfigObj
    from memory.manager import manager
    from paths import SP_DATA_PATH

    import players
    players.BaseClient = manager.create_type_from_dict(
        'BaseClient',
        GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))

    import entities
    entities._BaseEntityOutput = manager.create_type_from_dict(
        'BaseEntityOutput',
        GameConfigObj(SP_DATA_PATH / 'entity_output' /
                      'CBaseEntityOutput.ini'))

    from _entities import BaseEntityOutput
    try:
        _fire_output = entities._BaseEntityOutput.fire_output

        BaseEntityOutput.fire_output = _fire_output
    except ValueError:
        from warnings import warn
        warn('Did not find address for BaseEntityOutput.fire_output. '
             'OnEntityOutput listener will not fire.')
        BaseEntityOutput.fire_output = NotImplemented
    except AttributeError:
        from warnings import warn
        warn('BaseEntityOutput.fire_output not found. '
             'OnEntityOutput listener will not fire.')
        BaseEntityOutput.fire_output = NotImplemented
Esempio n. 3
0
def setup_data():
    """Setup data."""
    _sp_logger.log_debug('Setting up data...')

    from core import GameConfigObj
    from memory.manager import manager
    from paths import SP_DATA_PATH

    import players
    players.BaseClient = manager.create_type_from_dict(
        'BaseClient',
        GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))

    from core.cache import CachedProperty
    from memory import get_function_info
    from memory.helpers import MemberFunction
    CachedProperty(
        lambda self, info: MemberFunction(
            manager,
            info.return_type,
            self.make_virtual_function(info),
            self
        ),
        doc="""Fires the given game event to this client.

        :param GameEvent game_event:
            The game event instance to fire.
        """,
        args=(get_function_info('IGameEventListener2', 'FireGameEvent'),)
    ).bind(players.BaseClient, 'fire_game_event')

    import entities
    entities._BaseEntityOutput = manager.create_type_from_dict(
        'BaseEntityOutput',
        GameConfigObj(SP_DATA_PATH / 'entity_output' / 'CBaseEntityOutput.ini'))

    from _entities import BaseEntityOutput
    try:
        _fire_output = entities._BaseEntityOutput.fire_output

        BaseEntityOutput.fire_output = _fire_output
    except ValueError:
        from warnings import warn
        warn(
            'Did not find address for BaseEntityOutput.fire_output. '
            'OnEntityOutput listener will not fire.'
        )
        BaseEntityOutput.fire_output = NotImplemented
    except AttributeError:
        from warnings import warn
        warn(
            'BaseEntityOutput.fire_output not found. '
            'OnEntityOutput listener will not fire.'
        )
        BaseEntityOutput.fire_output = NotImplemented
def setup_data():
    """Setup data."""
    _sp_logger.log_debug('Setting up data...')

    from core import GameConfigObj
    from memory.manager import manager
    from paths import SP_DATA_PATH

    import players
    players.BaseClient = manager.create_type_from_dict(
        'BaseClient',
        GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))

    import entities
    entities._BaseEntityOutput = manager.create_type_from_dict(
        'BaseEntityOutput',
        GameConfigObj(SP_DATA_PATH / 'entity_output' / 'CBaseEntityOutput.ini'))

    try:
        _fire_output = entities._BaseEntityOutput.fire_output

        from _entities import BaseEntityOutput
        BaseEntityOutput.fire_output = _fire_output
    except ValueError:
        from warnings import warn
        warn(
            'Did not find address for BaseEntityOutput.fire_output. '
            'OnEntityOutput listener will not fire.'
        )
    except AttributeError:
        from warnings import warn
        warn(
            'BaseEntityOutput.fire_output not found. '
            'OnEntityOutput listener will not fire.'
        )
    else:
        import listeners
        _fire_output.add_pre_hook(listeners._pre_fire_output)
#   Memory
import memory

from memory.hooks import PreHook
from memory.manager import manager
from entities.datamaps import Variant
from entities.helpers import find_output_name
#   Listeners
from _listeners import ListenerManager


# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
BaseEntityOutput = manager.create_type_from_dict(
    'BaseEntityOutput', GameConfigObj(
        SP_DATA_PATH / 'entity_output' / 'CBaseEntityOutput.ini'))

_fire_output = getattr(BaseEntityOutput, 'fire_output', None)
on_entity_output_listener_manager = (
    None if _fire_output is None else ListenerManager()
)


# =============================================================================
# >> CALLBACKS
# =============================================================================
if _fire_output is not None:
    @PreHook(BaseEntityOutput.fire_output)
    def _pre_fire_output(args):
        """Called when an output is about to be fired."""
Esempio n. 6
0
from memory.hooks import PreHook
from memory.manager import manager
#   Entity
from entities.entity import BaseEntity
from entities.entity import Entity
from entities.datamaps import Variant
from entities.helpers import find_output_name
#   Listeners
from _listeners import ListenerManager

# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
BaseEntityOutput = manager.create_type_from_dict(
    'BaseEntityOutput',
    GameConfigObj(SP_DATA_PATH / 'entity_output' / 'CBaseEntityOutput.ini'))

on_entity_output_listener_manager = ListenerManager()


# =============================================================================
# >> CALLBACKS
# =============================================================================
@PreHook(BaseEntityOutput.fire_output)
def _pre_fire_output(args):
    """Called when an output is about to be fired."""
    if not on_entity_output_listener_manager:
        return

    # Windows is a bit weird: the function takes 4 additional arguments...
Esempio n. 7
0
from memory.manager import manager


# =============================================================================
# >> ALL DECLARATION
# =============================================================================
__all__ = ('WeaponInfo',
           'weapon_scripts',
           )


# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
# Get the WeaponInfo class...
WeaponInfo = manager.create_type_from_dict('WeaponInfo', GameConfigObj(
    SP_DATA_PATH / 'weapons' / 'scripts' / 'WeaponInfo.ini'))

# Get the _WeaponDatabase class...
try:
    from _weapons._scripts import _WeaponDatabase

    # Make sure the manager is able to find us...
    manager['_WeaponDatabase'] = _WeaponDatabase
except ImportError:
    _WeaponDatabase = manager.create_type_from_dict(
        '_WeaponDatabase', GameConfigObj(
            SP_DATA_PATH / 'weapons' / 'scripts' / 'WeaponDatabase.ini'))

# Get the global _WeaponDatabase pointer...
manager.create_global_pointers_from_file(GameConfigObj(
    SP_DATA_PATH / 'weapons' / 'scripts' / 'global_pointers.ini'))
Esempio n. 8
0
#   Memory
from memory.manager import manager
#   Paths
from paths import SP_DATA_PATH
#   Players
from _players import Client
from _players import PlayerGenerator
from _players import PlayerInfo
from _players import UserCmd


# =============================================================================
# >> ALL DECLARATION
# =============================================================================
__all__ = ('BaseClient',
           'Client',
           'PlayerGenerator',
           'PlayerInfo',
           'UserCmd',
           )


# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
# Get the sp.players logger
players_logger = _sp_logger.players

BaseClient = manager.create_type_from_dict(
    'BaseClient', GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))
Esempio n. 9
0
from core import GameConfigObj
#   Memory
from memory.manager import manager
#   Paths
from paths import SP_DATA_PATH
#   Players
from _players import Client
from _players import PlayerGenerator
from _players import PlayerInfo
from _players import UserCmd

# =============================================================================
# >> ALL DECLARATION
# =============================================================================
__all__ = (
    'BaseClient',
    'Client',
    'PlayerGenerator',
    'PlayerInfo',
    'UserCmd',
)

# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
# Get the sp.players logger
players_logger = _sp_logger.players

BaseClient = manager.create_type_from_dict(
    'BaseClient', GameConfigObj(SP_DATA_PATH / 'client' / 'CBaseClient.ini'))
Esempio n. 10
0
from memory.manager import manager


# =============================================================================
# >> ALL DECLARATION
# =============================================================================
__all__ = ('WeaponInfo',
           'weapon_scripts',
           )


# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
# Get the WeaponInfo class...
WeaponInfo = manager.create_type_from_dict('WeaponInfo', GameConfigObj(
    SP_DATA_PATH.joinpath('weapons', 'scripts', 'WeaponInfo.ini')))

# Get the _WeaponDatabase class...
try:
    from _weapons._scripts import _WeaponDatabase

    # Make sure the manager is able to find us...
    manager['_WeaponDatabase'] = _WeaponDatabase
except ImportError:
    _WeaponDatabase = manager.create_type_from_dict(
        '_WeaponDatabase', GameConfigObj(SP_DATA_PATH.joinpath(
            'weapons', 'scripts').joinpath('WeaponDatabase.ini')))

# Get the global _WeaponDatabase pointer...
manager.create_global_pointers_from_file(GameConfigObj(
    SP_DATA_PATH.joinpath('weapons', 'scripts', 'global_pointers.ini')))