Exemplo n.º 1
0
    /// <summary>
    /// Handles when the user presses the START button.
    /// </summary>
    private void HandleStart()
    {
        this.HandleUnpause();
        if (this.simulationMode != SimulationMode.UserProgram)
        {
            if (this.pythonInterface.ConnectedPrograms.Length > 0)
            {
                this.simulationMode = SimulationMode.UserProgram;
                this.pythonInterface.HandleStart();
                this.screenManager.UpdateMode(this.simulationMode);

                if (this.startTime == 0)
                {
                    this.startTime = Time.time;
                }

                if (LevelManager.LevelManagerMode == LevelManagerMode.Autograder)
                {
                    this.screenManager.ShowMessage(string.Empty, Color.white);
                    this.autograderManager.HandleStart((IAutograderHud)this.screenManager);
                }
            }
            else
            {
                this.screenManager.ShowWarning("You must connect a Python program before entering User Program mode.");
            }
        }
    }
 void DrawStartSimulationMode()
 {
     if (GUILayout.Button("Start Simulation"))
     {
         SimulationMode.StartSimulationMode();
     }
 }
Exemplo n.º 3
0
    public static void CursorSendInput(IntPtr wndHandle, SimulationMode mode, DesktopPortalController.ClickAPI api, Point clickPoint, int delta)
    {
        Point  oldPos;
        IntPtr lPrm;

        switch (api)
        {
        case DesktopPortalController.ClickAPI.None:
            break;

        case DesktopPortalController.ClickAPI.SendInput:
            SendInput(mode, delta, clickPoint);
            break;

        case DesktopPortalController.ClickAPI.SendMessage:
            lPrm = GetLParam(wndHandle, clickPoint, out oldPos);
            SendMessage(wndHandle, mode, lPrm, delta);
            Cursor.Position = oldPos;
            break;

        case DesktopPortalController.ClickAPI.SendNotifyMessage:
            lPrm = GetLParam(wndHandle, clickPoint, out oldPos);
            SendNotifyMessage(wndHandle, mode, lPrm, delta);
            Cursor.Position = oldPos;
            break;

        default:
            throw new ArgumentOutOfRangeException("api", api, null);
        }
    }
        async Task <IActionResult> PlayAsync(ControlPanelViewModel viewModel, SimulationMode mode)
        {
            if (!viewModel.IsVerifiedInput)
            {
                return(await ControlPanel(new ControlPanelViewModel { State = "Warning" }));
            }

            switch (_simulator.SimulationState)
            {
            case SimulationState.Playing:
            case SimulationState.Paused:
                return(await Error(
                           "Error! Simulator is not READY to play another simulation.\nAnother simulation is in progress."));

            case SimulationState.Stopped:
                return(await Error(
                           "Error! Simulator is not READY to play another simulation.\nPlease reset the current simulation data."));

            case SimulationState.Ready:
                _simulator.SimulationMode = mode;
                await _simulator.PlayAsync();

                return(RedirectToAction("ControlPanel"));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 5
0
    private static void SendNotifyMessage(IntPtr wndHandle, SimulationMode mode, IntPtr lParam)
    {
        switch (mode)
        {
        case SimulationMode.LeftClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONDOWN, (UIntPtr)1, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.RightClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_RBUTTONDOWN, (UIntPtr)2, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_RBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.DoubleClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONDBLCLK, (UIntPtr)1, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.MiddleClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MBUTTONDOWN, (UIntPtr)10, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MBUTTONUP, UIntPtr.Zero, lParam);
            break;

        default:
            throw new ArgumentOutOfRangeException("mode", mode, null);
        }
    }
Exemplo n.º 6
0
        /// <summary>
        /// Startet ein neues Spiel
        /// </summary>
        /// <param name="mode">Simulationsmodus</param>
        public void NewGame(SimulationMode mode)
        {
            World = new World();
            Mode  = mode;
            int nextId = World.NextId;

            World.Areas.AddRange(MapLoader.LoadAll(ref nextId));
            World.NextId = nextId;

            // Quests erstellen
            Quest quest = new Quest()
            {
                Name = "Heidis Quest",
            };

            World.Quests.Add(quest);

            quest.QuestProgresses.Add(new QuestProgress()
            {
                Id = "search", Description = "Gehe auf die Suche nach der goldenen Muenze"
            });
            quest.QuestProgresses.Add(new QuestProgress()
            {
                Id = "return", Description = "Bring die Muenze zurueck"
            });
            quest.QuestProgresses.Add(new QuestProgress()
            {
                Id = "success", Description = "Das Dorf wird dir ewig dankbar sein"
            });
            quest.QuestProgresses.Add(new QuestProgress()
            {
                Id = "fail", Description = "Die Muenze ist fuer immer verloren"
            });
        }
 private void buttonSimulate_Click(object sender, EventArgs e)
 {
     if (simulationMode != SimulationMode.complete)
     {
         refreshDataGrids();
         simulationMode = SimulationMode.complete;
     }
 }
Exemplo n.º 8
0
 public void SetSimulationMode(SimulationMode newMode)
 {
     if (newMode != Mode)
     {
         Mode    = newMode;
         IsDirty = true;
     }
 }
 public void Update()
 {
     SimulationMode.BundleName = PathUtility.GetRelativePath(this.managementPlugin.SelectedDirectory, this.settingsPlugin.settings.gameDefinitionDirectoryPath);
     if (!Application.isPlaying)
     {
         SimulationMode.StopSimulationMode();
     }
 }
 public void ResetSession()
 {
     operatorName   = "";
     totalAttempts  = 0;
     totalSeconds   = 0;
     totalErrors    = 0;
     simulationMode = SimulationMode.Automatic;
 }
        private SimulationMetaData createFor(Simulation simulation, SimulationMode simulationMode)
        {
            var simDeta = new SimulationMetaData {
                SimulationMode = simulationMode
            };

            updateSimulationProperties(simulation, simDeta);
            return(simDeta);
        }
 private void buttonStep_Click(object sender, EventArgs e)
 {
     if (simulationMode != SimulationMode.oneStep)
     {
         refreshDataGrids();
         simulationMode = SimulationMode.oneStep;
     }
     Step();
 }
        static void VerifyActivityExecuteSimulationCount(DsfDataObject dataObject, SimulationMode simulationMode, int expectedCount)
        {
            var activity = new Mock <TestActivityAbstract>();

            activity.Object.SimulationMode = simulationMode;
            activity.Protected().Setup("OnExecuteSimulation", ItExpr.IsAny <NativeActivityContext>()).Verifiable();

            Run(activity.Object, dataObject,
                () => activity.Protected().Verify("OnExecuteSimulation", Times.Exactly(expectedCount), ItExpr.IsAny <NativeActivityContext>()));
        }
Exemplo n.º 14
0
 public FakeServer(SimulationMode mode)
 {
     _listener = new TcpListener(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 0));
     _listener.Start();
     if (mode != SimulationMode.ConnectError)
     {
         _loop = ListenLoop();
     }
     _mode = mode;
 }
