mirror of
https://github.com/ViaVersion/ViaFabricPlus.git
synced 2024-09-28 04:27:25 +02:00
Don't clear entity eye height and attachment points
This commit is contained in:
parent
e7f9188fbf
commit
bc8682b010
@ -49,7 +49,6 @@ import java.util.concurrent.CompletableFuture;
|
||||
*
|
||||
* TODO | Port
|
||||
* - Readd MixinCustomPayloadS2CPacket, MixinInGameHud
|
||||
* - EntityDimensionDiff: Add eye height and attachment point
|
||||
* - Test bedrock transfer
|
||||
* - Readd item fixes: MixinItemStack, MixinDrawContext, MixinPacketByteBuf
|
||||
* - Figure out how to fix 32k enchantments with codecs (MixinEnchantmentHelper)
|
||||
|
@ -23,6 +23,8 @@ import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||
import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback;
|
||||
import de.florianmichael.viafabricplus.protocoltranslator.ProtocolTranslator;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.entity.EntityAttachmentType;
|
||||
import net.minecraft.entity.EntityAttachments;
|
||||
import net.minecraft.entity.EntityDimensions;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
|
||||
@ -42,105 +44,105 @@ public class EntityDimensionDiff {
|
||||
*/
|
||||
private static final Map<EntityType<?>, Map<ProtocolVersion, EntityDimensions>> ENTITY_DIMENSIONS = linkedHashMap(
|
||||
EntityType.WITHER, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.9F, 4.0F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.WITHER).withChangingDimensions(0.9F, 4.0F).build(),
|
||||
ProtocolVersion.v1_8, EntityType.WITHER.getDimensions()
|
||||
),
|
||||
EntityType.SILVERFISH, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.3F, 0.7F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.SILVERFISH).withChangingDimensions(0.3F, 0.7F).build(),
|
||||
ProtocolVersion.v1_8, EntityType.SILVERFISH.getDimensions()
|
||||
),
|
||||
EntityType.SNOW_GOLEM, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.4F, 1.8F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.SNOW_GOLEM).withChangingDimensions(0.4F, 1.8F).build(),
|
||||
ProtocolVersion.v1_8, EntityType.SNOW_GOLEM.getDimensions()
|
||||
),
|
||||
EntityType.ZOMBIE, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.6F, 1.8F),
|
||||
ProtocolVersion.v1_8, EntityDimensions.fixed(EntityType.ZOMBIE.getDimensions().width(), EntityType.ZOMBIE.getDimensions().height()),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.ZOMBIE).withChangingDimensions(0.6F, 1.8F).build(),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.ZOMBIE).withFixedDimensions(0.6F, 1.95F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.ZOMBIE.getDimensions()
|
||||
),
|
||||
EntityType.CHICKEN, linkedHashMap(
|
||||
LegacyProtocolVersion.b1_7tob1_7_3, EntityDimensions.changing(0.3F, 0.4F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.3F, 0.7F),
|
||||
LegacyProtocolVersion.b1_7tob1_7_3, EntityDimensionsBuilder.create(EntityType.CHICKEN).withChangingDimensions(0.3F, 0.4F).build(),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.CHICKEN).withChangingDimensions(0.3F, 0.7F).build(),
|
||||
ProtocolVersion.v1_8, EntityType.CHICKEN.getDimensions()
|
||||
),
|
||||
EntityType.SHEEP, linkedHashMap(
|
||||
LegacyProtocolVersion.c0_28toc0_30, EntityDimensions.changing(1.4F, 1.72F),
|
||||
LegacyProtocolVersion.c0_28toc0_30, EntityDimensionsBuilder.create(EntityType.SHEEP).withChangingDimensions(1.4F, 1.72F).build(),
|
||||
LegacyProtocolVersion.a1_0_15, EntityType.SHEEP.getDimensions()
|
||||
),
|
||||
EntityType.OCELOT, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.6F, 0.8F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.OCELOT).withChangingDimensions(0.6F, 0.8F).build(),
|
||||
ProtocolVersion.v1_8, EntityType.OCELOT.getDimensions()
|
||||
),
|
||||
EntityType.BOAT, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(1.5F, 0.6F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.BOAT).withChangingDimensions(1.5F, 0.6F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.BOAT.getDimensions()
|
||||
),
|
||||
EntityType.CREEPER, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.6F, 1.8F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.CREEPER).withChangingDimensions(0.6F, 1.8F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.CREEPER.getDimensions()
|
||||
),
|
||||
EntityType.IRON_GOLEM, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(1.4F, 2.9F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.IRON_GOLEM).withChangingDimensions(1.4F, 2.9F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.IRON_GOLEM.getDimensions()
|
||||
),
|
||||
EntityType.SKELETON, linkedHashMap(
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.6F, 1.8F),
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.6F, 1.95F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.SKELETON).withChangingDimensions(0.6F, 1.8F).build(),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.SKELETON).withChangingDimensions(0.6F, 1.95F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.SKELETON.getDimensions()
|
||||
),
|
||||
EntityType.WITHER_SKELETON, linkedHashMap(
|
||||
LegacyProtocolVersion.r1_4_6tor1_4_7, EntityDimensions.changing(0.72F, 2.16F),
|
||||
ProtocolVersion.v1_7_6, EntityDimensions.changing(0.72F, 2.34F),
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.72F, 2.535F),
|
||||
LegacyProtocolVersion.r1_4_6tor1_4_7, EntityDimensionsBuilder.create(EntityType.WITHER_SKELETON).withChangingDimensions(0.72F, 2.16F).build(),
|
||||
ProtocolVersion.v1_7_6, EntityDimensionsBuilder.create(EntityType.WITHER_SKELETON).withChangingDimensions(0.72F, 2.34F).build(),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.WITHER_SKELETON).withChangingDimensions(0.72F, 2.535F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.WITHER_SKELETON.getDimensions()
|
||||
),
|
||||
EntityType.COW, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.9F, 1.3F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.COW).withChangingDimensions(0.9F, 1.3F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.COW.getDimensions()
|
||||
),
|
||||
EntityType.HORSE, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(1.4F, 1.6F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.HORSE).withChangingDimensions(1.4F, 1.6F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.HORSE.getDimensions()
|
||||
),
|
||||
EntityType.MOOSHROOM, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.9F, 1.3F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.MOOSHROOM).withChangingDimensions(0.9F, 1.3F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.MOOSHROOM.getDimensions()
|
||||
),
|
||||
EntityType.RABBIT, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.6F, 0.7F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.RABBIT).withChangingDimensions(0.6F, 0.7F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.RABBIT.getDimensions()
|
||||
),
|
||||
EntityType.SQUID, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.95F, 0.95F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.SQUID).withChangingDimensions(0.95F, 0.95F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.SQUID.getDimensions()
|
||||
),
|
||||
EntityType.VILLAGER, linkedHashMap(
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.6F, 1.8F),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.VILLAGER).withChangingDimensions(0.6F, 1.8F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.VILLAGER.getDimensions()
|
||||
),
|
||||
EntityType.WOLF, linkedHashMap(
|
||||
LegacyProtocolVersion.r1_1, EntityDimensions.changing(0.8F, 0.8F),
|
||||
ProtocolVersion.v1_8, EntityDimensions.changing(0.6F, 0.8F),
|
||||
LegacyProtocolVersion.r1_1, EntityDimensionsBuilder.create(EntityType.WOLF).withChangingDimensions(0.8F, 0.8F).build(),
|
||||
ProtocolVersion.v1_8, EntityDimensionsBuilder.create(EntityType.WOLF).withChangingDimensions(0.6F, 0.8F).build(),
|
||||
ProtocolVersion.v1_9, EntityType.WOLF.getDimensions()
|
||||
),
|
||||
EntityType.DRAGON_FIREBALL, linkedHashMap(
|
||||
ProtocolVersion.v1_10, EntityDimensions.changing(0.3125F, 0.3125F),
|
||||
ProtocolVersion.v1_10, EntityDimensionsBuilder.create(EntityType.DRAGON_FIREBALL).withChangingDimensions(0.3125F, 0.3125F).build(),
|
||||
ProtocolVersion.v1_11, EntityType.DRAGON_FIREBALL.getDimensions()
|
||||
),
|
||||
EntityType.LEASH_KNOT, linkedHashMap(
|
||||
ProtocolVersion.v1_16_4, EntityDimensions.changing(0.5F, 0.5F),
|
||||
ProtocolVersion.v1_16_4, EntityDimensionsBuilder.create(EntityType.LEASH_KNOT).withChangingDimensions(0.5F, 0.5F).build(),
|
||||
ProtocolVersion.v1_17, EntityType.LEASH_KNOT.getDimensions()
|
||||
),
|
||||
EntityType.SLIME, linkedHashMap(
|
||||
ProtocolVersion.v1_13_2, EntityDimensions.changing(2F, 2F),
|
||||
ProtocolVersion.v1_13_2, EntityDimensionsBuilder.create(EntityType.SLIME).withChangingDimensions(2F, 2F).build(),
|
||||
ProtocolVersion.v1_14, EntityType.SLIME.getDimensions()
|
||||
),
|
||||
EntityType.MAGMA_CUBE, linkedHashMap(
|
||||
ProtocolVersion.v1_13_2, EntityDimensions.changing(2F, 2F),
|
||||
ProtocolVersion.v1_13_2, EntityDimensionsBuilder.create(EntityType.MAGMA_CUBE).withChangingDimensions(2F, 2F).build(),
|
||||
ProtocolVersion.v1_14, EntityType.MAGMA_CUBE.getDimensions()
|
||||
),
|
||||
EntityType.ARROW, linkedHashMap(
|
||||
LegacyProtocolVersion.c0_28toc0_30, EntityDimensions.changing(0.3F, 0.5F),
|
||||
LegacyProtocolVersion.c0_28toc0_30, EntityDimensionsBuilder.create(EntityType.ARROW).withChangingDimensions(0.3F, 0.5F).build(),
|
||||
LegacyProtocolVersion.a1_0_15, EntityType.ARROW.getDimensions()
|
||||
)
|
||||
);
|
||||
@ -208,4 +210,49 @@ public class EntityDimensionDiff {
|
||||
return closestDimensions;
|
||||
}
|
||||
|
||||
private static class EntityDimensionsBuilder {
|
||||
|
||||
private EntityDimensions entityDimensions;
|
||||
private EntityAttachments.Builder attachments = EntityAttachments.builder();
|
||||
|
||||
public static EntityDimensionsBuilder create() {
|
||||
return new EntityDimensionsBuilder();
|
||||
}
|
||||
|
||||
public static EntityDimensionsBuilder create(final EntityType<?> template) {
|
||||
final EntityDimensionsBuilder entityDimensionsBuilder = new EntityDimensionsBuilder();
|
||||
entityDimensionsBuilder.entityDimensions = template.getDimensions();
|
||||
return entityDimensionsBuilder;
|
||||
}
|
||||
|
||||
public EntityDimensionsBuilder withChangingDimensions(final float width, final float height) {
|
||||
this.entityDimensions = new EntityDimensions(width, height, this.entityDimensions.eyeHeight(), this.entityDimensions.attachments(), false);
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityDimensionsBuilder withFixedDimensions(final float width, final float height) {
|
||||
this.entityDimensions = new EntityDimensions(width, height, this.entityDimensions.eyeHeight(), this.entityDimensions.attachments(), true);
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityDimensionsBuilder withEyeHeight(final float eyeHeight) {
|
||||
this.entityDimensions = this.entityDimensions.withEyeHeight(eyeHeight);
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityDimensionsBuilder withPassengerAttachments(final float... offsetYs) {
|
||||
for (float f : offsetYs) {
|
||||
this.attachments = this.attachments.add(EntityAttachmentType.PASSENGER, 0.0F, f, 0.0F);
|
||||
}
|
||||
this.entityDimensions = this.entityDimensions.withAttachments(this.attachments);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityDimensions build() {
|
||||
return this.entityDimensions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user