public override bool FinalRender(RenderEvent E, bool bAlt)
 {
     if (this.KnownButNotSeen(this.Object) && this.Object.FireEvent("CanHypersensesDetect"))
     {
         int frame200    = XRLCore.CurrentFrame10 % 200;
         int midDistance = Math.Max((Math.Abs(100 - frame200) - 30), 0) / 10;
         if (frame200 % 5 < (5 - midDistance))
         {
             E.Tile        = this.Object.pRender.Tile;
             E.ColorString = "&K";
         }
         else
         {
             E.Tile         = null;
             E.RenderString = this.questGiverIcon;
             E.ColorString  = this.questGiverIconColor;
         }
         E.CustomDraw = true;
         return(false);
     }
     else if (this.Object != null)
     {
         int frame200    = XRLCore.CurrentFrame10 % 200;
         int midDistance = Math.Max((Math.Abs(100 - frame200) - 40), 0) / 10;
         if (frame200 % 5 >= (5 - midDistance))
         {
             E.Tile         = null;
             E.RenderString = this.questGiverIcon;
             E.ColorString  = this.questGiverIconColor;
             E.CustomDraw   = true;
         }
         return(false);
     }
     return(true);
 }
예제 #2
0
        public override bool Render(RenderEvent E)
        {
            int num = (XRLCore.CurrentFrame + this.nFrameOffset) % 60;

            if (num < 15)
            {
                E.RenderString     = "°";
                E.BackgroundString = "^W";
            }
            else if (num < 30)
            {
                E.RenderString     = "±";
                E.BackgroundString = "^r";
            }
            else if (num < 45)
            {
                E.RenderString     = "\x00B2";
                E.BackgroundString = "^R";
            }
            else
            {
                E.RenderString     = "Û";
                E.BackgroundString = "^r";
            }
            this.ParentObject.pRender.ColorString = "&r^r";
            return(true);
        }
예제 #3
0
        public override void RenderPrimary(LiquidVolume Liquid, RenderEvent eRender)
        {
            if (Liquid.ParentObject.IsFreezing())
            {
                eRender.RenderString = "~";
                eRender.ColorString  = "&Y^k";
                return;
            }
            Render pRender = Liquid.ParentObject.pRender;
            int    num     = (XRLCore.CurrentFrame + Liquid.nFrameOffset) % 60;

            if (Stat.RandomCosmetic(1, 60) == 1 || pRender.ColorString == "&c")
            {
                if (num < 15)
                {
                    pRender.RenderString = string.Empty + '÷';
                    pRender.ColorString  = "&Y^k";
                }
                else if (num < 30)
                {
                    pRender.RenderString = "~";
                    pRender.ColorString  = "&Y^k";
                }
                else if (num < 45)
                {
                    pRender.RenderString = string.Empty + '÷';
                    pRender.ColorString  = "&Y^k";
                }
                else
                {
                    pRender.RenderString = "~";
                    pRender.ColorString  = "&Y^k";
                }
            }
        }
 public override bool FinalRender(RenderEvent E, bool bAlt)
 {
     if (HeardAndNotSeen(base.Object) && base.Object.FireEvent("CanHypersensesDetect"))
     {
         if (bIdentified)
         {
             E.HighestLayer = 0;
             base.Object.Render(E);
             E.RenderString = base.Object.pRender.RenderString;
             if (Options.UseTiles)
             {
                 E.Tile = base.Object.pRender.Tile;
             }
             else
             {
                 E.Tile = null;
             }
             E.CustomDraw = true;
         }
         else
         {
             E.RenderString = "&K?";
             E.Tile         = null;
             E.CustomDraw   = true;
         }
         return(false);
     }
     return(true);
 }
예제 #5
0
        //private void Entity_OnChildAdded(Entity sender, Entity child)
        //{
        //    throw new System.NotImplementedException();
        //}
        //
        //private void Entity_OnChildRemoved(Entity arg1, Entity arg2)
        //{
        //    throw new System.NotImplementedException();
        //}
        #endregion


        public override void OnRender(RenderEvent re)
        {
            if (re is EditorDrawRenderEvent)
            {
                LineRenderer.DrawAxes(WorldTransformMatrix);
            }
        }