Exemplo n.º 15
0
 public Simulator()
 {
     this.intervals         = new IntervalList();
     this.inputSeries       = new DataSeriesList();
     this.simulationMode    = SimulationMode.MaxSpeed;
     this.speedMultiplier   = 1.0;
     this.doWork            = false;
     this.doPause           = false;
     this.step              = 0;
     this.stepEnabled       = false;
     this.objectsInInterval = 0;
     this.state             = SimulatorState.Stopped;
 }
Exemplo n.º 16
0
        /// <summary>
        /// Switch between Simulation mode (Distributed and Centralized)
        /// </summary>
        /// <param name="simulationMode">Simulation mode enum</param>
        public void SetSimulationMode(SimulationMode simulationMode)
        {
            switch (simulationMode)
            {
            case SimulationMode.Centralized:
                SwitchOnCentralizedMode();
                break;

            case SimulationMode.Distributed:

                SwitchOnDistributedMode();
                break;
            }
        }
Exemplo n.º 17
0
 private void buttonStep_Click(object sender, EventArgs e)
 {
     if (simulationManager.schedulers.Count == 0)
     {
         MessageBox.Show("There are no schedulers. Please add schedulers.");
         return;
     }
     if (simulationMode != SimulationMode.oneStep)
     {
         refreshStepDataGrid();
         simulationMode = SimulationMode.oneStep;
     }
     Step();
 }
