public ClientDestructibleObjectListener(Contexts contexts) : base(contexts, ETriggerObjectType.DestructibleObject, MapObjectMatcher.AllOf(MapObjectMatcher.EntityKey, MapObjectMatcher.TriggerObjectId, MapObjectMatcher.DestructibleObjectFlag, MapObjectMatcher.DestructibleData, MapObjectMatcher.RawGameObject), MapObjectMatcher.AllOf(MapObjectMatcher.EntityKey, MapObjectMatcher.TriggerObjectId, MapObjectMatcher.DestructibleObjectFlag, MapObjectMatcher.DestructibleData) .NoneOf(MapObjectMatcher.RawGameObject)) { _detachCallback = new ClientFracturedChunkDetachCallback(); }
protected ClientAbstractTriggerObjectListener(Contexts contexts, ETriggerObjectType triggerType, IMatcher <MapObjectEntity> activeMapMatcher, IMatcher <MapObjectEntity> deactiveMapMatcher) { _triggerType = triggerType; _contexts = contexts; _triggerObjectManager = SingletonManager.Get <TriggerObjectManager>(); _triggerObjectManager.RegisterListener(triggerType, this); _objectManager = _triggerObjectManager.GetManager(triggerType); var mapContext = contexts.mapObject; _activeMapObjects = mapContext.GetGroup(activeMapMatcher); _deactiveMapObjects = mapContext.GetGroup(deactiveMapMatcher); MapObjectEntityFactory = contexts.session.entityFactoryObject.MapObjectEntityFactory; _detachCallback = new ClientFracturedChunkDetachCallback(); }