예제 #6
0
 void Render(RenderEvent renderEvent)
 {
     lock (_syncRoot)
         foreach (var sprite in _sprites)
         {
             renderEvent.Add(sprite.Value);
         }
 }
    void Start()
    {
        if (target == null)
        {
            target      = new RenderTexture(1280, 720, 0, RenderTextureFormat.ARGB32);
            target.name = "temp";
        }
        Camera main = gameObject.GetComponent <Camera>();

        if (!CheckSupport(main.hdr))
        {
            return;
        }
        if (shader == null)
        {
            Debug.LogWarning("Missing the shader \"Hidden/SphericalShader\"!");
            return;
        }
        if (!shader.isSupported)
        {
            Debug.LogWarning("The shader \"Hidden/SphericalShader\" is not supported on this platform!");
            return;
        }

        for (int i = 0; i < 5; i++)
        {
            GameObject dummy = new GameObject();
            Vector3    rot   = new Vector3(rots[i * 2], rots[i * 2 + 1], 0);
            dummy.transform.SetParent(gameObject.transform);
            dummy.transform.localRotation = Quaternion.Euler(rot);
            dummy.transform.localPosition = Vector3.zero;
            dummy.hideFlags = HideFlags.HideInHierarchy;

            Camera cam = dummy.AddComponent <Camera>();
            System.Reflection.FieldInfo[] camFields = main.GetType().GetFields();
            foreach (System.Reflection.FieldInfo f in camFields)
            {
                f.SetValue(cam, f.GetValue(main));
            }
            cam.cullingMask   = main.cullingMask;
            cam.aspect        = 1f;
            cam.nearClipPlane = 0.001f;
            cam.fieldOfView   = 120f;
            cam.rect          = new Rect(0f, 0f, 1f, 1f);
            cam.depth         = ds[i];
            cam.targetTexture = target;

            Material mat = new Material(shader);
            mat.EnableKeyword(metas[i]);
            mat.SetVector("_rt", rects[i]);
            mat.SetVector("_fl", flips[i]);

            RenderEvent ev = dummy.AddComponent <RenderEvent>();
            ev.material = mat;
        }

        canDraw = true;
    }
예제 #8
0
 public override bool Render(RenderEvent E)
 {
     if (this.ComponentLiquids.Count > 0)
     {
         int num = XRLCore.CurrentFrame % (15 * this.ComponentLiquids.Count);
         E.ColorString = "&" + LiquidVolume.ComponentLiquidTypes[this.ComponentLiquids[num / 15]].GetColor();
     }
     return(true);
 }
예제 #9
0
 void IssueRenderEventAndWaitForCompletion(RenderEvent renderEvent)
 {
     if (renderEventFunc != IntPtr.Zero)
     {
         PXR_Plugin.PassThrough.UPxr_PassThroughSetRenderEventPending();
         GL.IssuePluginEvent(renderEventFunc, (int)renderEvent);
         PXR_Plugin.PassThrough.UPxr_PassThroughWaitForRenderEvent();
     }
 }
예제 #10
0
파일: Scene.cs 프로젝트: Zexyp/CrossEngine
 public void OnRender(RenderEvent re)
 {
     for (int i = 0; i < _entities.Count; i++)
     {
         if (_entities[i].Enabled)
         {
             _entities[i].OnRender(re);
         }
     }
 }
예제 #11
0
        public override void RenderSmearPrimary(LiquidVolume Liquid, RenderEvent eRender, GameObject obj)
        {
            int num = XRLCore.CurrentFrame % 60;

            if (num > 5 && num < 15)
            {
                eRender.ColorString = "&w";
            }
            base.RenderSmearPrimary(Liquid, eRender, obj);
        }
