= 创作分享 =
技术讨论
有关用集成动力进行多个格子内物品管理的讨论 ...
改了网名的人:

有关用集成动力进行多个格子内物品管理的讨论

改了网名的人: 于 2021-9-17 18:35 ( 2年前 ) [讨论] [复制链接] [显示全部楼层] [打印]
事情是这样的,我有一个抽屉墙,由于不好管理,我想通过集成动力的一些功能把抽屉内的每一种物品各放一组在一个金箱子里,当物品被取走时自动填充,同时把最下面的几个空位作为回收槽输送回抽屉管理器。 2021-09-17_18.25.30.png
简单来说,就是通过列表同时管理一个容器内多个格子中的内容,要求物品输入/输出/接口尽可能的少。


2021-09-17_18.24.08.png
发表于 2021-9-17 18:35:01 | 显示全部楼层 |阅读模式

回复 | 举报

该帖共收到 9 条回复!
改了网名的人:
可能讲得不够详细,我补充一下:
金箱子内要求每个格子内指定物品数量保持在64个,且不能混淆。
最下面的若干没有存放物品的格子内物品要输出到抽屉管理器内(大约4个格子)。
发表于 2021-9-17 18:41:44 | 显示全部楼层

回复 | 举报

改了网名的人:
@Nishiki 萌新求教,这可能是一道世界难题。
发表于 2021-9-18 11:08:47 | 显示全部楼层

回复 | 举报

Nishiki
本帖最后由 QQ酱73085 于 2021-9-19 17:25 编辑
改了网名的人: 发表于 2021-9-18 11:08
@Nishiki 萌新求教,这可能是一道世界难题。

说实话,最好是用有标记功能的箱子(就是设定某个格子只能存放什么物品的箱子),然后集成动力直接无脑输出就好。
方式1:输出接口每次动作最少抽取3个,需要有一定延时;因为64无法除尽3,这样始终会保留一个物品在接口容器中。然后往这个接口容器里存的时候尽可能存够64()。
    缺点:容器列表没装满的情况下要放置某个物品作为占位符防止错误存取。
方式2:准备一个一样大的容器,里面放置接口容器想要存放的物品。然后取该容器的物品表,根据这个表和索引往接口容器里输出物品。
    缺点:ID做出来似乎比较复杂。
然后回收槽还是比较简单,定一个频道作为回收槽,任何需要回收的物品往这个频道发送就完事。输出同理,将回收频道的物品发送到分流设备里进行分类。

发表于 2021-9-19 17:19:35 | 显示全部楼层

回复 | 举报

改了网名的人:
可是这个箱子是作为终端操作的(就是玩家直接通过箱子进行存取)

而且我后来看了一下,好像把下面多于1个指定格子进行抽取好像不太可能(因为回收槽内的东西实际上就是从箱子内其他槽中手贱取多了放回去的)。
我想到一个近似解:
对抽屉管理器和金箱子进行物品容器读取,并进行一次(!A)&&B运算,生成一个新的列表,存放着抽屉管理器内有的但是金箱子内没有的物品,按照这个列表输出即可。至于某些组内没有保持在64个的问题,可以通过装满度解决,如果“相差”列表为空但是金箱子的装满度不够,就尝试向金箱子中输出所有种类的物品,输出多了的就从回收槽内导回到抽屉管理器内。
发表于 2021-9-19 17:58:07 | 显示全部楼层

回复 | 举报

改了网名的人:
QQ酱73085 发表于 2021-9-19 17:19
说实话,最好是用有标记功能的箱子(就是设定某个格子只能存放什么物品的箱子),然后集成动力直接无脑输 ...

可是这个箱子是作为终端操作的(就是玩家直接通过箱子进行存取)

而且我后来看了一下,好像把下面多于1个指定格子进行抽取好像不太可能(因为回收槽内的东西实际上就是从箱子内其他槽中手贱取多了放回去的)。
我想到一个近似解:
对抽屉管理器和金箱子进行物品容器读取,并进行一次(!A)&&B运算,生成一个新的列表,存放着抽屉管理器内有的但是金箱子内没有的物品,按照这个列表输出即可。至于某些组内没有保持在64个的问题,可以通过装满度解决,如果“相差”列表为空但是金箱子的装满度不够,就尝试向金箱子中输出所有种类的物品,输出多了的就从回收槽内导回到抽屉管理器内。
发表于 2021-9-20 07:39:25 | 显示全部楼层

回复 | 举报

改了网名的人:
金箱子内第0~76格为物品存放的位置,第77~80格作为输出回抽屉管理器的回收槽,抽屉管理器内物品数量视为无穷多。
发表于 2021-9-20 07:41:37 | 显示全部楼层

回复 | 举报

Nishiki
本帖最后由 QQ酱73085 于 2021-9-20 15:21 编辑
改了网名的人: 发表于 2021-9-19 17:58
可是这个箱子是作为终端操作的(就是玩家直接通过箱子进行存取)

而且我后来看了一下,好像把下面多于1个 ...

哦,你是说把箱子最下面的几个格子当作回收槽啊。
id的接口不支持不输出哪几个格子。新增的过滤接口我没试过怎么用,也不清楚行不行。你需要找一个东西,它提供只从哪些格子抽取物品,只从哪些格子存入物品的功能。然后id接入这个接口。

好像可以,但是id的实现程序比较复杂。
首先,你要取得容器中的表。然后根据表存入物品,索引不得到达你设置的回收槽位。然后回收槽位再另外用一个接口遍历就好。

发表于 2021-9-20 15:05:17 | 显示全部楼层

回复 | 举报

改了网名的人:
QQ酱73085 发表于 2021-9-20 15:05
哦,你是说把箱子最下面的几个格子当作回收槽啊。
id的接口不支持不输出哪几个格子。新增的过滤接口我没试 ...

萌新不太了解具体怎么设置,能教我一下吗?
发表于 2021-9-20 17:52:37 | 显示全部楼层

回复 | 举报

Nishiki
改了网名的人: 发表于 2021-9-20 17:52
萌新不太了解具体怎么设置,能教我一下吗?

这个用id实现太麻烦了,不教。写的东西又臭又长。遇到问题不知道怎么解决就回复就行
发表于 2021-9-20 17:55:28 | 显示全部楼层

回复 | 举报

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

本版积分规则

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

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

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