From d63d97a992aa3264914fafd67994725254891bf1 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 18 Apr 2015 10:23:41 +0200 Subject: [PATCH] BuildCraft 7.0.1 Beta --- api/buildcraft/api/tablet/TabletAPI.java | 6 ++-- api/buildcraft/api/tablet/TabletBitmap.java | 4 +-- .../api/tablet/TabletProgramFactory.java | 3 -- buildcraft_resources/changelog/7.0.1 | 11 +++++++ common/buildcraft/BuildCraftBuilders.java | 2 +- common/buildcraft/BuildCraftCore.java | 6 ++-- common/buildcraft/BuildCraftTransport.java | 1 - common/buildcraft/builders/TileArchitect.java | 2 +- .../builders/TileConstructionMarker.java | 2 +- common/buildcraft/builders/TileQuarry.java | 3 +- .../core/builders/TileAbstractBuilder.java | 2 +- .../builders/schematics/SchematicFree.java | 2 -- .../core/config/BCConfigElement.java | 6 ++-- common/buildcraft/core/lib/utils/Utils.java | 4 +-- .../core/network/PacketHandlerCore.java | 2 -- common/buildcraft/core/tablet/GuiTablet.java | 10 +++--- common/buildcraft/core/tablet/ItemTablet.java | 3 -- common/buildcraft/core/tablet/TabletBase.java | 3 -- .../buildcraft/core/tablet/TabletClient.java | 2 -- .../core/tablet/TabletProgramMenu.java | 14 ++++---- .../buildcraft/core/tablet/TabletServer.java | 1 - .../core/tablet/manager/TabletThread.java | 1 - .../core/tablet/utils/TabletBitmapLoader.java | 2 +- .../core/tablet/utils/TabletDrawUtils.java | 2 +- .../core/tablet/utils/TabletFont.java | 9 +++--- .../core/tablet/utils/TabletTextUtils.java | 2 +- common/buildcraft/energy/TileEngineIron.java | 2 +- .../factory/BlockAutoWorkbench.java | 2 +- common/buildcraft/factory/BlockHopper.java | 2 +- .../factory/FactoryProxyClient.java | 2 -- common/buildcraft/factory/TileTank.java | 12 +++---- common/buildcraft/robotics/map/MapRegion.java | 1 - common/buildcraft/robotics/map/MapWorld.java | 3 +- .../transport/BlockFilteredBuffer.java | 2 +- common/buildcraft/transport/ItemPipe.java | 2 +- common/buildcraft/transport/PipeEventBus.java | 1 - .../transport/PipeTransportFluids.java | 1 - .../network/PacketHandlerTransport.java | 1 - .../transport/pipes/PipeFluidsDiamond.java | 2 -- .../pipes/events/PipeEventFluid.java | 1 - .../transport/render/PipeRendererTESR.java | 1 - guidelines/buildcraft.checkstyle | 2 +- misc/dist.sh | 30 ++++++++++++++++++ misc/genfont.sh | 8 +++++ misc/unused_textures/gear_obsidian_ALT.png | Bin 0 -> 3554 bytes 45 files changed, 96 insertions(+), 84 deletions(-) create mode 100755 misc/dist.sh create mode 100755 misc/genfont.sh create mode 100755 misc/unused_textures/gear_obsidian_ALT.png diff --git a/api/buildcraft/api/tablet/TabletAPI.java b/api/buildcraft/api/tablet/TabletAPI.java index cb32a52e..da337963 100644 --- a/api/buildcraft/api/tablet/TabletAPI.java +++ b/api/buildcraft/api/tablet/TabletAPI.java @@ -3,13 +3,13 @@ package buildcraft.api.tablet; import java.util.HashMap; import java.util.Map; -public class TabletAPI { +public final class TabletAPI { + private static final Map programs = new HashMap(); + private TabletAPI() { } - private static final Map programs = new HashMap(); - public static void registerProgram(TabletProgramFactory factory) { programs.put(factory.getName(), factory); } diff --git a/api/buildcraft/api/tablet/TabletBitmap.java b/api/buildcraft/api/tablet/TabletBitmap.java index a4bf1e3b..685690c5 100644 --- a/api/buildcraft/api/tablet/TabletBitmap.java +++ b/api/buildcraft/api/tablet/TabletBitmap.java @@ -41,13 +41,13 @@ public class TabletBitmap { if (h >= width) { break; } + set(x + h, y + i, bitmap.get(h, i)); } } } - @Override - public TabletBitmap clone() { + public TabletBitmap duplicate() { TabletBitmap cloned = new TabletBitmap(this.width, this.height); cloned.data = this.data.clone(); return cloned; diff --git a/api/buildcraft/api/tablet/TabletProgramFactory.java b/api/buildcraft/api/tablet/TabletProgramFactory.java index 69a7ed23..02f32dfb 100644 --- a/api/buildcraft/api/tablet/TabletProgramFactory.java +++ b/api/buildcraft/api/tablet/TabletProgramFactory.java @@ -1,8 +1,5 @@ package buildcraft.api.tablet; -import net.minecraft.nbt.NBTTagCompound; -import cpw.mods.fml.relauncher.Side; - public abstract class TabletProgramFactory { /** * Create an instance of the tablet program specified by this Factory. diff --git a/buildcraft_resources/changelog/7.0.1 b/buildcraft_resources/changelog/7.0.1 index f278edd4..65196609 100644 --- a/buildcraft_resources/changelog/7.0.1 +++ b/buildcraft_resources/changelog/7.0.1 @@ -16,9 +16,20 @@ Additions: Improvements: * [#2599] Stripes pipes don't move forward when using a non-item pipe (asie) * [#2567] Emzuli Pipes support lists now (asie) +* Improved the new Auto Workbench algorithm (asie) * Robot particle frequency is affected by Minecraft graphics settings (asie) +* Tons of robot improvements and refactors (hea3ven) Bugfixes: * [#2603} Assembly Table crashes without Robotics (asie) * [#2602] NPE when comparing two StatementSlots (asie) +* Error when loading a blueprint with invalid mappings (hea3ven) * Fixes to Fancy pipe connection rendering (asie) +* Likely some robot bugfixes I don't know of (hea3ven) +* Not being able to set blueprints to the construction markers (hea3ven) +* Pump client-side entity spam (asie) + +Breaking changes: +* Quarries are now part of Builders, not Factory. +* Robots can now only provide items and fluids from wooden/emerald pipes. +* The config file's name is different - it's main.cfg now - and we can't promise the config format not changing further as we go. diff --git a/common/buildcraft/BuildCraftBuilders.java b/common/buildcraft/BuildCraftBuilders.java index 9b44a39a..d72ff08e 100644 --- a/common/buildcraft/BuildCraftBuilders.java +++ b/common/buildcraft/BuildCraftBuilders.java @@ -103,7 +103,6 @@ import buildcraft.builders.schematics.SchematicFactoryEntity; import buildcraft.builders.schematics.SchematicFactoryMask; import buildcraft.builders.schematics.SchematicFarmland; import buildcraft.builders.schematics.SchematicFire; -import buildcraft.core.builders.schematics.SchematicFree; import buildcraft.builders.schematics.SchematicGlassPane; import buildcraft.builders.schematics.SchematicGravel; import buildcraft.builders.schematics.SchematicHanging; @@ -144,6 +143,7 @@ import buildcraft.core.builders.patterns.PatternParameterYDir; import buildcraft.core.builders.patterns.PatternPyramid; import buildcraft.core.builders.patterns.PatternStairs; import buildcraft.core.builders.schematics.SchematicBlockCreative; +import buildcraft.core.builders.schematics.SchematicFree; import buildcraft.core.builders.schematics.SchematicIgnore; import buildcraft.core.builders.schematics.SchematicRotateMeta; import buildcraft.core.builders.schematics.SchematicStandalone; diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index 0b8d3ef5..7cf3fabf 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -37,7 +37,6 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -81,8 +80,6 @@ import buildcraft.core.ItemList; import buildcraft.core.ItemMapLocation; import buildcraft.core.ItemPaintbrush; import buildcraft.core.ItemSpring; -import buildcraft.core.network.PacketHandlerCore; -import buildcraft.core.tablet.ItemTablet; import buildcraft.core.ItemWrench; import buildcraft.core.SchematicEngine; import buildcraft.core.SpringPopulate; @@ -95,9 +92,9 @@ import buildcraft.core.config.ConfigManager; import buildcraft.core.lib.engines.ItemEngine; import buildcraft.core.lib.engines.TileEngineBase; import buildcraft.core.lib.network.ChannelHandler; -import buildcraft.core.lib.network.PacketHandler; import buildcraft.core.lib.utils.ColorUtils; import buildcraft.core.lib.utils.NBTUtils; +import buildcraft.core.network.PacketHandlerCore; import buildcraft.core.properties.WorldPropertyIsDirt; import buildcraft.core.properties.WorldPropertyIsFarmland; import buildcraft.core.properties.WorldPropertyIsFluidSource; @@ -126,6 +123,7 @@ import buildcraft.core.statements.TriggerInventory; import buildcraft.core.statements.TriggerInventoryLevel; import buildcraft.core.statements.TriggerMachine; import buildcraft.core.statements.TriggerRedstoneInput; +import buildcraft.core.tablet.ItemTablet; import buildcraft.core.tablet.PacketTabletMessage; import buildcraft.core.tablet.TabletProgramMenuFactory; import buildcraft.core.tablet.manager.TabletManagerClient; diff --git a/common/buildcraft/BuildCraftTransport.java b/common/buildcraft/BuildCraftTransport.java index 17e29f45..0ccfd8b2 100644 --- a/common/buildcraft/BuildCraftTransport.java +++ b/common/buildcraft/BuildCraftTransport.java @@ -49,7 +49,6 @@ import buildcraft.api.blueprints.BuilderAPI; import buildcraft.api.core.BCLog; import buildcraft.api.core.EnumColor; import buildcraft.api.core.IIconProvider; -import buildcraft.api.core.JavaTools; import buildcraft.api.facades.FacadeAPI; import buildcraft.api.gates.GateExpansions; import buildcraft.api.gates.IGateExpansion; diff --git a/common/buildcraft/builders/TileArchitect.java b/common/buildcraft/builders/TileArchitect.java index 1529988c..ec83f2d6 100644 --- a/common/buildcraft/builders/TileArchitect.java +++ b/common/buildcraft/builders/TileArchitect.java @@ -27,9 +27,9 @@ import buildcraft.api.core.Position; import buildcraft.builders.blueprints.RecursiveBlueprintReader; import buildcraft.core.Box; import buildcraft.core.Box.Kind; -import buildcraft.core.internal.IBoxProvider; import buildcraft.core.LaserData; import buildcraft.core.blueprints.BlueprintReadConfiguration; +import buildcraft.core.internal.IBoxProvider; import buildcraft.core.lib.block.TileBuildCraft; import buildcraft.core.lib.inventory.SimpleInventory; import buildcraft.core.lib.network.Packet; diff --git a/common/buildcraft/builders/TileConstructionMarker.java b/common/buildcraft/builders/TileConstructionMarker.java index ef98fb8b..0551fbdc 100755 --- a/common/buildcraft/builders/TileConstructionMarker.java +++ b/common/buildcraft/builders/TileConstructionMarker.java @@ -21,7 +21,6 @@ import buildcraft.BuildCraftCore; import buildcraft.api.core.Position; import buildcraft.core.Box; import buildcraft.core.Box.Kind; -import buildcraft.core.internal.IBoxProvider; import buildcraft.core.LaserData; import buildcraft.core.blueprints.Blueprint; import buildcraft.core.blueprints.BlueprintBase; @@ -30,6 +29,7 @@ import buildcraft.core.blueprints.BptBuilderBlueprint; import buildcraft.core.blueprints.BptContext; import buildcraft.core.builders.BuildingItem; import buildcraft.core.builders.IBuildingItemsProvider; +import buildcraft.core.internal.IBoxProvider; import buildcraft.core.lib.block.TileBuildCraft; import buildcraft.core.lib.network.Packet; import buildcraft.core.lib.network.command.CommandWriter; diff --git a/common/buildcraft/builders/TileQuarry.java b/common/buildcraft/builders/TileQuarry.java index 172e75c7..ad3f2173 100644 --- a/common/buildcraft/builders/TileQuarry.java +++ b/common/buildcraft/builders/TileQuarry.java @@ -31,7 +31,6 @@ import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.BuilderAPI; import buildcraft.api.core.BuildCraftAPI; import buildcraft.api.core.IAreaProvider; @@ -46,12 +45,12 @@ import buildcraft.core.Box; import buildcraft.core.Box.Kind; import buildcraft.core.CoreConstants; import buildcraft.core.DefaultAreaProvider; -import buildcraft.core.internal.IDropControlInventory; import buildcraft.core.blueprints.Blueprint; import buildcraft.core.blueprints.BptBuilderBase; import buildcraft.core.blueprints.BptBuilderBlueprint; import buildcraft.core.builders.TileAbstractBuilder; import buildcraft.core.builders.patterns.FillerPattern; +import buildcraft.core.internal.IDropControlInventory; import buildcraft.core.lib.RFBattery; import buildcraft.core.lib.utils.BlockMiner; import buildcraft.core.lib.utils.BlockUtils; diff --git a/common/buildcraft/core/builders/TileAbstractBuilder.java b/common/buildcraft/core/builders/TileAbstractBuilder.java index 1fa7e54a..f2dcd7fa 100755 --- a/common/buildcraft/core/builders/TileAbstractBuilder.java +++ b/common/buildcraft/core/builders/TileAbstractBuilder.java @@ -21,8 +21,8 @@ import net.minecraftforge.fluids.FluidStack; import buildcraft.BuildCraftCore; import buildcraft.api.blueprints.BuilderAPI; import buildcraft.api.blueprints.ITileBuilder; -import buildcraft.core.internal.IBoxProvider; import buildcraft.core.LaserData; +import buildcraft.core.internal.IBoxProvider; import buildcraft.core.lib.RFBattery; import buildcraft.core.lib.block.TileBuildCraft; import buildcraft.core.lib.network.Packet; diff --git a/common/buildcraft/core/builders/schematics/SchematicFree.java b/common/buildcraft/core/builders/schematics/SchematicFree.java index a5d812b7..61e8211e 100644 --- a/common/buildcraft/core/builders/schematics/SchematicFree.java +++ b/common/buildcraft/core/builders/schematics/SchematicFree.java @@ -9,8 +9,6 @@ package buildcraft.core.builders.schematics; import java.util.LinkedList; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.SchematicBlock; diff --git a/common/buildcraft/core/config/BCConfigElement.java b/common/buildcraft/core/config/BCConfigElement.java index 0b6889b4..94db7aaf 100644 --- a/common/buildcraft/core/config/BCConfigElement.java +++ b/common/buildcraft/core/config/BCConfigElement.java @@ -24,8 +24,7 @@ public class BCConfigElement extends ConfigElement { } @Override - public List getChildElements() - { + public List getChildElements() { if (!isProp) { List elements = new ArrayList(); Iterator ccI = cat.getChildren().iterator(); @@ -43,8 +42,7 @@ public class BCConfigElement extends ConfigElement { } } - while (pI.hasNext()) - { + while (pI.hasNext()) { ConfigElement temp = getTypedElement(pI.next()); if (temp.showInGui()) { elements.add(temp); diff --git a/common/buildcraft/core/lib/utils/Utils.java b/common/buildcraft/core/lib/utils/Utils.java index ace0ab9b..c28455d7 100644 --- a/common/buildcraft/core/lib/utils/Utils.java +++ b/common/buildcraft/core/lib/utils/Utils.java @@ -36,10 +36,10 @@ import buildcraft.api.transport.IInjectable; import buildcraft.api.transport.IPipeTile; import buildcraft.core.CompatHooks; import buildcraft.core.DefaultProps; -import buildcraft.core.internal.IDropControlInventory; -import buildcraft.core.internal.IFramePipeConnection; import buildcraft.core.LaserData; import buildcraft.core.LaserKind; +import buildcraft.core.internal.IDropControlInventory; +import buildcraft.core.internal.IFramePipeConnection; import buildcraft.core.lib.EntityBlock; import buildcraft.core.lib.block.TileBuildCraft; import buildcraft.core.lib.inventory.ITransactor; diff --git a/common/buildcraft/core/network/PacketHandlerCore.java b/common/buildcraft/core/network/PacketHandlerCore.java index 463d860a..323f7b5c 100644 --- a/common/buildcraft/core/network/PacketHandlerCore.java +++ b/common/buildcraft/core/network/PacketHandlerCore.java @@ -1,13 +1,11 @@ package buildcraft.core.network; import io.netty.channel.ChannelHandlerContext; -import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; -import buildcraft.BuildCraftCore; import buildcraft.core.lib.network.Packet; import buildcraft.core.lib.network.PacketHandler; import buildcraft.core.proxy.CoreProxy; diff --git a/common/buildcraft/core/tablet/GuiTablet.java b/common/buildcraft/core/tablet/GuiTablet.java index 5a2f57b6..27c27db9 100644 --- a/common/buildcraft/core/tablet/GuiTablet.java +++ b/common/buildcraft/core/tablet/GuiTablet.java @@ -29,7 +29,7 @@ public class GuiTablet extends GuiScreen { private final TabletClient tablet; private int guiLeft, guiTop; private long lastDate; - private float GL_SCALE = 1.0f; + private float glScale = 1.0f; private int buttonState = 1; public GuiTablet(EntityPlayer player) { @@ -59,7 +59,7 @@ public class GuiTablet extends GuiScreen { ScaledResolution currentRes = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); mc.gameSettings.guiScale = oldScale; - GL_SCALE = (float) (currentRes.getScaledWidth_double() / realRes.getScaledWidth_double()); + glScale = (float) (currentRes.getScaledWidth_double() / realRes.getScaledWidth_double()); this.guiLeft = (currentRes.getScaledWidth() - X_SIZE) / 2; this.guiTop = (currentRes.getScaledHeight() - Y_SIZE) / 2; @@ -92,8 +92,8 @@ public class GuiTablet extends GuiScreen { @Override public void handleMouseInput() { - int x = (int) (Mouse.getEventX() * this.width / this.mc.displayWidth * GL_SCALE); - int y = (int) ((this.height - Mouse.getEventY() * this.height / this.mc.displayHeight - 1) * GL_SCALE); + int x = (int) (Mouse.getEventX() * this.width / this.mc.displayWidth * glScale); + int y = (int) ((this.height - Mouse.getEventY() * this.height / this.mc.displayHeight - 1) * glScale); int k = Mouse.getEventButton(); if (k == 0) { @@ -124,7 +124,7 @@ public class GuiTablet extends GuiScreen { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPushMatrix(); - GL11.glScalef(1.0F / GL_SCALE, 1.0F / GL_SCALE, 1.0F / GL_SCALE); + GL11.glScalef(1.0F / glScale, 1.0F / glScale, 1.0F / glScale); bindTexture(TEXTURE); drawTexturedModalRect(guiLeft, guiTop, 0, 0, X_SIZE, Y_SIZE); diff --git a/common/buildcraft/core/tablet/ItemTablet.java b/common/buildcraft/core/tablet/ItemTablet.java index c34df5b8..dbc76af8 100644 --- a/common/buildcraft/core/tablet/ItemTablet.java +++ b/common/buildcraft/core/tablet/ItemTablet.java @@ -4,10 +4,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import cpw.mods.fml.common.FMLCommonHandler; -import buildcraft.BuildCraftCore; -import buildcraft.core.GuiIds; import buildcraft.core.lib.items.ItemBuildCraft; -import buildcraft.core.lib.utils.NBTUtils; import buildcraft.core.tablet.manager.TabletManagerServer; public class ItemTablet extends ItemBuildCraft { diff --git a/common/buildcraft/core/tablet/TabletBase.java b/common/buildcraft/core/tablet/TabletBase.java index d079e3a7..1405e201 100644 --- a/common/buildcraft/core/tablet/TabletBase.java +++ b/common/buildcraft/core/tablet/TabletBase.java @@ -2,12 +2,9 @@ package buildcraft.core.tablet; import java.util.LinkedList; import net.minecraft.nbt.NBTTagCompound; -import cpw.mods.fml.relauncher.Side; -import buildcraft.BuildCraftCore; import buildcraft.api.core.BCLog; import buildcraft.api.tablet.ITablet; import buildcraft.api.tablet.TabletAPI; -import buildcraft.api.tablet.TabletBitmap; import buildcraft.api.tablet.TabletProgram; import buildcraft.api.tablet.TabletProgramFactory; diff --git a/common/buildcraft/core/tablet/TabletClient.java b/common/buildcraft/core/tablet/TabletClient.java index 28250b23..a28dc0ab 100644 --- a/common/buildcraft/core/tablet/TabletClient.java +++ b/common/buildcraft/core/tablet/TabletClient.java @@ -1,7 +1,5 @@ package buildcraft.core.tablet; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.nbt.NBTTagCompound; import cpw.mods.fml.relauncher.Side; import buildcraft.BuildCraftCore; diff --git a/common/buildcraft/core/tablet/TabletProgramMenu.java b/common/buildcraft/core/tablet/TabletProgramMenu.java index 943212ae..b9008fff 100644 --- a/common/buildcraft/core/tablet/TabletProgramMenu.java +++ b/common/buildcraft/core/tablet/TabletProgramMenu.java @@ -1,7 +1,5 @@ package buildcraft.core.tablet; -import java.util.ArrayList; -import java.util.List; import cpw.mods.fml.relauncher.Side; import buildcraft.api.tablet.ITablet; import buildcraft.api.tablet.TabletBitmap; @@ -21,7 +19,7 @@ public class TabletProgramMenu extends TabletProgram { } public void tick(float time) { - t+=time; + t += time; if (!init && t > 2 && tablet.getSide() == Side.CLIENT) { TabletBitmap bitmap = new TabletBitmap(244, 306); try { @@ -30,10 +28,10 @@ public class TabletProgramMenu extends TabletProgram { TabletDrawUtils.drawRect(bitmap, 4, 4, 236, 280, 7); int hxo = (244 - font.getStringWidth("Page 1")) / 2; font.draw(bitmap, "Page 2/4", hxo, 287, 5); - int XO = 8; + int xo = 8; int y = 8; - int W = 228; - String[] lines = TabletTextUtils.split(lorem, font, W, false); + int w = 228; + String[] lines = TabletTextUtils.split(lorem, font, w, false); for (int i = 0; i < lines.length; i++) { String line = lines[i]; String[] words = line.split(" "); @@ -43,9 +41,9 @@ public class TabletProgramMenu extends TabletProgram { for (String s : words) { widthNoSpaces += font.getStringWidth(s); } - justifyValue = (W - widthNoSpaces) / (float) (words.length - 1); + justifyValue = (w - widthNoSpaces) / (float) (words.length - 1); } - float x = XO; + float x = xo; for (String s: words) { x += font.draw(bitmap, s, (int) x, y, 7); x += justifyValue; diff --git a/common/buildcraft/core/tablet/TabletServer.java b/common/buildcraft/core/tablet/TabletServer.java index 003a97ea..46fd886f 100644 --- a/common/buildcraft/core/tablet/TabletServer.java +++ b/common/buildcraft/core/tablet/TabletServer.java @@ -5,7 +5,6 @@ import net.minecraft.nbt.NBTTagCompound; import cpw.mods.fml.relauncher.Side; import buildcraft.BuildCraftCore; import buildcraft.api.tablet.TabletBitmap; -import buildcraft.api.tablet.TabletProgram; public class TabletServer extends TabletBase { protected final EntityPlayer player; diff --git a/common/buildcraft/core/tablet/manager/TabletThread.java b/common/buildcraft/core/tablet/manager/TabletThread.java index a2dd50b1..ef5e09e2 100644 --- a/common/buildcraft/core/tablet/manager/TabletThread.java +++ b/common/buildcraft/core/tablet/manager/TabletThread.java @@ -1,7 +1,6 @@ package buildcraft.core.tablet.manager; import java.util.Date; -import cpw.mods.fml.relauncher.Side; import buildcraft.core.tablet.TabletBase; public class TabletThread implements Runnable { diff --git a/common/buildcraft/core/tablet/utils/TabletBitmapLoader.java b/common/buildcraft/core/tablet/utils/TabletBitmapLoader.java index cd45fc47..c6015012 100644 --- a/common/buildcraft/core/tablet/utils/TabletBitmapLoader.java +++ b/common/buildcraft/core/tablet/utils/TabletBitmapLoader.java @@ -3,7 +3,7 @@ package buildcraft.core.tablet.utils; import java.io.InputStream; import buildcraft.api.tablet.TabletBitmap; -public class TabletBitmapLoader { +public final class TabletBitmapLoader { private TabletBitmapLoader() { } diff --git a/common/buildcraft/core/tablet/utils/TabletDrawUtils.java b/common/buildcraft/core/tablet/utils/TabletDrawUtils.java index aae16826..35311959 100644 --- a/common/buildcraft/core/tablet/utils/TabletDrawUtils.java +++ b/common/buildcraft/core/tablet/utils/TabletDrawUtils.java @@ -2,7 +2,7 @@ package buildcraft.core.tablet.utils; import buildcraft.api.tablet.TabletBitmap; -public class TabletDrawUtils { +public final class TabletDrawUtils { private TabletDrawUtils() { } diff --git a/common/buildcraft/core/tablet/utils/TabletFont.java b/common/buildcraft/core/tablet/utils/TabletFont.java index 6ef9fdef..dca2cc67 100644 --- a/common/buildcraft/core/tablet/utils/TabletFont.java +++ b/common/buildcraft/core/tablet/utils/TabletFont.java @@ -1,13 +1,12 @@ package buildcraft.core.tablet.utils; -import gnu.trove.map.TIntObjectMap; -import gnu.trove.map.hash.TIntObjectHashMap; - import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import gnu.trove.map.TIntObjectMap; +import gnu.trove.map.hash.TIntObjectHashMap; import buildcraft.api.tablet.TabletBitmap; public final class TabletFont { @@ -90,9 +89,9 @@ public final class TabletFont { if ("FAMI".equals(section)) { this.family = readString(stream, sectionLength); } else if ("WEIG".equals(section)) { - this.isBold = readString(stream, sectionLength).equals("bold"); + this.isBold = "bold".equals(readString(stream, sectionLength)); } else if ("SLAN".equals(section)) { - this.isItalic = readString(stream, sectionLength).equals("italic"); + this.isItalic = "italic".equals(readString(stream, sectionLength)); } else if ("PTSZ".equals(section)) { this.pointSize = readUnsignedShort(stream); } else if ("MAXW".equals(section)) { diff --git a/common/buildcraft/core/tablet/utils/TabletTextUtils.java b/common/buildcraft/core/tablet/utils/TabletTextUtils.java index 7bb02136..652fed1b 100644 --- a/common/buildcraft/core/tablet/utils/TabletTextUtils.java +++ b/common/buildcraft/core/tablet/utils/TabletTextUtils.java @@ -3,7 +3,7 @@ package buildcraft.core.tablet.utils; import java.util.ArrayList; import java.util.List; -public class TabletTextUtils { +public final class TabletTextUtils { private TabletTextUtils() { } diff --git a/common/buildcraft/energy/TileEngineIron.java b/common/buildcraft/energy/TileEngineIron.java index 2580dcc1..ef33bd59 100644 --- a/common/buildcraft/energy/TileEngineIron.java +++ b/common/buildcraft/energy/TileEngineIron.java @@ -27,8 +27,8 @@ import buildcraft.api.fuels.BuildcraftFuelRegistry; import buildcraft.api.fuels.ICoolant; import buildcraft.api.fuels.IFuel; import buildcraft.api.fuels.ISolidCoolant; -import buildcraft.core.GuiIds; import buildcraft.api.transport.IItemPipe; +import buildcraft.core.GuiIds; import buildcraft.core.lib.engines.TileEngineWithInventory; import buildcraft.core.lib.fluids.Tank; import buildcraft.core.lib.fluids.TankManager; diff --git a/common/buildcraft/factory/BlockAutoWorkbench.java b/common/buildcraft/factory/BlockAutoWorkbench.java index 9a77d68b..329cc011 100644 --- a/common/buildcraft/factory/BlockAutoWorkbench.java +++ b/common/buildcraft/factory/BlockAutoWorkbench.java @@ -13,8 +13,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import buildcraft.BuildCraftFactory; -import buildcraft.core.GuiIds; import buildcraft.api.transport.IItemPipe; +import buildcraft.core.GuiIds; import buildcraft.core.lib.block.BlockBuildCraft; public class BlockAutoWorkbench extends BlockBuildCraft { diff --git a/common/buildcraft/factory/BlockHopper.java b/common/buildcraft/factory/BlockHopper.java index 5a94c1e5..05372c1e 100644 --- a/common/buildcraft/factory/BlockHopper.java +++ b/common/buildcraft/factory/BlockHopper.java @@ -18,8 +18,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; -import buildcraft.core.GuiIds; import buildcraft.api.transport.IItemPipe; +import buildcraft.core.GuiIds; import buildcraft.core.lib.block.BlockBuildCraft; public class BlockHopper extends BlockBuildCraft { diff --git a/common/buildcraft/factory/FactoryProxyClient.java b/common/buildcraft/factory/FactoryProxyClient.java index 729ca7a3..a95e0031 100644 --- a/common/buildcraft/factory/FactoryProxyClient.java +++ b/common/buildcraft/factory/FactoryProxyClient.java @@ -12,11 +12,9 @@ import java.lang.reflect.Method; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; import buildcraft.BuildCraftFactory; import buildcraft.api.core.BCLog; import buildcraft.core.lib.EntityBlock; -import buildcraft.core.lib.render.RenderVoid; import buildcraft.core.render.RenderingEntityBlocks; import buildcraft.core.render.RenderingEntityBlocks.EntityRenderIndex; import buildcraft.factory.gui.GuiAutoCrafting; diff --git a/common/buildcraft/factory/TileTank.java b/common/buildcraft/factory/TileTank.java index b1341851..91621bae 100644 --- a/common/buildcraft/factory/TileTank.java +++ b/common/buildcraft/factory/TileTank.java @@ -43,11 +43,11 @@ public class TileTank extends TileBuildCraft implements IFluidHandler { protected void updateComparators() { int co = calculateComparatorInputOverride(); - TileTank tank = getBottomTank(); - while (tank != null) { - tank.cachedComparatorOverride = co; - tank.hasUpdate = true; - tank = getTankAbove(tank); + TileTank uTank = getBottomTank(); + while (uTank != null) { + uTank.cachedComparatorOverride = co; + uTank.hasUpdate = true; + uTank = getTankAbove(uTank); } } @@ -296,7 +296,7 @@ public class TileTank extends TileBuildCraft implements IFluidHandler { public int calculateComparatorInputOverride() { FluidTankInfo[] info = getTankInfo(ForgeDirection.UNKNOWN); if (info.length > 0 && info[0] != null && info[0].fluid != null) { - return (info[0].fluid.amount * 15 / info[0].capacity); + return info[0].fluid.amount * 15 / info[0].capacity; } else { return 0; } diff --git a/common/buildcraft/robotics/map/MapRegion.java b/common/buildcraft/robotics/map/MapRegion.java index 66dc6ea6..96aafb4b 100644 --- a/common/buildcraft/robotics/map/MapRegion.java +++ b/common/buildcraft/robotics/map/MapRegion.java @@ -1,7 +1,6 @@ package buildcraft.robotics.map; import gnu.trove.map.hash.TIntObjectHashMap; - import net.minecraft.nbt.NBTTagCompound; import buildcraft.api.core.INBTStoreable; diff --git a/common/buildcraft/robotics/map/MapWorld.java b/common/buildcraft/robotics/map/MapWorld.java index d95b20d8..5313f006 100644 --- a/common/buildcraft/robotics/map/MapWorld.java +++ b/common/buildcraft/robotics/map/MapWorld.java @@ -1,7 +1,5 @@ package buildcraft.robotics.map; -import gnu.trove.map.hash.TLongObjectHashMap; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -14,6 +12,7 @@ import java.util.Iterator; import java.util.PriorityQueue; import java.util.Queue; import java.util.Set; +import gnu.trove.map.hash.TLongObjectHashMap; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import buildcraft.core.lib.utils.NBTUtils; diff --git a/common/buildcraft/transport/BlockFilteredBuffer.java b/common/buildcraft/transport/BlockFilteredBuffer.java index 44504180..ead9d2fd 100644 --- a/common/buildcraft/transport/BlockFilteredBuffer.java +++ b/common/buildcraft/transport/BlockFilteredBuffer.java @@ -13,8 +13,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import buildcraft.BuildCraftTransport; -import buildcraft.core.GuiIds; import buildcraft.api.transport.IItemPipe; +import buildcraft.core.GuiIds; import buildcraft.core.lib.block.BlockBuildCraft; public class BlockFilteredBuffer extends BlockBuildCraft { diff --git a/common/buildcraft/transport/ItemPipe.java b/common/buildcraft/transport/ItemPipe.java index 60e62f22..838325bb 100644 --- a/common/buildcraft/transport/ItemPipe.java +++ b/common/buildcraft/transport/ItemPipe.java @@ -24,8 +24,8 @@ import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftTransport; import buildcraft.api.core.BCLog; import buildcraft.api.core.IIconProvider; -import buildcraft.core.BCCreativeTab; import buildcraft.api.transport.IItemPipe; +import buildcraft.core.BCCreativeTab; import buildcraft.core.lib.items.ItemBuildCraft; import buildcraft.core.lib.utils.ColorUtils; import buildcraft.core.lib.utils.StringUtils; diff --git a/common/buildcraft/transport/PipeEventBus.java b/common/buildcraft/transport/PipeEventBus.java index 8cb3b9c6..e5d3bdb1 100644 --- a/common/buildcraft/transport/PipeEventBus.java +++ b/common/buildcraft/transport/PipeEventBus.java @@ -8,7 +8,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; - import buildcraft.transport.pipes.events.PipeEvent; import buildcraft.transport.pipes.events.PipeEventPriority; diff --git a/common/buildcraft/transport/PipeTransportFluids.java b/common/buildcraft/transport/PipeTransportFluids.java index 2bdb2c73..5ecd38a9 100644 --- a/common/buildcraft/transport/PipeTransportFluids.java +++ b/common/buildcraft/transport/PipeTransportFluids.java @@ -8,7 +8,6 @@ */ package buildcraft.transport; -import java.util.ArrayList; import java.util.BitSet; import java.util.HashMap; import java.util.Map; diff --git a/common/buildcraft/transport/network/PacketHandlerTransport.java b/common/buildcraft/transport/network/PacketHandlerTransport.java index 022deacf..03f936ce 100644 --- a/common/buildcraft/transport/network/PacketHandlerTransport.java +++ b/common/buildcraft/transport/network/PacketHandlerTransport.java @@ -10,7 +10,6 @@ package buildcraft.transport.network; import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.SimpleChannelInboundHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetHandler; import net.minecraft.tileentity.TileEntity; diff --git a/common/buildcraft/transport/pipes/PipeFluidsDiamond.java b/common/buildcraft/transport/pipes/PipeFluidsDiamond.java index 0cf7a46a..2982d1d5 100644 --- a/common/buildcraft/transport/pipes/PipeFluidsDiamond.java +++ b/common/buildcraft/transport/pipes/PipeFluidsDiamond.java @@ -8,9 +8,7 @@ */ package buildcraft.transport.pipes; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; diff --git a/common/buildcraft/transport/pipes/events/PipeEventFluid.java b/common/buildcraft/transport/pipes/events/PipeEventFluid.java index a57c7c09..82b304c9 100644 --- a/common/buildcraft/transport/pipes/events/PipeEventFluid.java +++ b/common/buildcraft/transport/pipes/events/PipeEventFluid.java @@ -1,6 +1,5 @@ package buildcraft.transport.pipes.events; -import java.util.List; import com.google.common.collect.Multiset; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; diff --git a/common/buildcraft/transport/render/PipeRendererTESR.java b/common/buildcraft/transport/render/PipeRendererTESR.java index f182cb41..2ad50a37 100644 --- a/common/buildcraft/transport/render/PipeRendererTESR.java +++ b/common/buildcraft/transport/render/PipeRendererTESR.java @@ -27,7 +27,6 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; - import buildcraft.BuildCraftCore; import buildcraft.BuildCraftCore.RenderMode; import buildcraft.BuildCraftTransport; diff --git a/guidelines/buildcraft.checkstyle b/guidelines/buildcraft.checkstyle index 1a53d181..fd2579c1 100755 --- a/guidelines/buildcraft.checkstyle +++ b/guidelines/buildcraft.checkstyle @@ -24,7 +24,7 @@ - + diff --git a/misc/dist.sh b/misc/dist.sh new file mode 100755 index 00000000..327b0a5c --- /dev/null +++ b/misc/dist.sh @@ -0,0 +1,30 @@ +# This script requires a copy of pngout and kzip. +# THIS SCRIPT IS HIGHLY TEMPORARY - SHOULD BE REPLACED WITH A GRADLE VERSION + +#!/bin/sh +rm -rf dist +mkdir -p dist/tmp +mkdir -p dist/misc +mkdir -p dist/modules +cd dist +cp ../build/libs/buildcraft-$1* . +cd tmp +unzip ../../build/libs/buildcraft-$1.jar +rm ../buildcraft-$1.jar + +for i in `find -name *.png`; do ../../tools/pngout "$i"; done +../../tools/kzip -r -y ../buildcraft-$1.jar * + +../../tools/kzip -r -y ../modules/buildcraft-$1-core.jar assets/buildcraft assets/buildcraftcore buildcraft/BuildCraftCore* buildcraft/core \ + buildcraft/BuildCraftMod* buildcraft/api \ + cofh LICENSE* changelog mcmod.info versions.txt +../../tools/kzip -r -y ../modules/buildcraft-$1-builders.jar assets/buildcraftbuilders buildcraft/BuildCraftBuilders* buildcraft/builders LICENSE +../../tools/kzip -r -y ../modules/buildcraft-$1-energy.jar assets/buildcraftenergy buildcraft/BuildCraftEnergy* buildcraft/energy LICENSE +../../tools/kzip -r -y ../modules/buildcraft-$1-factory.jar assets/buildcraftfactory buildcraft/BuildCraftFactory* buildcraft/factory LICENSE +../../tools/kzip -r -y ../modules/buildcraft-$1-robotics.jar assets/buildcraftrobotics buildcraft/BuildCraftRobotics* buildcraft/robotics LICENSE +../../tools/kzip -r -y ../modules/buildcraft-$1-silicon.jar assets/buildcraftsilicon buildcraft/BuildCraftSilicon* buildcraft/silicon LICENSE +../../tools/kzip -r -y ../modules/buildcraft-$1-transport.jar assets/buildcrafttransport buildcraft/BuildCraftTransport* buildcraft/transport LICENSE + +cd .. +rm -rf tmp +cd .. diff --git a/misc/genfont.sh b/misc/genfont.sh new file mode 100755 index 00000000..a67116f9 --- /dev/null +++ b/misc/genfont.sh @@ -0,0 +1,8 @@ +#!/bin/sh +cd .. +tools/mkfont -r 0-383,1024-1119 \ + -o buildcraft_resources/assets/buildcraftcore/tablet/11.pf2 \ +-s 11 /usr/share/fonts/TTF/DejaVuSans.ttf +tools/mkfont -r 0-383,1024-1119 \ + -o buildcraft_resources/assets/buildcraftcore/tablet/16.pf2 \ +-s 16 /usr/share/fonts/TTF/DejaVuSans.ttf diff --git a/misc/unused_textures/gear_obsidian_ALT.png b/misc/unused_textures/gear_obsidian_ALT.png new file mode 100755 index 0000000000000000000000000000000000000000..27a2dbc10b41a11be33fe175daae1a05d9569874 GIT binary patch literal 3554 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 literal 0 HcmV?d00001