예제 #12
0
        public override void RenderSmearPrimary(LiquidVolume Liquid, RenderEvent eRender)
        {
            int num = XRLCore.CurrentFrame % 60;

            if (num > 5 && num < 15)
            {
                eRender.ColorString = "&" + Color + (Color == "k"?"^K":"");
            }
            base.RenderSmearPrimary(Liquid, eRender);
        }
예제 #13
0
        void Render(RenderEvent e)
        {
            var window = Resolve <IWindowManager>();

            if (window.Size.X < 1 || window.Size.Y < 1)
            {
                return;
            }

            var position = new Vector3(window.PixelToNorm(_position), 0.0f);
            var size     = new Vector2(window.GuiScale, -window.GuiScale) * _size / window.Size;

            e.Add(new Sprite <CoreSpriteId>(_cursorId,
                                            0,
                                            position,
                                            (int)DrawLayer.MaxLayer,
                                            SpriteFlags.NoTransform | SpriteFlags.NoDepthTest,
                                            size));

            if (_cursorId == CoreSpriteId.CursorSmall) // Inventory screen, check what's being held.
            {
                var assets = Resolve <IAssetManager>();
                var state  = Resolve <IGameState>();
                var held   = Resolve <IInventoryScreenState>().ItemInHand;

                if (held is GoldInHand)
                {
                    var spriteId = CoreSpriteId.UiGold;
                    var texture  = assets.LoadTexture(spriteId);
                    texture.GetSubImageDetails(0, out var itemSize, out _, out _, out _);
                    e.Add(BuildItemInHandSprite(spriteId, itemSize, position));
                }
                else if (held is RationsInHand)
                {
                    var spriteId = CoreSpriteId.UiFood;
                    var texture  = assets.LoadTexture(spriteId);
                    texture.GetSubImageDetails(0, out var itemSize, out _, out _, out _);
                    e.Add(BuildItemInHandSprite(spriteId, itemSize, position));
                }
                else if (held is ItemSlot itemInHand)
                {
                    var          item     = assets.LoadItem(itemInHand.Id);
                    ItemSpriteId spriteId = item.Icon + state.TickCount % item.IconAnim;
                    var          texture  = assets.LoadTexture(spriteId);
                    texture.GetSubImageDetails((int)spriteId, out var itemSize, out _, out _, out _);
                    e.Add(new Sprite <ItemSpriteId>(spriteId,
                                                    (int)spriteId,
                                                    position + new Vector3(window.UiToNormRelative(new Vector2(6, 0)), 0),
                                                    (int)DrawLayer.MaxLayer,
                                                    SpriteFlags.NoTransform | SpriteFlags.NoDepthTest,
                                                    window.UiToNormRelative(itemSize)));
                    // TODO: Quantity text
                }
            }
        }
예제 #14
0
 void Render(RenderEvent e)
 {
     if (_renderUnderlay)
     {
         e.Add(_underlay);
     }
     if (_renderOverlay)
     {
         e.Add(_overlay);
     }
 }
예제 #15
0
        /*
         * void Select(WorldCoordinateSelectEvent e)
         * {
         *  float denominator = Vector3.Dot(Normal, e.Direction);
         *  if (Math.Abs(denominator) < 0.00001f)
         *      return;
         *
         *  var pixelPosition = _position * _tileSize;
         *  float t = Vector3.Dot(new Vector3(pixelPosition, 0.0f) - e.Origin, Normal) / denominator;
         *  if (t < 0)
         *      return;
         *
         *  var intersectionPoint = e.Origin + t * e.Direction;
         *  int x = (int)(intersectionPoint.X - pixelPosition.X);
         *  int y = (int)(intersectionPoint.Y - pixelPosition.Y);
         *
         *  if (x < 0 || x >= _size.X ||
         *      y < 0 || y >= _size.Y)
         *      return;
         *
         *  e.RegisterHit(t, $"NPC {_id}", this);
         * }//*/

        void Render(RenderEvent e)
        {
            var sprite = new Sprite <DungeonObjectId>(
                _id,
                _frame / TicksPerFrame,
                _position,
                (int)DrawLayer.Underlay,
                SpriteFlags.FlipVertical | (_onFloor ? (SpriteFlags.Floor | SpriteFlags.MidAligned) : SpriteFlags.Billboard),
                _size);

            e.Add(sprite);
        }
        public override bool Render(RenderEvent E)
        {
            int num = XRLCore.CurrentFrame % 60;

            if (num > 15 && num < 30)
            {
                E.Tile         = null;
                E.RenderString = "X";
                E.ColorString  = "&R^r";
            }
            return(true);
        }
