mirror of
https://gitea.sffempire.ru/Kolyah35/minecraft-pe-0.6.1.git
synced 2026-03-20 06:53:30 +00:00
the whole game
This commit is contained in:
212
src/network/Packet.cpp
Executable file
212
src/network/Packet.cpp
Executable file
@@ -0,0 +1,212 @@
|
||||
|
||||
#include "Packet.h"
|
||||
#include "../world/level/chunk/LevelChunk.h"
|
||||
|
||||
#include "packet/PacketInclude.h"
|
||||
|
||||
Packet::Packet()
|
||||
: priority(HIGH_PRIORITY),
|
||||
reliability(RELIABLE)
|
||||
{}
|
||||
|
||||
Packet* MinecraftPackets::createPacket(int id)
|
||||
{
|
||||
Packet* packet = NULL;
|
||||
|
||||
switch (id - ID_USER_PACKET_ENUM) {
|
||||
default:
|
||||
break;
|
||||
|
||||
case PACKET_LOGIN:
|
||||
packet = new LoginPacket();
|
||||
break;
|
||||
case PACKET_LOGINSTATUS:
|
||||
packet = new LoginStatusPacket();
|
||||
break;
|
||||
case PACKET_READY:
|
||||
packet = new ReadyPacket();
|
||||
break;
|
||||
case PACKET_SETTIME:
|
||||
packet = new SetTimePacket();
|
||||
break;
|
||||
case PACKET_MESSAGE:
|
||||
packet = new MessagePacket();
|
||||
break;
|
||||
case PACKET_STARTGAME:
|
||||
packet = new StartGamePacket();
|
||||
break;
|
||||
case PACKET_ADDENTITY:
|
||||
packet = new AddEntityPacket();
|
||||
break;
|
||||
case PACKET_ADDITEMENTITY:
|
||||
packet = new AddItemEntityPacket();
|
||||
break;
|
||||
case PACKET_TAKEITEMENTITY:
|
||||
packet = new TakeItemEntityPacket();
|
||||
break;
|
||||
case PACKET_ADDMOB:
|
||||
packet = new AddMobPacket();
|
||||
break;
|
||||
case PACKET_ADDPLAYER:
|
||||
packet = new AddPlayerPacket();
|
||||
break;
|
||||
case PACKET_REMOVEPLAYER:
|
||||
packet = new RemovePlayerPacket();
|
||||
break;
|
||||
case PACKET_MOVEENTITY:
|
||||
packet = new MoveEntityPacket();
|
||||
break;
|
||||
case PACKET_MOVEENTITY_POSROT:
|
||||
packet = new MoveEntityPacket_PosRot();
|
||||
break;
|
||||
//case PACKET_TELEPORTENTITY:
|
||||
// packet = new TeleportEntityPacket();
|
||||
// break;
|
||||
case PACKET_MOVEPLAYER:
|
||||
packet = new MovePlayerPacket();
|
||||
break;
|
||||
case PACKET_RESPAWN:
|
||||
packet = new RespawnPacket();
|
||||
break;
|
||||
case PACKET_REMOVEENTITY:
|
||||
packet = new RemoveEntityPacket();
|
||||
break;
|
||||
case PACKET_PLACEBLOCK:
|
||||
packet = new PlaceBlockPacket();
|
||||
break;
|
||||
case PACKET_REMOVEBLOCK:
|
||||
packet = new RemoveBlockPacket();
|
||||
break;
|
||||
case PACKET_UPDATEBLOCK:
|
||||
packet = new UpdateBlockPacket();
|
||||
break;
|
||||
case PACKET_EXPLODE:
|
||||
packet = new ExplodePacket();
|
||||
break;
|
||||
case PACKET_LEVELEVENT:
|
||||
packet = new LevelEventPacket();
|
||||
break;
|
||||
case PACKET_TILEEVENT:
|
||||
packet = new TileEventPacket();
|
||||
break;
|
||||
case PACKET_ENTITYEVENT:
|
||||
packet = new EntityEventPacket();
|
||||
break;
|
||||
case PACKET_REQUESTCHUNK:
|
||||
packet = new RequestChunkPacket();
|
||||
break;
|
||||
case PACKET_CHUNKDATA:
|
||||
packet = new ChunkDataPacket();
|
||||
break;
|
||||
case PACKET_PLAYEREQUIPMENT:
|
||||
packet = new PlayerEquipmentPacket();
|
||||
break;
|
||||
case PACKET_PLAYERARMOREQUIPMENT:
|
||||
packet = new PlayerArmorEquipmentPacket();
|
||||
break;
|
||||
case PACKET_INTERACT:
|
||||
packet = new InteractPacket();
|
||||
break;
|
||||
case PACKET_USEITEM:
|
||||
packet = new UseItemPacket();
|
||||
break;
|
||||
case PACKET_PLAYERACTION:
|
||||
packet = new PlayerActionPacket();
|
||||
break;
|
||||
case PACKET_HURTARMOR:
|
||||
packet = new HurtArmorPacket();
|
||||
break;
|
||||
case PACKET_SETENTITYDATA:
|
||||
packet = new SetEntityDataPacket();
|
||||
break;
|
||||
case PACKET_SETENTITYMOTION:
|
||||
packet = new SetEntityMotionPacket();
|
||||
break;
|
||||
case PACKET_SETHEALTH:
|
||||
packet = new SetHealthPacket();
|
||||
break;
|
||||
case PACKET_SETSPAWNPOSITION:
|
||||
packet = new SetSpawnPositionPacket();
|
||||
break;
|
||||
case PACKET_ANIMATE:
|
||||
packet = new AnimatePacket();
|
||||
break;
|
||||
case PACKET_SENDINVENTORY:
|
||||
packet = new SendInventoryPacket();
|
||||
break;
|
||||
case PACKET_DROPITEM:
|
||||
packet = new DropItemPacket();
|
||||
break;
|
||||
case PACKET_CONTAINERACK:
|
||||
packet = new ContainerAckPacket();
|
||||
break;
|
||||
case PACKET_CONTAINEROPEN:
|
||||
packet = new ContainerOpenPacket();
|
||||
break;
|
||||
case PACKET_CONTAINERCLOSE:
|
||||
packet = new ContainerClosePacket();
|
||||
break;
|
||||
case PACKET_CONTAINERSETDATA:
|
||||
packet = new ContainerSetDataPacket();
|
||||
break;
|
||||
case PACKET_CONTAINERSETSLOT:
|
||||
packet = new ContainerSetSlotPacket();
|
||||
break;
|
||||
case PACKET_CONTAINERSETCONTENT:
|
||||
packet = new ContainerSetContentPacket();
|
||||
break;
|
||||
case PACKET_CHAT:
|
||||
packet = new ChatPacket();
|
||||
break;
|
||||
case PACKET_SIGNUPDATE:
|
||||
packet = new SignUpdatePacket();
|
||||
break;
|
||||
case PACKET_ADDPAINTING:
|
||||
packet = new AddPaintingPacket();
|
||||
break;
|
||||
case PACKET_ADVENTURESETTINGS:
|
||||
packet = new AdventureSettingsPacket();
|
||||
break;
|
||||
}
|
||||
|
||||
return packet;
|
||||
}
|
||||
|
||||
|
||||
namespace PacketUtil
|
||||
{
|
||||
signed char Rot_degreesToChar(float rot) {
|
||||
return (signed char)(rot / 360.0f * 256.0f);
|
||||
}
|
||||
float Rot_charToDegrees(signed char rot) {
|
||||
return ((float)rot) / 256.0f * 360.0f;
|
||||
}
|
||||
|
||||
void Rot_entityToChar(const Entity* e, signed char& yRot, signed char& xRot) {
|
||||
xRot = Rot_degreesToChar(e->xRot);
|
||||
yRot = Rot_degreesToChar(e->yRot);
|
||||
}
|
||||
|
||||
void Rot_charToEntity(Entity* e, signed char yRot, signed char xRot) {
|
||||
e->xRot = e->xRotO = Rot_charToDegrees(xRot);
|
||||
e->yRot = e->yRotO = Rot_charToDegrees(yRot);
|
||||
}
|
||||
|
||||
void writeItemInstance(const ItemInstance& item, RakNet::BitStream* stream) {
|
||||
short id = item.id;
|
||||
unsigned char count = item.count;
|
||||
short aux = item.getAuxValue();
|
||||
stream->Write(id);
|
||||
stream->Write(count);
|
||||
stream->Write(aux);
|
||||
}
|
||||
|
||||
ItemInstance readItemInstance(RakNet::BitStream* stream) {
|
||||
short id, aux;
|
||||
unsigned char count;
|
||||
stream->Read(id);
|
||||
stream->Read(count);
|
||||
stream->Read(aux);
|
||||
return ItemInstance(id, count, aux);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user