Beispiel #1
0
 public virtual void EnterScene(Scene scene)
 {
     DrawScene.Notify(Messages.EntityLeavesScene, this);
     Notify(Messages.SceneEnter, scene);
     DrawScene = scene;
     Notify(Messages.SceneEntered, scene);
     DrawScene.Notify(Messages.EntityEntersScene, this);
 }
Beispiel #2
0
 public void RemoveAllNuts()
 {
     for (var i = Nuts.Count - 1; i >= 0; i--)
     {
         DrawScene.Pop(Nuts[i]);
         Nuts.RemoveAt(i);
     }
 }
Beispiel #3
0
        public Nut AddNut(int x, int y)
        {
            var Nut = new Nut(new Vector2(x, y));

            DrawScene.Push(Nut);
            Nuts.Add(Nut);
            return(Nut);
        }
Beispiel #4
0
        protected override void OnRenderFrame(FrameEventArgs e)
        {
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            DrawScene?.Invoke(this, e);

            SwapBuffers();
        }
Beispiel #5
0
        private Vector2 StopEngine()
        {
            Flying         = false;
            ReachedCeiling = false;
            UnitPosition   = ProjectionCeiling.TransformInverse(Transform.Position);
            var FloorPosition = ProjectionFloor.Transform(UnitPosition);

            FloorPosition = DrawScene.Get <ScenePath>().Path.GetClosestPoint(FloorPosition);
            return(FloorPosition);
        }
Beispiel #6
0
            public void SetPosition(Vector2 position, int mode)
            {
                var TransformedPosition = DrawScene.Get <Camera>().TransformInverse(position);
                var NewPosition         = TransformedPosition;

                if (null == RestrictionPathFloor)
                {
                    RestrictionPathFloor = CreateRestrictionPathFloor();
                }

                NewPosition = RestrictionPathFloor.GetClosestPoint(TransformedPosition);
                var Transform = Get <Transform>();

                Transform.Position           = NewPosition;
                Get <Interaction>().Position = NewPosition;
                Transform.Z = NewPosition.Y;
            }
        public void SetPosition(Vector2 position, int mode)
        {
            var TransformedPosition = DrawScene.Get <Camera>().TransformInverse(position);

            if (POSITIONMODE_POSITION == mode)
            {
                var NewPosition = TransformedPosition;

                if (null == RestrictionPathFloor)
                {
                    RestrictionPathFloor = CreateRestrictionPathFloor();
                }

                NewPosition = RestrictionPathFloor.GetClosestPoint(TransformedPosition);

                if (null != LineSegmentTarget && null != LineSegmentSource)
                {
                    var ClosestTarget = LineSegmentTarget.GetClosestPoint(NewPosition);
                    var ClosestSource = LineSegmentSource.GetClosestPoint(NewPosition);
                    WasPlacedTooClose = (ClosestTarget - NewPosition).LengthSquared() <= ALLOWEDDISTANCESQUARED ||
                                        (ClosestSource - NewPosition).LengthSquared() <= ALLOWEDDISTANCESQUARED;
                    if (!WasPlacedTooClose)
                    {
                        Get <SpriteData>().Color = new Color(0, 0, 1f, 0.3f);
                    }
                    else
                    {
                        Get <SpriteData>().Color = new Color(1f, 0, 0, 0.3f);
                    }
                }

                Get <Transform>().Scale    = RestrictionPathFloor.GetScale(NewPosition.Y);
                Get <Transform>().Position = NewPosition;
            }
            else
            {
                Get <TracerLine>().Target = TransformedPosition;
            }
        }
Beispiel #8
0
 public void RemoveNut(Nut nut)
 {
     DrawScene.Pop(nut);
     Nuts.Remove(nut);
 }