Skip to content

Commit

Permalink
Basic engine startup working.
Browse files Browse the repository at this point in the history
  • Loading branch information
genzgd committed Jan 24, 2015
1 parent eb59482 commit eb3a4b5
Show file tree
Hide file tree
Showing 16 changed files with 47 additions and 44 deletions.
4 changes: 4 additions & 0 deletions conf/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ general:
name: 'script_dir'
desc: 'Local file directory for dynamic scripts'
value: 'lampost_scripts'
-
name: 'instance_preserve_hours'
desc: 'Number of hours to keep an instance in memory even if no players are in it'
value: 24
-
name: 'imm_levels'
desc: 'Permission levels for immortals'
Expand Down
2 changes: 1 addition & 1 deletion lampost.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
log.root_logger.info("Started with args {}", args)

from lampost.setup import engine
engine.start(startargs)
engine.start(args)
2 changes: 1 addition & 1 deletion lampost/comm/channel.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from lampost.client.services import ClientService
from lampost.server.services import ClientService
from lampost.gameops.action import make_action
from lampost.context.resource import m_requires
from lampost.context.config import m_configured
Expand Down
10 changes: 4 additions & 6 deletions lampost/context/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

def register(name, service, export_methods=False):
_registry[name] = service
_registered_modules.append(service)
if service not in _registered_modules:
_registered_modules.append(service)
if export_methods:
_methods[name] = {}
if inspect.ismodule(service):
Expand All @@ -31,10 +32,6 @@ def register(name, service, export_methods=False):
return service


def register_module(module):
_registered_modules.append(module)


def inject(cls, name):
service = _registry.get(name, None)
if service:
Expand Down Expand Up @@ -68,7 +65,8 @@ def m_requires(module_name, *resources):
module = sys.modules[module_name]
for name in resources:
inject(module, name)
_registered_modules.append(module)
if module not in _registered_modules:
_registered_modules.append(module)


def get_resource(name):
Expand Down
3 changes: 2 additions & 1 deletion lampost/editor/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from lampost.client.handlers import MethodHandler, SessionHandler
from lampost.context.resource import m_requires
from lampost.datastore.classes import get_dbo_class
from lampost.lpmud.skill import SkillTemplate


m_requires(__name__, 'perm', 'datastore', 'config_manager', 'context')
Expand Down Expand Up @@ -35,6 +36,6 @@ def update(self):

class Properties(SessionHandler):
def main(self):
constants = copy.copy(context.properties)
constants['skill_types'] = [skill_template.dbo_key_type for skill_template in dbo_types(SkillTemplate)]
constants['features'] = [get_dbo_class(feature_id)().edit_dto for feature_id in ['touchstone', 'entrance', 'store']]
self._return(constants)
5 changes: 3 additions & 2 deletions lampost/env/instance.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from lampost.comm.broadcast import BroadcastMap
from lampost.context.config import m_configured
from lampost.context.resource import m_requires, provides, requires
from lampost.datastore.dbofield import DBOField
from lampost.env.movement import Direction
Expand All @@ -10,11 +11,11 @@

m_requires(__name__, 'datastore', 'dispatcher')

m_configured(__name__, 'instance_preserve_hours')

instance_map = {}
instance_preserve_hours = 24


@provides('instance_manager')
class InstanceManager():
def _post_init(self):
register('maintenance', self.remove_old)
Expand Down
2 changes: 1 addition & 1 deletion lampost/gameops/friend.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from lampost.client.user import User
from lampost.server.user import User
from lampost.context.resource import m_requires
from lampost.context.config import m_configured
from lampost.util.lputil import ClientError
Expand Down
2 changes: 1 addition & 1 deletion lampost/lpmud/mobile.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from lampost.lpmud.skill import add_skill
from lampost.model.mobile import MobileTemplate

m_requires(__name__, 'log', 'context', 'datastore', 'dispatcher')
m_requires(__name__, 'log', 'datastore', 'dispatcher')

m_configured(__name__, 'affinities')

Expand Down
3 changes: 1 addition & 2 deletions lampost/server/clientdata.py → lampost/lpmud/server.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from lampost.client.handlers import SessionHandler
from lampost.server.handlers import SessionHandler
from lampost.context.resource import m_requires
from lampost.model.race import PlayerRace

m_requires(__name__, 'log', 'datastore')

Expand Down
9 changes: 6 additions & 3 deletions lampost/lpmud/setup.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from lampost.lpmud.archetype import PlayerRace

from lampost.context import config
from lampost.mud import mudcore
from lampost.context import config, resource
from lampost.lpmud.server import NewCharacterData
from lampost.model.area import Area
from lampost.env.room import Room

Expand All @@ -22,6 +24,7 @@ def first_time_setup(args, datastore, config_values):
return first_player


def start_engine(args):
pass
def start_engine(args, web_server):
resource.register('mud_core', mudcore)
web_server.add(r'/client_data/new_char', NewCharacterData)

6 changes: 1 addition & 5 deletions lampost/lpmud/skill.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@
from lampost.mud.action import mud_action, imm_action


m_requires(__name__, 'log', 'context', 'datastore', 'dispatcher')


