* select_recipe improvement
Removes the call to Timsort and the recipe comparator proc;
uses a handrolled implementation of
`argmax(items + reagents + fruit)` instead.
This reduces the memory footprint of `select_recipe`
as well as the amount of processing needed to select the optimal recipe.
* angelogchay
This simplifies some very old and bad code, and unifies the admin/non-admin printing to avoid duplicate code.
Also fixes a number of bugs caused by ambiguous parens and various linter errors.
* Message piece combiner returns a list
* Emote formatter returns a list
* Port Runechat
* Various onamonapoea
* Suggested changes, small opts
* Fix chat message on different size mobs
* Couple more runefixes
* Enable encoding chat emphasis in runechat
* Remove extra asterisks from rune audible messages
* Fix runedefines
* Refactor holomap generation
* Portable mapping units
* Fix misnamed state
* Make it small
* Reduce power usage
I didn't know you could use fractional amounts!
* Apply suggested changes, fix indent
* Fix icon_state bug
armour plate and armour plate inserts have the same sprite, name, and examine text in game. I can fix two of three things. You need to do stuff with amour plate inserts to make it fit in a plate carrier wile amour plate just will never fit
* Add CI annotations to compile errors/warnings.
* Update tools/ci/compile_and_run.sh
* temporary commit to cause a ton of compile errors
* fixes sed and output
* make the code compile again
* try to fix slowdown
* fuck
* Adds invalid recipe unit test
Checks for:
- Missing result type
- Result type is not /atom/movable (mob or obj)
- Result quantity unset
- Quantity less than or equal to zero
- Quantity is not an integer
* Update recipe_tests.dm
* adds tests to dme
* dont code at night (remix)
* Update recipe_tests.dm
* Fixes infinite loop following cooking error
```
while (select_recipe(available_recipes,C) == recipe)
var/list/TR = list()
TR += recipe.make_food(C)
```
This would never consume reagents due to an early return, meaning it would never terminate from the while loop. Clearing the reagents is an easy fix for something that will hopefully never happen, and avoids locking the server up if it does.
Also makes such failures obvious.
TODO: Unit test for recipes without results.
* Fixes/tweaks
* fix CI
* Makes deepspace levels slightly more robust
Port of https://github.com/VOREStation/VOREStation/pull/10408
This is supposed to fix oddities with the overmap system where occasionally deepspace sectors are not generated properly.
* Ports another Fix