the whole game

This commit is contained in:
Kolyah35
2026-03-02 22:04:18 +03:00
parent 816e9060b4
commit f0617a5d22
2069 changed files with 581500 additions and 0 deletions

212
src/network/Packet.cpp Executable file
View 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);
}
}