/// <summary> /// Construct a game object and insert it into an object table. /// </summary> /// <param name="ObjectId">The engine object id.</param> /// <param name="ObjectType">The object type code.</param> /// <param name="ObjectManager">The object manager to attach the object /// to.</param> public GameObject(uint ObjectId, GameObjectType ObjectType, GameObjectManager ObjectManager) { this.GameObjectId = ObjectId; this.GameObjectTypeCode = ObjectType; this.ObjectManager = ObjectManager; ObjectManager.AddGameObject(this); }
/// <summary> /// Construct a creature object and insert it into the object table. /// </summary> /// <param name="ObjectId">Supplies the creature object id.</param> /// <param name="ObjectManager">Supplies the object manager.</param> public CreatureObject(uint ObjectId, GameObjectManager ObjectManager) : base(ObjectId, GameObjectType.Creature, ObjectManager) { // // Cache state that doesn't change over the lifetime of the object // so as to avoid a need to call down into the engine for these // fields. // CreatureIsPC = Script.GetIsPC(ObjectId) != CLRScriptBase.FALSE ? true : false; CreatureIsDM = Script.GetIsDM(ObjectId) != CLRScriptBase.FALSE ? true : false; PerceivedObjects = new List<PerceptionNode>(); }
/// <summary> /// Construct an area object and insert it into the object table. /// </summary> /// <param name="ObjectId">Supplies the area object id.</param> /// <param name="ObjectManager">Supplies the object manager.</param> public AreaObject(uint ObjectId, GameObjectManager ObjectManager) : base(ObjectId, GameObjectType.Area, ObjectManager) { // // Cache state that doesn't change over the lifetime of the object // so as to avoid a need to call down into the engine for these // fields. // AreaInterior = Script.GetIsAreaInterior(ObjectId) != CLRScriptBase.FALSE ? true : false; AreaNatural = Script.GetIsAreaNatural(ObjectId) != CLRScriptBase.FALSE ? true : false; AreaUnderground = Script.GetIsAreaAboveGround(ObjectId) != CLRScriptBase.FALSE ? false : true; }
/// <summary> /// Construct a module object and insert it into the object table. /// </summary> /// <param name="ObjectId">Supplies the object id.</param> /// <param name="ObjectManager">Supplies the object manager.</param> public ModuleObject(uint ObjectId, GameObjectManager ObjectManager) : base(ObjectId, GameObjectType.Module, ObjectManager) { // // Discover pre-created areas in the module. Instanced areas will // be discovered when they are created. // foreach (uint AreaObjectId in Script.GetAreas()) { AreaObject Area = new AreaObject(AreaObjectId, ObjectManager); } }
/// <summary> /// Initialize the server subsystem, from a context where it is safe to /// make calls to engine APIs. /// </summary> public static void Initialize() { ObjectManager = new GameObjectManager(); PartyManager = new AIPartyManager(); }
/// <summary> /// Construct a door object and insert it into the object table. /// </summary> /// <param name="ObjectId">Supplies the creature object id.</param> /// <param name="ObjectManager">Supplies the object manager.</param> public DoorObject(uint ObjectId, GameObjectManager ObjectManager) : base(ObjectId, GameObjectType.Door, ObjectManager) { }
/// <summary> /// Construct a trigger object and insert it into the object table. /// </summary> /// <param name="ObjectId">Supplies the creature object id.</param> /// <param name="ObjectManager">Supplies the object manager.</param> public TriggerObject(uint ObjectId, GameObjectManager ObjectManager) : base(ObjectId, GameObjectType.Trigger, ObjectManager) { }