[0.15.16] Imported blueprint has entities shifted

Bugs that we were not able to reproduce, and/or are waiting for more detailed info.
Post Reply
blindestman
Manual Inserter
Manual Inserter
Posts: 3
Joined: Tue May 30, 2017 12:00 am
Contact:

[0.15.16] Imported blueprint has entities shifted

Post by blindestman »

Hello,

I am using a collection of blueprints that must be old or something, I have noticed that when I am pasting like this it looks very strange. It also pastes down differently than what it looked liked, even the splitters are in a different place relatively.

Here is the blueprint string but I orginially imported the entire blueprint book and I don't have the original just the one in game. Here is the book if anyone wants that.

Let me know if you need any more information, this is my first time on a forum in 5+ years so I am sorry if I did something wrong, I did not see an email to send bug reports to it just refers here.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.15.16]

Post by TruePikachu »

Hm, I'll pull that blueprint string apart to see if there's some odd offsets in it...

Code: Select all

{"blueprint":{"icons":[{"signal":{"type":"item","name":"assembling-machine-2"},"index":1}],"entities":[{"entity_number":1,"name":"assembling-machine-2","position":{"x":-2.5,"y":-11.5},"recipe":"pump"},{"entity_number":2,"name":"steel-chest","position":{"x":-6.5,"y":-11.5},"bar":1},{"entity_number":3,"name":"fast-inserter","position":{"x":-4.5,"y":-10.5},"direction":6},{"entity_number":4,"name":"long-handed-inserter","position":{"x":-4.5,"y":-11.5},"direction":2},{"entity_number":5,"name":"transport-belt","position":{"x":-5.5,"y":-10.5}},{"entity_number":6,"name":"long-handed-inserter","position":{"x":-0.5,"y":-10.5},"direction":2},{"entity_number":7,"name":"transport-belt","position":{"x":1.5,"y":-10.5}},{"entity_number":8,"name":"transport-belt","position":{"x":-6.5,"y":-8.5},"direction":2},{"entity_number":9,"name":"transport-belt","position":{"x":-5.5,"y":-9.5}},{"entity_number":10,"name":"transport-belt","position":{"x":-5.5,"y":-8.5}},{"entity_number":11,"name":"inserter","position":{"x":-3.5,"y":-9.5},"direction":4},{"entity_number":12,"name":"medium-electric-pole","position":{"x":-2.5,"y":-9.5}},{"entity_number":13,"name":"assembling-machine-2","position":{"x":-2.5,"y":-7.5},"direction":6,"recipe":"electric-engine-unit"},{"entity_number":14,"name":"transport-belt","position":{"x":1.5,"y":-9.5}},{"entity_number":15,"name":"transport-belt","position":{"x":1.5,"y":-8.5}},{"entity_number":16,"name":"underground-belt","position":{"x":-6.5,"y":-7.5},"type":"output"},{"entity_number":17,"name":"steel-chest","position":{"x":-6.5,"y":-6.5},"bar":1},{"entity_number":18,"name":"long-handed-inserter","position":{"x":-4.5,"y":-6.5},"direction":2},{"entity_number":19,"name":"long-handed-inserter","position":{"x":-0.5,"y":-6.5},"direction":2},{"entity_number":20,"name":"transport-belt","position":{"x":1.5,"y":-6.5}},{"entity_number":21,"name":"transport-belt","position":{"x":1.5,"y":-7.5}},{"entity_number":22,"name":"assembling-machine-2","position":{"x":4.5,"y":-6.5},"recipe":"assembling-machine-3"},{"entity_number":23,"name":"fast-inserter","position":{"x":6.5,"y":-6.5},"direction":2},{"entity_number":24,"name":"steel-chest","position":{"x":7.5,"y":-6.5}},{"entity_number":25,"name":"long-handed-inserter","position":{"x":6.5,"y":-7.5},"direction":6},{"entity_number":26,"name":"steel-chest","position":{"x":8.5,"y":-7.5},"bar":1},{"entity_number":27,"name":"steel-chest","position":{"x":-6.5,"y":-4.5},"bar":1},{"entity_number":28,"name":"long-handed-inserter","position":{"x":-4.5,"y":-4.5},"direction":2},{"entity_number":29,"name":"medium-electric-pole","position":{"x":-2.5,"y":-5.5}},{"entity_number":30,"name":"inserter","position":{"x":-3.5,"y":-5.5},"direction":4},{"entity_number":31,"name":"assembling-machine-2","position":{"x":-2.5,"y":-3.5},"recipe":"engine-unit"},{"entity_number":32,"name":"long-handed-inserter","position":{"x":-0.5,"y":-4.5},"direction":2},{"entity_number":33,"name":"transport-belt","position":{"x":1.5,"y":-5.5}},{"entity_number":34,"name":"transport-belt","position":{"x":1.5,"y":-4.5}},{"entity_number":35,"name":"fast-inserter","position":{"x":3.5,"y":-4.5},"direction":4},{"entity_number":36,"name":"medium-electric-pole","position":{"x":4.5,"y":-4.5}},{"entity_number":37,"name":"underground-belt","position":{"x":-6.5,"y":-3.5},"type":"input"},{"entity_number":38,"name":"transport-belt","position":{"x":-6.5,"y":-2.5}},{"entity_number":39,"name":"transport-belt","position":{"x":-5.5,"y":-3.5}},{"entity_number":40,"name":"fast-inserter","position":{"x":-4.5,"y":-3.5},"direction":6},{"entity_number":41,"name":"long-handed-inserter","position":{"x":-4.5,"y":-2.5},"direction":6},{"entity_number":42,"name":"transport-belt","position":{"x":-5.5,"y":-2.5}},{"entity_number":43,"name":"transport-belt","position":{"x":1.5,"y":-2.5}},{"entity_number":44,"name":"transport-belt","position":{"x":1.5,"y":-3.5}},{"entity_number":45,"name":"fast-inserter","position":{"x":2.5,"y":-2.5},"direction":6},{"entity_number":46,"name":"assembling-machine-2","position":{"x":4.5,"y":-2.5},"recipe":"assembling-machine-2"},{"entity_number":47,"name":"fast-inserter","position":{"x":6.5,"y":-2.5},"direction":2},{"entity_number":48,"name":"long-handed-inserter","position":{"x":6.5,"y":-3.5},"direction":6},{"entity_number":49,"name":"transport-belt","position":{"x":7.5,"y":-2.5}},{"entity_number":50,"name":"steel-chest","position":{"x":8.5,"y":-3.5},"bar":2},{"entity_number":51,"name":"transport-belt","position":{"x":-6.5,"y":-1.5}},{"entity_number":52,"name":"underground-belt","position":{"x":-6.5,"y":-0.5},"type":"output"},{"entity_number":53,"name":"fast-inserter","position":{"x":-4.5,"y":-0.5},"direction":6},{"entity_number":54,"name":"transport-belt","position":{"x":-5.5,"y":-1.5}},{"entity_number":55,"name":"long-handed-inserter","position":{"x":-4.5,"y":-1.5},"direction":6},{"entity_number":56,"name":"transport-belt","position":{"x":-5.5,"y":-0.5}},{"entity_number":57,"name":"assembling-machine-2","position":{"x":-2.5,"y":-0.5},"recipe":"chemical-plant"},{"entity_number":58,"name":"long-handed-inserter","position":{"x":-0.5,"y":-0.5},"direction":2},{"entity_number":59,"name":"transport-belt","position":{"x":0.5,"y":-0.5}},{"entity_number":60,"name":"transport-belt","position":{"x":0.5,"y":-1.5}},{"entity_number":61,"name":"transport-belt","position":{"x":1.5,"y":-0.5}},{"entity_number":62,"name":"transport-belt","position":{"x":1.5,"y":-1.5}},{"entity_number":63,"name":"fast-inserter","position":{"x":3.5,"y":-0.5},"direction":4},{"entity_number":64,"name":"long-handed-inserter","position":{"x":2.5,"y":-1.5},"direction":6},{"entity_number":65,"name":"medium-electric-pole","position":{"x":4.5,"y":-0.5}},{"entity_number":66,"name":"transport-belt","position":{"x":7.5,"y":-0.5}},{"entity_number":67,"name":"transport-belt","position":{"x":7.5,"y":-1.5}},{"entity_number":68,"name":"steel-chest","position":{"x":-6.5,"y":0.5},"bar":2},{"entity_number":69,"name":"long-handed-inserter","position":{"x":-4.5,"y":0.5},"direction":2},{"entity_number":70,"name":"transport-belt","position":{"x":-5.5,"y":0.5}},{"entity_number":71,"name":"transport-belt","position":{"x":-5.5,"y":1.5}},{"entity_number":72,"name":"medium-electric-pole","position":{"x":-2.5,"y":1.5}},{"entity_number":73,"name":"transport-belt","position":{"x":1.5,"y":0.5}},{"entity_number":74,"name":"transport-belt","position":{"x":0.5,"y":1.5}},{"entity_number":75,"name":"transport-belt","position":{"x":1.5,"y":1.5}},{"entity_number":76,"name":"transport-belt","position":{"x":0.5,"y":0.5}},{"entity_number":77,"name":"fast-inserter","position":{"x":2.5,"y":1.5},"direction":6},{"entity_number":78,"name":"assembling-machine-2","position":{"x":4.5,"y":1.5},"recipe":"assembling-machine-1"},{"entity_number":79,"name":"fast-inserter","position":{"x":6.5,"y":1.5},"direction":2},{"entity_number":80,"name":"transport-belt","position":{"x":7.5,"y":0.5}},{"entity_number":81,"name":"transport-belt","position":{"x":7.5,"y":1.5}},{"entity_number":82,"name":"underground-belt","position":{"x":-6.5,"y":3.5},"type":"input"},{"entity_number":83,"name":"steel-chest","position":{"x":-6.5,"y":2.5},"bar":2},{"entity_number":84,"name":"transport-belt","position":{"x":-5.5,"y":3.5}},{"entity_number":85,"name":"transport-belt","position":{"x":-5.5,"y":2.5}},{"entity_number":86,"name":"fast-inserter","position":{"x":-4.5,"y":3.5},"direction":6},{"entity_number":87,"name":"long-handed-inserter","position":{"x":-4.5,"y":2.5},"direction":2},{"entity_number":88,"name":"assembling-machine-2","position":{"x":-2.5,"y":3.5},"recipe":"pumpjack"},{"entity_number":89,"name":"long-handed-inserter","position":{"x":-0.5,"y":3.5},"direction":2},{"entity_number":90,"name":"transport-belt","position":{"x":0.5,"y":3.5}},{"entity_number":91,"name":"transport-belt","position":{"x":1.5,"y":3.5}},{"entity_number":92,"name":"transport-belt","position":{"x":0.5,"y":2.5}},{"entity_number":93,"name":"transport-belt","position":{"x":1.5,"y":2.5}},{"entity_number":94,"name":"long-handed-inserter","position":{"x":2.5,"y":2.5},"direction":6},{"entity_number":95,"name":"medium-electric-pole","position":{"x":4.5,"y":3.5}},{"entity_number":96,"name":"transport-belt","position":{"x":7.5,"y":2.5}},{"entity_number":97,"name":"transport-belt","position":{"x":7.5,"y":3.5}},{"entity_number":98,"name":"transport-belt","position":{"x":-7.5,"y":5.5},"direction":2},{"entity_number":99,"name":"transport-belt","position":{"x":-6.5,"y":5.5}},{"entity_number":100,"name":"transport-belt","position":{"x":-6.5,"y":4.5}},{"entity_number":101,"name":"long-handed-inserter","position":{"x":-4.5,"y":4.5},"direction":6},{"entity_number":102,"name":"transport-belt","position":{"x":-5.5,"y":4.5}},{"entity_number":103,"name":"transport-belt","position":{"x":-5.5,"y":5.5}},{"entity_number":104,"name":"transport-belt","position":{"x":-4.5,"y":5.5},"direction":6},{"entity_number":105,"name":"splitter","position":{"x":-2.5,"y":6},"direction":6},{"entity_number":106,"name":"transport-belt","position":{"x":-3.5,"y":5.5},"direction":6},{"entity_number":107,"name":"transport-belt","position":{"x":0.5,"y":5.5}},{"entity_number":108,"name":"transport-belt","position":{"x":1.5,"y":5.5}},{"entity_number":109,"name":"transport-belt","position":{"x":0.5,"y":4.5}},{"entity_number":110,"name":"transport-belt","position":{"x":1.5,"y":4.5}},{"entity_number":111,"name":"assembling-machine-2","position":{"x":4.5,"y":5.5},"recipe":"repair-pack"},{"entity_number":112,"name":"fast-inserter","position":{"x":2.5,"y":5.5},"direction":6},{"entity_number":113,"name":"long-handed-inserter","position":{"x":6.5,"y":4.5},"direction":6},{"entity_number":114,"name":"fast-inserter","position":{"x":6.5,"y":5.5},"direction":2},{"entity_number":115,"name":"transport-belt","position":{"x":7.5,"y":4.5}},{"entity_number":116,"name":"transport-belt","position":{"x":7.5,"y":5.5}},{"entity_number":117,"name":"steel-chest","position":{"x":8.5,"y":4.5},"bar":4},{"entity_number":118,"name":"splitter","position":{"x":-7,"y":6.5}},{"entity_number":119,"name":"fast-inserter","position":{"x":-6.5,"y":7.5},"direction":4},{"entity_number":120,"name":"medium-electric-pole","position":{"x":-3.5,"y":7.5}},{"entity_number":121,"name":"transport-belt","position":{"x":-3.5,"y":6.5}},{"entity_number":122,"name":"fast-inserter","position":{"x":-1.5,"y":7.5},"direction":4},{"entity_number":123,"name":"transport-belt","position":{"x":-1.5,"y":6.5},"direction":6},{"entity_number":124,"name":"transport-belt","position":{"x":1.5,"y":6.5}},{"entity_number":125,"name":"transport-belt","position":{"x":0.5,"y":6.5}},{"entity_number":126,"name":"transport-belt","position":{"x":1.5,"y":7.5}},{"entity_number":127,"name":"transport-belt","position":{"x":0.5,"y":7.5}},{"entity_number":128,"name":"assembling-machine-2","position":{"x":4.5,"y":8.5},"recipe":"iron-gear-wheel"},{"entity_number":129,"name":"transport-belt","position":{"x":6.5,"y":6.5},"direction":2},{"entity_number":130,"name":"splitter","position":{"x":7,"y":7.5}},{"entity_number":131,"name":"transport-belt","position":{"x":7.5,"y":6.5}},{"entity_number":132,"name":"assembling-machine-2","position":{"x":-5.5,"y":9.5},"recipe":"pipe"},{"entity_number":133,"name":"assembling-machine-2","position":{"x":-2.5,"y":9.5},"recipe":"iron-gear-wheel"},{"entity_number":134,"name":"transport-belt","position":{"x":1.5,"y":8.5}},{"entity_number":135,"name":"transport-belt","position":{"x":0.5,"y":8.5}},{"entity_number":136,"name":"transport-belt","position":{"x":0.5,"y":9.5}},{"entity_number":137,"name":"transport-belt","position":{"x":1.5,"y":9.5}},{"entity_number":138,"name":"long-handed-inserter","position":{"x":2.5,"y":9.5},"direction":6},{"entity_number":139,"name":"long-handed-inserter","position":{"x":2.5,"y":8.5},"direction":6},{"entity_number":140,"name":"transport-belt","position":{"x":7.5,"y":8.5}},{"entity_number":141,"name":"fast-inserter","position":{"x":6.5,"y":8.5},"direction":6},{"entity_number":142,"name":"fast-inserter","position":{"x":-4.5,"y":11.5},"direction":4},{"entity_number":143,"name":"fast-inserter","position":{"x":-2.5,"y":11.5},"direction":4},{"entity_number":144,"name":"fast-inserter","position":{"x":-3.5,"y":11.5},"direction":4},{"entity_number":145,"name":"transport-belt","position":{"x":1.5,"y":10.5}},{"entity_number":146,"name":"transport-belt","position":{"x":0.5,"y":10.5}},{"entity_number":147,"name":"transport-belt","position":{"x":0.5,"y":11.5}},{"entity_number":148,"name":"transport-belt","position":{"x":1.5,"y":11.5}},{"entity_number":149,"name":"medium-electric-pole","position":{"x":3.5,"y":10.5}},{"entity_number":150,"name":"transport-belt","position":{"x":2.5,"y":11.5},"direction":6},{"entity_number":151,"name":"transport-belt","position":{"x":3.5,"y":11.5},"direction":6},{"entity_number":152,"name":"transport-belt","position":{"x":-4.5,"y":12.5},"direction":6},{"entity_number":153,"name":"medium-electric-pole","position":{"x":-4.5,"y":13.5}},{"entity_number":154,"name":"transport-belt","position":{"x":-3.5,"y":12.5},"direction":6},{"entity_number":155,"name":"transport-belt","position":{"x":-2.5,"y":12.5},"direction":6},{"entity_number":156,"name":"transport-belt","position":{"x":-1.5,"y":12.5},"direction":6},{"entity_number":157,"name":"transport-belt","position":{"x":-0.5,"y":12.5},"direction":6},{"entity_number":158,"name":"splitter","position":{"x":0,"y":13.5}},{"entity_number":159,"name":"transport-belt","position":{"x":0.5,"y":12.5}},{"entity_number":160,"name":"transport-belt","position":{"x":2.5,"y":12.5},"direction":2},{"entity_number":161,"name":"transport-belt","position":{"x":3.5,"y":12.5}},{"entity_number":162,"name":"transport-belt","position":{"x":2.5,"y":13.5}},{"entity_number":163,"name":"transport-belt","position":{"x":4.5,"y":13.5}},{"entity_number":164,"name":"transport-belt","position":{"x":4.5,"y":12.5},"direction":6}],"item":"blueprint","label":"Early production of basic items","version":64425558017}}
I don't see anything odd right now, does the bug persist if you reload the individual blueprint string?

