首先,本人不能保证代码完全正确,若出现任何逻辑bug或游戏中的bug,本贴立即删除
本人下学期高三,暑假不能再写模组了,所以把这段逻辑公布出来
首先定义一些东西:连接方向(east:1,west:2,north:4,south:8,up:16,down:32)
连接的状态由计分板blockstate记录
机器:包括发电机和用电器
CMD:CustomModelData缩写
机器:由木桶和其他什么方块加一个盔甲架构成
导线:由特定在地上的玩家头颅加一个盔甲架构成
棋子:检测导线连接的单元
拐点:棋子放置的标识
进入正片
导线:每刻先将blockstate归零,检测6方向是否有机器或导线,若有,增加其连接方向对应变量,并将统计编辑保存到marker头部的CMD
机器:每刻先将blockstate归零,检测6方向是否导线,若有,增加其连接方向对应变量,并将统计编辑保存到marker头部的CMD
检测放置机器:很简单,不多说,详细参照rua的教程贴
检测放置导线:如果方块追踪碰到特殊头颅,检测此格是否定义了导线,若未定义,将其定义;若定义了,则检测四周是否有未定义头颅,同时继续进行方块追踪
核心·导线连接
开始:由发电机放置一颗棋子,暂时把自己标记为“导线”,令棋子运行其主体函数,移除标记“导线”
主体:如果本格为“机器”且为“用电器”,则令其添加标签“需要供给”;让自己的blockstate加上本格的“机器”或“导线”的blockstate和本格“拐点”的blockstate,令拐点blockstate减去自己来时方向代表的数值,根据情况运行以下函数:
若blockstate为(1,2,4,8,16,32)运行对应方向的行走函数
若blockstate为(1..63,且不为1,2,4,8,16,32)运行拐点函数
若blockstate为(-63..0)运行返回拐点函数
行走:行走前令该格的拐点的blockstate减去行走方向代表的数值,行走后赋予自己blockstate为自己来时方向代表的数值*-1,回到主体函数
拐点:若没有拐点则放置拐点,并令其减去自己的来时方向代表的数值;若没有则无动作; 然后递归选出没有行走过的方向,执行行走函数
返回拐点:命令此点的拐点标记“死路”,检测是否有“拐点”但不是“死路”的拐点(实体),若没有,kill @s ;若有,令自己blockstate和来时方向数值归零,然后tp至任意有“拐点”但不是“死路”的拐点(实体),运行主体
这是大致的逻辑,然后是概念代码(有着一台机器原型和完整的导线逻辑函数,没有和方块放置有关的函数),或者说……源代码?
导线源代码.zip
(14.04 KB, 下载次数: 1)
如果真的可以实现,以后科技类的原版模组就有新的发展方向
希望没有火星
本人下学期高三,暑假不能再写模组了,所以把这段逻辑公布出来
首先定义一些东西:连接方向(east:1,west:2,north:4,south:8,up:16,down:32)
连接的状态由计分板blockstate记录
机器:包括发电机和用电器
CMD:CustomModelData缩写
机器:由木桶和其他什么方块加一个盔甲架构成
导线:由特定在地上的玩家头颅加一个盔甲架构成
棋子:检测导线连接的单元
拐点:棋子放置的标识
进入正片
导线:每刻先将blockstate归零,检测6方向是否有机器或导线,若有,增加其连接方向对应变量,并将统计编辑保存到marker头部的CMD
机器:每刻先将blockstate归零,检测6方向是否导线,若有,增加其连接方向对应变量,并将统计编辑保存到marker头部的CMD
检测放置机器:很简单,不多说,详细参照rua的教程贴
检测放置导线:如果方块追踪碰到特殊头颅,检测此格是否定义了导线,若未定义,将其定义;若定义了,则检测四周是否有未定义头颅,同时继续进行方块追踪
核心·导线连接
开始:由发电机放置一颗棋子,暂时把自己标记为“导线”,令棋子运行其主体函数,移除标记“导线”
主体:如果本格为“机器”且为“用电器”,则令其添加标签“需要供给”;让自己的blockstate加上本格的“机器”或“导线”的blockstate和本格“拐点”的blockstate,令拐点blockstate减去自己来时方向代表的数值,根据情况运行以下函数:
若blockstate为(1,2,4,8,16,32)运行对应方向的行走函数
若blockstate为(1..63,且不为1,2,4,8,16,32)运行拐点函数
若blockstate为(-63..0)运行返回拐点函数
行走:行走前令该格的拐点的blockstate减去行走方向代表的数值,行走后赋予自己blockstate为自己来时方向代表的数值*-1,回到主体函数
拐点:若没有拐点则放置拐点,并令其减去自己的来时方向代表的数值;若没有则无动作; 然后递归选出没有行走过的方向,执行行走函数
返回拐点:命令此点的拐点标记“死路”,检测是否有“拐点”但不是“死路”的拐点(实体),若没有,kill @s ;若有,令自己blockstate和来时方向数值归零,然后tp至任意有“拐点”但不是“死路”的拐点(实体),运行主体
这是大致的逻辑,然后是概念代码(有着一台机器原型和完整的导线逻辑函数,没有和方块放置有关的函数),或者说……源代码?

如果真的可以实现,以后科技类的原版模组就有新的发展方向
希望没有火星
这个帖子很优秀 学到了
有用

66666666666666666
666666656666666
楼主牛逼o( ̄▽ ̄)d