Skip to content

Commit 8c6600b

Browse files
committed
Finished initial PSD guide (machines section)
1 parent 705a839 commit 8c6600b

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

src/main/java/com/robotgryphon/compactmachines/client/gui/guide/GuidePage.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package com.robotgryphon.compactmachines.client.gui.guide;
22

33
import com.mojang.blaze3d.matrix.MatrixStack;
4+
import com.robotgryphon.compactmachines.CompactMachines;
45
import com.robotgryphon.compactmachines.client.gui.widget.AbstractCMGuiWidget;
56
import com.robotgryphon.compactmachines.client.gui.widget.ScrollableWrappedTextWidget;
7+
import net.minecraft.client.Minecraft;
8+
import net.minecraft.client.gui.AbstractGui;
9+
import net.minecraft.client.gui.FontRenderer;
610
import net.minecraft.client.gui.IGuiEventListener;
711
import net.minecraft.client.gui.IRenderable;
12+
import net.minecraft.util.text.TextFormatting;
13+
import net.minecraft.util.text.TranslationTextComponent;
14+
import net.minecraftforge.common.util.Constants;
815

916
import java.util.ArrayList;
1017
import java.util.List;
@@ -17,21 +24,18 @@ public class GuidePage implements IRenderable, IGuiEventListener {
1724
public GuidePage() {
1825
widgets = new ArrayList<>();
1926

20-
String ex = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse posuere nunc enim, " +
21-
"nec euismod libero ornare accumsan. Nulla dapibus eros lectus, et pellentesque magna finibus ut. " +
22-
"Quisque ornare id sem id luctus. Nam pulvinar dolor purus.\n\nFusce interdum, nisl vitae congue " +
23-
"feugiat, enim erat porttitor lorem, eu iaculis lorem est sed quam. Aliquam condimentum sed " +
24-
"dolor ut lobortis. Nunc eget turpis eget ligula malesuada volutpat. Aliquam nec magna nec massa " +
25-
"varius finibus.";
26-
27-
ex += "Nunc sollicitudin pellentesque interdum. In tempus, eros sed tincidunt semper, lorem ante volutpat mi, at sodales mauris nulla eget orci. Ut fermentum eros et massa condimentum tempus. Donec et convallis sem. In et ante non elit vehicula sagittis. Fusce sed nunc mauris. Vivamus at leo condimentum sem mollis pharetra vitae sit amet justo. Proin ac felis porta, consectetur tellus eget, volutpat dui. Vivamus porttitor gravida odio, vel sodales velit tempor at. Quisque lorem mauris, sagittis eget sem sit amet, iaculis elementum sem. Sed sed nibh quis tortor mollis ornare gravida eget nibh. Cras consectetur elit eros, dignissim hendrerit metus luctus vitae. Fusce ante orci, sollicitudin ut tempor et, fermentum id velit.";
28-
29-
ScrollableWrappedTextWidget sc = new ScrollableWrappedTextWidget(ex, 0, 0, 226, 100);
27+
ScrollableWrappedTextWidget sc = new ScrollableWrappedTextWidget(CompactMachines.MOD_ID + ".psd.pages.machines", 2, 18, 222, 160);
3028
widgets.add(sc);
3129
}
3230

3331
@Override
3432
public void render(MatrixStack ms, int mouseX, int mouseY, float partialTicks) {
33+
FontRenderer fr = Minecraft.getInstance().fontRenderer;
34+
AbstractGui.drawString(ms, fr,
35+
new TranslationTextComponent(CompactMachines.MOD_ID + ".psd.pages.machines.title")
36+
.mergeStyle(TextFormatting.GOLD),
37+
2, 2, 0);
38+
3539
for(IRenderable comp : widgets)
3640
comp.render(ms, mouseX, mouseY, partialTicks);
3741
}

src/main/java/com/robotgryphon/compactmachines/client/gui/widget/ScrollableWrappedTextWidget.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,20 @@
22

33
import com.mojang.blaze3d.matrix.MatrixStack;
44
import net.minecraft.client.Minecraft;
5+
import net.minecraft.client.gui.AbstractGui;
56
import net.minecraft.client.gui.FontRenderer;
6-
import net.minecraft.client.gui.IGuiEventListener;
7-
import net.minecraft.client.gui.IRenderable;
7+
import net.minecraft.client.resources.I18n;
88
import net.minecraft.util.IReorderingProcessor;
99
import net.minecraft.util.math.MathHelper;
1010
import net.minecraft.util.text.StringTextComponent;
11+
import net.minecraft.util.text.TextFormatting;
12+
import net.minecraft.util.text.TranslationTextComponent;
1113

1214
import java.util.List;
1315

1416
public class ScrollableWrappedTextWidget extends AbstractCMGuiWidget {
1517

16-
private String text;
18+
private String localeKey;
1719
private double yScroll = 0;
1820
private FontRenderer fontRenderer;
1921

@@ -22,9 +24,9 @@ public class ScrollableWrappedTextWidget extends AbstractCMGuiWidget {
2224
private List<IReorderingProcessor> lines;
2325
private int charSize;
2426

25-
public ScrollableWrappedTextWidget(String text, int x, int y, int width, int height) {
27+
public ScrollableWrappedTextWidget(String key, int x, int y, int width, int height) {
2628
super(x, y, width, height);
27-
this.text = text;
29+
this.localeKey = key;
2830
this.fontRenderer = Minecraft.getInstance().fontRenderer;
2931

3032
this.recalculate();
@@ -39,7 +41,8 @@ public boolean mouseScrolled(double mouseX, double mouseY, double delta) {
3941
}
4042

4143
private void recalculate() {
42-
lines = fontRenderer.trimStringToWidth(new StringTextComponent(text), width);
44+
String t = I18n.format(localeKey);
45+
lines = fontRenderer.trimStringToWidth(new StringTextComponent(t), width);
4346

4447
charSize = fontRenderer.getStringWidth("M");
4548
int maxOnScreen = height / (charSize + 4);
@@ -53,8 +56,8 @@ private void recalculate() {
5356
@Override
5457
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
5558
matrixStack.push();
56-
matrixStack.translate(0, 0, 10);
57-
59+
matrixStack.translate(x, y, 10);
60+
5861
FontRenderer fr = Minecraft.getInstance().fontRenderer;
5962

6063
try {
@@ -68,9 +71,4 @@ public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partia
6871

6972
matrixStack.pop();
7073
}
71-
72-
@Override
73-
public boolean mouseClicked(double mouseX, double mouseY, int button) {
74-
return false;
75-
}
7674
}

src/main/resources/assets/compactmachines/lang/en_us.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,8 @@
4747
"compactmachines.direction.north": "North",
4848
"compactmachines.direction.south": "South",
4949
"compactmachines.direction.west": "West",
50-
"compactmachines.direction.east": "East"
50+
"compactmachines.direction.east": "East",
51+
52+
"compactmachines.psd.pages.machines.title": "Compact Machines",
53+
"compactmachines.psd.pages.machines": "Compact Machines are the core mechanic of this mod. They allow you to build large rooms in a single block space connected to the outside world. They come in various sizes ranging from 3x3x3 to 13x13x13.\n\nYou can use Tunnels to connect the outside block faces with any of the inside walls to transport items, fluids etc.\n\nYou can enter a Compact Machine by right-clicking it with a Personal Shrinking Device. Please use JEI to look up crafting recipes."
5154
}

0 commit comments

Comments
 (0)