public static ValidateEntity CreateInstance(LexiconEntity entity)
        {
            ValidateEntity instance = CreateInstance <ValidateEntity>();

            instance.entity = entity;
            return(instance);
        }
        public void SaveEntity(LexiconEntity entity)
        {
            //Debug.Log("SaveEntity");

            if (assemblyReload)
            {
                //Debug.Log("Trying to save entity on assembly reload, this is not safe!");
                entityToSave = entity;
            }
            else
            {
                SyncQueue assetsQueue = ScriptableObject.CreateInstance <SyncQueue>();

                assetsQueue.Enqueue(ValidateEntity.CreateInstance(entity));

                List <LexiconIntent> intents = GetAllIntents();

                foreach (LexiconIntent intent in intents)
                {
                    if (intent.UsesEntity(entity))
                    {
                        //Debug.Log("  Generate strings for " + intent.intentName);
                        assetsQueue.Enqueue(GenerateIntentStrings.CreateInstance(intent));
                    }
                }

                assetsQueue.Process();

                generateAssetsQueues.Add(assetsQueue);
            }
        }