Skip to content

Commit b6a3282

Browse files
authored
Fix hologram height offsets in 1.8->1.7 (#601)
1 parent aff88a6 commit b6a3282

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

common/src/main/java/com/viaversion/viarewind/protocol/v1_8to1_7_6_10/data/VirtualHologramEntity.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,19 @@ private void updateLocation() {
148148
entityHeadLook.send(Protocol1_8To1_7_6_10.class);
149149
} else if (currentState == State.HOLOGRAM) {
150150
// Don't ask me where this offset is coming from
151-
teleportEntity(entityIds[0], locX, (locY + (marker ? 54.3625 : small ? 56 : 57) - 0.16), locZ, 0, 0); // Skull
151+
teleportEntity(entityIds[0], locX, (locY + getOffset()), locZ, 0, 0); // Skull
152+
}
153+
}
154+
155+
private double getOffset() {
156+
double baseOffset = 54.35;
157+
158+
if (marker) {
159+
return baseOffset;
160+
} else if (small) {
161+
return baseOffset + 0.9875;
162+
} else {
163+
return baseOffset + (0.9875 * 2);
152164
}
153165
}
154166

@@ -256,13 +268,12 @@ public void sendSpawnPacket(final EntityPacketRewriter1_8 entityRewriter) {
256268
entityIds = new int[]{entityId};
257269
} else if (currentState == State.HOLOGRAM) {
258270
final int[] entityIds = {entityId, additionalEntityId()};
259-
final double offsetY = (locY + (marker ? 54.3625 : small ? 56 : 57)) - 0.16;
260271

261272
final PacketWrapper spawnSkull = PacketWrapper.create(ClientboundPackets1_7_2_5.ADD_ENTITY, user);
262273
spawnSkull.write(Types.VAR_INT, entityIds[0]);
263274
spawnSkull.write(Types.BYTE, (byte) 66);
264275
spawnSkull.write(Types.INT, (int) (locX * 32.0));
265-
spawnSkull.write(Types.INT, (int) (offsetY * 32.0));
276+
spawnSkull.write(Types.INT, (int) ((locY + getOffset()) * 32.0));
266277
spawnSkull.write(Types.INT, (int) (locZ * 32.0));
267278
spawnSkull.write(Types.BYTE, (byte) 0);
268279
spawnSkull.write(Types.BYTE, (byte) 0);
@@ -272,8 +283,8 @@ public void sendSpawnPacket(final EntityPacketRewriter1_8 entityRewriter) {
272283
final List<EntityData> squidEntityData = new ArrayList<>();
273284
squidEntityData.add(new EntityData(0, EntityDataTypes1_8.BYTE, (byte) 32));
274285

275-
spawnEntity(entityIds[0], EntityTypes1_8.EntityType.SQUID.getId(), locX, offsetY, locZ, squidEntityData);
276-
spawnEntity(entityIds[1], EntityTypes1_8.EntityType.HORSE.getId(), locX, offsetY + 0.74, locZ, new ArrayList<>());
286+
spawnEntity(entityIds[0], EntityTypes1_8.EntityType.SQUID.getId(), locX, locY + getOffset(), locZ, squidEntityData);
287+
spawnEntity(entityIds[1], EntityTypes1_8.EntityType.HORSE.getId(), locX, locY + (getOffset() + 0.68), locZ, new ArrayList<>());
277288

278289
this.entityIds = entityIds;
279290
}

0 commit comments

Comments
 (0)