예제 #1
0
        internal static void ProfileConverter()
        {
            PreviousConfig previousConfig;
            CameraConfig   cameraConfig;

            if (!Directory.Exists(previousPath))
            {
                return;
            }

            if (!Directory.Exists(profilePath))
            {
                Directory.CreateDirectory(profilePath);
            }

            if (!Directory.Exists(backupPath))
            {
                Directory.CreateDirectory(backupPath);
            }

            DirectoryInfo dir = new DirectoryInfo(previousPath);

            foreach (var dirInfo in dir.GetDirectories())
            {
                if (!Directory.Exists(Path.Combine(backupPath, dirInfo.Name)))
                {
                    foreach (FileInfo fi in dirInfo.GetFiles("*.cfg"))
                    {
                        previousConfig = new PreviousConfig(fi.FullName);
                        cameraConfig   = PreviousConfigToCameraConfig(previousConfig,
                                                                      Path.Combine(profilePath, dirInfo.Name,
                                                                                   $"{fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length)}.json"));
                    }
                    Logger.log.Notice($"Profile Convert : {dirInfo.Name}");
                    if (!Directory.Exists(Path.Combine(backupPath, dirInfo.Name)))
                    {
                        CameraUtilities.DirectoryCopy(dirInfo.FullName, Path.Combine(backupPath, dirInfo.Name), true);
                        DirecrtoryDelete(dirInfo.FullName);
                    }
                }
            }
        }
예제 #2
0
        internal static void DefaultConfigConverter()
        {
            PreviousConfig pc;
            CameraConfig   cc;
            DirectoryInfo  dirInfo = new DirectoryInfo(Path.Combine(UnityGame.UserDataPath, Plugin.Name));

            foreach (FileInfo fi in dirInfo.GetFiles("*.cfg"))
            {
                if (!Directory.Exists(backupPath))
                {
                    Directory.CreateDirectory(backupPath);
                }

                pc = new PreviousConfig(fi.FullName);
                cc = PreviousConfigToCameraConfig(pc,
                                                  Path.Combine(UnityGame.UserDataPath, Plugin.Name,
                                                               $"{fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length)}.json"));
                File.Copy(fi.FullName, Path.Combine(backupPath, fi.Name), true);
                File.Delete(fi.FullName);
                Logger.log.Notice($"Profile Convert : {fi.Name}");
            }
        }
예제 #3
0
        internal static CameraConfig PreviousConfigToCameraConfig(PreviousConfig cfg, string CameraConfigPath)
        {
            CameraConfig config = new CameraConfig(CameraConfigPath);

            config.thirdPerson  = cfg.thirdPerson;
            config.fov          = cfg.fov;
            config.layer        = cfg.layer;
            config.antiAliasing = cfg.antiAliasing;
            config.renderScale  = cfg.renderScale;

            config.fitToCanvas  = cfg.fitToCanvas;
            config.screenPosX   = cfg.screenPosX;
            config.screenPosY   = cfg.screenPosY;
            config.screenWidth  = cfg.screenWidth;
            config.screenHeight = cfg.screenHeight;

            config.Position = new Vector3(cfg.posx, cfg.posy, cfg.posz);
            config.Rotation = new Vector3(cfg.angx, cfg.angy, cfg.angz);
            config.FirstPersonPositionOffset = new Vector3(cfg.firstPersonPosOffsetX, cfg.firstPersonPosOffsetY, cfg.firstPersonPosOffsetZ);
            config.FirstPersonRotationOffset = new Vector3(cfg.firstPersonRotOffsetX, cfg.firstPersonRotOffsetY, cfg.firstPersonRotOffsetZ);
            config.TurnToHeadOffset          = new Vector3(cfg.turnToHeadOffsetX, cfg.turnToHeadOffsetY, cfg.turnToHeadOffsetZ);

            config.layerSetting.previewCamera = cfg.showThirdPersonCamera;
            config.layerSetting.avatar        = cfg.avatar;
            config.layerSetting.ui            = !cfg.HideUI;
            config.layerSetting.wall          = !cfg.transparentWalls;
            config.layerSetting.wallFrame     = cfg.WallFrame;
            config.layerSetting.saber         = cfg.Saber;
            config.layerSetting.notes         = cfg.Notes;
            if (cfg.debri == "link")
            {
                config.Debris = DebriVisibility.Link;
            }
            else if (cfg.debri == "show")
            {
                config.Debris = DebriVisibility.Visible;
            }
            else
            {
                config.Debris = DebriVisibility.Hidden;
            }

            config.movementScript.movementScript     = Path.GetFileName(cfg.movementScriptPath);
            config.movementScript.useAudioSync       = cfg.movementAudioSync;
            config.movementScript.songSpecificScript = cfg.songSpecificScript;

            config.multiplayer.targetPlayerNumber = cfg.MultiPlayerNumber;
            config.multiplayer.displayPlayerInfo  = cfg.DisplayMultiPlayerNameInfo;

            config.cameraExtensions.positionSmooth                = cfg.positionSmooth;
            config.cameraExtensions.rotationSmooth                = cfg.rotationSmooth;
            config.cameraExtensions.rotation360Smooth             = cfg.cam360Smoothness;
            config.cameraExtensions.firstPersonCameraForceUpRight = cfg.forceFirstPersonUpRight;
            config.cameraExtensions.follow360map = cfg.use360Camera;
            config.cameraExtensions.follow360mapUseLegacyProcess = !cfg.cam360RotateControlNew;
            config.cameraExtensions.followNoodlePlayerTrack      = cfg.NoodleTrack;
            config.cameraExtensions.turnToHead = cfg.turnToHead;

            if (cfg.VMCProtocolMode == "sender")
            {
                config.vmcProtocol.mode = VMCProtocolMode.Sender;
            }
            else if (cfg.VMCProtocolMode == "receiver")
            {
                config.vmcProtocol.mode = VMCProtocolMode.Receiver;
            }
            else
            {
                config.vmcProtocol.mode = VMCProtocolMode.Disable;
            }
            config.vmcProtocol.address = cfg.VMCProtocolAddress;
            config.vmcProtocol.port    = cfg.VMCProtocolPort;

            config.cameraLock.lockScreen   = cfg.LockScreen;
            config.cameraLock.lockCamera   = cfg.LockCamera;
            config.cameraLock.dontSaveDrag = cfg.LockCameraDrag;
            config.Save();
            return(config);
        }