/// <summary> /// Finishes the render packet and sends it if its different from the last packet. /// </summary> public void FinishAndSendIfDifferent() { var packet = DoFinishPacket(); if (!packet.Equals(_previousPacket)) { SendPacket(packet); _previousPacket = packet; } }
/// <summary> /// If this renderer has previously drawn anything on the screen, it will be erased. /// This can be called at any time. It will not interrupt any packet construction /// that may be in progress. /// </summary> public void EraseFromScreen() { var eraseBuilder = new FlatBufferBuilder(10); var vectorOffset = RenderGroup.CreateRenderMessagesVector(eraseBuilder, new Offset <RenderMessage> [0]); RenderGroup.StartRenderGroup(eraseBuilder); RenderGroup.AddRenderMessages(eraseBuilder, vectorOffset); RenderGroup.AddId(eraseBuilder, _index); eraseBuilder.Finish(RenderGroup.EndRenderGroup(eraseBuilder).Value); RenderPacket emptyPacket = new RenderPacket(eraseBuilder.SizedByteArray()); SendPacket(emptyPacket); }
/// <summary> /// Determines the equality of the RenderPacket and the other object. /// </summary> /// <param name="obj">The object to test equality with.</param> /// <returns>Returns true if the objects are equal, false otherwise.</returns> public override bool Equals(object obj) { if (this == obj) { return(true); } if (obj == null || GetType() != obj.GetType()) { return(false); } RenderPacket that = (RenderPacket)obj; return(Bytes.SequenceEqual(that.Bytes)); }
/// <summary> /// Sends the render packet to the RLBot interface. /// </summary> /// <param name="packet">The packet to send.</param> protected void SendPacket(RenderPacket packet) { RLBotInterface.RenderPacket(packet); }