0.10.4 (API 0.21.0)
For Minecraft: Bedrock Edition 1.21.80 - 1.21.130
Added
- (API) Implemented world feature system and tree saplings:
- Added
WorldFeatureinterface andWorldFeatureContextclass for defining world generation features. - Added
WorldFeaturesclass andRegistries.WORLD_FEATURESregistry. - Implemented tree saplings that can grow into trees when bone mealed or after random ticks.
- Added tree features for all wood types: Oak, Birch, Spruce, Jungle, Acacia, Dark Oak, Cherry, Mangrove, Pale Oak, and their variants (Fancy Oak, Tall Birch, Mega Jungle, Mega Pine, Mega Spruce).
- Added
- (API) Added
Entity.setPersistent()method to control entity persistence. - (API) Added redstone power methods to
BlockBaseComponent:getWeakPower(Block, BlockFace)- gets weak power output from a block.getStrongPower(Block, BlockFace)- gets strong power output from a block.isPowerSource()- checks if a block is a redstone power source.MAX_REDSTONE_POWERconstant (15).
- (API) Added
BlockEntityNoteblockBaseComponent.isPowered()andsetPowered()methods to track redstone power state. - (API) Added sound
PowerSoundwhich is used by redstone components such as lever. - (API) Implemented basic redstone system, here is a list of implemented redstone components:
- Redstone Wire
- Redstone Block
- Redstone Lamp
- Redstone Torch
- Pressure Plate
- Lever
- Button
- Door
- Trapdoor
- Fence Gate
- Observer
- Noteblock (responds to redstone signal)
- Hopper (stops transferring items when powered)
- Daylight Detector (normal and inverted)
- Trapped Chest (outputs signal based on viewer count)
- Redstone Repeater
- Redstone Comparator
- Target (outputs signal when hit by projectiles)
- Dragon Head and Piglin Head (animate when powered)
- (API) Implemented campfire and soul campfire:
- Added
BlockEntityCampfireandBlockEntityCampfireBaseComponentinterfaces. - Added
CampfireSmeltEventevent. - Added
DamageType.CAMPFIREandDamageContainer.campfire()for campfire damage.
- Added
- (API) Implemented crossbow:
- Added
ItemCrossbowBaseComponentinterface withisLoaded(),getLoadedProjectile(), andsetLoadedProjectile()methods. - Added
EntityShootCrossbowEventevent fired when shooting crossbow. - Added
EntityArrowBaseComponent.getPiercingLevel()andsetPiercingLevel()for Piercing enchantment support. - Added
ItemBaseComponent.onUseInAirTick()callback for tick-based item usage logic.
- Added
- (API) Added
Instrument.fromBlockBelow(BlockType<?>)static method to determine instrument based on block below noteblock. - (API) Added
BlockEntityNoteblockBaseComponent.getNextPitch()method to increment and return pitch. - Added
onIdlecallback andwakeUp()method toGameLoopclass for event-driven idle processing.
Changed
- (API) Renamed
Entity.willBeSaved()toEntity.isPersistent(). - (API) Merged sound classes:
PressurePlateActivateSoundandPressurePlateDeactivateSound->PressurePlateSound(blockState, activated)DoorOpenSoundandDoorCloseSound->DoorSound(blockState, open)TrapdoorOpenSoundandTrapdoorCloseSound->TrapdoorSound(blockState, open)FenceGateOpenSoundandFenceGateCloseSound->FenceGateSound(blockState, open)
- (API) Moved
AbstractEffectTypefrom api module to server module. - Merged world tick thread and network thread into a single thread using an event-driven wake-up mechanism. This simplifies
the threading model while maintaining low packet processing latency throughLockSupport.parkNanos/unpark.
Fixed
- Fixed noteblock being triggered when player is sneaking (should allow placing blocks on top instead).
- Fixed eating animation incorrectly triggering after interacting with blocks while holding food.
- Added missing ambient crackle sounds for furnace, blast furnace, smoker, and campfire.
Removed
- Removed
enableIndependentNetworkThreadconfiguration option fromserver-settings.ymlas it is no longer necessary.