Exemplo n.º 1
0
    public string GetLocalizedStringForKey(TranslationKey stringKey)
    {
        Localization currentLocalization = _localizations.FirstOrDefault(l => l.Language == Application.systemLanguage);

        return((currentLocalization == default(Localization) ? _localizations.First(l => l.Language == SystemLanguage.English)
                                                                                                                         : currentLocalization).Translations.First(t => t.StringKey == stringKey).TranslatedString);
    }
Exemplo n.º 2
0
        public static string GetString(TranslationKey key, CultureInfo culture = null)
        {
            if (culture == null)
            {
                culture = Culture;
            }

            var found = TranslationItems.TryGetValue(key, out var translations);

            if (!found)
            {
                return($"[{culture}]{key}");
            }

            found = translations.TryGetValue(culture.ToString(), out var translation);
            if (!found)
            {
                return($"[{culture}]{key}");
            }

            if (string.IsNullOrEmpty(translation) && translation != "|")
            {
                return($"[{culture}]{key}");
            }
            return(translation);
        }
 public override void UpdateSource(IEnumerable <LocalizedContent> localizedContent)
 {
     foreach (LocalizedContent lk in localizedContent)
     {
         TranslationKey      key           = lk.LocalizationKey as TranslationKey;
         TranslationGroupKey groupKey      = TranslationGroupKey.CreateManager(2).Load(key.Translation, lk.Group, lk.Key);
         TranslationValue    existingValue = TranslationValue.CreateManager().Load(lk.LocalizationKey as TranslationKey, groupKey);
         if (existingValue != null)
         {
             if (lk.Value == null)
             {
                 existingValue.Delete();
             }
             else if (!existingValue.Value.Equals(lk.Value))
             {
                 existingValue.Value = lk.Value;
                 existingValue.Update();
             }
         }
         else if (lk.Value != null)
         {
             TranslationValue newValue = new TranslationValue(-1, key, groupKey, lk.Value, DateTime.Now, DateTime.Now);
             newValue.Insert();
         }
     }
 }
Exemplo n.º 4
0
        public ILocalization GetLocalization()
        {
            try
            {
                ILocalization localization = this.HttpContext.Items[MobiLocalizationItemKey] as ILocalization;
                if (localization != null)
                {
                    return(localization);
                }

                //Language language = this.Session.GetUserSessionLanguage();
                Language language = this.Service.ServiceData.FallbackLanguage;
                KeyValuePair <MobiChat.Data.Localization, ILocalizationProvider> translationMapKeyEntry = (from tmk in this.Runtime.LocalizationProviders
                                                                                                           where tmk.Key.Application.ID == this.Runtime.ApplicationData.ID &&
                                                                                                           (tmk.Key.Product == null || tmk.Key.Product.ID == this.Service.ServiceData.Product.ID)
                                                                                                           select tmk).FirstOrDefault();

                TranslationKey translationKey = new TranslationKey(translationMapKeyEntry.Key, language, this.Service.ServiceData);
                localization = translationMapKeyEntry.Value.GetLocalization(translationKey);
                localization = this.ConfigureTranslationWildcards(localization);
                this.HttpContext.Items[MobiLocalizationItemKey] = localization;

                return(localization);
            }
            catch (Exception ex)
            {
                Log.Error("Exception while creating localization...", ex);
                return(null);
            }
        }
Exemplo n.º 5
0
        public List <TranslationKey> Load(ISqlConnectionInfo connection, TranslationKey translationKey)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            parameters.Where = "[tk].FallbackTranslationKeyID=@TranslationKeyID";
            parameters.Arguments.Add("TranslationKeyID", translationKey.ID);
            return(this.LoadMany(connection, parameters));
        }
Exemplo n.º 6
0
 public TranslationValue CreateInstance(TranslationKey translationKey, TranslationGroupKey translationGroupKey)
 {
     if (!this.HasData)
     {
         return(null);
     }
     return(new TranslationValue(this.TranslationValueID, translationKey ?? new TranslationKey(this.TranslationKeyID), translationGroupKey ?? new TranslationGroupKey(this.TranslationGroupKeyID), this.Value, this.Updated, this.Created));
 }
Exemplo n.º 7
0
        public TranslationValue Load(ISqlConnectionInfo connection, TranslationKey translationKey, TranslationGroupKey translationGroupKey)
        {
            SqlQueryParameters parameters = new SqlQueryParameters();

            parameters.Where = "[tv].TranslationGroupKeyID = @TranslationGroupKeyID AND [tv].TranslationKeyID = @TranslationKeyID";
            parameters.Arguments.Add("TranslationGroupKeyID", translationGroupKey.ID);
            parameters.Arguments.Add("TranslationKeyID", translationKey.ID);
            return(this.Load(connection, parameters));
        }
