mc-entity · v1.14.4 · 2026-08-19 · sha256 1e225b34adc4a171

mc-entity v1.14.4A

Immutable. This exact content is served forever at /api/v1/blob/1e225b34adc4a171.

---
name: mc-entity
description: Fabric 实体开发。EntityType、EntityCategory、initAttributes。触发词:实体、Entity、EntityType
platform: fabric
version: "1.14.4"
dependencies: []
mappings: yarn
---

# 实体开发(Fabric 1.14.4)

1.14.x 没有 `FabricDefaultAttributeRegistry`。属性在实体类里重写 `initAttributes()`。不要编造 `EntityAttributeRegistry`,也不要用 Forge `RegistryObject`。

```java
public class MyPigEntity extends PigEntity {
    public MyPigEntity(EntityType<? extends MyPigEntity> type, World world) {
        super(type, world);
    }

    @Override
    protected void initAttributes() {
        super.initAttributes();
        this.getAttributeInstance(EntityAttributes.MAX_HEALTH).setBaseValue(20.0);
    }
}

public static final EntityType<MyPigEntity> MY_PIG = Registry.register(
    Registry.ENTITY_TYPE,
    new Identifier(MOD_ID, "my_pig"),
    EntityType.Builder.<MyPigEntity>create(MyPigEntity::new, EntityCategory.CREATURE)
        .setDimensions(0.9f, 1.4f)
        .build("my_pig")
);
```

Yarn 1.14.4+build.18:`setDimensions(float,float)` + `build(String)`。不要写 MCP 的 `.size()` / `.build(null)`。

渲染器在 `ClientModInitializer`。包名 `net.fabricmc.fabric.api.client.render.EntityRendererRegistry`;`register` 是**实例方法**,第一参是 **`Class`**(不是 EntityType):

```java
EntityRendererRegistry.INSTANCE.register(MyPigEntity.class, (dispatcher, context) -> {
    return new PigEntityRenderer(dispatcher);
});
```