@ -138,9 +138,9 @@ public class MineralRecipes {
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium_fuel, 6), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u235 });
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium235" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU235" }));
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_pu_mix, ModItems.billet_pu_mix });
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "nuggetUranium238", "nuggetUranium238" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "tinyU238", "tinyU238" }));
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu_mix });
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_plutonium_fuel, 1), new Object[] { ModItems.nugget_pu_mix, ModItems.nugget_pu_mix, "tinyU238", "tinyU238", "tinyU238", "tinyU238" }));
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_pu_mix, 3), new Object[] { ModItems.billet_pu239, ModItems.billet_pu239, ModItems.billet_pu240 });
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_pu_mix, 1), new Object[] { "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium240", "nuggetPlutonium240" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_pu_mix, 1), new Object[] { "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu240", "tinyPu240" }));
|
||||
|
||||
@ -7,7 +7,9 @@ import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.tool.ItemGuideBook.BookType;
|
||||
import com.hbm.items.tool.ItemGuideBook.GuideImage;
|
||||
import com.hbm.items.tool.ItemGuideBook.GuidePage;
|
||||
import com.hbm.items.tool.ItemGuideBook.GuideText;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
@ -133,67 +135,77 @@ public class GUIScreenGuide extends GuiScreen {
|
||||
|
||||
if(defacto < this.type.pages.size()) {
|
||||
|
||||
GuidePage page = this.type.pages.get(defacto);
|
||||
GuidePage page = this.type.pages.get(defacto);
|
||||
|
||||
float scale = page.scale;
|
||||
String text = I18nUtil.resolveKey(page.text);
|
||||
int width = 100;
|
||||
|
||||
int widthScaled = (int) (width * scale);
|
||||
List<String> lines = new ArrayList();
|
||||
String[] words = text.split(" ");
|
||||
|
||||
lines.add(words[0]);
|
||||
int indent = this.fontRendererObj.getStringWidth(words[0]);
|
||||
|
||||
for(int w = 1; w < words.length; w++) {
|
||||
|
||||
indent += this.fontRendererObj.getStringWidth(" " + words[w]);
|
||||
|
||||
if(indent <= widthScaled) {
|
||||
String last = lines.get(lines.size() - 1);
|
||||
lines.set(lines.size() - 1, last += (" " + words[w]));
|
||||
} else {
|
||||
lines.add(words[w]);
|
||||
indent = this.fontRendererObj.getStringWidth(words[w]);
|
||||
}
|
||||
}
|
||||
|
||||
float titleScale = getOverrideScale(page.titleScale, page.title + ".scale");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1F/scale, 1F/scale, 1F);
|
||||
|
||||
float topOffset = page.title == null ? 0 : 6 / titleScale;
|
||||
|
||||
for(int l = 0; l < lines.size(); l++) {
|
||||
this.fontRendererObj.drawString(lines.get(l), (int)((guiLeft + 20 + i * sideOffset) * scale), (int)((guiTop + 30 + topOffset) * scale + (12 * l)), 4210752);
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
for(GuideText textBox : page.texts) {
|
||||
float scale = textBox.scale;
|
||||
String text = I18nUtil.resolveKey(textBox.text);
|
||||
int width = textBox.width;
|
||||
|
||||
int widthScaled = (int) (width * scale);
|
||||
List<String> lines = new ArrayList();
|
||||
String[] words = text.split(" ");
|
||||
|
||||
lines.add(words[0]);
|
||||
int indent = this.fontRendererObj.getStringWidth(words[0]);
|
||||
|
||||
for(int w = 1; w < words.length; w++) {
|
||||
|
||||
indent += this.fontRendererObj.getStringWidth(" " + words[w]);
|
||||
|
||||
if(indent <= widthScaled) {
|
||||
String last = lines.get(lines.size() - 1);
|
||||
lines.set(lines.size() - 1, last += (" " + words[w]));
|
||||
} else {
|
||||
lines.add(words[w]);
|
||||
indent = this.fontRendererObj.getStringWidth(words[w]);
|
||||
}
|
||||
}
|
||||
|
||||
float titleScale = getOverrideScale(page.titleScale, page.title + ".scale");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1F/scale, 1F/scale, 1F);
|
||||
|
||||
float topOffset;
|
||||
|
||||
if(textBox.yOffset == -1) {
|
||||
topOffset = page.title == null ? -10 : 6 / titleScale;
|
||||
} else {
|
||||
topOffset = textBox.yOffset;
|
||||
}
|
||||
|
||||
for(int l = 0; l < lines.size(); l++) {
|
||||
this.fontRendererObj.drawString(lines.get(l), (int)((guiLeft + 20 + i * sideOffset + textBox.xOffset) * scale), (int)((guiTop + 30 + topOffset) * scale + (12 * l)), 4210752);
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
if(page.title != null) {
|
||||
|
||||
float tScale = titleScale;
|
||||
float tScale = page.titleScale;
|
||||
String titleLoc = I18nUtil.resolveKey(page.title);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1F/tScale, 1F/tScale, 1F);
|
||||
this.fontRendererObj.drawString(titleLoc, (int)((guiLeft + 20 + i * sideOffset + ((width / 2) - (this.fontRendererObj.getStringWidth(titleLoc) / 2 / tScale))) * tScale), (int)((guiTop + 20) * tScale), page.titleColor);
|
||||
this.fontRendererObj.drawString(titleLoc, (int)((guiLeft + 20 + i * sideOffset + ((100 / 2) - (this.fontRendererObj.getStringWidth(titleLoc) / 2 / tScale))) * tScale), (int)((guiTop + 20) * tScale), page.titleColor);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
if(page.image != null) {
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(page.image);
|
||||
|
||||
int ix = page.x;
|
||||
|
||||
if(ix == -1)
|
||||
ix = width / 2 - page.sizeX / 2;
|
||||
|
||||
drawImage(guiLeft + 20 + ix + sideOffset * i, guiTop + page.y, page.sizeX, page.sizeY);
|
||||
if(!page.images.isEmpty()) {
|
||||
for(GuideImage image : page.images) {
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(image.image);
|
||||
|
||||
int ix = image.x;
|
||||
|
||||
if(ix == -1)
|
||||
ix = 100 / 2 - image.sizeX / 2;
|
||||
|
||||
drawImage(guiLeft + 20 + ix + sideOffset * i, guiTop + image.y, image.sizeX, image.sizeY);
|
||||
}
|
||||
}
|
||||
|
||||
String pageLabel = (defacto + 1) + "/" + (this.type.pages.size());
|
||||
|
||||
@ -144,15 +144,15 @@ public class SILEXRecipes {
|
||||
|
||||
// LEP //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 15))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 10 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 5 * i)) );
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 12))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 15))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 10 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 5 * i)) );
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 12))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) );
|
||||
|
||||
// MEP //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100, 1)
|
||||
|
||||
@ -49,7 +49,8 @@ public class ItemGuideBook extends Item {
|
||||
|
||||
TEST("book.test.cover", 2F, statFacTest()),
|
||||
RBMK("book.rbmk.cover", 1.5F, statFacRBMK()),
|
||||
HADRON("book.error.cover", 1.5F, statFacHadron());
|
||||
HADRON("book.error.cover", 1.5F, statFacHadron()),
|
||||
STARTER("book.starter.cover", 1.5F, statFacStarter());
|
||||
|
||||
public List<GuidePage> pages;
|
||||
public float titleScale;
|
||||
@ -69,50 +70,74 @@ public class ItemGuideBook extends Item {
|
||||
public static List<GuidePage> statFacTest() {
|
||||
|
||||
List<GuidePage> pages = new ArrayList();
|
||||
pages.add(new GuidePage("book.test.page1").addTitle("Title LMAO", 0x800000, 1F).setScale(2F).addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/smileman.png"), 100, 40, 40));
|
||||
pages.add(new GuidePage("book.test.page1").addTitle("LA SEXO", 0x800000, 0.5F).setScale(1.75F).addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/smileman.png"), 100, 40, 40));
|
||||
pages.add(new GuidePage("test test"));
|
||||
pages.add(new GuidePage("test test test"));
|
||||
pages.add(new GuidePage("test test"));
|
||||
pages.add(new GuidePage("test test test"));
|
||||
pages.add(new GuidePage("test test"));
|
||||
|
||||
pages.add(new GuidePage().addTitle("Title LMAO", 0x800000, 1F)
|
||||
.addText("book.test.page1", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/smileman.png"), 100, 40, 40));
|
||||
pages.add(new GuidePage().addTitle("LA SEXO", 0x800000, 0.5F)
|
||||
.addText("book.test.page1", 1.75F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/smileman.png"), 100, 40, 40));
|
||||
pages.add(new GuidePage().addText("test test"));
|
||||
pages.add(new GuidePage().addText("test test test"));
|
||||
pages.add(new GuidePage().addText("test test"));
|
||||
pages.add(new GuidePage().addText("test test test"));
|
||||
pages.add(new GuidePage().addText("test test"));
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
//TODO: Make sure this is all correct
|
||||
public static List<GuidePage> statFacRBMK() {
|
||||
|
||||
List<GuidePage> pages = new ArrayList();
|
||||
pages.add(new GuidePage("book.rbmk.page1").setScale(2F).addTitle("book.rbmk.title1", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title1", 0x800000, 1F)
|
||||
.addText("book.rbmk.page1", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk1.png"), 90, 80, 60));
|
||||
pages.add(new GuidePage("book.rbmk.page2").setScale(2F).addTitle("book.rbmk.title2", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title2", 0x800000, 1F)
|
||||
.addText("book.rbmk.page2", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk2.png"), 95, 52, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page3").setScale(2F).addTitle("book.rbmk.title3", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title3", 0x800000, 1F)
|
||||
.addText("book.rbmk.page3", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk3.png"), 95, 88, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page4").setScale(2F).addTitle("book.rbmk.title4", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title4", 0x800000, 1F)
|
||||
.addText("book.rbmk.page4", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk4.png"), 95, 88, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page5").setScale(2F).addTitle("book.rbmk.title5", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title5", 0x800000, 1F)
|
||||
.addText("book.rbmk.page5", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk5.png"), 95, 80, 42));
|
||||
pages.add(new GuidePage("book.rbmk.page6").setScale(2F).addTitle("book.rbmk.title6", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title6", 0x800000, 1F)
|
||||
.addText("book.rbmk.page6", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk6.png"), 90, 100, 60));
|
||||
pages.add(new GuidePage("book.rbmk.page7").setScale(2F).addTitle("book.rbmk.title7", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title7", 0x800000, 1F)
|
||||
.addText("book.rbmk.page7", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk7.png"), 95, 52, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page8").setScale(2F).addTitle("book.rbmk.title8", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title8", 0x800000, 1F)
|
||||
.addText("book.rbmk.page8", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk8.png"), 95, 88, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page9").setScale(2F).addTitle("book.rbmk.title9", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title9", 0x800000, 1F)
|
||||
.addText("book.rbmk.page9", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk9.png"), 95, 88, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page10").setScale(2F).addTitle("book.rbmk.title10", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title10", 0x800000, 1F)
|
||||
.addText("book.rbmk.page10", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk10.png"), 95, 88, 52));
|
||||
pages.add(new GuidePage("book.rbmk.page11").setScale(2F).addTitle("book.rbmk.title11", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title11", 0x800000, 1F)
|
||||
.addText("book.rbmk.page11", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk11.png"), 75, 85, 72));
|
||||
pages.add(new GuidePage("book.rbmk.page12").setScale(2F).addTitle("book.rbmk.title12", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title12", 0x800000, 1F)
|
||||
.addText("book.rbmk.page12", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk12.png"), 90, 80, 60));
|
||||
pages.add(new GuidePage("book.rbmk.page13").setScale(2F).addTitle("book.rbmk.title13", 0x800000, 1F));
|
||||
pages.add(new GuidePage("book.rbmk.page14").setScale(2F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title13", 0x800000, 1F)
|
||||
.addText("book.rbmk.page13", 2F));
|
||||
pages.add(new GuidePage()
|
||||
.addText("book.rbmk.page14", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk13.png"), 70, 103, 78));
|
||||
pages.add(new GuidePage("book.rbmk.page15").setScale(2F).addTitle("book.rbmk.title15", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title15", 0x800000, 1F)
|
||||
.addText("book.rbmk.page15", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk15.png"), 100, 48, 48));
|
||||
pages.add(new GuidePage("book.rbmk.page16").setScale(2F).addTitle("book.rbmk.title16", 0x800000, 1F)
|
||||
pages.add(new GuidePage().addTitle("book.rbmk.title16", 0x800000, 1F)
|
||||
.addText("book.rbmk.page16", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/rbmk16.png"), 50, 70, 100));
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
@ -121,36 +146,94 @@ public class ItemGuideBook extends Item {
|
||||
List<GuidePage> pages = new ArrayList();
|
||||
|
||||
for(int i = 1; i <= 9; i++) {
|
||||
pages.add(new GuidePage("book.error.page" + i).setScale(2F).addTitle("book.error.title" + i, 0x800000, 1F));
|
||||
pages.add(new GuidePage().addTitle("book.error.title" + i, 0x800000, 1F).addText("book.error.page" + i, 2F));
|
||||
}
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
/* Mmm, maybe I should include something that allows you to have variable textures for the gui + item
|
||||
That would be something to do after the book is done though (nah, fuck that)
|
||||
*/
|
||||
public static List<GuidePage> statFacStarter() {
|
||||
|
||||
List<GuidePage> pages = new ArrayList();
|
||||
|
||||
pages.add(new GuidePage().addTitle("book.starter.title1", 0x800000, 1F)
|
||||
.addText("book.starter.page1", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter1.png"), 96, 101, 56));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title2", 0x800000, 1F)
|
||||
.addText("book.starter.page2", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/mask_piss.png"), 85, 64, 64)); //meh
|
||||
pages.add(new GuidePage().addTitle("book.starter.title3", 0x800000, 1F)
|
||||
.addText("book.starter.page3", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter3.png"), 89, 100, 64));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title4", 0x800000, 1F)
|
||||
.addText("book.starter.page4", 1.4F, 0, 6, 72)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/template_folder.png"), 72, 30, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/stamp_iron_flat.png"), 72, 60, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/assembly_template.png"), 72, 90, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/chemistry_template.png"), 72, 120, 24, 24));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title5", 0x800000, 1F)
|
||||
.addText("book.starter.page5", 2F));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title6", 0x800000, 1F)
|
||||
.addText("book.starter.page6a", 2F)
|
||||
.addText("book.starter.page6b", 2f, 0, 96, 100)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter6.png"), 9, 89, 84, 36));
|
||||
pages.add(new GuidePage()
|
||||
.addText("book.starter.page7a", 2F)
|
||||
.addText("book.starter.page7b", 2F, 0, 95, 100)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter7.png"), 9, 67, 84, 58));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title8", 0x800000, 1F)
|
||||
.addText("book.starter.page8a", 2F, 0, -1, 50)
|
||||
.addText("book.starter.page8b", 2F, 50, 70, 50)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter8a.png"), 53, 36, 47, 61)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter8b.png"), 0, 102, 47, 61));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title9", 0x800000, 1F)
|
||||
.addText("book.starter.page9", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/ingot_polymer.png"), 4, 106, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/ingot_desh.png"), 28, 130, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/solid_fuel_presto_triplet.png"), 52, 106, 24, 24)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/items/canister_gasoline.png"), 76, 130, 24, 24));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title10", 0x800000, 1F)
|
||||
.addText("book.starter.page10", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter10.png"), 0, 115, 100, 39));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title11", 0x800000, 1F)
|
||||
.addText("book.starter.page11", 2F, 0, -1, 60)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter11a.png"), 61, 36, 45, 57)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter11b.png"), 61, 97, 45, 57));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title12", 0xfece00, 1F)
|
||||
.addText("book.starter.page12a", 3F)
|
||||
.addText("book.starter.page12b", 2F, 0, 20, 100));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title13", 0x800000, 1F)
|
||||
.addText("book.starter.page13", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter13.png"), 110, 84, 42));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title14", 0x800000, 1F)
|
||||
.addText("book.starter.page14", 2F, 0, 54, 100)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter14.png"), 34, 100, 46));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title15", 0x800000, 1F)
|
||||
.addText("book.starter.page15", 2F));
|
||||
pages.add(new GuidePage().addTitle("book.starter.title16", 0x800000, 1F)
|
||||
.addText("book.starter.page16", 2F));
|
||||
pages.add(new GuidePage());
|
||||
pages.add(new GuidePage().addTitle("book.starter.title18", 0x800000, 1F)
|
||||
.addText("book.starter.page18", 2F)
|
||||
.addImage(new ResourceLocation(RefStrings.MODID + ":textures/gui/book/starter18.png"), 10, 69, 100, 100));
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
public static class GuidePage {
|
||||
|
||||
public String title;
|
||||
public int titleColor;
|
||||
public float titleScale;
|
||||
public String text;
|
||||
public ResourceLocation image;
|
||||
public float scale = 1F;
|
||||
public int x;
|
||||
public int y;
|
||||
public int sizeX;
|
||||
public int sizeY;
|
||||
|
||||
public List<GuideText> texts = new ArrayList();
|
||||
public List<GuideImage> images = new ArrayList();
|
||||
|
||||
public GuidePage() { }
|
||||
|
||||
public GuidePage(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public GuidePage setScale(float scale) {
|
||||
this.scale = scale;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addTitle(String title, int color, float scale) {
|
||||
this.title = title;
|
||||
this.titleColor = color;
|
||||
@ -158,19 +241,76 @@ public class ItemGuideBook extends Item {
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addImage(ResourceLocation image, int x, int y, int sizeX, int sizeY) {
|
||||
|
||||
public GuidePage addText(String text) {
|
||||
texts.add(new GuideText(text));
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addText(String text, float scale) {
|
||||
texts.add(new GuideText(text).setScale(scale));
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addText(String text, int xOffset, int yOffset, int width) {
|
||||
texts.add(new GuideText(text).setSize(xOffset, yOffset, width));
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addText(String text, float scale, int xOffset, int yOffset, int width) {
|
||||
texts.add(new GuideText(text).setSize(xOffset, yOffset, width).setScale(scale));
|
||||
return this;
|
||||
}
|
||||
|
||||
public GuidePage addImage(ResourceLocation image, int xOffset, int yOffset, int sizeX, int sizeY) {
|
||||
images.add(new GuideImage(image, xOffset, yOffset, sizeX, sizeY));
|
||||
return this;
|
||||
}
|
||||
|
||||
//xOffset = -1 for automatic centering
|
||||
public GuidePage addImage(ResourceLocation image, int yOffset, int sizeX, int sizeY) {
|
||||
images.add(new GuideImage(image, -1, yOffset, sizeX, sizeY));
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GuideText {
|
||||
public String text;
|
||||
public float scale = 1F;
|
||||
public int xOffset = 0;
|
||||
public int yOffset = -1;
|
||||
public int width = 100;
|
||||
|
||||
public GuideText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public GuideText setScale(float scale) {
|
||||
this.scale = scale;
|
||||
return this;
|
||||
}
|
||||
|
||||
//yOffset = -1, xOffset = 0 for default
|
||||
public GuideText setSize(int xOffset, int yOffset, int width) {
|
||||
this.xOffset = xOffset;
|
||||
this.yOffset = yOffset;
|
||||
this.width = width;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GuideImage {
|
||||
public ResourceLocation image;
|
||||
public int x;
|
||||
public int y;
|
||||
public int sizeX;
|
||||
public int sizeY;
|
||||
|
||||
public GuideImage(ResourceLocation image, int x, int y, int sizeX, int sizeY) {
|
||||
this.image = image;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.sizeX = sizeX;
|
||||
this.sizeY = sizeY;
|
||||
return this;
|
||||
}
|
||||
|
||||
//if the x-coord is -1 then it will automatically try to center the image horizontally
|
||||
public GuidePage addImage(ResourceLocation image, int y, int sizeX, int sizeY) {
|
||||
return addImage(image, -1, y, sizeX, sizeY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -864,6 +864,7 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_jizz });
|
||||
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato });
|
||||
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse });
|
||||
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot });
|
||||
|
||||
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish });
|
||||
|
||||
|
||||
@ -204,6 +204,45 @@ book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones
|
||||
book.rbmk.title16=Melting
|
||||
book.rbmk.page16=§4§lAVOID.
|
||||
|
||||
book.starter.cover=An Industrialist's$Guide to Rebuilding$Society
|
||||
book.starter.title1=Introduction
|
||||
book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life.
|
||||
book.starter.title2=Coal & Mustard Gas
|
||||
book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either.
|
||||
book.starter.title3=Anvils & Presses
|
||||
book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil.
|
||||
book.starter.title4=Templates
|
||||
book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right.
|
||||
book.starter.title5=Scavenging
|
||||
book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors...
|
||||
book.starter.title6=Early Machinery
|
||||
book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more.
|
||||
book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r.
|
||||
book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits.
|
||||
book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more.
|
||||
book.starter.title8=Black Gold
|
||||
book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time.
|
||||
book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r.
|
||||
book.starter.title9=Petrochemicals
|
||||
book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more.
|
||||
book.starter.title10=Advanced Machinery
|
||||
book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor.
|
||||
book.starter.title11=Strata
|
||||
book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest.
|
||||
book.starter.title12=Radiation
|
||||
book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it.
|
||||
book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation.
|
||||
book.starter.title13=Uranium Enrichment
|
||||
book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so.
|
||||
book.starter.title14=The Chicago Pile
|
||||
book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating.
|
||||
book.starter.title15=ZIRNOX GCR
|
||||
book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop.
|
||||
book.starter.title16=Conclusion
|
||||
book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir!
|
||||
book.starter.title18=About the Author
|
||||
book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out.
|
||||
|
||||
#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction
|
||||
#book.rbmk.title1=Introduction
|
||||
#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other.
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/gui/book/starter1.png
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter10.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter11a.png
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter11b.png
Normal file
|
After Width: | Height: | Size: 234 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter13.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter14.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter18.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter3.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter6.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter7.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter8a.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
src/main/resources/assets/hbm/textures/gui/book/starter8b.png
Normal file
|
After Width: | Height: | Size: 112 KiB |