1acf4ba5b5
There existed a race condition where either the client could pass an item from one pipe to another (with intact ItemStack NBT data) or a packet could arrive from the server to inject the item into the pipe (without NBT data). This resulted in incorrect Icons being occasionally displayed for a moment for Items that use NBT to determine the Icon (Forestry Bees/Trees). To eliminate this race condition, all Traveling Items are now cached (weakly) and ItemStacks are no longer sent as part of the Traveler Packet. The client must instead request the ItemStack from the server. The bonus being that the ItemStack (NBT and all) needs only be requested when it first enters the network. This also has the affect of further reducing bandwidth usage by Item pipes, though it should be noted that Item pipes where already the least bandwidth intensive pipe. Additionally I rewrote the Item Grouping code. I'd never looked at it before, but I figured I should make sure it properly maintains the pipe state after grouping. What I found was 200 lines of wtf code that was horribly outdated and broken. I replaced it with 20 lines of code that are less dependent on implementation details of how pipes work. -.- |
||
---|---|---|
buildcraft_resources | ||
common/buildcraft | ||
.classpath | ||
.gitattributes | ||
.gitignore | ||
.project | ||
build.xml | ||
README.md |
Welcome to Buildcraft on GitHub
Contributing
If you wish to submit a pull request to fix bugs or broken behaviour feel free to do so. If you would like to add features or change existing behaviour or balance, please discuss it with Sengir or Krapht before submiting the pull request.
Do not submit pull requests which solely "fix" formatting. As these kinds of changes are usually very intrusive in commit history and everyone has their own idea what "proper formatting" is, they should be done by one of the main contributors. Please only submit "code cleanup", if the changes actually have a substantial impact on readability.
Reporting issues
- Before reporting an issue, please check that it has not been reported before.
- Issues are for bugs/crashes, please do not use them to ask general questions.
- Always include the version you are having trouble with. Or if you're building from source, which source you're building. If you don't, we might assume that you are using latest-greatest and waste a bunch of time trying to reproduce a problem that might have fixed been already. Such things makes for very grumpy devs. Grumpy devs spend less time coding and more time doing stuff that makes them less grumpy.
- If the issues occurs on a server, be sure it's a vanilla forge server and not a mcpc+ server.
- Issues with any logs mentioning Optifine will be closed on sight! Remove Optifine before reporting any issue.
Frequently reported
- java.lang.AbstractMethodError - Incompatibility between BC/Forge/Mod using BC API. Usually not a BC issue
- java.lang.NoSuchMethodException - Same as above
- Render issue (Quarry causes flickering) - Try without optifine, if it still flickers, report it
Compiling and packaging Buildcraft
- Linux users will need the latest version of astyle installed as well.
- Create a base directory for the build
- Clone the Buildcraft repository into
basedir/BuildCraft/
- Optional: Copy BuildCraft localization repository into
basedir/BuildCraft-Localization
- Navigate to basedir/Buildcraft in a shell and run
ant
(this will take 2-5 minutes) - The compiled and obfuscated jar will be in basedir/bin
Your directory structure should look like this before running ant:
basedir
\- buildcraft
|- buildcraft_resources
|- common
|- ...
\- buildcraft.localization
|- lang
And like this after running ant:
basedir
\- buildcraft
|- bin
|- build
|- buildcraft_resources
|- common
|- download
|- ...
\- buildcraft.localization
|- lang
Localizations
Localizations can be submitted here. Localization PRs against this repository will have to be rejected.