예제 #17
0
파일: GridRenderer.cs 프로젝트: rasmus-z/tv
        public GridRenderer(
            ISurface surface,

            RenderEvent onRenderEvent = null,
            ResizeEvent onResize      = null
            )
        {
            _render  = onRenderEvent;
            _surface = surface ?? throw new ArgumentNullException(nameof(surface));
            onRenderEvent?.Subscribe(OnRender);
            onResize?.Subscribe(OnResize);
        }
예제 #18
0
        void Render(RenderEvent e)
        {
            var sprite = new Sprite <T>(
                _id,
                _frame,
                _position,
                (int)DrawLayer.Interface,
                SpriteFlags.NoTransform | SpriteFlags.LeftAligned,
                _size);

            e.Add(sprite);
        }
예제 #19
0
        public override bool Render(RenderEvent E)
        {
            int num = XRLCore.CurrentFrame % 60;

            if (Duration > 0 && num > 30 && num < 40)
            {
                E.Tile         = null;
                E.RenderString = string.Empty + 'ì';
                E.ColorString  = "&C";
            }
            return(true);
        }
예제 #20
0
        public override bool Render(RenderEvent E)
        {
            int num = XRLCore.CurrentFrame % 60;

            if (num > 50 && num < 60)
            {
                E.Tile         = (string)null;
                E.RenderString = "O";
                E.ColorString  = "&R";
            }
            return(true);
        }
예제 #21
0
 public override bool Render(RenderEvent E)
 {
     if (BaseColour != null)
     {
         E.ColorString = "&" + BaseColour;
     }
     if (DetailColour != null)
     {
         E.DetailColor = DetailColour;
     }
     return(true);
 }
예제 #22
0
 void IssueRenderEventAndWaitForCompletion(RenderEvent renderEvent)
 {
     // NB: If m_RenderEventFunc is zero, it means
     //     1. We are running in the Editor.
     //     2. The UnityARCore library could not be loaded or similar catastrophic failure.
     if (m_RenderEventFunc != IntPtr.Zero)
     {
         PXR_Plugin.PassThrough.UPxr_PassThroughSetRenderEventPending();
         GL.IssuePluginEvent(m_RenderEventFunc, (int)renderEvent);
         PXR_Plugin.PassThrough.UPxr_PassThroughWaitForRenderEvent();
     }
 }
예제 #23
0
 void Render(RenderEvent e)
 {
     e.Add(_tilemap); /*
                       * // Split map rendering into one render call per distance group for debugging
                       * int offset = 0;
                       * foreach (var distance in _tilesByDistance.OrderByDescending(x => x.Key))
                       * {
                       * e.Add(new TileMapWindow(_tilemap, offset, distance.Value.Count));
                       * offset += distance.Value.Count;
                       * }
                       * //*/
 }
예제 #24
0
        void OnDestroy()
        {
            RenderEvent.RemoveRenderEvent(Camera.main, DrawOutline);

            if (Spheres != null)
            {
                for (int i = 0; i < Spheres.Count; i++)
                {
                    DestroyImmediate(Spheres[i]);
                }
            }
        }
예제 #25
0
 public override bool Render(RenderEvent E)
 {
     if (this.Duration > 0)
     {
         int num = XRLCore.CurrentFrame % 60;
         if (num > 25 && num < 35)
         {
             E.ColorString = "&w";
         }
     }
     return(base.Render(E));
 }
        void Start()
        {
            double radius  = 0.25;
            double density = 1000.0;

            CreateBoundary(radius, density);
            CreateFluid(radius, density);

            Solver = new FluidSolver3d(Body);
            Solver.AddForce(new GravitationalForce3d());

            RenderEvent.AddRenderEvent(Camera.main, DrawOutline);
        }
