Added rubocop config, more work on CyberarmEngine Netcode; basic sending and receiving of packets is now functional

This commit is contained in:
2020-11-30 15:41:20 -06:00
parent 85ec285263
commit ecbbc77ca7
15 changed files with 566 additions and 133 deletions

View File

@@ -0,0 +1,32 @@
module CyberarmEngine
module Networking
class ReliablePacket
attr_reader :message, :type, :control_type
HEADER_PACKER = "Cn"
HEADER_LENGTH = 1 + 2 # bytes
def self.decode(raw_message)
header = raw_message.unpack(HEADER_PACKER)
message = raw_message[HEADER_LENGTH..raw_message.length - 1]
ReliablePacket.new(type: header[0], control_type: header[1], message: message)
end
def initialize(sequence_number:, message:, type: Protocol::PACKET_RELIABLE)
@type = type
@sequence_number = sequence_number
@message = message
end
def encode
header = [
@type,
@control_type
].pack(HEADER_PACKER)
"#{header}#{@message}"
end
end
end
end