Exemplo n.º 8
0
 public TranslationValueTemplate(TranslationKey translationKey, TranslationKey fallbackTranslationKey, TranslationGroupKey groupKey)
 {
     this._groupkey       = groupKey;
     this._translationKey = translationKey;
     this._value          = TranslationValue.CreateManager().Load(this._translationKey, groupKey);
     if (fallbackTranslationKey != null)
     {
         this._fallbackValue = TranslationValue.CreateManager().Load(fallbackTranslationKey, groupKey);
     }
 }
Exemplo n.º 9
0
 public TranslateBinding(TranslationKey key, bool upperCase, string suffix)
 {
     _key       = key;
     _upperCase = upperCase;
     _suffix    = suffix;
     if (!ServiceProvider.IsDesignMode)
     {
         _languageChanged = ServiceProvider.EventAggregator.Subscribe <LanguageChangedNotification>(OnLanguageChanged);
     }
 }
Exemplo n.º 10
0
        public List <TranslationKey> Load(IConnectionInfo connection, TranslationKey translationKey)
        {
            ISqlConnectionInfo sqlConnection = connection as ISqlConnectionInfo;

            if (sqlConnection != null)
            {
                return(this.Load(sqlConnection, translationKey));
            }
            using (sqlConnection = new SqlConnectionInfo(connection, this.Type))
                return(this.Load(sqlConnection, translationKey));
        }
Exemplo n.º 11
0
 /// <summary>
 /// Translate message for form
 /// (Used for variable texts like labels on a form)
 /// </summary>
 public static string Translate(this Translation translation, Form form, TranslationKey key, string defaultValue, params object[] args)
 {
     try
     {
         return(translation.Translate(form.Name, key.ToString(), defaultValue, args));
     }
     catch (Exception ex)
     {
         Trace.WriteError("({0}, {1}, {2})", Trace.GetMethodName(), CLASSNAME, ex, form, key, defaultValue);
         throw new TranslationException(CLASSNAME + $".Translate() failed with error '{ex.Message}'", ex);
     }
 }
Exemplo n.º 12
0
        public override string[] GetKeyValues(ILocalizationKey key)
        {
            TranslationKey translationKey = key as TranslationKey;

            if (translationKey == null)
            {
                throw new InvalidCastException("Argument 'key' must be of type TranslationKey to be used in conjunction with 'ClipmobileLocalizationKeyDescriptor'.");
            }
            return(new string[] { translationKey.ID.ToString(),
                                  translationKey.Language == null ? string.Empty : translationKey.Language.TwoLetterIsoCode,
                                  translationKey.Service == null ? string.Empty : translationKey.Service.Name });
        }
Exemplo n.º 13
0
 /// <summary>
 /// Translate a key
 /// </summary>
 public static string Translate(this Translation translation, TranslationKey key, TranslationSubKey subKey, string defaultValue, params object[] args)
 {
     try
     {
         return(translation.Translate(nameof(TranslationKey.BusinessLayer), $"{key.ToString()}_{subKey.ToString()}", defaultValue, args));
     }
     catch (Exception ex)
     {
         Trace.WriteError("({0}, {1})", Trace.GetMethodName(), CLASSNAME, ex, key, defaultValue);
         throw new TranslationException(CLASSNAME + $".Translate() failed with error '{ex.Message}'", ex);
     }
 }
Exemplo n.º 14
0
        KeyframedAnimationSet CreateAnimationSet()
        {
            var trackList = Editor.Parser.ANIC.ChildList;

            if ((trackList == null) || (trackList.Count <= 0))
            {
                return(null);
            }

            KeyframedAnimationSet set = new KeyframedAnimationSet("SetName", 1, PlaybackType.Once, trackList.Count, new CallbackKey[0]);

            for (int i = 0; i < trackList.Count; i++)
            {
                var              track           = trackList[i];
                ScaleKey[]       scaleKeys       = new ScaleKey[track.scalings.Length];
                RotationKey[]    rotationKeys    = new RotationKey[track.rotations.Length];
                TranslationKey[] translationKeys = new TranslationKey[track.translations.Length];
                set.RegisterAnimationKeys(track.boneFrame, scaleKeys, rotationKeys, translationKeys);
                for (int j = 0; j < track.scalings.Length; j++)
                {
                    float time = track.scalings[j].index;

                    ScaleKey scale = new ScaleKey();
                    scale.Time  = time;
                    scale.Value = track.scalings[j].value;
                    //scaleKeys[j] = scale;
                    set.SetScaleKey(i, j, scale);
                }
                for (int j = 0; j < track.rotations.Length; j++)
                {
                    float time = track.rotations[j].index;

                    RotationKey rotation = new RotationKey();
                    rotation.Time  = time;
                    rotation.Value = track.rotations[j].value;
                    //rotationKeys[j] = rotation;
                    set.SetRotationKey(i, j, rotation);
                }
                for (int j = 0; j < track.translations.Length; j++)
                {
                    float time = track.translations[j].index;

                    TranslationKey translation = new TranslationKey();
                    translation.Time  = time;
                    translation.Value = track.translations[j].value;
                    //translationKeys[j] = translation;
                    set.SetTranslationKey(i, j, translation);
                }
            }

            return(set);
        }
