diff --git a/v0.1/block-entity.wit b/v0.1/block-entity.wit index 4a38087..b626005 100644 --- a/v0.1/block-entity.wit +++ b/v0.1/block-entity.wit @@ -1,5 +1,6 @@ interface block-entity { use common.{block-pos}; + use item-stack.{item-stack}; resource block-entity { resource-location: func() -> string; @@ -9,6 +10,16 @@ interface block-entity { clear-dirty: func(); } + resource container-block-entity { + get-block-entity: func() -> block-entity; + get-size: func() -> u32; + is-empty: func() -> bool; + get-stack: func(slot: u32) -> option; + set-stack: func(slot: u32, stack: option); + remove-stack: func(slot: u32) -> option; + clear: func(); + } + resource command-block-entity { get-block-entity: func () -> block-entity; last-output: func() -> string; @@ -57,6 +68,7 @@ interface block-entity { resource jukebox-block-entity { get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; is-playing: func() -> bool; stop-playing: func(); start-playing: func(length-in-ticks: u64); @@ -64,6 +76,7 @@ interface block-entity { resource chest-block-entity { get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; viewer-count: func() -> u32; } @@ -74,11 +87,325 @@ interface block-entity { get-delay: func() -> s32; } + resource map-block-entity { + get-block-entity: func() -> block-entity; + get-map-id: func() -> s32; + set-map-id: func(map-id: s32); + get-colors: func() -> list; + set-colors: func(colors: list); + set-pixel: func(x: u32, y: u32, color: u8); + get-pixel: func(x: u32, y: u32) -> u8; + update: func(); + stream-frame: func(frame-data: list); + } + + resource hanging-sign-block-entity { + get-block-entity: func() -> block-entity; + get-front-text: func() -> sign-text; + set-front-text: func(text: sign-text); + get-back-text: func() -> sign-text; + set-back-text: func(text: sign-text); + is-waxed: func() -> bool; + set-waxed: func(waxed: bool); + } + + resource trapped-chest-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + viewer-count: func() -> u32; + } + + resource banner-block-entity { + get-block-entity: func() -> block-entity; + get-custom-name: func() -> option; + } + + resource barrel-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + viewer-count: func() -> u32; + } + + resource beacon-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-primary-effect: func() -> s32; + get-secondary-effect: func() -> s32; + get-levels: func() -> s32; + } + + resource bed-block-entity { + get-block-entity: func() -> block-entity; + } + + resource beehive-block-entity { + get-block-entity: func() -> block-entity; + get-bee-count: func() -> u32; + } + + resource bell-block-entity { + get-block-entity: func() -> block-entity; + is-ringing: func() -> bool; + get-ring-ticks: func() -> s32; + } + + resource blasting-furnace-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-cooking-time-spent: func() -> u16; + get-cooking-total-time: func() -> u16; + get-lit-time-remaining: func() -> u16; + get-lit-total-time: func() -> u16; + is-burning: func() -> bool; + } + + resource brewing-stand-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-brew-time: func() -> s32; + get-fuel: func() -> s32; + } + + resource brushable-block-block-entity { + get-block-entity: func() -> block-entity; + } + + resource calibrated-sculk-sensor-block-entity { + get-block-entity: func() -> block-entity; + } + + resource campfire-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + } + + resource chiseled-bookshelf-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-last-interacted-slot: func() -> s8; + } + + resource comparator-block-entity { + get-block-entity: func() -> block-entity; + get-output-signal: func() -> u8; + } + + resource conduit-block-entity { + get-block-entity: func() -> block-entity; + } + + resource copper-golem-statue-block-entity { + get-block-entity: func() -> block-entity; + } + + resource crafter-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-crafting-ticks-remaining: func() -> s32; + is-triggered: func() -> bool; + } + + resource creaking-heart-block-entity { + get-block-entity: func() -> block-entity; + get-creaking-uuid: func() -> option; + } + + resource daylight-detector-block-entity { + get-block-entity: func() -> block-entity; + } + + resource decorated-pot-block-entity { + get-block-entity: func() -> block-entity; + } + + resource dispenser-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + } + + resource dropper-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + } + + resource enchanting-table-block-entity { + get-block-entity: func() -> block-entity; + } + + resource end-gateway-block-entity { + get-block-entity: func() -> block-entity; + get-age: func() -> s64; + is-exact-teleport: func() -> bool; + } + + resource end-portal-block-entity { + get-block-entity: func() -> block-entity; + } + + resource ender-chest-block-entity { + get-block-entity: func() -> block-entity; + viewer-count: func() -> u32; + } + + resource furnace-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-cooking-time-spent: func() -> u16; + get-cooking-total-time: func() -> u16; + get-lit-time-remaining: func() -> u16; + get-lit-total-time: func() -> u16; + is-burning: func() -> bool; + } + + resource hopper-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-cooldown: func() -> s32; + } + + resource jigsaw-block-entity { + get-block-entity: func() -> block-entity; + get-name: func() -> string; + get-target: func() -> string; + get-pool: func() -> string; + get-final-state: func() -> string; + get-selection-priority: func() -> s32; + get-placement-priority: func() -> s32; + } + + resource lectern-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-page: func() -> u32; + } + + resource piston-block-entity { + get-block-entity: func() -> block-entity; + get-progress: func() -> f32; + is-extending: func() -> bool; + is-source: func() -> bool; + } + + resource potent-sulfur-block-entity { + get-block-entity: func() -> block-entity; + } + + resource sculk-catalyst-block-entity { + get-block-entity: func() -> block-entity; + } + + resource sculk-sensor-block-entity { + get-block-entity: func() -> block-entity; + } + + resource sculk-shrieker-block-entity { + get-block-entity: func() -> block-entity; + get-warning-level: func() -> s32; + } + + resource shelf-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + } + + resource shulker-box-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + viewer-count: func() -> u32; + } + + resource skull-block-entity { + get-block-entity: func() -> block-entity; + get-note-block-sound: func() -> option; + } + + resource smoker-block-entity { + get-block-entity: func() -> block-entity; + get-container: func() -> container-block-entity; + get-cooking-time-spent: func() -> u16; + get-cooking-total-time: func() -> u16; + get-lit-time-remaining: func() -> u16; + get-lit-total-time: func() -> u16; + is-burning: func() -> bool; + } + + resource structure-block-block-entity { + get-block-entity: func() -> block-entity; + get-name: func() -> string; + get-author: func() -> string; + get-mode: func() -> string; + get-integrity: func() -> f32; + get-seed: func() -> s64; + } + + resource test-block-block-entity { + get-block-entity: func() -> block-entity; + } + + resource test-instance-block-block-entity { + get-block-entity: func() -> block-entity; + } + + resource trial-spawner-block-entity { + get-block-entity: func() -> block-entity; + } + + resource vault-block-entity { + get-block-entity: func() -> block-entity; + } + variant block-entity-type { command-block-entity(command-block-entity), sign-block-entity(sign-block-entity), + hanging-sign-block-entity(hanging-sign-block-entity), jukebox-block-entity(jukebox-block-entity), chest-block-entity(chest-block-entity), + trapped-chest-block-entity(trapped-chest-block-entity), mob-spawner-block-entity(mob-spawner-block-entity), + map-block-entity(map-block-entity), + banner-block-entity(banner-block-entity), + barrel-block-entity(barrel-block-entity), + beacon-block-entity(beacon-block-entity), + bed-block-entity(bed-block-entity), + beehive-block-entity(beehive-block-entity), + bell-block-entity(bell-block-entity), + blasting-furnace-block-entity(blasting-furnace-block-entity), + brewing-stand-block-entity(brewing-stand-block-entity), + brushable-block-block-entity(brushable-block-block-entity), + calibrated-sculk-sensor-block-entity(calibrated-sculk-sensor-block-entity), + campfire-block-entity(campfire-block-entity), + chiseled-bookshelf-block-entity(chiseled-bookshelf-block-entity), + comparator-block-entity(comparator-block-entity), + conduit-block-entity(conduit-block-entity), + copper-golem-statue-block-entity(copper-golem-statue-block-entity), + crafter-block-entity(crafter-block-entity), + creaking-heart-block-entity(creaking-heart-block-entity), + daylight-detector-block-entity(daylight-detector-block-entity), + decorated-pot-block-entity(decorated-pot-block-entity), + dispenser-block-entity(dispenser-block-entity), + dropper-block-entity(dropper-block-entity), + enchanting-table-block-entity(enchanting-table-block-entity), + end-gateway-block-entity(end-gateway-block-entity), + end-portal-block-entity(end-portal-block-entity), + ender-chest-block-entity(ender-chest-block-entity), + furnace-block-entity(furnace-block-entity), + hopper-block-entity(hopper-block-entity), + jigsaw-block-entity(jigsaw-block-entity), + lectern-block-entity(lectern-block-entity), + piston-block-entity(piston-block-entity), + potent-sulfur-block-entity(potent-sulfur-block-entity), + sculk-catalyst-block-entity(sculk-catalyst-block-entity), + sculk-sensor-block-entity(sculk-sensor-block-entity), + sculk-shrieker-block-entity(sculk-shrieker-block-entity), + shelf-block-entity(shelf-block-entity), + shulker-box-block-entity(shulker-box-block-entity), + skull-block-entity(skull-block-entity), + smoker-block-entity(smoker-block-entity), + structure-block-block-entity(structure-block-block-entity), + test-block-block-entity(test-block-block-entity), + test-instance-block-block-entity(test-instance-block-block-entity), + trial-spawner-block-entity(trial-spawner-block-entity), + vault-block-entity(vault-block-entity), + container-block-entity(container-block-entity), } } diff --git a/v0.1/plugin.wit b/v0.1/plugin.wit index 644685f..ffd875d 100644 --- a/v0.1/plugin.wit +++ b/v0.1/plugin.wit @@ -43,6 +43,8 @@ world plugin { import java-dialogs; /// Provides status effect types and instances. import status-effect; + /// Provides block entity types and instances. + import block-entity; // Provides 1 : 1 inter-plugin communication import ipc; /// Provides player management.