Нет, вам не нужно создавать модуль. Если вы просто создаете foo.lua
, как это:
function double(n)
return n * 2
end
И тогда в вашем скрипте require 'foo'
вы сможете получить доступ к функции double
, как это было определено в том же скрипте. Эти функции не могут попасть в ваши локальные системы, но они создаются в одной и той же среде - все, что module 'name'
делает, это создает новую таблицу и сбрасывает текущую среду в эту таблицу.
Итак, вы можете просто сделать:
function slimefunc(...) stuff() end
В GameObjectUtils.lua
, а если вы require 'GameObjectUtils'
, то Slime
может просто использовать slimefunc
. Или, если вы хотите, чтобы это было в пространстве имен:
utils = {}
function utils.slimefunc(...) stuff() end
И он будет доступен как utils.slimefunc
. (Если вы сделаете это, вы должны быть очень осторожны, чтобы не допустить утечки ваших имен - рассудительно используйте местных жителей.)