Scripts/Runtime/Data/Entities/EntityRegistryComponents/DynamicEntityKeywordRegistry.cs (43 lines of code) (raw):
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
using Facebook.WitAi.Interfaces;
using UnityEngine;
namespace Facebook.WitAi.Data.Entities
{
/// <summary>
/// Singleton registry for tracking any objects owned defined in entities in
/// a scene
/// </summary>
public class DynamicEntityKeywordRegistry : MonoBehaviour, IDynamicEntitiesProvider
{
private static DynamicEntityKeywordRegistry instance;
private WitDynamicEntities entities = new WitDynamicEntities();
public static bool HasDynamicEntityRegistry => Instance;
/// <summary>
/// Gets the instance in the scene if there is one
/// </summary>
public static DynamicEntityKeywordRegistry Instance
{
get
{
if (!instance)
{
instance = FindObjectOfType<DynamicEntityKeywordRegistry>();
}
return instance;
}
}
private void OnEnable()
{
instance = this;
}
private void OnDisable()
{
instance = null;
}
public void RegisterDynamicEntity(string entity, WitEntityKeyword keyword)
{
entities.AddKeyword(entity, keyword);
}
public void UnregisterDynamicEntity(string entity, WitEntityKeyword keyword)
{
entities.RemoveKeyword(entity, keyword);
}
public WitDynamicEntities GetDynamicEntities()
{
return entities;
}
}
}