Exemplo n.º 18
0
        private Simulation simulationFrom(SimulationMode simulationMode)
        {
            switch (simulationMode)
            {
            case SimulationMode.Individual:
                return(new IndividualSimulation());

            case SimulationMode.Population:
                return(new PopulationSimulation());

            default:
                throw new ArgumentOutOfRangeException("simulationMode");
            }
        }
Exemplo n.º 19
0
    private void Awake()
    {
        // If the level info has a negative build index, it was never set, meaning we did not start from the main menu
        // Thus, we should return directly to the main menu
        if (LevelManager.LevelInfo.BuildIndex < 0)
        {
            SceneManager.LoadScene(LevelCollection.MainMenuBuildIndex, LoadSceneMode.Single);
        }

        LevelManager.instance = this;
        this.simulationMode   = LevelManager.LevelManagerMode == LevelManagerMode.Exploration ? SimulationMode.DefaultDrive : SimulationMode.Wait;

        this.raceCameras = this.GetComponentsInChildrenOrdered <Camera>();
    }
Exemplo n.º 20
0
    private void LoadMode(int mode)
    {
        if (mode == 0)
        {
            simulationMode = SimulationMode.Pathfinding;

            isAcceptingPathfindingInput = true;
            pathfinder.SelectHeuristicWeight(0);
            pathfindingAgent.gameObject.SetActive(true);
            pathfindingAgent.Initialize_PathfindingAgent(cellGrid, pathfinder);
            pathfindingAgent.PlaceOnGrid(cellGrid.GetCell(12, 12));
            pathfindingAgent.movementMode = MovementMode.Pathing;
            agentManager.agents.Add(pathfindingAgent);

            pathfinderButtonObject.SetActive(true);
            TogglePanel_Pathfinder(true);
        }
        else if (mode == 1)
        {
            simulationMode           = SimulationMode.Steering;
            isAcceptingSteeringInput = true;
            boidManager.gameObject.SetActive(true);
            boidManager.Initialize(cellGrid);
            //boidManager.ToggleBoids();
            boidManager.CreateBoids(15);
            boidManager.ToggleVisualization_Steering(true);
            boidManager.ToggleVisualization_Velocity(true);
            boidManager.ChangeMode_SeekAndSeperation();

            boidManagerButtonObject.SetActive(true);
            TogglePanel_BoidManager(true);
        }
        else if (mode == 2)
        {
            simulationMode = SimulationMode.Ecosystem;

            biome.SpawnPlants(100);
            biome.isSpawningNewPlants = true;
            biome.AdjustPlantSpawnRate(0f);

            agentManager.CreateAgents(5);
            agentManager.isSelectionEnabled = true;

            ecosystemManagerButtonObject.SetActive(true);
            TogglePanel_EcosystemManager(true);
            influenceMapManager.TogglePopulationMapOptions(false);
            selectedAgentButtonObject.SetActive(true);
        }
    }
