Add EMC Builder: a BuildCraft Builder that pays for materials with EMC

- TileEMCBuilder extends TileBuilder. During build() it exposes virtual
  material slots backed by EMC, then charges the EMC value (1:1) of what
  was used. Real items and tank fluids are still used first.
- EMC is stored per player per world (EmcPool, WorldSavedData), so all
  EMC Builders a player owns in a world share one balance.
- GUI based on BuildCraft's Builder GUI, with an EMC consume slot like the
  Transmutation Table's and the owner's balance shown.
- Blueprint schematic strips the owner; the first player to open an
  unowned builder becomes its owner.
- Lit top while building is not drawn.
- Shapeless recipe: Builder + Transmutation Table.
- Depend on local BuildCraft 7.1.27 and FMProjectE dev jars in libs/
  (not committed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
agomizi1cmandClaude Opus 5.5 committed 2026-10-27 00:59:45 +09:00
1 parent 536e567348
commit 870e5d13eb
18 files changed
+999 -2

No files matched your search

@@ -1,8 +1,22 @@
package net.kanawo.emcbuilder;
import net.kanawo.emcbuilder.tile.TileEMCBuilder;
import buildcraft.core.render.RenderBuilder;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.event.FMLInitializationEvent;
public class ClientProxy extends CommonProxy {
// Override CommonProxy methods here, if you want a different behaviour on the client (e.g. registering renders).
// Don't forget to call the super methods as well.
@Override
public void init(FMLInitializationEvent event) {
super.init(event);
// The Builder's own renderer (RenderBuilderTile) also draws BuildCraft's lit top while building. Its base
// renderer draws only the area box, path lasers and flying items.
ClientRegistry.bindTileEntitySpecialRenderer(TileEMCBuilder.class, new RenderBuilder());
}
}