use namedtuple for position type and use it as subclass for ClientExplosion.Record

This commit is contained in:
TheSnoozer 2017-08-08 15:26:04 +02:00 committed by joo
parent 8552c6efe5
commit 4a508f935b
2 changed files with 7 additions and 16 deletions

View File

@ -172,20 +172,8 @@ class ExplosionPacket(Packet):
packet_name = 'explosion'
class Record(object):
__slots__ = 'x', 'y', 'z'
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __repr__(self):
return ('Record(x=%s, y=%s, z=%s)'
% (self.x, self.y, self.z))
def __str__(self):
return self.__repr__()
class Record(Position):
pass
def read(self, file_object):
self.x = Float.read(file_object)

View File

@ -4,6 +4,7 @@ These definitions and methods are used by the packet definitions
"""
import struct
import uuid
from collections import namedtuple
class Type(object):
@ -225,7 +226,9 @@ class UUID(Type):
socket.send(uuid.UUID(value).bytes)
class Position(Type):
class Position(Type, namedtuple('Position', ('x', 'y', 'z'))):
__slots__ = ()
@staticmethod
def read(file_object):
location = UnsignedLong.read(file_object)
@ -242,7 +245,7 @@ class Position(Type):
if z >= pow(2, 25):
z -= pow(2, 26)
return {'x': x, 'y': y, 'z': z}
return Position(x=x, y=y, z=z)
@staticmethod
def send(x, y, z, socket):