创建黄色的无闪烁药水

时间:2018-07-09 04:27:47

标签: minecraft minecraft-forge

在Minecraft Forge mod中,我要创建一个看起来呈黄色且不会闪烁的部分(例如“水瓶”药水的黄色版本)。

我目前正在做这样的事情(忽略无关的位):

from PyQt4 import QtCore, QtGui

class TableView(QtGui.QTableView):
    def wheelEvent(self, event):
        if event.modifiers() == QtCore.Qt.ShiftModifier:
            QtGui.QApplication.sendEvent(self.horizontalScrollBar(), event)
        else:
            QtGui.QTableView.wheelEvent(self, event)

class Widget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        lay = QtGui.QVBoxLayout(self)

        tableview = TableView()
        lay.addWidget(tableview)

        model = QtGui.QStandardItemModel(10, 10)
        tableview.setModel(model)

if __name__ == '__main__':
    import sys

    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

这会产生黄色药水,但会闪烁。有办法消除闪烁效果吗?

2 个答案:

答案 0 :(得分:1)

而不是使用香草制造啤酒的系统:

  

Diesieben07说:
  PotionType是可以酿造的药水,Potion只是“效果类型”。

使用该线程中的信息,只需创建一个普通的项目类并覆盖此方法,如下所示:

@Override
public EnumAction getItemUseAction(ItemStack stack)
{
    return EnumAction.DRINK;
}

这与微光有关,因为ItemPotion会覆盖public boolean hasEffect(ItemStack stack)以在药水有任何效果(并且您不希望这样做)时返回true。

那么,您要做的就是在玩家喝掉PotionEffect时将onItemUseFinish交给玩家。您可以查看ItemPotion,以获取有关如何执行此操作的示例(尽管您将不需要很多代码)。

答案 1 :(得分:0)

基于来自Minecraft Forge forum post的响应,此类定义了一个Item,当您右键单击时,其行为类似于药水:

break library.c:<line_no> if libname == "./library1.so"