Beispiel #1
0
        int HandlePlayerClicked(byte[] buffer, int offset, int left)
        {
            const int size = 1 + 1 + 1 + 2 + 2 + 1 + 2 + 2 + 2 + 1;

            if (left < size)
            {
                return(0);
            }

            MouseButton Button   = (MouseButton)buffer[offset + 1];
            MouseAction Action   = (MouseAction)buffer[offset + 2];
            ushort      yaw      = NetUtils.ReadU16(buffer, offset + 3);
            ushort      pitch    = NetUtils.ReadU16(buffer, offset + 5);
            byte        entityID = buffer[offset + 7];
            ushort      x        = NetUtils.ReadU16(buffer, offset + 8);
            ushort      y        = NetUtils.ReadU16(buffer, offset + 10);
            ushort      z        = NetUtils.ReadU16(buffer, offset + 12);

            TargetBlockFace face = (TargetBlockFace)buffer[offset + 14];

            if (face > TargetBlockFace.None)
            {
                face = TargetBlockFace.None;
            }
            OnPlayerClickEvent.Call(this, Button, Action, yaw, pitch, entityID, x, y, z, face);
            return(size);
        }
Beispiel #2
0
        void HandlePlayerClicked(byte[] packet)
        {
            if (OnPlayerClick == null)
            {
                return;
            }

            var    Button   = (MouseButton)packet[1];
            var    Action   = (MouseAction)packet[2];
            ushort Yaw      = NetUtils.ReadU16(packet, 3);
            ushort Pitch    = NetUtils.ReadU16(packet, 5);
            byte   EntityID = packet[7];
            ushort X        = NetUtils.ReadU16(packet, 8);
            ushort Y        = NetUtils.ReadU16(packet, 10);
            ushort Z        = NetUtils.ReadU16(packet, 12);
            byte   Face     = packet[14];

            var face = TargetBlockFace.None;

            if (Face < (byte)face)
            {
                face = (TargetBlockFace)Face;
            }
            OnPlayerClick(this, Button, Action, Yaw, Pitch, EntityID, X, Y, Z, face);
            OnPlayerClickEvent.Call(this, Button, Action, Yaw, Pitch, EntityID, X, Y, Z, face);
        }
		public override void Unload(bool shutdown) {
			OnPlayerClickEvent.Unregister(HandlePlayerClick);
		}
		public override void Load(bool startup) {
			OnPlayerClickEvent.Register(HandlePlayerClick, Priority.High);
		}