MC百科社群

标题: 1.12注册问题 [打印本页]

作者: MBYL_InkAndSoul    时间: 2023-6-28 11:22
标题: 1.12注册问题
本帖最后由 MBYL_InkAndSoul 于 2023-6-29 18:06 编辑



如何将元数据分开……
现在这样会导致不同元数据的物品能够堆叠从而丢失原有的元数据。
[已解决]

作者: QQ酱208628    时间: 2023-6-28 11:22
MBYL_InkAndSoul 发表于 2023-6-29 14:58
我翻到了JEI中对流体的渲染:
这是必须要注册流体方块才行得通吗?
但注册了之后纹理还是黑紫块啊……

纹理一类的还是需要单独注册的,一般会被分配到块里
流体也算方块x
作者: MBYL_InkAndSoul    时间: 2023-6-28 11:36
还有,我明明有把ItemBlocks的CreativeTab设置为当前物品页,但却没有任何效果。
作者: QQ酱208628    时间: 2023-6-29 13:09
插入新的元数据子类:
  1.     @Override
  2.     @SideOnly(Side.CLIENT)
  3.     public void getSubItems(Item item, CreativeTabs tab, List list) {
  4.         for (int i = 0; i < 2; i ++) list.add(new ItemStack(item, 1, i));
  5.     }
复制代码
子类贴图区分:
  1.     @Override
  2.     @SideOnly(Side.CLIENT)
  3.     public IIcon getIconFromDamage(int meta) {
  4.         return meta < this.icon.length ? this.icon[meta] : this.icon[0];
  5.     }

  6.     @Override
  7.     @SideOnly(Side.CLIENT)
  8.     public void registerIcons(IIconRegister icon) {
  9.         this.icon = new IIcon[2];
  10.         for (int i = 0; i < 2; i ++) this.icon[i] = icon.registerIcon(MODID + ":" + this.name + i);
  11.     }
复制代码
使用元数据区分物品,务必关闭物品可修复,因为元数据与伤害值是相同的,否则玩家可能会通过某些修复手段实现物品之间切换。

作者: MBYL_InkAndSoul    时间: 2023-6-29 13:54
QQ酱208628 发表于 2023-6-29 13:09
插入新的元数据子类:
子类贴图区分:
使用元数据区分物品,务必关闭物品可修复,因为元数据与伤害值是相同 ...

呃呃呃……Icon?这是1.7.10的实现吗?

好像只要调用setHasSubtypes(true);就可以了啊……
低版本物品方块需要在方块那边设置物品页(?)【只是看到了Block有这个方法,还没测试】
不过流体纹理怎么整……流体纹理需要在哪里注册?

作者: QQ酱208628    时间: 2023-6-29 13:58
MBYL_InkAndSoul 发表于 2023-6-29 13:54
呃呃呃……Icon?这是1.7.10的实现吗?

好像只要调用setHasSubtypes(true);就可以了啊……

对,我直接复制我自己工作区的(逃)

低版本的话,Block会自动集成ItemBlock(高版本类名为BlockItem)且不可自己为方块注册,如果一定要指定ItemBlock,需要注册方块时直接提供集成了ItemBlock的类(Class<? extends ItemBlock>),大多情况下直接对Block进行操作即可,物品相关方法已经被并入方块中。
作者: MBYL_InkAndSoul    时间: 2023-6-29 14:04
QQ酱208628 发表于 2023-6-29 13:58
对,我直接复制我自己工作区的(逃)

低版本的话,Block会自动集成ItemBlock(高版本类名为BlockItem) ...

“但流体纹理怎么办……”
这是完成CregTech重置的最后一步……
作者: QQ酱208628    时间: 2023-6-29 14:32
MBYL_InkAndSoul 发表于 2023-6-29 14:04
“但流体纹理怎么办……”
这是完成CregTech重置的最后一步……

看看香草的实现?x
作者: MBYL_InkAndSoul    时间: 2023-6-29 14:36
QQ酱208628 发表于 2023-6-29 14:32
看看香草的实现?x

香草的实现和Forge的实现不沾边啊……(Forge的Fluid类)
我需要让流体不能被放下来,所以没有注册对应的流体块。
即使我注册了流体块放下来它的纹理也只能是岩浆……JEI中依然显示黑紫块
作者: MBYL_InkAndSoul    时间: 2023-6-29 14:38
还是说从原CregTech中搬来的MCr生成的Blockstate有错误?


作者: MBYL_InkAndSoul    时间: 2023-6-29 14:58
我翻到了JEI中对流体的渲染:
这是必须要注册流体方块才行得通吗?
但注册了之后纹理还是黑紫块啊……

作者: MBYL_InkAndSoul    时间: 2023-6-29 16:16
即使注册了方块也还是这样:

作者: MBYL_InkAndSoul    时间: 2023-6-29 18:01
QQ酱208628 发表于 2023-6-29 17:31
纹理一类的还是需要单独注册的,一般会被分配到块里
流体也算方块x

等等……我知道了,看了下其他Mod的实现Fluid的still项要加"blocks/"来着……
居然是直接指定纹理路径……
(还以为是指定方块id来着)




欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科