mirror of
https://github.com/ammaraskar/pyCraft.git
synced 2024-09-28 14:37:30 +02:00
add Explosion Packet (client bound)
This commit is contained in:
parent
81f2ae4070
commit
3ad5d1abd5
@ -835,6 +835,63 @@ class ClientCombatEvent(Packet):
|
|||||||
def write(self, socket, compression_threshold=None):
|
def write(self, socket, compression_threshold=None):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
class ClientExplosion(Packet):
|
||||||
|
@staticmethod
|
||||||
|
def get_id(context):
|
||||||
|
return 0x1C if context.protocol_version >= 332 else \
|
||||||
|
0x1D if context.protocol_version >= 318 else \
|
||||||
|
0x1C if context.protocol_version >= 80 else \
|
||||||
|
0x1B if context.protocol_version >= 67 else \
|
||||||
|
0x27
|
||||||
|
|
||||||
|
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 Explosion(object):
|
||||||
|
__slots__ = ('x', 'y', 'z', 'radius', 'records',
|
||||||
|
'player_motion_x', 'player_motion_y', 'player_motion_z')
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return ('Explosion(x=%s, y=%s, z=%s, radius=%s, records=%s)' % (
|
||||||
|
self.x, self.y, self.z, self.radius, self.records))
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.__repr__()
|
||||||
|
|
||||||
|
def read(self, file_object):
|
||||||
|
self.x = Float.read(file_object)
|
||||||
|
self.y = Float.read(file_object)
|
||||||
|
self.z = Float.read(file_object)
|
||||||
|
self.radius = Float.read(file_object)
|
||||||
|
records_count = VarInt.read(file_object)
|
||||||
|
self.records = []
|
||||||
|
for i in range(records_count):
|
||||||
|
rec_x = Byte.read(file_object)
|
||||||
|
rec_y = Byte.read(file_object)
|
||||||
|
rec_z = Byte.read(file_object)
|
||||||
|
record = ClientExplosion.Record(rec_x,rec_y,rec_z)
|
||||||
|
self.records.append(record)
|
||||||
|
self.player_motion_x = Float.read(file_object)
|
||||||
|
self.player_motion_y = Float.read(file_object)
|
||||||
|
self.player_motion_z = Float.read(file_object)
|
||||||
|
|
||||||
|
def write(self, socket, compression_threshold=None):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
def state_playing_clientbound(context):
|
def state_playing_clientbound(context):
|
||||||
packets = {
|
packets = {
|
||||||
@ -849,6 +906,7 @@ def state_playing_clientbound(context):
|
|||||||
ClientEntityVelocity,
|
ClientEntityVelocity,
|
||||||
ClientUpdateHealth,
|
ClientUpdateHealth,
|
||||||
ClientCombatEvent,
|
ClientCombatEvent,
|
||||||
|
ClientExplosion,
|
||||||
}
|
}
|
||||||
if context.protocol_version <= 47:
|
if context.protocol_version <= 47:
|
||||||
packets |= {
|
packets |= {
|
||||||
|
Loading…
Reference in New Issue
Block a user