void cHangingEntity::SpawnOn(cClientHandle & a_ClientHandle) { int Dir = 0; // The client uses different values for item frame directions and block faces. Our constants are for the block faces, so we convert them here to item frame faces switch (m_BlockFace) { case BLOCK_FACE_ZP: break; // Initialised to zero case BLOCK_FACE_ZM: Dir = 2; break; case BLOCK_FACE_XM: Dir = 1; break; case BLOCK_FACE_XP: Dir = 3; break; default: ASSERT(!"Unhandled block face when trying to spawn item frame!"); return; } if ((Dir == 0) || (Dir == 2)) // Probably a client bug, but two directions are flipped and contrary to the norm, so we do -180 { SetYaw((Dir * 90) - 180); } else { SetYaw(Dir * 90); } a_ClientHandle.SendSpawnObject(*this, 71, Dir, (Byte)GetYaw(), (Byte)GetPitch()); a_ClientHandle.SendEntityMetadata(*this); }
void cObjective::SendTo(cClientHandle & a_Client) { a_Client.SendScoreboardObjective(m_Name, m_DisplayName, 0); for (cScoreMap::const_iterator it = m_Scores.begin(); it != m_Scores.end(); ++it) { a_Client.SendScoreUpdate(m_Name, it->first, it->second, 0); } }
void cTNTEntity::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnObject(*this, 50, 1, 0, 0); // 50 means TNT m_bDirtyPosition = false; m_bDirtySpeed = false; m_bDirtyOrientation = false; m_bDirtyHead = false; }
void cExpOrb::SpawnOn(cClientHandle & a_Client) { a_Client.SendExperienceOrb(*this); m_bDirtyPosition = false; m_bDirtySpeed = false; m_bDirtyOrientation = false; m_bDirtyHead = false; }
void cPlayer::SpawnOn(cClientHandle & a_Client) { if (!m_bVisible || (m_ClientHandle == (&a_Client))) { return; } a_Client.SendPlayerSpawn(*this); a_Client.SendEntityHeadLook(*this); a_Client.SendEntityEquipment(*this, 0, m_Inventory.GetEquippedItem() ); a_Client.SendEntityEquipment(*this, 1, m_Inventory.GetEquippedBoots() ); a_Client.SendEntityEquipment(*this, 2, m_Inventory.GetEquippedLeggings() ); a_Client.SendEntityEquipment(*this, 3, m_Inventory.GetEquippedChestplate() ); a_Client.SendEntityEquipment(*this, 4, m_Inventory.GetEquippedHelmet() ); }
void cMinecart::SpawnOn(cClientHandle & a_ClientHandle) { char SubType = 0; switch (m_Payload) { case mpNone: SubType = 0; break; case mpChest: SubType = 1; break; case mpFurnace: SubType = 2; break; case mpTNT: SubType = 3; break; case mpHopper: SubType = 5; break; default: { ASSERT(!"Unknown payload, cannot spawn on client"); return; } } a_ClientHandle.SendSpawnVehicle(*this, 10, SubType); // 10 = Minecarts, SubType = What type of Minecart }
void cMinecart::SpawnOn(cClientHandle & a_ClientHandle) { char Type = 0; switch (m_Payload) //Wiki.vg is outdated on this!! { case mpNone: Type = 9; break; //? case mpChest: Type = 10; break; case mpFurnace: Type = 11; break; //? case mpTNT: Type = 12; break; //? case mpHopper: Type = 13; break; //? default: { ASSERT(!"Unknown payload, cannot spawn on client"); return; } } a_ClientHandle.SendSpawnVehicle(*this, Type); }
void cScoreboard::SendTo(cClientHandle & a_Client) { cCSLock Lock(m_CSObjectives); for (cObjectiveMap::iterator it = m_Objectives.begin(); it != m_Objectives.end(); ++it) { it->second.SendTo(a_Client); } for (int i = 0; i < (int) dsCount; ++i) { // Avoid race conditions cObjective * Objective = m_Display[i]; if (Objective) { a_Client.SendDisplayObjective(Objective->GetName(), (eDisplaySlot) i); } } }
void cBoat::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnVehicle(*this, 1); }
void cFloater::SpawnOn(cClientHandle & a_Client) { a_Client.SendSpawnObject(*this, 90, m_PlayerID, 0, 0); }
bool cServer::Command(cClientHandle & a_Client, AString & a_Cmd) { return cRoot::Get()->GetPluginManager()->CallHookChat(a_Client.GetPlayer(), a_Cmd); }
void cWindow::SendWholeWindow(cClientHandle & a_Client) { a_Client.SendWholeInventory(*this); }
void cSplashPotionEntity::SpawnOn(cClientHandle & a_Client) { a_Client.SendSpawnObject(*this, 73, m_PotionColor, ANGLE_TO_PROTO(GetYaw()), ANGLE_TO_PROTO(GetPitch())); a_Client.SendEntityMetadata(*this); }
void cSignEntity::SendTo(cClientHandle & a_Client) { a_Client.SendUpdateSign(m_PosX, m_PosY, m_PosZ, m_Line[0], m_Line[1], m_Line[2], m_Line[3]); }
void cPickup::SpawnOn(cClientHandle & a_Client) { a_Client.SendPickupSpawn(*this); }
void cChestEntity::SendTo(cClientHandle & a_Client) { // Send a dummy "number of players with chest open" packet to make the chest visible: a_Client.SendBlockAction(m_PosX, m_PosY, m_PosZ, 1, 0, m_BlockType); }
void cSkeleton::SpawnOn(cClientHandle & a_ClientHandle) { super::SpawnOn(a_ClientHandle); a_ClientHandle.SendEntityEquipment(*this, 0, cItem(E_ITEM_BOW)); }
void cMinecart::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnVehicle(*this, 10, static_cast<char>(m_Payload)); // 10 = Minecarts a_ClientHandle.SendEntityMetadata(*this); }
void cMobHeadEntity::SendTo(cClientHandle & a_Client) { cWorld * World = a_Client.GetPlayer()->GetWorld(); a_Client.SendBlockChange(m_PosX, m_PosY, m_PosZ, m_BlockType, World->GetBlockMeta(m_PosX, m_PosY, m_PosZ)); a_Client.SendUpdateBlockEntity(*this); }
void cBeaconEntity::SendTo(cClientHandle & a_Client) { a_Client.SendUpdateBlockEntity(*this); }
void cFlowerPotEntity::SendTo(cClientHandle & a_Client) { a_Client.SendUpdateBlockEntity(*this); }
void cCommandBlockEntity::SendTo(cClientHandle & a_Client) { a_Client.SendUpdateBlockEntity(*this); }
void cMonster::SpawnOn(cClientHandle & a_Client) { a_Client.SendSpawnMob(*this); }
void cPainting::SpawnOn(cClientHandle & a_Client) { super::SpawnOn(a_Client); a_Client.SendPaintingSpawn(*this); }
void cProjectileEntity::SpawnOn(cClientHandle & a_Client) { // Default spawning - use the projectile kind to spawn an object: a_Client.SendSpawnObject(*this, m_ProjectileKind, 12, ANGLE_TO_PROTO(GetYaw()), ANGLE_TO_PROTO(GetPitch())); a_Client.SendEntityMetadata(*this); }
void cFallingBlock::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnFallingBlock(*this); }
void cMinecart::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnVehicle(*this, 10, (char)m_Payload); // 10 = Minecarts a_ClientHandle.SendEntityMetadata(*this); }
void cEnderCrystal::SpawnOn(cClientHandle & a_ClientHandle) { a_ClientHandle.SendSpawnObject(*this, 51, 0, (Byte)GetYaw(), (Byte)GetPitch()); }