Exemplo n.º 21
0
 public Simulator()
 {
     this.Intervals         = new IntervalList();
     this.InputSeries       = new DataSeriesList();
     this.simulationMode    = SimulationMode.MaxSpeed;
     this.speedMultiplier   = 1.0;
     this.SmCegm8IIv        = false;
     this.paused            = false;
     this.step              = 0;
     this.StepEnabled       = false;
     this.ObjectsInInterval = 0;
     this.CurrentState      = SimulatorState.Stopped;
     this.XyXefUib4X        = new MemorySeries <SimpleDataObject>("what");
     this.UseReversedArray  = false;
 }
Exemplo n.º 22
0
    void Update()
    {
        var mode = SimulationMode.getCurrentMode();

        if ((mode.type == SimulationMode.ModeType.Color) ||
            (mode.type == SimulationMode.ModeType.PositionAndColor))
        {
            float indexAdd = 0.0123f * (float)spawnIndex;
            var   delta    = new float3(math.cos(mode.time + indexAdd),
                                        math.sin(mode.time + indexAdd), 0) * mode.deltaTime;

            m_currentColor = m_currentColor + new Color(delta.x, delta.y, delta.z);
            m_renderer.material.SetColor("_Color", m_currentColor);
        }
    }
Exemplo n.º 23
0
    private static void SendNotifyMessage(IntPtr wndHandle, SimulationMode mode, IntPtr lParam, int delta)
    {
        switch (mode)
        {
        case SimulationMode.LeftClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONDOWN, (UIntPtr)1, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.RightClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_RBUTTONDOWN, (UIntPtr)2, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_RBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.DoubleClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONDBLCLK, (UIntPtr)1, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_LBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.MiddleClick:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MBUTTONDOWN, (UIntPtr)10, lParam);
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MBUTTONUP, UIntPtr.Zero, lParam);
            break;

        case SimulationMode.ScrollH:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MOUSEHWHEEL, (UIntPtr)((delta * 60) << 16), lParam);
            break;

        case SimulationMode.ScrollV:
            SendNotifyMessage(wndHandle, (uint)MouseEvents.WM_MOUSEWHEEL, (UIntPtr)((delta * 60) << 16), lParam);
            break;

        case SimulationMode.LeftDownAbs:
            break;

        case SimulationMode.LeftDown:
            break;

        case SimulationMode.LeftMove:
            break;

        case SimulationMode.LeftUp:
            break;

        default:
            throw new ArgumentOutOfRangeException("mode", mode, null);
        }
    }
Exemplo n.º 24
0
 /// <summary>
 /// Handles when the user presses the BACK button.
 /// </summary>
 private void HandleBack()
 {
     if (LevelManager.LevelManagerMode == LevelManagerMode.Race)
     {
         this.TogglePause();
     }
     else if (this.simulationMode == SimulationMode.UserProgram)
     {
         this.simulationMode = SimulationMode.DefaultDrive;
         foreach (Racecar player in this.players)
         {
             player.DefaultDriveStart();
         }
         this.screenManager.UpdateMode(this.simulationMode);
     }
 }
Exemplo n.º 25
0
 private void btnWaveMode_Click(object sender, RoutedEventArgs e)
 {
     if (isWaveMode == false)
     {
         isWaveMode          = true;
         simulationMode      = SimulationMode.wave;
         btnWaveMode.Content = "Simple mode";
     }
     else
     {
         isWaveMode          = false;
         simulationMode      = SimulationMode.simple;
         btnWaveMode.Content = "Wave mode";
         ResetColoring();
     }
 }
        /// <summary>
        /// Startet ein neues Spiel
        /// </summary>
        /// <param name="mode">Simulationsmodus</param>
        public void NewGame(SimulationMode mode)
        {
            World = new World();
            Mode = mode;
            int nextId = World.NextId;
            World.Areas.AddRange(MapLoader.LoadAll(ref nextId));
            World.NextId = nextId;

            // Quests erstellen
            Quest quest = new Quest()
            {
                Name = "Heidis Quest",
            };
            World.Quests.Add(quest);

            quest.QuestProgresses.Add(new QuestProgress() { Id = "search", Description = "Gehe auf die Suche nach der goldenen Muenze" });
            quest.QuestProgresses.Add(new QuestProgress() { Id = "return", Description = "Bring die Muenze zurueck" });
            quest.QuestProgresses.Add(new QuestProgress() { Id = "success", Description = "Das Dorf wird dir ewig dankbar sein" });
            quest.QuestProgresses.Add(new QuestProgress() { Id = "fail", Description = "Die Muenze ist fuer immer verloren" });
        }
