无限工厂吧 关注:409贴子:2,718

【科研】Infinifactory无限工厂存档之方块存储格式研究

只看楼主收藏回复



IP属地:上海1楼2016-06-10 16:09回复
    备用


    IP属地:上海2楼2016-06-10 16:09
    回复
      目前已知:方块存储使用Base64编码,可能经过gzip压缩


      IP属地:上海3楼2016-06-10 16:12
      回复
        经本人测评,得到如下数据:
        (测评均于自定义关卡模式中进行)


        IP属地:上海4楼2016-06-10 16:13
        回复
          测试位置及个数
          初始一上1平台:AwAAAAEAAAASAAAAAQAAAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 00 = =
          初始二上1平台:AwAAAAEAAAASAAAAAgAAAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 32 00 00 00 00 00 02 00 00 = =
          初始三上1平台:AwAAAAEAAAASAAAAAwAAAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 48 00 00 00 00 00 02 00 00 = =
          初始四上1平台:AwAAAAEAAAASAAAABAAAAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 01 00 00 00 00 00 00 02 00 00 = =
          初始五上1平台:AwAAAAEAAAASAAAABQAAAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 01 16 00 00 00 00 00 02 00 00 = =
          初始一下1平台:AwAAAAEAAAASAAAA//8AAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 63 63 60 00 00 00 00 02 00 00 = =
          初始二下1平台:AwAAAAEAAAASAAAA/v8AAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 63 47 60 00 00 00 00 02 00 00 = =
          初始三下1平台:AwAAAAEAAAASAAAA/f8AAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 63 31 60 00 00 00 00 02 00 00 = =
          初始四下1平台:AwAAAAEAAAASAAAA/P8AAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 63 15 60 00 00 00 00 02 00 00 = =
          初始五下1平台:AwAAAAEAAAASAAAA+/8AAAACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 62 63 60 00 00 00 00 02 00 00 = =
          初始一上2平台:AwAAAAIAAAASAAAAAQAAAAACABIAAAACAAAAAAIA
          00 48 00 00 00 00 08 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 01 08 00 00 00 00 02 00 00 00 00 00 00 08 00
          初始二上2平台:AwAAAAIAAAASAAAAAgAAAAACABIAAAADAAAAAAIA
          00 48 00 00 00 00 08 00 00 00 00 18 00 00 00 00 00 32 00 00 00 00 00 02 00 01 08 00 00 00 00 03 00 00 00 00 00 00 08 00
          初始一上3平台:AwAAAAMAAAASAAAAAQAAAAACABIAAAACAAAAAAIAEgAAAAMAAAAAAgA=
          00 48 00 00 00 00 12 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 01 08 00 00 00 00 02 00 00 00 00 00 00 08 00 04 32 00 00 00 00 12 00 00 00 00 00 00 32 00 =
          初始一上4平台:AwAAAAQAAAASAAAAAQAAAAACABIAAAACAAAAAAIAEgAAAAMAAAAAAgASAAAABAAAAAACAA==
          00 48 00 00 00 00 16 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 01 08 00 00 00 00 02 00 00 00 00 00 00 08 00 04 32 00 00 00 00 12 00 00 00 00 00 00 32 00 18 00 00 00 00 01 00 00 00 00 00 00 02 00 00 = =
          初始一上5平台:AwAAAAUAAAASAAAAAQAAAAACABIAAAACAAAAAAIAEgAAAAMAAAAAAgASAAAABAAAAAACABIAAAAFAAAAAAIA
          00 48 00 00 00 00 20 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 01 08 00 00 00 00 02 00 00 00 00 00 00 08 00 04 32 00 00 00 00 12 00 00 00 00 00 00 32 00 18 00 00 00 00 01 00 00 00 00 00 00 02 00 01 08 00 00 00 00 05 00 00 00 00 00 00 08 00
          【定义初始块水平方向四面中唯一上下颠倒的一面为前面】
          初始一前1平台:AwAAAAEAAAASAAAAAAD//wACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 00 03 63 63 48 00 02 00 00 = =
          初始二前1平台:AwAAAAEAAAASAAAAAAD+/wACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 00 03 62 63 48 00 02 00 00 = =
          初始三前1平台:AwAAAAEAAAASAAAAAAD9/wACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 00 03 61 63 48 00 02 00 00 = =
          初始四前1平台:AwAAAAEAAAASAAAAAAD8/wACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 00 03 60 63 48 00 02 00 00 = =
          初始五前1平台:AwAAAAEAAAASAAAAAAD7/wACAA==
          00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 00 03 59 63 48 00 02 00 00 = =


          IP属地:上海5楼2016-06-10 16:13
          收起回复
            测试旋转
            初始一上1平台(原像,后):AwAAAAEAAAASAAAAAQAAAAACAA==
            00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 00 02 00 00 = =
            初始一上1平台(顺一,左):AwAAAAEAAAASAAAAAQAAAAMCAA==
            00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 12 02 00 00 = =
            初始一上1平台(顺二,前):AwAAAAEAAAASAAAAAQAAAAECAA==
            00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 04 02 00 00 = =
            初始一上1平台(顺三,右):AwAAAAEAAAASAAAAAQAAAAICAA==
            00 48 00 00 00 00 04 00 00 00 00 18 00 00 00 00 00 16 00 00 00 00 08 02 00 00 = =


            IP属地:上海6楼2016-06-10 16:19
            收起回复
              测试方块种类
              初始一上1平台:AwAAAAEAAAASAAAAAQAAAAACAA==
              初始一上1正送:AwAAAAEAAAABAAAAAQAAAAACAA==
              初始一上1横焊:AwAAAAEAAAAIAAAAAQAAAAACAA==
              初始一上1下焊:AwAAAAEAAACDAAAAAQAAAAACAA==
              初始一上1横感:AwAAAAEAAAAFAAAAAQAAAAACAA==
              初始一上1下感:AwAAAAEAAACVAAAAAQAAAAACAA==
              初始一上1拉杆:AwAAAAEAAACYAAAAAQAAAAAAAA==
              初始一上1顺旋:AwAAAAEAAAAnAAAAAQAAAAACAA==
              初始一上1逆旋:AwAAAAEAAAAZAAAAAQAAAAACAA==
              初始一上1活塞:AwAAAAEAAAAEAAAAAQAAAAACAA==
              初始一上1抬升:AwAAAAEAAACKAAAAAQAAAAACAA==
              初始一上1激光:AwAAAAEAAAAJAAAAAQAAAAACAA==
              初始一上1摧毁:AwAAAAEAAAARAAAAAQAAAAACAA==
              初始一上1横计:AwAAAAEAAAAPAAAAAQAAAAACAA==
              初始一上1下计:AwAAAAEAAAAQAAAAAQAAAAACAA==
              初始一上1下送:AwAAAAEAAAAAAAAAAQAAAAACAA==
              初始一上1管道:AwAAAAEAAAACAAAAAQAAAAACAA==
              初始一上1阻碍:AwAAAAEAAAAjAAAAAQAAAAACAA==


              IP属地:上海7楼2016-06-10 16:19
              收起回复
                附Base64序号表

                “="号用于凑位


                IP属地:上海8楼2016-06-10 16:35
                回复
                  楼主你是在Classic的关卡里试的?
                  这里面你的起点是一个另外放的叫“Starting Location”的一个方块,不是Original的初始块。。。


                  IP属地:广东来自iPhone客户端9楼2016-06-10 19:01
                  收起回复
                    欢迎大家补充


                    IP属地:上海10楼2016-06-10 22:26
                    回复
                      那么楼主你是在哪关试的
                      其他关似乎全是Starting Location为起点
                      Advanced的话你没法直接在Immovable方块上面放东西的


                      IP属地:广东来自iPhone客户端11楼2016-06-11 11:50
                      收起回复
                        好吧。。。
                        那是关卡编辑界面了吧
                        大概我搞错了
                        还有什么叫保存与读取源码?
                        (我好像没法在楼中楼里面回复你一直被度娘吞)


                        IP属地:广东来自iPhone客户端12楼2016-06-12 17:52
                        收起回复
                          话说不知道楼主有没有找到
                          我在编辑器里面完全找不到构成Fusion Reactor的方块和Crew Quarters的墙的方块
                          楼主有没有找到 我找了半天完全没发现


                          IP属地:广东来自iPhone客户端13楼2016-06-12 17:54
                          收起回复
                            这是我研究出来的保存格式:
                            (int)saveFormatVersion //保存格式版本
                            (int)blockCount //方块个数
                            [foreach block]
                            {
                            (short)G.Content.BlockTypes.GetSaveID(block.Type) //方块ID
                            (short)block.LogicalPosition.X //方块逻辑X坐标
                            (short)block.LogicalPosition.Y //方块逻辑Y坐标
                            (short)block.LogicalPosition.Z //方块逻辑Z坐标
                            (byte)block.Facing //方块朝向
                            if (block.Type.IsToggleSwitch) (byte)ToggleSwitchState else (byte)CounterTarget //拉杆箱状态,或者计数器目标
                            (byte)block.Decals.Count //贴花数量
                            [foreach block.Decals]
                            {
                            (byte)kvp.Key
                            (short)G.Content.DecalTypes.GetSaveID(kvp.Value.Type)
                            }
                            }
                            //byte 1字节,short 2字节,int 4字节


                            IP属地:上海17楼2016-10-15 12:27
                            回复

                              根据以上规则我们把例如
                              初始一上1平台:AwAAAAEAAAASAAAAAQAAAAACAA==
                              解码成16进制得到:
                              \x03 \x00 \x00 \x00 \x01 \x00 \x00 \x00
                              \x12 \x00 \x00 \x00 \x01 \x00 \x00 \x00
                              \x00 \x02 \x00


                              IP属地:上海18楼2016-10-15 12:30
                              回复