pumpkin-api-zig/src/wit/display.zig
MegalithOfficial 28c3e929ca
Add Zig bindings for the Pumpkin plugin API
The bindings under src/wit are generated from the pumpkin-plugin-wit
submodule by tools/gen.zig. The canonical ABI is handled at comptime in
src/abi.zig, so plugins are plain wasm32-freestanding modules and only
need wasm-tools to become a component.

On top of that there is a small hand written layer: plugin registration,
typed event handlers, declarative commands (cmd), text components from
struct literals (msg) and std.log support.
2026-09-19 17:46:24 +02:00

493 lines
23 KiB
Zig

// Generated by tools/gen.zig, do not edit.
const abi = @import("../abi.zig");
const world = @import("world.zig");
const text = @import("text.zig");
const item_stack = @import("item_stack.zig");
const uuid = @import("uuid.zig");
pub const Entity = world.Entity;
pub const TextComponent = text.TextComponent;
pub const ItemStack = item_stack.ItemStack;
pub const Uuid = uuid.Uuid;
/// Billboard rendering constraints for display entities.
pub const BillboardMode = enum(u8) {
fixed,
vertical,
horizontal,
center,
};
/// Item display transformation modes for item display entities.
pub const ItemDisplayMode = enum(u8) {
none,
thirdperson_lefthand,
thirdperson_righthand,
firstperson_lefthand,
firstperson_righthand,
head,
gui,
ground,
fixed,
};
/// Text alignment options for text display entities.
pub const TextAlignment = enum(u8) {
center,
left,
right,
};
/// 3D single-precision vector.
pub const Vector3f = struct {
x: f32,
y: f32,
z: f32,
};
/// Single-precision quaternion representing a 3D rotation.
pub const Quaternionf = struct {
x: f32,
y: f32,
z: f32,
w: f32,
};
/// Transformation (translation, scale, left and right rotations) for display entities.
pub const DisplayTransformation = struct {
translation: Vector3f,
scale: Vector3f,
left_rotation: Quaternionf,
right_rotation: Quaternionf,
};
/// Common base resource for all display entities.
pub const DisplayEntity = enum(u32) {
_,
pub const resource_drop = &raw.@"[resource-drop]display-entity";
pub fn fromEntity(entity: Entity) ?DisplayEntity {
return abi.call(raw.@"[static]display-entity.from-entity", ?DisplayEntity, .{abi.borrow(entity)});
}
pub fn getEntity(self: DisplayEntity) Entity {
return abi.call(raw.@"[method]display-entity.get-entity", Entity, .{abi.borrow(self)});
}
pub fn getTransformation(self: DisplayEntity) DisplayTransformation {
return abi.call(raw.@"[method]display-entity.get-transformation", DisplayTransformation, .{abi.borrow(self)});
}
pub fn setTransformation(self: DisplayEntity, transformation: DisplayTransformation) void {
return abi.call(raw.@"[method]display-entity.set-transformation", void, .{ abi.borrow(self), transformation });
}
pub fn getInterpolationDuration(self: DisplayEntity) i32 {
return abi.call(raw.@"[method]display-entity.get-interpolation-duration", i32, .{abi.borrow(self)});
}
pub fn setInterpolationDuration(self: DisplayEntity, duration: i32) void {
return abi.call(raw.@"[method]display-entity.set-interpolation-duration", void, .{ abi.borrow(self), duration });
}
pub fn getInterpolationStart(self: DisplayEntity) i32 {
return abi.call(raw.@"[method]display-entity.get-interpolation-start", i32, .{abi.borrow(self)});
}
pub fn setInterpolationStart(self: DisplayEntity, delta_ticks: i32) void {
return abi.call(raw.@"[method]display-entity.set-interpolation-start", void, .{ abi.borrow(self), delta_ticks });
}
pub fn getTeleportDuration(self: DisplayEntity) i32 {
return abi.call(raw.@"[method]display-entity.get-teleport-duration", i32, .{abi.borrow(self)});
}
pub fn setTeleportDuration(self: DisplayEntity, duration: i32) void {
return abi.call(raw.@"[method]display-entity.set-teleport-duration", void, .{ abi.borrow(self), duration });
}
pub fn getBillboard(self: DisplayEntity) BillboardMode {
return abi.call(raw.@"[method]display-entity.get-billboard", BillboardMode, .{abi.borrow(self)});
}
pub fn setBillboard(self: DisplayEntity, mode: BillboardMode) void {
return abi.call(raw.@"[method]display-entity.set-billboard", void, .{ abi.borrow(self), mode });
}
pub fn getViewRange(self: DisplayEntity) f32 {
return abi.call(raw.@"[method]display-entity.get-view-range", f32, .{abi.borrow(self)});
}
pub fn setViewRange(self: DisplayEntity, range: f32) void {
return abi.call(raw.@"[method]display-entity.set-view-range", void, .{ abi.borrow(self), range });
}
pub fn getShadowRadius(self: DisplayEntity) f32 {
return abi.call(raw.@"[method]display-entity.get-shadow-radius", f32, .{abi.borrow(self)});
}
pub fn setShadowRadius(self: DisplayEntity, radius: f32) void {
return abi.call(raw.@"[method]display-entity.set-shadow-radius", void, .{ abi.borrow(self), radius });
}
pub fn getShadowStrength(self: DisplayEntity) f32 {
return abi.call(raw.@"[method]display-entity.get-shadow-strength", f32, .{abi.borrow(self)});
}
pub fn setShadowStrength(self: DisplayEntity, strength: f32) void {
return abi.call(raw.@"[method]display-entity.set-shadow-strength", void, .{ abi.borrow(self), strength });
}
pub fn getDisplayWidth(self: DisplayEntity) f32 {
return abi.call(raw.@"[method]display-entity.get-display-width", f32, .{abi.borrow(self)});
}
pub fn setDisplayWidth(self: DisplayEntity, width: f32) void {
return abi.call(raw.@"[method]display-entity.set-display-width", void, .{ abi.borrow(self), width });
}
pub fn getDisplayHeight(self: DisplayEntity) f32 {
return abi.call(raw.@"[method]display-entity.get-display-height", f32, .{abi.borrow(self)});
}
pub fn setDisplayHeight(self: DisplayEntity, height: f32) void {
return abi.call(raw.@"[method]display-entity.set-display-height", void, .{ abi.borrow(self), height });
}
pub fn getGlowColorOverride(self: DisplayEntity) i32 {
return abi.call(raw.@"[method]display-entity.get-glow-color-override", i32, .{abi.borrow(self)});
}
pub fn setGlowColorOverride(self: DisplayEntity, color: i32) void {
return abi.call(raw.@"[method]display-entity.set-glow-color-override", void, .{ abi.borrow(self), color });
}
pub fn getBrightness(self: DisplayEntity) i32 {
return abi.call(raw.@"[method]display-entity.get-brightness", i32, .{abi.borrow(self)});
}
pub fn setBrightness(self: DisplayEntity, brightness: i32) void {
return abi.call(raw.@"[method]display-entity.set-brightness", void, .{ abi.borrow(self), brightness });
}
/// Keeps the handle alive past the current callback. Release it with `deinit`.
pub fn keep(self: DisplayEntity) void {
abi.keep(DisplayEntity, self);
}
/// Releases the handle now instead of when the callback returns.
pub fn deinit(self: DisplayEntity) void {
abi.drop(DisplayEntity, self);
}
};
/// Resource specifically for Block Display entities.
pub const BlockDisplayEntity = enum(u32) {
_,
pub const resource_drop = &raw.@"[resource-drop]block-display-entity";
pub fn fromEntity(entity: Entity) ?BlockDisplayEntity {
return abi.call(raw.@"[static]block-display-entity.from-entity", ?BlockDisplayEntity, .{abi.borrow(entity)});
}
pub fn getDisplay(self: BlockDisplayEntity) DisplayEntity {
return abi.call(raw.@"[method]block-display-entity.get-display", DisplayEntity, .{abi.borrow(self)});
}
pub fn getEntity(self: BlockDisplayEntity) Entity {
return abi.call(raw.@"[method]block-display-entity.get-entity", Entity, .{abi.borrow(self)});
}
pub fn getBlockStateId(self: BlockDisplayEntity) u16 {
return abi.call(raw.@"[method]block-display-entity.get-block-state-id", u16, .{abi.borrow(self)});
}
pub fn setBlockStateId(self: BlockDisplayEntity, state_id: u16) void {
return abi.call(raw.@"[method]block-display-entity.set-block-state-id", void, .{ abi.borrow(self), state_id });
}
/// Keeps the handle alive past the current callback. Release it with `deinit`.
pub fn keep(self: BlockDisplayEntity) void {
abi.keep(BlockDisplayEntity, self);
}
/// Releases the handle now instead of when the callback returns.
pub fn deinit(self: BlockDisplayEntity) void {
abi.drop(BlockDisplayEntity, self);
}
};
/// Resource specifically for Item Display entities.
pub const ItemDisplayEntity = enum(u32) {
_,
pub const resource_drop = &raw.@"[resource-drop]item-display-entity";
pub fn fromEntity(entity: Entity) ?ItemDisplayEntity {
return abi.call(raw.@"[static]item-display-entity.from-entity", ?ItemDisplayEntity, .{abi.borrow(entity)});
}
pub fn getDisplay(self: ItemDisplayEntity) DisplayEntity {
return abi.call(raw.@"[method]item-display-entity.get-display", DisplayEntity, .{abi.borrow(self)});
}
pub fn getEntity(self: ItemDisplayEntity) Entity {
return abi.call(raw.@"[method]item-display-entity.get-entity", Entity, .{abi.borrow(self)});
}
pub fn getItem(self: ItemDisplayEntity) ?ItemStack {
return abi.call(raw.@"[method]item-display-entity.get-item", ?ItemStack, .{abi.borrow(self)});
}
pub fn setItem(self: ItemDisplayEntity, item: ?ItemStack) void {
return abi.call(raw.@"[method]item-display-entity.set-item", void, .{ abi.borrow(self), item });
}
pub fn getItemDisplayMode(self: ItemDisplayEntity) ItemDisplayMode {
return abi.call(raw.@"[method]item-display-entity.get-item-display-mode", ItemDisplayMode, .{abi.borrow(self)});
}
pub fn setItemDisplayMode(self: ItemDisplayEntity, mode: ItemDisplayMode) void {
return abi.call(raw.@"[method]item-display-entity.set-item-display-mode", void, .{ abi.borrow(self), mode });
}
/// Keeps the handle alive past the current callback. Release it with `deinit`.
pub fn keep(self: ItemDisplayEntity) void {
abi.keep(ItemDisplayEntity, self);
}
/// Releases the handle now instead of when the callback returns.
pub fn deinit(self: ItemDisplayEntity) void {
abi.drop(ItemDisplayEntity, self);
}
};
/// Resource specifically for Text Display entities.
pub const TextDisplayEntity = enum(u32) {
_,
pub const resource_drop = &raw.@"[resource-drop]text-display-entity";
pub fn fromEntity(entity: Entity) ?TextDisplayEntity {
return abi.call(raw.@"[static]text-display-entity.from-entity", ?TextDisplayEntity, .{abi.borrow(entity)});
}
pub fn getDisplay(self: TextDisplayEntity) DisplayEntity {
return abi.call(raw.@"[method]text-display-entity.get-display", DisplayEntity, .{abi.borrow(self)});
}
pub fn getEntity(self: TextDisplayEntity) Entity {
return abi.call(raw.@"[method]text-display-entity.get-entity", Entity, .{abi.borrow(self)});
}
pub fn getText(self: TextDisplayEntity) TextComponent {
return abi.call(raw.@"[method]text-display-entity.get-text", TextComponent, .{abi.borrow(self)});
}
/// Consumes `text_`.
pub fn setText(self: TextDisplayEntity, text_: TextComponent) void {
return abi.call(raw.@"[method]text-display-entity.set-text", void, .{ abi.borrow(self), text_ });
}
pub fn getLineWidth(self: TextDisplayEntity) i32 {
return abi.call(raw.@"[method]text-display-entity.get-line-width", i32, .{abi.borrow(self)});
}
pub fn setLineWidth(self: TextDisplayEntity, width: i32) void {
return abi.call(raw.@"[method]text-display-entity.set-line-width", void, .{ abi.borrow(self), width });
}
pub fn getBackground(self: TextDisplayEntity) i32 {
return abi.call(raw.@"[method]text-display-entity.get-background", i32, .{abi.borrow(self)});
}
pub fn setBackground(self: TextDisplayEntity, color: i32) void {
return abi.call(raw.@"[method]text-display-entity.set-background", void, .{ abi.borrow(self), color });
}
pub fn getTextOpacity(self: TextDisplayEntity) i8 {
return abi.call(raw.@"[method]text-display-entity.get-text-opacity", i8, .{abi.borrow(self)});
}
pub fn setTextOpacity(self: TextDisplayEntity, opacity: i8) void {
return abi.call(raw.@"[method]text-display-entity.set-text-opacity", void, .{ abi.borrow(self), opacity });
}
pub fn getShadow(self: TextDisplayEntity) bool {
return abi.call(raw.@"[method]text-display-entity.get-shadow", bool, .{abi.borrow(self)});
}
pub fn setShadow(self: TextDisplayEntity, shadow: bool) void {
return abi.call(raw.@"[method]text-display-entity.set-shadow", void, .{ abi.borrow(self), shadow });
}
pub fn getSeeThrough(self: TextDisplayEntity) bool {
return abi.call(raw.@"[method]text-display-entity.get-see-through", bool, .{abi.borrow(self)});
}
pub fn setSeeThrough(self: TextDisplayEntity, see_through: bool) void {
return abi.call(raw.@"[method]text-display-entity.set-see-through", void, .{ abi.borrow(self), see_through });
}
pub fn getDefaultBackground(self: TextDisplayEntity) bool {
return abi.call(raw.@"[method]text-display-entity.get-default-background", bool, .{abi.borrow(self)});
}
pub fn setDefaultBackground(self: TextDisplayEntity, default_background: bool) void {
return abi.call(raw.@"[method]text-display-entity.set-default-background", void, .{ abi.borrow(self), default_background });
}
pub fn getAlignment(self: TextDisplayEntity) TextAlignment {
return abi.call(raw.@"[method]text-display-entity.get-alignment", TextAlignment, .{abi.borrow(self)});
}
pub fn setAlignment(self: TextDisplayEntity, alignment: TextAlignment) void {
return abi.call(raw.@"[method]text-display-entity.set-alignment", void, .{ abi.borrow(self), alignment });
}
/// Keeps the handle alive past the current callback. Release it with `deinit`.
pub fn keep(self: TextDisplayEntity) void {
abi.keep(TextDisplayEntity, self);
}
/// Releases the handle now instead of when the callback returns.
pub fn deinit(self: TextDisplayEntity) void {
abi.drop(TextDisplayEntity, self);
}
};
/// Resource specifically for Interaction entities.
pub const InteractionEntity = enum(u32) {
_,
pub const resource_drop = &raw.@"[resource-drop]interaction-entity";
pub fn fromEntity(entity: Entity) ?InteractionEntity {
return abi.call(raw.@"[static]interaction-entity.from-entity", ?InteractionEntity, .{abi.borrow(entity)});
}
pub fn getEntity(self: InteractionEntity) Entity {
return abi.call(raw.@"[method]interaction-entity.get-entity", Entity, .{abi.borrow(self)});
}
pub fn getWidth(self: InteractionEntity) f32 {
return abi.call(raw.@"[method]interaction-entity.get-width", f32, .{abi.borrow(self)});
}
pub fn setWidth(self: InteractionEntity, width: f32) void {
return abi.call(raw.@"[method]interaction-entity.set-width", void, .{ abi.borrow(self), width });
}
pub fn getHeight(self: InteractionEntity) f32 {
return abi.call(raw.@"[method]interaction-entity.get-height", f32, .{abi.borrow(self)});
}
pub fn setHeight(self: InteractionEntity, height: f32) void {
return abi.call(raw.@"[method]interaction-entity.set-height", void, .{ abi.borrow(self), height });
}
pub fn getResponse(self: InteractionEntity) bool {
return abi.call(raw.@"[method]interaction-entity.get-response", bool, .{abi.borrow(self)});
}
pub fn setResponse(self: InteractionEntity, response: bool) void {
return abi.call(raw.@"[method]interaction-entity.set-response", void, .{ abi.borrow(self), response });
}
pub fn getLastAttacker(self: InteractionEntity) ?Uuid {
return abi.call(raw.@"[method]interaction-entity.get-last-attacker", ?Uuid, .{abi.borrow(self)});
}
pub fn getLastInteraction(self: InteractionEntity) ?Uuid {
return abi.call(raw.@"[method]interaction-entity.get-last-interaction", ?Uuid, .{abi.borrow(self)});
}
/// Keeps the handle alive past the current callback. Release it with `deinit`.
pub fn keep(self: InteractionEntity) void {
abi.keep(InteractionEntity, self);
}
/// Releases the handle now instead of when the callback returns.
pub fn deinit(self: InteractionEntity) void {
abi.drop(InteractionEntity, self);
}
};
const raw = struct {
extern "pumpkin:plugin/display@0.1.0" fn @"[static]display-entity.from-entity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-entity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-transformation"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-transformation"(i32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-interpolation-duration"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-interpolation-duration"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-interpolation-start"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-interpolation-start"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-teleport-duration"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-teleport-duration"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-billboard"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-billboard"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-view-range"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-view-range"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-shadow-radius"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-shadow-radius"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-shadow-strength"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-shadow-strength"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-display-width"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-display-width"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-display-height"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-display-height"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-glow-color-override"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-glow-color-override"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.get-brightness"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]display-entity.set-brightness"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[static]block-display-entity.from-entity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]block-display-entity.get-display"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]block-display-entity.get-entity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]block-display-entity.get-block-state-id"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]block-display-entity.set-block-state-id"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[static]item-display-entity.from-entity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.get-display"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.get-entity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.get-item"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.set-item"(i32, i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.get-item-display-mode"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]item-display-entity.set-item-display-mode"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[static]text-display-entity.from-entity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-display"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-entity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-text"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-text"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-line-width"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-line-width"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-background"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-background"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-text-opacity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-text-opacity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-shadow"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-shadow"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-see-through"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-see-through"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-default-background"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-default-background"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.get-alignment"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]text-display-entity.set-alignment"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[static]interaction-entity.from-entity"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-entity"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-width"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.set-width"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-height"(i32) f32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.set-height"(i32, f32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-response"(i32) i32;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.set-response"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-last-attacker"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[method]interaction-entity.get-last-interaction"(i32, i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[resource-drop]display-entity"(i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[resource-drop]block-display-entity"(i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[resource-drop]item-display-entity"(i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[resource-drop]text-display-entity"(i32) void;
extern "pumpkin:plugin/display@0.1.0" fn @"[resource-drop]interaction-entity"(i32) void;
};