Files
ngzz-mc/cmd/client/entities_gl.go

44 lines
1.1 KiB
Go
Raw Normal View History

//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.3
default:
return "", 0
}
}