就怎么说呢,想要改的是create的MechanicalPressBlock类,这个类继承了HorizontalKineticBlock,然后继续往上的话继承了KineticBlock实现了IRotate接口
然后这个接口有个default的方法,是getMinimumRequiredSpeedLevel
但是@Overwrite的话肯定是无法定位到getMinimumRequiredSpeedLevel这个方法的,这种情况下应该怎么办
然后这个接口有个default的方法,是getMinimumRequiredSpeedLevel
但是@Overwrite的话肯定是无法定位到getMinimumRequiredSpeedLevel这个方法的,这种情况下应该怎么办
这里你要重写目标类父类方法,那你的mixin类也要跟着目标类继承一样的父类,然后直接写就是,方法也好,字段也好,都能合并进去的
如果继承之后强制要求实现一个构造函数(比如说这个父类没有无参构造),也可以随便写,这个构造函数不会合并进目标类
如果继承之后强制要求实现一个构造函数(比如说这个父类没有无参构造),也可以随便写,这个构造函数不会合并进目标类
无敌三脚猫 发表于 2023-11-13 16:55
这里你要重写目标类父类方法,那你的mixin类也要跟着目标类继承一样的父类,然后直接写就是,方法也好,字 ...
已经继承了父类了,但还是会说Unresolved method getMinimumRequiredSpeedLevel in target class
Tki_sor 发表于 2023-11-13 17:04
已经继承了父类了,但还是会说Unresolved method getMinimumRequiredSpeedLevel in target class ...
你写remap=false了吗?
@Mixin(value = MechanicalPressBlock.class, remap = false)
无敌三脚猫 发表于 2023-11-13 17:06
你写remap=false了吗?
@Mixin(value = MechanicalPressBlock.class, remap = false)
写了
- @Mixin(value = MechanicalPressBlock.class, remap = false)
- public abstract class MechanicalPressBlockMixin extends HorizontalKineticBlock {
- public MechanicalPressBlockMixin(Properties properties) {
- super(properties);
- }
- @Overwrite
- public SpeedLevel getMinimumRequiredSpeedLevel() {
- return super.getMinimumRequiredSpeedLevel();
- }
- }
不是写@Overwrite,是直接写
不过remap=false在这里好像不需要,MechanicalPressBlock毕竟是包含了一些原版类在里面的