Ejemplo n.º 1
0
        public void Render( double delta, PickedPos pickedPos )
        {
            index = 0;
            Vector3 camPos = game.CurrentCameraPos;
            float dist = (camPos - pickedPos.Min).LengthSquared;

            float size = dist < 12 * 12 ? 1/64f : 1/32f;
            if( dist > 32 * 32 ) size = 1/16f;
            Vector3 p1 = pickedPos.Min - new Vector3( offset, offset, offset );
            Vector3 p2 = pickedPos.Max + new Vector3( offset, offset, offset );

            // bottom face
            YQuad( p1.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            YQuad( p1.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            YQuad( p1.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            YQuad( p1.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // top face
            YQuad( p2.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            YQuad( p2.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            YQuad( p2.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            YQuad( p2.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // left face
            XQuad( p1.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            XQuad( p1.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            XQuad( p1.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            XQuad( p1.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // right face
            XQuad( p2.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            XQuad( p2.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            XQuad( p2.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            XQuad( p2.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // front face
            ZQuad( p1.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            ZQuad( p1.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            ZQuad( p1.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            ZQuad( p1.Z, p1.X, p2.Y, p2.X, p2.Y - size );
            // back face
            ZQuad( p2.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            ZQuad( p2.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            ZQuad( p2.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            ZQuad( p2.Z, p1.X, p2.Y, p2.X, p2.Y - size );

            graphics.SetBatchFormat( VertexFormat.P3fC4b );
            graphics.UpdateDynamicIndexedVb( DrawMode.Triangles, vb, vertices, verticesCount, verticesCount * 6 / 4 );
        }
Ejemplo n.º 2
0
        public void Render( double delta, PickedPos pickedPos )
        {
            index = 0;
            Vector3 p1 = pickedPos.Min - new Vector3( offset, offset, offset );
            Vector3 p2 = pickedPos.Max + new Vector3( offset, offset, offset );
            //col.A = 180;

            // bottom face
            DrawYPlane( p1.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            DrawYPlane( p1.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            DrawYPlane( p1.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            DrawYPlane( p1.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // top face
            DrawYPlane( p2.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            DrawYPlane( p2.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            DrawYPlane( p2.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            DrawYPlane( p2.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // left face
            DrawXPlane( p1.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            DrawXPlane( p1.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            DrawXPlane( p1.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            DrawXPlane( p1.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // right face
            DrawXPlane( p2.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            DrawXPlane( p2.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            DrawXPlane( p2.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            DrawXPlane( p2.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // front face
            DrawZPlane( p1.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            DrawZPlane( p1.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            DrawZPlane( p1.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            DrawZPlane( p1.Z, p1.X, p2.Y, p2.X, p2.Y - size );
            // back face
            DrawZPlane( p2.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            DrawZPlane( p2.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            DrawZPlane( p2.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            DrawZPlane( p2.Z, p1.X, p2.Y, p2.X, p2.Y - size );

            graphics.BeginVbBatch( VertexFormat.Pos3fCol4b );
            graphics.DrawDynamicIndexedVb( DrawMode.Triangles, vb, vertices, verticesCount, verticesCount * 6 / 4 );
        }
Ejemplo n.º 3
0
        public void Render( double delta, PickedPos pickedPos )
        {
            index = 0;
            Vector3 p1 = pickedPos.Min - new Vector3( offset, offset, offset );
            Vector3 p2 = pickedPos.Max + new Vector3( offset, offset, offset );

            // bottom face
            YQuad( p1.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            YQuad( p1.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            YQuad( p1.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            YQuad( p1.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // top face
            YQuad( p2.Y, p1.X, p1.Z, p1.X + size, p2.Z );
            YQuad( p2.Y, p2.X, p1.Z, p2.X - size, p2.Z );
            YQuad( p2.Y, p1.X, p1.Z, p2.X, p1.Z + size );
            YQuad( p2.Y, p1.X, p2.Z, p2.X, p2.Z - size );
            // left face
            XQuad( p1.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            XQuad( p1.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            XQuad( p1.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            XQuad( p1.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // right face
            XQuad( p2.X, p1.Z, p1.Y, p1.Z + size, p2.Y );
            XQuad( p2.X, p2.Z, p1.Y, p2.Z - size, p2.Y );
            XQuad( p2.X, p1.Z, p1.Y, p2.Z, p1.Y + size );
            XQuad( p2.X, p1.Z, p2.Y, p2.Z, p2.Y - size );
            // front face
            ZQuad( p1.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            ZQuad( p1.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            ZQuad( p1.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            ZQuad( p1.Z, p1.X, p2.Y, p2.X, p2.Y - size );
            // back face
            ZQuad( p2.Z, p1.X, p1.Y, p1.X + size, p2.Y );
            ZQuad( p2.Z, p2.X, p1.Y, p2.X - size, p2.Y );
            ZQuad( p2.Z, p1.X, p1.Y, p2.X, p1.Y + size );
            ZQuad( p2.Z, p1.X, p2.Y, p2.X, p2.Y - size );

            graphics.SetBatchFormat( VertexFormat.Pos3fCol4b );
            graphics.DrawDynamicIndexedVb( DrawMode.Triangles, vb, vertices, verticesCount, verticesCount * 6 / 4 );
        }
Ejemplo n.º 4
0
        public override void Execute(CommandReader reader)
        {
            string property = reader.Next();

            if (property == null)
            {
                game.Chat.Add("&e/client info: &cYou didn't specify a property.");
            }
            else if (Utils.CaselessEquals(property, "pos"))
            {
                game.Chat.Add("Feet: " + game.LocalPlayer.Position);
                game.Chat.Add("Eye: " + game.LocalPlayer.EyePosition);
                Vector3I p = Vector3I.Floor(game.LocalPlayer.Position);
                game.Chat.Add(game.World.GetLightHeight(p.X, p.Z).ToString());
            }
            else if (Utils.CaselessEquals(property, "target"))
            {
                PickedPos pos = game.SelectedPos;
                if (!pos.Valid)
                {
                    game.Chat.Add("Currently not targeting a block");
                }
                else
                {
                    game.Chat.Add("Currently targeting at: " + pos.BlockPos);
                    game.Chat.Add("ID of block targeted: " + game.World.SafeGetBlock(pos.BlockPos));
                }
            }
            else if (Utils.CaselessEquals(property, "dimensions"))
            {
                game.Chat.Add("map width: " + game.World.Width);
                game.Chat.Add("map height: " + game.World.Height);
                game.Chat.Add("map length: " + game.World.Length);
            }
            else
            {
                game.Chat.Add("&e/client info: Unrecognised property: \"&f" + property + "&e\".");
            }
        }
Ejemplo n.º 5
0
 public override void SendPlayerClick(MouseButton button, bool buttonDown, byte targetId, PickedPos pos)
 {
 }
Ejemplo n.º 6
0
 public override void SendPlayerClick(MouseButton button, bool buttonDown, byte targetId, PickedPos pos)
 {
     cpe.WritePlayerClick(button, buttonDown, targetId, pos);
     SendPacket();
 }
Ejemplo n.º 7
0
 public override void SendPlayerClick( MouseButton button, bool buttonDown, byte targetId, PickedPos pos )
 {
 }
Ejemplo n.º 8
0
		public override void SendPlayerClick( MouseButton button, bool buttonDown, byte targetId, PickedPos pos ) {
			Player p = game.LocalPlayer;
			MakePlayerClick( (byte)button, buttonDown, p.HeadYawDegrees, p.PitchDegrees, targetId,
			                pos.BlockPos, pos.BlockFace );
			SendPacket();
		}
Ejemplo n.º 9
0
        public void UpdateState(PickedPos selected)
        {
            if (selected.BlockPos != oldPos)
            {
                pickProg = 0;
            }
            index  = 0;
            index2 = 0;
            Vector3 camPos = game.CurrentCameraPos;
            float   dist   = (camPos - selected.Min).LengthSquared;

            float offset = 0.01f;

            if (dist < 4 * 4)
            {
                offset = 0.00625f;
            }
            if (dist < 2 * 2)
            {
                offset = 0.00500f;
            }
            offset = 0.00150f;

            MakeTexture(ref pickTexId, ref lastTexLoc, 240 + Utils.Floor(pickProg));

            Vector3 p1 = selected.Min - new Vector3(offset, offset, offset);
            Vector3 p2 = selected.Max + new Vector3(offset, offset, offset);

            /*drawer.elementsPerAtlas1D = TerrainAtlas1D.elementsPerAtlas1D;
             * drawer.invVerElementSize  = TerrainAtlas1D.invElementSize;
             * //drawer.minBB =new Vector3(0, 0, 0);
             * //drawer.maxBB = new Vector3(1f, 1f, 1f);
             * drawer.minBB = BlockInfo.MinBB[Block.Stone];
             * drawer.maxBB = BlockInfo.MaxBB[Block.Stone];
             * drawer.minBB.Y = 1 - drawer.minBB.Y;
             * drawer.maxBB.Y = 1 - drawer.maxBB.Y;
             * drawer.x1 = p1.X; drawer.x2 = p2.X;
             * drawer.y1 = p1.Y; drawer.y2 = p2.Y;
             * drawer.z1 = p1.Z; drawer.z2 = p2.Z;
             * drawer.Tinted = false;
             * drawer.TintColour = new FastColour(0, 0, 0, 0);
             *
             *      index2 = 0;
             *
             *
             *      drawer.Bottom(1, FastColour.WhitePacked, 244, vertices2, ref index2);
             *      drawer.Front(1, FastColour.WhitePacked, 244, vertices2, ref index2);
             *      drawer.Right(1, FastColour.WhitePacked, 244, vertices2, ref index2);
             *      drawer.Back(1, FastColour.WhitePacked, 244, vertices2, ref index2);
             *      drawer.Left(1, FastColour.WhitePacked, 244, vertices2, ref index2);
             *      drawer.Top(1, FastColour.WhitePacked, 244, vertices2, ref index2);*/



            float size = 1 / 16f;

            if (dist < 32 * 32)
            {
                size = 1 / 32f;
            }
            if (dist < 16 * 16)
            {
                size = 1 / 64f;
            }
            if (dist < 8 * 8)
            {
                size = 1 / 96f;
            }
            if (dist < 4 * 4)
            {
                size = 1 / 128f;
            }
            if (dist < 2 * 2)
            {
                size = 1 / 192f;
            }

            DrawLines(p1, p2, size);
            oldPos = selected.BlockPos;
        }
        public override void SendPlayerClick(MouseButton button, bool buttonDown, byte targetId, PickedPos pos)
        {
            Player p = game.LocalPlayer;

            MakePlayerClick((byte)button, buttonDown, p.HeadYawDegrees, p.PitchDegrees, targetId,
                            pos.BlockPos, pos.BlockFace);
            SendPacket();
        }