Page 1 of 1

Version 1.1.49

Posted: Tue Dec 07, 2021 5:31 pm
by FactorioBot
Bugfixes
  • Fixed transport belts picking up items on ground when rotated. (100693)
  • Fixed that game.map_settings.path_finder.fwd2bwd_ratio could be set to nonsensical values. (100785)
  • Fixed main menu track playing only once. (100787)
  • Fixed that units could get stuck close to their goal. (100348)
  • Fixed that the small research bar in a technology slot wouldn't show for the technology currently in research. (100789)
  • Fixed a crash which was caused by early garbage collection of LuaObject because LuaObject method closures didn't hold a back reference to the object. (57490)
  • Fixed barelling recipe icons having incorrect tint with index-based fluid color definitions. (100815)
  • Fixed barelling recipe icons having incorrect alpha with fluid color definitions in 0-255 range.
Scripting
  • LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.
  • LuaObject::isluaobject now returns true instead of a magic string.
  • Clarified LuaGameScript::finished. (99764)
  • Added LuaGameScript::finished_but_continuing read.
  • Added LuaGameScript::reset_game_state() method.
  • Implemented new website for Lua API documentation.
Use the automatic updater if you can (check experimental updates in other settings) or download full installation at http://www.factorio.com/download/experimental.

Re: Version 1.1.49

Posted: Tue Dec 07, 2021 6:06 pm
by ptx0
FactorioBot wrote:
Tue Dec 07, 2021 5:31 pm
  • LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.
will this allow someday serializing functions to global again?

Re: Version 1.1.49

Posted: Tue Dec 07, 2021 10:30 pm
by boskid
ptx0 wrote:
Tue Dec 07, 2021 6:06 pm
FactorioBot wrote:
Tue Dec 07, 2021 5:31 pm
  • LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.
will this allow someday serializing functions to global again?
No.

Re: Version 1.1.49

Posted: Wed Dec 08, 2021 9:48 am
by valneq
I never ran into a bug myself and I am seriously impressed how people still find these things, and kudos to the devs for fixing things that most people will never even run into! :D

Re: Version 1.1.49

Posted: Wed Dec 08, 2021 4:05 pm
by quyxkh
valneq wrote:
Wed Dec 08, 2021 9:48 am
I never ran into a bug myself and I am seriously impressed how people still find these things, and kudos to the devs for fixing things that most people will never even run into! :D
Too bad that doesn't apply to saving lua functions in global.

Re: Version 1.1.49

Posted: Wed Dec 08, 2021 5:58 pm
by ptx0
quyxkh wrote:
Wed Dec 08, 2021 4:05 pm
valneq wrote:
Wed Dec 08, 2021 9:48 am
I never ran into a bug myself and I am seriously impressed how people still find these things, and kudos to the devs for fixing things that most people will never even run into! :D
Too bad that doesn't apply to saving lua functions in global.
ROFL sometimes it's just easier to not do it.

personally i'm wondering what it would take... not like they haven't added and deleted code from their Lua impl.

Re: Version 1.1.49

Posted: Thu Dec 09, 2021 11:11 am
by Mernom
I'm surprised that nobody reported the music not looping for so long.
Then again, I noticed it and didn't report it, too, so perhaps?

Also, considering the default delays in the music while playing, perhaps some people assumed it's intended?

Re: Version 1.1.49

Posted: Thu Dec 09, 2021 11:19 am
by Klonan
Mernom wrote:
Thu Dec 09, 2021 11:11 am
Also, considering the default delays in the music while playing, perhaps some people assumed it's intended?
Some of us did too, maybe, it was some very ancient code

Re: Version 1.1.49

Posted: Thu Dec 09, 2021 8:52 pm
by Koub
Mernom wrote:
Thu Dec 09, 2021 11:11 am
I'm surprised that nobody reported the music not looping for so long.
viewtopic.php?p=522256#p522256

Re: Version 1.1.49

Posted: Wed Dec 22, 2021 10:14 pm
by fredthedeadhead
FactorioBot wrote:
Tue Dec 07, 2021 5:31 pm
  • LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.
Would it be possible to access this encoded data it in a mod, and then document it so I can decode it in another environment?

I'm interested in efficient (both in terms of speed and compactness) data storage so I can stream a lot of events out of Factorio (more details in a post I made)

Re: Version 1.1.49

Posted: Wed Dec 22, 2021 11:15 pm
by boskid
fredthedeadhead wrote:
Wed Dec 22, 2021 10:14 pm
FactorioBot wrote:
Tue Dec 07, 2021 5:31 pm
  • LuaObjects are now saved using binary format instead of previous format with intermediate Lua table. This speeds up general handling of LuaObjects and makes saving and loading with a lot of them noticable faster.
Would it be possible to access this encoded data it in a mod, and then document it so I can decode it in another environment?

I'm interested in efficient (both in terms of speed and compactness) data storage so I can stream a lot of events out of Factorio (more details in a post I made)
I think you may not be fully aware what this change means. LuaObject in almost all cases is only a proxy object which points to some core game objects: for example there is LuaEntityPrototype which works only as a pointer to the EntityPrototype exposing some of its fields to the lua. In order to save LuaEntityPrototype in the binary format serialiser only has to write a lua object type value (LuaEntityPrototypeType = 15) and then it needs to save the ID of the prototype which in most cases is 2 bytes. None of the specific values of prototypes are saved, its just only data required to restore those pointers so they point back to the same core objects after loading or are invalidated if those objects no longer exist.

If there would be a mechanism to push a large chunks of lua data (like numbers, strings, tables with multiple references and cyclical references) into a blob of data so it can be exposed, it would most likely never contain LuaObjects because they would be useless anyway outside of the game context. What would be the purpose of knowing that LuaEntity was pointing at an Entity for which targeter index was 12345 when saving if the targeter indexes are not stable enough to be useful without recreating entire targeter system internals.