85 lines
2.2 KiB
Plaintext
85 lines
2.2 KiB
Plaintext
interface block-entity {
|
|
use common.{block-pos};
|
|
|
|
resource block-entity {
|
|
resource-location: func() -> string;
|
|
get-position: func() -> block-pos;
|
|
get-id: func() -> u32;
|
|
is-dirty: func() -> bool;
|
|
clear-dirty: func();
|
|
}
|
|
|
|
resource command-block-entity {
|
|
get-block-entity: func () -> block-entity;
|
|
last-output: func() -> string;
|
|
track-output: func() -> bool;
|
|
success-count: func() -> u32;
|
|
command: func() -> string;
|
|
auto: func() -> bool;
|
|
condition-met: func() -> bool;
|
|
powered: func() -> bool;
|
|
}
|
|
|
|
enum dye-color {
|
|
white,
|
|
orange,
|
|
magenta,
|
|
light-blue,
|
|
yellow,
|
|
lime,
|
|
pink,
|
|
gray,
|
|
light-gray,
|
|
cyan,
|
|
purple,
|
|
blue,
|
|
brown,
|
|
green,
|
|
red,
|
|
black,
|
|
}
|
|
|
|
record sign-text {
|
|
messages: list<string>,
|
|
color: dye-color,
|
|
has-glowing-text: bool,
|
|
}
|
|
|
|
resource 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 jukebox-block-entity {
|
|
get-block-entity: func() -> block-entity;
|
|
is-playing: func() -> bool;
|
|
stop-playing: func();
|
|
start-playing: func(length-in-ticks: u64);
|
|
}
|
|
|
|
resource chest-block-entity {
|
|
get-block-entity: func() -> block-entity;
|
|
viewer-count: func() -> u32;
|
|
}
|
|
|
|
resource mob-spawner-block-entity {
|
|
get-block-entity: func() -> block-entity;
|
|
get-spawn-count: func() -> s32;
|
|
get-spawn-range: func() -> s32;
|
|
get-delay: func() -> s32;
|
|
}
|
|
|
|
variant block-entity-type {
|
|
command-block-entity(command-block-entity),
|
|
sign-block-entity(sign-block-entity),
|
|
jukebox-block-entity(jukebox-block-entity),
|
|
chest-block-entity(chest-block-entity),
|
|
mob-spawner-block-entity(mob-spawner-block-entity),
|
|
}
|
|
}
|