Files
Bubberstation/code/game/objects/items/stacks/ammonia_crystals.dm
Arkatos1 ead0e859db Merge type variable fixes and unit test (#55173)
This PR fixes a case where certain materials caused issues when working with stacking machines, because they did not have set merge_type from the get go, which meant that initial() of that variable returned null.

To clarify further - if /obj/item/stack does not have set merge_type, it is generated merge_type upon Initialize(), which is the same as its typepath. For example, currently /obj/item/stack/sheet/bluespace_crystal does not have any merge_type set, and it is given merge_type = /obj/item/stack/sheet/bluespace_crystal upon Initialize(). Each Initialize(). Again and again.

There are quite a bit of these cases in the codebase, especially if its some older code. I have gone through them and set all of them their set merge_type, which they would inevitably receive anyway upon initializing and it fixes a bug mentioned above.

To prevent this happening again, I have also included unit test to check if merge types are set for stacks, included exceptions are usually abstract paths like /obj/item/stack/sheet/mineral, which contains zero behavior on its own and does not spawn unless done via admin tools.
2020-11-26 21:05:52 -05:00

11 lines
339 B
Plaintext

/obj/item/stack/ammonia_crystals
name = "ammonia crystals"
singular_name = "ammonia crystal"
icon = 'icons/obj/stack_objects.dmi'
icon_state = "ammonia_crystal"
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
max_amount = 50
grind_results = list(/datum/reagent/ammonia = 10)
merge_type = /obj/item/stack/ammonia_crystals