//go:build gl // 实体可视映射:实体类型 → 广告牌贴图键与高度(渲染.md §5.3)。 package main import ( "mc/internal/entity" "mc/internal/item" ) // entityVisual 返回实体的贴图键与身高(米)。 // 动物按 ID 轮换四种外观(cow/pig/sheep/chicken);掉落物用物品图标(0.3 米小广告牌)。 func entityVisual(e *entity.Entity, items *item.Registry) (key string, height float32) { switch e.Kind { case entity.KindZombie: return "entity/zombie/zombie", 1.95 case entity.KindVillager: return "entity/villager/villager", 1.95 case entity.KindAnimal: switch e.ID % 4 { case 0: return "entity/cow/cow_temperate", 1.4 case 1: return "entity/pig/pig_temperate", 0.9 case 2: return "entity/sheep/sheep", 1.3 default: return "entity/chicken/chicken_temperate", 0.7 } case entity.KindItemDrop: d, ok := e.Data.(*entity.Drop) if !ok || items == nil { return "", 0 } def, ok := items.Get(d.Item) if !ok { return "", 0 } return def.Texture, 0.45 default: return "", 0 } }