func addSprites(u *packetUpdateObject, obj world.Visible) *packetUpdateObject { sheet := obj.Sprite() x, y := obj.SpritePos() width, height := obj.SpriteSize() scale := obj.Scale() animation := obj.AnimationType() for i, c := range obj.Colors() { if c == "" { continue } u.Sprites = append(u.Sprites, packetUpdateSprite{ Sheet: sheet, Color: c, Extra: map[string]interface{}{ "w": width, "h": height, "x": x, "y": y + uint(i), "s": scale, "a": animation, }, }) } for _, a := range obj.Attached() { addSprites(u, a) } return u }