Ejemplo n.º 1
0
        EntityCultureInfo GetCultureInfoForEntity(IEntity entity)
        {
            var lcd = entity.Structure.GetDevice <ILcd>("CultureInfo");

            if (lcd != null)
            {
                try
                {
                    var text = lcd.GetText();
                    if (string.IsNullOrEmpty(text))
                    {
                        var newCultureInfo = new EntityCultureInfo();
                        lcd.SetText(Newtonsoft.Json.JsonConvert.SerializeObject(newCultureInfo, Newtonsoft.Json.Formatting.Indented));
                        return(newCultureInfo);
                    }

                    var ci = Newtonsoft.Json.JsonConvert.DeserializeObject <EntityCultureInfo>(text);
                    ci.CultureInfo = EntityCultureInfo.CreateFormatCulture(System.Globalization.CultureInfo.CreateSpecificCulture(ci.LanguageTag));

                    return(ci);
                }
                catch (Exception error)
                {
                    var debugLcd = entity.Structure.GetDevice <ILcd>("CultureInfoDebug");
                    if (debugLcd != null)
                    {
                        debugLcd.SetText(error.Message);
                    }
                }
            }

            return(new EntityCultureInfo());
        }
Ejemplo n.º 2
0
        public ScriptRootData(
            PlayfieldScriptData playfieldScriptData,
            IEntity[] allEntities,
            IEntity[] currentEntities,
            IPlayfield playfield,
            IEntity entity,
            ConcurrentDictionary <string, object> persistendData,
            EventStore eventStore) : this()
        {
            _PlayfieldScriptData = playfieldScriptData;
            _PersistendData      = persistendData;
            this.currentEntities = currentEntities;
            this.allEntities     = allEntities;
            this.playfield       = playfield;
            this.entity          = entity;
            SignalEventStore     = eventStore;
            var testGroup = entity?.Faction.Group == FactionGroup.Faction || entity?.Faction.Group == FactionGroup.Player ? entity?.Faction.Id.ToString() : entity?.Faction.Group.ToString();

            IsElevatedScript = this is ScriptSaveGameRootData || EmpyrionScripting.Configuration.Current.ElevatedGroups.Any(f => f == testGroup);

            try  { CultureInfo = playfieldScriptData?.EntityCultureInfo?.GetOrAdd(entity.Id, e => GetCultureInfoForEntity(entity)); }
            catch { CultureInfo = new EntityCultureInfo(); }
        }