示例#1
0
        public void GenerateMap()
        {
            Log.SetWorker("GenerateMap");

            Seed.seed = testSeed;
            Log.InfoSet("Seed");

            BaseGeneratorSettings set = GameSettingsProvider.GetSettings <BaseGeneratorSettings>();

            Watcher.WatchRun(() => WorldMesh.CreateWorldMesh(set.worldWidth, set.worldHeight, set.chunkWidth, set.chunkHeight), "CreateWorldMesh");
            Watcher.WatchRun(() => WorldChunkMap.CreateMap(set.worldWidth, set.worldHeight, set.chunkWidth, set.chunkHeight, chunkObject.transform.localScale), "CreateMap");

            // Voronoi > Regions > Calculate triangles
            // WaterMask > SetWater > SetCoastline > Set distances
            // Set rivers
            // Set height > Smooth height
            // Set moisture
            // Draw colors > smooth colors

            Log.ResetWorker();

            AThread thread = new AThread(generatorGraph.GetGenerateAction());

            thread.Start();
            thread.RunAfterThreadEnd(() => WorldChunkMap.CreateChunks(chunkObject, transform, true));
        }
        public void Initialize(Parachute parachute, GameSettingsProvider gameSettingsProvider)
        {
            if (!_isInitialized)
            {
                _gameSettingsProvider = gameSettingsProvider;

                _lineParent = _lineParent ?? new GameObject("Lines");
                _lineParent.transform.SetParent(this.transform);

                _lineMaterial         = Resources.Load <Material>("Parachutes/LineMaterial");
                _aerodynamicsMaterial = Resources.Load <Material>("AerodynamicsVisualizerMaterial");

                InstallParachute(parachute);

                _gameSettingChanges = _gameSettingsProvider.SettingChanges.Subscribe(settings => {
                    for (int i = 0; i < _parachute.Sections.Count; ++i)
                    {
                        _liftLines[i].Renderer.gameObject.SetActive(settings.Gameplay.VisualizeAerodynamics);
                        _dragLines[i].Renderer.gameObject.SetActive(settings.Gameplay.VisualizeAerodynamics);
                    }
                });

                _isInitialized = true;
            }
        }
示例#3
0
 public GameSettingsUpdater(GameSettingsProvider settingsProvider)
 {
     _settingsProvider  = settingsProvider;
     _initialSettings   = settingsProvider.ActiveSettings;
     _unappliedSettings = new UnappliedSettings();
     _needsRestart      = false;
 }
示例#4
0
    private static void LoadVrConfig(GameSettingsProvider gameSettingsProvider)
    {
        var vrMode = DetermineVrMode();

        Debug.Log("Booting in VrMode: " + vrMode);

        // Todo: We don't want to serialize this value, but we do want other systems to use it
        gameSettingsProvider.ActiveVrMode = vrMode;
    }
 public void GetConnectionString()
 {
     if (connection == null)
     {
         MongoTestConventions.RegisterConventions();
         connection = new TestConnectionPrivider("connection.txt");
     }
     if (gameSettingsProvider == null)
     {
         gameSettingsProvider = new GameSettingsProvider();
     }
 }
示例#6
0
        public void AttachToPilot(Wingsuit pilot, Quaternion unfoldOrientation, GameSettingsProvider gameSettingsProvider)
        {
            _pilot = pilot;

            UnityParachuteFactory.SetKinematic(this);

            Root.position  = _pilot.Torso.position;
            Root.rotation  = _pilot.Torso.rotation;
            Root.rotation *= unfoldOrientation;

            // Layout canopy to initial pre-opened deployment state
            UnityParachuteFactory.LayoutCells(this);
            UnityParachuteFactory.Relax(this);

            for (int i = 0; i < Sections.Count; i++)
            {
                var section = Sections[i];
                if (section.FrontLine == null || section.RearLine == null)
                {
                    continue;
                }
                section.BrakeLine.Joint.connectedBody = pilot.Torso;
                section.FrontLine.Joint.connectedBody = pilot.Torso;
                section.RearLine.Joint.connectedBody  = pilot.Torso;
            }

            UnityParachuteFactory.SetPhysical(this);

            if (_lineRenderer == null)
            {
                _lineRenderer = gameObject.AddComponent <ParachuteLineRenderer>();
                _lineRenderer.Initialize(this, gameSettingsProvider);
            }

            _lineRenderer.enabled = true;
        }
示例#7
0
        public OptionsMenuModel(GameSettingsProvider gameSettingsProvider, Languages languages, string appVersion,
                                Action <InputBindingViewModel> startRebind,
                                Action <InputDefaults> restoreInputToDefaults)
        {
            MenuStack = new Stack <Menu>();
            MenuStack.Push(Menu.Main);

            AppVersion              = "v" + appVersion;
            _inputBindings          = null;
            _menuState              = MenuId.StartSelection;
            _gameSettingsProvider   = gameSettingsProvider;
            _restoreInputToDefaults = restoreInputToDefaults;
            _startRebind            = startRebind;
            _gameSettingsUpdater    = new GameSettingsUpdater(gameSettingsProvider);
            AudioSettings           = new AudioSettingsViewModel(_gameSettingsUpdater);
            GraphicsSettings        = new GraphicsSettingsViewModel(_gameSettingsUpdater);
            GameplaySettings        = new GameplaySettingsViewModel(_gameSettingsUpdater);
            TimeAndWeatherSettings  = new TimeAndWeatherSettingsViewModel(_gameSettingsUpdater);
            InputSettings           = new InputSettingsViewModel(_gameSettingsUpdater);
            OtherSettings           = new OtherSettingsViewModel(_gameSettingsUpdater, languages);

            _gameSettingsProvider.SettingChanges.Subscribe(OnUpdate);
            _gameSettingsUpdater.OnUnappliedSettingsUpdated += unappliedSettings => OnUpdate();
        }