Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/java/betterquesting/api/storage/BQ_Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class BQ_Settings {
public static boolean viewModeAllQuestLine = false;
public static boolean viewModeBtn = false;
public static boolean alwaysDrawImplicit = false;
public static boolean forceMonochromeText = false;
public static boolean urlDebug = false;
public static boolean loadDefaultsOnStartup = true;
public static boolean logNullQuests = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import betterquesting.api2.storage.DBEntry;
import betterquesting.api2.utils.QuestTranslation;
import betterquesting.client.BookmarkHandler;
import betterquesting.client.util.GuiTextToggles;
import betterquesting.questing.QuestDatabase;
import betterquesting.questing.QuestInstance;
import betterquesting.storage.QuestSettings;
Expand Down Expand Up @@ -155,7 +156,7 @@ private List<String> getQuestTooltip(IQuest quest, EntityPlayer player, UUID qID
private List<String> getStandardTooltip(IQuest quest, EntityPlayer player, UUID qID) {
List<String> list = new ArrayList<>();

list.add(QuestTranslation.translateQuestName(qID, quest));
list.add(GuiTextToggles.applyMonochromeIfEnabled(QuestTranslation.translateQuestName(qID, quest)));

UUID playerID = QuestingAPI.getQuestingUUID(player);

Expand Down Expand Up @@ -203,14 +204,15 @@ private List<String> getStandardTooltip(IQuest quest, EntityPlayer player, UUID
.toUpperCase()
+ ")");

// TODO: Make this lookup unnecessary
QuestDatabase.INSTANCE.filterKeys(quest.getRequirements())
.entrySet()
.stream()
.filter(
entry -> !entry.getValue()
.isComplete(playerID))
.forEach(entry -> list.add(EnumChatFormatting.RED + "- " + QuestTranslation.translateQuestName(entry)));
.forEach(
entry -> list.add(
"- " + GuiTextToggles.applyMonochromeIfEnabled(QuestTranslation.translateQuestName(entry))));
} else {
int n = 0;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public enum PresetIcon {
ICON_REFRESH("icon_refresh"),
ICON_ITEM("icon_item"),
ICON_SCALE("icon_scale"),
ICON_PAINT("icon_paint"),

ICON_EXIT("icon_exit"),
ICON_NOTICE("icon_notice"),
Expand Down Expand Up @@ -206,6 +207,9 @@ public static void registerIcons(IThemeRegistry reg) {
reg.setDefaultTexture(
ICON_SCALE.key,
new SimpleTexture(TX_ICONS, new GuiRectangle(144, 16, 16, 16)).maintainAspect(true));
reg.setDefaultTexture(
ICON_PAINT.key,
new SimpleTexture(TX_ICONS, new GuiRectangle(48, 48, 16, 16)).maintainAspect(true));
reg.setDefaultTexture(
ICON_EXIT.key,
new SimpleTexture(TX_ICONS, new GuiRectangle(160, 0, 16, 16)).maintainAspect(true));
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/betterquesting/client/gui2/GuiQuest.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
import betterquesting.api2.client.gui.themes.presets.PresetTexture;
import betterquesting.api2.storage.DBEntry;
import betterquesting.api2.utils.QuestTranslation;
import betterquesting.client.gui2.GuiQuestLines.ScrollPosition;
import betterquesting.client.util.GuiTextToggles;
import betterquesting.core.BetterQuesting;
import betterquesting.network.handlers.NetQuestAction;
import betterquesting.questing.QuestDatabase;
Expand Down Expand Up @@ -166,7 +166,8 @@ public void initPanel() {

PanelTextBox panTxt = new PanelTextBox(
new GuiTransform(GuiAlign.TOP_EDGE, new GuiPadding(0, 16, 0, -32), 0),
QuestTranslation.translateQuestName(questID, quest)).setAlignment(1);
GuiTextToggles.applyMonochromeIfEnabled(QuestTranslation.translateQuestName(questID, quest)))
.setAlignment(1);
panTxt.setColor(PresetColor.TEXT_HEADER.getColor());
cvBackground.addPanel(panTxt);

Expand Down Expand Up @@ -584,7 +585,7 @@ private IGuiPanel addQuestDescTextSegment(int y, String questText) {
csDesc.getTransform()
.getWidth(),
0),
questText,
GuiTextToggles.applyMonochromeIfEnabled(questText),
true,
true);
paDesc.setColor(PresetColor.TEXT_MAIN.getColor());// .setFontSize(10);
Expand Down
34 changes: 34 additions & 0 deletions src/main/java/betterquesting/client/gui2/GuiQuestLines.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package betterquesting.client.gui2;

import static betterquesting.api.storage.BQ_Settings.alwaysDrawImplicit;
import static betterquesting.api.storage.BQ_Settings.forceMonochromeText;

import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
Expand Down Expand Up @@ -458,6 +459,7 @@ public void initPanel() {
yOff += 16;
}

// Always Draw Implicit Dependency Button
PanelButton btnViewMode = new PanelButton(new GuiTransform(GuiAlign.TOP_LEFT, 8, yOff, 32, 16, -2), -1, "")
.setIcon(
alwaysDrawImplicit ? PresetIcon.ICON_VISIBILITY_IMPLICIT.getTexture()
Expand Down Expand Up @@ -487,6 +489,38 @@ public void initPanel() {
QuestTranslation.translate("betterquesting.btn.always_draw_implicit"),
QuestTranslation.translate("betterquesting.tooltip.cycle." + alwaysDrawImplicit)));
cvBackground.addPanel(btnViewMode);
yOff += 16;

// Quest Color Button
final PanelButton btnMonoText = new PanelButton(
new GuiTransform(GuiAlign.TOP_LEFT, 8, yOff, 32, 16, -2),
-1,
"");
final Runnable updateMonoButton = () -> {
btnMonoText.setIcon(
PresetIcon.ICON_PAINT.getTexture(),
BQ_Settings.forceMonochromeText ? new GuiColorStatic(0xFF444444) : new GuiColorStatic(0xFFFFFFFF),
0);
btnMonoText.setTooltip(
Arrays.asList(
QuestTranslation.translate("betterquesting.btn.force_monochrome"),
QuestTranslation.translate("betterquesting.tooltip.cycle." + !forceMonochromeText)));
};
updateMonoButton.run();
btnMonoText.setClickAction((b) -> {
BQ_Settings.forceMonochromeText = !BQ_Settings.forceMonochromeText;
ConfigHandler.config.get(
Configuration.CATEGORY_GENERAL,
"Force Monochrome Text",
false,
"If true, quest titles and text content will show no color. This property can be changed by the GUI.")
.set(BQ_Settings.forceMonochromeText);
ConfigHandler.config.save();

updateMonoButton.run();
refreshGui();
});
cvBackground.addPanel(btnMonoText);

// === CHAPTER VIEWPORT ===

Expand Down
27 changes: 27 additions & 0 deletions src/main/java/betterquesting/client/util/GuiTextToggles.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package betterquesting.client.util;

import java.util.regex.Pattern;

import betterquesting.api.storage.BQ_Settings;

public final class GuiTextToggles {

private GuiTextToggles() {}

private static final Pattern COLOR_CODE_REMOVER = Pattern.compile("§[0-9a-fA-F]");

private static final Pattern BQ_TAG_REMOVER = Pattern
.compile("\\[(?:url|warn|note|quest)]|\\[/(?:url|warn|note|quest)]");

public static String applyMonochromeIfEnabled(String s) {
if (s == null) return null;

s = BQ_TAG_REMOVER.matcher(s)
.replaceAll("");

if (!BQ_Settings.forceMonochromeText) return s;

return COLOR_CODE_REMOVER.matcher(s)
.replaceAll("");
}
}
5 changes: 5 additions & 0 deletions src/main/java/betterquesting/handlers/ConfigHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,11 @@ public static void initConfigs() {
Configuration.CATEGORY_GENERAL,
false,
"If true, always draw implicit dependency. This property can be changed by the GUI");
BQ_Settings.forceMonochromeText = config.getBoolean(
"Force Monochrome Text",
Configuration.CATEGORY_GENERAL,
false,
"If true, quest titles and text content will show no color. This property can be changed by the GUI.");
BQ_Settings.urlDebug = config.getBoolean(
"Highlight detected clickable url hotzone.",
Configuration.CATEGORY_GENERAL,
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/betterquesting/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ betterquesting.btn.bookmark_quest=Bookmark
betterquesting.btn.unbookmark_quest=Unbookmark
betterquesting.btn.share_quest=Share to Chat
betterquesting.btn.copy_quest=Copy Quest ID
betterquesting.btn.force_monochrome=Show Quest Colors

betterquesting.home.exit=Exit
betterquesting.home.quests=Quests
Expand Down