コード例 #1
0
        public ScenarioModel(IIndexItem item)
        {
            IsBusy = true;

            ScenarioTag = item;

            Xml            = new XmlDocument();
            MetadataStream = new InMemoryMetadataStream(item, GetXmlData(ScenarioTag.CacheFile, "Metadata"));
            Sections       = new Dictionary <string, ScenarioSection>();
            Hierarchy      = new ObservableCollection <SceneNodeModel>();
            Items          = new ObservableCollection <ScenarioListItem>();

            Bsps              = new ObservableCollection <TagReference>();
            Skies             = new ObservableCollection <TagReference>();
            ObjectNames       = new List <ObjectName>();
            Palettes          = new Dictionary <string, PaletteDefinition>();
            StartingPositions = new DeepObservableCollection <StartPosition>();
            TriggerVolumes    = new DeepObservableCollection <TriggerVolume>();

            using (var reader = CreateReader())
            {
                LoadSections(reader);

                SquadHierarchy = new AiSquadHierarchy(this);
                ReadSquadHierarchy(reader);

                //populate hierarchy tree
                var doc = new XmlDocument();
                doc.LoadXml(Properties.Resources.NodeHierarchy);
                Hierarchy.AddRange(XmlToNodes(null, doc.DocumentElement));
                Hierarchy[0].IsExpanded = true;

                ReadBsps(reader);
                ReadSkies(reader);
                ReadObjectNames(reader);
                ReadPalettes(reader);
                ReadPlacements(reader);
                ReadStartPositions(reader);
                ReadTriggerVolumes(reader);
            }

            ComponentManagers = new List <ComponentManager>();
            ComponentManagers.Add(new MissionComponentManager(this));
            ComponentManagers.Add(new TerrainComponentManager(this));
            ComponentManagers.Add(new PaletteComponentManager(this));
            ComponentManagers.Add(new StartPositionComponentManager(this));
            ComponentManagers.Add(new TriggerVolumeComponentManager(this));

            if (SquadHierarchy.AiNodes.Count > 0)
            {
                ComponentManagers.Add(new AiComponentManager(this));
            }

            IsBusy = false;
        }
コード例 #2
0
 public TeltonikaEmulatorViewModel()
 {
     LoadDialogButton = new RelayCommand(LoadDialogFile);
     EmulateButton    = new RelayCommand(Emulate);
     CancelButton     = new RelayCommand(CancelTasks);
     _boxNumber       = 1;
     _sleepPeriod     = 1;
     _ipAddress       = "127.0.0.1";
     _port            = 34400;
     Logs             = new DeepObservableCollection <LogVm>();
     _file            = ResourFiles.Resource._19_05_07_352093082435032?.Split('\r');
 }
コード例 #3
0
        public StructureValue(XmlNode node, MetaContext context, EndianReader reader, long baseAddress)
            : base(node, context, reader, baseAddress)
        {
            BlockSize   = node.GetIntAttribute("elementSize", "entrySize", "size") ?? 0;
            Children    = new DeepObservableCollection <MetaValue>();
            BlockLabels = new ObservableCollection <string>();
            IsExpanded  = true;

            ReadValue(reader);

            Children.ChildPropertyChanged += Children_ChildPropertyChanged;
        }
コード例 #4
0
 public PaletteDefinition()
 {
     Palette    = new ObservableCollection <TagReference>();
     Placements = new DeepObservableCollection <ObjectPlacement>();
 }