在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_())
这会产生黄色药水,但会闪烁。有办法消除闪烁效果吗?
答案 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"