@Override public void drawBackground(int mouseX, int mouseY, float gameTicks) { glEnable(GL_BLEND); ApplyColor(); super.drawBackground(mouseX, mouseY, gameTicks); drawIcon(stat.getIcon(level), posX + 3, posY + 3); if (direction != ForgeDirection.UNKNOWN) { glPushMatrix(); glTranslated(posX, posY, 0); glTranslated(sizeX / 2, sizeY / 2, 0); glTranslated(direction.offsetX * (sizeX * 0.75), -direction.offsetY * (sizeY * 0.75), 0); if (direction == ForgeDirection.EAST) { glRotated(90, 0, 0, 1); } else if (direction == ForgeDirection.WEST) { glRotated(-90, 0, 0, 1); } else if (direction == ForgeDirection.DOWN) { glRotated(180, 0, 0, 1); } glTranslated(-3.5, -3.5, 0); ClientProxy.holoIcons.renderIcon("up_arrow", 0, 0); glPopMatrix(); } if (stat.maxLevel() > 1 && level > 0) { getFontRenderer().drawString(Integer.toString(level), posX + 16, posY + 16, 0xFFFFFF); } ResetColor(); glDisable(GL_BLEND); }
@Override public boolean isEnabled() { if (stat.canBeUnlocked(player, level)) { if (player.getUnlockedLevel(stat) < stat.maxLevel()) { return true; } } return false; }
@Override public void onAction(int mouseX, int mouseY, int mouseButton) { if (super.intersectsWith(mouseX, mouseY)) { if (stat.canBeUnlocked(player, level + 1) && level < stat.maxLevel()) { gui.playSound(Reference.MOD_ID + ":" + "gui.biotic_stat_unlock", 1, 1); MatterOverdrive.packetPipeline.sendToServer( new PacketUnlockBioticStat(stat.getUnlocalizedName(), ++level)); } } super.onAction(mouseX, mouseY, mouseButton); }