use of betterquesting.api.client.themes.ITheme in project BetterQuesting by Funwayguy.
the class GuiThemes method initPanel.
@Override
public void initPanel() {
super.initPanel();
PEventBroadcaster.INSTANCE.register(this, PEventButton.class);
// Background panel
CanvasTextured bgCan = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
this.addPanel(bgCan);
// Inner canvas bounds
CanvasEmpty inCan = new CanvasEmpty(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(16, 16, 16, 16), 0));
bgCan.addPanel(inCan);
PanelTextBox panTxt = new PanelTextBox(new GuiTransform(GuiAlign.TOP_EDGE, new GuiPadding(0, 0, 0, -16), 0), I18n.format("betterquesting.title.select_theme")).setAlignment(1);
panTxt.setColor(PresetColor.TEXT_HEADER.getColor());
inCan.addPanel(panTxt);
PanelButton btnExit = new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, new GuiPadding(-100, -16, -100, 0), 0), 0, I18n.format("gui.done"));
bgCan.addPanel(btnExit);
CanvasScrolling canScroll = new CanvasScrolling(new GuiTransform(GuiAlign.HALF_LEFT, new GuiPadding(0, 16, 16, 16), 0));
inCan.addPanel(canScroll);
List<ITheme> themes = betterquesting.client.themes.ThemeRegistry.INSTANCE.getAllThemes();
// List<IGuiTheme> themes = ThemeRegistry.INSTANCE.getAllThemes();
int width = canScroll.getTransform().getWidth();
for (int i = 0; i < themes.size(); i++) {
GuiRectangle trans = new GuiRectangle(0, i * 24, width, 24, 0);
ITheme theme = themes.get(i);
PanelButtonStorage<ResourceLocation> pbs = new PanelButtonStorage<>(trans, 1, theme.getDisplayName(), theme.getThemeID());
canScroll.addPanel(pbs);
if (betterquesting.client.themes.ThemeRegistry.INSTANCE.getCurrentTheme() == theme) {
pbs.setEnabled(false);
}
}
PanelVScrollBar vsb = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(0, 0, -8, 0), 0));
inCan.addPanel(vsb);
vsb.getTransform().setParent(canScroll.getTransform());
canScroll.setScrollDriverY(vsb);
scrollPanel = vsb;
// === PREVIEW PANELS ===
CanvasEmpty preCan = new CanvasEmpty(new GuiTransform(GuiAlign.HALF_RIGHT, new GuiPadding(8, 16, 0, 16), 0));
inCan.addPanel(preCan);
CanvasTextured preCanIn0 = new CanvasTextured(new GuiTransform(new Vector4f(0F, 0F, 0.5F, 0.5F), new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_MAIN.getTexture());
preCan.addPanel(preCanIn0);
preCanIn0.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.MID_CENTER, -32, -8, 64, 16, 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_MAIN.getColor()));
CanvasTextured preCanIn1 = new CanvasTextured(new GuiTransform(new Vector4f(0.5F, 0F, 1F, 0.5F), new GuiPadding(0, 0, 0, 0), 0), PresetTexture.PANEL_INNER.getTexture());
preCanIn1.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.MID_CENTER, -32, -8, 64, 16, 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_AUX_0.getColor()));
preCan.addPanel(preCanIn1);
CanvasTextured preCanIn2 = new CanvasTextured(new GuiTransform(GuiAlign.HALF_BOTTOM, new GuiPadding(0, 0, 0, 0), 0), PresetTexture.AUX_FRAME_0.getTexture());
preCan.addPanel(preCanIn2);
IGuiTexture icoSlides = new SlideShowTexture(1F, new GuiTextureColored(PresetTexture.QUEST_NORM_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_NORM_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_MAIN_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_0.getTexture(), PresetColor.QUEST_ICON_LOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_1.getTexture(), PresetColor.QUEST_ICON_UNLOCKED.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_2.getTexture(), PresetColor.QUEST_ICON_PENDING.getColor()), new GuiTextureColored(PresetTexture.QUEST_AUX_3.getTexture(), PresetColor.QUEST_ICON_COMPLETE.getColor()));
PanelGeneric pqp = new PanelGeneric(new GuiTransform(new Vector4f(0.25F, 0.5F, 0.25F, 0.5F), -12, -12, 24, 24, 0), icoSlides);
preCanIn2.addPanel(pqp);
CanvasTextured itemFrame = new CanvasTextured(new GuiTransform(new Vector4f(0.75F, 0.5F, 0.75F, 0.5F), -12, -12, 24, 24, 0), PresetTexture.ITEM_FRAME.getTexture());
itemFrame.addPanel(new PanelGeneric(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(1, 1, 1, 1), 0), new ItemTexture(new BigItemStack(BetterQuesting.guideBook))));
preCanIn2.addPanel(itemFrame);
IGuiLine linSeq = new GuiLineSequence(1F, PresetLine.QUEST_LOCKED.getLine(), PresetLine.QUEST_UNLOCKED.getLine(), PresetLine.QUEST_PENDING.getLine(), PresetLine.QUEST_COMPLETE.getLine());
IGuiColor colSeq = new GuiColorSequence(1F, PresetColor.QUEST_LINE_LOCKED.getColor(), PresetColor.QUEST_LINE_UNLOCKED.getColor(), PresetColor.QUEST_LINE_PENDING.getColor(), PresetColor.QUEST_LINE_COMPLETE.getColor());
preCanIn2.addPanel(new PanelLine(pqp.getTransform(), itemFrame.getTransform(), linSeq, 4, colSeq, 1));
preCanIn2.addPanel(new PanelTextBox(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(8, 8, 8, 8), 0), "EXAMPLE").setAlignment(1).setColor(PresetColor.TEXT_AUX_1.getColor()));
IGuiRect ls0 = new GuiTransform(GuiAlign.TOP_CENTER, 0, 16, 0, 0, 0);
ls0.setParent(inCan.getTransform());
IGuiRect le0 = new GuiTransform(GuiAlign.BOTTOM_CENTER, 0, -16, 0, 0, 0);
le0.setParent(inCan.getTransform());
PanelLine paLine0 = new PanelLine(ls0, le0, PresetLine.GUI_DIVIDER.getLine(), 1, PresetColor.GUI_DIVIDER.getColor(), 1);
inCan.addPanel(paLine0);
}
use of betterquesting.api.client.themes.ITheme in project BetterQuesting by Funwayguy.
the class ThemeRegistry method getTheme.
@Override
public ITheme getTheme(ResourceLocation name) {
ITheme tmp = themeList.get(name);
tmp = tmp != null ? tmp : resThemes.get(name);
return tmp;
}
use of betterquesting.api.client.themes.ITheme in project BetterQuesting by Funwayguy.
the class ThemeRegistry method reloadThemes.
@Override
public void reloadThemes() {
resThemes.clear();
IResourceManager resManager = Minecraft.getMinecraft().getResourceManager();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
Iterator<String> iterator = resManager.getResourceDomains().iterator();
while (iterator.hasNext()) {
String domain = iterator.next();
try {
ResourceLocation res = new ResourceLocation(domain, "bq_themes.json");
List<IResource> list = resManager.getAllResources(res);
Iterator<IResource> iterator1 = list.iterator();
while (iterator1.hasNext()) {
IResource iresource = (IResource) iterator1.next();
try {
InputStreamReader isr = new InputStreamReader(iresource.getInputStream());
JsonArray jAry = gson.fromJson(isr, JsonArray.class);
isr.close();
for (JsonElement je : jAry) {
if (je == null || !je.isJsonObject()) {
BetterQuesting.logger.log(Level.WARN, "Invalid theme in " + domain);
continue;
}
JsonObject jThm = je.getAsJsonObject();
ResourceLocation loadID = new ResourceLocation(JsonHelper.GetString(jThm, "themeType", "betterquesting:standard"));
IThemeLoader loader = getLoader(loadID);
if (loader == null) {
continue;
}
ITheme theme = loader.loadTheme(jThm, domain);
if (theme != null) {
resThemes.put(theme.getThemeID(), theme);
}
}
} catch (Exception e) {
BetterQuesting.logger.log(Level.ERROR, "Error reading bq_themes.json from " + domain, e);
}
}
} catch (Exception e) {
}
}
}
use of betterquesting.api.client.themes.ITheme in project BetterQuesting by Funwayguy.
the class ThemeRegistry method getLineRenderer.
public IGuiLine getLineRenderer(ResourceLocation key) {
if (key == null) {
return NULL_LINE;
}
IGuiLine line = null;
// TODO: Remove this when fully converted...
ITheme legTheme = betterquesting.client.themes.ThemeRegistry.INSTANCE.getCurrentTheme();
if (legTheme != null && (activeTheme == null || !activeTheme.getID().equals(legTheme.getThemeID()))) {
activeTheme = new LegacyThemeWrapper(legTheme);
}
if (activeTheme != null) {
line = activeTheme.getLine(key);
}
line = line != null ? line : defLines.get(key);
return line == null ? NULL_LINE : line;
}
use of betterquesting.api.client.themes.ITheme in project BetterQuesting by Funwayguy.
the class ThemeRegistry method getColor.
public IGuiColor getColor(ResourceLocation key) {
if (key == null) {
return NULL_COLOR;
}
IGuiColor color = null;
// TODO: Remove this when fully converted...
ITheme legTheme = betterquesting.client.themes.ThemeRegistry.INSTANCE.getCurrentTheme();
if (legTheme != null && (activeTheme == null || !activeTheme.getID().equals(legTheme.getThemeID()))) {
activeTheme = new LegacyThemeWrapper(legTheme);
}
if (activeTheme != null) {
color = activeTheme.getColor(key);
}
color = color != null ? color : defColors.get(key);
return color == null ? NULL_COLOR : color;
}
Aggregations