BundleMouseActions.java
net.minecraft.client.gui.BundleMouseActions
信息
- 全限定名:net.minecraft.client.gui.BundleMouseActions
- 类型:public class
- 包:net.minecraft.client.gui
- 源码路径:src/main/java/net/minecraft/client/gui/BundleMouseActions.java
- 起始行号:L17
- 实现:ItemSlotMouseAction
- 职责:
TODO
字段/常量
-
minecraft- 类型:
Minecraft - 修饰符:
private final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
scrollWheelHandler- 类型:
ScrollWheelHandler - 修饰符:
private final - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public BundleMouseActions(Minecraft minecraft) @ L21
- 构造器名:BundleMouseActions
- 源码定位:L21
- 修饰符:public
参数:
- minecraft: Minecraft
说明:
TODO
方法
下面的方法块按源码顺序生成。
public boolean matches(Slot slot) @ L26
- 方法名:matches
- 源码定位:L26
- 返回类型:boolean
- 修饰符:public
参数:
- slot: Slot
说明:
TODO
public boolean onMouseScrolled(double scrollX, double scrollY, int slotIndex, ItemStack itemStack) @ L31
- 方法名:onMouseScrolled
- 源码定位:L31
- 返回类型:boolean
- 修饰符:public
参数:
- scrollX: double
- scrollY: double
- slotIndex: int
- itemStack: ItemStack
说明:
TODO
public void onStopHovering(Slot hoveredSlot) @ L51
- 方法名:onStopHovering
- 源码定位:L51
- 返回类型:void
- 修饰符:public
参数:
- hoveredSlot: Slot
说明:
TODO
public void onSlotClicked(Slot slot, ContainerInput containerInput) @ L56
- 方法名:onSlotClicked
- 源码定位:L56
- 返回类型:void
- 修饰符:public
参数:
- slot: Slot
- containerInput: ContainerInput
说明:
TODO
private void toggleSelectedBundleItem(ItemStack bundleItem, int slotIndex, int selectedItem) @ L63
- 方法名:toggleSelectedBundleItem
- 源码定位:L63
- 返回类型:void
- 修饰符:private
参数:
- bundleItem: ItemStack
- slotIndex: int
- selectedItem: int
说明:
TODO
public void unselectedBundleItem(ItemStack bundleItem, int slotIndex) @ L71
- 方法名:unselectedBundleItem
- 源码定位:L71
- 返回类型:void
- 修饰符:public
参数:
- bundleItem: ItemStack
- slotIndex: int
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class BundleMouseActions implements ItemSlotMouseAction {
private final Minecraft minecraft;
private final ScrollWheelHandler scrollWheelHandler;
public BundleMouseActions(Minecraft minecraft) {
this.minecraft = minecraft;
this.scrollWheelHandler = new ScrollWheelHandler();
}
@Override
public boolean matches(Slot slot) {
return slot.getItem().is(ItemTags.BUNDLES);
}
@Override
public boolean onMouseScrolled(double scrollX, double scrollY, int slotIndex, ItemStack itemStack) {
int amountOfShownItems = BundleItem.getNumberOfItemsToShow(itemStack);
if (amountOfShownItems == 0) {
return false;
} else {
Vector2i wheelXY = this.scrollWheelHandler.onMouseScroll(scrollX, scrollY);
int wheel = wheelXY.y == 0 ? -wheelXY.x : wheelXY.y;
if (wheel != 0) {
int selectedItem = BundleItem.getSelectedItemIndex(itemStack);
int updatedSelectedItem = ScrollWheelHandler.getNextScrollWheelSelection(wheel, selectedItem, amountOfShownItems);
if (selectedItem != updatedSelectedItem) {
this.toggleSelectedBundleItem(itemStack, slotIndex, updatedSelectedItem);
}
}
return true;
}
}
@Override
public void onStopHovering(Slot hoveredSlot) {
this.unselectedBundleItem(hoveredSlot.getItem(), hoveredSlot.index);
}
@Override
public void onSlotClicked(Slot slot, ContainerInput containerInput) {
if (containerInput == ContainerInput.QUICK_MOVE || containerInput == ContainerInput.SWAP) {
this.unselectedBundleItem(slot.getItem(), slot.index);
}
}
private void toggleSelectedBundleItem(ItemStack bundleItem, int slotIndex, int selectedItem) {
if (this.minecraft.getConnection() != null && selectedItem < BundleItem.getNumberOfItemsToShow(bundleItem)) {
ClientPacketListener connection = this.minecraft.getConnection();
BundleItem.toggleSelectedItem(bundleItem, selectedItem);
connection.send(new ServerboundSelectBundleItemPacket(slotIndex, selectedItem));
}
}
public void unselectedBundleItem(ItemStack bundleItem, int slotIndex) {
this.toggleSelectedBundleItem(bundleItem, slotIndex, -1);
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
字段/方法调用/构造调用 - 关联成员:
ScrollWheelHandler(), ScrollWheelHandler.getNextScrollWheelSelection()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
ServerboundSelectBundleItemPacket
- 引用位置:
构造调用 - 关联成员:
ServerboundSelectBundleItemPacket()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BundleItem.getNumberOfItemsToShow(), BundleItem.getSelectedItemIndex(), BundleItem.toggleSelectedItem()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: