private void doSalvage() { IPowerModule module = targetModule.getSelectedModule().getModule(); MusePacket newpacket = new MusePacketSalvageModuleRequest( (Player) player, targetItem.getSelectedItem().inventorySlot, module.getName()); player.sendQueue.addToSendQueue(newpacket.getPacket250()); }
private void loadTweaks(ItemStack stack, IPowerModule module) { NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); NBTTagCompound moduleTag = itemTag.getCompoundTag(module.getName()); propertyStrings = new HashMap(); Set<String> tweaks = new HashSet<String>(); Map<String, List<IPropertyModifier>> propertyModifiers = module.getPropertyModifiers(); for (Map.Entry<String, List<IPropertyModifier>> property : propertyModifiers.entrySet()) { double currValue = 0; for (IPropertyModifier modifier : property.getValue()) { currValue = modifier.applyModifier(moduleTag, currValue); if (modifier instanceof PropertyModifierLinearAdditive) { tweaks.add(((PropertyModifierLinearAdditive) modifier).getTradeoffName()); } } propertyStrings.put(property.getKey(), currValue); } sliders = new LinkedList(); int y = 0; for (String tweak : tweaks) { y += 24; ClickableSlider slider = new ClickableSlider( new MusePoint2D((border.left() + border.right()) / 2, border.top() + y), border.right() - border.left() - 8, moduleTag, tweak); sliders.add(slider); } }
/** * Performs all the functions associated with the install button. This requires communicating with * the server. */ private void doInstall() { ItemStack stack = targetItem.getSelectedItem().getItem(); IPowerModule module = targetModule.getSelectedModule().getModule(); if (player.capabilities.isCreativeMode || MuseItemUtils.hasInInventory(module.getInstallCost(), player.inventory)) { Musique.playClientSound(SoundLoader.SOUND_GUI_INSTALL, 1); // Now send request to server to make it legit MusePacket newpacket = new MusePacketInstallModuleRequest( (Player) player, targetItem.getSelectedItem().inventorySlot, module.getName()); player.sendQueue.addToSendQueue(newpacket.getPacket250()); } }
private void drawButtons() { ItemStack stack = targetItem.getSelectedItem().getItem(); IPowerModule module = targetModule.getSelectedModule().getModule(); if (!MuseItemUtils.itemHasModule(stack, module.getName())) { installButton.setEnabled( player.capabilities.isCreativeMode || MuseItemUtils.hasInInventory(module.getInstallCost(), player.inventory)); installButton.draw(); } else { salvageButton.draw(); } }
private void drawItems() { ItemStack stack = targetItem.getSelectedItem().getItem(); IPowerModule module = targetModule.getSelectedModule().getModule(); List<ItemStack> itemsToDraw = module.getInstallCost(); double yoffset; if (!MuseItemUtils.itemHasModule(stack, module.getName())) { yoffset = border.top() + 4; } else { yoffset = border.bottom() - 20; } double xoffset = -8.0 * itemsToDraw.size() + (border.left() + border.right()) / 2; int i = 0; for (ItemStack costItem : itemsToDraw) { MuseRenderer.drawItemAt(16 * i++ + xoffset, yoffset, costItem); } }
@Override public void onMouseDown(double x, double y, int button) { ClickableItem selItem = targetItem.getSelectedItem(); ClickableModule selModule = targetModule.getSelectedModule(); if (selItem != null && selModule != null) { ItemStack stack = selItem.getItem(); IPowerModule module = selModule.getModule(); if (!MuseItemUtils.itemHasModule(stack, module.getName())) { if (installButton.hitBox(x, y)) { doInstall(); } } else { if (salvageButton.hitBox(x, y)) { doSalvage(); } } } }
@Override public void onMouseUp(double x, double y, int button) { if (selectedSlider != null && itemTarget.getSelectedItem() != null && moduleTarget.getSelectedModule() != null) { ClickableItem item = itemTarget.getSelectedItem(); IPowerModule module = moduleTarget.getSelectedModule().getModule(); MusePacket tweakRequest = new MusePacketTweakRequest( (Player) player, item.inventorySlot, module.getName(), selectedSlider.getName(), selectedSlider.getValue()); player.sendQueue.addToSendQueue(tweakRequest.getPacket250()); } if (button == 0) { selectedSlider = null; } }
@Override public List<String> getToolTip(int x, int y) { if (targetItem.getSelectedItem() != null && targetModule.getSelectedModule() != null) { ItemStack stack = targetItem.getSelectedItem().getItem(); IPowerModule module = targetModule.getSelectedModule().getModule(); List<ItemStack> itemsToCheck = module.getInstallCost(); double yoffset; if (!MuseItemUtils.itemHasModule(stack, module.getName())) { yoffset = border.top() + 4; } else { yoffset = border.bottom() - 20; } if (yoffset + 16 > y && yoffset < y) { double xoffset = -8.0 * itemsToCheck.size() + (border.left() + border.right()) / 2; if (xoffset + 16 * itemsToCheck.size() > x && xoffset < x) { int index = (int) (x - xoffset) / 16; List<String> tip = itemsToCheck.get(index).getTooltip(player, false); return tip; } } } return null; }