blindestman
Manual Inserter
Manual Inserter
Posts: 3
Joined: Tue May 30, 2017 12:00 am
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by blindestman »

Yes it does. I loaded it from the link I provided and it gives the same offset.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by TruePikachu »

What mods do you have installed?

blindestman
Manual Inserter
Manual Inserter
Posts: 3
Joined: Tue May 30, 2017 12:00 am
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by blindestman »

None, I do not use mods.

User avatar
MasterBuilder
Filter Inserter
Filter Inserter
Posts: 348
Joined: Sun Nov 23, 2014 1:22 am
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by MasterBuilder »

Was this perhaps converted from a really old (pre 0.15) BP string? (Like from the era of 0.12 or 0.13?) I don't remember when the change was, but, there was once a breaking change in BP strings that caused entities to 'shift' like that and appear off-center.
Give a man fire and he'll be warm for a day. Set a man on fire and he'll be warm for the rest of his life.

User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5150
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by Klonan »

Thanks for the report,

Are you able to reproduce the issue entirely in 0.15, exporting and importing a string?

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by TruePikachu »

Klonan wrote:Thanks for the report,

Are you able to reproduce the issue entirely in 0.15, exporting and importing a string?
I can confirm that the individually-exported string is 0.15-format, and they report that importing it again keeps the issue. I haven't attempted loading it in-game yet, though.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by TruePikachu »

