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

@@ -1,19 +1,30 @@
module CyberarmEngine
module Networking
class Packet
attr_reader :protocol_version, :type, :peer_id, :message
attr_reader :protocol_version, :peer_id, :channel, :message
def self.type
raise NotImplementedError, "#{self.class}.type must be defined!"
def self.decode(raw)
header = raw.unpack(CyberarmEngine::Networking::Protocol::PACKET_BASE_HEADER)
Packet.new(protocol_version: header[0], peer_id: header[1], channel: header[2], message: raw[Protocol::PACKET_BASE_HEADER_LENGTH...raw.length])
end
def self.decode(packet)
raise NotImplementedError, "#{self.class}.decode must be defined!"
def initialize(protocol_version:, peer_id:, channel:, message:)
@protocol_version = protocol_version
@peer_id = peer_id
@channel = channel
@message = message
end
def encode
raise NotImplementedError, "#{self.class}#encode must be defined!"
header = [
@protocol_version,
@peer_id,
@channel
].pack(CyberarmEngine::Networking::Protocol::PACKET_BASE_HEADER)
"#{header}#{@message}"
end
end
end
end
end