File Details
CBCmoreshells-1.1.1.jar
- R
- May 20, 2026
- 966.73 KB
- 4.0K
- 1.21.1
- NeoForge
File Name
CBCmoreshells-1.1.1.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
CBC Enhanced Shells — v1.1.1 Changelog
Rocket Breech
- Hand-loading now works. Right-clicking the back face with a munition (shell, powder, or launchpad) loads it into the
cannon. The block was registered as a registerSimpleBlockItem, so its place() never called BigCannonBlock.onPlace —
the breech's cannonBehavior connections to the adjacent barrel were never wired up, the cannon assembly failed
silently, and onInteractWhileAssembled (where loading happens) never fired. Fixed by switching the item registration
to BigCannonBlockItem.
- Sliding breechblock + lever now render. Registered a Flywheel visual (QuickfiringBreechVisual) on top of the
existing BER (QuickfiringBreechBlockEntityRenderer). Without the visual the BER's if (supportsVisualization) return;
short-circuit hid everything when Flywheel was active.
- Cascade-loading up to N shells. The stock Quick-Firing breech only shifts the existing round one slot forward,
capping practical loads at two. The rocket breech overrides onInteractWhileAssembled to walk the bore, find the first
empty chamber, and shift the entire stack toward the muzzle in a single right-click. A 5-chamber barrel holds 5
rounds.
- Removed a latent infinite-recursion path in RocketBreechBlockEntity.canLoadBlock (never triggered in practice —
nothing was ever loaded into the breech itself).
Rocket — Cannon-Fired Path
- Launchpad is now a ProjectileBlock<RocketEntity>. It can be hand-loaded through any CBC breech as a munition, and
CBC's firing-loop accepts it in the projectile chain instead of falling into the else { fail() } branch.
- Detection pattern simplified to [launchpad, shell]. The cannon's own powder is consumed by CBC's propellant branch
and no longer needs to appear in the projectile chain. The rocket gets a fixed built-in fuel reserve
(CANNON_LAUNCH_POWDER = 2) for its post-launch self-thrust.
- Load order: shell → powder(s) → launchpad. Final bore (breech → muzzle) is launchpad → powder → shell. The firing
scan sees the launchpad first (chain starts, isComplete = false), consumes powder, then sees the shell (isComplete =
true) and getProjectile returns a RocketEntity via RocketLoadingHelper.tryBuildRocket.
- Removed the broken getExpectedSize = MAX_STACK (5) override on all 16 shell blocks — it was tripping CBC's cleanup
phase and breaking normal (non-rocket) firing.
- Blockstate JSON for rocket_base converted to multipart so the inherited WATERLOGGED property doesn't need explicit
variants.
Rocket Entity — Spawn Invulnerability
- 15-tick spawn grace window (SPAWN_GRACE_TICKS, ≈0.75 s). For the first stretch after spawn the rocket:
- treats every block as penetrable (calculateBlockPenetration → PENETRATE),
- cannot hit entities (canHitEntity → false),
- skips the manual front-tip block probe,
- no-ops in onImpact as a safety net.
- Fixes immediate self-detonation against the cannon mount, the contraption entity, the spent launchpad block, or
surrounding terrain on a flat ground launch (which used to occasionally blow up the cannon).
Fuze Model Rendering
- The fuze top model now appears on all our fuzed shells (HE, AP, Shrapnel, Smoke, Drop Mortar, Nuke, H-Bomb, Plasma,
Gravitational, Vortex, Disintegration, Singularity, Cluster, Bunker Buster — Mk.I-V) when a fuze is attached. CBC's
FuzedBlockEntityRenderer and FuzedBlockVisual were only registered for CBC's own BlockEntityType; ours is a separate
type, so neither path was hitting our shells. Both are now wired up to CBCESBlockEntities.FUZED_BLOCK.
Loot Tables
- Added the 25 missing loot tables for the shader shells (Plasma, Gravitational, Vortex, Disintegration, Singularity ×
Mk.I-V). Without them Minecraft 1.21 dropped nothing when these blocks were broken — neither with a pickaxe nor via
the Create wrench (which routes the drop through the same loot table). 71 → 96 loot tables, matching the 96 registered
blocks. Each new entry preserves the createbigcannons:tracer and createbigcannons:fuze components plus the renamed
item.
Tooltips
- Powder Charges now show (under Shift) the rocket-relevant numbers:
- Rocket Thrust — +1.5 s burn per charge (= THRUST_TICKS_PER_POWDER / 20).
- Vertical burn range — ~75 / 185 / 325 blocks (1 / 2 / 3 charges), computed from the rocket physics constants
(thrust accel 0.10/tick, gravity −0.04/tick, drag 1%/tick). Range scales super-linearly because drag asymptotes
terminal velocity to ~5.94 b/tick.
- Applies to launchpad-launched rockets. Cannon-launched rockets currently use a fixed 2-charge thrust reserve
regardless of how many powders the cannon ate; the cannon powder still contributes to the initial muzzle velocity,
just not to the post-launch burn