예제 #27
0
 public override bool Render(RenderEvent E)
 {
     if (Duration > 0)
     {
         int num = XRLCore.CurrentFrame % 60;
         if (num > 50 && num < 60)
         {
             E.Tile         = "terrain/sw_web.bmp";
             E.RenderString = string.Empty + '\u000f';
             E.ColorString  = "&Y^K";
         }
     }
     return(true);
 }
 public override bool Render(RenderEvent E)
 {
     if (ConstrictedBy != null && ConstrictedBy.IsValid())
     {
         int num = XRLCore.CurrentFrame % 60;
         if (num >= 0 && num <= 30)
         {
             E.ColorString  = ConstrictedBy.pRender.ColorString;
             E.DetailColor  = ConstrictedBy.pRender.DetailColor;
             E.Tile         = ConstrictedBy.pRender.Tile;
             E.RenderString = ConstrictedBy.pRender.RenderString;
         }
     }
     return(base.Render(E));
 }
예제 #29
0
        protected virtual void Render(RenderEvent e)
        {
            var map             = Resolve <IMapManager>().Current;
            var pixelPosition   = Position * new Vector2(map.TileSize.X, map.TileSize.Y);
            var positionLayered = new Vector3(pixelPosition, DrawLayer.Characters1.ToZCoordinate(Position.Y));

            var npcSprite = new Sprite <TSpriteId>(
                Id,
                Frame,
                positionLayered,
                (int)DrawLayer.Characters1,
                SpriteFlags.BottomAligned);

            e.Add(npcSprite);
        }
예제 #30
0
        public override bool Render(RenderEvent E)
        {
            int currentFrameLong = XRLCore.CurrentFrameLong10;

            if (currentFrameLong >= 1000 && currentFrameLong < 3000)
            {
                E.ColorString = "&b";
                E.DetailColor = "K";
            }
            else if (currentFrameLong >= 7000 && currentFrameLong < 9000)
            {
                E.ColorString = "&K";
                E.DetailColor = "b";
            }
            return(true);
        }
예제 #31
0
    protected override void OnRender(DrawingContext drawingContext)
    {
      base.OnRender(drawingContext);
      //drawingContext.DrawLine(new Pen(Brushes.Green, 10), new Point(10, 10), new Point(100, 150));

      drawingContext.PushTransform(new ScaleTransform(0.75, 0.75));
      XGraphics gfx = XGraphics.FromDrawingContext(drawingContext, new XSize(100, 100), XGraphicsUnit.Millimeter);
      if (RenderEvent != null)
      {
        try
        {
          RenderEvent(gfx);
        }
        catch
        {
          RenderEvent = null;
        }
      }
      else
        Draw(gfx);
    }
예제 #32
0
 /// <summary>
 /// Sets a delagate that is invoked when the preview wants to be painted.
 /// </summary>
 public void SetRenderEvent(RenderEvent renderEvent)
 {
   this.renderEvent = renderEvent;
   Invalidate();
 }
예제 #33
0
 public void SetRenderEvent(RenderEvent renderEvent)
 {
     _renderAction = new Action<XGraphics>(renderEvent);
     Invalidate();
 }
예제 #34
0
        public void RenderObject(RenderEvent render, BlendState blend, SamplerState sampler)
        {
            /* Apply the render settings */
            GraphicsDevice.BlendState = blend;
            GraphicsDevice.SamplerStates[0] = sampler;

            try
            {
                /* Render the object */
                render(this);
            }
            finally
            {
                /* Reset the render settings */
                GraphicsDevice.BlendState = mBlendState;
                GraphicsDevice.SamplerStates[0] = mSamplerState;
            }
        }
예제 #35
0
 public void SetRenderEvent(RenderEvent e)
 {
   RenderEvent = e;
   //Preview.InvalidateVisual();
   OnRender();
 }