MCPcopy Index your code
hub / github.com/BuildCraft/BuildCraft

github.com/BuildCraft/BuildCraft @8.0.x-before-merge

Chat with this repo
repository ↗ · DeepWiki ↗ · release 8.0.x-before-merge ↗ · + Follow
12,559 symbols 36,502 edges 1,608 files 465 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Welcome to Buildcraft on GitHub

Reporting an issue

Please open an issue for a bug report only if:

  • you are sure the bug is caused by BuildCraft and not by any other mod,
  • you have at least one of the following:
  • a crash report,
  • means of reproducing the bug in question,
  • screenshots/videos/etc. to demonstrate the bug.

If you are not sure if a bug report is valid, please use the "Ask Help!" subforum.

Please only use official BuildCraft releases for any kind of bug reports unless otherwise told to do by the BuildCraft team. Custom builds (for instance from Jenkins) are unsupported, often buggy and will not get any support from the developers.

Please check if the bug has been reported beforehand. Also, provide the version of BuildCraft used - if it's a version compiled from source, link to the commit/tree you complied from.

Please mention if you are using MCPC+, Cauldron, OptiFine, FastCraft or any other mods which optimize or otherwise severely modify the functioning of the Minecraft engine. That is very helpful when trying to reproduce a bug.

Please do not open issues for features unless you are a member of the BuildCraft team. For that, use the "Feature Requests" subforum.

BuildCraft, being an open-source project, gives you the right to submit a pull request if a particular fix or feature is important to you. However, if the change in question is major, please contact the team beforehand - we wish to prevent wasted effort.

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 on the feature ideas board before submitting a PR (http://mod-buildcraft.com/forums/index.php?board=7.0).

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.

PR implementing new features or changing large portions of code are helpful. But if you're doing such a change and if it gets accepted, please don't "fire and forget". Complex changes are introducing bugs, and as thourough as testing and peer review may be, there will be bugs. Please carry on playing your changes after initial commit and fix residual issues. It is extremely frustrating for others to spend days fixing regressions introduced by unmaintained submissions.

Frequently reported

  • java.lang.AbstractMethodError, java.lang.NoSuchMethodException
  • A mod has not updated to the current BuildCraft API
  • You are not using the correct version of BuildCraft for your Forge/Minecraft versions
  • You are using the dev version on a normal game instance (or vice versa)
  • Render issue (Quarry causes flickering) - Try without OptiFine first! This is a known issue with some versions of OptiFine.

Compiling and packaging Buildcraft

  1. Ensure that Java (found here), Git (found here) are installed correctly on your system.
  2. Optional: Install Gradle (found here)
  3. Create a base directory for the build
  4. Clone the Buildcraft repository into 'baseDir/BuildCraft/'
  5. Clone (and update) the submodules into 'baseDir/BuildCraft with 'git submodule init' and 'git submodule update'
  6. Navigate to basedir/BuildCraft in a shell and run one of two commands:
  7. gradlew setupCIWorkspace build to just build a current jar (this may take a while).
  8. gradlew setupDecompWorkspace to setup a complete developement enviroment.
  9. With Gradle installed: use gradle instead of gradlew
  10. On Windows: use gradlew.bat instead of gradlew
  11. The compiles and obfuscated module jars will be in 'baseDir/BuildCraft/modules'

Your directory structure should look like this before running gradle:


baseDir
\- BuildCraft
 |- buildcraft_resources
 |- common
 |- ...
 \- BuildCraftAPI
  |- api
  |- ...
 \- BuildCraft-Localization
  |- lang
  |- ...

And like this after running gradle:


basedir
\- BuildCraft
 |- .gradle
 |- build
 |- buildcraft_resources
 |- common
 |- ...
 \- BuildCraftAPI
  |- api
  |- ...
 \- BuildCraft-Localization
  |- lang
  |- ...

Localizations

Localizations can be submitted here. Localization PRs against this repository will have to be rejected.

Depending on BuildCraft

Instructions for depending on BC 7.1.x can be found here (for 1.7.10).

8.0.x hasn't been finished yet, so there are no instructions for depending on it :(

The following instructions are for BC 7.2.x (1.8.9):

Add the following to your build.gradle file:

repositories {
    ivy {
        name "BuildCraft"
        artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision](-[classifier]).[ext]"
    }
}
````

