Это и так понятно. Покажите где.В гуи можно отследить наведение мыши
private boolean isMouseOverSlot(Slot p_146981_1_, int p_146981_2_, int p_146981_3_)
{
return this.func_146978_c(p_146981_1_.xDisplayPosition, p_146981_1_.yDisplayPosition, 16, 16, p_146981_2_, p_146981_3_);
}
protected boolean func_146978_c(int p_146978_1_, int p_146978_2_, int p_146978_3_, int p_146978_4_, int p_146978_5_, int p_146978_6_)
{
int k1 = this.guiLeft;
int l1 = this.guiTop;
p_146978_5_ -= k1;
p_146978_6_ -= l1;
return p_146978_5_ >= p_146978_1_ - 1 && p_146978_5_ < p_146978_1_ + p_146978_3_ + 1 && p_146978_6_ >= p_146978_2_ - 1 && p_146978_6_ < p_146978_2_ + p_146978_4_ + 1;
}
То что мне нужно! Только вот проблема возниклаМб это....
isMouseOverSlot()
- приватный метод, но это решается копипастомhandleMouseInput()
, т.к. по названию мне показалось, что код для решения моей задачи нужно делать там.@Override
public void handleMouseInput() {
MainContainer container = (MainContainer) player.getEntityPlayer().openContainer;
for (int i = 0; i < inventorySlots.inventorySlots.size(); i++) {
Object inventorySlot = inventorySlots.inventorySlots.get(i);
//System.out.println(inventorySlot.getClass() + " ||| " + inventorySlot.toString() + " size-" + container.inventorySlots.size());
//System.out.println(((Slot) inventorySlot).inventory.getInventoryName() + " ||| " + inventorySlot.toString() + " size-" + inventorySlots.inventorySlots.size());
//inventorySlots.
// ЭТО НИКОГДА НЕ СЛУЧИТСЯ
if (i == 9) {
Object o = new Object();
}
try {
SkillSlot slot = (SkillSlot) inventorySlot;
System.out.println("Получилось " + i);
} catch (Exception e) {
System.out.println("- " + i);
}
if (isMouseOverSlot((Slot) inventorySlot, Mouse.getEventX(), Mouse.getEventY())) {
//this.player.tabHostInventory.setTab(((Slot) inventorySlot).getStack().getItem().getUnlocalizedName());
}
ItemStack itemStack = ((Slot) inventorySlot).getStack();
if (itemStack == null) {
break; //return;
}
Item item = itemStack.getItem();
if (item != null && !item.getUnlocalizedName().equals(currentStat) && !(item instanceof SkillItem)) {
PacketShowSkillsByStat packet = new PacketShowSkillsByStat(itemStack.getItem().getUnlocalizedName());
CommonProxy.INSTANCE.sendToServer(packet);
currentStat = itemStack.getItem().getUnlocalizedName();
}
}
super.handleMouseInput();
}
1)isMouseOverSlot()
- приватный метод, но это решается копипастом
Не понял. Можно подробнее что такое ASM и как оно применимо сюда?ASM, все дела....
override def drawScreen(x: Int, y: Int, partialTick: Float): Unit = {
Если мне не изменяет память - последний параметр это partialTicks, и метод этот вызывается каждый кадр.Этот метод вызывается каждый тик
Scala:override def drawScreen(x: Int, y: Int, scale: Float): Unit = {