コード例 #1
0
 public void AppendState(DnDToolsState otherState)
 {
     Monsters.AddRange(otherState.Monsters);
     CreatureTypes.AddRange(otherState.CreatureTypes);
     HarvestedItems.AddRange(otherState.HarvestedItems);
     TrinketTables.AddRange(otherState.TrinketTables);
 }
コード例 #2
0
        public string GetJsonState()
        {
            State = new DnDToolsState
            {
                Monsters       = Monsters.Values.ToList(),
                CreatureTypes  = CreatureTypes.Values.ToList(),
                HarvestedItems = HarvestedItems.Values.ToList(),
                TrinketTables  = TrinketTables.Values.ToList(),
            };

            return(JsonSerializer.Serialize <DnDToolsState>(State, JsonSerializeOptions));
        }
コード例 #3
0
        public async Task ProcessFile(IFileReference fileReference)
        {
            using (var reader = await fileReference.OpenReadAsync())
            {
                try
                {
                    DnDToolsState state = await JsonSerializer.DeserializeAsync <DnDToolsState>(reader, JsonDeserializeOptions);

                    LoadState(state);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
コード例 #4
0
        public void LoadState(DnDToolsState initialState)
        {
            if (State == null)
            {
                State = initialState;
            }
            else
            {
                State.AppendState(initialState);
            }

            State.HarvestedItems.ForEach(hItem => HarvestedItems.TryAdd(hItem.Name.ToLower(), hItem));
            State.CreatureTypes.ForEach(cType => CreatureTypes.TryAdd(cType.ToString().ToLower(), cType));
            State.TrinketTables.ForEach(tTable => TrinketTables.TryAdd(tTable.TrinketTableType.ToLower(), tTable));
            State.Monsters.ForEach(mon => Monsters.TryAdd(mon.Name.ToLower(), mon));

            UpdateDictionaries();

            IsLoaded = true;

            StorageStateChanged?.Invoke();
        }