Exemplo n.º 27
0
    public static Checklist Get(SimulationMode mode)
    {
        switch (mode)
        {
        case SimulationMode.Automatic:
        {
            return(new AutomaticChecklist());
        }

        case SimulationMode.Manual:
        {
            return(new ManualChecklist());
        }

        default:
        {
            return(new AutomaticChecklist());
        }
        }
    }
Exemplo n.º 28
0
    public static ChecklistValidator GetValidator(SimulationMode mode, Checklist checklist)
    {
        switch (mode)
        {
        case SimulationMode.Automatic:
        {
            return(new AutomaticChecklistValidator(checklist));
        }

        case SimulationMode.Manual:
        {
            return(new ManualChecklistValidator(checklist));
        }

        default:
        {
            return(new AutomaticChecklistValidator(checklist));
        }
        }
    }
Exemplo n.º 29
0
    // Update is called once per frame
    void Update()
    {
        var mode = SimulationMode.getCurrentMode();

        if ((mode.type == SimulationMode.ModeType.Position) ||
            (mode.type == SimulationMode.ModeType.PositionAndColor))
        {
            float indexAdd = 0.00123f * (float)spawnIndex;

            int y   = spawnIndex / height;
            int x   = spawnIndex - (y * height);
            var pos = new float4(
                x,
                math.sin(mode.time + indexAdd) * 4.0f,
                y,
                1);

            transform.position = new Vector3(pos.x, pos.y, pos.z);
        }
    }
Exemplo n.º 30
0
    // Update is called once per frame
    void Update()
    {
        var mode = SimulationMode.getCurrentMode();

        if (mode.type == SimulationMode.ModeType.None)
        {
            GetComponent <TextMesh>().text = "MODE: Nothing";
        }
        if (mode.type == SimulationMode.ModeType.Color)
        {
            GetComponent <TextMesh>().text = "MODE: Update Color";
        }
        if (mode.type == SimulationMode.ModeType.Position)
        {
            GetComponent <TextMesh>().text = "MODE: Update Position";
        }
        if (mode.type == SimulationMode.ModeType.PositionAndColor)
        {
            GetComponent <TextMesh>().text = "MODE: Update Color and Position";
        }
    }
Exemplo n.º 31
0
    protected override void OnUpdate()
    {
        var mode = SimulationMode.getCurrentMode();

        switch (mode.type)
        {
        case SimulationMode.ModeType.Color:
            AnimateColors(mode);
            break;

        case SimulationMode.ModeType.Position:
            AnimatePositions(mode);
            break;

        case SimulationMode.ModeType.PositionAndColor:
            AnimateColors(mode);
            AnimatePositions(mode);
            break;

        default:
            break;
        }
    }
 /// <summary>
 /// Beendet das aktuelle Spiel.
 /// </summary>
 public void CloseGame()
 {
     World = null;
     Mode = SimulationMode.None;
 }
Exemplo n.º 33
0
		public Simulator()
		{
			this.Intervals = new IntervalList();
			this.InputSeries = new DataSeriesList();
			this.simulationMode = SimulationMode.MaxSpeed;
			this.speedMultiplier = 1.0;
			this.SmCegm8IIv = false;
			this.paused = false;
			this.step = 0;
			this.StepEnabled = false;
			this.ObjectsInInterval = 0;
			this.CurrentState = SimulatorState.Stopped;
			this.XyXefUib4X = new MemorySeries<SimpleDataObject>("what");
			this.UseReversedArray = false;
		}