nyurik / fatul

Make Factorio blueprints easy to version in git, minimizing text changes.
MIT License
8 stars 2 forks source link

Crash from Duplicate Entity ID #2

Closed bcwhite-code closed 2 years ago

bcwhite-code commented 2 years ago

(main) ~/src/brians-blueprints> rm -rf self-building-spacex; fatul decode -v self-building-spacex Reading blueprint string from clipboard /usr/local/lib/python3.9/site-packages/pyperclip/init.py:536: UserWarning: Pyperclip's support for Cygwin is not perfect, see https://github.com/asweigart/pyperclip/issues/55 warnings.warn('Pyperclip\'s support for Cygwin is not perfect, see https://github.com/asweigart/pyperclip/issues/55') Processing Space Exploration (v0.11) usage: fatul [-h] {decode,d,dump,encode,e} ... fatul: error: Entity ID 8964 in blueprint_book.blueprints.5.8886 is not unique at (4272, 3240). We never anticipated this to happen with a real Factorio blueprint, so please report it at https://github.com/nyurik/fatul/issues

Traceback (most recent call last): File "/home/bcwhite/bin/fatul", line 154, in main args.func(args) File "/home/bcwhite/bin/fatul", line 167, in decode_cmd decode(args.source, args.destination, args.verbose, args.compact, args.sort, args.ids, File "/home/bcwhite/bin/fatul", line 188, in decode data = processor.decode(json_text) File "/home/bcwhite/bin/fatul", line 290, in decode self.process_ids(data, to_abs_ids=False) File "/home/bcwhite/bin/fatul", line 309, in process_ids self._process_ids_rec(data, [], to_abs_ids) File "/home/bcwhite/bin/fatul", line 325, in _process_ids_rec self._process_ids_rec(val, path, to_abs_ids) File "/home/bcwhite/bin/fatul", line 325, in _process_ids_rec self._process_ids_rec(val, path, to_abs_ids) File "/home/bcwhite/bin/fatul", line 332, in _process_ids_rec self._process_ids_rec(val, path, to_abs_ids) File "/home/bcwhite/bin/fatul", line 315, in _process_ids_rec bp.resolve_ids(path) File "/home/bcwhite/bin/fatul", line 437, in resolve_ids self._update_rel_ids(entity_data["entity_number"], entity_data) File "/home/bcwhite/bin/fatul", line 491, in _update_rel_ids self._update_rel_ids(entity_number, val, key) File "/home/bcwhite/bin/fatul", line 491, in _update_rel_ids self._update_rel_ids(entity_number, val, key) File "/home/bcwhite/bin/fatul", line 491, in _update_rel_ids self._update_rel_ids(entity_number, val, key) File "/home/bcwhite/bin/fatul", line 527, in _update_rel_ids self._update_rel_ids(entity_number, val) File "/home/bcwhite/bin/fatul", line 498, in _update_rel_ids rel_id = self._make_rel_id(entity_number, entity_id) File "/home/bcwhite/bin/fatul", line 536, in _make_rel_id raise ValueError(f"Entity ID {entity_id} in {entity.path} is not unique at {entity.pos}. \n" ValueError: Entity ID 8964 in blueprint_book.blueprints.5.8886 is not unique at (4272, 3240). We never anticipated this to happen with a real Factorio blueprint, so please report it at https://github.com/nyurik/fatul/issues

Not sure what specific information to provide. Full book is 3.5MB.

nyurik commented 2 years ago

@bcwhite-code i'm not even sure if i should be happy or sad. You found a limitation of Fatul, and I have a very good idea of how to work around it, but I have to see an example that breaks my assumption. Can you zip and attach the blueprint to the issues?

nyurik commented 2 years ago

fixed