Beispiel #1
0
        public virtual void Render()
        {
            if (!entity.Initialized)
            {
                return;
            }

            for (int i = 0; i < entity.Behaviors.Count; i++)
            {
                entity.Behaviors[i].RenderDebug();
            }

            //SceneManager.LineManager.AddGroundCircle(Position, IntObj2D.bracketSize, Color.Green);
            //SceneManager.LineManager.AddLine(Position, Position, Color.Green);
            //SceneManager.LineManager.AddLine(Position, Position+normal, Color.Green);

            Color color = Color.White;

            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(-1, 0, 0)), new Vector2(1, 1), color));
            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(1, 0, 0)), new Vector2(0, 1), color));
            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(-1, 3, 0)), new Vector2(1, 0), color));

            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(-1, 3, 0)), new Vector2(1, 0), color));
            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(1, 3, 0)), new Vector2(0, 0), color));
            batch.Add(new VertexTextureColor(RotateToScreen(Position, new Vector3(1, 0, 0)), new Vector2(0, 1), color));
        }
        public void Render()
        {
            if (SceneManager.Pass != RenderPass.Transparent || StrategicMode)
            {
                return;
            }

            float   height = 0.5f, bracketSizeDefault = 1, radiusSize = 0;
            float   bracketSize;
            Vector2 texD1 = new Vector2(0.0f, 0.0f), texD2 = new Vector2(0.0f, 1.5f), texD3 = new Vector2(0.75f, 0.0f);
            Vector2 tex1, tex2, tex3, tex4;

            tex4 = new Vector2(1);
            Color4 color = Color.White;

            foreach (InteractiveObject2D obj in list)
            {
                if (obj.onScreen && (obj.focused || obj.selected))
                {
                    radiusSize  = obj.bracketSize - 1;
                    bracketSize = bracketSizeDefault + radiusSize;
                    tex1        = texD1; tex2 = texD2; tex3 = texD3;
                    if (!obj.selected)
                    {
                        tex1.X += 0.5f;
                        tex2.X += 0.5f;
                        tex3.X += 0.5f;
                    }

                    /*if (obj.side==Main.network.me.id) {
                     *  color = new Color4(0.75f, 1, 0,1);
                     * } else {
                     *  color = Color.OrangeRed;
                     * }*/

                    Vector3 pos = obj.entity.IntObj3D.Position;

                    batch.Add(new VertexTextureColor(pos + new Vector3(bracketSize, height, bracketSize), tex1, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(radiusSize, height, bracketSize), tex3, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(bracketSize, height, radiusSize), tex2, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-bracketSize, height, -bracketSize), tex1, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-radiusSize, height, -bracketSize), tex3, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-bracketSize, height, -radiusSize), tex2, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-bracketSize, height, bracketSize), tex1, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-bracketSize, height, radiusSize), tex2, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(-radiusSize, height, bracketSize), tex3, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(bracketSize, height, -bracketSize), tex1, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(bracketSize, height, -radiusSize), tex2, color));
                    batch.Add(new VertexTextureColor(pos + new Vector3(radiusSize, height, -bracketSize), tex3, color));
                }
            }

            if (batch.Count > 0)
            {
                GraphicsManager.SetBlendState(DeviceStates.blendStateTrans);
                GraphicsManager.SetDepthState(DeviceStates.depthWriteOff);
                GraphicsManager.SetPrimitiveTopology(SharpDX.Direct3D.PrimitiveTopology.TriangleList);

                ShaderManager.Apply("VS_UI3D");
                ShaderManager.Apply("PS_UI3D");

                Display.context.PixelShader.SetShaderResource(0, ForegroundGame.selectionBrackets.ressource);

                batch.Draw();
            }
        }