I am able to confirm that the imported blueprint string exhibits the bug:
20170530121427_1.jpg
20170530121427_1.jpg (389.59 KiB) Viewed 2718 times
Curiously, the blueprint preview doesn't appear to have issues:
20170530121436_1.jpg
20170530121436_1.jpg (309.74 KiB) Viewed 2718 times
I'll compare the splitter positions with a known-valid blueprint.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by TruePikachu »

Hm, this is interesting. I just checked the 2->2 balancer from the blueprint book of balancers currently on the wiki, and wrote up some code to aggregate the entity positions for easy comparison. Here is the output from the 2->2 balancer:

Code: Select all

? (let ((*print-length* 20)(*print-right-margin* 80)(*print-pretty* t))(pprint-linear *standard-output* (index-entity-offsets *control-blueprint*)))
((:EXPRESS-SPLITTER (#C(-0.5 0.0)))
 (:EXPRESS-TRANSPORT-BELT (#C(-1 -1) #C(-1 1) #C(0 -1) #C(0 1))))
NIL
And here is the output from the bugged blueprint:

Code: Select all

? (let ((*print-length* 20)(*print-right-margin* 80)(*print-pretty* t))(pprint-linear *standard-output* (index-entity-offsets *bugged-blueprint*)))
((:ASSEMBLING-MACHINE-2
  (#C(-5.5 9.5) #C(-2.5 -11.5) #C(-2.5 -7.5) #C(-2.5 -3.5) #C(-2.5 -0.5)
   #C(-2.5 3.5) #C(-2.5 9.5) #C(4.5 -6.5) #C(4.5 -2.5) #C(4.5 1.5) #C(4.5 5.5)
   #C(4.5 8.5)))
 (:FAST-INSERTER
  (#C(-6.5 7.5) #C(-4.5 -10.5) #C(-4.5 -3.5) #C(-4.5 -0.5) #C(-4.5 3.5)
   #C(-4.5 11.5) #C(-3.5 11.5) #C(-2.5 11.5) #C(-1.5 7.5) #C(2.5 -2.5)
   #C(2.5 1.5) #C(2.5 5.5) #C(3.5 -4.5) #C(3.5 -0.5) #C(6.5 -6.5) #C(6.5 -2.5)
   #C(6.5 1.5) #C(6.5 5.5) #C(6.5 8.5)))
 (:INSERTER (#C(-3.5 -9.5) #C(-3.5 -5.5)))
 (:LONG-HANDED-INSERTER
  (#C(-4.5 -11.5) #C(-4.5 -6.5) #C(-4.5 -4.5) #C(-4.5 -2.5) #C(-4.5 -1.5)
   #C(-4.5 0.5) #C(-4.5 2.5) #C(-4.5 4.5) #C(-0.5 -10.5) #C(-0.5 -6.5)
   #C(-0.5 -4.5) #C(-0.5 -0.5) #C(-0.5 3.5) #C(2.5 -1.5) #C(2.5 2.5)
   #C(2.5 8.5) #C(2.5 9.5) #C(6.5 -7.5) #C(6.5 -3.5) #C(6.5 4.5)))
 (:MEDIUM-ELECTRIC-POLE
  (#C(-4.5 13.5) #C(-3.5 7.5) #C(-2.5 -9.5) #C(-2.5 -5.5) #C(-2.5 1.5)
   #C(3.5 10.5) #C(4.5 -4.5) #C(4.5 -0.5) #C(4.5 3.5)))
 (:SPLITTER (#C(-7.0 6.5) #C(-2.5 6.0) #C(0.0 13.5) #C(7.0 7.5)))
 (:STEEL-CHEST
  (#C(-6.5 -11.5) #C(-6.5 -6.5) #C(-6.5 -4.5) #C(-6.5 0.5) #C(-6.5 2.5)
   #C(7.5 -6.5) #C(8.5 -7.5) #C(8.5 -3.5) #C(8.5 4.5)))
 (:TRANSPORT-BELT
  (#C(-7.5 5.5) #C(-6.5 -8.5) #C(-6.5 -2.5) #C(-6.5 -1.5) #C(-6.5 4.5)
   #C(-6.5 5.5) #C(-5.5 -10.5) #C(-5.5 -9.5) #C(-5.5 -8.5) #C(-5.5 -3.5)
   #C(-5.5 -2.5) #C(-5.5 -1.5) #C(-5.5 -0.5) #C(-5.5 0.5) #C(-5.5 1.5)
   #C(-5.5 2.5) #C(-5.5 3.5) #C(-5.5 4.5) #C(-5.5 5.5) #C(-4.5 5.5) ...))
 (:UNDERGROUND-BELT (#C(-6.5 -7.5) #C(-6.5 -3.5) #C(-6.5 -0.5) #C(-6.5 3.5))))
NIL
Notice that, for instance, the belt positions in the known-good blueprint are all integers, while they are all (n+0.5) in the bugged blueprint. So I check the limits of the coordinates in each set, since things might be centered on a single point, you know?

Code: Select all

? (defun get-coord-limits (coord-list)
    (loop :with x-min = most-positive-fixnum
          :with x-max = most-negative-fixnum
          :with y-min = most-positive-fixnum
          :with y-max = most-negative-fixnum
          :for coord :in coord-list
          :for x = (realpart coord)
          :for y = (imagpart coord)
          :do (setq x-min (min x-min x)
                    x-max (max x-max x)
                    y-min (min y-min y)
                    y-max (max y-max y))
          :finally (return (values
                             (complex x-min y-min)
                             (complex x-max y-max)))))
GET-COORD-LIMITS
? (get-coord-limits (reduce #'append (mapcar #'cadr (index-entity-offsets *control-blueprint*))))
#C(-1 -1)
#C(0 1)
? (get-coord-limits (reduce #'append (mapcar #'cadr (index-entity-offsets *bugged-blueprint*))))
#C(-7.5 -11.5)
#C(8.5 13.5)
The bugged blueprint isn't centered on the "reference point", while the known-good blueprint is centered vertically but is off-by-half horizontally.

I take it the "version" field is the version of the game that exported the blueprint, versus the version that created the blueprint?

Rseding91
Factorio Staff
Factorio Staff
Posts: 13210
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.15.16] Imported blueprint has entities shifted

Post by Rseding91 »

If anyone can reproduce this problem with a blueprint string *created* in 0.15 using the in-game export-as-string option and then imported in 0.15 let us know the steps you did.

If you're taking blueprints created with the old blueprint string mod in old versions of the game and "migrating" them into the 0.15 base-game format then there's a good chance you're simply "migrating" them wrong.
If you want to get ahold of me I'm almost always on Discord.

Post Reply

Return to “Pending”