Croparia IF Docs

|

通用

Section
开发者
共 10 个一级导航项
    开发者
    核心模块

      作物嬗变仪

    Repo API

Repo API

Repo API 是 Croparia IF 为了实现多模组平台存储交互而建立的一组抽象与代理接口。当前默认只内置了物品与流体两种资源类型,主要用于方块或方块实体的存储暴露与访问。

Repo 的访问限制模型采用“分离式出入锁定”:

  • acceptconsume 分别有自己的锁定状态
  • 锁定是视图级过滤,不会改写底层仓库本身
  • capacityFor(...)amountFor(...) 仍然返回底层原始查询结果,不会因为锁定而变化
  • 常用的锁定入口是 lockAccept(...)lockConsume(...)lock(...)
  • 这些锁定视图最终都建立在 DelegateRepo 之上,因此可以继续链式组合,并在需要时通过 trim() 压平成单层包装

相关代码位于:cool.muyucloud.croparia.api.repo 包名下。

基本架构

Repo API 主要由资源仓库 Repo、接口注册机 ProxyProvider、仓库代理 RepoProxy,以及平台代理接口 PlatformItemProxyPlatformFluidProxy 构成。

  • Repo: 通用模块下的直接交互层。它以槽位索引为基准,建立了一套资源存储视图。
  • DelegateRepo:对 Repo 进行轻量包装,用来叠加出入锁定这类视图级限制。
  • RepoProxy:对 Repo 进行包装以适配不同模组平台。
  • ProxyProvider:将 RepoProxy 注册进具体模组平台,以保证它能被外部的存储系统发现。
  • PlatformItemProxy / PlatformFluidProxy:对各个平台物品或流体存储接口的统一代理包装,保证通用模块能够以 Repo 风格访问它们。

此外,Repo API 使用了 Resource API 来管理资源种类。

导航

In This Page
Repo API
当前页面没有可提取的二级及以下标题。