Files
Matt d2cc179ebd kubejs: use kubejs-create builder API for flax press recipe
Now that v0.27.0 ships kubejs_create, the high-level
event.recipes.create.pressing(out, in) builder works, replacing the
raw event.custom({type: 'create:pressing', ...}) JSON shim we needed
before.

Verified live on the server -- recipe loads cleanly:
[bns/supplementaries_bridges] added flax -> string press recipe

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 18:55:43 +00:00

45 lines
2.1 KiB
JavaScript

// Brass & Sigil -- Supplementaries cross-mod bridges
//
// Supplementaries already does tag work (c:crops/flax, c:fiber/flax,
// c:drinks/lumisene, etc.) and Create auto-generates Millstone +
// 9x packing recipes from those tags. So most integration is done.
//
// What's left -- two small bridges:
// 1. Flax -> String via Mechanical Press (Create doesn't map
// c:fiber -> string natively; this fills the gap so flax becomes
// a viable string-source for textile builds).
// 2. Plunderer drops 1-3 Numismatics spurs so the hostile NPC pulls
// into the server economy. Plunderers are rare so this is a
// mild bounty, not a farmable currency source.
//
// Lumisene -> Ars Source was on the list but Ars Nouveau 5.11.x's
// sourcelink recipe schema needs verification before we add it.
// Parked for a follow-up.
ServerEvents.recipes(event => {
// 2 flax pressed -> 1 string. Cheaper than wool->4 string but
// requires a Press (kinetic infrastructure) -- balanced.
//
// Uses the kubejs_create mod's builder API (added in pack v0.27.0).
// Before that, the bare event.recipes.create.pressing() signature
// didn't match Create 6.x's recipe shape and we had to use a raw
// event.custom({type: 'create:pressing', ...}) call.
event.recipes.create.pressing('2x minecraft:string', 'supplementaries:flax')
.id('bns:press_flax_to_string');
console.info('[bns/supplementaries_bridges] added flax -> string press recipe');
});
// Plunderer is a hostile mob that raids unprotected chests. Adding
// a small spur bounty makes them a mini-event rather than a pure
// nuisance. Range tuned low: 1-3 spurs = trivial vs. the player
// economy but creates a "go hunt the plunderer" hook.
//
// KubeJS 2101.7.2 doesn't expose ServerEvents.entityLootTables on
// NeoForge -- we use EntityEvents.drops (filtered by entity id) and
// add items via event.addDrop instead.
EntityEvents.drops('supplementaries:plunderer', event => {
const count = 1 + Math.floor(Math.random() * 3);
event.addDrop(Item.of('numismatics:spur', count));
});
console.info('[bns/supplementaries_bridges] registered plunderer -> spur drops handler');