部件接口体系

基本信息

属性 值
包 uk.co.qmunity.lib.part
Java 文件 27
其中接口 21
其中非接口 6(3 类 + 1 抽象类 + 1 final 类 + 1 枚举)
玩家可见 否(纯 API)

功能

IPart 是本库的核心契约:一个「部件」占据多方块方块内的一个格子, 下游模组实现该接口即可让部件参与渲染、碰撞、红石与交互。

IPart 本身 extends IWorldLocation(IPart.java:28),提供 getTile()、getWorld()、getPos()、getSide()、getPartType() 等通用操作。

21 个接口逐个列出

按 part 包下 public interface 声明实读,非按命名猜测:

接口 语义
IPart 主接口,部件通用契约
IMicroblock 微方块能力
ITilePartHolder 部件容器宿主(由 TileMultipart 实现)
IPartCenter 中心部件
IPartFactory 部件工厂(供注册表反序列化用)
IPartFace 面向(面朝向)
IPartCollidable 碰撞
IPartOccluding 光照遮挡
IPartThruHole 允许打洞穿透
IPartSolid 实心
IPartInteractable 交互
IPartSelectable 可被选择
IPartSelectableCustom 自定义选择
IPartPlacement 放置规则
IPartCustomPlacement 自定义放置
IPartRenderPlacement 渲染放置
IPartRedstone 红石
IPartTicking 刻
IPartUpdateListener 更新监听
IPartRandomDisplayTick 随机显示刻
IPartWAILAProvider WAILA 信息提供者

6 个非接口文件

它们不是接口,容易因命名误判:

文件 实测类型 行号
PartBase public abstract class ... implements IPart PartBase.java:31
PartNormallyOccluded public final class ... extends PartBase implements IPartOccluding PartNormallyOccluded.java:11
PartPlacementDefault public class ... implements IPartPlacement PartPlacementDefault.java:8
PartPlacementFace public class ... implements IPartPlacement PartPlacementFace.java:9
PartRegistry public class PartRegistry.java:6
MicroblockShape public enum MicroblockShape.java:3

已知缺陷

  1. 命名具有误导性:PartPlacementDefault / PartPlacementFace / PartNormallyOccluded 三个类的名字与 IPartPlacement / IPartOccluding 接口几乎同名,但它们是具体实现类而非接口。按「文件名以 I 开头即接口」 或按名字猜类型都会判错。

相关条目