Skip to content

NEEPMeat vascular power charges the transfer hosts (Fabric 1.20.1) - #28

Open
Keridos wants to merge 5 commits into
1.20.1+from
1.20.1+-neepmeat
Open

Keridos wants to merge 5 commits into
1.20.1+from
1.20.1+-neepmeat

Conversation

@Keridos

@Keridos Keridos commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Lets NEEPMeat's vascular network charge any TransferHost energy on Fabric 1.20.1 (NEEPMeat is compile-only and never bundled; nothing changes without it).

  • platform/fabric/FabricNeepMeatPower (1.20.1 only): each host side that exposes energy is a NEEPMeat BloodAcceptor in ACTIVE_SINK mode, registered from FabricBlockLookups.registerType when NEEPMeat is loaded.
  • 1 eJ = 1 E; a sink claims only what the host's energy still accepts per tick (insert limit and free space) and reports that as its demand hint, so full buffers take nothing and the rest goes to NEEPMeat's own machines.
  • Claimed power is inserted after each server tick; a sink whose free intake changed asks the network to share out again.
  • One sink per host side while connected (no double charging after a chunk reload); nothing is charged while the touching block's chunk is unloaded.
  • build-logic: nestedModJars, which extracts the jar-in-jar mods of a Fabric mod jar (Loom strips them from remapped Modrinth dependencies), for the mods' dev runs and game tests.

Needed by OpenModularTurretsTeam/OpenModularTurrets#598 and OpenModularTurretsTeam/OpenModularLighting#11.

🤖 Generated with Claude Code

Keridos and others added 2 commits November 4, 2026 23:45
With NEEPMeat installed, FabricBlockLookups also registers every transfer host as an active
sink of NEEPMeat's vascular network (BloodAcceptor.SIDED) on the sides where it exposes
energy. FabricNeepMeatPower claims only what the host's energy still accepts per tick
(1 eJ = 1 E), reports it as its demand, charges the claim after each server tick and asks
the network for a new share when its free intake changes. NEEPMeat is compile-only on the
1.20.1-fabric node; the class lives in src/main/mc1.20.1-1.20.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Loom strips the nested jars from its remapped copies of mod dependencies and expects them as
Maven dependencies, which jars from Modrinth's maven do not declare (NEEPMeat bundles meatlib,
Cardinal Components, Flywheel and more). nestedModJars extracts the listed ones at every depth,
so a mod build can add them to modLocalRuntime.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MeatWheeze

Copy link
Copy Markdown

Was it intentional to make transfer hosts active sinks? This means that a host will consume all available power in the network until it is fully charged, leaving nothing for other sinks in the network.

@Keridos

Keridos commented Nov 5, 2026 •

Copy link
Copy Markdown
Member Author

No, it was not, I shall look into that. Expected it to work similar to RF etc.

/update: fixed

A vascular network forgets the sinks next to a conduit whose chunk unloads without telling
them, and discovers them again when it loads: a new sink would then charge the host next to
the old one. A side now keeps one sink while it is part of a network (the lookup returns it,
so it gets the new share), and a sink charges nothing while the block it touches is unloaded.
Keridos and others added 2 commits November 6, 2026 02:56
An active sink would drain the whole vascular network with priority
over every other sink; the Javadoc still described the sides as active.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants