ffqwfqwfw
This commit is contained in:
@@ -90,8 +90,10 @@ bool GameMode::useItemOn(Player* player, Level* level, ItemInstance* item, int x
|
||||
float clickY = hit.y - y;
|
||||
float clickZ = hit.z - z;
|
||||
if (level->isClientSide) {
|
||||
LOGI("%f %f %f \n", player->x, player->y, player->z);
|
||||
|
||||
item = player->inventory->getSelected();
|
||||
UseItemPacket packet(x, y, z, face, item, player->entityId, clickX, clickY, clickZ);
|
||||
UseItemPacket packet(x, y, z, face, item, player->entityId, clickX, clickY, clickZ, player->x, player->y, player->z);
|
||||
minecraft->raknetInstance->send(packet);
|
||||
}
|
||||
int t = level->getTile(x, y, z);
|
||||
@@ -100,7 +102,7 @@ bool GameMode::useItemOn(Player* player, Level* level, ItemInstance* item, int x
|
||||
return true;
|
||||
|
||||
if (item == NULL) return false;
|
||||
if(isCreativeType()) {
|
||||
if (isCreativeType()) {
|
||||
int aux = item->getAuxValue();
|
||||
int count = item->count;
|
||||
bool success = item->useOn(player, level, x, y, z, face, clickX, clickY, clickZ);
|
||||
@@ -117,7 +119,7 @@ bool GameMode::useItem( Player* player, Level* level, ItemInstance* item ) {
|
||||
|
||||
ItemInstance* itemInstance = item->use(level, player);
|
||||
if(level->isClientSide) {
|
||||
UseItemPacket packet(item, player->entityId, player->aimDirection);
|
||||
UseItemPacket packet(item, player->entityId, player->aimDirection, player->x, player->y, player->z);
|
||||
minecraft->raknetInstance->send(packet);
|
||||
}
|
||||
if (itemInstance != item || (itemInstance != NULL && itemInstance->count != oldCount)) {
|
||||
|
||||
@@ -820,7 +820,7 @@ void ClientSideNetworkHandler::handle(const RakNet::RakNetGUID& source, SetEntit
|
||||
if (!level)
|
||||
return;
|
||||
|
||||
LOGI("SetEntityDataPacket\n");
|
||||
// LOGI("SetEntityDataPacket\n");
|
||||
|
||||
Entity* e = level->getEntity(packet->id);
|
||||
if (e) {
|
||||
|
||||
@@ -433,7 +433,7 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, MovePlay
|
||||
{
|
||||
if (!level) return;
|
||||
|
||||
LOGI("MovePlayerPacket\n");
|
||||
// LOGI("MovePlayerPacket\n");
|
||||
if (Entity* entity = level->getEntity(packet->entityId)) {
|
||||
ServerPlayer* player = (ServerPlayer*) getPlayer(source);
|
||||
|
||||
@@ -713,7 +713,10 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, UseItemP
|
||||
|
||||
LOGI("UseItemPacket: id %i data %i\n", packet->itemId, packet->itemData);
|
||||
Entity* entity = level->getEntity(packet->entityId);
|
||||
|
||||
if (entity && entity->isPlayer()) {
|
||||
LOGI("%f %f %f \n", entity->x, entity->y, entity->z);
|
||||
|
||||
Player* player = (Player*) entity;
|
||||
int x = packet->x, y = packet->y, z = packet->z;
|
||||
Tile* t = Tile::tiles[level->getTile(x, y, z)];
|
||||
@@ -747,6 +750,12 @@ void ServerSideNetworkHandler::handle(const RakNet::RakNetGUID& source, UseItemP
|
||||
|
||||
ItemInstance* item = player->inventory->getItem(slot);
|
||||
|
||||
player->x = packet->playerX;
|
||||
player->y = packet->playerY;
|
||||
player->z = packet->playerZ;
|
||||
LOGI("upd: %f %f %f \n", packet->playerX, packet->playerY, packet->playerZ);
|
||||
LOGI("plr new: %f %f %f \n", player->x, player->y, player->z);
|
||||
|
||||
if(packet->face == 255) {
|
||||
// Special case: x,y,z means direction-of-action
|
||||
player->aimDirection.set(packet->x / 32768.0f, packet->y / 32768.0f, packet->z / 32768.0f);
|
||||
|
||||
@@ -16,10 +16,12 @@ public:
|
||||
short itemId;
|
||||
unsigned char itemData;
|
||||
ItemInstance item;
|
||||
float playerX, playerY, playerZ;
|
||||
|
||||
UseItemPacket() {}
|
||||
|
||||
UseItemPacket(int x, int y, int z, int face, const ItemInstance* item, int entityId, float clickX, float clickY, float clickZ)
|
||||
UseItemPacket(int x, int y, int z, int face, const ItemInstance* item, int entityId, float clickX, float clickY, float clickZ,
|
||||
float plrX, float plrY, float plrZ)
|
||||
: x(x),
|
||||
y(y),
|
||||
z(z),
|
||||
@@ -29,17 +31,23 @@ public:
|
||||
entityId(entityId),
|
||||
clickX(clickX),
|
||||
clickY(clickY),
|
||||
clickZ(clickZ)
|
||||
clickZ(clickZ),
|
||||
playerX(plrX),
|
||||
playerY(plrY),
|
||||
playerZ(plrZ)
|
||||
{}
|
||||
|
||||
UseItemPacket(const ItemInstance* item, int entityId, const Vec3& aim)
|
||||
UseItemPacket(const ItemInstance* item, int entityId, const Vec3& aim, float plrX, float plrY, float plrZ)
|
||||
: face(255),
|
||||
itemId(item? item->id : 0),
|
||||
itemData(item? item->getAuxValue() : 0),
|
||||
entityId(entityId),
|
||||
x((int)(aim.x * 32768.0f)),
|
||||
y((int)(aim.y * 32768.0f)),
|
||||
z((int)(aim.z * 32768.0f))
|
||||
z((int)(aim.z * 32768.0f)),
|
||||
playerX(plrX),
|
||||
playerY(plrY),
|
||||
playerZ(plrZ)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -57,6 +65,9 @@ public:
|
||||
bitStream->Write(clickX);
|
||||
bitStream->Write(clickY);
|
||||
bitStream->Write(clickZ);
|
||||
bitStream->Write(playerX);
|
||||
bitStream->Write(playerY);
|
||||
bitStream->Write(playerZ);
|
||||
}
|
||||
|
||||
void read(RakNet::BitStream* bitStream)
|
||||
@@ -74,7 +85,9 @@ public:
|
||||
item.id = itemId;
|
||||
item.setAuxValue(itemData);
|
||||
item.count = (itemId == 0 && itemData == 0)? 0 : 1;
|
||||
|
||||
bitStream->Read(playerX);
|
||||
bitStream->Read(playerY);
|
||||
bitStream->Read(playerZ);
|
||||
}
|
||||
|
||||
void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback)
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
if (level->setTileAndData(x, y, z, tileId, data)) {
|
||||
Tile::tiles[tileId]->setPlacedBy(level, x, y, z, player);
|
||||
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, tile->soundType->getStepSound(), (tile->soundType->getVolume() + 1) / 2, tile->soundType->getPitch() * 0.8f);
|
||||
|
||||
printf("%f %f %f \n", player->x, player->y, player->z);
|
||||
/*
|
||||
PlaceBlockPacket packet(player->entityId, x, y, z, face, tileId, instance->getAuxValue());
|
||||
//LOGI("Place block at @ %d, %d, %d\n", x, y, z);
|
||||
|
||||
Reference in New Issue
Block a user