Exemplo n.º 1
0
 public void InvokeOnBurst(object a_sender, Vector3EventArgs a_1vector3EventArgs, NumberEventArgs a_2numberEventArgs)
 {
     if (OnBurst != null)
     {
         OnBurst.Invoke(a_sender, a_1vector3EventArgs, a_2numberEventArgs);
     }
 }
Exemplo n.º 2
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            GraphicsDevice gd = new GraphicsDevice("Pathfinding Test Program",
                                                   FeatureLevel.Level_11_0, 0.1f, 3000f);

            PathingForm pathForm = new PathingForm();

            //set title of progress window
            SharedForms.ShaderCompileHelper.mTitle = "Compiling Shaders...";

            //save renderform position
            gd.RendForm.DataBindings.Add(new Binding("Location",
                                                     Properties.Settings.Default, "MainWindowPos", true,
                                                     DataSourceUpdateMode.OnPropertyChanged));
            pathForm.DataBindings.Add(new Binding("Location",
                                                  Properties.Settings.Default, "PathWindowPos", true,
                                                  DataSourceUpdateMode.OnPropertyChanged));

            gd.RendForm.Location = Properties.Settings.Default.MainWindowPos;
            pathForm.Location    = Properties.Settings.Default.PathWindowPos;

            int borderWidth  = gd.RendForm.Size.Width - gd.RendForm.ClientSize.Width;
            int borderHeight = gd.RendForm.Size.Height - gd.RendForm.ClientSize.Height;

            gd.RendForm.Location = Properties.Settings.Default.MainWindowPos;
            gd.RendForm.Size     = new System.Drawing.Size(
                1280 + borderWidth,
                720 + borderHeight);

            gd.CheckResize();

            PlayerSteering pSteering    = SetUpSteering();
            Input          inp          = SetUpInput();
            Random         rand         = new Random();
            bool           bMouseLookOn = false;

            EventHandler actHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { inp.ClearInputs(); });

            EventHandler <EventArgs> deActHandler = new EventHandler <EventArgs>(
                delegate(object s, EventArgs ea)
            {
                gd.SetCapture(false);
                bMouseLookOn = false;
            });

            gd.RendForm.Activated      += actHandler;
            gd.RendForm.AppDeactivated += deActHandler;

            MapStuff mapStuff = new MapStuff(gd, ".");

            EventHandler pickedAHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { Vector3EventArgs v3ea = ea as Vector3EventArgs;
                  pathForm.SetCoordA(v3ea.mVector);
                  pathForm.SetNodeA((int)s); });
            EventHandler pickedBHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { Vector3EventArgs v3ea = ea as Vector3EventArgs;
                  pathForm.SetCoordB(v3ea.mVector);
                  pathForm.SetNodeB((int)s); });
            EventHandler pickReadyHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { pathForm.SetPickReady((bool)s); });

            mapStuff.ePickedA   += pickedAHandler;
            mapStuff.ePickedB   += pickedBHandler;
            mapStuff.ePickReady += pickReadyHandler;

            EventHandler genHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.GeneratePathing(pathForm.GetGridSize(), (float)s); });
            EventHandler loadHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.LoadPathing(s as string); });
            EventHandler saveHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.SavePathing(s as string); });
            EventHandler pickAHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.PickA();
                  gd.RendForm.Focus(); });
            EventHandler pickBHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.PickB();
                  gd.RendForm.Focus(); });
            EventHandler pickBlockedHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.PickBlocked();
                  gd.RendForm.Focus(); });
            EventHandler pickUnBlockedHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.PickUnBlocked();
                  gd.RendForm.Focus(); });
            EventHandler drawChangedHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { mapStuff.DrawSettings((int)s); });
            EventHandler mobChangedHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { UInt32 box = (UInt32)s;
                  mapStuff.AlterPathMobile((int)box & 0xFF, (int)box >> 16); });
            EventHandler findPathHandler = new EventHandler(
                delegate(object s, EventArgs ea)
                { Vector3PairEventArgs v3pea = ea as Vector3PairEventArgs;
                  mapStuff.FindPath(v3pea.mVecA, v3pea.mVecB); });

            pathForm.eGenerate    += genHandler;
            pathForm.eLoadData    += loadHandler;
            pathForm.eSaveData    += saveHandler;
            pathForm.ePickA       += pickAHandler;
            pathForm.ePickB       += pickBHandler;
            pathForm.ePickBlock   += pickBlockedHandler;
            pathForm.ePickUnBlock += pickUnBlockedHandler;
            pathForm.eDrawChanged += drawChangedHandler;
            pathForm.eMobChanged  += mobChangedHandler;
            pathForm.eFindPath    += findPathHandler;

            pathForm.SetPickReady(false);

            pathForm.Show();

            UpdateTimer time = new UpdateTimer(true, false);

            time.SetFixedTimeStepSeconds(1f / 60f);             //60fps update rate
            time.SetMaxDeltaSeconds(MaxTimeDelta);

            List <Input.InputAction> acts = new List <Input.InputAction>();

            RenderLoop.Run(gd.RendForm, () =>
            {
                if (!gd.RendForm.Focused)
                {
                    Thread.Sleep(33);
                }
                else if (mapStuff.Busy())
                {
                    Thread.Sleep(5);
                    return;
                }

                gd.CheckResize();

                if (bMouseLookOn && gd.RendForm.Focused)
                {
                    gd.ResetCursorPos();
                }

                //Clear views
                gd.ClearViews();

                time.Stamp();
                while (time.GetUpdateDeltaSeconds() > 0f)
                {
                    acts = UpdateInput(inp, gd,
                                       time.GetUpdateDeltaSeconds(), ref bMouseLookOn);
                    if (!gd.RendForm.Focused)
                    {
                        acts.Clear();
                        bMouseLookOn = false;
                        gd.SetCapture(false);
                        inp.UnMapAxisAction(Input.MoveAxis.MouseYAxis);
                        inp.UnMapAxisAction(Input.MoveAxis.MouseXAxis);
                    }
                    mapStuff.Update(time, acts, pSteering);
                    time.UpdateDone();
                }

                mapStuff.RenderUpdate(time.GetRenderUpdateDeltaMilliSeconds());

                mapStuff.Render();

                gd.Present();

                acts.Clear();
            }, true);                   //true here is slow but needed for winforms events

            Properties.Settings.Default.Save();

            gd.RendForm.Activated      -= actHandler;
            gd.RendForm.AppDeactivated -= deActHandler;

            mapStuff.ePickedA   -= pickedAHandler;
            mapStuff.ePickedB   -= pickedBHandler;
            mapStuff.ePickReady -= pickReadyHandler;

            pathForm.eGenerate    -= genHandler;
            pathForm.eLoadData    -= loadHandler;
            pathForm.eSaveData    -= saveHandler;
            pathForm.ePickA       -= pickAHandler;
            pathForm.ePickB       -= pickBHandler;
            pathForm.ePickBlock   -= pickBlockedHandler;
            pathForm.ePickUnBlock -= pickUnBlockedHandler;
            pathForm.eDrawChanged -= drawChangedHandler;
            pathForm.eMobChanged  -= mobChangedHandler;
            pathForm.eFindPath    -= findPathHandler;

            mapStuff.FreeAll();
            inp.FreeAll();

            //Release all resources
            gd.ReleaseAll();
        }