Skip to content

0.10.4 (API 0.21.0)

Choose a tag to compare

@smartcmd smartcmd released this 12 Jan 08:26
ad8a617

Compare with 0.10.3

For Minecraft: Bedrock Edition 1.21.80 - 1.21.130

Added

  • (API) Implemented world feature system and tree saplings:
    • Added WorldFeature interface and WorldFeatureContext class for defining world generation features.
    • Added WorldFeatures class and Registries.WORLD_FEATURES registry.
    • 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).
  • (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_POWER constant (15).
  • (API) Added BlockEntityNoteblockBaseComponent.isPowered() and setPowered() methods to track redstone power state.
  • (API) Added sound PowerSound which 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 BlockEntityCampfire and BlockEntityCampfireBaseComponent interfaces.
    • Added CampfireSmeltEvent event.
    • Added DamageType.CAMPFIRE and DamageContainer.campfire() for campfire damage.
  • (API) Implemented crossbow:
    • Added ItemCrossbowBaseComponent interface with isLoaded(), getLoadedProjectile(), and setLoadedProjectile() methods.
    • Added EntityShootCrossbowEvent event fired when shooting crossbow.
    • Added EntityArrowBaseComponent.getPiercingLevel() and setPiercingLevel() for Piercing enchantment support.
    • Added ItemBaseComponent.onUseInAirTick() callback for tick-based item usage logic.
  • (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 onIdle callback and wakeUp() method to GameLoop class for event-driven idle processing.

Changed

  • (API) Renamed Entity.willBeSaved() to Entity.isPersistent().
  • (API) Merged sound classes:
    • PressurePlateActivateSound and PressurePlateDeactivateSound -> PressurePlateSound(blockState, activated)
    • DoorOpenSound and DoorCloseSound -> DoorSound(blockState, open)
    • TrapdoorOpenSound and TrapdoorCloseSound -> TrapdoorSound(blockState, open)
    • FenceGateOpenSound and FenceGateCloseSound -> FenceGateSound(blockState, open)
  • (API) Moved AbstractEffectType from 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 through LockSupport.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 enableIndependentNetworkThread configuration option from server-settings.yml as it is no longer necessary.