If you want to depend on JUST the API then do this:
````
dependencies {
    deobfCompile name: "buildcraft", version: "7.2.5", classifier: "api"
}
````

If you want to depend on the whole of buildcraft do this:
````
dependencies {
    deobfCompile name: "buildcraft", version: "7.2.5"
}

Where 7.2.5 is the desired version of BuildCraft.

Extension points exported contracts — how you extend this code

Action (Interface)
Defines some action that will only be called once for each time it has been registered. [6 implementers]
common/buildcraft/lib/bpt/task/TaskBuilder.java
IFilteredPipe (Interface)
(no doc) [6 implementers]
src_old_license/buildcraft/transport/IFilteredPipe.java
WhileAction (Interface)
Defines some action that is called for every tick after the task holding it starts, and until all of its requirements ha [6 …
common/buildcraft/lib/bpt/task/TaskBuilder.java
IPipeConnectionForced (Interface)
(no doc) [6 implementers]
src_old_license/buildcraft/transport/IPipeConnectionForced.java
IPhantomSlot (Interface)
Phantom Slots don't "use" items, they are used for filters and various other logic slots. [6 implementers]
common/buildcraft/lib/gui/slot/IPhantomSlot.java
IDiamondPipe (Interface)
(no doc) [8 implementers]
src_old_license/buildcraft/transport/IDiamondPipe.java
IBlockWithFacing (Interface)
Marker interface used by BlockBCBase_Neptune to automatically add an EnumFacing property to blocks, and [11 implementers]
common/buildcraft/lib/block/IBlockWithFacing.java
IPipeTransportFluidsHook (Interface)
(no doc) [23 implementers]
src_old_license/buildcraft/transport/IPipeTransportFluidsHook.java

Core symbols most depended-on inside this repo

get
called by 764
common/buildcraft/lib/misc/data/IReference.java
add
called by 614
common/buildcraft/lib/misc/VecUtil.java
getY
called by 428
common/buildcraft/lib/gui/pos/IGuiPosition.java
getX
called by 411
common/buildcraft/lib/gui/pos/IGuiPosition.java
add
called by 405
src_old_license/buildcraft/transport/TravelerSet.java
getZ
called by 352
src_old_license/buildcraft/robotics/map/MapChunk.java
size
called by 350
common/buildcraft/lib/misc/data/Box.java
put
called by 344
src_old_license/buildcraft/core/lib/IDefinitionTriMap.java

Shape

Method 10,595
Class 1,646
Enum 169
Interface 149

Languages

Java100%

Modules by API surface

src_old_license/buildcraft/robotics/EntityRobot.java104 symbols
src_old_license/buildcraft/transport/TileGenericPipe.java87 symbols
src_old_license/buildcraft/transport/BlockGenericPipe.java73 symbols
src_old_license/buildcraft/builders/TileQuarry.java58 symbols
src_old_license/buildcraft/builders/TileBuilder.java58 symbols
src_old_license/buildcraft/transport/Pipe.java55 symbols
common_old_license/buildcraft/builders/tile/TileQuarry.java55 symbols
src_old_license/buildcraft/core/lib/client/sprite/SubSprite.java54 symbols
src_old_license/buildcraft/core/lib/utils/Utils.java53 symbols
src_old_license/buildcraft/core/lib/engines/TileEngineBase.java53 symbols
src_old_license/buildcraft/transport/Gate.java47 symbols
common/buildcraft/lib/client/model/MutableVertex.java46 symbols

For agents

$ claude mcp add BuildCraft \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact