public void setupButtons() {
		side_hud_panel.removeAll();
		if (selected.size() > 0
				&& selected.getFirst() instanceof VillagerEntity) {
			VillagerEntity tower = ((VillagerEntity) selected.getFirst());
			final JCheckBox build = new JCheckBox("Build: "
					+ createCostString(VillagerEntity.MAKE_TOWER_COST));
			side_hud_panel.add(build);
			pack();

			build.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					if (build.isSelected()) {
						mode = BUILD_MODE;
					} else {
						mode = NORMAL_MODE;
					}
				}
			});

		}
		if (selected.size() > 0 && selected.getFirst() instanceof TowerEntity) {
			TowerEntity tower = ((TowerEntity) selected.getFirst());
			final JButton upgrade = new JButton("Upgrade: "
					+ createCostString(TowerEntity.UPGRADE_COST[tower.level]));
			final JButton villager = new JButton("Make villager: "
					+ createCostString(TowerEntity.MAKE_VILLAGER_COST));
			side_hud_panel.add(upgrade);
			side_hud_panel.add(villager);
			pack();

			upgrade.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					TowerEntity tower = ((TowerEntity) selected.getFirst());

					if (canAfford(TowerEntity.UPGRADE_COST[tower.level])) {
						if (tower.upgrade()) {
							decrementResources(TowerEntity.UPGRADE_COST[tower.level - 1]);
							upgrade
									.setText("Upgrade: "
											+ createCostString(TowerEntity.UPGRADE_COST[tower.level]));
						}
					}
				}
			});

			villager.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					TowerEntity tower = ((TowerEntity) selected.getFirst());

					if (canAfford(TowerEntity.MAKE_VILLAGER_COST)) {
						fireGlobalEvent(new AddEntity(this, ADD_VILLAGER,
								(int) tower.point.x, (int) tower.point.y));
						decrementResources(TowerEntity.MAKE_VILLAGER_COST);
					}
				}
			});
		}
	}