Block state to nbt#6
Closed
Anan1a wants to merge 17 commits into
Closed
Conversation
该类原本用于选择性隐藏模型部件,当前项目已不再需要此功能,移除冗余代码以清理代码库。
重构了动态纹理模型的整体设计,简化了状态解析流程,合并了重复的状态获取逻辑,将通用逻辑提取到StateResolver函数式接口中。同时重写了VersatileGearboxModel的注释和内部实现,优化了代码可读性和可维护性,统一了代码风格。
- 新增getStateModifier方法统一处理轴状态到方向修正值的转换 - 重构扳手右键交互的注释和逻辑结构,补充实现要点说明 - 统一代码格式和注释风格,提升可读性
…ate存储 重构了高级变速箱的核心状态逻辑: 1. 新增FaceStateContainer通用容器类,以NBT存储6个面的状态,突破BlockState枚举限制 2. 将方块状态从BlockState迁移至BlockEntity的NBT持久化存储,实现数据唯一来源 3. 重构动力计算逻辑,直接从BlockEntity读取面状态而非BlockState 4. 重写扳手交互逻辑,实现BlockState与NBT数据的同步更新 5. 优化渲染逻辑,优先使用BlockEntity导出的ModelData而非BlockState属性 6. 完善了状态更新的线程安全与数据一致性保障
1. 新增AdvancedGearboxShaftState枚举的next方法实现状态循环切换 2. 为AdvancedGearboxBlockEntity添加cycleShaftState方法简化交互逻辑 3. 实现TransformableBlockEntity接口支持蓝图旋转镜像 4. 移除VersatileGearbox的方块实体模型数据传递,简化渲染流程 5. 优化AdvancedGearboxBlock的javadoc注释与交互逻辑
1. 启用mod的mixin配置并创建对应混合类文件 2. 调整扳手交互逻辑,将客户端判断提前 3. 添加客户端缓存机制修复渲染数据同步问题 4. 重构高级齿轮箱模型渲染逻辑,新增缓存系统 5. 修复方块实体模型数据获取与更新流程
- 移除AdvancedGearboxBlockEntity的过时getFaceStatesSnapshot方法和getModelData重写 - 将渲染数据源从ModelData改为直接从方块实体读取面状态 - 重构BlockRenderDispatcherMixin,使用ThreadLocal桥接渲染上下文,避免修改原始ModelData - 注释掉自定义连接纹理配置,暂时使用Create原版安山机壳纹理 - 移除AdvancedGearboxModel的静态缓存和相关工具方法 - 简化渲染器逻辑,直接从方块实体获取轴状态而非方块状态 - 修复纹理连接问题
重构渲染数据注入流程,先通过state.getBlock()快速判断是否为高级齿轮箱,仅在匹配时才查询方块实体,避免不必要的BE查询开销,同时简化了ThreadLocal的清理逻辑
1. 为万能/高级齿轮箱添加 Create 标准扳手交互音效,替换原按钮音效 2. 重构高级齿轮箱传动轴状态枚举,统一渲染判断逻辑 3. 新增方向速度计算方法,统一渲染与可视化的速度计算 4. 移除过时的渲染实例动态增删逻辑,改为一次性初始化 5. 优化注释与代码结构,统一代码风格 6. 启用齿轮箱运行噪音
1. 重构传动轴状态枚举,新增纹理连接标记和速度倍率字段 2. 替换BlockState的轴状态属性为纹理连接布尔属性,移除旧的EnumProperty数组 3. 重命名BlockEntity内的面状态容器变量,统一NBT数据读写逻辑 4. 移除客户端侧的空交互代码,简化扳手交互流程 5. 简化速度倍率计算逻辑,复用枚举类的内置倍率值 6. 调整蓝图变换和方块旋转镜像的适配逻辑 7. 更新连接性检查和状态同步逻辑,确保数据一致性
1. 新增默认轴状态常量,统一初始化逻辑 2. 重构NBT存储格式,使用包裹键与复合标签规范序列化 3. 更新方向键名为大写枚举名,符合社区惯例 4. 优化反射调用性能,缓存枚举常量数组 5. 移除冗余的连接状态设置方法
重构万能变速箱的传动轴状态管理和渲染、速度计算逻辑: 1. 为VersatileGearboxShaftState添加状态属性和统一判断方法 2. 统一使用shouldRenderShaft()判断是否渲染传动轴 3. 移除冗余的渲染判断方法,合并速度计算逻辑到BE 4. 简化默认状态初始化代码 5. 统一Renderer和Visual的速度计算实现
更新了高级变速箱的配方、材质和模型,将原本的安山机壳相关材料替换为黄铜相关材料,同步调整了 advancement 解锁条件
1. 移除了BlockRenderDispatcherMixin和对应的mixin配置 2. 改用BE级getModelData和模型级gatherModelData的标准双通道方案 3. 移除ThreadLocal状态存储,统一通过ModelData传递渲染数据
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.