package com.rebelkeithy.ftl.view.crew; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.rebelkeithy.ftl.crew.Crew; import com.rebelkeithy.ftl.ship.Ship; import com.rebelkeithy.ftl.view.Button; import com.rebelkeithy.ftl.view.CrewBox; import com.rebelkeithy.ftl.view.EquipmentTabButton; import com.rebelkeithy.ftl.view.Fonts; import com.rebelkeithy.ftl.view.GUI; import com.rebelkeithy.ftl.view.TextureRegistry; import com.rebelkeithy.ftl.view.UpgradesTabButton; import com.rebelkeithy.ftl.view.upgrade.AcceptButton; public class CrewUI extends GUI { private Texture background; private Texture acceptBase; private Button accept; private Button upgradesButton; private Button equipmentButton; private Button[] dismissButtons; private Ship ship; private CrewBox crewBox; public CrewUI(Ship ship) { this.ship = ship; crewBox = new CrewBox(); background = TextureRegistry.registerSprite("crew_main", "upgradeUI/Equipment/crew_main"); Texture upgradesTab = TextureRegistry.registerSprite("crew_upgrades_on", "upgradeUI/Equipment/tabButtons/crew_upgrades_on"); Texture upgradesTabSelect = TextureRegistry.registerSprite("crew_upgrades_select2", "upgradeUI/Equipment/tabButtons/crew_upgrades_select2"); Texture equipmentTab = TextureRegistry.registerSprite("crew_equipment_on", "upgradeUI/Equipment/tabButtons/crew_equipment_on"); Texture equipmentTabSelect = TextureRegistry.registerSprite("crew_equipment_select2", "upgradeUI/Equipment/tabButtons/crew_equipment_select2"); upgradesButton = new UpgradesTabButton(340, 593, upgradesTab); upgradesButton.setHoverImage(upgradesTabSelect); upgradesButton.setDownImage(upgradesTabSelect); this.addButton(upgradesButton); equipmentButton = new EquipmentTabButton(682, 593, equipmentTab); equipmentButton.setHoverImage(equipmentTabSelect); equipmentButton.setDownImage(equipmentTabSelect); this.addButton(equipmentButton); Texture acceptUp = TextureRegistry.registerSprite("acceptButton", "upgradeUI/buttons_accept_on"); Texture acceptHover = TextureRegistry.registerSprite("acceptButtonHover", "upgradeUI/buttons_accept_select2"); accept = new AcceptButton(this, 753, 117, acceptUp); accept.setHoverImage(acceptHover); accept.setDownImage(acceptHover); this.addButton(accept); Texture dismiss = TextureRegistry.registerSprite("button_dismiss_on", "upgradeUI/Equipment/button_dismiss_on"); Texture dismissSelect = TextureRegistry.registerSprite("button_dismiss_select2", "upgradeUI/Equipment/button_dismiss_select2"); dismissButtons = new Button[8]; for(int i = 0; i < ship.getCrew().size(); i++) { int offsetX = 415 + (i%3) * 170 + (i > 5 ? 86 : 0); int offsetY = 461 - (i/3) * 133; dismissButtons[i] = new CrewDismissButton(i, offsetX, offsetY, dismiss); dismissButtons[i].setHoverImage(dismissSelect); dismissButtons[i].setDownImage(dismissSelect); this.addButton(dismissButtons[i]); } acceptBase = TextureRegistry.registerSprite("acceptButtonBase", "upgradeUI/buttons_accept_base"); } public void render(SpriteBatch batch) { batch.draw(background, 340, 164); upgradesButton.render(batch); equipmentButton.render(batch); for(int i = 0; i < 8; i++) { int offsetX = 415 + (i%3) * 170 + (i > 5 ? 86 : 0); int offsetY = 480 - (i/3) * 133; int mouseX = Gdx.input.getX(); int mouseY = Gdx.graphics.getHeight() - Gdx.input.getY(); boolean hover = false; if(mouseX > offsetX && mouseX < offsetX + 100 && mouseY > offsetY && mouseY < offsetY + 67) hover = true; if(i < ship.getCrew().size()) { Crew crew = ship.getCrew().get(i); // Render CrewBox here crewBox.render(batch, crew, offsetX, offsetY); dismissButtons[i].render(batch); } else { crewBox.render(batch, null, offsetX, offsetY); } } for(int i = ship.getCrew().size(); i < 8; i++) { } batch.draw(acceptBase, 753, 117); accept.render(batch); } }