package std /** * Copyright 2008 Matthew Corby-Eaglen * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ import std.game.objects.exits.ExitImpl import org.groovymud.object.MudObject import org.groovymud.engine.event.EventScope import org.groovymud.shell.security.PlayerCredentials import javax.security.auth.Subject import org.groovymud.object.views.ViewImpl import grails.spring.BeanBuilder import std.game.objects.containers.RoomImpl import std.game.objects.alive.MOBImpl import std.game.objects.alive.PlayerImpl import org.groovymud.object.ObjectLocation import std.game.objects.MudObjectImpl import std.game.objects.containers.ContainerImpl import org.groovymud.object.registry.InventoryHandler import org.groovymud.object.views.ContainerView import org.groovymud.object.registry.MudObjectAttendant import org.springframework.scripting.support.ScriptFactoryPostProcessor import std.game.objects.views.ExitView import std.game.objects.views.RoomView import std.game.objects.views.MOBView import utils.ClosureDelegate import groovy.util.ResourceException beans{ mobView(MOBView) inventory(InventoryHandler){bean -> bean.scope = "prototype" registry = ref("registry", true) } exitView(ExitView); viewImpl(ViewImpl) roomView(RoomView) containerView(ContainerView) baseMudObject(MudObjectImpl){ bean-> bean.'abstract' = true bean.lazyInit = true bean.initMethod = 'initialise' registry = ref("registry", true) interpreter = ref("interpreter", true) bean.scope = 'prototype' view = viewImpl } baseContainer(ContainerImpl){bean-> bean.'abstract' = true bean.parent = baseMudObject bean.scope = 'prototype' bean.lazyInit = true inventoryHandler = inventory view = containerView scope = EventScope.CONTAINER_SCOPE } baseExit(ExitImpl){bean-> bean.parent = baseMudObject bean.scope = 'prototype' bean.lazyInit = true bean.'abstract' = true view = exitView commandInterpreter = ref("interpreter", true) articleRequired = false } baseRoom(RoomImpl){ bean -> bean.parent = baseContainer bean.'abstract' = true bean.lazyInit = true bean.scope = 'prototype' exitInventory = inventory scope = EventScope.ROOM_SCOPE view = roomView } baseMob(MOBImpl){ bean -> bean.parent = baseContainer bean.'abstract' = true bean.scope = 'prototype' bean.lazyInit = true articleRequired = true view = mobView scope = EventScope.PLAYER_SCOPE } playerSubject(Subject); "playerImpl"(PlayerImpl){ bean -> bean.parent = baseMob bean.scope = 'prototype' bean.lazyInit = true subject = playerSubject containerLocation = {ObjectLocation l -> definition = "domains/minnovar/town/TownArea.groovy" beanId = "domains:minnovar:TownArea:townCentre" } description = '${it.getName()} looks pretty cool.' articleRequired = false } "theVoid"(RoomImpl, id:"stdVoid", name:"void", shortNames:["void"]){ bean -> bean.parent = baseRoom bean.lazyInit = true description = 'You are standing in the void. This is where everything goes that doesn\'t have a room to speak of.' } "armageddon"(MOBImpl, id:"stdArmageddon", name:"Armageddon", shortNames:["armageddon"]){bean-> bean.parent = baseMob bean.lazyInit = true articleRequired = false description = 'Armegeddon, bringer of shutdowns' } }