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 ); }
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 ); }
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 ); }
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\"."); } }
public override void SendPlayerClick(MouseButton button, bool buttonDown, byte targetId, PickedPos pos) { }
public override void SendPlayerClick(MouseButton button, bool buttonDown, byte targetId, PickedPos pos) { cpe.WritePlayerClick(button, buttonDown, targetId, pos); SendPacket(); }
public override void SendPlayerClick( MouseButton button, bool buttonDown, byte targetId, PickedPos pos ) { }
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(); }
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(); }