[boskid][1.1.109] LuaFluidBoxPrototype equality comparison is wrong
Posted: Tue Aug 06, 2024 11:28 am
To reproduce:
1. Install KS Power.
2. Start a new game, place KS Power's Oil Boiler. Observe that it has three distinct fluidboxes.
3. Execute command: Observe that it outputs true, thus the game claims those two fluidbox prototypes are equal when they obviously aren't.
Why this is a bug:
But you may look at those prototypes and object "They look the same, it's just comparing them field-by-field!". Except it's only some fields. Connections are different, don't count. Filters are different! Nope, irrelevant. It neither indicates that it's the same fluidbox prototype nor does it indicate that the two prototypes are interchangeable.
Expected behavior:
Equality comparison between two LuaObjects indicates that they both refer to the same underlying object. Or, if not that, at least some sane and meaningful result.
1. Install KS Power.
2. Start a new game, place KS Power's Oil Boiler. Observe that it has three distinct fluidboxes.
3. Execute command:
Code: Select all
/c local fbs = game.entity_prototypes['oil-steam-boiler'].fluidbox_prototypes game.print(fbs[1]==fbs[3])
Why this is a bug:
But you may look at those prototypes and object "They look the same, it's just comparing them field-by-field!". Except it's only some fields. Connections are different, don't count. Filters are different! Nope, irrelevant. It neither indicates that it's the same fluidbox prototype nor does it indicate that the two prototypes are interchangeable.
Expected behavior:
Equality comparison between two LuaObjects indicates that they both refer to the same underlying object. Or, if not that, at least some sane and meaningful result.