File Details
CBCmoreshells-1.1.0.jar
- R
- May 15, 2026
- 954.65 KB
- 10.1K
- 1.21.1
- NeoForge
File Name
CBCmoreshells-1.1.0.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
CBC Enhanced Shells — v1.1.0
Rocket Breech
- Hand-loading now works. Right-clicking the back face with a munition loads it into the cannon. Previously the breech
failed to register its connections at placement, so the cannon never assembled and the interaction never fired.
- Sliding breechblock + lever now render. Registered a Flywheel visual on top of the existing block-entity renderer;
without it the Flywheel short-circuit hid both the breechblock and the lever.
- Cascade-loading: up to N shells per barrel. The stock Quick-Firing breech only shifts the existing round one slot
forward, capping practical loads at two. The rocket breech now pushes the whole stack toward the muzzle in a single
right-click, so a five-chamber barrel holds five rounds.
- Removed a latent infinite-recursion path in RocketBreechBlockEntity.canLoadBlock (never triggered in practice —
nothing was ever loaded into the breech itself).
Rocket Launchpad — Cannon-Fired Rockets
- Launchpad is now a ProjectileBlock. It can be hand-loaded through any CBC breech as a munition, and CBC's firing
pipeline accepts it in the projectile chain instead of failing on it.
- Detection pattern simplified to [launchpad, shell]. The cannon's own powder is consumed by CBC's propellant branch
(as expected) 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 to muzzle) is launchpad → powder → shell. Firing
detects the rocket configuration when the scan reaches the shell and spawns a RocketEntity instead of a regular
projectile.
- 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 converted to multipart so the new waterlogged property (inherited from ProjectileBlock) doesn't need
explicit variants.
Rocket Entity
- 15-tick spawn invulnerability (SPAWN_GRACE_TICKS). For the first ~0.75 s 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.

