- Add additional can_atmos_pass value ATMOS_PASS_PROC which indicates custom behavior requiring calling the CanZASPass proc.
- The benefit being for the other three values we DON'T need to call CanZASPass at all! We already know the behavior without the overhead of a proc call.
- Obviously any atom with can_atmos_pass = ATMOS_PASS_PROC cannot now call ..() in CanZASPass() since the default behavior would be to (recursively) call CanZASPass()
- This required re-numbering the constants, so I also fixed all code that assumed particular values for the constants.
- Switched all types which overrode CanZASPass with custom logic to be can_atmos_pass = ATMOS_PASS_PROC
- Changed /turf/c_airblock() to skip calling /atom/movable/c_airblock() for the three can_atmos_pass values that don't require calling the proc.
- CanZASPass is supposed to return boolean. Nobody noticed this bug because ATMOS_PASS_YES and ATMOS_PASS_NO happen to be defined as 1 and 0. But thats not a good assumption to make, so lets fix it!
- This was caused by create_spores() being called on seeds which were not registered with the plant_controller (becuase they had never been harvested)
- Instead of registering them, we can just pass the seed datum itself, that is all the chemsmoke needs anyway.
Heres the big bug fix and improvement update, first to list improvements and then fixes.
Custom max limit for vore bellies, so can be lower than 100 units.
Mechanical pref window now shows receiving and giving prefs.
receiving and giving prefs are now saved to client and no longer have to be set each shift, beta period is over so no need to make people actively activate the transfer system for fun stuff.
changed reagent rate system, now is fixed settings that allows even 24 hours time from 0 to 10, though there is no persistency system yet as its being reconsider how to implement without causing issues.
Changed up code to be less messy.
Made so attack logs for transfer are certain, to ensure griefers and such can be caught.
Custom name for reagents! Will affect what it is called when transfered and when spilling on floor, doesnt change actual chems name.
Transfer verb as well! So can be things like inject, pump, and other words for how liquid is transfered from a belly.
Custom puddle system! Spilling enough liquid spawns a puddle of that reagents color, with custom name affecting name and description!
Custom sloshing noise system, allows individual bellies to be enabled to slosh louder and more frequently with how much is in them, no worries, made it so the system just bases chance on the highest volume at a given time and not spam sounds, also the sloshing noises are tied to digestion noises preference for those not wishing to hear that stuff. A big thanks to wheatley for supplying some audio files for the sloshing!
bug fixing
made adjacancy check to transfer to avoid long distance liquid transfer, thats silly.
Fixed issue where failed attempt to find a container would result in succesful message even though nothing occurs.