diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/credits')
3 files changed, 121 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java new file mode 100644 index 000000000..32896a9f8 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntry.java @@ -0,0 +1,22 @@ +package me.shedaniel.rei.gui.credits; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiListExtended; +import net.minecraft.util.text.ITextComponent; + +public class CreditsEntry extends GuiListExtended.IGuiListEntry<CreditsEntry> { + + private ITextComponent textComponent; + + public CreditsEntry(ITextComponent textComponent) { + this.textComponent = textComponent; + } + + @Override + public void drawEntry(int entryWidth, int height, int i3, int i4, boolean isSelected, float delta) { + int x = getX(); + int y = getY(); + Minecraft.getInstance().fontRenderer.drawStringWithShadow(textComponent.getFormattedText(), x + 5, y + 5, -1); + } + +} diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java new file mode 100644 index 000000000..bfc13e331 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java @@ -0,0 +1,35 @@ +package me.shedaniel.rei.gui.credits; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiListExtended; + +public class CreditsEntryListWidget extends GuiListExtended<CreditsEntry> { + + public CreditsEntryListWidget(Minecraft client, int width, int height, int startY, int endY, int entryHeight) { + super(client, width, height, startY, endY, entryHeight); + setShowSelectionBox(false); //toggleShowSelection + } + + public void creditsClearEntries() { + clearEntries(); + } + + private CreditsEntry getEntry(int int_1) { + return this.getChildren().get(int_1); + } + + public void creditsAddEntry(CreditsEntry entry) { + addEntry(entry); + } + + @Override + public int getListWidth() { + return width - 80; + } + + @Override + protected int getScrollBarX() { + return width - 40; + } + +} diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsGui.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsGui.java new file mode 100644 index 000000000..be9652dc4 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsGui.java @@ -0,0 +1,64 @@ +package me.shedaniel.rei.gui.credits; + +import me.shedaniel.rei.client.GuiHelper; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.IGuiEventListener; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.text.TextComponentString; + +public class CreditsGui extends GuiScreen { + + private GuiContainer parent; + private CreditsEntryListWidget entryListWidget; + + public CreditsGui(GuiContainer parent) { + this.parent = parent; + } + + @Override + public boolean keyPressed(int int_1, int int_2, int int_3) { + if (int_1 == 256 && this.allowCloseWithEscape()) { + this.mc.displayGuiScreen(parent); + GuiHelper.getLastOverlay().onInitialized(); + return true; + } + return super.keyPressed(int_1, int_2, int_3); + } + + @Override + protected void initGui() { + children.add(entryListWidget = new CreditsEntryListWidget(mc, width, height, 32, height - 32, 12)); + entryListWidget.creditsClearEntries(); + for(String line : I18n.format("text.rei.credit.text").split("\n")) + entryListWidget.creditsAddEntry(new CreditsEntry(new TextComponentString(line))); + entryListWidget.creditsAddEntry(new CreditsEntry(new TextComponentString(""))); + addButton(new GuiButton(0, width / 2 - 100, height - 26, I18n.format("gui.done")) { + @Override + public void onClick(double double_1, double double_2) { + CreditsGui.this.mc.displayGuiScreen(parent); + GuiHelper.getLastOverlay().onInitialized(); + } + }); + } + + @Override + public void render(int int_1, int int_2, float float_1) { + this.drawBackground(0); + this.entryListWidget.drawScreen(int_1, int_2, float_1); + this.drawCenteredString(this.fontRenderer, I18n.format("text.rei.credits"), this.width / 2, 16, 16777215); + super.render(int_1, int_2, float_1); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public IGuiEventListener getFocused() { + return entryListWidget; + } + +} |