Exemplo n.º 15
0
        public override ILocalizationKey GetKey(string[] values)
        {
            if (values.Length < 3)
            {
                return(null);
            }
            //string productName = values[0];
            //if (string.IsNullOrEmpty(productName))
            //	return null;
            //
            //string localizationId = values[0];
            //if (string.IsNullOrEmpty(localizationId))
            //	return null;
            //Data.Localization localization = Data.Localization.CreateManager().Load(Int32.Parse(localizationId));
            //
            //Product product = Product.CreateManager().Load(productName);
            //if (product == null)
            //	return null;
            //Translation translation = Translation.CreateManager().Load<Translation>(product);

            string translationKeyId = values[0];

            if (string.IsNullOrEmpty(translationKeyId))
            {
                return(null);
            }
            TranslationKey tk = TranslationKey.CreateManager().Load(Int32.Parse(translationKeyId));

            Translation translation = tk.Translation;

            if (translation == null)
            {
                return(null);
            }
            string   languageCode = values[1];
            Language language     = null;

            if (!string.IsNullOrEmpty(languageCode))
            {
                language = Language.CreateManager().Load(languageCode, LanguageIdentifier.TwoLetterIsoCode);
            }
            string  serviceName = values[2];
            Service service     = null;

            if (!string.IsNullOrEmpty(serviceName))
            {
                service = Service.CreateManager().Load(serviceName);
            }

            return(new TranslationKey(translation, language, service));
        }
Exemplo n.º 16
0
        public ActionResult ApiUpdateTranslationValue(string translationValueKeyID, string translationKeyID, string translationGroupKeyID, string groupName, string groupKey, string value)
        {
            int tvalueID, tKeyID, tGroupKeyID;

            if (!Int32.TryParse(translationValueKeyID, out tvalueID))
            {
                return(this.Json(new { status = false, message = "Argument error 'translationValueKeyID" }));
            }
            if (!Int32.TryParse(translationKeyID, out tKeyID))
            {
                return(this.Json(new { status = false, message = "Argument error 'translationKeyID" }));
            }
            if (!Int32.TryParse(translationGroupKeyID, out tGroupKeyID))
            {
                return(this.Json(new { status = false, message = "Argument error 'translationGroupKeyID" }));
            }

            string message = "";

            value = HttpUtility.UrlDecode(value);

            TranslationValue translationValue;

            if (tvalueID == -1)
            {
                translationValue = new TranslationValue(-1,
                                                        TranslationKey.CreateManager().Load(tKeyID),
                                                        TranslationGroupKey.CreateManager().Load(tGroupKeyID),
                                                        value,
                                                        DateTime.Now, DateTime.Now);
                translationValue.Insert();
                message = "Translation has been added";
            }
            else
            {
                translationValue = TranslationValue.CreateManager().Load(tvalueID);
                if (translationValue == null)
                {
                    return(this.Json(new { status = false, message = "Translation value does not exists!" }));
                }

                translationValue.Value = value;
                translationValue.Update();
                message = "Translation has been updated";
            }

            Translations.Web.GetGroup(groupName).AssignValue(groupKey, value);
            //MobiContext.Current.UpdateTranslationsWildcars();

            return(this.Json(new { status = true, message = message, id = translationValue.ID, Updated = translationValue.Updated.ToString() }));
        }
Exemplo n.º 17
0
        public string GetByKey(TranslationKey key)
        {
            if (CurrentLanguage.Translations.ContainsKey(key))
            {
                return(CurrentLanguage.Translations[key].Value);
            }
            var s = $"<Translation Key=\"{key}\">{Environment.NewLine}{Environment.NewLine}</Translation>";

            if (!MissingTranslations.Contains(s))
            {
                MissingTranslations.Add(s);
                Debug.WriteLine(MissingString);
            }
            return("missing");
        }
Exemplo n.º 18
0
        public string Get(TranslationKey key)
        {
            switch (key)
            {
            case TranslationKey.Three:
                return("Fizz");

            case TranslationKey.Five:
                return("Buzz");

            case TranslationKey.Both:
                return("FizzBuzz");

            default:
                return("WTF");
            }
        }
Exemplo n.º 19
0
        public virtual DialogResult Confirm(TranslationKey translationKey, string caption, string message, MessageBoxButtons buttons, params object[] messageArgs)
        {
            // translate
            caption = Translation.Instance.Translate(translationKey, TranslationSubKey.Caption, caption);
            message = Translation.Instance.Translate(translationKey, TranslationSubKey.Message, message, messageArgs);

            const MessageBoxIcon icon = MessageBoxIcon.Question;

            Trace.WriteInformation("CONFIRM DIALOG SHOW: Display='{0}', Message='{1}', Buttons={2}", Trace.GetMethodName(), CLASSNAME, Text, message, buttons);
            int timestamp = Environment.TickCount;

            DialogResult result = new MessageBoxForm(caption, message, buttons, icon, null).ShowDialog(this);

            Trace.WriteInformation("CONFIRM DIALOG ACK: Display='{0}', Ack Time={1} [ms], Message='{2}', Buttons={3}, Response={4}", Trace.GetMethodName(), CLASSNAME, Text, Environment.TickCount - timestamp, message, buttons, result);

            return(result);
        }
