From 2ea19830fab0195cca953cb098bc5c49f92cd2ac Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 20:42:20 +0100 Subject: [PATCH 01/21] Always use StringUtil's renderSplitString --- .../blocks/BlockLavaFactoryController.java | 4 ++-- .../ellpeck/actuallyadditions/blocks/BlockPhantom.java | 6 +++--- .../actuallyadditions/booklet/page/PageCoffeeRecipe.java | 3 ++- .../actuallyadditions/booklet/page/PageCrafting.java | 4 ++-- .../booklet/page/PageCrusherRecipe.java | 4 ++-- .../actuallyadditions/booklet/page/PageFurnace.java | 4 ++-- .../actuallyadditions/booklet/page/PagePicture.java | 3 ++- .../booklet/page/PageReconstructor.java | 4 ++-- .../actuallyadditions/booklet/page/PageTextOnly.java | 3 ++- .../java/ellpeck/actuallyadditions/util/StringUtil.java | 9 ++++----- 10 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java index e3129119f..b62a94778 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java @@ -72,10 +72,10 @@ public class BlockLavaFactoryController extends BlockContainerBase implements IH if(factory != null){ int state = factory.isMultiblock(); if(state == TileEntityLavaFactoryController.NOT_MULTI){ - StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".factory.notPart.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+5, 200, StringUtil.DECIMAL_COLOR_WHITE); + StringUtil.drawSplitString(minecraft.fontRenderer, StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".factory.notPart.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+5, 200, StringUtil.DECIMAL_COLOR_WHITE, true); } else if(state == TileEntityLavaFactoryController.HAS_AIR || state == TileEntityLavaFactoryController.HAS_LAVA){ - StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".factory.works.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+5, 200, StringUtil.DECIMAL_COLOR_WHITE); + StringUtil.drawSplitString(minecraft.fontRenderer, StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".factory.works.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+5, 200, StringUtil.DECIMAL_COLOR_WHITE, true); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java index de3a37114..31fc52b5f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java @@ -128,13 +128,13 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{ int distance = (int)Vec3.createVectorHelper(posHit.blockX, posHit.blockY, posHit.blockZ).distanceTo(Vec3.createVectorHelper(phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ())); Item item = phantom.getBoundPosition().getItemBlock(minecraft.theWorld); String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(phantom.getBoundPosition().getBlock(minecraft.theWorld), 1, phantom.getBoundPosition().getMetadata(minecraft.theWorld))); - StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, StringUtil.localizeFormatted("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.blockInfo.desc", name, phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ(), distance), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-30, 200, StringUtil.DECIMAL_COLOR_WHITE); + StringUtil.drawSplitString(minecraft.fontRenderer, StringUtil.localizeFormatted("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.blockInfo.desc", name, phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ(), distance), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-30, 200, StringUtil.DECIMAL_COLOR_WHITE, true); if(phantom.isBoundThingInRange()){ - StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, EnumChatFormatting.DARK_GREEN+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.connectedRange.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+25, 200, StringUtil.DECIMAL_COLOR_WHITE); + StringUtil.drawSplitString(minecraft.fontRenderer, EnumChatFormatting.DARK_GREEN+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.connectedRange.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+25, 200, StringUtil.DECIMAL_COLOR_WHITE, true); } else{ - StringUtil.drawSplitStringWithShadow(minecraft.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.connectedNoRange.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+25, 200, StringUtil.DECIMAL_COLOR_WHITE); + StringUtil.drawSplitString(minecraft.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".phantom.connectedNoRange.desc"), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+25, 200, StringUtil.DECIMAL_COLOR_WHITE, true); } } else{ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java index 122720b84..ee9b11f2a 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java @@ -18,6 +18,7 @@ import ellpeck.actuallyadditions.items.ItemCoffee; import ellpeck.actuallyadditions.items.metalists.TheMiscItems; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.AssetUtil; +import ellpeck.actuallyadditions.util.StringUtil; import ellpeck.actuallyadditions.util.Util; import net.minecraft.item.ItemStack; @@ -46,7 +47,7 @@ public class PageCoffeeRecipe extends BookletPage{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+100, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+100, 115, 0, false); } if(this.ingredient.maxAmplifier > 0){ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java index 66a5827a8..4eeb32d0c 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java @@ -85,7 +85,7 @@ public class PageCrafting extends BookletPage{ IRecipe recipe = this.recipes[this.recipePos]; if(recipe == null){ - gui.mc.fontRenderer.drawSplitString(EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0, false); } else{ String strg = StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+"."+(recipe instanceof ShapedRecipes ? "shapedRecipe" : (recipe instanceof ShapelessRecipes ? "shapelessRecipe" : (recipe instanceof ShapelessOreRecipe ? "shapelessOreRecipe" : "shapedOreRecipe")))); @@ -94,7 +94,7 @@ public class PageCrafting extends BookletPage{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+90, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+90, 115, 0, false); } if(recipe != null){ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java index edaa88df2..e2a1f797d 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java @@ -56,7 +56,7 @@ public class PageCrusherRecipe extends BookletPage{ @SideOnly(Side.CLIENT) public void render(GuiBooklet gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ if(recipe == null){ - gui.mc.fontRenderer.drawSplitString(EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0, false); } else{ String strg = "Crusher Recipe"; @@ -65,7 +65,7 @@ public class PageCrusherRecipe extends BookletPage{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+100, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+100, 115, 0, false); } if(recipe != null){ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java index 21da828dc..1bc90a7d7 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java @@ -60,7 +60,7 @@ public class PageFurnace extends BookletPage{ public void render(GuiBooklet gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ ItemStack input = this.input != null ? this.input : this.getInputForOutput(this.result); if(input == null){ - gui.mc.fontRenderer.drawSplitString(EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0, false); } else{ String strg = "Furnace Recipe"; @@ -69,7 +69,7 @@ public class PageFurnace extends BookletPage{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+100, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+100, 115, 0, false); } if(input != null){ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java index 69e7a6756..f40e64d01 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java @@ -14,6 +14,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.booklet.GuiBooklet; import ellpeck.actuallyadditions.util.AssetUtil; +import ellpeck.actuallyadditions.util.StringUtil; import net.minecraft.util.ResourceLocation; public class PagePicture extends PageTextOnly{ @@ -35,7 +36,7 @@ public class PagePicture extends PageTextOnly{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+textStartY, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+textStartY, 115, 0, false); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageReconstructor.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageReconstructor.java index 4788af242..7177a5add 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageReconstructor.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageReconstructor.java @@ -70,7 +70,7 @@ public class PageReconstructor extends BookletPage{ public void render(GuiBooklet gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ LensNoneRecipeHandler.Recipe recipe = this.recipes[this.recipePos]; if(recipe == null){ - gui.mc.fontRenderer.drawSplitString(EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.guiLeft+14, gui.guiTop+15, 115, 0, false); } else{ String strg = "Atomic Reconstructor"; @@ -79,7 +79,7 @@ public class PageReconstructor extends BookletPage{ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+100, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+100, 115, 0, false); } if(recipe != null){ diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java index 7cbbaeb76..755814bad 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java @@ -13,6 +13,7 @@ package ellpeck.actuallyadditions.booklet.page; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.booklet.GuiBooklet; +import ellpeck.actuallyadditions.util.StringUtil; import net.minecraft.item.ItemStack; public class PageTextOnly extends BookletPage{ @@ -39,7 +40,7 @@ public class PageTextOnly extends BookletPage{ public void renderPre(GuiBooklet gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ String text = gui.currentEntrySet.page.getText(); if(text != null && !text.isEmpty()){ - gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+9, 115, 0); + StringUtil.drawSplitString(gui.mc.fontRenderer, text, gui.guiLeft+14, gui.guiTop+9, 115, 0, false); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java index dab4013bb..359557eab 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java @@ -13,7 +13,6 @@ package ellpeck.actuallyadditions.util; import net.minecraft.client.gui.FontRenderer; import net.minecraft.util.StatCollector; -import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Objects; @@ -52,11 +51,11 @@ public class StringUtil{ } } - public static void drawSplitStringWithShadow(FontRenderer renderer, String strg, int x, int y, int width, int color){ + public static void drawSplitString(FontRenderer renderer, String strg, int x, int y, int width, int color, boolean shadow){ List list = renderer.listFormattedStringToWidth(strg, width); - for(Iterator iterator = list.iterator(); iterator.hasNext(); y += renderer.FONT_HEIGHT){ - String s1 = (String)iterator.next(); - renderer.drawString(s1, x, y, color, true); + for(int i = 0; i < list.size(); i++){ + String s1 = (String)list.get(i); + renderer.drawString(s1, x, y+(i*renderer.FONT_HEIGHT), color, shadow); } } } From 89978a5c8c5e1243a2944994279d18d270fe6132 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 22:03:17 +0100 Subject: [PATCH 02/21] Made Laser Relays less particle render heavy - But also less good looking. Gotta find a better solution at some point. --- .../ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 803d2ec56..c014a4b38 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -43,13 +43,13 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @SideOnly(Side.CLIENT) public void renderParticles(){ - if(Util.RANDOM.nextInt(2) == 0){ + if(Util.RANDOM.nextInt(15) == 0){ Position thisPos = new Position(this.xCoord, this.yCoord, this.zCoord); LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ for(LaserRelayConnectionHandler.ConnectionPair aPair : network.connections){ if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ - PacketParticle.renderParticlesFromAToB(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ(), aPair.secondRelay.getX(), aPair.secondRelay.getY(), aPair.secondRelay.getZ(), ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 6, 0.6F, COLOR, 0.6F); + PacketParticle.renderParticlesFromAToB(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ(), aPair.secondRelay.getX(), aPair.secondRelay.getY(), aPair.secondRelay.getZ(), ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 4, 0.8F, COLOR, 1F); } } } From a961870caca932967c3828c8f799e9c698fc8ed8 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 22:44:25 +0100 Subject: [PATCH 03/21] Fixed Smiley Cloud's and Laser Relay's Collision Bounding Box sometimes freaking out --- .../actuallyadditions/blocks/BlockLaserRelay.java | 10 ++++++++++ .../actuallyadditions/blocks/BlockSmileyCloud.java | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java index 5260d40fd..1acfcc609 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java @@ -17,14 +17,18 @@ import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.AssetUtil; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; + public class BlockLaserRelay extends BlockContainerBase{ public BlockLaserRelay(String name){ @@ -35,6 +39,12 @@ public class BlockLaserRelay extends BlockContainerBase{ this.setStepSound(soundTypeStone); } + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB axis, List list, Entity entity){ + this.setBlockBoundsBasedOnState(world, x, y, z); + super.addCollisionBoxesToList(world, x, y, z, axis, list, entity); + } + @Override public boolean renderAsNormalBlock(){ return false; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java index 370b5c472..9a9505649 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java @@ -22,17 +22,20 @@ import ellpeck.actuallyadditions.util.Util; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; import java.util.Random; public class BlockSmileyCloud extends BlockContainerBase{ @@ -92,6 +95,12 @@ public class BlockSmileyCloud extends BlockContainerBase{ return true; } + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB axis, List list, Entity entity){ + this.setBlockBoundsBasedOnState(world, x, y, z); + super.addCollisionBoxesToList(world, x, y, z, axis, list, entity); + } + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z){ int meta = world.getBlockMetadata(x, y, z); From 732da75c9ffdfa886c2338846cedf9f5020e194b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 23:09:50 +0100 Subject: [PATCH 04/21] Placers can now place Redstone --- .../util/FakePlayerUtil.java | 2 +- .../actuallyadditions/util/WorldUtil.java | 27 ++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java index d8bcbd870..698a54a57 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java @@ -29,7 +29,7 @@ public class FakePlayerUtil{ public static FakePlayer getFakePlayer(World world){ if(world instanceof WorldServer){ - if(theFakePlayer == null){ + if(theFakePlayer == null || theFakePlayer.worldObj != world){ theFakePlayer = new FakePlayer((WorldServer)world, FAKE_PROFILE); } return theFakePlayer; diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java index 54148f3e0..ee830c2fb 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java @@ -20,6 +20,7 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -137,23 +138,29 @@ public class WorldUtil{ } } + //Redstone + else if(stack.getItem() == Items.redstone){ + world.setBlock(x+side.offsetX, y+side.offsetY, z+side.offsetZ, Blocks.redstone_wire); + stack.stackSize--; + } + //Plants - if(stack.getItem() instanceof IPlantable){ + else if(stack.getItem() instanceof IPlantable){ if(((IPlantable)stack.getItem()).getPlant(world, x, y, z).canPlaceBlockAt(world, x+side.offsetX, y+side.offsetY, z+side.offsetZ)){ if(world.setBlock(x+side.offsetX, y+side.offsetY, z+side.offsetZ, ((IPlantable)stack.getItem()).getPlant(world, x, y, z))){ stack.stackSize--; - return stack; } } } - - try{ - //Blocks - stack.tryPlaceItemIntoWorld(FakePlayerUtil.getFakePlayer(world), world, x, y, z, side == ForgeDirection.UNKNOWN ? 0 : side.ordinal(), 0, 0, 0); - return stack; - } - catch(Exception e){ - ModUtil.LOGGER.error("Something that places Blocks at "+x+", "+y+", "+z+" in World "+world.provider.dimensionId+" threw an Exception! Don't let that happen again!"); + else{ + try{ + //Blocks + stack.tryPlaceItemIntoWorld(FakePlayerUtil.getFakePlayer(world), world, x, y, z, side == ForgeDirection.UNKNOWN ? 0 : side.ordinal(), 0, 0, 0); + return stack; + } + catch(Exception e){ + ModUtil.LOGGER.error("Something that places Blocks at "+x+", "+y+", "+z+" in World "+world.provider.dimensionId+" threw an Exception! Don't let that happen again!"); + } } } return stack; From 583d6e025e1f7bef724c56e3e96525f68c3d4f30 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 23 Dec 2015 23:14:39 +0100 Subject: [PATCH 05/21] Fixed Fake Player --- .../java/ellpeck/actuallyadditions/util/FakePlayerUtil.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java index 698a54a57..25acc79b3 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java @@ -14,6 +14,7 @@ import com.mojang.authlib.GameProfile; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.common.util.FakePlayerFactory; import java.util.UUID; @@ -29,8 +30,8 @@ public class FakePlayerUtil{ public static FakePlayer getFakePlayer(World world){ if(world instanceof WorldServer){ - if(theFakePlayer == null || theFakePlayer.worldObj != world){ - theFakePlayer = new FakePlayer((WorldServer)world, FAKE_PROFILE); + if(theFakePlayer == null){ + theFakePlayer = FakePlayerFactory.get((WorldServer)world, FAKE_PROFILE); } return theFakePlayer; } From 7dd939999c35bbf95a6c6d4d1665e691a72923e6 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 00:34:47 +0100 Subject: [PATCH 06/21] Fixed blocks activating too often in redstone pulse mode --- .../blocks/base/BlockContainerBase.java | 28 ++++++++++++++----- .../tile/TileEntityDirectionalBreaker.java | 1 + 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java b/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java index 6b88eba0e..c4f2acaa6 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java @@ -32,6 +32,7 @@ import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; +import java.util.Random; public abstract class BlockContainerBase extends BlockContainer{ @@ -110,14 +111,26 @@ public abstract class BlockContainerBase extends BlockContainer{ } public void updateRedstoneState(World world, int x, int y, int z){ - TileEntity tile = world.getTileEntity(x, y, z); - boolean powered = world.isBlockIndirectlyGettingPowered(x, y, z); - if(tile instanceof TileEntityBase){ - ((TileEntityBase)tile).setRedstonePowered(powered); - tile.markDirty(); + if(!world.isRemote){ + TileEntity tile = world.getTileEntity(x, y, z); + boolean powered = world.isBlockIndirectlyGettingPowered(x, y, z); + if(tile instanceof TileEntityBase){ + ((TileEntityBase)tile).setRedstonePowered(powered); + tile.markDirty(); + } + if(tile instanceof IRedstoneToggle){ + if(((IRedstoneToggle)tile).isPulseMode() && powered){ + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + } } - if(tile instanceof IRedstoneToggle){ - if(((IRedstoneToggle)tile).isPulseMode() && powered){ + } + + @Override + public void updateTick(World world, int x, int y, int z, Random random){ + if(!world.isRemote){ + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof IRedstoneToggle && ((IRedstoneToggle)tile).isPulseMode()){ ((IRedstoneToggle)tile).activateOnPulse(); } } @@ -227,6 +240,7 @@ public abstract class BlockContainerBase extends BlockContainer{ if(tile instanceof IRedstoneToggle){ if(!world.isRemote){ ((IRedstoneToggle)tile).toggle(!((IRedstoneToggle)tile).isPulseMode()); + tile.markDirty(); if(tile instanceof TileEntityBase){ ((TileEntityBase)tile).sendUpdate(); diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java index ccfd08c9a..7276d37ea 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java @@ -162,6 +162,7 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem @Override public void activateOnPulse(){ + System.out.println("ACT"); this.doWork(); } } From 99c5c27a510bf34519bd2de7e697b96f5742084d Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 00:35:33 +0100 Subject: [PATCH 07/21] no --- .../actuallyadditions/tile/TileEntityDirectionalBreaker.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java index 7276d37ea..ccfd08c9a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java @@ -162,7 +162,6 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem @Override public void activateOnPulse(){ - System.out.println("ACT"); this.doWork(); } } From 4a1d791f626255047d6b43d2ac9f7069b0d95de6 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 02:43:51 +0100 Subject: [PATCH 08/21] #BlameShadowfacts --- .../blocks/render/model/ModelCompost.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/model/ModelCompost.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/model/ModelCompost.java index f96b201e2..6f6cf48ca 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/model/ModelCompost.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/model/ModelCompost.java @@ -12,9 +12,11 @@ package ellpeck.actuallyadditions.blocks.render.model; import ellpeck.actuallyadditions.items.InitItems; import ellpeck.actuallyadditions.tile.TileEntityCompost; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import org.lwjgl.opengl.GL11; public class ModelCompost extends ModelBaseAA{ @@ -72,6 +74,11 @@ public class ModelCompost extends ModelBaseAA{ @Override public void renderExtra(float f, TileEntity tile){ + //Hehe + if("ShadowfactsDev".equals(Minecraft.getMinecraft().thePlayer.getCommandSenderName())){ + GL11.glTranslatef(0F, 1F, 0F); + } + if(tile instanceof TileEntityCompost){ ItemStack stack = ((TileEntityCompost)tile).getStackInSlot(0); if(stack != null){ From ed1147c22ad8fd3670e3b44b5d7820826e6a2135 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 23:13:46 +0100 Subject: [PATCH 09/21] Fixed FastCraft fucking up the booklet --- .../ellpeck/actuallyadditions/booklet/GuiBooklet.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index b76666a96..719e06d22 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -102,6 +102,16 @@ public class GuiBooklet extends GuiScreen{ boolean unicodeBefore = this.fontRendererObj.getUnicodeFlag(); this.fontRendererObj.setUnicodeFlag(true); + //This poem is dedicated to Player: + // + //FastCraft's a must, definitely + //But the bigger unicode option sucks real + //It screws with my book and makes me feel ill + //So don't fuck with everything unintentionally + // + //(This fixes your fuckery) + GL11.glScalef(1.0F, 1.0F, 1.0F); + //Draws the Background GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(ClientProxy.jingleAllTheWay ? resLocChristmas : (ClientProxy.pumpkinBlurPumpkinBlur ? resLocHalloween : (ClientProxy.bulletForMyValentine ? resLocValentine : resLoc))); From 781dbf90dd93a41de6754de58196894707780592 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 23:13:57 +0100 Subject: [PATCH 10/21] Fixed FastCraft fucking up the booklet --- src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index 719e06d22..b8b4611a5 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -102,7 +102,7 @@ public class GuiBooklet extends GuiScreen{ boolean unicodeBefore = this.fontRendererObj.getUnicodeFlag(); this.fontRendererObj.setUnicodeFlag(true); - //This poem is dedicated to Player: + //To Player: // //FastCraft's a must, definitely //But the bigger unicode option sucks real From 6a7920c9d981a0b0d9942fc09ff56621e5edd71a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 24 Dec 2015 23:26:50 +0100 Subject: [PATCH 11/21] Revert Texture changes for update --- build.gradle | 2 +- .../textures/blocks/blockBreakerTop.png | Bin 585 -> 575 bytes .../textures/blocks/blockCanolaPress.png | Bin 666 -> 883 bytes .../textures/blocks/blockCanolaPressTop.png | Bin 619 -> 921 bytes .../textures/blocks/blockCoalGenerator.png | Bin 692 -> 527 bytes .../blocks/blockCoalGeneratorBottom.png | Bin 585 -> 556 bytes .../textures/blocks/blockCoalGeneratorTop.png | Bin 685 -> 509 bytes .../textures/blocks/blockDropperTop.png | Bin 585 -> 575 bytes .../textures/blocks/blockFluidCollectorTop.png | Bin 585 -> 575 bytes .../textures/blocks/blockFluidPlacerTop.png | Bin 585 -> 575 bytes .../textures/blocks/blockFurnaceDouble.png | Bin 585 -> 575 bytes .../textures/blocks/blockFurnaceDoubleFront.png | Bin 596 -> 530 bytes .../textures/blocks/blockFurnaceDoubleOn.png | Bin 682 -> 588 bytes .../textures/blocks/blockFurnaceDoubleTop.png | Bin 685 -> 708 bytes .../textures/blocks/blockGrinderBottom.png | Bin 585 -> 575 bytes .../textures/blocks/blockItemRepairerBottom.png | Bin 585 -> 668 bytes .../textures/blocks/blockOilGenerator.png | Bin 661 -> 490 bytes .../textures/blocks/blockOilGeneratorBottom.png | Bin 585 -> 556 bytes .../textures/blocks/blockOilGeneratorTop.png | Bin 685 -> 509 bytes .../textures/blocks/blockPlacerTop.png | Bin 585 -> 575 bytes 20 files changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5c8a2dc28..fa370c286 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ buildscript { apply plugin: 'forge' apply plugin: 'maven' -version = "1.7.10-r15" +version = "1.7.10-r16" group = "ellpeck.actuallyadditions" archivesBaseName = "ActuallyAdditions" diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockBreakerTop.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockBreakerTop.png index b822e4d1d9d1a0185939b6b02d28f05ee53df014..819a8986150f50f2874485b202b96cf7ccc77127 100644 GIT binary patch delta 561 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 delta 548 zcmV+<0^9wW2kQioDlujNTmUiKN$z|A000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2j2`95*-m0K-%b$TPuG7&q+iWHyL2Fu9(V5r+L=`h*Mxem;dc{={cT5#U z1lE+wq(x9wGJ=1IK)Z>EBgSsdrxSa`GO|#*k4TnW=>`!_rxRjEts5BbWail3X^R28~kV+6=Kad%pT>&pvjcED?ppH4*P zp`g2YiNIEzvV5qu&P~;Ry^>Xk2>ZTs+BP&Z5fO$N5y5Erd`4A?2wWAa02r$H7^uiH zpqUZ)$*H4Q>hfPWHOl$_i#AO<#LYW{1}YK<65nj&1M&i#cVdSZ5x3^hX#C=N~P23oKB~D zy}sFO*6TH*c7MBFEEdb5G_vcC;PwB2rx$K&B}==FN5)yfnw2H<%f z6(*C(bUMXcC=`ATVCM5V5sgLzHOhnxfkrX(`+a)gY&05myWQn-NllJ?-=|46g!z_5 z58QIU-=m-zhSO@bASp!=)C7rA?;sbF3}NDHp7KF}R(ZI;@OV7_3~sj@Pqun+zpH^C zhU-5BL7=Pa^?W{GE*FW`me>pA43TWHML-!=kQPxW{SH$=5#~ozl02ZoAYd)kA`%(t z+7g2o3_oA#@=p+KLeR=4u}~{tXap?;UrD?t#(Q>VEbhtGlsd4mv&??qJid`r zb91gagFEI9KuifUBZfeKZW=<2q@uvh$T=e-xI00FpgEIsCd3Ht6m6ix=sm`Ws-mjH z&wz-KRY{sNMNtfyivm?8#mLI{@BD4ui3tGA3`8(9+?^Ctf|d(+0dCJeqrbK`1P~#(8EOWA zZW!IEz=88q9KL>=-KTprwNZa@@&@eKKf%reQ$unyLI}vo*;#kM-RZBbaqr?g${k%i zD?gUMV2!co!ZqrDxA*zD@Ptbb4^nlzG^!LSAt!o0H#3T|Bv)4pEU|5ZYFa*~7yovI>+ sfNu(<%_fS_wCfw%?GusFX$Av+1EKgY9QLZrwEzGB07*qoM6N<$f|1%V2LJ#7 diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockCoalGeneratorBottom.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockCoalGeneratorBottom.png index 8db8399937ed96ceab97c2c9e5684f863dba8620..782c826d5407145b9b1a4cde782b2b276a135e5d 100644 GIT binary patch delta 542 zcmV+(0^$A11gr#*8Gix*005AYXf^-<00d`2O+f$vv5yPhqJIE^u!V&{fRT*BNMOQ! z8etK_A!w-hqxrmVLp&18?%SDp$2#@-2P1)Z2ykl@pwF$Ob{1~#UBMC ztJMmNX0r(!W=e)Yp$Pi@J~eO`1VOjk-E21Gd446GA6bcAvRF2GmVh|t`Yh4nv=bG_xEmXW&Ia1Q`coadLL3-!n z4SIlT+cq7OO}s$t|DF=wm&=7Iv0^5&=kv+iL6vOKaMvXPd3hy|Awk(BBmZBkM3Ycc g(cdFdv4{cO` z(f|Mf)=5M`R5;5`lgo0|Fc3t~JZ$G@fHhD>7O4sa|NkxASege5DFJW1QER48x8&!` zOCy50GsmF1F;xzC#+;}s0+<<9MRil%$o^|}^W*C$#u#)JZicGz=kY*Q$q1r~%A~r9 z2o5uzzkfkQkYBH_4bWA8L=}fSYQ`7?fprMzeMVGiK!B>k5n+yjieReT_q{~j_<1g2 zH;4P$YFk7E0H0$lpCY&_smght0AvK!4c!Fb?wsz7OaxF>RL#hUCFsW8iA?64s0bp0 znxSThDl-#++8UL2(Vo^-bSAb1qKcU@BT(SJZ(J2|$5c^7U{9%kOj_h0{RniEH#4f6 zr|V)wd_YvX$%qAR!$XAYx)3vJci?a*ca-m6!(vd~xazu5mCPi%i8;v#%$>*M!Ql=f zt1J5wtxQxEx)-E57tlFzcUpw|?F}_s;yuW(i^yCXbT@Ai*p5>+huU`Dw;K0NRv{vc zF}ThX%}hju!;FY};OXfJRV5;DRj2~sP{oe}-36k1B_sb)xBY;s8$S-Ro8vfEobIcY zyFlHIiYyk--#&kEu$^!2=(?LZ2AxUFiS2jt{O$9y^ZWI+tBR_EcPmxg_sw-(ACajU hwjs|kIL;GQqj$;J!3!LVMhrL=oEoldZ0{M1GVvVtJc zo!Aa-+hWk75sd~u)#3eqTLTY<%jKd?QIq z=%Br`Cqa1{HBlBA^2bx+YPzng>za`;oQK1q@B7#5h4g;E%Rsta641>X`v8%eOqu_` kRqPbzRP4VEkh!k=3)SG9bNxXv`2YX_07*qoM6N<$f+S?wxBvhE delta 644 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 diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockFurnaceDoubleFront.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockFurnaceDoubleFront.png index 2ee2413fef1fa66714e1af2b42969a3d96e27457..8db552960de127752f6228d3525f32124fc85117 100644 GIT binary patch delta 515 zcmV+e0{s2d1d;@h8Gix*005AYXf^-<010qNS#tmY4!i&W4!i-CymCnZ000McNliru z-vb5}I4J_RWLf|K0kKI$K~yNum69>9vM>~e&uyz!31|}uF>VeH##veX1MdD$|AJv~ zau?&ONuz**sDP*3q4y(3r|%s)Jg4c&`=mdv>mnimD5VgwEPqR-6aYLP565v35fPuy zXP)QncKh{uF#woOr(qa!&X31qr_<^8`v9=p?QGkolp^B&eh*je*2noaRa5w}(kf!NmGLce7QN$QyN~!gFy;`l{U*_}q;cz&g&z|RL zqLdns$G-0~!+$V>An-g-2%%^C5+URp7Dd65Beo(UlcAxf!l2mp+8UX~^2 z+_Ef6DF8%Klq891njcUpRhA{wPOH_3D1-Ao*2X9#{ z7DZ7km&=MYo6X^HD5WHMo?DiMh{aoc-zS78rBYY(C&@ zHp{Y%8HSFns$8n^ToO2cetJNyY zlGW?=(P*Tfsnu#lQS^GfFd;21ilk zW&i*I;Ymb6R5;6Zlig|?K@5dIX|y)WK1)*qy=e;dg@a8S`nDwyl;Af<%6;}LiSa=z6g`1<(+IcLHh zO9@rwcsik~v|6d|cx!ln1hrPWlvsWFh=?HHHk$wlcd9#`8JZF~X9T7oAkHzON&o`5 zJBA1)XHm=Ys+*zad-yIz9`09tZJRoNX548t&={nHcfPHT;a{r(^9 z;qh@wR>d?WS}6>}fSJu*hG9TOh_nA1^IB0eOd>Ed%#6P8QB?qc#&JYcx!`XwGm`4W z!KLcO+?`<Vl?d>hKHGbaTzrlXo-Elk~ClzXI zZ+IBT5s%d6+BvA|kuh{(HAnJW1|5)(nG6%&z}q}Nil2)eGr%qH#K0XUsb zL6Py1C-l??1@*%_iJ^sxCs864jlT tmlu}Hrq&;S4c07*p#PDHLkV1j7;0ulfK diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockFurnaceDoubleOn.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockFurnaceDoubleOn.png index 720a60072144582edd6444dacee4dedb03f78ebe..41c512d4e78fcbc7dff8bac81bdb8bb158018a17 100644 GIT binary patch delta 574 zcmV-E0>S;N1A_Ab4BBCTo zlu`h$*K4_4CL$ub-EL77y}rK2ajXI8cDq3k7>2Q4uM34jwOR$RSS(7V66c(VE|*IX z1VV`Aa>*^r%4V~*TFv+U!{Kl|9v#PtqKGjT1i@;x+HSY!^SRUM_`bi}?KDl(lv0z) zWIP_@uX?@SYJaubY&M?fr9>&!YPII`xn`Q?cDwaFPY98E=@Mh?E0j`dVHg&RMInS? z7^x?OV2mlHzCr++VHio07=~fnHs>6`Znq1=(6X$5pi(MH5-rX2d76lX5SC?e&QnN4 zoO9c@OQjMKX#jLxuT(1dq<+6Ir5ue$Pm;^!>h-$s`+qEoBHOl!NPg0MK4*-jFs-N4 zX*Qdk&u6sTZP#_8Dkg#G4KKCm=2Hz@&@1o z_znyoP)f2SQaZhI$-@;Q#;t M07*qoM6N<$f;~kD$N&HU delta 641 zcmV-{0)G9>1gZs)85#xv001BJ|6u?C00v@9M??T-09*hu+ez+xks%*{3>Fd9mo#My?xm1i#nP5c_#YIMLxyZ!KU=Y;EKgYmK z3@#HcUYT1s5Ha1*zha}^+3D`8y5P;tq1e!Lb$!2IRd++n#b%R;P|Rqx5}6cL1~Y1F zs44=KQiup5lgLDlt41b&UwrxzwN^3$D+N{MZofxW@!shXggcQ*@13C(&OcitBFNJx zPZA&_=n)KNXercM5m-b(9yOv$0s=$?h6t@zRD|8t6|cuv=jYfsF2+nQce@k2*la)q z0ByCRs{CM@%&M4{g15#z&rH*Qbm}tCGb%zJUrx;rAm^=r|0z^}_8iYP=b zY`f&Hw=4xoTJLC}IJVF&T*n*H-j%KsYgmdHr?|S3DArP3`TXoLKZ|3UOoLJ#T6bV1 z-1+|L$Bb6MD`kAh?S13y>@mB)|3SXK*kqwovSSL93Dx25&=|%Mjvr?1;hoA8Gix*005AYXf^-<010qNS#tmY4!i&W4!i-CymCnZ000McNliru z-vb5~EHrfnqfBENWjBT2j9EpmlDHIZ+4jpuGc5)Hd ze!Y$z92{I697PaZtVI!nXd~eq(%Ll5@tiu8E0??7_Y1r)?|<`1hlhupa{v%RaLyNt zg%AP&X0zGG#s=q{b6ylhS(c`0et&-DXzEdUq}hpy`?io!Y1 z^PCW3S=Q6jlTxi#E0szR1WA%Oj??LMOw%mOQkG>xNEAiYYW3^utJP{HNkS=ARaF&2 zyuH0`Zf=HQ*njKwG)-fS0f44ymzS42J3F;nZGC;+^SsB$N7*opAPBa%x688Z^?Cr% zY&J2*zVA1iO#q1Fcy)D^F@_Lgj47sR8is)}zPq~1;NePNx7M1HfoBa$T1(rt3PT)UvE)0{~D; z2_c%MjmP6wt0hU2T$W|6R%gXwgtc%Elj7D8w= z8WBP~&wq=e=;r1I0M5?NG);@+c*%ZkZSDE_SqXxm-EKRM-y{Ks}SP!^mM7hU@(yO_V(KC_V0!yNf={)vpYUM9*@TWaCLQ+rm4ET)wbI(n>002ovPDHLkV1mC?NQ(df delta 672 zcmV;R0$=^a1+4{;8Gi-<001BJ|6u?C00v@9M??T-09*hu+ez+x00009a7bBm000iV z000iV0mt~%HUIzs2XskIMF-yu77`61d0Y4u0006yNklTibK zVT_6}F|xUXnBy354-BKLA-Tt#2%ZUoLGV%{oA z-sgQw?%%tYh+w7AY9%r;RfbZit)Z$2U}i)Fkx67C)2)%o-JgD-)=EZD%urP}=jW&@ z-5rl0dM7e*cLp;KfBq2>L5|kz1jq01-h!gjOpmf~m6I zZV?f#Ef?r8qks7*V|!7@sV0et08m=3qfQZuDqWTD55DEfa>;yefwwJ)^5Ojl>bu6Q z6l(7XpsEx#qqjyG20VgW->tZ)&XYeLQ_K(%B9o)_FWg++;O)DAK!k8dOF<=*QVQ_41WOB3~v?hjdE#O#0XIYGetzn z6skL>N<^S!(%lge5JhFA{D0M2V?Lkn-U+Ch5t-vyKxWc=M^$&nRPo+f?C;^-$E-}B zXiUvya&o%i^lZcLzaCLr+gVkc^V_2b93OvVb9OQMKcC~hk3p)nk|GRdMDH9N+~n%j zZ$NYkQ-AX1^p%uosuiK_DN$th(R(8*RZ zY3>ve*=63Q1&U10FB+R16N(5@3eo!nPDf56Ba6d3w|5+D^0&KVW@IL5y->!IxjtE;@}Z%x7+_%re>HbtumW-s>)X#Y(9{srfM7j0000h3mhNh)9Q&vb!2*f7#1LYPp-BvFo`q;_2!9(Zf3&}=iZQ5?P z*X#9ixwKlX)oRsfG%zNZOeSbXqY)DZgTZh(1RRYHf95TS= za-k1f&*zg5yxwlN)9FM+*aMtQCcR!SQhAwItjFV#4xGTsH!!?TCX?xO%BV`E0)-~l zPNzfm6t4pSqw1Cn5CZ_1CRVcNn)tX@Tj6G9i=@Nh06-J#|H1>U>2w;$OjEfiO{{RA z&u3C%g(^&iJsuCu5l1jz)D8Gi-<001BJ|6u?C00v@9M??T-09*hu+ez+x00009a7bBm000iU z000iU0TsVC(f|Me2XskIMF-yu77_+EfOYkw0005jNkl z-2~w7obHTF1btaNFKvcTPhy`xLLxk(P5Ho6b;BY5* zlbg;t%p|&rImrmjoyX(B;SM6JEBg|yOn+1rx)-E57tlFzcUpw|?F}_s z;yuW(i^yCXbT@Ai*p5>+huU`Dw;K0NRv{vcF}ThX%}hju!;FaF>FEhoB_eQDr~=?n z#g7Bs1)_T;BmYsi{eY?)KMt~+<2Y8F?yHr%K;4asEEdn-K7Vkqop0{wx|=x$ok`4z z?RWD0?KJbU^ZWI+tBR_EcPmxg_sw-(ACajUwjs|kIL;GQ_CX>@2HM@dakWG-a~ z00062NklO-88v|lL?0>kHKZ>H&^lQT3KYvEf znch1VBPm7z+@01tdno{K;ZJsY-AA^(z$Mmgzy=vh$>S`%=1hL0Yad+1|b}*RdII) zFijI?b~V<%zrWdQrJVuQ))?;i7;xGSB0TPQVvMZo3T9Vtt_=KaTL^&xhzJtGMPi&a z2bf-wBC^rNVnT@7$ejDemP_e##y3uS$IC5SiapDV^B&V=gb%b z@BIkKjAdQf_Z`MydOVO2nBQ-n&*$MXr^L2xM^L>VA)fe_Wua^vD#GvYFPuO06Cl7p X-(yZvaI$u200000NkvXXu0mjfWds+V delta 554 zcmV+_0@eMT1<3@EDt~4GTmUiKN$z|A000SaNLh0L01mnU01mnV6~8vp00007bV*G` z2j2`95(g7YV?iGP00GuXL_t(I%T1HZa@8;pM9(~I=VyR5P(>E03I+fFE!a3^<^?_a}WP~Eudx>1$PB)W+? z$q3Ay$K%1_4kD{7`x328R28}xq&XMRIdOMdg!}CcHGf;;J;<+%$XpwAH*XQxj#D;= z+IHTz8uv|BAtH=1xXu&JOhkmkjELar=?PUOB5+lx0^m@^j|1HWqI)GH|53O7fT|lm z4zio$I98nQtChPz-HnPY7SG>4e{is!Z|>;2n>hxZNz94uck=x0^Rn~%^|h;ts)Bbb sRowT@bt7FLk*OKBA5&J$JTFY6&e(!=ceuK)l507*qoM6N<$f?jX`)Bpeg diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockOilGenerator.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockOilGenerator.png index 9190977c9239d5db2dc17a401e075e75a8ecac37..120541747adf6c128a510530f97b2e9b09ed5457 100644 GIT binary patch delta 475 zcmV<10VMvF1?mHk8Gix*005AYXf^-<00d`2O+f$vv5yP!8RPP85l&V?;tNEH6*jYW|j{E+F_Hj z-EMb=^?J=rs2iJ&8u(#Y9TCT|u2!qXVzFEVXR5n6-4vlE|p8M|w}0&*vWojSZ4PmKfy0wVF-`m|M~RHXySs>mNW2G?xGc R2eSYG002ovPDHLkV1jU})D8du delta 627 zcmV-(0*w9Y1C<4k85#xv001BJ|6u?C00v@9M??T-09*hu+ez+xkuey52XskIMF-yu z77_v(*1=pv0006aNklj(^iikeKsO-IU)~bUSd%2C5TF}tdRM-Dk{Z;bo&70|FkV#|$P--P2 zD5}^vqNPw~M1;(LL`6_H!_3f9Ad@x)ChXr!DY!fCzWWS_2Z?2I0>39A3S72f$*vq;(x3LS&*^ zE13zIY}ae9T?wupjr{TFBR-xx?nx=ZwX1OHXyC(kyJG>6i3(7ERM~De9RDz4!@%9Y z9&_inpO8|~QcwzR1LDEuBV+yk{VstBni2SvaXD9NYux$$IuVWy#xRWB`}+wQP`b*z z+bNY1s47Y(B0|4f@$a*ONF^9)vyM`P`~N)U_N^ZoEjS;8$Nx3@g99uAGLc_SPctHD zU5A;mndn_UHpbC^Sj-y3F!18_0)T$CVi*RxDZZK+i}@VSq^QzQay@(b4ycoe3s#4R z#6-KB%}^0$^Eq`sn=!iMW)u-h*WqR?`yN$AMDVFk=?)@f1cMo^>!{}brK{g)rB>=^ zO_zPo#fJ|8czJq?M{sHKU);EXmcsFa2LL=jIpM=*Ln&oWUnI5euc+!*NUBP>@BKQB zzL_CEpPb}&v-z$P4h|2gh_LK?iYobeKqfXtgmGG5owiRz_GcUhJ^|5~BI(G>k}CiJ N002ovPDHLkV1fo?Ao2hJ diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockOilGeneratorBottom.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockOilGeneratorBottom.png index c16cccba4f5524b835dfa09d329ee8bcd0aad0af..782c826d5407145b9b1a4cde782b2b276a135e5d 100644 GIT binary patch delta 542 zcmV+(0^$A11gr#*8Gix*005AYXf^-<00d`2O+f$vv5yPhqJIE^u!V&{fRT*BNMOQ! z8etK_A!w-hqxrmVLp&18?%SDp$2#@-2P1)Z2ykl@pwF$Ob{1~#UBMC ztJMmNX0r(!W=e)Yp$Pi@J~eO`1VOjk-E21Gd446GA6bcAvRF2GmVh|t`Yh4nv=bG_xEmXW&Ia1Q`coadLL3-!n z4SIlT+cq7OO}s$t|DF=wm&=7Iv0^5&=kv+iL6vOKaMvXPd3hy|Awk(BBmZBkM3Ycc g(cdFduDW*cp zZU6uQ)=5M`R5;5`lgo0|Fc3t~JZ$G@fHhD>7O4sa|NkxASege5DFJW1QER48x8&!` zOCy50GsmF1F;xzC#+;}s0+<<9MRil%$o^|}^W*C$#u#)JZicGz=kY*Q$q1r~%A~r9 z2o5uzzkfkQkYBH_4bWA8L=}fSYQ`7?fprMzeMVGiK!B>k5n+yjieReT_q{~j_<1g2 zH;4P$YFk7E0H0$lpCY&_smght0AvK!4c!Fb?wsz7OaxF>RL#hUCFsW8iA?64s0bp0 znxSThDl-#++8UL2(Vo^-bSAb1qKcU@BT(SJZ(J2|$5c^7U{9%kOj_h0{RniEH#4f6 zr|V)wd_YvX$%qAR!$XAYx)3vJci?a*ca-m6!(vd~xazu5mCPi%i8;v#%$>*M!Ql=f zt1J5wtxQxEx)-E57tlFzcUpw|?F}_s;yuW(i^yCXbT@Ai*p5>+huU`Dw;K0NRv{vc zF}ThX%}hju!;FY};OXfJRV5;DRj2~sP{oe}-36k1B_sb)xBY;s8$S-Ro8vfEobIcY zyFlHIiYyk--#&kEu$^!2=(?LZ2AxUFiS2jt{O$9y^ZWI+tBR_EcPmxg_sw-(ACajU hwjs|kIL;GQqj$;J!3!LVMhrL=oEoldZ0{M1GVvVtJc zo!Aa-+hWk75sd~u)#3eqTLTY<%jKd?QIq z=%Br`Cqa1{HBlBA^2bx+YPzng>za`;oQK1q@B7#5h4g;E%Rsta641>X`v8%eOqu_` kRqPbzRP4VEkh!k=3)SG9bNxXv`2YX_07*qoM6N<$f+S?wxBvhE delta 644 zcmV-~0(<@a1FZ#+85#xv001BJ|6u?C00v@9M??T-09*hu+ez+xkv<=P3>Fd&0cjYE z9smFWI!Q!9R5;6RliiAxM-Yaes_Jis-C>N1Ffp>ZgP7wOa1RWlt0B3^oCux?fA-sgQw?%%tYh+w7AY9%r;RfbZit)Z$2U}i)F zkx67C)2)%o-JgD-)=EZyP|Q$OHs|N4D%~BAAbKYjcOMJc6MV z)Qnmy0%H@9Q;(>UfB+FeL4;N-DuSu9-EI*Pt}PenFr)b>V|!7@sV0et08m=3qfQZu zDqWTD55DEfa>;yefwwJ)^5Ojl>bu6Q6l(7XpsEx#qqjyG20Vg)Ti>m?sLqo=9#hN^ z5h9bL^)K99-QexJe?WwAM@vB^lTr%q&T_e6wOaA?*>h&Yz-0}k@aKz{T)%Oh#r}+< zij;z>jtl_Q3~v?hjdE#O#0XIYGetzn6skL>N<^S!(%lge5JhFA{D0M2V?Lkn-U+Ch z5t-vyKxWc=M^$%!$5ip&S?urO-N&p8C9NgsU)o(y_3RCjs^p%uosuiK_DN$th(R(8*RZY3>ve*=63Q1&T~x&Mz99921HNQVP-g1Wrdz zA|s2#JGXZnZ1T6eV`gL~tyZ#kyftjvlfyf==@H1o^*S#-XX4-yY`5G0Sf*x}Dy=nI etqijns>)X#Y(9{srfM7j0000h3mhNh)9Q&vb!2*f7#1LYPp-BvFo`q;_2!9(Zf3&}=iZQ5?P z*X#9ixwKlX)oRsfG%zNZOeSbXqY)DZgTZh(1RRYHf95TS= za-k1f&*zg5yxwlN)9FM+*aMtQCcR!SQhAwItjFV#4xGTsH!!?TCX?xO%BV`E0)-~l zPNzfm6t4pSqw1Cn5CZ_1CRVcNn)tX@Tj6G9i=@Nh06-J#|H1>U>2w;$OjEfiO{{RA z&u3C%g(^&iJsuCu5l1jz)D8Gi-<001BJ|6u?C00v@9M??T-09*hu+ez+x00009a7bBm000iU z000iU0TsVC(f|Me2XskIMF-yu77_>)QlH3k0005jNkl z-2~w7obHTF1btaNFKvcTPhy`xLLxk(P5Ho6b;BY5* zlbg;t%p|&rImrmjoyX(B;SM6JEBg|yOn+1rx)-E57tlFzcUpw|?F}_s z;yuW(i^yCXbT@Ai*p5>+huU`Dw;K0NRv{vcF}ThX%}hju!;FaF>FEhoB_eQDr~=?n z#g7Bs1)_T;BmYsi{eY?)KMt~+<2Y8F?yHr%K;4asEEdn-K7Vkqop0{wx|=x$ok`4z z?RWD0?KJbU^ZWI+tBR_EcPmxg_sw-(ACajUwjs|kIL;GQ Date: Thu, 24 Dec 2015 23:34:24 +0100 Subject: [PATCH 12/21] r16 (The great BTM hotifx update ~ ~ ~) --- update/changelog.md | 13 +++++++++++++ update/updateVersion.txt | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/update/changelog.md b/update/changelog.md index 6297defa4..c5a744300 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -1,3 +1,16 @@ +# 1.7.10-r16 +##### THE GREAT BTM HOTFIX UPDATE ~ ~ ~ +- Fixed FastCraft fucking up the booklet if the "bigger unicode font" option is enabled +- #BlameShadowfacts (Seriously, he is to blame.) +- Fixed blocks activating too often in redstone pulse mode +- Fixed Fake Player +- Placers can now place redstone +- Fixed Smiley Cloud's and Laser Relay's Bounding Box sometimes messing up +- Made Laser Relay's particles render less heavily - but also look a bit less good :( +- Made Slabs become right double slabs >_> +- Made Lava Factory update RF properly +- Made the compost update when putting in things with automation (damn.) + # 1.7.10-r15 - Added a fancy hud display instead of chat messages to Reconstructor, Phantomfaces, Manual Stand, Composts and more - Sneak-Right-Clicking the booklet on an ActAdd block will now open its chapter diff --git a/update/updateVersion.txt b/update/updateVersion.txt index f06180426..35dad9669 100644 --- a/update/updateVersion.txt +++ b/update/updateVersion.txt @@ -1 +1 @@ -1.7.10-r15 \ No newline at end of file +1.7.10-r16 \ No newline at end of file From 43408818961389112d824556df14d7af6e288ea1 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 25 Dec 2015 00:38:16 +0100 Subject: [PATCH 13/21] Removed ability to close booklet with inventory key - It made John Cena unhappy --- src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index b8b4611a5..f76df9d9a 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -159,7 +159,7 @@ public class GuiBooklet extends GuiScreen{ @Override public void keyTyped(char theChar, int key){ - if(key == Keyboard.KEY_ESCAPE || (!this.searchField.isFocused() && key == Minecraft.getMinecraft().gameSettings.keyBindInventory.getKeyCode())){ + if(key == Keyboard.KEY_ESCAPE){ if(this.parentScreen != null){ this.mc.displayGuiScreen(this.parentScreen); } From 576148ae954b232ce6ba7d5a85172a0dd23dca87 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 25 Dec 2015 15:24:40 +0100 Subject: [PATCH 14/21] Mark dirty when saving redstone state --- .../actuallyadditions/blocks/base/BlockContainerBase.java | 1 - src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java b/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java index c4f2acaa6..26e8aea57 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/base/BlockContainerBase.java @@ -116,7 +116,6 @@ public abstract class BlockContainerBase extends BlockContainer{ boolean powered = world.isBlockIndirectlyGettingPowered(x, y, z); if(tile instanceof TileEntityBase){ ((TileEntityBase)tile).setRedstonePowered(powered); - tile.markDirty(); } if(tile instanceof IRedstoneToggle){ if(((IRedstoneToggle)tile).isPulseMode() && powered){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java index 2a283fa48..bc1388427 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java @@ -124,6 +124,7 @@ public abstract class TileEntityBase extends TileEntity{ public void setRedstonePowered(boolean powered){ this.isRedstonePowered = powered; + this.markDirty(); } protected boolean sendUpdateWithInterval(){ From ac8f8499d2088235321472f23e6b27069d9f3038 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 25 Dec 2015 21:56:10 +0100 Subject: [PATCH 15/21] Jam House Info Page --- .../actuallyadditions/booklet/InitBooklet.java | 2 +- .../assets/actuallyadditions/lang/en_US.lang | 3 ++- .../textures/gui/booklet/pageJamHouse.png | Bin 0 -> 31936 bytes 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageJamHouse.png diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 98d207276..393638f82 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -130,7 +130,7 @@ public class InitBooklet{ } new BookletChapter("aiots", entryItemsNonRF, new ItemStack(InitItems.emeraldPaxel), aiotPages.toArray(new BookletPage[aiotPages.size()])).setImportant(); - new BookletChapter("jams", entryItemsNonRF, new ItemStack(InitItems.itemJams), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemJams, 1, Util.WILDCARD)), new PageTextOnly(2)); + new BookletChapter("jams", entryItemsNonRF, new ItemStack(InitItems.itemJams), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemJams, 1, Util.WILDCARD)), new PagePicture(2, "pageJamHouse", 150), new PageTextOnly(3)); ArrayList potionRingPages = new ArrayList(); potionRingPages.add(new PageTextOnly(potionRingPages.size()+1)); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index b05f288aa..e028b3735 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -599,7 +599,8 @@ booklet.actuallyadditions.chapter.aiots.text.1=An All-In-One-Tool is a booklet.actuallyadditions.chapter.jams.name=Jams booklet.actuallyadditions.chapter.jams.text.1=Once, there was a Kitty who really wanted some Jam. So I made some Jam. Seriously, this is Jam. You can find it in Village Houses or buy it from the Jam Villager. Every Jam gives you two different potion effects! -booklet.actuallyadditions.chapter.jams.text.2=So. You're probably wondering what the names of the jams mean. Now, let me tell you: -Honeydew Melon and Kiwi -Honeydew Melon and Coconut -Pineapple and Coconut -Cherry, Apple and Cinnamon -Plum, Apple and Lemon -Grape, Kiwi and Banana -Currant, Banana and Raspberry Now, which one is which, you may ask? Figure it out yourself. +booklet.actuallyadditions.chapter.jams.text.2=A Jam House and its inhabitant +booklet.actuallyadditions.chapter.jams.text.3=So. You're probably wondering what the names of the jams mean. Now, let me tell you: -Honeydew Melon and Kiwi -Honeydew Melon and Coconut -Pineapple and Coconut -Cherry, Apple and Cinnamon -Plum, Apple and Lemon -Grape, Kiwi and Banana -Currant, Banana and Raspberry Now, which one is which, you may ask? Figure it out yourself. booklet.actuallyadditions.chapter.potionRings.name=Potion Rings booklet.actuallyadditions.chapter.potionRings.text.1=The Potion Rings have two versions: A normal version and an advanced version. The normal version, when you have it in your hand, will give you a Potion Effect of Level 1. The advanced version can be anywhere in your inventory and gives you an effect of Level 2! diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageJamHouse.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageJamHouse.png new file mode 100644 index 0000000000000000000000000000000000000000..34f825b28e92427a7afe4bf42f15576dd15830d4 GIT binary patch literal 31936 zcmZs?bzD?k_da}vp`}6Tl5QoXK|oTv8|g;68Cs+Vq`SMjL#09K2I-KH8hU=*-}iZZ z?myl?=5r>_oW0hy_g>ek9igl!jfqZz4gdhAtc;{80Dzv}f&f(Hr;EOGiN(_e(Ng@q zH~`efKD#$Tdisp!B%|X309aN3yg>Pyx&Qnd#Z~sb6v`SZ1up;VqXw4Kr>}@yrLdQ z>cX|6s;nx*Wt@LE!$m{O!_94+|NS@^0|A61TYyR*mxmY#l}XLR7=p4*HrUArF-}5* z$&$?VijtaP&1-@@u$g5Wg%H_|-;GyoCoA`>t?=&th27m$xP}BSx>#Y$cz5ukgNkMsE_mH**-S!C~0p`R6QI;SqnPJMWfhMycGN zz6`rWWb2Y6anhpd!AgEHv8gb+(=!4W#g~GBB12j|TXm(fO^HX5$B^gep%H3fr4`p= z3~vFOwc275@0H{_-8-`DS~8`Qvvt~1i_#aRnkBO(v!%SA4=$Arxb{-%KiwOs?Pb#^ zn;L3qKpcjncc#5G>T~LIosX@Wi=UeE#;gPvR zG!>0?60U!vKw#}NEfb>B#;6$l#Ed;nH{(-QUG6V_DQ^hZXR(*m`)ScYZZD%ZS=7L0 zub?-zlLd67uzZrD(o|6U=0~R1nR8ooz)|LJbcs?HP;xub@&7-RAJIQU;Yrd)%c*}P zTLAUv3BJ(HG!Bh_)Z7_&)OvD~qc)Tl*U~kjkEhX_5Ra(0!0fxV+=kw+4 zWafUBmx;EVm!mJ|Ft3ZCVIo~gYxu1PBs!oB#>$(bf-u2J*md83>D0;yff zDD~33%%#k+{PC9olJG6XOVqNUql8Ii;{XB;oO?!0@Hj)|Ycog~$d@6S0^fc0Nbc|G zi>o6_EpHHVv_lZ^ZsXypG>}a0M4XKOj<16BJ$CZdD?ccS1oECVVwc)~KsrL}i5v=l z`JbEj{t*@yu7Nc2bTj1XX4;UNqZ4WCDXS%Kgi|~kN*2(vl7wt;Y0$~$tTH5kNCS9y zl4>Oz#SJF?B+4v4B$?=@7Pm){L=IK)IfSw}4B@`t1~4`uK^~+G4_kR=Phzk41k?xG zMBw-#ZBQ7=I3+CbI^l=%Te0W9l+6fxT)R~xKjZOI_Xgwm#v8f`Pfw&JdI+aq_4w=G zW*s6OM?N7|$pCP?uH$-=<@u+lCvU~-Nyvg`P#%IAjg5{b)>KjaFV37pm+yA4O~o#9 zc`!1b5I?`0fn{*~zAbC8Zm<^yc}B!zO9P^E&*K8J27gWOd<4JI)goX>KzE)7Wx2(m zUOx^;Sa|91M7`+)t^#>5I-VZUJ_Y+t>HcW{59t4=DHMn`#{EYarR2j z_VTRnU4p(Yb28yX^f$QB(MPe%bE)7pWnvxzf|CtM z>aMNbKYEUOx_)HVBYEo0Wi^^F=;Vz&AT>q19ls&Ob0V7!=%DLIHFm36UvYYgs86Zh z54ls}{!Oy<<-e2Q9Dv{{S_VASkf2{dR&Qss9Ri7KIQW&N-O9M8X4_9_Dy?6O?YhLV zDtllYjALF0->u)~=dQUi8vWdF$LPYU{SU*5fWHQht4gTLc`Ul~Snp)9 zO#;^*&oAsG2=C79jKJJk67uwhg|DcW6l8xLWN+>g$%VnUWmklzM zHs5$5rlZ(k=?L;H67;bZ^}z5pD`7<5v(nOlHYC#8;UWvn-d1V#h&T-02$W+DWWZ+B z?9YZ9XSXIF`es6H~r>TPN)p(itK(xo~0#H`f4WAcxbS z6+cH-{)QR&1aFL`@Nu`G(rJh5^E$^g?=a2I$#?d(<$&I}C-d z=de~2nE#rI44{hzuMB-UCk%9xzc$k53DdMkX?-=t3Tsqw40Lz~`c@kr# zdIL}=vmw}amylrAg!nhoT*APIjJn5h@BC%M^5mG$lKhpcJzuub4-oMLn0$E07&Ko;Li0({#ww~zS5P=MvYQ2-lcM=Za-&^!L4 zlqGAkb%=$lcu*v54Wk~AC$?)waC!fpR*@dk8n@g_%9kq$+Sl>)K7{6w1cGmU0|ea(-a-vE(1Uf9wc z`0IKLXxh(0wj1uLXJ*u1#J-!qTYFe4<+1L5n1MX^$IFM0T9XnX#|e#7tY7R_yeKN!Rr~311Kd$8BG*iC6U+O$R7aD)tfUX97JK6_90kU)8aMx z=LRPT-tBm6rr&PJgc#&t`CzwK((5tXTxe2N;;|ttiq3PE1k{MH=J1I#2!xUjmHCO# zSF!VM;h}*->iI_!|KeV)i(K($@IyXhk4p}KF=9h^gAsS+V?4-4h4KBa1WW?wB9qz-&C%5^8JOA@98b0l*9>X z$B9J$<8Dryd%?d{D-SUEy3ex2b82iqR}=n&X&t~|Wq3~OdcvQ>ANObB+d3AvB7f5F zPVn=)x@CTKaud)f&qeFCQM(g>E;BVqeR}+I9V) zNEHN^?xCY_WSGlcj;a0r+2Z!T@~eT8Mk zr=MWDCj3~K#7~TT-YGMpAB4Q7BXEirP(KceuxG73U|+>{a9JY8P}lQxIwTqAvBVJ9 zcm(ZN$wFg>J@+f$CqYMrC-uE$7FqBLS#7KRW0K1{{GjP=@*6ObvH`Lh7Xj$UbvM}h zF~>YoM4OLz{|=d?(m270eEL|f*s5$Z5aV#?*uVId`-eZ{f7kSrYi9^2eW_Q5jYHy_ z6XY!#B(~B|0($pb*$DCtdP>!@8W>R+**a1WBPlV!#a>kL*Z$0zrBO{Si#*e3N$Ic4 z=2yo3g*>sUOmaxpTUUS?ui!logIDqxSC4iuw8E0^@&~^6ZwH!?7E8*X+lE6*D{RDQ zN{fxb{6OMq-!^&Bko@#Y?48IY)M6##*rR2Q^G6Evgd_J*rBC%TWsj&_b7QZ2Bk!}P zVCjF(=<0R)%c9#;ySepXa}vMxJ_^ZcTtq5k8#WYlu&jKTTQ7g)5k#`Xpa@dUB4WG} z0BJH5ZB80E>{2SbRIK@Uk zpzzfL@yrS|yGeeMU@M}n^VN~g!rg@gH1ndujKW{@bL2BRVc|>R9(OO4<4k1;-C?H3 z6OU6gMPFjjQP{|Ru`Qp;h0nyQ!i*dpgKOOL9#*6NN0f=c>TTAbULcB9dzYiLSU&dA zSoR$l{LaG-T7mhF`H0LaBP)$L;m;L!W1=iH^*XV2&l=scC#{&>+v`f?;l3ourQ1(2 z!e@Ebva~Rqh$?WaWnlWVXkm7C5;u~YELx6Ye5Vg=Fc5rKP*EXMRyIs4@)#G`nM0+7 zhrdb3!J%hk!%QbCif038C$bM3w>sm@J7niTja?hjde^=;9ggsD&cxHfVt9vb*KRgX z;kM~v4-?`}j#`UjiyS$Bt@{&U=~1TTI0WSUrhX>mYT^wmhrdAvTBcbu-CQBmRqhE6 zS(!|8^8!jcu4~7OlGfD<%C-U8Y!43nHFqX7K^3EBvhwnpRD`4uZ1T@)#wW>>lP~oM zDJdDgd@+Y6B$SS*GBFSHDTB{KLL}Nm9W3OhQ~Ik~2exCW9F2^M%0@0?vgz#|nX z=N=i>-ehZJa4?$^mg77+*67VIY{2Z-IOM!*#e=J3`MCdw{PIlpx2#Z zo256=D!v1z6BEr!OBmIt29{uTb$E@-{1#)iTdAqUZJl46a(Q^3w~5RRQn4#;UVT>O z_kAOdMX_8xB1!W(DvFy1cN`pXx)PY`^AWatjO(`6TVauti z<^@tVi}E~or2YmNYG_ntiB-`uP&T=6^US1c^*pk%MemTWt28t>+uJt2!N`9h@ z?q7w+hNo${A>DloHg?MXL+~RZ!F+Npj@35!rf$0UuA#I%t6pny7@r_9Le;<^clHj# zL=}!&R$e~cXPLe|J~qZ1H#e&(DvD1yW)IjtJ`s zTs;z08GCzHjef)d>yZ89y9Xd;i*gg^nyuu{{upLIceLaM{uzrG-UZ!@xdcM<^BAk9m0rZig&vNemy8GcwGUWN#arc$uyv3)gk8FrFRbX!EaXMA-ye|@TE@fT4j<(GCvE3ahJ^ATi-T*4EgBg)?7p0`9ZoRKMj>Aq+T(bi;nF z=BKbzQvKx#$MriWmog0Qj&vDGYGC@PzEgcZGxBGMD7-U(^gLU@4bBIDxVoBOHSAu$ zpp^V4CG>v@jwkfjZo*%#-H2B_LZ{#gTh;bcM$_RK+a|l>?#3UndFA-1xUSApU&9>) zj&ta?T_VFk^=&80YM;Fk_jyxy6{M3crpbBN2?@6J9L3(fYtwm{oW!f&>+D=nRZ}z1 z)~Ty(Ynv28xI$Xb&zCsByIvF6SYO{i2s8&6=P0rHRernF_R$Z}f9UP?KSu{dr~!E)RA)3WxD(m; zYSUNSUnnT;^QXJxW6bS#8lV{yuY^Ou%u7(F_G-HZ~elUQaL595ywniaG!FaSKC+LQ^w|MTNksV~tuu0({%qH*0CB zMwLi6vmNgv8QdROp2vkJXkRXq81=Py+Eg~K2l4#dUH&290vqQJ6H=p-jm+1q!IxO7mE zmY=DejWTdoj2zU6DlvAV$k}&dybtL%Sn-Ap*KhA#Bfzp(PRODhDwy6de&N3>5_1-hw$8G4dz_RdQrmTzb4Jx(IF*23 z$hn%u41O;=J75&or6)JjIicXI%ZV+@hGgwiz-Yi@8oN~*nURdk&}w~GSoTV4@!)LQ zU}Dl!MB?o1te~Sqfz2y741|RKm88|qu650 znm*P~s&yF&e1;7xsO8=N!uHqm-|oJr(K!-fO&)MD>tHu*lgAz`eRNH=l}$_t-gmaG z5_^Qf&*9LYxBZjL>U4#4t&?k0w5>W!XTu!uvJ1D_5f1h` zXvSBmsx!x|N>IA_`BTEVF5lM-f$C=4W{2tA{F+Uk&(Hldu!=*-IKfeQM=zm!P0r6H z!9%AO+w^>Ykw%b`u$a9H0Rt~59jjakp(Z!i@b>oB%-wzVQ%+l(ZV^55_F!LJMfJq6 zwo&jsEa0|!JNrI=ExG#PXe}OpL_$?1k?F`hVloaEHQM}r#7ZgpLW?qynhptd{SJPY zZC#>FMZ7IO;I&^G8xN z{Jtj~FUxo6K61gy>2--}wn&8%k!v6j*=u?j8Tjfym^9wE+?lfJw27z*lwF9v56~Ru zcFp}Si#;j7p6iC~dP==}9{)>*t;gAM3n?S{MHzR|F11p!lmXvD79HDmctIm;FXw@F zKn0WLi_@v2-P_w6|NHBYNG1^-54PRbJ>*10ae-Zm#Ofm}`dTl^-*3wyL?i180artx zeAN99+t=bVLIw&OonoV|c!n;lijTk`Zl2kZ+e=btMXk_bUA^iIzE%8Ct;5i?sS7^E zQk%b{W2~!(hYpMy_KpLAA5{nhYwzzFyImKUKI%5$@2Wp=8tpnJV^xuvb9=2SDvsdh zR%3O@b?`Y>rsA&yB*FHwfDevsu(ULiv1de-l*#e&xT(522{SVqt*{x#!Nr4$it4DL=x625kJk+yp7sXc z??|Ho=FjzJ)^+l?HZuY*P7>-R@~w7R-J#JIpCcODuYUkfgMhvCV7%$Iiz6Wk7PLhlJ)>LYLp&ou22 zmXPI|a&4^^3rkaDb=CgtpEdQvrnXs(#|SnQcXO;SkNR(APsJQ#^@7(xyxFDCaw6k& z1C|5QH{|EG3x#NOB9!!!NuGOY2fPK^u4+2WZq-y(D<&vm-7PKJtM^|{NN^jPnugcK znlZ2&QX4r`<}&Ge!U4_=iUjrOUsKp3HWa{;z>>|@e7rR=CHX6C$k&&_5iJ&$(vgM? zb64fn<%z$q2ew?+;0Ep3VoD%9m~>1Kr&)6hdf!pEaEXK7{MC9>&5`25yFb&)rfnFr z#WthaCfPb|6AIzq+i}CwsnUWcjgs>ao#vmogM3>87gBG5k@hirMO}x{@6q+fC2|hx|Ur7A6CmNGzhk+7d|AM9VyY85a|UF)}}&qM)Q?E42F3 zaw2PHzEhz}pWm{|N6+QUsKUkIjLV3#yQ%IA`nH13TuG90rum2j(HkxJTi#nWvyc8V zVJPhd9-cCf7fNvT#igaoG%08qZ9>(Hhj7vR+~@eO!*V1f!pfGxoE3Lin3%eJ)LAk{ zMzNRZ%28hhoDs!sj|hI81+<*pQz{1EA;A`^V1m-~Udk4f^!Ls*`2S}40}fv`!`s=p zt($Ck-SXq)?$%ZE8dT88OQNdl0jlr&kk#pFnky&`s_e0QzvNA{UzA7KBb;&^=(=>{ zYu)u$Q7OrWNI4Ii*+A2JvOK9$suK)Ra>f+f-rm;Tp*&ohnqrHN##GhQvt2*g+pD1f zpn-8;R|E+QEo-E2ee||&3-dWeXBZe_6^UPuMtPJT>QhA{wQqk_F3S*TrIn9VbKbd- zJrpTm`Li>Y?oR#*KUV=l5Z%}wYy(Sl}WIlu{8QuZv2$quFt-S61wgIpY2Itd;Md5L-54ze2Xx$8RL$( z$@cX}p-l@I9}jP1!(dwHkhaTSd+}%Aofej)4=RTz=)gnzvApGaOK}#OlsWj8^<-pZ zuU_Vm#t8ur_x=6-&X4zAt-d#Px^Na%Ev;g+S5(ro7Up&Z(rKhDW1$R)R%IM~czfj| ziCv%Hc=?xVTUfr^nm))mIv4DQ`N**gJD*R6bvWNexvJ9*+G%BVoUfeBck-}UE0lRa zvnM)PB-y&rlq>bt_kykzJX%e~dwT&9$0l;qF&e^9@!EmX92ccwqjmB>V4f(2c$4tjg z>C4QxI&qaCu$P-Do52P~(vP!ruEN{LWJ64n8S**X*vd2TtXLJP0M{ z`ey3-*?B4js2K}ky)%qmQ@VNJWQoV_?rK8OD>+Dya(ewKB|i8l`tTM143!o_xc=lZ z`8}oU=*J1==Tw_qOD<3JhoQ6k7{vTKjF&V_a;WihmiSsIlpRNEKJE7L`;AyK2EWAb zMkD!auQA)OdB7b%Xn2m%%I|4b2X5=XJ}*Y0;^Wg27quA@^#*BbYCZ*dOF+!o3&W%* zZ5MUJ1vr4C($CG?s+MWKhaUdYU4J|tWA;xDM0|~oR6i(ZS}DHDbd-l~E7F0wn$2x1 z)~sa*hKJ>zk!rUo1E&)Daish)>*XU zNO5JVASjtXofXnRd%@o3wffCGBZc2ywzeBG!8f~av}{)3N;e6jkI83i@F8qA4AcX$ zF_7M4iRyY=hb87cE%lHnPLi30h3+ckBcdl*R#sM%bRF31i9nvKMXZVP#W)VGquAyG zJO+?ri-#vO`;XcUbh`Q9Zt!UEjM=c#^CbTD7((!XkMNYB3}xeuAOsz8(Uy3Q;DPf( zN8t$wMh%MV$`6acN(QqY4K}TE(Xt#V>d;x@L7FL4vvuv&q?v*fa==8^$Ggo=*dQpH z?&G8`E{9*^#Yak_M&)2?=lS&3Z(b*C4N55dCg8@yVjI+U4mhl8H%~k}l0A4` zu;^ylR&Up6^(cC5i_>@zt>X2hnYSn3#)HU` z;iPMK<~m33lONMO7l?+E2>EPWeL|n=Gl^ZtSCy*kpGOUfaKwG~MfRBmjlE%KD&U#; z+zmDaWB%DRhZ9WWEdxgbRkI5Nn*0;a!bawA9f&f~LLjrbMP+uLZLi6ns`mZSUNkBu zi^ptGROo;^0$REfU~b?f0&1R^-pcW28>0oSB5{?cGLuKNu@b+yn(j~DeDDKpGciUdjUMY)y?y^P5&M`8__nnSG z&_GVkGgr1Y>S7k{660^QrHnxJlh3*A$MXFR>2r%qlo@FAggMEn&+~amx*t`j$R&XQ zVZC_)&rDAwkN+RfPM!N&u5a!Xc%N8hQ=+3Vh|!E6q@}~z{zxlACN+k&G3~sx8|IUp z*N-=^uxE?E;`FZMH@-mV_}He?b(uLaLdtMB3Qn<;gJum&INy0@RlvTDl-@Y=b7`3g z2JkP}N{P(~jb78|9r2|`*qxp#24>yG) z@=sOY-;BA4kj8;q@VyM1SknxEgNJht_CEu*!1Ljk73sOJWGGda1B4*Qd;Uo%%H~Ek zd;4=Jr$F{%0R1sQ=84_U#>BapM9=a-J5qDMzY{jqdD#&}(bG+Ui9`h|`qAectEyZ; zAr@dz*6~o@O}lnIp1l42Ltuw4eBo(QQXh^*-3)C8=`>gf8nlB0mr5?+vF_GEg&J`w@b9N+)Z;Azy&(0s5w03D-GZlEra6G)g!S$2j}jc}FKv=Ke5`EoG{QGQ9qnz5Y60 zR>r02Ekzq2@uI?>ga^an{stL&PDjhsaHfw9_DBkJscLcpHOoYit|g=gh!k9irXGGEH&EGoL|HBG^08&C?U=KRshhk^Ub>XXCU4L@e$ zQmU^95(qd{h9F7tLh9!+^5+S>yuV`Mh^+Fg^cG_T!Q8P377x+oi5EjjReC@FC!gB}A*a$|xb?r^(F*;c9&9&}*;l&|SKR zb&=AUSAY_PcU@Fz{x0gb&zTDU_3zF915D5x5WdB^tdxEW(!#ak2Q?Pt7o)rRRC$3s z(W(>yEy~E7+kMRu&}pV=m{LtZ0ey~Rp6t$!MLt>&t~|mA+|*MSYipB{1F-*Fpl8g< zjlW{|U(bU;!s%1C4XGP@(N z#IV1~^>ZQpfVh6F zW$-q`+^;io+Ur4(@+!t_*_Nu^4F74r{FAR1TP5u2j+-B02Aj64yV@_;q3RjEp~(9`cJ{&QiRjS{=Z* zB2h~4r$Yop{aQzp%xsgjPO@yqb~I?W+ScjmfQCWT+T-a8mZZ-i3#Zg1!|q>a*1o6m(Nq%Bu~VOrnl(^ z>tjV(#};}2H|a4ajnA) zvmBHT3@QPB1G|LK$7NWT;~~Hw(epSQ?Ch8;!ydz8mFP)Nf<3&0gKu3RC-2n}HBC>l zuB50rti|rp9nScpuff3C_08lnF)b=dv6$e(_w9ua0>UqF-#0cBMaRYtZ*8^AAc)z7 z2vmT7tEnYuzKc>+RMc&v3`LwE-%sFdyzVdyi4PAU#39>toqN+JluO-XuA`TxaoA07 zN&|MjnWW<{qt|}hzC5bVvib7V%}4}dg>CDizFPT0Eqp-2v0TycGADJUaMnXHi7XOz4}_-SqR=Pq zu`Y>n{_Istn3k2fF58`*Ws}#7;$mhq(>!H|is`|bZ_Hljg$eGDqPO{?s*#IyyW^P& z^2Ixt9T3vDR!s9W3yPuG zOB^;8(;(E0YQ$Ee*W5z>Qx5q%$xZVlL4%2HoSXn4#_*Ut;)m9v(^!tM*6Ak5v{iE-}({D{Hm6k*F`~RTau}+<)Po5DM{H9xzq~l zI1^bo9GFpuH!8!ris=_DVAi&_UqVB5Qq$8lVU4N=7T%~Spm3(ISGuiiW_`XOcIp;^ zL=KNxQnuB{anT!aYlku&;SS4o-%UO871w~Jxp#rV>@LdI;x^sF?}<1Lzg^q9<>yb9 zuaZXPo$Y2}>nqhu6j^n15jOLErJ>3NGB1^g^*)&*Kf@y#XnB2nn%~ApbXzLw16*xq z$K$SyI(E)b&sto_GsnFfs^#8AE@<4Zv3T52{-Upk)frYvs+Yjan?QA@p=BEK=i$+2 z84gvpqXD-etfLBpsraPM+xOO9zpmc5djH8=?(l!le(3D=(U9FL1%fg#{|qnaUpqC& zCYHp%?!M(}!oWu3S+Z@82%i!2Q~Z*|-%}w*mNJ$U_?@7&NuObN=E!wD2M>p1eM_=+ zW(*edPA-xulaA>f2*>59zM#6Jpg?)ZSapZnKl9L}$Yj~yqJOA9glsmsZav-h@*QXM ziJg@~mgAhALj`mv%(1Tkj`D>6q8MMReFu zC7)r^P?#r8?9YSXv*EPwi}vB$-(8bfn;C`$N#i3#1_#g6mHjE@f}EKSO5boAM_k6n zEp@!NLO=t2mjgt=PIH&i6Tq*LzP_Li?>zA^6dyBlbDh~)&BAJtZ+)2G-{#=-OwZ?# z85ksu>?)4j4hNCx=_QpDjt^CqCvOjbd**yRjYdp;@vaat#U-gWR@iKVm}ze3*VGNPoKc?Il(I>Z z+#7B1@$+}il$4aTMSzzn+1aWPZswfn+bgcKN*T}>3v}W)KvnF{$V{Q`e${(uzy-Fy z7W=ps3laU6(&HuN$h~JW25fpnG9W?0eOKOb+n-6!f6^H!e#dDha93gWUD$%-u4KY% zR_22`S|0lyF>#pyW2PKYT(68zl{1vh7vFzK&9ALFqN(*vK$9!U4AK&!^KIn_ zI!O>%M~-Z@Fn;q@>qC9`sz*{27`84VHk}_wt;_LSDh)xh`hS}(89_gGg^T6je43w7 zPFwRYoxNK1c^M+N24%9Q%cX3p6%y;Yo^uw~3RLH9m>{8!*_75k@>1k5%|JgG-A*Q7 z^d2{scBBl%!Y<=+tE(9l9j32a42N=bV|R}_6nN8$B=Mf{Ch5EQHHi7&WZ&nqVs53d zz#EGx;~h`DCA%s{s*AtNi)+?RCl)L=b)5yDO-~#{3-coD;=H8fRI?NNwipUt`Xwh8 z2^AXli3|zew`@`Re~`DWbKn1nQlQt5EjDH)YI#HcV@RoHD@%Vo$o}i?g)`1w0+Q*uQLGx|kK9(WakX1U&WelvHG3$B1$aAy2E5g7v zu*7C9Q|BmSpkY|jYsIs=zqYuTvzBTRwctn;PDu^w04237WhAqA*H1m?y)Nd3Lo~); zOT5x_W%`w)?@iD7z&9(*@e9rC*CMg?$P$}`%3%x&PWPSo0({zXd%X&!Am6jQ;l=Nt zamLlt+afeaQf=z7kmOGnNm7I1Cf!)~F~EYaoFEp9aMd==5nIWh`Lp&+VnNTMdC#fu1?Rxi~ig&#^g5D?oyyF z3;K{U(}doWfOrx3|72+?jZ)rKz=5 zF%ZgDUvJu0rGPvW&4Bxc*1e}eZBRdx>5Dg>da&%rmFHwOj4&Pto zk;OMcvr8{8w~Zz@7;|RvdlR&=a!MIjImm`G%zJ zyUryuw1PN0b&L$^j{0ki45bu5Vx#pQA1j_CoMP}!+u&opnaj@YCP03@yZ*t$y@1Tq zdT2IVfA2H(3xaZ`yor4zBvDD=)Tqrx!m!0>V3vbzbR>SpoWB?@o9s>WFVnyN4S#gJ zU(aVR{6wAbdgJYv=e-#zjP*L+MAwsZajXo9L@7Jz&G&DyqM(~8K8KB(ZE}P!-H>o! z%6z#wj8C>XBdHl3<#vImryX#U4NhIRNc2kRu$m&F7uKt-tnVNX4G-5y{`x(dqNCI! zv2$OTY&f05|KUL?V?L3?|4*a^rjh667dA+K_vy24swum%qd6qUhaP|DRMYFcYeR(z`&Z$S6E$14eh4h9L4yA#8$T*c-RoBp##ZBB}--ka~w z@vQ!P1TGix)ylW_-Lp};ZNIzAZzxY$IB9QNwJ3tU7+ZExGvbF|Mcg!q9Y}504pmx1 zVt${Og>|bc@LaiZ^-s7M5|95q5a)I@27HJn}Q2$uI%4K-Qa8owOSC-3q2Osl?N zr20IQrYYm?{TU&otnK9k8L?VyXyFb8EG_RPD~kgkVy`jjtT-OQ%ILVFPPS0vRg|#j zX7n5n_jOPxitCI$V~*$0-r{1Kez*UM(C2i=?s_Q<>1nVNHPB-zOPE6wI#@n&rQ26i z{aEA0w@fJ6BM7Eqc1DN+Ue<%mwL4<@#3&#s0e*ff8v*plz4^Tx?RZvg)Uj-sLj~Tr zG{Jsl56*8R4pzzaA6?q~CE54q&A=s+Cng5h_m^O~PvLZ(IC0-MHaaRQSceX)yDdxrP559u zjYVL!VW-WD1yHui=kb~BBa0Y>cc>ODGSo%}rXB-fXDz z{OX{dsy9=6p*CbL&PiG(rk`a<5w)Pkblu2fNg;%{ppE0I zDt8(bnZV>|ytg%(uRw2e9wE&)lUky}W7l_@<8HPFF~Po8M~=+|wF%+Y_6xAJs-%N}JAx=xpcTWy3v4BOkuMw3qK9UW(V z!i|puTbEjfSO0Mn^aI+CyRI6m7Y>^ll~YL$>*Iit>u5*c{=61J0EsmFAr9%e=AErIl4eN3tAGwm6t(&7JcK3h8Ybm1)DV$dw~YLY($; z5cs7)lO;XdZoe=Z-}4Z5*Vn(7-HOAc{=PEs5Kbi1_9f}v_{!9jwL!E(8|eB*VIy8E zPMTY*drmv`_>-<|2jT~p@%|g9UmzznwNBix_xDkBtgZBGq|7CtH#nK8e3Pc)s8i)s znQ0`=o743L&5d(k`BzK@p7Q6iXYK#@|E3@+6Yx+nl%Se9zO3n(ch0jtvh<1bNdqc6kXe zT5P?S^XxKo6WelWhsI^qSkg_|MUyDY1K#|J8#52rQqKJ&YKXuODJVds`_zw~CIIHm z0;+@%#iF8-P#Pf5%O`kQg*kqYj?oRonb2SnTgzyR39Zh4SLk?-?B9WO#b5^!qQdP% z)Aww0AzLCLJsibP%^=fYS+UGQZbj<|9UkU?YauNgXd6v^2n}LXk zlZwkfmq;e2K;;-zZx|&#-;HSf?BCAUYQ-(~UQ-5q&d} zv6v{oJ2Av#A6_m;8-l>GS{V6b_o;rtnu{o=MKDVNOFZCazW$_FE7Xyaz?KXmQztxg3C*!+NPK3dNe;>~umE}i)ML-SPzn^60$yu$qQ3j+ zJ$*Td-=d5VIZhgZ#sDyHL9{?1K$BHquGa?wl<1pLj?0T6sBUz8eLO-p>)Hh2AOo)B z6L!+BNE>KQhN#?lSnI^o^0F#bS@}O?l7D=LFM!temmIt8t3-$T0=q=`-PJ3*9@nHB zFo|$I4a5TsW!Dc1<CBQ}7sb=M_^s2HWUx z;M&N4U&;?sJQI|u?6?l?IK3B+Eaxz4qhe5^m^0NiS2s9vu~d>N*OjY#3A_~C z2819@PX`3Y8%%-Mv^||Fp{S{^JScNR%lUdXOgqu=+uE0&mq^`;Vh|CFQ7|#dy2o^h z^hJr#6o1-T^cX~Nq}h1=qi{aYP@+2?@Pji_fNDj5J%=;U%2PlVAcNo*GRV}Nq0iW2 zUU&2VYwxSVqH5cJ*8~jB5YjQgARrA&NDUz=B_JTFlu8XH4MPctbibqu64FS642ZOV zNQ*F(bW2F?dB6DYcVGK_AMH7sqq)|s^{nTTem-UTjIqNppDLfnqNmSpR{a_68Xn8uG%`1ZZ@sNeVvE8}L@u?*;)xG4Gwtla>{E`p7WjDCSoH5Vrp^gsmg>0(8A^IAkuy!665dFh?| z?gqh!^Sr#QL>Wm}bt~PL*-0KAn3tsJEe=p#^@D(- zde#T|Q3P7uZUL*};g4y|iX->xDueXjj|=8zGo&W-@H)tGDTlR@oId(sYGr1D=Lj9R z+W9_AGuo%Xlj?uZei0KDEzA9)FE?4>$Nbs8P-FS=dUcooiCEkx6AG3o*EZ4wf_;Sr zm2kLEdT=PX>d|fqHVV@Uwxy=`)@$d8Cl#v z15F-dG()JQp=ApF-mQcOM2(vXL}5wj>-FbdF&MJbAwxSK5|dye=s>)hqEE+u*BKnb zruNQHAc52p?7@@|rwQ-)!vRW4FfgF;bIm!kN~*Gbh&UFMaK&6lff2I&R|6kb<5XH$ zPo@is6M$>>rZhKl(YW%;fs5baN$bQ-f!n3oQlH*juZCvdbu$;Tib8^ivu9J@gve(J zz5d5Y7+~2Pf)L|C&Pqz5puAfWt7poz3E&+C7ycf=k0@+6K!~5ewhFWh=!Ud{DP?<- z_c{%*S`2JE#!sY#4U*q6`H?Y=xt5$SJUB=11Jh zO&H#}CLqm+qNGHF&}ZmNBf*ebXrdmbm7oj5v*dS6O4#D{G7m2yCzoNP`HLBQy=CYo zdi>KOs1T&QODV4*tPWCI@DX5H1%SpbfJyS~*H`|7Lg6-N>vqreGCxQWeoOhkTxim0OlJk4MwZD^r-fP{;V(k(ZyF zH8}?L%8p@JtZi1LhazAdP)=oQ4)C#!oaU+ZcXu^8s4N5(qNZrf6u2iYPLl?c3c858 zangFWahT@ofYEn#EfOi8YV)65nJ6Eyk9Dx`7JMA3hVcf7aoPd`gKL-c)6&0wy{GlL zKgH;FZi+`OT7l0gead>ZfHaG2qt&j=_{0KnLXkCF*x;byr7*>YC^21V<1F|w%#vW0 z@N}7ck7O^q7X$FlJ8|RXls1o*k!Y(AiSynMx7{UWIpKV!qhY)Yg}(3#fe4c zd03bZ-{0%m@n`TDR74Gt7l=pSF7b@KS7wwNM)QyPHlxx9U&$TY&$l*1l5%s(b`FAS zufm~lFzSn!oyKEQO!thQ;VaANS;Hxy3tmJoU#!jqV=&h+zU-D(*J(fMD3aj>l{MWX7 zZYR=|X?{$wqA^CJ%n}*DF5Tst@kbGDO7JR6QR9S5~`;6EfrB0)|X^Z zYju!HcJQ2nsj+%S03>1wl7`4a*_`B;sBo-sLL5OAWlw^nwTw!q-*Ff%Aem3;N0d!T z&7s)s8|DiIAiQg-`MkugxQ%hriEAC9h2QH-OqL%%9I-!;Y#Ht(`J_zky<^@G$hXB& zA|)?h)?PT36u_cJj$M1&zCs&y(#I$AOar;8o72hBM&C^QeM>woZ)u;2Nbpo=4iiAo zf0sJd2L!)gFjF<#$^IlD2-4M!-uUzq>3>IRm$~3P{=ws4C&qbDNfA=>oRVY8{cZmpwfAk_5d&$k0N%hJPrn8>z9`iqy;{75Rxn%*| zYYwL+qB80E1Y0^bRmU8`mNE2`tnOHG;5Wb~2K2%SQG^#`Ox6oikv2Jz*nOc$Y;^*- z38Ic&p(0|HV&k;7D&sq^rR>^^X+QOXoNL5p4d*G?$q~bq3#5uBWh2ZQDl#OoLBg%* zo}}05LOIn53$snyo0(6a7JoYwEm3>pWuQcu0N%`K$NWVg3wnN|>XebOq;y%I;x9?u zt0eWSL?$n_t88t$u++B?^~s zc*K(S_LtNED{^JKMg+9EjiIdKfR#zV0X0F&6#DLA?_Xi|5Y)_SHA_HdU{w;FfLIKm z6h%qUegiz!Umj&cMBLa~A+6BfmmY7IX(c4%`y4CVtlKDxbXX;yOwGzZ&jr3{{$8*t z-)ESZOiwjr7&k7;&-;EEw^n~^fY0z@%0|=Xk!%}Nr0~Gla@9*@?Z!Q_b+7ItHeT*H zPtqiD3>hG62^^8|E&y`CyLa#EyC6}9pqNhvh6fmn^;u}wYb~W-As1mZKeVw&q}0_&Nuc) zA7&z0$B9)b5?F48pX~gMq0^2X*t2fGEiu;DNDV#&Uhuo^CnYpk`fKmZHFH>7IN;cczfD;lyM)lw9qu=YCnGoh`XcNSom>+K9bkr2C-C%skV7nAU9w7H4p10C7GP*9vDRLLAH$CO`1)y7&WJJ zU?ZzESPGKA{xdw#yO&_N>3g%Mr?93>J#C#zzfizOUl}xqcaXCV3ki_SPd~?7yS&cf zOZ!#wv3JahG?UPNj;fce9mq9~Nam`_3`!N)W60QVuos!`&G+CNXoWUYP4`eoFx^GL zmnmvK96u{YV|y{Xo}%_?yP|J_F--OuhzOGaq6CeAJwMSbK_1BxPAu>NPFPBg#_e#j zWhy*;rW1$tl2IZG=w`+s5F|s2#UNi4)CW!$cykb!9Zt^j`A^l_2mTm5zk+d7&cr;U znzPXV#AR*YXrjD#3zc}VEMXCBaKfxFLP>N;%cc-Cw&>UU^85*syQ}lVmn_ZOt^GfE zQcD@5b^Bt3KjlNm9U}}|)qj7mx-4xz2^1@Y>KRyYWT`z|j`E`{l8{_kOYCI5Cn{GI51H2VNI-c()R_k|_~%!g>h~(9!qY$yiABtrM#U6UbB+Dn7qZlh{)GsxTh$ z8<{O#Te4cFA0t;0{>@d(GQ7VPa-UMw$fhfXq3Te?0dWWsaW)Ced5M}n=N9%#H(VB3 zSPN=VD^t)IT+MB9uti@?z5GfkC4PqwKeoOv2el_-W7|revWLa~JeasZn~dX79AFeFzyZQQF-wb!ui-=- zRkJ|4IS9KVjtupRqy@y-z$&;-$|2%t6g(SNgOi!V3>c$h!(faM_&)M<@XnrUBfBik zP6X8}GFJPy)P&a~yYZt0>fnS96mPV;DzR!(XkE=}2@LO$lAPpg@)@&rpBtk|YKo9> zr$s^>9ZSnLllv4OW~M93MG29srP2Rdo~Zj^W`r4}RR726b#7(8wBmd;=hh~n(}W&C zI^U4XkCzdQcdnYL;xr65RPw98J_U3txG?R zk=)IH%P-n|zlsIC0I>v?6)i#Ty`{5`%K)FPZ6PB9#HNKI*;7BQ?ka`&v=U&plt^hs zY^JNr;J`W99yKf)&`pX#Ay|oEBMOIu;s?LK>ki;)GRq}Jxk){2{`Yfz7Kwk<<6jTo z<7o$HVvX&eEt65v51uy&w{Z-L0?z=S6cWW9#>u>D*abyJy!@ZjFu%NVRS`JLJEA7n z3H_Scu_?s1rVtI&`;YvhgF4#1-PJbkO9uphX0s}P40dEOtNm+?+DVKvk8ZjgT#rv( zt()^9u-I7ieikr%(%bBL__uK8M^NMSec-Nlxp_D39wtXGBv4SYD#0#Xufn=PL`h+Z z5vN^+T*WmraF7mB665aRqHWm}!i*z$jhO)bwcEI3@?rw=f(S^$ zK7vS1*gW1R0vJT)S0P8AW) z=CG6V_3t7D=YDxgx!)rb(o-jiYHVpe?7_3WD{ms%Qh4$L9<(dilXRd1Clir*7k@P^os0bE10E9 zl{z?6%oi`syD^Jt{F)R*g;~0)RRJmBTVKu|2eY{RKn{18#Q;*$+ba2zA%{uu@TVIu zQ{X92Z+YhVwcRv$W#9y*!igprV43sjLztkQk*&>_^+I(|8(5@1I`Ffgr6Jfj9-w!c zkYkT^rIw%JiNa)C)XJB;9&E=R($Kg_DLr+<&=3ixRz-&?%9va_?YLIzBShkuC@Ra7CYltZ4Elvj+1SX;iosap7< zZQSn$B6NW1+JNdGZvmbUOXjh;e(=seJ{PlJd(S=*^jz2?xH+~e-(R|?9^$D4Rl+k0 zj=#hpqNDIUPXSpDutsN`?-8=<%ujIB-Y~&~Y!iLnrwG5Lr-q5d0^F^TPAExS)deQ+ z0`P^ZL6<4q9Vtz8m0i9D^;Jk&)1`=XM39(x!&GHKvM?at0aLgt{zICgfqhf!CuV>{ zPXUt-H1-JsszWPL5docT5te`IJV?cU_K|fNsottc$yDJg2zO@_keOV%NQg{5e;zRW zhn}83{Dep(vDjd45}RVz7fEAVTx9SlE6X-BH=@oiGb{HaN9W)TbysZHRKkCRGxu|a zMX{rGuwt$>*&isEdy37mvK^;QPav{F@(bVzrcL%~;h(Rfr7G<1$}Qd~_Turba<6=J zmI~dY?iFvek)pH({v^<>ee=p@r-Up5}OhphKPV&=kt^eYKbD|go zKqq*?l&NPcj0htF8OF3KSGx2#J~iG2-cEs~CdUI2BuSCK1#qlYaUM-9A-*ssPMn}# zU=)v{iQ-ofRMAvS8ma`_v@4!*g`$q1Dq-*rTc;tx_DbgId0kz7 zKguc|&*n-EnR8*j*;-%o^m{~(g7?sW4g_?rMt^NmtVRFm!$Fk9t^k(3#cqgSF8~MY zyb9WbPr;sGn>{E{gQ7mv*^?2(iH8nml3ZO_X$wit;=t#+kOUheKOeC)E*^e z27s-qrTA(b^rJz0qZTShT7=`R?c0`O%vx^>uhUtYLLSCeW!!YcX z5wehi6nL<@durK+*QLm=gdu1C{Po&dvo>qcQvbasxA93lzGaHXw+dLQ<;HCqx2X=Ob2{3oJnAKpfEX14iy(%#YzfH-QDhHrOn4E*;9)X*OFD^f9FgDIW4@k4;x%oJl{pb*dUE#{3-)1=P`yXGltvcn8 zTnv8HrvLON7muF)gP<|et`Mjp2M}=3F;*>f+5|>luDU*CIOYArEr4y7k<8m=Q4<6T zKtyhr`q+UWE$=-f?VcY6Ff7pu)Z0uqvEhAET0wD{qvsvUh}!@TPIQiX;KQ)YUaX8E z+asEat80Kh(aQFPj?pE^LQhSCqe4LU%ibAtlDeYW!csyVkVeYkVI{h~G{f=;g~Qt5 zFPJrK{5ULt7l(Welx04P9yLowdjD$iMq+Y2tIMB|UbOpqdGR9=*%+rriZ%k?z7E~% z!C@1zT9vlA)@%XBwcYgYGbU#Gk+~UUPaJElaa5&{pwGYc$3R+=fWku>Fxm#PM%~2< zOTY}dLrGqgN#Y3hwuY;_eg||ztQA@bW&@I5g@cwE5kM!<`|?n=%y0RkRueG`oAhiW z3P+fSWkVK#pV0t|Ysh(r<3hl%j_4wcieknjFc9+PySXPZtYg}ta z6?lBtFp=L_&5V4_hbe(<0hWsmqm)IQpKRmxy&p>IUtxc}d?elU>6YV%4-x{Wy@^KB zfuqAPoSg$+@dA5N#)l(tk~?F>0U`n-o1mL%bSKPudver5D3VOV({Bb5geX$Vw-pN3 z7J9;Ol{?H8vYoK8%S4<;VZ6(bC=TM|o&$rlEhQRRa3{qlS6}*#CU_8@&Pi`QIeuPP zfhpiP84d&o>@d17+zoJ$S%xyAfO{Kvwsd{Xb7#);sj*hoxr7y3@*!0au@FN9Ts_34 zr>v`}pnPk@p9r(!sT>``w707QaE<>l`|&M=x^Al!4!9_2QKuw){Y{>~Jgx^5eAa4k4^$gH@e`zf)pQ$H& zucFTSmG4ShyZktNwYLm*-<8*CKQjBP&`J)o-lt)jotOUpezE&ckoB^OrjK`u+(aNG5s0z|J&1`2vi=CVB92Jw-l9_n*N3}Sz- z-i1TXZKn72_L$1l-tax}>K(J!-S*WBIu6lYzqDtfa%WYd0pi7;jC#qv?@X^hxmOb!O z_0aqBb07qefFVMG1u!}_ln8M;tSp$|g-HcwI058x_gsn1hoW)gdwMG1DZ>~TxB3VJ zPg)RvZu@q1!IH}&!Ssdmkd`GtIvj`|-lC*hcq~P|AihALAus=3P@N4?WS>WcEmAoD zE+#L=E2v4E9jv5Gr~WzClwoo=Ry(rr6GF%3lN@TMs9J|2(cgPW$yf}eG>eb7~picinpy3Y(B`#H|>oo2~h#o{{TO1{Z!GmXW< ztWFg44^mP_GhCwzgd7;*-vbyioS@z{g)(jwfnMYOR=n3u1Ij7sA$NjOAiPY0gCH&Y zP-yPe7zI$EE=9%1X#ean%ooPZTCY}f_55cli_~P`ApuFi&W)2?kG;(E)m(g|$T(;v zJm1e)mE#9#5xxuzC*F!TiUe}!t`lVUdWU=4vL=@!WW1f2iSIY7RPs+=2<*LsxGuK9 z-=bfGaJ?EAT+7kO4ek+u#v_d*(r$ayd&WRD}@^F2nK-G(oPS=dWgWJA*v8aKg$D*g zBeAXpJfVv`H}BYOVRKK_R>UcTG}Fd%nsfFRxKo<==$9=A!BpzD=$i4BboHS?w#hdrdk6w`+l)B6Inm8%+RIy0xl-p%)*eEjFt zx9<_Esy>`$ODu5alm0djS>z3n0!PFZTbpprx##w_%tc1P@f+Q~SmsG`!^uZxD*@VH z)9&J6N2zSF*Qtn4x8>QC0Y&SUT;L>-2P`FTd2^}U^q{+h?hrguIkz?j$ALBpZGi^{ zHf{HHb$W^GE(S;s-H#RtqziF*EbMhh|FfLYU_AspZ^;kBgn|))sGxYzuNc5r*d+d) z4m(LPy@tPzSRjo8zVEx9OrPwl*CAHD>!9HjLRayP7Z}MGWZ<8k*~8S~BrgPHG~|dP z&O61e6=-!K!V#P9WIq}ugP1wG{oU#OEP}#(Z}_?WfqF2qsP4xO1-~_U;FE!qdc!(2U*6oM%(u%NS;Iy7P3qooXcR^9HB@$)lBH zSyWQ36Vi^@{J{V4>c{jPr}1!3Jv6@(@*jyTUq0B{1ikpUOe!snd%x1upMV4l!D8a3 zG71pHG6FKzq*_xT*)plZmc}I~o%jZ3%f8JpLeOkg+#UT8t7a8ZTqW>1Q%f4IK0 zk#wBq=X*7CkC}LCdd|s}qT9yQ;lfnYX51g-~tNplT;25qH*SVd!1Hz!CaW^i2 zkT8|@M*m-ruD&HIG83sR?)LvV9G(3B7>e%qhWItbnAKezzhJIqo?tbA;$y%smM!s;9(Xduufm}Xw!wj`s1-hc{LLbS%6j)f z4I&RUhw+DunfM$#SoOXv;F!qHd~L$SxE{FoL*RCF^L2JQ98(qMA}>qBC1x}i-YU5- zx=D~Ax4NB#$N}vPwKpWyXn|aCE>Vx$ob_VDJnD~F!8dQDSP`g; zpnAj~BMGh+eahQ}W1Pp#Z!oJCS$p9Xze zKR(h4gJSOP$$Yttgzkaa^eGX7f=2zCF?Io-Dsjd1Xw|mlKTV8`tUJju4!S=+T8Fje z{DR;XW^oPp%#LgJRDC^1j| zd=*nmewhsm?SL!2jB;n@$ahaM0edo+o2tg{t3pk)X!jJYM+hS z(WEmhnwEJ%ba0-x;SBPN#QLmit3U9->EfL#;4B!6C$R*4yS2UMs!-`BvHQz`q$2v; z!U-I^&I7;q_P{JIVAaCh$+1=z>+0%aA_r)4z->T2KSY+U@oYq1`k|b4ga5MBfT^lMOl*=hK!j$+IPJaeo9I`i=a)_-G{>1$(`T5Ht}+|G$JXrYyxxIZUs2o zP2U8Xe78$kWNJA77PvQMKFefa-v67q=?2w%f4AtYeuEt>;jjWKhWrI#MuD6NZxYN5 zratiK12Ip~S4~$ZCw8%{LK=aQ*#H7F5d+-}tgk+GNQanJ+E+hHAGQRdv^;;#CZcaD zvJpf+Kkqc~h)xd$k^05YHke-Xnl41EY@BOt<-QL0w89T4ftv(x;8DKEkIa~s2fLeN z8*Qcpcb6d-VUSC@L&!ypCe)aj*&Et?{^|RfM(m}&!{w^Xkv#MFvfaG9n3DSY10dP6 zwRaNSjIMX=S%AL2t6ZHX@5`Dt3MXeTMfvMvGxzORso?9!ADy4s%*^1=u*td~cJu}H za~=d59l@vunAe%a^Z6J61fuf*d|MWpwiR<{MckT8AioE*jd^WT)rcYAq!^jXJ6sB~ z32CBO6@5Vbn+Zi%wltfa>|we;!l)U;#odOH6-&eYeADN1%jbr9q>6p;?d&%yzNqwN zGO6?kQWBr~rV34Wh#^?45B3H18!UUeR+6x07l_^qMZr=vMqMdEAFA7 zpqTj);@>>8{3pwJ+Zm<=t0`Y(3SVdYlJP+B3+F%{umB|M^0f-Q8 z-->R042J-*+=wM{lx@&m>A2=Ec4mgQ{r0&e^0qZR$Q2v#E%b#MW_u%-tuJ zY7G3bq6yJ4yZb68Vv2m5jl$|+5f9nPRlh{NcUYw?x1SV>iaG+Ui3@TfR=^>Veadz< z65$1i8_-CM9WQr_`qKvoTg4CF*TwT23QU8r!4L7UE51`pfO+wN(Hlh8HU)Y$)Ol&g z2R`c`v=YZd0!sR1tdV;YUkH6qzrnbLjpg#*-^?P#{Vfb!+PL9QGjh6?kcdUO7Tu3E zBig%s`eU^F;~nQ6d^VLFw8gO2(BDwF_=*%XOSku&j6K}R^EDWc+*h?E;8I{|fo62YhwZ}$&5X5 zx6+mDC=f*I5l^^?B0SzCLam1UpI=7*_(Smxc)AmPZr^t#NL7NMJVu~h>fKmn z8K_^Uh>LUSsZLvxf_g!?4J)bOA;RfB>bR2X$I{KsZ(Y25=s@`axnv;8X4c;_Ue^nY z-iB;xvndXRB}koH9>*GwW|xuzebTjwLX|YvpYe@O{^ZjlJrolg5#)(y6~(>t0hA$f ze>2bF*sTAAx@Fg&9MA{_-#eljmoj?tnPZ$3L&mRZS_ZlgQZy&;HGjd%o%;d-QE_R3 zWNyCwTq<@p976UMcafbONKA0*WY^NH&;@`Ve+3Cbp^PJ3pr)#y+HkOS6TO<|&YYeH zo|~3U+PUDf6E90R879?yG&{>)(DSKWJaPR?24fV`+Wd@0f_th-+`*|>uyz|xLPkzu zLcP}&O=G{$3d$GFf9Qqr-f2JI8QYe$GCM^fIurlr?&kJ}HD_PUHg>*ZiRImlNr3vJerl(_M@DBg=Fzl|eE&|nYr;?E6pr$WsY&JEYfkFDyhTYe0Zvbhj9jK-v~5mY z)4Cd{nAf`$91ku%YcFQ%O`~5WzxaG9=dQH0mCQuKVm#1NDkO!a#K#8>Y{_6+ygGI} zyl8xYQf+QxO|aX8RDaZ?0UB=QXzK#epVVQ~8#g=+k$hmhF(-r~I^Rol3A`L~prN=fZoews(z<5v1#HvgQIx?i4oH3e>_Ik71Su{vwJ zUv-I+5;V*Fu)zikiI9wdSiRh|`U;k5jDMlX)Mmk5alZZS}(0 zxX!kCW8Ubpp_I<5;m%~=3h8S3a@v6zN!Y`*^uqV0gIM;h>v@XbCt85BUG#(GV3fT~ z&EU^UeksI2Ta%bc`YnhT9}}G{xAQJFaMCT;jATF2`A5oPIjlWh&kc!j>{V7uB63vp zrlO>b;4(?bgAz!!l^PobTO3)HUa6_h?Dsn>g@|hsDnl;C?ut3x2sx~+tr^v8zXx#l zxxEjdpvG{8oR_=mpS0idZa2E%-VUBU0L92j(@}qXCZ%WPqxXnQ8gtFiCb^U7zmnVJ zJ@ZQ9-S$)EnIwrqXSvh1EnZm$-ad{os!#(>wP0$`%I9?(?>DTBE?o_;otD;0&706V z67j6b-#X+OnOT$SR=BfXIl4bl@@r{%4MeRDJfLt+MCri}-RG47ou6kN&9)_j)50`@ z>+UAR`JY5|+CuJ=60fl$STZ&TLxC#+Ki65VlYTjm-42O&|HVFv3n9=K6<<>A!7WVyX$EJ6z~;+ zPU!#;O@Pl$w{MCL#PR^^@WHssc;gPsQ=#be<5!>I*lU{q`Rn-T&HyMLC&XK44bYwI zYQO&B)RNURVRza47a8U6{&Ddv_s54BR6uhM5W0ccxxIGPkdD+;>~|>{h)?bcjMp-q zuw1XyPO~S6aN43rl)%(svj)HCWI^~qP*J=yq27ZZKYrd+Rt`KEjS-&mKlQzwh~1oY zUW`qA({XYSc>HjF{ZkQp5@cA`$tAdRuBU+0A#ZG%J*5DmtFGp&bX#~Y<8}$&YWCjl zSA1h6%#QbI#s2DUHk!0(Mk_u{qhDD&`-_}(XLB3xB1M?{`Zd}2zb?x3_TKUF@x9Ms zWfilqa=>~=WARt2Ia?dA>8f4BGILm*;;>sAfJH06GF)X%SPs+eN86O%uX~TDsxPk4 zB(cf?*m%5)I-?pI%IjP)%KP@DZDofv*&v@l+bro?- z`lhoOf{TqlvL~pJAHTYF$=KNHhNR0O>518n=u|tvP#|ABBi`d^@UK-Eb5)F+Ws$06Gg$Cxu z0)x8Kg6omFDQ`die30mm^&_O%4OY74agxQ8P<29u=Zv-nDB;KPjo0)>c&;_SYx~jr z*(Tr5zvkNgSJPyR<~nkIG!(SdZmUtF%(QB?m+nkWa&4EF|01w;uv53ODEItWudXvH z^x;TYbN<~~SuCh{L=O=(%tc3`$A#kk$8(SZo9JJ@+F&ofntxsEK$ySKVVUK7@+zqV zPyR1cLi;|`nLHW5p(@7-$$p=>fIhVqe)(+ye){0;T8hqi=mpEV(eRt1T4mKpSRq2# z_&|)h40?*)Q7b@rHGC!VM4x;XGs$}!UiCvA1LZiO{nvWM`^X2nhvf z5mY7#>F?g4iemXtk)CGHx-F+0HXn0i910&PV*+&*crU&9+^r{-lkoXfU3?t>vs-5R zpWxq0H8?7z{BHSK^Tuw;Rg2d1{r1ap*Z$4Qw&!giB!Q`=RIsI`-#T}efUTFWz7C6m zP>%Cgv9U=($HQ8&a^%SLbg5f#t&3G+{e=CqXD)^x=J~k7AfrEi3XU74CZ#6}Hcguz zr?JZtHbV~|J1|iD7%u zS*5Sw)WKp|z%#AW>^V@Bp*DWY@a=%tr!@va^=%6C(sapeO2qXGsV@fvo% z(c2yi7X;)~XN8pw#?krD`1z((<@1|NpQn&%zKSVxK=AML@eR+o-a~O``j^Lu2-`Kh zzFnvcT;KiAmW3}Diz{3t5C>`_M$?`QzvtW6d=o*Q#q<3knJiFOj8__qp)l@Zy7nQ% z$C{eA1!&8m+`G@X2!A|ca+=y}OhUQo=YC!2;cp>4J1e*!GL#kA-P4mQGDCY|^uWmS zrUmQv17ovykDN6WF;;kY#K$wW4>Fp6yd?DaZw>qJQz87eWn6B^U2h*6yBoOq!Ac@# z*YmMUH$VxR{e<_hw)lj^8xa+jH_dH8@M#9+xmZzut9ia7l8l;|PL8>ow+nE)#=`kl z>8(E-@Uj>tX6CQrPmNC6P20bljg;gn25Lua1^=RYCKOkj8*+iCU>Z1c026utuA~3G z2GsA5w?w_tZ*gtUJs?1vSeUymy5dt47uVy?k*SVo!HT}RCfH7d|KePu+D@uJUf+vf zPqZ(GsI}N16grmc-pGIK?A8Qg?~@eU^Zfjc{#xVKB<_)UvZDv(Ea^$tzn}YHoBuxk zmJ=a3)4JbM8$(3O1S%xcuLH}9Nn}lzRID6XKC6iV7uE4#S3;ug z=b6!;gr~f%9pG!Jlz;r}ua4a>13XB8l)LHWT_v>U`gXi>*yJ+X>}BKm;o_GV`hR6Y q|Nk%eVC?@VH(|i);h&PcvuhxgJGw6Yo{1BH|7hIPQK?X}4*g%#f6xB_ literal 0 HcmV?d00001 From 361cdc632cb5ac97e1c6e4e24cf3a82afa3eab1c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 16:36:52 +0100 Subject: [PATCH 16/21] Made Breakers & Placers cheaper --- .../ellpeck/actuallyadditions/crafting/BlockCrafting.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java index a9c4bc390..28c23576d 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java @@ -623,7 +623,7 @@ public class BlockCrafting{ "CCC", "CRP", "CCC", 'C', "cobblestone", 'R', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), - 'P', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.LAPIS.ordinal()))); + 'P', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.LAPIS.ordinal()))); recipePlacer = Util.GetRecipes.lastIRecipe(); } @@ -633,7 +633,7 @@ public class BlockCrafting{ "CCC", "CRP", "CCC", 'C', "cobblestone", 'R', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), - 'P', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.COAL.ordinal()))); + 'P', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.COAL.ordinal()))); recipeBreaker = Util.GetRecipes.lastIRecipe(); } From b51c67fa6c9863ce7ac2e90f6b48af9046a417d1 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 18:13:28 +0100 Subject: [PATCH 17/21] Disclaimer for noobs --- .../java/ellpeck/actuallyadditions/booklet/InitBooklet.java | 2 +- src/main/resources/assets/actuallyadditions/lang/en_US.lang | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 393638f82..ab80b7b48 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -63,7 +63,7 @@ public class InitBooklet{ //Getting Started chapterIntro = new BookletChapter("intro", entryGettingStarted, new ItemStack(InitItems.itemBooklet), new PageTextOnly(1), new PageTextOnly(2), new PageTextOnly(3)); new BookletChapter("bookTutorial", entryGettingStarted, new ItemStack(InitItems.itemBooklet), new PageTextOnly(1), new PageTextOnly(2), new PageCrafting(3, ItemCrafting.recipeBook)); - new BookletChapter("crystals", entryGettingStarted, new ItemStack(InitBlocks.blockAtomicReconstructor), new PageTextOnly(1).addTextReplacement("", TileEntityAtomicReconstructor.ENERGY_USE), new PageTextOnly(2), new PagePicture(3, "pageAtomicReconstructor", 0).setNoText(), new PageTextOnly(4), new PageCrafting(5, BlockCrafting.recipeAtomicReconstructor).setNoText().setPageStacksWildcard(), new PageCrafting(6, MiscCrafting.recipesCrystals).setNoText(), new PageCrafting(7, MiscCrafting.recipesCrystalBlocks).setNoText(), new PageReconstructor(8, LensNoneRecipeHandler.mainPageRecipes).setNoText()).setSpecial(); + new BookletChapter("crystals", entryGettingStarted, new ItemStack(InitBlocks.blockAtomicReconstructor), new PageTextOnly(1).addTextReplacement("", TileEntityAtomicReconstructor.ENERGY_USE), new PageTextOnly(2), new PageTextOnly(3), new PagePicture(4, "pageAtomicReconstructor", 0).setNoText(), new PageTextOnly(5), new PageCrafting(6, BlockCrafting.recipeAtomicReconstructor).setNoText().setPageStacksWildcard(), new PageCrafting(7, MiscCrafting.recipesCrystals).setNoText(), new PageCrafting(8, MiscCrafting.recipesCrystalBlocks).setNoText(), new PageReconstructor(9, LensNoneRecipeHandler.mainPageRecipes).setNoText()).setSpecial(); new BookletChapter("coalGen", entryGettingStarted, new ItemStack(InitBlocks.blockCoalGenerator), new PageCrafting(1, BlockCrafting.recipeCoalGen).addTextReplacement("", TileEntityCoalGenerator.PRODUCE)); new BookletChapter("craftingIngs", entryGettingStarted, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeCoil).setNoText(), new PageCrafting(3, ItemCrafting.recipeCoilAdvanced).setNoText(), new PageCrafting(4, BlockCrafting.recipeCase).setNoText(), new PageCrafting(5, BlockCrafting.recipeStoneCase).setNoText(), new PageCrafting(6, BlockCrafting.recipeEnderPearlBlock).setNoText(), new PageCrafting(7, BlockCrafting.recipeEnderCase).setNoText(), new PageCrafting(8, ItemCrafting.recipeRing).setNoText(), new PageCrafting(9, ItemCrafting.recipeKnifeHandle).setNoText(), new PageCrafting(10, ItemCrafting.recipeKnifeBlade).setNoText(), new PageCrafting(11, ItemCrafting.recipeKnife).setNoText(), new PageCrafting(12, ItemCrafting.recipeDough).setNoText(), new PageCrafting(13, ItemCrafting.recipeRiceDough).setNoText(), new PageCrafting(14, BlockCrafting.recipeIronCase).setNoText()).setImportant(); new BookletChapter("rf", entryGettingStarted, new ItemStack(Items.redstone), new PageTextOnly(1)); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index e028b3735..0711df891 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -652,7 +652,8 @@ booklet.actuallyadditions.chapter.blackLotus.text.2=No, not that one, Vaz 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.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 "Reconstructor Lenses & Misc" chapter in the booklet's Miscellaneous section 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.4=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 and Search 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! +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 and Search 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! booklet.actuallyadditions.chapter.bookTutorial.name=Intro to the Manual booklet.actuallyadditions.chapter.bookTutorial.text.1=The Actually Additions Manual is very versatile. Here is a quick overview: Entries & ChaptersAn Entry is a general topic while a Chapter is almost always pointed to a specific item. When closing a chapter, the index opens, when closing that, the front page will. BookmarksBookmarks, as seen on the bottom of the booklet, store the current page when clicked and can restore said page when clicked again. This can be very useful for easy navigation. From f089a2644112eb76fe49742af40910682c0268e9 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 18:13:47 +0100 Subject: [PATCH 18/21] Yea, right. _Redstone_. --- .../ellpeck/actuallyadditions/crafting/CrusherCrafting.java | 3 +++ .../actuallyadditions/items/lens/LensNoneRecipeHandler.java | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java index 7cf429073..3500865ac 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java @@ -79,6 +79,9 @@ public class CrusherCrafting{ CrusherRecipeRegistry.addRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.RICE.ordinal()), new ItemStack(Items.sugar, 2)); miscRecipes.add(Util.GetRecipes.lastCrusherRecipe()); + CrusherRecipeRegistry.addRecipe(new ItemStack(Blocks.glowstone), new ItemStack(Items.glowstone_dust, 4)); + miscRecipes.add(Util.GetRecipes.lastCrusherRecipe()); + CrusherRecipeRegistry.addRecipe("oreNickel", "dustNickel", 2, "dustPlatinum", 1, 15); CrusherRecipeRegistry.addRecipe("oreIron", "dustIron", 2, "dustGold", 1, 20); diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java index 4d82f82dd..40f2cfa06 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java @@ -95,9 +95,9 @@ public class LensNoneRecipeHandler{ addRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(InitBlocks.blockTestifiBucksGreenWall), 10); recipeGreenWall = Util.GetRecipes.lastReconstructorRecipe(); - addRecipe(new ItemStack(Items.redstone), new ItemStack(Items.glowstone_dust), 4000); + addRecipe(new ItemStack(Blocks.redstone_block), new ItemStack(Blocks.glowstone), 60000); recipesGlowstoneRedstone[0] = Util.GetRecipes.lastReconstructorRecipe(); - addRecipe(new ItemStack(Items.glowstone_dust), new ItemStack(Items.redstone), 4000); + addRecipe(new ItemStack(Blocks.glowstone), new ItemStack(Blocks.redstone_block), 60000); recipesGlowstoneRedstone[1] = Util.GetRecipes.lastReconstructorRecipe(); } } From c6fe26a19a60e38ee8574fb0f543e434af210656 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 18:15:03 +0100 Subject: [PATCH 19/21] Right, that doesn't work either. Removed Redstone->Glowstone. --- .../java/ellpeck/actuallyadditions/booklet/InitBooklet.java | 2 +- .../actuallyadditions/items/lens/LensNoneRecipeHandler.java | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index ab80b7b48..778307766 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -69,7 +69,7 @@ public class InitBooklet{ new BookletChapter("rf", entryGettingStarted, new ItemStack(Items.redstone), new PageTextOnly(1)); //Miscellaneous - new BookletChapter("reconstructorLenses", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.LENS.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeLens).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeColorLens), new PageReconstructor(4, LensNoneRecipeHandler.recipeExplosionLens), new PageReconstructor(5, LensNoneRecipeHandler.recipeDamageLens), new PageReconstructor(6, LensNoneRecipeHandler.recipesGlowstoneRedstone).setNoText(), new PageReconstructor(7, LensNoneRecipeHandler.recipeSoulSand).setNoText(), new PageReconstructor(8, LensNoneRecipeHandler.recipeLeather).setNoText()).setImportant(); + new BookletChapter("reconstructorLenses", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.LENS.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeLens).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeColorLens), new PageReconstructor(4, LensNoneRecipeHandler.recipeExplosionLens), new PageReconstructor(5, LensNoneRecipeHandler.recipeDamageLens), new PageReconstructor(6, LensNoneRecipeHandler.recipeSoulSand).setNoText(), new PageReconstructor(7, LensNoneRecipeHandler.recipeLeather).setNoText()).setImportant(); new BookletChapter("miscDecorStuffsAndThings", entryMisc, new ItemStack(InitBlocks.blockTestifiBucksGreenWall), new PageTextOnly(1), new PageReconstructor(2, LensNoneRecipeHandler.recipeWhiteWall).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeGreenWall).setNoText()); new BookletChapter("bookStand", entryMisc, new ItemStack(InitBlocks.blockBookletStand), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeBookStand).setPageStacksWildcard()); new BookletChapter("quartz", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("", OreGen.QUARTZ_MIN).addTextReplacement("", OreGen.QUARTZ_MAX), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText()); diff --git a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java index 40f2cfa06..14ff8e9ab 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/items/lens/LensNoneRecipeHandler.java @@ -38,7 +38,6 @@ public class LensNoneRecipeHandler{ public static Recipe recipeExplosionLens; public static Recipe recipeDamageLens; public static Recipe recipeLeather; - public static Recipe[] recipesGlowstoneRedstone = new Recipe[2]; public static void init(){ //Crystal Blocks @@ -94,11 +93,6 @@ public class LensNoneRecipeHandler{ recipeWhiteWall = Util.GetRecipes.lastReconstructorRecipe(); addRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(InitBlocks.blockTestifiBucksGreenWall), 10); recipeGreenWall = Util.GetRecipes.lastReconstructorRecipe(); - - addRecipe(new ItemStack(Blocks.redstone_block), new ItemStack(Blocks.glowstone), 60000); - recipesGlowstoneRedstone[0] = Util.GetRecipes.lastReconstructorRecipe(); - addRecipe(new ItemStack(Blocks.glowstone), new ItemStack(Blocks.redstone_block), 60000); - recipesGlowstoneRedstone[1] = Util.GetRecipes.lastReconstructorRecipe(); } } From 2ad42eda45e80a665919ee0e1d873eff48dce565 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 18:22:49 +0100 Subject: [PATCH 20/21] tifisgrin --- .../actuallyadditions/booklet/page/BookletPage.java | 10 +++++++++- .../resources/assets/actuallyadditions/lang/en_US.lang | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java index 9473dcefc..fdf925514 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java @@ -74,7 +74,15 @@ public class BookletPage{ return null; } - String base = StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".chapter."+this.chapter.getUnlocalizedName()+".text."+this.localizationKey).replaceAll("", EnumChatFormatting.DARK_GREEN+"").replaceAll("", EnumChatFormatting.BLUE+"").replaceAll("", EnumChatFormatting.BLACK+"").replaceAll("", "\n").replaceAll("", EnumChatFormatting.ITALIC+"").replaceAll("", EnumChatFormatting.RESET+""); + String base = StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".chapter."+this.chapter.getUnlocalizedName()+".text."+this.localizationKey); + base = base.replaceAll("", EnumChatFormatting.DARK_GREEN+""); + base = base.replaceAll("", EnumChatFormatting.BLUE+""); + base = base.replaceAll("", EnumChatFormatting.BLACK+""); + base = base.replaceAll("", "\n"); + base = base.replaceAll("", EnumChatFormatting.ITALIC+""); + base = base.replaceAll("", EnumChatFormatting.RESET+""); + base = base.replaceAll("", EnumChatFormatting.DARK_RED+""+EnumChatFormatting.UNDERLINE); //This is fucking important so go read it now + for(Object o : this.textReplacements.entrySet()){ Map.Entry e = (Map.Entry)o; base = base.replaceAll((String)e.getKey(), (String)e.getValue()); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 0711df891..a777e2156 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -650,7 +650,7 @@ booklet.actuallyadditions.chapter.blackLotus.text.1=Think of this: You need t booklet.actuallyadditions.chapter.blackLotus.text.2=No, not that one, Vaz 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 RF, 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 "Reconstructor Lenses & Misc" chapter in the booklet's Miscellaneous section 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 and Search 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! From 1e1cd533b0e33225ebc4a88c1b45bc13b9f7bf5d Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Dec 2015 18:25:13 +0100 Subject: [PATCH 21/21] Why was that there? --- .../ellpeck/actuallyadditions/booklet/page/BookletPage.java | 1 - src/main/resources/assets/actuallyadditions/lang/en_US.lang | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java index fdf925514..03977194d 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java @@ -80,7 +80,6 @@ public class BookletPage{ base = base.replaceAll("", EnumChatFormatting.BLACK+""); base = base.replaceAll("", "\n"); base = base.replaceAll("", EnumChatFormatting.ITALIC+""); - base = base.replaceAll("", EnumChatFormatting.RESET+""); base = base.replaceAll("", EnumChatFormatting.DARK_RED+""+EnumChatFormatting.UNDERLINE); //This is fucking important so go read it now for(Object o : this.textReplacements.entrySet()){ diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index a777e2156..13f23cde5 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -487,7 +487,7 @@ booklet.actuallyadditions.amountOfChars=%s characters in total booklet.actuallyadditions.chapter.intro.name=An Introduction to ActAdd booklet.actuallyadditions.chapter.intro.text.1=For too long have the people of Minecraftia toiled under a relentless whip. A whip more hurtful and more injurious than that of any slave-master: inconvenience. Aye, the thousand million inconveniences that make up the grind, that force players to waste hours- nay, days!- chopping wood and farming wheat and other such mundane tasks, just to momentarily escape the remorseless tedium and experience the true joys of Minecraftia, building, caving and adventuring into the beautiful uncharted abundance booklet.actuallyadditions.chapter.intro.text.2=of the world. Yet no sooner has one immersed oneself in this creative enterprise than the inconveniences return, like millions of furious bees pestering, stinging, swarming all over you until the game ceases to be enjoyable, and you are driven away from it forever. To that end, a certain Ellpeck has created this Actual Addition to the world of Minecraft, that will allow the player to better engage with the core experiences of the game- building and adventuring- by automating and streamlining the monotony that -booklet.actuallyadditions.chapter.intro.text.3=is grinding in Minecraft. Therefore, Ellpeck humbly presents to you this Actually Additions Manual, that shall teach you the ways of this modification and, ultimately, allow you to transcend inconvenience and attain enlightenment. ~by Tulkas +booklet.actuallyadditions.chapter.intro.text.3=is grinding in Minecraft. Therefore, Ellpeck humbly presents to you this Actually Additions Manual, that shall teach you the ways of this modification and, ultimately, allow you to transcend inconvenience and attain enlightenment. ~by Tulkas booklet.actuallyadditions.chapter.craftingIngs.name=Crafting Ingredients booklet.actuallyadditions.chapter.craftingIngs.text.1=Actually Additions has lots of items that use certain basic crafting items to be crafted. This chapter has all of these basic items grouped up so that you can see all of them at once. @@ -556,7 +556,7 @@ booklet.actuallyadditions.chapter.coffeeMachine.text.1=The Coffee Machine< 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.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 and uses RF/t. On the following pages, you can see some additional useful recipes for inside the crusher. He's my crush @@ -600,7 +600,7 @@ booklet.actuallyadditions.chapter.aiots.text.1=An All-In-One-Tool is a booklet.actuallyadditions.chapter.jams.name=Jams booklet.actuallyadditions.chapter.jams.text.1=Once, there was a Kitty who really wanted some Jam. So I made some Jam. Seriously, this is Jam. You can find it in Village Houses or buy it from the Jam Villager. Every Jam gives you two different potion effects! booklet.actuallyadditions.chapter.jams.text.2=A Jam House and its inhabitant -booklet.actuallyadditions.chapter.jams.text.3=So. You're probably wondering what the names of the jams mean. Now, let me tell you: -Honeydew Melon and Kiwi -Honeydew Melon and Coconut -Pineapple and Coconut -Cherry, Apple and Cinnamon -Plum, Apple and Lemon -Grape, Kiwi and Banana -Currant, Banana and Raspberry Now, which one is which, you may ask? Figure it out yourself. +booklet.actuallyadditions.chapter.jams.text.3=So. You're probably wondering what the names of the jams mean. Now, let me tell you: -Honeydew Melon and Kiwi -Honeydew Melon and Coconut -Pineapple and Coconut -Cherry, Apple and Cinnamon -Plum, Apple and Lemon -Grape, Kiwi and Banana -Currant, Banana and Raspberry Now, which one is which, you may ask? Figure it out yourself. booklet.actuallyadditions.chapter.potionRings.name=Potion Rings booklet.actuallyadditions.chapter.potionRings.text.1=The Potion Rings have two versions: A normal version and an advanced version. The normal version, when you have it in your hand, will give you a Potion Effect of Level 1. The advanced version can be anywhere in your inventory and gives you an effect of Level 2!