User Tools

Site Tools


zh_cn:tutorial:colorprovider

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:colorprovider [2021/09/27 15:19] – [注册方块 Color Provider] solidblockzh_cn:tutorial:colorprovider [2023/11/18 08:37] (current) – [注册方块颜色提供器] solidblock
Line 25: Line 25:
 我们在这里所做的只是说:“Hi,''MY_BLOCK'' 应被着色为 0x3495eb”,也就是蓝色。你有 BlockState、World 和 BlockPos 的环境,基于这些环境的生物群系或者位置等来改变颜色。最终的 int 是 tintIndex,每个都会单独为颜色获取一个,但是在此例中,我们只返回蓝色。 我们在这里所做的只是说:“Hi,''MY_BLOCK'' 应被着色为 0x3495eb”,也就是蓝色。你有 BlockState、World 和 BlockPos 的环境,基于这些环境的生物群系或者位置等来改变颜色。最终的 int 是 tintIndex,每个都会单独为颜色获取一个,但是在此例中,我们只返回蓝色。
  
-如果你需要在颜色提供器中访问 ''BlockEntity'' 数据,你需要实现 ''RenderAttachmentBlockEntity'' 以返回你需要的数据。这是因为方块可以在单独的线程渲染,所以直接访问数据并不安全。而且,如果使用 ''getBlockState'' 查询方块,你无法查看整个世界——确保你只查询当前位置的+-2方块范围内的位置。+如果你需要在颜色提供器中访问 ''BlockEntity'' 数据,你需要实现 ''RenderAttachmentBlockEntity'' 以返回你需要的数据。这是因为方块可以在单独的线程渲染,所以直接访问数据并不安全。而且,如果使用 ''getBlockState'' 查询方块,你无法查看整个世界——确保你只查询当前位置的 ±2 方块范围内的位置。
  
 模型也重要的:这里需要注意的是,你//一定要//为模型的每一个你需要着色的部分定义tintindex。如要查看这个的例子,请参考 ''leaves.json'',这是原版树叶使用的基本模型。这里是我们方块使用的模型: 模型也重要的:这里需要注意的是,你//一定要//为模型的每一个你需要着色的部分定义tintindex。如要查看这个的例子,请参考 ''leaves.json'',这是原版树叶使用的基本模型。这里是我们方块使用的模型:
-<code json [enable_line_numbers="false"]>+<code javascript [enable_line_numbers="false"]>
 { {
   "parent": "block/block",   "parent": "block/block",
Line 36: Line 36:
   },   },
   "elements": [   "elements": [
-    {   "from": [ 0, 0, 0 ],+    { "from": [ 0, 0, 0 ],
       "to": [ 16, 16, 16 ],       "to": [ 16, 16, 16 ],
       "faces": {       "faces": {
Line 55: Line 55:
 {{https://i.imgur.com/fZLS10g.png}} {{https://i.imgur.com/fZLS10g.png}}
  
-===== 注册颜色提供物品 ===== +===== 注册物品颜色提供器 ===== 
-项目相区别在于提供的上下文。 您无需访问状态世界位置,而可以访问''ItemStack''+物品是类的,区别在于提供的上下文。访问状态世界位置,而访问 ''ItemStack''
 <code java [enable_line_numbers="false"]> <code java [enable_line_numbers="false"]>
 ColorProviderRegistry.ITEM.register((itemStack, layer) -> { ColorProviderRegistry.ITEM.register((itemStack, layer) -> {
Line 63: Line 63:
 </code> </code>
  
-将色相相同的方块库存量项目+会以像方块那样的方你物品栏中物品提供色相
  
-=== 性 === +=== 限制 === 
-使用颜色提供程序的一个关键问题是项目提供程序中缺少上下文。 这就是为什么原版草不会根据您站立的位置改变存货颜色的原因。 为了实现诸如块的颜色变体(混凝土玻璃羊毛等)之类的东西,建议您为每个版本简单地提供单独的纹理。+使用颜色提供的一个关键问题是物品的提供中缺少上下文。这就是为什么原版草不会根据您站立的位置改变物品栏中的颜色的原因。为了实现诸如块的颜色变体(混凝土玻璃羊毛等)之类的东西,建议您为每个版本简单地提供单独的纹理。
zh_cn/tutorial/colorprovider.1632755990.txt.gz · Last modified: 2021/09/27 15:19 by solidblock