1.12注册问题

查看数: 1770 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-6-28 11:22

正文摘要:

本帖最后由 MBYL_InkAndSoul 于 2023-6-29 18:06 编辑 如何将元数据分开…… 现在这样会导致不同元数据的物品能够堆叠从而丢失原有的元数据。 [已解决] ...

回复

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

等等……我知道了,看了下其他Mod的实现Fluid的still项要加"blocks/"来着……
居然是直接指定纹理路径……
(还以为是指定方块id来着)
MBYL_InkAndSoul 发表于 2023-6-29 14:36:01
QQ酱208628 发表于 2023-6-29 14:32
看看香草的实现?x

香草的实现和Forge的实现不沾边啊……(Forge的Fluid类)
我需要让流体不能被放下来,所以没有注册对应的流体块。
即使我注册了流体块放下来它的纹理也只能是岩浆……JEI中依然显示黑紫块
QQ酱208628 发表于 2023-6-29 14:32:55
MBYL_InkAndSoul 发表于 2023-6-29 14:04
“但流体纹理怎么办……”
这是完成CregTech重置的最后一步……

看看香草的实现?x
MBYL_InkAndSoul 发表于 2023-6-29 14:04:04
QQ酱208628 发表于 2023-6-29 13:58
对,我直接复制我自己工作区的(逃)

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

“但流体纹理怎么办……”
这是完成CregTech重置的最后一步……
QQ酱208628 发表于 2023-6-29 13:58:06
MBYL_InkAndSoul 发表于 2023-6-29 13:54
呃呃呃……Icon?这是1.7.10的实现吗?

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

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

低版本的话,Block会自动集成ItemBlock(高版本类名为BlockItem)且不可自己为方块注册,如果一定要指定ItemBlock,需要注册方块时直接提供集成了ItemBlock的类(Class<? extends ItemBlock>),大多情况下直接对Block进行操作即可,物品相关方法已经被并入方块中。
QQ酱208628 发表于 2023-6-29 13:09:00
插入新的元数据子类:
  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.     }
复制代码
使用元数据区分物品,务必关闭物品可修复,因为元数据与伤害值是相同的,否则玩家可能会通过某些修复手段实现物品之间切换。

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表