该实现没有任何固有的“体素”,它只是表示形成各种形状的点的集合。 将体素作为概念引入的唯一点是在 Block 类中提供的第三方方法中,该方法在构造形状之前将给定的点除以 16.0(标准化的 16x16x16 每立方体素概念)。 但除此之外,在主要的类和类型中,没有应用这个概念,它们只是表示可以具有任何维度或分辨率的形状的纯粹点。 我确实认识到 Mojang 在 String 中将它们称为 VoxelShape 并且 Yarn 可能倾向于尊重 Mojang 的命名决定,但我觉得这是名称可以轻松简化的各种情况之一,因为前缀可以被视为多余或概念上不正确。 对此的另一个想法是,在Advancement
中 Mojang 的 toString 实际上将其命名为SimpleAdvancement
情况被认为是不正确的,并且 Mojang 实际上调用了类Advancement
,这可能非常VoxelShape
也是如此。 实际上,Mojang 在代码库中仅将其称为 VoxelShape 2 次:VoxelShape 的 toString,以及 ArrayVoxelShape 中的 IllegalArgumentException 消息。 同时,在 VoxelShape 中还有一个 UnsupportedOperationException 消息,仅将其描述为一个形状( "No bounds for empty shape."
)。 我没有更多要放在这里,所以我只是提醒大家这是一个“热门话题”,我不是在推动这一变化,这只是一个通配符建议。
Voxel
表示网格点对齐,我相信。 如果点可以不在体素格点上,我绝对支持去除Voxel
前缀。
所以这里是热门话题的反问题:体素确实代表了一般计算机编程和游戏设计中的其他东西,如这篇维基百科文章所述。
但是在 Minecraft 的上下文中, Voxel
一直是块空间中像素概念的常用术语,然而,这些形状可以在任何地方自由使用,无需明确绑定到块坐标。 这实际上取决于您是否认为Shape
足够清晰以暗示在其他编程环境中看到的体素字面概念。 我们确实看到了边界框和向量,并且知道它们代表可以在需要时绑定到世界位置的点,我觉得也可以从简化名称Shape
推断出相同的行为。
关于实现,没有什么固有的“体素”,
VoxelShape
是由体素组成的。 体素形状是一个 3 维布尔数组(体素)以及每个行、列和层的大小。
如果点可以不在体素格点上,我绝对支持去除体素前缀。
它们确实需要是长方体晶格上的点。
在 FAP 鱼苗期间,多次将其称为 VoxelShape。 我认为这是很安全的假设。 我们要关闭吗?
这是基于 Mojang 称之为VoxelShape
的知识创建的。 它旨在简化类型概念。 不过,平均而言,目前投票倾向于这种变化的下降,所以我将基于此关闭它。
最有用的评论
在 FAP 鱼苗期间,多次将其称为 VoxelShape。 我认为这是很安全的假设。 我们要关闭吗?