<BUG>entries.put(new ResourceLocation(Main.MODID, "rotary"), new Entry(pages, "Basics of Rotary", true));
</BUG>
pages = new ArrayList<IPage>();
categories.add(new CategoryItemStack(entries, "The Basics", new ItemStack(Item.getByNameOrId("crossroads:oreCopper"), 1)));
entries = new LinkedHashMap<ResourceLocation, EntryAbstract>();
<BUG>createPages(pages, client, "§r§nThere are a few ways to make heat, but the easiest is to use a coal heater. §r§rI wouldn't call it easiest, cheapest early on maybe, but its not exactly as easily automatable as a heat exchanger. §r§oIye prepher ufther mefhodes purcunally. §r§nYou two and your automation. Not everything has to be automated. §r§rBut at least some things should be. Your idea of enough automation is using the torch trick to collect sand faster. §r§nLook, everything has a place, unless that something is automation. Doing things the hard way is more proper. §r§rBut the hard way is, by definition, harder. §r§nAnd worth it. Now let me talk. A coal heater is made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.coalHeater, 1), "#*#", "# #", "###", '#', "cobblestone", '*', "ingotCopper"), "§r§nA Coal Heater can burn coal or charcoal to produce 1600*C per piece. The heat cables can only be connected to the top. §r§oAs you can see by the copper patch on the top. §r§rRemember to be careful with the coal heater before you set up regulatory systems, you don't want to melt the heat cables. Also, the coal heater works as a copper heat cable in that it can move heat between itself and things above it without the aid of a cable.");

entries.put(new ResourceLocation(Main.MODID, "coalHeater"), new EntryItemStack(pages, "Coal Heater", new ItemStack(ModBlocks.coalHeater, 1), true));
</BUG>
pages = new ArrayList<IPage>();

createPages(pages, client, "§r§oThe most basic form of energy is heat. Heat is transmitted with heat cables. Heat cables average there temperture with that of things around them. There are two parts to each cable, the insulator and the conductor. The conductor determines the transfer rate, with a rate of one averaging fully every 10 ticks, and .5 avereging halfway every 10 ticks, and so on. The conductors are copper (.33), diamond (1), iron (.1), and quartz (.05). Iron and Quurtz are best for limiting the rate of heat transfer. The insulator determines 3 things: the rate of heat loss, the melting temperture of the cable, and what the cable dose when it melts. A loss rating of 1 means the temperture averages with the biome every 10 ticks, while a rating of .5 half averages every 10 ticks. The insulaters are wool, which burns at 300*, and has a loss of .01, slime, which re-animates at 500*, and has ae loss of .005, Ice melts at 0*, and is at -10* when first placed, but has the smallist loss off .00005. Finally, there is obsidean, which melts at 2000*, and has a loss of .0001. The cables are made in the same patern as this example:", new ShapedOreRecipe(new ItemStack(HeatCableFactory.cableMap.get(HeatConductors.COPPER).get(HeatInsulators.WOOL), 4), "###", "$$$", "###", '#', Blocks.WOOL, '$', "ingotCopper"), "§r§oI should note that diamond cables are made with diamond wire instead of full diamonds. The wires are made like so:",new ShapedOreRecipe(new ItemStack(ModItems.diamondWire, 3), "*&*", '*', "ingotTin", '&', "gemDiamond"), "§r§oA useful tool is the thermometer, which measures the temperture of a heat cable and is made as such:", new ShapedOreRecipe(new ItemStack(ModItems.thermometer, 1), "#", "$", "?", '#', "dyeRed", '$', ModItems.axle, '?', "blockGlass"), "§r§lHELLLOO it's-a-me, bobo! me kNow trik 4 heat! dirt Is much g0od as ins-ool-8-or! hEat relEse power of d1rt! heAt 1et dErP frE!");
entries.put(new ResourceLocation(Main.MODID, "heat"), new EntryItemStack(pages, "Basics of Heat", new ItemStack(ModItems.thermometer, 1), smallText));
pages = new ArrayList<IPage>();
createPages(pages, client, "§r§nSteam is best explained by covering fluids in general. Most machines that need fluid can't have it bucketed in directly, and need you to pipe it in. Fluids obviously flow through pipes, made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.fluidTube, 8), "###", "   ", "###", '#', "ingotBronze"), "§r§nThese tubes can handle any fluid, hot or cold, and average out the pressure between themselves and stuff around them. Pressure is the amount of liquid divided by the amount it can store. Most machines can only accept or output fluids though, so pipes don't average with those, they just insert/extract. There are also tanks, which store 20 buckets, which can be bucketed in and out of them directly. They average their pressure with tubes, and keep their contents when broken. They're made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.fluidTank, 1), " $ ", "$#$", " $ ", '#', "ingotGold", '$', "ingotBronze"), "§r§r What is the gold for? Surely bronze is enough? You also left out that comparators can detect how full a tank is. §r§nI thought I was supposed to be doing the bit on steam. And the gold is for reinforcement. §r§rGold? Reinforcement? You do know gold is softer than bronze, right? §r§nBe Quiet! You're breaking the fourth wall! §r§rMy bad, I'll just leave and let you get back to spreading misinformation then. §r§nGood ridance. Anyways, steam is just another fluid, and it's only special because it's great for moving energy. Heat can be converted to steam with boilers (more on that later), and steam can be converted back to heat or rotary energy. Also, it flows pretty quickly with no loss, and the tubes don't melt or anything like that. A boiler is made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.steamBoiler, 1), "###", "#?#", "&&&", '#', "ingotBronze", '?', "blockBronze", '&', "ingotCopper"), "§r§nA boiler is a bit more complicated than it sounds. Heat goes in the bottom, steam comes out the top, and water goes in the side. The boiler turns water into steam once it hits 110*C. One bucket of steam uses " + Math.round(EnergyConverters.DEG_PER_BUCKET_STEAM * 1.1D) + "*C to create and 1 bucket of water, and 10 pieces of salt are created. Salt can be pulled out the bottom, and if the boiler gets full of salt it stops working. Because salt needs to be hoppered out the bottom and heat goes in the bottom, you can't automate the boiler YET, if you care about that sort of thing for some reason. When you use steam to make rotary energy or heat, you get distilled water back instead of normal water. Distilled water can also be used to make steam, and if you use distilled water no salt is created, making the boiler automateable. Also, the boiler only has to be heated to 100*C, and only uses " + EnergyConverters.DEG_PER_BUCKET_STEAM + "*C per bucket, which is how much heat you can get out of a bucket of steam. Distilled water is just better for making steam for some reason. I don't really know why it takes less heat to boil, maybe the Alchemist could tell you. One last thing in this long ramble, to measure the fluid pressure in something make a fluid guage, made like so:", new ShapedOreRecipe(new ItemStack(ModItems.fluidGauge, 1), "#", "$", '#', Items.COMPASS, '$', ModBlocks.fluidTube));
entries.put(new ResourceLocation(Main.MODID, "steam"), new EntryItemStack(pages, "Basics of Steam", new ItemStack(ModItems.fluidGauge, 1), smallText));
pages = new ArrayList<IPage>();
createPages(pages, client, "§r§rThe most complicated energy system is rotary. Before I get into specifics, I should explain the physics. Because they are so complicated, I will explain the physics twice: first in a complete way that includes the calculations, and then again in a dumbed down way for people who hate math. Knowing the actual calculations can help optimize rotary systems greatly though. Just skip ahead through this part if you hate math. Gear physics should first be explained with a single gear. Imagine this 1 gear is floating in space, with no friction, AKA no loss. The gear has a mass, and a moment of inertia. A moment of inertia (I) is like mass, but also takes into account the shape of the gear. It is such a pain to calculate that each gear will have the value of I in the tooltip. For a perfect cylinder, I is easy to calculate though: I = R*R*M. Or in plain english, I equals the radius squared times mass. Just assume gears are perfect cylinders when calculating I. The calculations for I outside of perfect shapes involves calculus, but with gears just say they are cylinders. The speed the gear is spinning (in radians per second) is represented by a lowercase omega, w. §r§nThere's no such thing as a lowercase omega. You just wrote a normal W. §r§rYes there is, and they look almost the same. Now leave. Anyways, a radian is a measure of angles, like degrees. There are 2 Pi radians in a circle. The energy in a gear is equal to I*w*w, or I times speed squared. Power is the change in energy every second. Most machines that use rotary energy use it from an attached gear. Most machines will use energy from the gear at a rate determined by the speed. A typical machine (like the grindstone, to be covered in a different section) will have an amount of energy need per operation, a minimum speed, and a maximum speed. They will still work fine above the maximum speed. They will draw all the energy from the gear every tick at or above the maximum speed, will not work at all below the minimum speed, and halfway between the maximum and minimum speed will draw half the energy from the gear every tick. At all speeds it will draw the same amount of energy total, but it runs faster at higher speeds. Now comes gears transmitting energy between each other. Every tick, all gears in a network redistribute energy. A network has a value called V which equals the radius of any gear times the speed of that gear. All gears in a network have the same V. Each gear will have a fraction of the network's energy equal to the fraction of the network's mass that the gear has. So a network of light gears with one heavy gear will result in a higher concentration of energy in the heavier gear. Therefore, putting the heavy gear attached to the machine you want to power will give the machine a bigger bank of energy to draw every tick. Now comes loss: Loss is complicated, and I'll only give you the basics. (Note from the mod author: I made up the loss mechanics for balance reasons.) Every tick, each gear loses a percentage of its energy. The % lost changes based on speed, with higher speeds exponentially increasing loss. Therefore, replaceing heavy gears with lighter gears in a system will likely increase speed but decrease energy. Now for the dumbed down version of gears: Gears spin and more energy means faster spin, but heavier gears means slower spin. Faster spin means faster machines but more energy loss. Heavy gears have less loss. Ok, now for something important whether you hate or love math: Every gear network needs at least one Master Axis with a gear attached to the front. Additional master axises have no effect. Without a Master Axis, nothing will work. They are made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.masterAxis, 1), "###", "#?#", "#$#", '#', "ingotIron", '?', Blocks.DROPPER, '$', "stickIron"), "§r§rNow for how to make the gears themselves. There are several gear materials, and in order of most to least dense they are: Gold, Copper, Bronze, Iron, & Tin, with gold being more than twice as dense as copper. The two mains types of gears are small gears and large gears. Small gears have a radius of .5 blocks, and 6 can fit in one blockspace. They need to be attached to a solid block. They are made like this, with this particuler recipe making gold ones:", new ShapedOreRecipe(new ItemStack(GearFactory.basicGears.get(GearTypes.GOLD), 9), " * ", "*&*", " * ", '*', "ingotGold", '&', "blockGold"), new ShapedOreRecipe(new ItemStack(GearFactory.basicGears.get(GearTypes.GOLD), 1), " * ", "*&*", " * ", '*', "nuggetGold", '&', "ingotGold"), "§r§rLarge gears have a radius of 1.5 blocks, and do not need to be supported on something. This recipe makes a gold large gear, but once again they are available in all varieties:", new ShapedOreRecipe(new ItemStack(GearFactory.largeGears.get(GearTypes.GOLD), 1), "***", "*&*", "***", '*', GearFactory.basicGears.get(GearTypes.GOLD), '&', "blockGold"), "§r§rGears can connect around corners, do inside corners, can connect on the same plane, and basically connect in any way that looks logical. One last thing, there are a few tools that help with gears. The hand crank, made like so:", new ShapedOreRecipe(new ItemStack(ModItems.handCrank, 1), " ?", "##", "$ ", '?', Blocks.LEVER, '#', "stickWood", '$', "cobblestone"), "§r§rallows you to manually add energy to gears by cranking them. Right click to spin them one way, shift right click to crank them the other way. Holding down the button is best. It is manual and only creates a small amount of power, so I recommend switching to automated power generation as soon as possible. Also, a speedometer can measure the speed and energy of a gear, and is made like so:", new ShapedOreRecipe(new ItemStack(ModItems.speedometer, 1), " #", "#$", '#', "string", '$', "ingotIron"), "§r§rOne last trick, if you combine the thermometer, the speedometer, and the fluid guage, you can create an omnimeter which combines all of their functions into one device, which can also give additional information. I highly recommend making one like so:", new ShapedOreRecipe(new ItemStack(ModItems.omnimeter, 1), " # ", "&$%", " ? ", '#', ModItems.fluidGauge, '&', ModItems.thermometer, '$', "gemEmerald", '%', ModItems.speedometer, '?', Items.CLOCK));
entries.put(new ResourceLocation(Main.MODID, "rotary"), new EntryItemStack(pages, "Basics of Rotary", new ItemStack(ModItems.speedometer, 1), smallText));
pages = new ArrayList<IPage>();
categories.add(new CategoryItemStack(entries, "The Basics", new ItemStack(Item.getByNameOrId("crossroads:oreCopper"), 1)));
entries = new LinkedHashMap<ResourceLocation, EntryAbstract>();
createPages(pages, client, "§r§nThere are a few ways to make heat, but the easiest is to use a coal heater. §r§rI wouldn't call it easiest, cheapest early on maybe, but its not exactly as easily automatable as a heat exchanger. §r§oI prefer other methods pursonally. §r§nYou two and your automation. Not everything has to be automated. §r§rBut at least some things should be. Your idea of enough automation is using the torch trick to collect sand faster. §r§nLook, everything has a place, unless that something is automation. Doing things the hard way is more proper. §r§rBut the hard way is, by definition, harder. §r§nAnd worth it. Now let me talk. A coal heater is made like so:", new ShapedOreRecipe(new ItemStack(ModBlocks.coalHeater, 1), "#*#", "# #", "###", '#', "cobblestone", '*', "ingotCopper"), "§r§nA Coal Heater can burn coal or charcoal to produce 1600*C per piece. The heat cables can only be connected to the top. §r§oAs you can see by the copper patch on the top. §r§rRemember to be careful with the coal heater before you set up regulatory systems, you don't want to melt the heat cables. Also, the coal heater works as a copper heat cable in that it can move heat between itself and things above it without the aid of a cable.");
entries.put(new ResourceLocation(Main.MODID, "coalHeater"), new EntryItemStack(pages, "Coal Heater", new ItemStack(ModBlocks.coalHeater, 1), smallText));
pages = new ArrayList<IPage>();
