Interface ModifiableWorld

All Known Subinterfaces:
class_5423, ModifiableTestableWorld, ServerWorldAccess, StructureWorldAccess, WorldAccess
All Known Implementing Classes:
ChunkRegion, ClientWorld, ServerWorld, World

public interface ModifiableWorld
Represents a modifiable world where block states can be changed and entities spawned.
  • Method Details

    • setBlockState

      boolean setBlockState​(BlockPos pos, BlockState state, int flags, int maxUpdateDepth)
      Updates the block state at a position, calling appropriate callbacks.

      When called on the server, the new block state is stored and propagated to clients and listeners as dictated by the supplied flags. Note that calling this on the client will update the world locally, but may not see the change persisted across loads. It's recommended to check whether this world is client before interacting with the world in this way.

      Accepted values of the flags are a bitset combination of the following:

      • 0b0000001 // 1 - PROPAGATE_CHANGE - Propagates a change event to surrounding blocks.
      • 0b0000010 // 2 - NOTIFY_LISTENERS - Notifies listeners and clients who need to react when the block changes
      • 0b0000100 // 4 - NO_REDRAW - Used in conjunction with NOTIFY_LISTENERS to suppress the render pass on clients.
      • 0b0001000 // 8 - REDRAW_ON_MAIN_THREAD - Forces a synchronous redraw on clients.
      • 0b0010000 // 16 - FORCE_STATE - Bypass virtual block state changes and forces the passed state to be stored as-is.
      • 0b0100000 // 32 - SKIP_DROPS - Prevents the previous block (container) from dropping items when destroyed.
      • 0b1000000 // 64 - MOVED - Signals that the current block is being moved to a different location, usually because of a piston.
      Parameters:
      pos - the target position
      state - the block state to set
      flags - the bitwise flag combination, as described above
      maxUpdateDepth - the limit for the cascading block updates
    • setBlockState

      default boolean setBlockState​(BlockPos pos, BlockState state, int flags)
      Updates the block state at a position, calling appropriate callbacks.

      When called on the server, the new block state is stored and propagated to clients and listeners as dictated by the supplied flags. Note that calling this on the client will update the world locally, but may not see the change persisted across loads. It's recommended to check whether this world is client before interacting with the world in this way.

      Accepted values of the flags are a bitset combination of the following:

      • 0b0000001 // 1 - PROPAGATE_CHANGE - Propagates a change event to surrounding blocks.
      • 0b0000010 // 2 - NOTIFY_LISTENERS - Notifies listeners and clients who need to react when the block changes
      • 0b0000100 // 4 - NO_REDRAW - Used in conjunction with NOTIFY_LISTENERS to suppress the render pass on clients.
      • 0b0001000 // 8 - REDRAW_ON_MAIN_THREAD - Forces a synchronous redraw on clients.
      • 0b0010000 // 16 - FORCE_STATE - Bypass virtual block state changes and forces the passed state to be stored as-is.
      • 0b0100000 // 32 - SKIP_DROPS - Prevents the previous block (container) from dropping items when destroyed.
      • 0b1000000 // 64 - MOVED - Signals that the current block is being moved to a different location, usually because of a piston.
      Parameters:
      pos - the target position
      state - the block state to set
      flags - the bitwise flag combination, as described above
    • removeBlock

      boolean removeBlock​(BlockPos pos, boolean move)
    • breakBlock

      default boolean breakBlock​(BlockPos pos, boolean drop)
    • breakBlock

      default boolean breakBlock​(BlockPos pos, boolean drop, @Nullable Entity breakingEntity)
    • breakBlock

      boolean breakBlock​(BlockPos pos, boolean drop, @Nullable Entity breakingEntity, int maxUpdateDepth)
    • spawnEntity

      default boolean spawnEntity​(Entity entity)