基础说明

:::success{title=太棒了!}

  • 新版接口用法将更为方便、人性化
  • 依旧对旧版接口使用方法兼容 :::

LASystem 面向对象接口使用说明(v1.2.0)

为提升代码可读性、可维护性与开发者体验,灵免以太系统接口自 v1.2.0 起引入统一面向对象访问风格,替代传统函数式调用。通过实体、方块等数据对象的封装,开发者可更直观地以“操作对象”而非“操作 ID”的方式书写逻辑,显著减少参数传递冗余、命名混杂及接口分散问题。

一、接口风格变化对比

  • 旧版调用(函数式):
# 获取实体属性
self.LA.GetAttrValue(EntityId, AttrKey)
# 获取实体位置
self.LA.GetEntityPos(EntityId)
  • 新版调用(面向对象式):
# 获取属性、修改属性
LASystem.Entity(EntityId).GetAttrValue(AttrKey)
LASystem.Entity(EntityId).SetAttrValue(AttrKey, NewValue=10)
# 获取实体位置
LASystem.Entity(EntityId).GetEntityPos()

或者更流式访问的新版语法(OneEntity 模型):

# 获取实体位置
Position = LASystem.OneEntity(EntityId).Position
# 获取实体单个实例
TheEntity = LASystem.OneEntity(EntityId)
# 修改实体血量
TheEntity.Health = 10
# 实体中文名称
ChineseName = TheEntity.ChineseName

二、设计理念

  • 所有逻辑以实体、方块为“第一对象”:行为与数据聚合于对象本身
  • 方法分布清晰:Entity → 行为方法类;OneEntity → 常用属性封装访问器
  • 支持链式读写、自动提示:结构化后 IDE 补全能力显著增强
  • 减少口令式函数命名:替代冗余方法如 GetAttrXXX、SetXYZZZ 系列

三、接口结构示例

1️⃣ Entity(EntityId)(函数访问风格)

用于访问面向功能的方法接口,例如:

  • GetAttrValue()
  • SetAttrValue()
  • SetImmuneDamage()
  • GetEntitySize()
  • GetEntityChineseName()
  • SetEntityOnFire()

2️⃣ OneEntity(EntityId)(属性流式访问)

用于访问实体所有常用核心属性,支持属性式快速读写,例如:

  • 实体血量 :OneEntity.Health
  • 移动速度 :OneEntity.Speed
  • 缩放倍率 :OneEntity.Scale
  • 坐标位置 :OneEntity.Position
  • 自定义名称 :OneEntity.CustomName = "灵免以太"

3️⃣ Block(BlockPos)(方块对象接口)

继承同一访问风格,用于对特定方块坐标进行操作,例如:

  • 获取方块信息:Block().GetBlockDictByPos()
  • 放置方块:Block().CheckAndSetBlockByPos()
  • 设置奖励箱:Block().SetChestReward()

☑️ 四、优势总结

  • 调用书写更自然(object.method/attribute);
  • 提升开发体验(补全、工具链支持更好);
  • 模块解耦,便于后期拓展实体组件等系统;
  • 更贴合现代 Python 开发者的使用习惯;
  • 接口分类明确,避免场景型命名混乱。

更多面向对象、流式接口请使用IDE补全

评论交流

文档目录

灵免以太