public void LoadFromLibraryWizard(string xName)
        {
            GSDRootUtil.Dir_GetLibrary_CheckSpecialDirs();
            string xPath = GSDRootUtil.Dir_GetLibrary();
            string tPath = xPath + "W/" + xName + ".gsd";
            EdgeObjectLibraryMaker ELM = (EdgeObjectLibraryMaker)GSDRootUtil.LoadXML <EdgeObjectLibraryMaker>(ref tPath);

            ELM.LoadTo(this);
            bNeedsUpdate = true;
        }
        public void LoadFromLibrary(string xName, bool bIsQuickAdd = false)
        {
            GSDRootUtil.Dir_GetLibrary_CheckSpecialDirs();
            string xPath = GSDRootUtil.Dir_GetLibrary();
            string tPath = xPath + "EOM" + xName + ".gsd";

            if (bIsQuickAdd)
            {
                tPath = xPath + "Q/EOM" + xName + ".gsd";
            }
            EdgeObjectLibraryMaker ELM = (EdgeObjectLibraryMaker)GSDRootUtil.LoadXML <EdgeObjectLibraryMaker>(ref tPath);

            ELM.LoadTo(this);
            bNeedsUpdate = true;
        }
示例#3
0
    private void LoadObjs(ref string[] tNames, ref string[] tPaths, bool bIsDefault = false)
    {
        int    tCount       = tNames.Length;
        string tPath        = "";
        string tStringPath  = "";
        string tDesc        = "";
        string tDisplayName = "";
        string ThumbString  = "";
        bool   bIsBridge    = false;

        for (int i = 0; i < tCount; i++)
        {
            bIsBridge = false;
            tPath     = tPaths[i];

            if (tWindowType == WindowTypeEnum.Extrusion)
            {
                SplinatedMeshMaker.SplinatedMeshLibraryMaker SLM = (SplinatedMeshMaker.SplinatedMeshLibraryMaker)GSDRootUtil.LoadXML <SplinatedMeshMaker.SplinatedMeshLibraryMaker>(ref tPath);
                if (SLM == null)
                {
                    continue;
                }
                tStringPath  = SLM.CurrentSplinationString;
                tDesc        = SLM.Desc;
                tDisplayName = SLM.DisplayName;
                ThumbString  = SLM.ThumbString;
                bIsBridge    = SLM.bIsBridge;
            }
            else if (tWindowType == WindowTypeEnum.Edge)
            {
                EdgeObjectMaker.EdgeObjectLibraryMaker ELM = (EdgeObjectMaker.EdgeObjectLibraryMaker)GSDRootUtil.LoadXML <EdgeObjectMaker.EdgeObjectLibraryMaker>(ref tPath);
                if (ELM == null)
                {
                    continue;
                }
                tStringPath  = ELM.EdgeObjectString;
                tDesc        = ELM.Desc;
                tDisplayName = ELM.DisplayName;
                ThumbString  = ELM.ThumbString;
                bIsBridge    = ELM.bIsBridge;
            }

            //Don't continue if bridge pieces and this is not a bridge piece:
            if (tWindowType == WindowTypeEnum.Extrusion && bIsBridge)
            {
                continue;
            }

            GSDRoadUtil.WizardObject tO = new GSDRoadUtil.WizardObject();
            try{
                tO.Thumb = (Texture2D)AssetDatabase.LoadAssetAtPath(ThumbString, typeof(Texture2D)) as Texture2D;
            }catch {
                tO.Thumb = null;
            }
            if (tO.Thumb == null)
            {
                try{
                    GameObject xObj = (GameObject)UnityEditor.AssetDatabase.LoadAssetAtPath(tStringPath, typeof(GameObject)) as GameObject;
                    tO.Thumb = AssetPreview.GetAssetPreview(xObj);
                }catch {
                    tO.Thumb = null;
                }
            }
            tO.DisplayName = tDisplayName;
            tO.FileName    = tNames[i];
            tO.FullPath    = tPath;
            tO.Desc        = tDesc;
            tO.bIsDefault  = bIsDefault;

            if (bIsDefault && tWindowType == WindowTypeEnum.Edge)
            {
                if (tO.DisplayName.Contains("GSDAtten"))
                {
                    tO.DisplayName = "Attenuator";
                    tO.Desc        = "Standard double WBeam with impact absorption.";
                }
                else if (tO.DisplayName.Contains("GSDGreenBlinder"))
                {
                    tO.DisplayName = "KRail Blinder";
                    tO.Desc        = "Best results when placed on KRail for KRail blinders.";
                    tO.sortID      = 5;
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrelStatic"))
                {
                    tO.DisplayName = "Sand Barrel Static";
                    tO.Desc        = "One static sand barrel. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrelRigid"))
                {
                    tO.DisplayName = "Sand Barrel Rigid";
                    tO.Desc        = "One rigid sand barrel. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrel3Static"))
                {
                    tO.DisplayName = "Sand Barrels Static 3";
                    tO.Desc        = "Three static sand barrels in a line. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrel3Rigid"))
                {
                    tO.DisplayName = "Sand Barrels Rigid 3";
                    tO.Desc        = "Three rigid sand barrels in a line. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrel7Static"))
                {
                    tO.DisplayName = "Sand Barrels Static 7";
                    tO.Desc        = "Seven static sand barrels in standard formation. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadBarrel7Rigid"))
                {
                    tO.DisplayName = "Sand Barrel Rigid 7";
                    tO.Desc        = "Seven rigid sand barrels in standard formation. Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDRoadConBarrelStatic"))
                {
                    tO.DisplayName = "Con Barrels Static";
                    tO.Desc        = "Static road construction barrels.";
                    tO.sortID      = 3;
                }
                else if (tO.DisplayName.Contains("GSDRoadConBarrelRigid"))
                {
                    tO.DisplayName = "Con Barrels Rigid";
                    tO.Desc        = "Rigid road construction barrels.";
                    tO.sortID      = 3;
                }
                else if (tO.DisplayName.Contains("GSDTrafficConeStatic"))
                {
                    tO.DisplayName = "Traffic cones Static";
                    tO.Desc        = "Static traffic cones.";
                    tO.sortID      = 4;
                }
                else if (tO.DisplayName.Contains("GSDTrafficConeRigid"))
                {
                    tO.DisplayName = "Traffic cones Rigid";
                    tO.Desc        = "Rigid traffic cones.";
                    tO.sortID      = 4;
                }
                else if (tO.DisplayName.Contains("GSDRoadReflector"))
                {
                    tO.DisplayName = "Road reflectors";
                    tO.Desc        = "Placed one center line of road for center line reflection.";
                    tO.sortID      = 4;
                }
                else if (tO.DisplayName.Contains("GSDStopSign"))
                {
                    tO.DisplayName = "Stop sign";
                    tO.Desc        = "Standard specification non-interstate stop sign.";
                }
                else if (tO.DisplayName.Contains("GSDStreetLightSingle"))
                {
                    tO.DisplayName = "Streetlight Singlesided";
                    tO.Desc        = "Best used on side of roads.";
                }
                else if (tO.DisplayName.Contains("GSDStreetLightDouble"))
                {
                    tO.DisplayName = "Streetlight Doublesided";
                    tO.Desc        = "Best results when embedded in KRail in centerline of road.";
                }
                else if (tO.DisplayName.Contains("GSDWarningSign1"))
                {
                    tO.DisplayName = "Warning Sign #1";
                    tO.Desc        = "Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDWarningSign2"))
                {
                    tO.DisplayName = "Warning Sign #2";
                    tO.Desc        = "Best results when placed in front of railings or bridges.";
                }
                else if (tO.DisplayName.Contains("GSDSignRightTurnOnly"))
                {
                    tO.DisplayName = "Right turn only";
                    tO.Desc        = "Best results when placed near intersection right turn lane.";
                    tO.sortID      = 4;
                }

                else if (tO.DisplayName.Contains("GSDSign330"))
                {
                    tO.DisplayName = "Signs 330";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-330\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign396"))
                {
                    tO.DisplayName = "Signs 396";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-396\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign617-Small"))
                {
                    tO.DisplayName = "Signs 617 small";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-617\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign617"))
                {
                    tO.DisplayName = "Signs 617";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-617\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign861-Small"))
                {
                    tO.DisplayName = "Signs 861 small";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-861\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign861"))
                {
                    tO.DisplayName = "Sign type 861";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-861\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign988-Small"))
                {
                    tO.DisplayName = "Signs 988 small";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-988\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSign988"))
                {
                    tO.DisplayName = "Signs 988";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-988\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSignDiamond"))
                {
                    tO.DisplayName = "Signs diamond";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-diamond\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSignSquare-Small"))
                {
                    tO.DisplayName = "Signs square small";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-Square\" as the search term.";
                    tO.sortID      = 21;
                }
                else if (tO.DisplayName.Contains("GSDSignSquare"))
                {
                    tO.DisplayName = "Signs square";
                    tO.Desc        = "Interchangeable materials, use \"GSDFedSign-Square\" as the search term.";
                    tO.sortID      = 21;
                }
            }

            if (bIsDefault && tWindowType == WindowTypeEnum.Extrusion)
            {
                if (tO.DisplayName.Contains("GSDKRail"))
                {
                    tO.DisplayName = "KRail";
                    tO.Desc        = "Federal spec cement KRailing (also known as Jersey Barriers). Variant with down ends.";
                }
                else if (tO.DisplayName.Contains("GSDKRailCurvedR"))
                {
                    tO.DisplayName = "KRail Curved Right";
                    tO.Desc        = "Federal spec cement KRailing (also known as Jersey Barriers). Variant with curved ends for right shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDKRailCurvedL"))
                {
                    tO.DisplayName = "KRail Curved Left";
                    tO.Desc        = "Federal spec cement KRailing (also known as Jersey Barriers). Variant with curved ends for left shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDWBeam1R"))
                {
                    tO.DisplayName = "WBeam Wood Right";
                    tO.Desc        = "Federal spec wooden pole WBeam railing. Best used as outer shoulder railing. Right shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDWBeam1L"))
                {
                    tO.DisplayName = "WBeam Wood Left";
                    tO.Desc        = "Federal spec wooden pole WBeam railing. Best used as outer shoulder railing. Left shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDWBeam2R"))
                {
                    tO.DisplayName = "WBeam Metal Right";
                    tO.Desc        = "Federal spec metal pole WBeam railing. Best used as outer shoulder railing. Right shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDWBeam2L"))
                {
                    tO.DisplayName = "WBeam Metal Left";
                    tO.Desc        = "Federal spec metal pole WBeam railing. Best used as outer shoulder railing. Left shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDRailing1"))
                {
                    tO.DisplayName = "Railing #1";
                    tO.Desc        = "Standard double square pole railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing2"))
                {
                    tO.DisplayName = "Railing #2";
                    tO.Desc        = "Standard concrete big block railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing3"))
                {
                    tO.DisplayName = "Railing #3";
                    tO.Desc        = "Standard four-strand metal railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing5"))
                {
                    tO.DisplayName = "Railing #5";
                    tO.Desc        = "Basic concrete railing with pylons.";
                }
                else if (tO.DisplayName.Contains("GSDRailing6"))
                {
                    tO.DisplayName = "Railing #6";
                    tO.Desc        = "Standard two-strand metal pole railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing7"))
                {
                    tO.DisplayName = "Railing #7";
                    tO.Desc        = "Rock-decorated concrete railing with pylons and double strand rusted look metal railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing8"))
                {
                    tO.DisplayName = "Railing #8";
                    tO.Desc        = "Rock-decorated concrete railing with standard single pole metal railing.";
                }
                else if (tO.DisplayName.Contains("GSDRailing9"))
                {
                    tO.DisplayName = "Railing #9";
                    tO.Desc        = "Very low poly railing used for mobile.";
                }
                else if (tO.DisplayName.Contains("GSDSidewalk"))
                {
                    tO.DisplayName = "Sidewalk";
                    tO.Desc        = "Sidewalk.";
                }
                else if (tO.DisplayName.Contains("GSDRumbleStrip"))
                {
                    tO.DisplayName = "Rumblestrip";
                    tO.Desc        = "State spec rumblestrip. For best results place several cm from road edge into shoulder.";
                }
                else if (tO.DisplayName.Contains("GSDRailing4R"))
                {
                    tO.DisplayName = "Railing #4 Right";
                    tO.Desc        = "Three bar angled pole railing. Right side of road.";
                }
                else if (tO.DisplayName.Contains("GSDRailing4L"))
                {
                    tO.DisplayName = "Railing #4 Left";
                    tO.Desc        = "Three bar angled pole railing. Left side of road.";
                }
                else if (tO.DisplayName.Contains("GSDRailing4-LightR"))
                {
                    tO.DisplayName = "Railing #4 Light Right";
                    tO.Desc        = "Three bar angled pole railing. Right side of road. Light version with fewer triangle count.";
                }
                else if (tO.DisplayName.Contains("GSDRailing4-LightL"))
                {
                    tO.DisplayName = "Railing #4 Light Left";
                    tO.Desc        = "Three bar angled pole railing. Left side of road. Light version with fewer triangle count.";
                }
                else if (tO.DisplayName.Contains("GSDRailingBase1"))
                {
                    tO.DisplayName = "Railing base #1";
                    tO.Desc        = "Use as a base on other railings to create more detail.";
                }
                else if (tO.DisplayName.Contains("GSDRailingBase2"))
                {
                    tO.DisplayName = "Railing base #2";
                    tO.Desc        = "Use as a base on other railings to create more detail.";
                }
                else if (tO.DisplayName.Contains("GSDCableBarrier-Light"))
                {
                    tO.DisplayName = "Cable barrier 10m";
                    tO.Desc        = "Cable barrier 10m light triangle version. Best used as center divider or as railing barriers.";
                    tO.sortID      = 20;
                }
                else if (tO.DisplayName.Contains("GSDCableBarrier"))
                {
                    tO.DisplayName = "Cable barrier 5m";
                    tO.Desc        = "Cable barrier 5m. Best used as center divider or as railing barriers.";
                    tO.sortID      = 20;
                }
            }

            oList.Add(tO);
        }
        oListSort();
    }