= 创作分享 =
编程开发
[1.20.1-Forge]Klux Mod开发直播/想法收集
Kadar_Visico

[1.20.1-Forge]Klux Mod开发直播/想法收集

Kadar_Visico 于 2025-8-11 00:15 ( 5月前 ) [复制链接] [显示全部楼层] [打印]
Kadar_Visico
又给这家伙加了一个升级槽,可以放反转升级,也就是把它的湮灭模式变成只对非敌对生物有效
目前有两种生物不能被湮灭者消灭,一个是恶魂(碰撞箱比较奇怪,有点不好搞),一个是熊猫(不由分说
2025-08-20_21.07.11.jpg 2025-08-20_21.07.29.jpg
其实这个东西吸取生物并进行湮灭的逻辑很简单粗暴,就是单纯的分了几个类,大部分生物都是可以在我指定的半径里被消灭的,只有少数几个碰撞箱比较奇怪的我单独拿出来定义了一下半径范围。所以如果遇到别的mod的生物,这个东西的兼容性可能就不是很好,等看看以后能不能想到个更好的办法来做这个,不过现在基本上所有原版生物都能被完美支持了,就先不管那么多了。如果这个东西遇到无法消灭的生物(生物的实际碰撞箱不在它的湮灭范围内),生物会被一直吸附在这个方块上,相当于吸铁石(有点难绷
屏幕截图 2025-08-20 211124.jpg
简单暴力的写法,发出来不怕被笑话(
发表于 2025-8-20 21:16:52 | 显示全部楼层

回复 | 举报

Kadar_Visico
Kadar_Visico 发表于 2025-8-20 21:16
又给这家伙加了一个升级槽,可以放反转升级,也就是把它的湮灭模式变成只对非敌对生物有效
目前有两种生物 ...

恶魂和熊猫不会被吸附在方块上,这两个在检测里边如果遇到就是直接跳过了。如果出现生物被吸附在方块上的情况,那大概率是别的mod的生物(碰撞箱比较奇怪的那种)引起的
发表于 2025-8-20 21:20:10 | 显示全部楼层

回复 | 举报

Kadar_Visico
最终还是把能量系统加入了,有些机器还是挺破坏平衡的,如果完全不需要能量有点超标了(
目前只是让这些机器有了能量能力,但是还没有自己的线缆、发电机之类的,这个看情况实现吧(
机器大概会有4个能量等级,还有一类型的机器仍然不需要能量(比如图2最前边那俩钢铁外壳的),那些是属于设备一类,本mod的毕业机器群
能量标准:
I级——储能16000FE,最大输入192FE/t,耗能64FE/t;
II级——储能48000FE,最大输入512FE/t,耗能192FE/t;
III级——待定
IV级——储能256000FE,最大输入8192FE/t,耗能2048FE/t。
至于为什么III级的数据没有反而有IV级的,是因为宝石复制机是先做出来的,这个机器的功能足以让它成为IV级机器,毕竟是可以无限复制任何宝石的逆天玩意,还是得付出点成本的(
注:这里的最大输入只是个上限值,也就是说无论你用多大电压的发电机给机器输入能量,它每t最多都只能接受不超过最大值的电量,也就是不会出现电量秒充满的情况。而且我不会引入像IC2一样的电压过载爆炸机制,所以就放心吧(误)
2025-08-22_14.21.35~1.jpg 2025-08-22_21.07.20.jpg 2025-08-22_21.18.34.jpg
发表于 2025-8-22 21:27:52 | 显示全部楼层

回复 | 举报

Kadar_Visico
Kadar_Visico 发表于 2025-8-22 21:27
最终还是把能量系统加入了,有些机器还是挺破坏平衡的,如果完全不需要能量有点超标了(
目前只是让这些机 ...

为了方便搞能量能力,专门写了一个基类BaseEnergyBlockEntity来把重复的东西丢进去,然后就可以直接在构造函数里调用父类构造了Screen和Menu类也是令人头大的东西,为了方便,我也弄了一个helper类来避免写很多重复又麻烦的东西
关于能量的渲染系统,则是参考了沉浸工程的源码
屏幕截图 2025-08-22 213506.png
屏幕截图 2025-08-22 213109.png
0b52a5cb-c1e5-4ecd-8e39-8d1a6a4f179b.png

发表于 2025-8-22 21:39:03 | 显示全部楼层

回复 | 举报

Kadar_Visico
本帖最后由 Kadar_Visico 于 2025-8-22 21:49 编辑
Kadar_Visico 发表于 2025-8-22 21:27
最终还是把能量系统加入了,有些机器还是挺破坏平衡的,如果完全不需要能量有点超标了(
目前只是让这些机 ...

中间还遇到一个小坑,因为onEnergyChanged()是在每次机器的能量改变的时候被调用的,这个东西主要是发送一个同步包来保证客户端和服务端的能量同步,以此让GUI里的能量条和提示信息能够被正确渲染。然而还有一种情况是机器有能量,但处于闲置状态,这个时候就需要单独写一个C2S包来把这个东西从客户端传回服务端,才能在正确同步这个数值,否则就需要手动调用onEnergyChanged()来触发同步。这个东西我是测试了几次才发现的,因为工作状态下所有东西都是正常的,因此我一直没发现。直到有一次烘干机的输出槽满了,我进游戏发现它的能量变成了0,然而线缆的传输又没有问题,就很迷。直到最后我就把输出槽的东西拿出来了,发现能量立刻变成了满状态,才意识到不对劲(
发表于 2025-8-22 21:47:57 | 显示全部楼层

回复 | 举报

Kadar_Visico
用电器一定要有电!所以我做了发电机功能很简单(也很老套)的发电机,烧煤发电可真是传统艺能了(
做了JEI兼容,可能还会做个配置文件让玩家自己添加支持的燃料

2025-08-23_12.51.12.jpg 2025-08-23_12.51.23.jpg

发表于 2025-8-23 13:22:38 | 显示全部楼层

回复 | 举报

Kadar_Visico
又啃下一块硬骨头,能量线缆!逻辑应该是没问题了,接下来是模型(感觉也会很麻烦)
线缆的核心——网络架构采用了BFS(广度优先搜索)算法,来保证网络中的每个线缆方块都能被查找到并且正确纳入网络
而工作的模式和IC2的差不多,内部没有缓存,只发挥类似于管道的作用进行能量传输,当网络内有用电器时才会传输能量,否则就是普通的方块,不产生任何行为

2025-08-23_18.07.01.jpg 2025-08-23_18.13.23.jpg

发表于 2025-8-23 19:44:22 | 显示全部楼层

回复 | 举报

Kadar_Visico
线缆的所有工作终于完成!一整天就忙活这玩意了
在这里狠狠地给TechReborn(科技复兴)致谢!!!!!(虽然人家是个Fabric Mod)
因为线缆的贴图、模型文件各种都是直接抄他们的,在连接和blockstate的同步逻辑部分,也参考了他们的一些代码
简直就是活爹,接下来我只要修改一下贴图就可以完全应用了!!
2025-08-23_21.31.13.jpg
发表于 2025-8-23 21:34:28 | 显示全部楼层

回复 | 举报

Kadar_Visico
Kadar_Visico 发表于 2025-8-23 21:34
线缆的所有工作终于完成!一整天就忙活这玩意了
在这里狠狠地给TechReborn(科技复兴)致谢!!!!!(虽 ...

测了一下这个线缆的传输速率和上限。
线缆的传输速率和布局网络的拓扑结构有关,它没有理论上限。因为最大的传输速率只由两个参数决定:
1. 线缆方块的数量N
2. 每个线缆方块的MAX_TRANSFER_PER_TICK(这是代码内部的数值,目前是写死的320)
所以理论的最大传输量 T = N * 320
因此,在这个网络里,没有绝对的上限。但是布局效率会影响实际值,如果网络是网格状的或环状的,那么网络会分散能量,就会导致实际传输量会低于理论值。
为了达到某种布局下的理论最大值,可以这样做:
(1)树状汇聚网络;
(2)每个源沿唯一路径输出。
下图是一种12x13的汇聚网络,其实际传输速率达到了49860FE/t,接近该模式下的理论最大值49920FE/t
01.jpg
发表于 2025-8-23 23:17:27 | 显示全部楼层

回复 | 举报

Kadar_Visico
加入了电池,以及每台机器都扩展了一个额外的槽位用来存放临时能源(红石也可以,换算和mek相同,1红石 = 4kFE,1红石块 = 36kFE)发电机就只能往外抽电,自身不接受外部电量输入
因为这个槽位判定的是有能量能力的物品(ForgeCapabilities.ENERGY),所以别的mod的电池,电容都能用,不用担心兼容问题
因为不同的mod实现IEnergyStorage的方法可能不一样,所以为了正常实现机器利用备用电源供电或者备用电源从发电机取电这俩功能,我的充/放电逻辑采用了simulate(模拟)来获取机器/电池实际需要的能量再实行充放电行为,这样就可以防止不同mod的能量物品在我的机器里出现超传、漏传等现象
2025-08-24_23.01.36.jpg 2025-08-24_22.58.29.jpg


发表于 2025-8-24 23:15:26 | 显示全部楼层

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表