Ejemplo n.º 1
0
        public void RenderScore(DeviceContext graphics, Matrix4F matrix, Vector3D renderOrigin, Entity entity, AvatarController avatarController, Timestep renderTimestep, RenderMode renderMode)
        {
            if (renderMode != RenderMode.Normal)
            {
                return;
            }

            var logic = entity.TileStateEntityLogic as SoccerTotemTileStateEntityLogic;

            if (logic == null || !logic.HasGameStarted())
            {
                return;
            }

            var delta = (logic.GetTileCenter() - renderOrigin).ToVector3F();

            var m1 = Matrix4F.CreateTranslation(logic.Component.BlueTeamScorePos.ToVector3F())
                     .RotateUnitY(logic.GetRotationInRadians())
                     .Translate(delta);



            logic.Component.BlueNumbers[logic.BlueTeamScore].Render(graphics, m1.Multiply(matrix));

            var m2 = Matrix4F.CreateTranslation(logic.Component.RedTeamScorePos.ToVector3F())
                     .RotateUnitY(logic.GetRotationInRadians())
                     .Translate(delta);

            logic.Component.RedNumbers[logic.RedTeamScore].Render(graphics, m2.Multiply(matrix));
        }
Ejemplo n.º 2
0
        public override void Render(object opaqueContext, ViewControl vc)
        {
            Matrix4F normWorld = GetManipulatorMatrix();

            if (normWorld == null)
            {
                return;
            }

            var context = opaqueContext as GUILayer.SimpleRenderingContext;

            if (context == null)
            {
                return;
            }

            Vec3F pos = normWorld.Translation;
            float s   = Util.CalcAxisScale(vc.Camera, pos, AxisLength, vc.Height);

            bool  highlight       = m_hitRegion == HitRegion.XYSquare;
            Color centerCubeColor = highlight ? Color.Gold : Color.White;

            Vec3F    sv = new Vec3F(s, s, s);
            Vec3F    centerCubeScale = sv * CenterCubeSize;
            Matrix4F scale           = new Matrix4F();

            scale.Scale(centerCubeScale);
            Matrix4F centerCubeXform = scale * normWorld;

            Util3D.DrawCube(context, centerCubeXform, centerCubeColor);

            Matrix4F arrowScale = new Matrix4F();

            arrowScale.Scale(0.75f);

            Util3D.DrawArrowCap(
                context,
                arrowScale * Matrix4F.CreateTranslation(new Vec3F(1.0f, 0.0f, -0.5f)) * centerCubeXform,
                highlight ? Color.Gold : Color.Red);

            Util3D.DrawArrowCap(
                context,
                arrowScale * Matrix4F.RotAxisRH(Vec3F.ZAxis, Math.PI) * Matrix4F.CreateTranslation(new Vec3F(-1.0f, 0.0f, -0.5f)) * centerCubeXform,
                highlight ? Color.Gold : Color.Red);

            Util3D.DrawArrowCap(
                context,
                arrowScale * Matrix4F.RotAxisRH(Vec3F.ZAxis, .5 * Math.PI) * Matrix4F.CreateTranslation(new Vec3F(0.0f, 1.0f, -0.5f)) * centerCubeXform,
                highlight ? Color.Gold : Color.Green);

            Util3D.DrawArrowCap(
                context,
                arrowScale * Matrix4F.RotAxisRH(Vec3F.ZAxis, 1.5f * Math.PI) * Matrix4F.CreateTranslation(new Vec3F(0.0f, -1.0f, -0.5f)) * centerCubeXform,
                highlight ? Color.Gold : Color.Green);
        }
        /// <summary>
        /// Render the item icons
        /// </summary>
        /// <param name="graphics"></param>
        /// <param name="matrix"></param>
        /// <param name="renderOrigin"></param>
        /// <param name="avatar"></param>
        /// <param name="avatarPainter"></param>
        /// <param name="universe"></param>
        public void DrawItemVoxels(DeviceContext graphics, Matrix4F matrix, Entity avatar)
        {
            if (!this.IsShowing)
            {
                return;
            }

            graphics.PushRenderState();
            Matrix4F projectionMatrix = graphics.GetProjectionMatrix();
            Matrix4F overlayMatrix    = graphics.GetOverlayMatrix();

            graphics.PushShader();
            graphics.SetShader(graphics.GetShader("VoxelOverlayStipple"));

            double rotation    = ClientContext.OverlayController.IsMenuOpen() ? 0 : (DateTime.UtcNow - new DateTime(0L)).TotalMilliseconds * 0.001 % 6.2831853071795862;
            int    activeIndex = avatar.Inventory.ActiveItemIndex();

            for (int i = 0; i < 10; i++)
            {
                ItemStack item = avatar.Inventory.GetHotbarItem(i);
                if (item.Item != Item.NullItem)
                {
                    Vector2F p = HotbarManager.Instance.Controller.GetSlotPosition(i);
                    p *= Constants.UIZoomFactor;

                    Vector2F pp           = graphics.ScreenPosToProjectionPos(p);
                    Matrix4F movedMatrix2 = Matrix4F.CreateTranslation(new Vector3F(pp.X, pp.Y, 0f));
                    movedMatrix2 = Matrix4F.Multiply(overlayMatrix, movedMatrix2);
                    graphics.SetProjectionMatrix(movedMatrix2);

                    Vector2I viewPortSize = graphics.GetViewPortSize();
                    float    itemScale    = Constants.ItemRenderingScale;
                    itemScale *= Constants.UIZoomFactor / ((float)viewPortSize.Y / Constants.ViewPortScaleThreshold.Y);

                    if (i == activeIndex)
                    {
                        graphics.SetShader(graphics.GetShader("VoxelOverlay"));
                    }

                    ClientContext.ItemRendererManager.RenderIcon(item.Item, graphics, Matrix4F.CreateScale(itemScale).Rotate((float)rotation, Vector3F.Up).Rotate(-0.35f, Vector3F.Left)
                                                                 .Translate(new Vector3F(0f, 0f, -0.2f))
                                                                 .Multiply(matrix));

                    if (i == activeIndex)
                    {
                        graphics.SetShader(graphics.GetShader("VoxelOverlayStipple"));
                    }
                }
            }

            graphics.PopShader();
            graphics.SetProjectionMatrix(projectionMatrix);
            graphics.PopRenderState();
        }
        public override void Render(DeviceContext graphics, Matrix4F matrix, Vector3D renderOrigin, Entity entity, AvatarController avatarController, Timestep renderTimestep, RenderMode renderMode)
        {
            if (renderMode != RenderMode.Normal)
            {
                return;
            }

            var logic = entity.TileStateEntityLogic as CenterTileStateEntityLogic;

            if (logic == null || _numberToDraw < 0)
            {
                return;
            }

            var delta = (logic.GetSpawningPosition() - renderOrigin).ToVector3F();

            var m = Matrix4F.CreateTranslation(delta);

            logic.Component.Numbers[_numberToDraw].Render(graphics, m.Multiply(matrix));
        }
        public override ItemRenderer ReadyRenderer(Item item)
        {
            _inHandMatrix = Matrix4F.CreateTranslation(item.Configuration.UsageOffset).Multiply(item.Configuration.RotationMatrix);

            return(this);
        }