Exemplo n.º 20
0
        public override void ActivateFromMain(EventArgs e)
        {
            try
            {
                base.ActivateFromMain(e);

                if (!CurrentUser.HasPermission(ACICategory, ACIOptions.VIEW))
                {
                    const TranslationKey transKey = TranslationKey.CommonMessage_NoAuthorization;
                    throw new SecurityException(CurrentUser.User.Username, Translation.Instance.Translate(this, transKey, transKey.GetCommonMessage()));
                }
            }
            catch (Exception ex)
            {
                Trace.WriteError("()", Trace.GetMethodName(), CLASSNAME, ex);
                throw;
            }
        }
Exemplo n.º 21
0
        private LanguageDefintion LoadLanguageDefinition(XmlReader reader)
        {
            var name = reader.GetAttribute("Name");
            List <Translation> translations = new List <Translation>();

            do
            {
                reader.Read();
                if (reader.IsStartElement("Translation"))
                {
                    var translationKey = new TranslationKey(reader.GetAttribute("Key"));
                    reader.Read();
                    reader.MoveToContent();
                    var translation = new Translation(translationKey, reader.Value.Trim().Replace("\n", (char)10 + ""));
                    translations.Add(translation);
                }
            }while (reader.IsStartElement() || reader.Name != "Language");
            return(new LanguageDefintion(name, translations));
        }
        public override void ActivateFromMain(EventArgs e)
        {
            try
            {
                base.ActivateFromMain(e);

                if (!CurrentUser.HasPermission(ACICategory, ACIOptions.VIEW))
                {
                    const TranslationKey transKey = TranslationKey.CommonMessage_NoAuthorization;
                    throw new SecurityException(CurrentUser.User.Username, Translation.Instance.Translate(transKey, TranslationSubKey.Message, transKey.GetCommonMessage()));
                }
                Show();
                AddButtonRibbonBars();
                Refresh();
            }
            catch (Exception ex)
            {
                Trace.WriteError("()", Trace.GetMethodName(), _classname, ex);
                throw;
            }
        }
Exemplo n.º 23
0
            /// <inheritdoc/>
            public async Task <MutationResult> Handle(CreateKeyWithValuesCommand request, CancellationToken cancellationToken)
            {
                var key = new TranslationKey
                {
                    Key = request.Key,
                };

                foreach (var value in request.Values)
                {
                    key.Translations.Add(new TranslationValue
                    {
                        LanguageId = value.LanguageId,
                        Value      = value.Value,
                    });
                }

                this.context.Keys.Add(key);

                await this.context.SaveChangesAsync(cancellationToken);

                return(new MutationResult(key.Id.ToString()));
            }
Exemplo n.º 24
0
        public async Task <int> CreateKey(int projectId, string key)
        {
            var existing = await keyRepository.Query()
                           .AnyAsync(k => k.ProjectId == projectId && k.Key == key);

            if (existing)
            {
                throw new IzoConflictException(
                          $"Key '{key}' already exists in project {projectId}"
                          );
            }

            var newKey = new TranslationKey
            {
                ProjectId = projectId,
                Key       = key
            };

            await keyRepository.Create(newKey);

            return(newKey.Id);
        }
Exemplo n.º 25
0
        public TranslationTemplateModel(MobiContext context, Translation translation, bool extendedAccess, string groupName)
            : base(context, extendedAccess)
        {
            this._translationKey = TranslationKey.CreateManager().Load(context.Service.ServiceData);
            if (this._translationKey == null)
            {
                this._hasTranslation = false;
                return;
            }

            this.Name              = groupName;
            this._fallbackKey      = this._translationKey.FallbackTranslationKey;
            this._translationGroup = TranslationGroup.CreateManager().Load(translation, groupName);

            this._values = new List <TranslationValueTemplate>();
            List <TranslationGroupKey> groupKeys = TranslationGroupKey.CreateManager().Load(this._translationGroup);

            foreach (TranslationGroupKey groupKey in groupKeys)
            {
                this._values.Add(new TranslationValueTemplate(this._translationKey, this._fallbackKey, groupKey));
            }
        }