def _post_init():
context.set('skill_types', [skill_template.dbo_key_type for skill_template in dbo_types(SkillTemplate)])
m_requires(__name__, 'log', 'datastore', 'dispatcher')


def add_skill(skill_template, target, skill_level, skill_source=None):
Expand Down
13 changes: 7 additions & 6 deletions lampost/mud/mudcore.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@

m_configured(__name__, 'default_start_room')


shout_channel = Channel('shout', general=True)
imm_channel = Channel('imm')
_init_priority = 5000


def _post_init():
global shout_channel, imm_channel
shout_channel = Channel('shout', general=True)
imm_channel = Channel('imm')
register('player_create', _player_create)
register('player_baptise', _baptise, priority=-100)
register('imm_baptise', _imm_baptise, priority=-100)
Expand All @@ -41,15 +42,15 @@ def _baptise(player):
def _imm_baptise(player):
player.can_die = False
player.immortal = True
self.imm_channel.add_sub(player)
imm_channel.add_sub(player)
for cmd in imm_actions:
if player.imm_level >= perm_level(cmd.imm_level):
player.enhance_soul(cmd)
else:
player.diminish_soul(cmd)


def _start_env(self, player):
def _start_env(player):
instance = instance_manager.get(player.instance_id)
instance_room = load_object(player.instance_room_id, Room, silent=True)
player_room = load_object(player.room_id, Room, silent=True)
Expand All @@ -60,7 +61,7 @@ def _start_env(self, player):

if instance_room and not player_room:
# Player has no 'non-instanced' room, so presumably was created in a new instanced tutorial/racial area
instance = self.instance_manager.next_instance()
instance = instance_manager.next_instance()
return instance.get_room(player.instance_room_id)

# If we get here whatever instance data was associated with the player is no longer valid
Expand Down
2 changes: 1 addition & 1 deletion lampost/server/messages.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from lampost.context.resource import m_requires
from lampost.client.handlers import SessionHandler
from lampost.server.handlers import SessionHandler

m_requires(__name__, 'log', 'friend_service', 'message_service', 'user_manager')

Expand Down
9 changes: 3 additions & 6 deletions lampost/server/web.py → lampost/server/router.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from lampost.client.clientdata import NewCharacterData
from lampost.client.handlers import GameConnect, Link, Login, Action, Register, Unregister, RemoteLog
from lampost.client.messages import FriendResponse, MessageDelete
from lampost.client.settings import Settings
from lampost.server.handlers import GameConnect, Link, Login, Action, Register, Unregister, RemoteLog
from lampost.server.messages import FriendResponse, MessageDelete
from lampost.server.settings import Settings
from lampost.context.config import m_configured


Expand All @@ -28,8 +27,6 @@ def init(web_server):
web_server.add(r'/unregister', Unregister)
web_server.add(r'/remote_log', RemoteLog)

web_server.add(r'/client_data/new_char', NewCharacterData)

web_server.add(r'/messages/friend_response', FriendResponse)
web_server.add(r'/messages/delete', MessageDelete)

Expand Down
4 changes: 2 additions & 2 deletions lampost/server/settings.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import random
import string

from lampost.client.handlers import MethodHandler
from lampost.client.user import User
from lampost.server.handlers import MethodHandler
from lampost.server.user import User
from lampost.context.resource import m_requires, requires
from lampost.datastore.exceptions import DataError
from lampost.context.config import m_configured
Expand Down
15 changes: 9 additions & 6 deletions lampost/setup/engine.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

from importlib import import_module
from tornado.ioloop import IOLoop
from tornado.web import RedirectHandler, StaticFileHandler

Expand All @@ -7,15 +7,16 @@
from lampost.context import resource, scripts, config
from lampost.context.resource import context_post_init
from lampost.datastore.redisstore import RedisStore
from lampost.env.instance import InstanceManager
from lampost.gameops import event, dbconfig, permissions
from lampost.gameops.friend import FriendService
from lampost.server.email import EmailSender
from lampost.server.server import WebServer
from lampost.server.services import PlayerListService, EditUpdateService
from lampost.server.services import AnyLoginService, PlayerListService, EditUpdateService
from lampost.server.session import SessionManager
from lampost.server.user import UserManager
from lampost.util.log import LogFactory
from lampost.server import web
from lampost.server import router


def start(args):
Expand All @@ -30,11 +31,14 @@ def start(args):
resource.register('dispatcher', event, True)
resource.register('perm', permissions, True)

web_server = WebServer()

app_setup = import_module('{}.setup'.format(args.app_id))
app_setup.start_engine(args)
app_setup.start_engine(args, web_server)

resource.register('user_manager', UserManager())
resource.register('session_manager', SessionManager())
resource.register('instance_manager', InstanceManager())
resource.register('email_sender', EmailSender())
resource.register('channel_service', ChannelService())
resource.register('friend_service', FriendService())
Expand All @@ -45,8 +49,7 @@ def start(args):

context_post_init()

web_server = WebServer()
web.init(web_server)
router.init(web_server)

web_server.add(r"/", RedirectHandler, url="/webclient/lampost.html")
web_server.add(r"/webclient/(.*)", StaticFileHandler, path="webclient")
Expand Down

0 comments on commit eb3a4b5

Please sign in to comment.