From 98627341d4bd0bffd0ff86cae117fe7b088c9c69 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Nov 2016 15:09:15 +0100 Subject: [PATCH] Added nice crystal flux renderer~ --- .../mod/data/PlayerData.java | 3 - .../mod/inventory/gui/EnergyDisplay.java | 47 +++------- .../mod/inventory/gui/FluidDisplay.java | 3 + .../mod/inventory/gui/GuiBioReactor.java | 7 -- .../mod/inventory/gui/GuiCanolaPress.java | 6 -- .../mod/inventory/gui/GuiCoalGenerator.java | 7 -- .../mod/inventory/gui/GuiCoffeeMachine.java | 7 -- .../inventory/gui/GuiDirectionalBreaker.java | 7 -- .../mod/inventory/gui/GuiEnergizer.java | 7 -- .../mod/inventory/gui/GuiEnervator.java | 7 -- .../mod/inventory/gui/GuiFarmer.java | 8 -- .../mod/inventory/gui/GuiFurnaceDouble.java | 6 -- .../mod/inventory/gui/GuiGrinder.java | 6 -- .../mod/inventory/gui/GuiOilGenerator.java | 7 -- .../mod/inventory/gui/GuiRepairer.java | 7 -- .../mod/items/base/ItemEnergy.java | 3 +- .../actuallyadditions/mod/util/AssetUtil.java | 14 ++- .../assets/actuallyadditions/lang/en_US.lang | 84 +++++++++--------- .../textures/gui/gui_inventory.png | Bin 8374 -> 6018 bytes 19 files changed, 69 insertions(+), 167 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java b/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java index ad8b3c907..23c68ec5e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java @@ -48,7 +48,6 @@ public final class PlayerData{ public UUID id; - public int energyDisplayMode; public boolean bookGottenAlready; public boolean didBookTutorial; public boolean hasBatWings; @@ -65,7 +64,6 @@ public final class PlayerData{ } public void readFromNBT(NBTTagCompound compound, boolean savingToFile){ - this.energyDisplayMode = compound.getInteger("EnergyDisplayMode"); this.bookGottenAlready = compound.getBoolean("BookGotten"); this.didBookTutorial = compound.getBoolean("DidTutorial"); @@ -87,7 +85,6 @@ public final class PlayerData{ } public void writeToNBT(NBTTagCompound compound, boolean savingToFile){ - compound.setInteger("EnergyDisplayMode", this.energyDisplayMode); compound.setBoolean("BookGotten", this.bookGottenAlready); compound.setBoolean("DidTutorial", this.didBookTutorial); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java index 98ca0fbd9..5211eec5f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java @@ -10,22 +10,22 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; -import de.ellpeck.actuallyadditions.mod.data.PlayerData; -import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper; import de.ellpeck.actuallyadditions.mod.tile.CustomEnergyStorage; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; -import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.text.TextFormatting; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; import net.minecraftforge.fml.client.config.GuiUtils; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; +@SideOnly(Side.CLIENT) public class EnergyDisplay extends Gui{ private CustomEnergyStorage rfReference; @@ -33,7 +33,6 @@ public class EnergyDisplay extends Gui{ private int y; private boolean outline; private boolean drawTextNextTo; - private int displayMode; //0: RF, 1: FU, 2: T public EnergyDisplay(int x, int y, CustomEnergyStorage rfReference, boolean outline, boolean drawTextNextTo){ this.setData(x, y, rfReference, outline, drawTextNextTo); @@ -49,8 +48,6 @@ public class EnergyDisplay extends Gui{ this.rfReference = rfReference; this.outline = outline; this.drawTextNextTo = drawTextNextTo; - - this.displayMode = PlayerData.getDataFromPlayer(Minecraft.getMinecraft().thePlayer).energyDisplayMode; } public void draw(){ @@ -59,8 +56,6 @@ public class EnergyDisplay extends Gui{ int barX = this.x; int barY = this.y; - int uOffset = this.displayMode == 1 ? 60 : 0; - int vOffset = this.displayMode == 0 ? 0 : 85; if(this.outline){ this.drawTexturedModalRect(this.x, this.y, 52, 163, 26, 93); @@ -68,11 +63,15 @@ public class EnergyDisplay extends Gui{ barX += 4; barY += 4; } - this.drawTexturedModalRect(barX, barY, 18+uOffset, 171-vOffset, 18, 85); + this.drawTexturedModalRect(barX, barY, 18, 171, 18, 85); if(this.rfReference.getEnergyStored() > 0){ int i = this.rfReference.getEnergyStored()*83/this.rfReference.getMaxEnergyStored(); - this.drawTexturedModalRect(barX+1, barY+84-i, 36+uOffset, 172-vOffset, 16, i); + + float[] color = AssetUtil.getWheelColor(mc.theWorld.getTotalWorldTime()%256); + GlStateManager.color(color[0]/255F, color[1]/255F, color[2]/255F); + this.drawTexturedModalRect(barX+1, barY+84-i, 36, 172, 16, i); + GlStateManager.color(1F, 1F, 1F); } if(this.drawTextNextTo){ @@ -86,38 +85,16 @@ public class EnergyDisplay extends Gui{ List text = new ArrayList(); text.add(this.getOverlayText()); - text.add(""); - text.add(TextFormatting.GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.to"+(this.displayMode == 1 ? "T" : (this.displayMode == 0 ? "FU" : "RF")))); - for(int i = 1; i <= 2; i++){ - text.add(TextFormatting.DARK_GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.disclaimer."+i)); - } GuiUtils.drawHoveringText(text, mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); } } - public void onMouseClick(int mouseX, int mouseY, int mouseButton){ - if(mouseButton == 0 && this.isMouseOver(mouseX, mouseY)){ - this.changeDisplayMode(); - } - } - private boolean isMouseOver(int mouseX, int mouseY){ return mouseX >= this.x && mouseY >= this.y && mouseX < this.x+(this.outline ? 26 : 18) && mouseY < this.y+(this.outline ? 93 : 85); } private String getOverlayText(){ NumberFormat format = NumberFormat.getInstance(); - return format.format(this.rfReference.getEnergyStored())+"/"+format.format(this.rfReference.getMaxEnergyStored())+(this.displayMode == 0 ? " RF" : (this.displayMode == 2 ? " T" : " FU")); - } - - private void changeDisplayMode(){ - this.displayMode++; - if(this.displayMode >= 3){ - this.displayMode = 0; - } - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - PlayerData.getDataFromPlayer(player).energyDisplayMode = this.displayMode; - PacketHandlerHelper.sendPlayerDataPacket(player, false, false); + return format.format(this.rfReference.getEnergyStored())+"/"+format.format(this.rfReference.getMaxEnergyStored())+" Crystal Flux"; } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java index ad858194a..e42b0e7ec 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java @@ -20,10 +20,13 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fml.client.config.GuiUtils; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.text.NumberFormat; import java.util.Collections; +@SideOnly(Side.CLIENT) public class FluidDisplay extends Gui{ private FluidTank fluidReference; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiBioReactor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiBioReactor.java index 57d10fb69..cc147fa5d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiBioReactor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiBioReactor.java @@ -40,13 +40,6 @@ public class GuiBioReactor extends GuiContainer{ this.energy = new EnergyDisplay(this.guiLeft+116, this.guiTop+5, this.tile.storage); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java index 2e17dc570..2f88efe74 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java @@ -45,12 +45,6 @@ public class GuiCanolaPress extends GuiContainer{ this.fluid = new FluidDisplay(this.guiLeft+116, this.guiTop+5, this.press.tank); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java index 296629c26..d8c770e43 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java @@ -43,13 +43,6 @@ public class GuiCoalGenerator extends GuiContainer{ this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.generator.storage); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java index f889a90aa..ff3418f36 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java @@ -44,13 +44,6 @@ public class GuiCoffeeMachine extends GuiContainer{ this.ySize = 93+86; } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void initGui(){ super.initGui(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java index a7efeaae9..ec9135169 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java @@ -43,13 +43,6 @@ public class GuiDirectionalBreaker extends GuiContainer{ this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.breaker.storage); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java index 54cb7e3ef..4e786deed 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java @@ -43,13 +43,6 @@ public class GuiEnergizer extends GuiContainer{ this.energy = new EnergyDisplay(this.guiLeft+56, this.guiTop+5, this.energizer.storage); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java index 076bc3b02..b4584f53b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java @@ -43,13 +43,6 @@ public class GuiEnervator extends GuiContainer{ this.energy = new EnergyDisplay(this.guiLeft+56, this.guiTop+5, this.enervator.storage); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java index 089b3e54c..c2af18e16 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java @@ -63,14 +63,6 @@ public class GuiFarmer extends GuiContainer{ this.energy.draw(); } - - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java index 0a5155bdf..dc571f845 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java @@ -53,12 +53,6 @@ public class GuiFurnaceDouble extends GuiContainer{ } } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - @Override public void initGui(){ super.initGui(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java index 45118da0f..c5d8cfc5c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java @@ -61,12 +61,6 @@ public class GuiGrinder extends GuiContainer{ } } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - @Override protected void actionPerformed(GuiButton button) throws IOException{ if(this.isDouble && button.id == 0){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java index d454d9976..15b4f022a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java @@ -46,13 +46,6 @@ public class GuiOilGenerator extends GuiContainer{ this.fluid = new FluidDisplay(this.guiLeft+116, this.guiTop+5, this.generator.tank); } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java index 515fc16c4..c89ab07f8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java @@ -37,13 +37,6 @@ public class GuiRepairer extends GuiContainer{ this.ySize = 93+86; } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException{ - super.mouseClicked(mouseX, mouseY, mouseButton); - this.energy.onMouseClick(mouseX, mouseY, mouseButton); - } - - @Override public void initGui(){ super.initGui(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java index ea3b233b4..316207307 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java @@ -68,8 +68,7 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool){ NumberFormat format = NumberFormat.getInstance(); - int display = PlayerData.getDataFromPlayer(player).energyDisplayMode; - list.add(format.format(this.getEnergyStored(stack))+"/"+format.format(this.getMaxEnergyStored(stack))+(display == 1 ? "FU" : (display == 0 ? "RF" : "T"))); + list.add(format.format(this.getEnergyStored(stack))+"/"+format.format(this.getMaxEnergyStored(stack))+" Crystal Flux"); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java index 76deaa85e..32177c639 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java @@ -26,7 +26,6 @@ import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -35,8 +34,6 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.opengl.GL11; -import java.util.Locale; - public final class AssetUtil{ public static final ResourceLocation GUI_INVENTORY_LOCATION = getGuiLocation("gui_inventory"); @@ -322,4 +319,15 @@ public final class AssetUtil{ GlStateManager.enableFog(); } + + @SideOnly(Side.CLIENT) + public static float[] getWheelColor(float pos){ + if(pos < 85.0f){ + return new float[]{pos*3.0F, 255.0f-pos*3.0f, 0.0f}; + } + if(pos < 170.0f){ + return new float[]{255.0f-(pos -= 85.0f)*3.0f, 0.0f, pos*3.0f}; + } + return new float[]{0.0f, (pos -= 170.0f)*3.0f, 255.0f-pos*3.0f}; + } } diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index a97cfdbba..f373d09ee 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -602,7 +602,7 @@ info.actuallyadditions.booklet.edition=Edition info.actuallyadditions.deathRecorded=Your death has been recorded. Use a Death Tracker to find the death location! info.actuallyadditions.placer.sides.1=Placement Sides info.actuallyadditions.placer.sides.2=Usually when placing down blocks, they are placed towards the side of another block that you are looking at. Because the Phantom Placer can place blocks in mid-air, it doesn't know that. Usually you should just set it to a solid side. -info.actuallyadditions.energy.toRF=Click for Redstone Flux display mode! +info.actuallyadditions.energy.toCF=Click for Redstone Flux display mode! info.actuallyadditions.energy.toT=Click for Tesla display mode! info.actuallyadditions.energy.toFU=Click for Forge Units display mode! info.actuallyadditions.energy.disclaimer.1=Changing this is just visual. @@ -696,7 +696,7 @@ achievement.actuallyadditions.openTreasureChest.desc=Open a Treasure Chest achievement.actuallyadditions.craftLiquiface=Zoom, Zoom, Fluids! achievement.actuallyadditions.craftLiquiface.desc=Craft a Phantom Liquiface -achievement.actuallyadditions.craftEnergyface=Zoom, Zoom, RF! +achievement.actuallyadditions.craftEnergyface=Zoom, Zoom, CF! achievement.actuallyadditions.craftEnergyface.desc=Craft a Phantom Energyface achievement.actuallyadditions.craftCoalGen=Cool Generator @@ -763,12 +763,12 @@ booklet.actuallyadditions.shapedOreRecipe=Shaped OreDictionary Recipe booklet.actuallyadditions.indexEntry.gettingStarted.name=Getting Started booklet.actuallyadditions.indexEntry.misc.name=Miscellaneous booklet.actuallyadditions.indexEntry.crossover.name=Mod Crossover -booklet.actuallyadditions.indexEntry.functionalNoRF.name=Blocks that don't use RF +booklet.actuallyadditions.indexEntry.functionalNoRF.name=Blocks that don't use CF booklet.actuallyadditions.indexEntry.allAndSearch.name=A list of everything -booklet.actuallyadditions.indexEntry.functionalRF.name=Blocks that use RF -booklet.actuallyadditions.indexEntry.generatingRF.name=Blocks that generate RF -booklet.actuallyadditions.indexEntry.itemsNoRF.name=Items that don't use RF -booklet.actuallyadditions.indexEntry.itemsRF.name=Items that use RF +booklet.actuallyadditions.indexEntry.functionalRF.name=Blocks that use CF +booklet.actuallyadditions.indexEntry.generatingRF.name=Blocks that generate CF +booklet.actuallyadditions.indexEntry.itemsNoRF.name=Items that don't use CF +booklet.actuallyadditions.indexEntry.itemsRF.name=Items that use CF booklet.actuallyadditions.indexEntry.reconstruction.name=Reconstruction booklet.actuallyadditions.indexEntry.laserRelays.name=Laser Transport booklet.actuallyadditions.indexEntry.updatesAndInfos.name=Updates and Infos @@ -818,7 +818,7 @@ booklet.actuallyadditions.chapter.phantomfaces.text.1=Phantomfaces are booklet.actuallyadditions.chapter.phantomfaces.text.2=Important Information:It should be noted that the Phantomface is not supposed to be used as a wireless transport system. The Phantomface should be used when, for example, wanting to input items into a machine that doesn't have enough space for the amount of cables you need around it, or when you want it to look nice in a room without needing any cables or other blocks around it. It's not a short-range Tesseract. booklet.actuallyadditions.chapter.phantomfaces.text.3=The default Phantomface works for items, like described on the first page. booklet.actuallyadditions.chapter.phantomfaces.text.4=The Phantom Liquiface acts exactly like the normal Phantomface, but it works for liquid containing blocks. When given a Redstone Signal, it can be set to Auto-Output. Be careful with this though, as it could cause infinte loops and lag under certain conditions! -booklet.actuallyadditions.chapter.phantomfaces.text.5=The Phantom Energyface acts exactly like the normal Phantomface, but it works for RF, meaning you can connect it to things like Generators and Crushers. +booklet.actuallyadditions.chapter.phantomfaces.text.5=The Phantom Energyface acts exactly like the normal Phantomface, but it works for CF, meaning you can connect it to things like Generators and Crushers. booklet.actuallyadditions.chapter.phantomfaces.text.7=The Phantom Booster, as explained on the first page, ups the range of Phantomfaces by being placed on top of them. The maximum amount above one Phantomface is 3. booklet.actuallyadditions.chapter.phantomBreaker.name=Phantom Breakers & Placers @@ -852,36 +852,36 @@ booklet.actuallyadditions.chapter.crate.text.6=Similar to the Chest To Sto booklet.actuallyadditions.chapter.crate.text.7=Similar to the Chest To Storage Crate Upgrade, the Medium To Large Storage Crate Upgrade will convert any Medium Storage Crate into a Large Storage Crate by simply shift-right-clicking it. It will retain its items. booklet.actuallyadditions.chapter.coffeeMachine.name=Coffee Maker -booklet.actuallyadditions.chapter.coffeeMachine.text.1=The Coffee Maker is a block used to make Coffee, a potion-like item that gives the user several buffs. To use the coffee maker, you need a Empty Cup, Coffee Beans, which can be found in the wild, harvested and planted on farmland again, RF/t and mB of Water per cup brewed. On the coffee maker recipe pages at the back, to see what the item does, just hover over the Cup of Coffee. +booklet.actuallyadditions.chapter.coffeeMachine.text.1=The Coffee Maker is a block used to make Coffee, a potion-like item that gives the user several buffs. To use the coffee maker, you need a Empty Cup, Coffee Beans, which can be found in the wild, harvested and planted on farmland again, CF/t and mB of Water per cup brewed. On the coffee maker recipe pages at the back, to see what the item does, just hover over the Cup of Coffee. booklet.actuallyadditions.chapter.coffeeMachine.text.2=To actually give your coffee some buffs, put some of the items shown on the later pages into the slots on the right. The more slots are filled up with one item, the higher the Amplifier of the effect will be. The Maximum Amplifier is the max amount of items to be put into one coffee. Order matters: When using, for example, Milk (to see what it does exactly, go to a later page), you are going to have to plan the items out inside the numbered slots in such a way that it brews the coffee you want. booklet.actuallyadditions.chapter.coffeeMachine.text.3=This is an example of a recipe making a coffee containing Fire Resistance 1 for 0:20 and Speed 1 for 2:30. booklet.actuallyadditions.chapter.coffeeMachine.text.6=Milk is an important item when brewing coffee: It adds 2 minutes to all effects of items in slots with lower numbers while removing 1 amplifier. When the amplifier of an effect is 1, however, it will remove the effect. booklet.actuallyadditions.chapter.coffeeMachine.text.7=The fact that you're reading this means that you either have HarvestCraft installed, or that you're looking at the lang file. This does the same thing as Milk, but for veggie guys. booklet.actuallyadditions.chapter.crusher.name=Crusher and Double Crusher -booklet.actuallyadditions.chapter.crusher.text.1=The Crusher turns every ore, ingot and gem into its corresponding dust using RF/t. When you put in Ores however, they will yield 2 pieces of dust. The Double Crusher basically does the same, however it can crush two ores at a time. On the following pages, you can see some additional useful recipes for inside the crusher. He's my crush +booklet.actuallyadditions.chapter.crusher.text.1=The Crusher turns every ore, ingot and gem into its corresponding dust using CF/t. When you put in Ores however, they will yield 2 pieces of dust. The Double Crusher basically does the same, however it can crush two ores at a time. On the following pages, you can see some additional useful recipes for inside the crusher. He's my crush booklet.actuallyadditions.chapter.furnaceDouble.name=Powered Furnace -booklet.actuallyadditions.chapter.furnaceDouble.text.1=The Powered Furnace works like a furnace, however, it uses RF/t and can smelt two items at a time. +booklet.actuallyadditions.chapter.furnaceDouble.text.1=The Powered Furnace works like a furnace, however, it uses CF/t and can smelt two items at a time. booklet.actuallyadditions.chapter.lavaFactory.name=Lava Factory -booklet.actuallyadditions.chapter.lavaFactory.text.1=The Lava Factory can produce blocks of lava given RF/block. The Block above it has to be surrounded with 4 Casing Blocks, otherwise it won't be able to produce Lava. Right-Clicking on the Lava Factory will show you if it's able to produce Lava in its current setup. Lava, for a fact. ory +booklet.actuallyadditions.chapter.lavaFactory.text.1=The Lava Factory can produce blocks of lava given CF/block. The Block above it has to be surrounded with 4 Casing Blocks, otherwise it won't be able to produce Lava. Right-Clicking on the Lava Factory will show you if it's able to produce Lava in its current setup. Lava, for a fact. ory booklet.actuallyadditions.chapter.energizer.name=Energizer and Enervator -booklet.actuallyadditions.chapter.energizer.text.1=The Energizer charges items that hold RF using its energy supply. -booklet.actuallyadditions.chapter.energizer.text.2=The Enervator discharges items that hold RF and stores the energy in its energy supply. +booklet.actuallyadditions.chapter.energizer.text.1=The Energizer charges items that hold CF using its energy supply. +booklet.actuallyadditions.chapter.energizer.text.2=The Enervator discharges items that hold CF and stores the energy in its energy supply. booklet.actuallyadditions.chapter.repairer.name=Item Repairer -booklet.actuallyadditions.chapter.repairer.text.1=The Item Repairer uses RF/t to repair items that can be repaired in an Anvil without needing any materials! +booklet.actuallyadditions.chapter.repairer.text.1=The Item Repairer uses CF/t to repair items that can be repaired in an Anvil without needing any materials! booklet.actuallyadditions.chapter.coalGen.name=Coal Generator -booklet.actuallyadditions.chapter.coalGen.text.1=The Coal Generator generates RF/t through the use of everything that can be put into a furnace. Note that it only starts burning something up if the buffer isn't already full of power. +booklet.actuallyadditions.chapter.coalGen.text.1=The Coal Generator generates CF/t through the use of everything that can be put into a furnace. Note that it only starts burning something up if the buffer isn't already full of power. booklet.actuallyadditions.chapter.solarPanel.name=Solar Panel -booklet.actuallyadditions.chapter.solarPanel.text.1=The Solar Panel produces RF/t when it has direct daylight above it and it is daytime. Any blocks above it that are transparent will decrease its efficiency, however. Panelled walls +booklet.actuallyadditions.chapter.solarPanel.text.1=The Solar Panel produces CF/t when it has direct daylight above it and it is daytime. Any blocks above it that are transparent will decrease its efficiency, however. Panelled walls booklet.actuallyadditions.chapter.heatCollector.name=Heat Collector -booklet.actuallyadditions.chapter.heatCollector.text.1=The Heat Collector is a block that produces RF/t. To do that, it needs to be surrounded with at least Lava Blocks directly around it on any side except the top one. But watch out, it sometimes destroys some of these Lava Blocks! +booklet.actuallyadditions.chapter.heatCollector.text.1=The Heat Collector is a block that produces CF/t. To do that, it needs to be surrounded with at least Lava Blocks directly around it on any side except the top one. But watch out, it sometimes destroys some of these Lava Blocks! booklet.actuallyadditions.chapter.canola.name=Canola and Oil booklet.actuallyadditions.chapter.canola.text.1=Using Canola, you can make a simple, yet effective power generation system from natural resources. To do this, first find some Canola Plants in the wild and plant them on your farm. The Canola you get out of them can be used in a Canola Press to make Canola Oil. This can be used in an Oil Generator. It displays the amount of power it generates in its GUI, however, it can be upgraded further to yield more power than that! @@ -908,7 +908,7 @@ booklet.actuallyadditions.chapter.potionRings.name=Potion Rings booklet.actuallyadditions.chapter.potionRings.text.1=Potion Rings can permanenty grant a set of potion effects. A Potion Ring has two tiers. The first tier needs to be held in any hand and gives an effect of level one while the second tier can be anywhere inside the inventory and grants an effect of level two. To be able to use Potion Rings they first have to be filled up with Blaze Powder. To do this, put the ring into a Crafting Grid with one or more Blaze Powder. Over time, the powder inside the ring will be used up to grant you the effect. booklet.actuallyadditions.chapter.drill.name=Drills -booklet.actuallyadditions.chapter.drill.text.1=The Drill works like a Pickaxe and a Shovel. It uses RF per block. It can be charged in an Energizer and upgraded by sneak-right-clicking with it in your hand. There is a lot of upgrades, but here is an explanation of some of them: The Mining Uprgades enlarge the hole which the Drill digs. The Placement Upgrade, after you right-click it in any slot of your hotbar, will make the Drill able to place a block from that slot by right-clicking. You can also put a Battery inside the Drill to give it more charge. +booklet.actuallyadditions.chapter.drill.text.1=The Drill works like a Pickaxe and a Shovel. It uses CF per block. It can be charged in an Energizer and upgraded by sneak-right-clicking with it in your hand. There is a lot of upgrades, but here is an explanation of some of them: The Mining Uprgades enlarge the hole which the Drill digs. The Placement Upgrade, after you right-click it in any slot of your hotbar, will make the Drill able to place a block from that slot by right-clicking. You can also put a Battery inside the Drill to give it more charge. booklet.actuallyadditions.chapter.drill.text.2=It should be noted that, in fact, the Speed, Mining and Fortune Upgrades need their previous tiers to be installed for them to work. This means that, if you want Speed III in the Drill, it needs Speed II and Speed I inside it as well. booklet.actuallyadditions.chapter.drill.text.4=The Drill can also be dyed in Minecraft's 16 colors. It's only cosmetic and won't have any effect other than it looking different, however. @@ -916,23 +916,23 @@ booklet.actuallyadditions.chapter.staff.name=Staff booklet.actuallyadditions.chapter.staff.text.1=The Teleport Staff, when charged in an Energizer, can be right-clicked to teleport you to where you're looking. When you are looking at a block, it will teleport you there, however, when you aren't looking at a block, you can only be looking upwards up to 5 degrees, otherwise the teleport will fail. booklet.actuallyadditions.chapter.magnetRing.name=Ring Of Magnetism -booklet.actuallyadditions.chapter.magnetRing.text.1=The Ring Of Magnetism, when it is charged in an Energizer and inside your inventory, uses RF to suck up items that are farther away than you can pick up by yourself. +booklet.actuallyadditions.chapter.magnetRing.text.1=The Ring Of Magnetism, when it is charged in an Energizer and inside your inventory, uses CF to suck up items that are farther away than you can pick up by yourself. booklet.actuallyadditions.chapter.growthRing.name=Ring Of Growth -booklet.actuallyadditions.chapter.growthRing.text.1=The Ring Of Growth, when it is charged in an Energizer and in your hand, uses RF to make plants around you grow much faster. +booklet.actuallyadditions.chapter.growthRing.text.1=The Ring Of Growth, when it is charged in an Energizer and in your hand, uses CF to make plants around you grow much faster. booklet.actuallyadditions.chapter.waterRemovalRing.name=Ring Of Liquid Banning -booklet.actuallyadditions.chapter.waterRemovalRing.text.1=The Ring Of Liquid Banning, when it is charged in an Energizer and in your hand, uses RF to remove Lava and Water. +booklet.actuallyadditions.chapter.waterRemovalRing.text.1=The Ring Of Liquid Banning, when it is charged in an Energizer and in your hand, uses CF to remove Lava and Water. booklet.actuallyadditions.chapter.batteries.name=Batteries -booklet.actuallyadditions.chapter.batteries.text.1=Batteries are a good way to store RF to move around. They can be charged in an Energizer and discharged in an Enervator. When holding them in hand, they can be sneak-right-clicked to put them into discharge mode. This means that they will charge any other items in your inventory. +booklet.actuallyadditions.chapter.batteries.text.1=Batteries are a good way to store CF to move around. They can be charged in an Energizer and discharged in an Enervator. When holding them in hand, they can be sneak-right-clicked to put them into discharge mode. This means that they will charge any other items in your inventory. booklet.actuallyadditions.chapter.leafGen.name=Leaf-Eating Generator -booklet.actuallyadditions.chapter.leafGen.text.1=The Leaf Generator can generate RF just by being placed alongside some Leaves. It will destroy the leaves, generating RF per leaf broken in the process. By right-clicking the generator, you can see how much RF it has stored. It has a range of blocks. +booklet.actuallyadditions.chapter.leafGen.text.1=The Leaf Generator can generate CF just by being placed alongside some Leaves. It will destroy the leaves, generating CF per leaf broken in the process. By right-clicking the generator, you can see how much CF it has stored. It has a range of blocks. booklet.actuallyadditions.chapter.leafGen.text.2=Munchy booklet.actuallyadditions.chapter.longRangeBreaker.name=Long-Range Breaker -booklet.actuallyadditions.chapter.longRangeBreaker.text.1=The Long-Range Breaker works like a normal Breaker, but it can break up to blocks in front of it. Per block broken, it uses RF. When right-clicking it with a Redstone Torch in hand, it will change between a mode where it gets deactivated by Redstone and a mode where it responds to pulses. Breaking the th wall +booklet.actuallyadditions.chapter.longRangeBreaker.text.1=The Long-Range Breaker works like a normal Breaker, but it can break up to blocks in front of it. Per block broken, it uses CF. When right-clicking it with a Redstone Torch in hand, it will change between a mode where it gets deactivated by Redstone and a mode where it responds to pulses. Breaking the th wall booklet.actuallyadditions.chapter.longRangeBreaker.text.2=Sequence Breaking booklet.actuallyadditions.chapter.dropper.name=Automatic Precision Dropper @@ -950,7 +950,7 @@ booklet.actuallyadditions.chapter.laserIntro.text.1=Laser Relays exist booklet.actuallyadditions.chapter.laserIntro.text.2=every Laser Relay has access to interact with all of the other ones in different ways. Connecting two Laser Relays has some restrictions, however. First of all, two connected Laser Relays must be at most blocks apart from each other. Additionally, two Laser Relays of a different type cannot be connected to one another. View the other items in this chapter to find out more about different types of Laser Relays! booklet.actuallyadditions.chapter.laserRelays.name=Energy Laser Relays -booklet.actuallyadditions.chapter.laserRelays.text.1=The Energy Laser Relay is a block that can wirelessly transfer RF (or Tesla). When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network and send power to any other relay as well. During an energy transfer, they have a slight Energy Loss, but nothing to worry about, especially because it's per transfer, so it doesn't matter how many Lasers are inbetween two machines, the loss will always be the same amount. +booklet.actuallyadditions.chapter.laserRelays.text.1=The Energy Laser Relay is a block that can wirelessly transfer CF (or Tesla). When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network and send power to any other relay as well. During an energy transfer, they have a slight Energy Loss, but nothing to worry about, especially because it's per transfer, so it doesn't matter how many Lasers are inbetween two machines, the loss will always be the same amount. booklet.actuallyadditions.chapter.laserRelays.text.2=There are three tiers of Energy Laser Relay. They have different maximum amounts of energy to be transferred through them in one tick. The energy caps are, in order, , , and . Additionally, the energy loss is a bit higher every tier. Interconnecting different tiers is possible, however the lowest cap and highest loss of the two relays connected to the blocks involved in the transfer is considered. booklet.actuallyadditions.chapter.blackLotus.name=Black Lotus @@ -958,7 +958,7 @@ booklet.actuallyadditions.chapter.blackLotus.text.1=Think of this: You need t booklet.actuallyadditions.chapter.blackLotus.text.2=Do the lotus pose booklet.actuallyadditions.chapter.crystals.name=Crystals and Reconstructor -booklet.actuallyadditions.chapter.crystals.text.1=The Atomic Reconstructor is used to craft Crystals, which are the main crafting ingredient in most items from Actually Additions. Upon being supplied with power, it shoots out a Laser. When the Laser hits a block, it will convert all surrounding items and blocks, provided they can be converted. When shooting a laser, it uses RF, but additional rates vary depending on the conversion. +booklet.actuallyadditions.chapter.crystals.text.1=The Atomic Reconstructor is used to craft Crystals, which are the main crafting ingredient in most items from Actually Additions. Upon being supplied with power, it shoots out a Laser. When the Laser hits a block, it will convert all surrounding items and blocks, provided they can be converted. When shooting a laser, it uses CF, but additional rates vary depending on the conversion. booklet.actuallyadditions.chapter.crystals.text.2=There are various Lenses that can be attached to the Reconstructor that don't all follow the default behavior of the Reconstructor and are able to do some neat things. See the Reconstruction section in the booklet for more information. When right-clicking the Reconstructor with a Redstone Torch in hand, it will change between a mode where it gets deactivated by Redstone and a mode where it responds to pulses. booklet.actuallyadditions.chapter.crystals.text.3=It should be noted that any recipes listed without information about Lenses don't use one. I thought that was obvious. booklet.actuallyadditions.chapter.crystals.text.5=When you have crafted a couple of items, you might want to find a way to automate this. There is a very simple way to do accomplish this: Place the Atomic Reconstructor down facing into a Precision Dropper (to find it, look it up in the All Items Entry!). Next, place a Ranged Collector in the area that has the converted items set as a whitelist. Now you can just chuck your raw materials into the Dropper to convert them! @@ -984,24 +984,24 @@ booklet.actuallyadditions.chapter.lensDetonation.name=Lens of Detonation booklet.actuallyadditions.chapter.lensDetonation.text.1=The Lens of Detonation will create a firey explosion around the block the laser hits. Be careful with this. Seriously. (With this lens, the laser also goes 3 times as far!) booklet.actuallyadditions.chapter.lensDisenchanting.name=Lens of Disenchanting -booklet.actuallyadditions.chapter.lensDisenchanting.text.1=The Lens of Disenchanting can be used to tranfer a single enchantment from an enchanted item to either a Book or an already Enchanted Book. This can be achieved by throwing the two items in front of the laser, but they have to be together in one blockspace. When they are hit by the laser, the topmost enchantment from the non-book item is removed and added onto the book. However, this uses RF. +booklet.actuallyadditions.chapter.lensDisenchanting.text.1=The Lens of Disenchanting can be used to tranfer a single enchantment from an enchanted item to either a Book or an already Enchanted Book. This can be achieved by throwing the two items in front of the laser, but they have to be together in one blockspace. When they are hit by the laser, the topmost enchantment from the non-book item is removed and added onto the book. However, this uses CF. booklet.actuallyadditions.chapter.lensMining.name=Lens of the Miner -booklet.actuallyadditions.chapter.lensMining.text.1=The Lens of the Miner can create ores out of blocks in its sight. When the laser hits a block of stone, it will convert it into different overworld ores, whereas a block of netherrack will be converted into nether ores. Each operation uses RF, however each operation requires additional power depending on the rarity of the ore that is generated. +booklet.actuallyadditions.chapter.lensMining.text.1=The Lens of the Miner can create ores out of blocks in its sight. When the laser hits a block of stone, it will convert it into different overworld ores, whereas a block of netherrack will be converted into nether ores. Each operation uses CF, however each operation requires additional power depending on the rarity of the ore that is generated. booklet.actuallyadditions.chapter.miscDecorStuffsAndThings.name=Some Decor booklet.actuallyadditions.chapter.miscDecorStuffsAndThings.text.1=Sometimes, when you build, you notice there is just not enough decor blocks. Well, we present to you: Ethetic Blocks! These are some quartz-like decor blocks with lovely patterns that can also be converted into Stairs, Slabs and Walls using the usual, well-known recipe patterns. booklet.actuallyadditions.chapter.miner.name=Vertical Digger -booklet.actuallyadditions.chapter.miner.text.1=The Vertical Digger can be used to automatically mine blocks from the world. It has two modes: It can either only mine ores or mine everything. When mining a block, it uses about RF. Mined items get stored in an internal buffer that can be accessed through right-clicking. Its default radius is , but much like Phantomfaces, the Digger's range can be upgraded by placing 3 or less Phantom Boosters above it. +booklet.actuallyadditions.chapter.miner.text.1=The Vertical Digger can be used to automatically mine blocks from the world. It has two modes: It can either only mine ores or mine everything. When mining a block, it uses about CF. Mined items get stored in an internal buffer that can be accessed through right-clicking. Its default radius is , but much like Phantomfaces, the Digger's range can be upgraded by placing 3 or less Phantom Boosters above it. booklet.actuallyadditions.chapter.miner.text.2=(Works with any colored Drill) I dig it booklet.actuallyadditions.chapter.fireworkBox.name=Firework Box -booklet.actuallyadditions.chapter.fireworkBox.text.1=The Firework Box is a perfect thing for New Year's! When placed down and supplied with some RF, it will shoot out some randomly generated Fireworks around it. For each shot, it uses RF. You know, Vanilla Fireworks are just too bloody annoying to craft, but too awesome not to use. So here's the solution. +booklet.actuallyadditions.chapter.fireworkBox.text.1=The Firework Box is a perfect thing for New Year's! When placed down and supplied with some CF, it will shoot out some randomly generated Fireworks around it. For each shot, it uses CF. You know, Vanilla Fireworks are just too bloody annoying to craft, but too awesome not to use. So here's the solution. booklet.actuallyadditions.chapter.fireworkBox.text.2=When right-clicking it with a Redstone Torch in hand, it will change between a mode where it gets deactivated by Redstone and a mode where it responds to pulses. -booklet.actuallyadditions.chapter.rf.name=RF? Tesla? -booklet.actuallyadditions.chapter.rf.text.1=For anyone who hasn't used much of a mod that uses RF yet, here's a quick explanation. Redstone Flux is a power system used by many mods. The basic concept is is that machines generate or use it every game tick. That's what RF/t means. To connect machines, just place them next to each other. Also, if you fancy that sort of thing, all machines also work with Tesla in the same way they do with RF. +booklet.actuallyadditions.chapter.rf.name=CF - Crystal Flux +booklet.actuallyadditions.chapter.rf.text.1=Since the recent diminishment of what is known as RF, a new way of storing power has arisen: Crystal Flux. This stuff is generated by all Actually Additions machines, however, it is compatible with Tesla, Redstone Flux and Forge Units, so it works with most other machines. To transfer Crystal Flux, just place a thing that generates or transfers it next to one that uses or stores it (or any one of the systems mentioned above). You can use an Energizer to charge up items. booklet.actuallyadditions.chapter.enderStar.name=Ender Star booklet.actuallyadditions.chapter.enderStar.text.1=The Ender Star can be obtained by both killing a wither and going to the end to collect Dragon's Breath. The latter is obtained by using a bottle on the purple particles that the dragon spits out. The Ender Star is used for multiple crafting recipes. @@ -1036,11 +1036,11 @@ booklet.actuallyadditions.chapter.waterBowl.name=Bowl of Water booklet.actuallyadditions.chapter.waterBowl.text.1=The Bowl of Water can be obtained by right-cliking a bowl on water anywhere in the world. When the Bowl of Water is then right-clicked onto a block, the water will be placed, much like a Bucket. This can be used, for example, for early game farms. booklet.actuallyadditions.chapter.playerInterface.name=Player Interface -booklet.actuallyadditions.chapter.playerInterface.text.1=The Player Interface works in a similar way to the Phantomface, except it is connected to a player instead of a block, and the connection is established by placing it down. When inputting items, they will move to the player's inventory. Also, when inputting RF, it will charge the items in the player's inventory. It has a default range of blocks, however, it can be expanded by placing up to 3 Phantom Boosters on top of it. +booklet.actuallyadditions.chapter.playerInterface.text.1=The Player Interface works in a similar way to the Phantomface, except it is connected to a player instead of a block, and the connection is established by placing it down. When inputting items, they will move to the player's inventory. Also, when inputting CF, it will charge the items in the player's inventory. It has a default range of blocks, however, it can be expanded by placing up to 3 Phantom Boosters on top of it. booklet.actuallyadditions.chapter.displayStand.name=Display Stand -booklet.actuallyadditions.chapter.displayStand.text.1=The Display Stand is a block that can, for one, display any item or block by right-clicking with it onto the display stand. It will then be floating around on top. To take it out of there again, just right-click with an empty hand. The other feature, however, is that some items can be put onto it, having special effects. This, however, will require the stand to get RF. Read more on the next page. -booklet.actuallyadditions.chapter.displayStand.text.2=The Leaf Blower and Advanced Leaf Blower can be placed onto the display stand, resulting in the grass and leaves around it to be blown away. Potion Rings can be placed onto the display stand. The normal version will give the specified potion effect to only one living entity in a small area, while the advanced version will give a potion effect to all living entities in a big area while using up a significant amount of RF. +booklet.actuallyadditions.chapter.displayStand.text.1=The Display Stand is a block that can, for one, display any item or block by right-clicking with it onto the display stand. It will then be floating around on top. To take it out of there again, just right-click with an empty hand. The other feature, however, is that some items can be put onto it, having special effects. This, however, will require the stand to get CF. Read more on the next page. +booklet.actuallyadditions.chapter.displayStand.text.2=The Leaf Blower and Advanced Leaf Blower can be placed onto the display stand, resulting in the grass and leaves around it to be blown away. Potion Rings can be placed onto the display stand. The normal version will give the specified potion effect to only one living entity in a small area, while the advanced version will give a potion effect to all living entities in a big area while using up a significant amount of CF. booklet.actuallyadditions.chapter.itemFilter.name=Item Filter booklet.actuallyadditions.chapter.itemFilter.text.1=The Item Filter can be used in Advanced Item Laser Relays, ESDs and Ranged Collectors to enlargen the size of their whitelist. This can be done by right-clicking with the filter in hand and placing items to be filtered inside of it. The filter can then be placed into any whitelist slot in the desired machine. For more information on this, hover over the whitelist buttons in the GUIs of whitelistable machines! @@ -1050,7 +1050,7 @@ booklet.actuallyadditions.chapter.videoGuide.text.1=If you want to have a v booklet.actuallyadditions.chapter.videoGuide.button.1=Watch Video booklet.actuallyadditions.chapter.shockSuppressor.name=Shock Absorber -booklet.actuallyadditions.chapter.shockSuppressor.text.1=The Shock Absorber is a block that, when supplied with RF, it will protect an area of up to blocks around it from any type of Explosion, be it ghasts, TNT or creepers. Every block that is protected will result in a loss of RF. +booklet.actuallyadditions.chapter.shockSuppressor.text.1=The Shock Absorber is a block that, when supplied with CF, it will protect an area of up to blocks around it from any type of Explosion, be it ghasts, TNT or creepers. Every block that is protected will result in a loss of CF. booklet.actuallyadditions.chapter.shockSuppressor.text.2=Credit where credit is due: Or something like that. Anyways, this thing was thought up and suggested to me by praetoras. Thanks for that brilliant idea! What's a fourth wall..? booklet.actuallyadditions.chapter.tinyTorch.name=Tiny Torch @@ -1068,10 +1068,10 @@ booklet.actuallyadditions.chapter.bags.text.1=Sacks are an easy way to booklet.actuallyadditions.chapter.bags.text.2=Additionally, Sacks can be, when filled up with a lot of items, right-clicked on a container like a Chest or a Storage Crate to quickly move all of the items in the sack into the chest. booklet.actuallyadditions.chapter.empowerer.name=Empowerer -booklet.actuallyadditions.chapter.empowerer.text.1=The Empowerer is a mid-tier block that can be used to empower crystals and other items. To use it, items that should be empowered can be right-clicked onto the Empowerer, and empowering items need to be placed on Display Stands that are two blocks away, like seen in the picture on the next page. To then activate the process, every Display Stand needs to be powered with a lot of RF that is then drained to empower the item on the Empowerer. +booklet.actuallyadditions.chapter.empowerer.text.1=The Empowerer is a mid-tier block that can be used to empower crystals and other items. To use it, items that should be empowered can be right-clicked onto the Empowerer, and empowering items need to be placed on Display Stands that are two blocks away, like seen in the picture on the next page. To then activate the process, every Display Stand needs to be powered with a lot of CF that is then drained to empower the item on the Empowerer. booklet.actuallyadditions.chapter.empowerer.text.2=The placement of the Display Stands booklet.actuallyadditions.chapter.empowerer.text.3=Because every mod needs an Infusion Altar -booklet.actuallyadditions.chapter.empowerer.text.4=The Display Stand can also be used for other things! See the Blocks that use RF section for more info about it! +booklet.actuallyadditions.chapter.empowerer.text.4=The Display Stand can also be used for other things! See the Blocks that use CF section for more info about it! booklet.actuallyadditions.chapter.fluidLaser.name=Fluid Laser Relays booklet.actuallyadditions.chapter.fluidLaser.text.1=The Fluid Laser Relays work much in the same way that normal Laser Relays do, however the thing that makes the Fluid Laser Relay different from the Energy Laser Relay, however, is that it transfers fluids from internal tanks of blocks into other blocks. @@ -1080,16 +1080,16 @@ booklet.actuallyadditions.chapter.distributorItem.name=Item Distributor booklet.actuallyadditions.chapter.distributorItem.text.1=The Item Distributor is a simple way to split up items and make them go in different directions. The distributor will pull items into it from the top by itself, and then split them up and put them out into inventories connected to all of the other sides of it. It tries to do split the items equally, however this works best when inputting one item at a time, which its pulling feature does automatically. booklet.actuallyadditions.chapter.bioReactor.name=Bio Reactor -booklet.actuallyadditions.chapter.bioReactor.text.1=The Bio Reactor uses all types of seeds, foodstuffs and plants to generate RF! To do this, just place the items in its GUI. If you try this out, you will notice that it doesn't generate that much power by default. However, the more different kinds of plants, seeds and foodstuffs it has, the more power it will generate! +booklet.actuallyadditions.chapter.bioReactor.text.1=The Bio Reactor uses all types of seeds, foodstuffs and plants to generate CF! To do this, just place the items in its GUI. If you try this out, you will notice that it doesn't generate that much power by default. However, the more different kinds of plants, seeds and foodstuffs it has, the more power it will generate! booklet.actuallyadditions.chapter.farmer.name=Farmer -booklet.actuallyadditions.chapter.farmer.text.1=The Farmer is a block that can, once placed in the world, plant and harvest crops like Wheat, Potatoes, Canola and more. The left side of its GUI is reserved for seeds, while the right side will contain the harvested goods. It will farm in a 9x9 area in front of it. For every operation, it uses RF. my fam +booklet.actuallyadditions.chapter.farmer.text.1=The Farmer is a block that can, once placed in the world, plant and harvest crops like Wheat, Potatoes, Canola and more. The left side of its GUI is reserved for seeds, while the right side will contain the harvested goods. It will farm in a 9x9 area in front of it. For every operation, it uses CF. my fam booklet.actuallyadditions.chapter.lensMoreDeath.name=Lens of the Killer booklet.actuallyadditions.chapter.lensMoreDeath.text.1=The Lens of the Killer works much like the Lens of Certain Death, however it will also drop experience and player-kill loot. This means, however, that it will use a lot more power. To pick up the experience it drops, you might want to try an Experience Solidifier. booklet.actuallyadditions.chapter.fillingWand.name=Handheld Filler -booklet.actuallyadditions.chapter.fillingWand.text.1=The Handheld Filler is a great way to fill any area with blocks. To do this, first sneak-right-click a block in the world that you want to fill an area with. To actually fill an area, look at the first corner and hold right-click. Let go of right-click at the second corner. The area you mark can be a flat plane or a cube. This process requires some RF for placing the blocks and you need to have the blocks in your inventory. +booklet.actuallyadditions.chapter.fillingWand.text.1=The Handheld Filler is a great way to fill any area with blocks. To do this, first sneak-right-click a block in the world that you want to fill an area with. To actually fill an area, look at the first corner and hold right-click. Let go of right-click at the second corner. The area you mark can be a flat plane or a cube. This process requires some CF for placing the blocks and you need to have the blocks in your inventory. booklet.actuallyadditions.chapter.patreon.name=Patreon Support booklet.actuallyadditions.chapter.patreon.text.1=Do you really like Actually Additions? If you do, you can support me, Ellpeck, the author of the mod! Do you think that's a thing for you? Well, then check out my Patreon page by clicking the button below! As you can see on the next page, you can get things like floaty items above your head as a reward! Thanks a bunch <3 diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/gui_inventory.png b/src/main/resources/assets/actuallyadditions/textures/gui/gui_inventory.png index 03f065d740a70b4ab87dfa66eb13d86a2e3fdc10..aee0276277e291da66ecb58d08c313ece55c0ec4 100644 GIT binary patch literal 6018 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%0AjgPnTL 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