Exemplo n.º 26
0
        IEnumerator DoConvertTake(AMTakeData oldTake, Take newTake, bool isMeta, string assetPath)
        {
            newTake.name            = oldTake.name;
            newTake.frameRate       = oldTake.frameRate;
            newTake.endFramePadding = oldTake.endFramePadding;
            newTake.numLoop         = oldTake.numLoop;
            newTake.loopMode        = oldTake.loopMode;
            newTake.loopBackToFrame = oldTake.loopBackToFrame;
            newTake.trackCounter    = oldTake.track_count;
            newTake.groupCounter    = oldTake.group_count;

            //go through groups
            newTake.rootGroup            = new Group();
            newTake.rootGroup.group_name = oldTake.rootGroup.group_name;
            newTake.rootGroup.group_id   = oldTake.rootGroup.group_id;
            newTake.rootGroup.elements   = new List <int>(oldTake.rootGroup.elements);
            newTake.rootGroup.foldout    = oldTake.rootGroup.foldout;

            newTake.groupValues = new List <Group>();
            foreach (var oldGroup in oldTake.groupValues)
            {
                var newGroup = new Group();
                newGroup.group_name = oldGroup.group_name;
                newGroup.group_id   = oldGroup.group_id;
                newGroup.elements   = new List <int>(oldGroup.elements);
                newGroup.foldout    = oldGroup.foldout;

                newTake.groupValues.Add(newGroup);
            }

            //go through tracks
            newTake.trackValues = new List <Track>();
            foreach (var oldTrack in oldTake.trackValues)
            {
                AddMessage("  - convert track: " + oldTrack.name);

                Track newTrack = null;

                if (oldTrack is AMAnimationTrack)
                {
                    newTrack = new UnityAnimationTrack();

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTrack.keys = new List <Key>();
                    foreach (AMAnimationKey oldKey in oldTrack.keys)
                    {
                        var newKey = new UnityAnimationKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.wrapMode      = oldKey.wrapMode;
                        newKey.amClip        = oldKey.amClip;
                        newKey.crossfade     = oldKey.crossfade;
                        newKey.crossfadeTime = oldKey.crossfadeTime;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMAudioTrack)
                {
                    newTrack = new AudioTrack();

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTrack.keys = new List <Key>();
                    foreach (AMAudioKey oldKey in oldTrack.keys)
                    {
                        var newKey = new AudioKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.audioClip = oldKey.audioClip;
                        newKey.loop      = oldKey.loop;
                        newKey.oneShot   = oldKey.oneShot;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMCameraSwitcherTrack)
                {
                    newTrack = new CameraSwitcherTrack();

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTrack.keys = new List <Key>();
                    for (int i = 0; i < oldTrack.keys.Count; i++)
                    {
                        var oldKey = (AMCameraSwitcherKey)oldTrack.keys[i];
                        var newKey = new CameraSwitcherKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.type                 = oldKey.type;
                        newKey.typeEnd              = oldKey.typeEnd;
                        newKey.color                = oldKey.color;
                        newKey.colorEnd             = oldKey.colorEnd;
                        newKey.cameraFadeType       = oldKey.cameraFadeType;
                        newKey.cameraFadeParameters = new List <float>(oldKey.cameraFadeParameters);
                        newKey.irisShape            = oldKey.irisShape;
                        newKey.still                = oldKey.still;
                        newKey.endFrame             = oldKey.endFrame;

                        if (isMeta)
                        {
                            newKey.SetCameraDirect(null, oldKey.cameraTargetPath);
                            newKey.SetCameraEndDirect(null, oldKey.cameraEndTargetPath);
                        }
                        else
                        {
                            newKey.SetCameraDirect(oldKey.getCamera(null), "");
                            newKey.SetCameraDirect(oldKey.getCameraEnd(null), "");
                        }

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMEventTrack)
                {
                    var newEventTrack = new EventTrack();
                    newTrack = newEventTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, false, isMeta);

                    newTrack.keys = new List <Key>();

                    string eventCompName = null;

                    //TODO: create new tracks per different components from keys
                    //for now we only allow conversion of one component, so the first key will be used.
                    foreach (AMEventKey oldKey in oldTrack.keys)
                    {
                        string keyCompName = oldKey.getComponentName();

                        if (string.IsNullOrEmpty(eventCompName))
                        {
                            if (!string.IsNullOrEmpty(keyCompName))
                            {
                                eventCompName = keyCompName;

                                AddMessage("   - EventTrack using component: " + eventCompName);

                                if (isMeta)
                                {
                                    newEventTrack.SetTargetAsComponentDirect(oldTrack.targetPath, null, eventCompName);
                                }
                                else
                                {
                                    newEventTrack.SetTargetAsComponentDirect("", oldKey.getComponentRef(), eventCompName);
                                }
                            }
                        }

                        //only add if component matched
                        if (string.IsNullOrEmpty(eventCompName) || keyCompName != eventCompName)
                        {
                            AddMessage("   - Cannot add EventKey with Component: " + eventCompName, Color.yellow);
                            continue;
                        }

                        var newKey = new EventKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.useSendMessage = oldKey.useSendMessage;
                        newKey.methodName     = oldKey.methodName;

                        newKey.parameters = new List <EventParameter>(oldKey.parameters.Count);
                        for (int i = 0; i < oldKey.parameters.Count; i++)
                        {
                            var oldParm = oldKey.parameters[i];
                            var newParm = new EventParameter();

                            ConvertEventParameter(oldParm, newParm);

                            newKey.parameters.Add(newParm);
                        }

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMGOSetActiveTrack)
                {
                    var oldGOTrack = (AMGOSetActiveTrack)oldTrack;
                    var newGOTrack = new GOSetActiveTrack();

                    newTrack = newGOTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newGOTrack.startActive = oldGOTrack.startActive;

                    newTrack.keys = new List <Key>();
                    foreach (AMGOSetActiveKey oldKey in oldTrack.keys)
                    {
                        var newKey = new GOSetActiveKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.setActive = oldKey.setActive;
                        newKey.endFrame  = oldKey.endFrame;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMMaterialTrack)
                {
                    var oldMatTrack = (AMMaterialTrack)oldTrack;
                    var newMatTrack = new MaterialTrack();

                    newTrack = newMatTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newMatTrack.materialIndex = oldMatTrack.materialIndex;
                    newMatTrack.property      = oldMatTrack.property;
                    newMatTrack.propertyType  = (MaterialTrack.ValueType)oldMatTrack.propertyType;

                    newTrack.keys = new List <Key>();
                    foreach (AMMaterialKey oldKey in oldTrack.keys)
                    {
                        var newKey = new MaterialKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.endFrame = oldKey.endFrame;
                        newKey.texture  = oldKey.texture;
                        newKey.vector   = oldKey.vector;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMOrientationTrack)
                {
                    newTrack = new OrientationTrack();

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTrack.keys = new List <Key>();
                    foreach (AMOrientationKey oldKey in oldTrack.keys)
                    {
                        var newKey = new OrientationKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        if (isMeta)
                        {
                            newKey.SetTargetDirect(null, oldKey.GetTargetPath());
                        }
                        else
                        {
                            newKey.SetTargetDirect(oldKey.GetTarget(null), "");
                        }

                        newKey.endFrame = oldKey.endFrame;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMPropertyTrack)
                {
                    var oldPropTrack = (AMPropertyTrack)oldTrack;
                    var newPropTrack = new PropertyTrack();

                    newTrack = newPropTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newPropTrack.valueType = (PropertyTrack.ValueType)oldPropTrack.valueType;

                    if (oldPropTrack.isPropertySet())
                    {
                        Component comp      = oldPropTrack.GetTargetComp(null);
                        string    compName  = oldPropTrack.getComponentName();
                        bool      isField   = oldPropTrack.isField;
                        string    fieldName = oldPropTrack.getMemberName();

                        if (isMeta)
                        {
                            newPropTrack.SetTargetCompDirect(null, compName, isField, fieldName);
                        }
                        else
                        {
                            newPropTrack.SetTargetCompDirect(comp, compName, isField, fieldName);
                        }
                    }

                    newTrack.keys = new List <Key>();
                    foreach (AMPropertyKey oldKey in oldTrack.keys)
                    {
                        var newKey = new PropertyKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.endFrame  = oldKey.endFrame;
                        newKey.val       = oldKey.val;
                        newKey.valString = oldKey.valString;
                        newKey.valObj    = oldKey.valObj;
                        newKey.vect4     = oldKey.vect4;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMRotationEulerTrack)
                {
                    var oldRotEulerTrack = (AMRotationEulerTrack)oldTrack;
                    var newRotEulerTrack = new RotationEulerTrack();

                    newTrack = newRotEulerTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newRotEulerTrack.axis = (AxisFlags)oldRotEulerTrack.axis;

                    newTrack.keys = new List <Key>();
                    foreach (AMRotationEulerKey oldKey in oldTrack.keys)
                    {
                        var newKey = new RotationEulerKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.rotation = oldKey.rotation;
                        newKey.endFrame = oldKey.endFrame;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMRotationTrack)
                {
                    newTrack = new RotationTrack();

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTrack.keys = new List <Key>();
                    foreach (AMRotationKey oldKey in oldTrack.keys)
                    {
                        var newKey = new RotationKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.rotation = oldKey.rotation;
                        newKey.endFrame = oldKey.endFrame;

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMTranslationTrack)
                {
                    var oldTransTrack = (AMTranslationTrack)oldTrack;
                    var newTransTrack = new TranslationTrack();

                    newTrack = newTransTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, true, isMeta);

                    newTransTrack.pixelPerUnit = oldTransTrack.pixelPerUnit;
                    newTransTrack.pixelSnap    = oldTransTrack.pixelSnap;

                    newTrack.keys = new List <Key>();
                    foreach (AMTranslationKey oldKey in oldTrack.keys)
                    {
                        var newKey = new TranslationKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.position     = oldKey.position;
                        newKey.endFrame     = oldKey.endFrame;
                        newKey.isConstSpeed = oldKey.isConstSpeed;

                        newKey.path = new Vector3[oldKey.path.Length];
                        System.Array.Copy(oldKey.path, newKey.path, newKey.path.Length);

                        newTrack.keys.Add(newKey);
                    }
                }
                else if (oldTrack is AMTriggerTrack)  //convert TriggerTrack to EventTrack with TriggerSignal
                {
                    var newTriggerTrack = new EventTrack();

                    newTrack = newTriggerTrack;

                    ConvertTrackCommonFields(oldTrack, newTrack, false, isMeta);

                    //grab/create signal for this trigger
                    string signalPath = GetTriggerSignalPath(assetPath);

                    TriggerSignal triggerSignal;
                    if (!mTriggerSignalLookup.TryGetValue(signalPath, out triggerSignal))
                    {
                        //try to load it if it exists
                        triggerSignal = AssetDatabase.LoadAssetAtPath <TriggerSignal>(signalPath);
                        if (!triggerSignal)
                        {
                            AddMessage("  - Creating Trigger Signal: " + signalPath);

                            triggerSignal = ScriptableObject.CreateInstance <TriggerSignal>();
                            AssetDatabase.CreateAsset(triggerSignal, signalPath);
                            AssetDatabase.SaveAssets();

                            yield return(new WaitForFixedUpdate());
                        }

                        mTriggerSignalLookup.Add(signalPath, triggerSignal);
                    }

                    newTriggerTrack.SetTargetAsObject(triggerSignal);

                    newTrack.keys = new List <Key>();
                    foreach (AMTriggerKey oldKey in oldTrack.keys)
                    {
                        var newKey = new EventKey();

                        ConvertKeyCommonFields(oldKey, newKey);

                        newKey.useSendMessage = false;
                        newKey.methodName     = "Invoke";

                        newKey.parameters = new List <EventParameter>(3);
                        newKey.parameters.Add(new EventParameter()
                        {
                            valueType = EventData.ValueType.String, val_string = oldKey.valueString
                        });
                        newKey.parameters.Add(new EventParameter()
                        {
                            valueType = EventData.ValueType.Integer, val_int = oldKey.valueInt
                        });
                        newKey.parameters.Add(new EventParameter()
                        {
                            valueType = EventData.ValueType.Float, val_float = oldKey.valueFloat
                        });

                        newTrack.keys.Add(newKey);
                    }
                }

                newTake.trackValues.Add(newTrack);

                yield return(new WaitForFixedUpdate());
            }
        }
Exemplo n.º 27
0
 public VerbalStructureDescription(string internalName, TranslationKey name, TranslationKey description)
 {
     InternalName  = internalName;
     DescriptionID = description;
     NameID        = name;
 }
 public ToTranslationKeyArgs(TranslationKey originalKey)
 {
     OriginalKey = originalKey;
 }
Exemplo n.º 29
0
 public Translation(TranslationKey key, string value)
 {
     Key   = key;
     Value = value;
 }
Exemplo n.º 30
0
        KeyframedAnimationSet CreateAnimationSet()
        {
            var trackList = Editor.Parser.ANIC.ChildList;
            if ((trackList == null) || (trackList.Count <= 0))
            {
                return null;
            }

            KeyframedAnimationSet set = new KeyframedAnimationSet("SetName", 1, PlaybackType.Once, trackList.Count, new CallbackKey[0]);
            for (int i = 0; i < trackList.Count; i++)
            {
                var track = trackList[i];
                ScaleKey[] scaleKeys = new ScaleKey[track.scalings.Length];
                RotationKey[] rotationKeys = new RotationKey[track.rotations.Length];
                TranslationKey[] translationKeys = new TranslationKey[track.translations.Length];
                set.RegisterAnimationKeys(track.boneFrame, scaleKeys, rotationKeys, translationKeys);
                for (int j = 0; j < track.scalings.Length; j++)
                {
                    float time = track.scalings[j].index;

                    ScaleKey scale = new ScaleKey();
                    scale.Time = time;
                    scale.Value = track.scalings[j].value;
                    //scaleKeys[j] = scale;
                    set.SetScaleKey(i, j, scale);
                }
                for (int j = 0; j < track.rotations.Length; j++)
                {
                    float time = track.rotations[j].index;

                    RotationKey rotation = new RotationKey();
                    rotation.Time = time;
                    rotation.Value = track.rotations[j].value;
                    //rotationKeys[j] = rotation;
                    set.SetRotationKey(i, j, rotation);
                }
                for (int j = 0; j < track.translations.Length; j++)
                {
                    float time = track.translations[j].index;

                    TranslationKey translation = new TranslationKey();
                    translation.Time = time;
                    translation.Value = track.translations[j].value;
                    //translationKeys[j] = translation;
                    set.SetTranslationKey(i, j, translation);
                }
            }

            return set;
        }
Exemplo n.º 31
0
        private void buttonAnimationKeyframeNew_Click(object sender, EventArgs e)
        {
            try
            {
                if (listViewAnimationTrack.SelectedItems.Count != 1)
                {
                    return;
                }

                xaAnimationTrack track = (xaAnimationTrack)listViewAnimationTrack.SelectedItems[0].Tag;
                int animation = Editor.Parser.AnimationSection.TrackList.IndexOf(track);
                int timeIndex = (int)numericAnimationClipKeyframe.Value;
                xaAnimationKeyframe keyframe = (xaAnimationKeyframe)Gui.Scripting.RunScript(EditorVar + ".NewKeyframe(track=" + EditorVar + ".Parser.AnimationSection.TrackList[" + animation + "], index=" + timeIndex + ")");
                Changed = Changed;

                int key = track.KeyframeList.IndexOf(keyframe);
                if (key >= animationSet.GetRotationKeyCount(animationSet.GetAnimationIndex(track.Name)))
                {
                    if (animationSet != null)
                    {
                        Pause();
                        renderTimer.Tick -= renderTimer_Tick;
                        Gui.Renderer.RemoveAnimationSet(animationId);
                        animationSet.Dispose();
                        animationSet = null;
                    }

                    animationSet = CreateAnimationSet();
                    if (animationSet != null)
                    {
                        animationId = Gui.Renderer.AddAnimationSet(animationSet);

                        renderTimer.Interval = 10;
                        renderTimer.Tick += new EventHandler(renderTimer_Tick);
                        Play();
                    }
                }

                float time = timeIndex;

                ScaleKey scale = new ScaleKey();
                scale.Time = time;
                scale.Value = keyframe.Scaling;
                animationSet.SetScaleKey(animation, key, scale);

                RotationKey rotation = new RotationKey();
                rotation.Time = time;
                rotation.Value = Quaternion.Invert(keyframe.Rotation);
                animationSet.SetRotationKey(animation, key, rotation);

                TranslationKey translation = new TranslationKey();
                translation.Time = time;
                translation.Value = keyframe.Translation;
                animationSet.SetTranslationKey(animation, key, translation);

                AdvanceTime(0);

                AddTrackToEditedTracks(track);
                listViewAnimationTrack.SelectedItems[0].SubItems[1].Text = track.KeyframeList.Count.ToString();
                listViewAnimationTrack.SelectedItems[0].SubItems[2].Text = (track.KeyframeList[track.KeyframeList.Count - 1].Index - track.KeyframeList[0].Index + 1).ToString();
                DisplayNewKeyframe(true);
            }
            catch (Exception ex)
            {
                Utility.ReportException(ex);
            }
        }
Exemplo n.º 32
0
        KeyframedAnimationSet CreateAnimationSet()
        {
            var trackList = Editor.Parser.AnimationSection.TrackList;
            if ((trackList == null) || (trackList.Count <= 0))
            {
                return null;
            }

            KeyframedAnimationSet set = new KeyframedAnimationSet("SetName", 1, PlaybackType.Once, trackList.Count, new CallbackKey[0]);
            for (int i = 0; i < trackList.Count; i++)
            {
                var track = trackList[i];
                var keyframes = track.KeyframeList;
                ScaleKey[] scaleKeys = new ScaleKey[keyframes.Count];
                RotationKey[] rotationKeys = new RotationKey[keyframes.Count];
                TranslationKey[] translationKeys = new TranslationKey[keyframes.Count];
                for (int k = 0; k < 10; k++)
                {
                    try
                    {
                        set.RegisterAnimationKeys(k == 0 ? track.Name : track.Name + "_error" + k, scaleKeys, rotationKeys, translationKeys);
                        for (int j = 0; j < keyframes.Count; j++)
                        {
                            float time = keyframes[j].Index;

                            ScaleKey scale = new ScaleKey();
                            scale.Time = time;
                            scale.Value = keyframes[j].Scaling;
                            //scaleKeys[j] = scale;
                            set.SetScaleKey(i, j, scale);

                            RotationKey rotation = new RotationKey();
                            rotation.Time = time;
                            rotation.Value = Quaternion.Invert(keyframes[j].Rotation);
                            //rotationKeys[j] = rotation;
                            set.SetRotationKey(i, j, rotation);

                            TranslationKey translation = new TranslationKey();
                            translation.Time = time;
                            translation.Value = keyframes[j].Translation;
                            //translationKeys[j] = translation;
                            set.SetTranslationKey(i, j, translation);
                        }
                        break;
                    }
                    catch (Exception ex)
                    {
                        switch (k)
                        {
                        case 0:
                            Report.ReportLog("Error in Track: " + track.Name);
                            Utility.ReportException(ex);
                            break;
                        case 9:
                            Report.ReportLog("Aborting to register with different name. Animation will not be displayed.");
                            break;
                        }
                    }
                }
            }

            return set;
        }
Exemplo n.º 33
0
 public List <TranslationKey> Load(TranslationKey translationKey)
 {
     using (SqlConnectionInfo connection = new SqlConnectionInfo(this.Type))
         return(this.Load(connection, translationKey));
 }