Ejemplo n.º 1
0
        public static void UnpackPathable(NanoXmlNode pathableNode, PathableResourceManager pathableResourceManager, PathingCategory rootCategory)
        {
            switch (pathableNode.Name.ToLowerInvariant())
            {
            case ELEMENT_POITYPE_POI:
                var poiAttributes = AttributeBuilder.FromNanoXmlNode(pathableNode);

                var newPoiMarker = new Pathables.TacOMarkerPathable(poiAttributes, pathableResourceManager, rootCategory);

                if (newPoiMarker.SuccessfullyLoaded)
                {
                    MarkersAndPathsModule.ModuleInstance._currentReader.RegisterPathable(newPoiMarker);
                }
                else
                {
                    Logger.Warn("Failed to load marker: {markerInfo}", poiAttributes);
                }
                break;

            case ELEMENT_POITYPE_TRAIL:
                var trailAttributes = AttributeBuilder.FromNanoXmlNode(pathableNode);

                var newPathTrail = new Pathables.TacOTrailPathable(trailAttributes, pathableResourceManager, rootCategory);

                if (newPathTrail.SuccessfullyLoaded)
                {
                    MarkersAndPathsModule.ModuleInstance._currentReader.RegisterPathable(newPathTrail);
                }
                else
                {
                    Logger.Warn("Failed to load trail: {trailInfo}", trailAttributes);
                }
                break;

            case ELEMENT_POITYPE_ROUTE:
                var poiNodes = pathableNode.SelectNodes("poi");

                foreach (var poiNode in poiNodes)
                {
                    UnpackPathable(poiNode, pathableResourceManager, rootCategory);
                }

                break;

            default:
                Logger.Warn("Tried to pack {pathableNodeName} as a POI!", pathableNode.Name);
                break;
            }
        }
Ejemplo n.º 2
0
        public static void UnpackPathable(XmlNode pathableNode, PathableResourceManager pathableResourceManager, PathingCategory rootCategory)
        {
            switch (pathableNode.Name.ToLower())
            {
            case ELEMENT_POITYPE_POI:
                var newPoiMarker = new Pathables.TacOMarkerPathable(pathableNode, pathableResourceManager, rootCategory);

                if (newPoiMarker.SuccessfullyLoaded)
                {
                    //Logger.Info("Marker {markerGuid} was successfully loaded!", newPoiMarker.Guid);
                    Readers.MarkerPackReader.RegisterPathable(newPoiMarker);
                }
                else
                {
                    Logger.Warn("Failed to load marker!");
                }
                break;

            case ELEMENT_POITYPE_TRAIL:
                var newPathTrail = new Pathables.TacOTrailPathable(pathableNode, pathableResourceManager, rootCategory);

                if (newPathTrail.SuccessfullyLoaded)
                {
                    //Logger.Info("Trail {trailGuid} was successfully loaded!", newPathTrail.Guid);
                    Readers.MarkerPackReader.RegisterPathable(newPathTrail);
                }
                else
                {
                    Logger.Warn("Failed to load trail!");
                }

                break;

            case ELEMENT_POITYPE_ROUTE:
                Logger.Warn("Support for routes has not been added yet. They have been skipped.");

                break;

            default:
                Logger.Warn("Tried to pack {pathableNodeName} as a POI!", pathableNode.Name);

                break;
            }
        }