mirror of
https://github.com/CompeyDev/codenamer.luau.git
synced 2024-12-12 12:50:38 +00:00
82 lines
2 KiB
Text
82 lines
2 KiB
Text
--[[
|
|
examples/custom.luau
|
|
|
|
Description: A slightly modified version of the simple example, including
|
|
custom dictionaries.
|
|
]]--
|
|
|
|
local Codenamer = require("../dist/codenamer")
|
|
local stdio = require("@lune/stdio")
|
|
local process = require("@lune/process")
|
|
local task = require("@lune/task")
|
|
|
|
local INTERVAL_WAIT_TIME = 1
|
|
|
|
local _, count = xpcall(
|
|
function ()
|
|
return tonumber(stdio.prompt("text", "Number of codenames to be requested: "))
|
|
end,
|
|
|
|
function ()
|
|
warn("Please enter a valid number.")
|
|
process.exit(1)
|
|
end
|
|
)
|
|
local fmt_type = stdio.prompt(
|
|
"select",
|
|
"What type of formatting should the codenames use?",
|
|
{ "Phrase-like", "Variable-like" }
|
|
)
|
|
|
|
local sep: string?
|
|
|
|
if fmt_type == 1 then
|
|
sep = " "
|
|
elseif fmt_type == 2 then
|
|
sep = nil
|
|
end
|
|
|
|
|
|
local codenames: string | {[number]: string} = {}
|
|
|
|
print(`Generating codenames, expected wait time: {INTERVAL_WAIT_TIME * count}s.`)
|
|
|
|
|
|
local codenamer = Codenamer.new()
|
|
|
|
-- NOTE: It is recommended to cache built-in dictionaries into variables before passing
|
|
-- them to with_dictionary, as the internal dictionaries may be overwritten at any
|
|
-- time when a custom dictionary is specified.
|
|
local adjectives_dict = codenamer.Dicts[1]
|
|
local colors_dict = codenamer.Dicts[2]
|
|
|
|
codenamer
|
|
:with_dictionary(adjectives_dict) -- Adjectives built in dictionary
|
|
:with_dictionary(colors_dict) -- Colors built in dictionary
|
|
:with_dictionary({ "human", "alien", "animal" }) -- Custom dictionary
|
|
|
|
|
|
local i: number = 1
|
|
repeat
|
|
table.insert(
|
|
codenames,
|
|
codenamer:get_codename(sep)
|
|
)
|
|
|
|
i += 1
|
|
|
|
-- Gather some entropy by waiting
|
|
task.wait(INTERVAL_WAIT_TIME / 10)
|
|
until i - 1 == count
|
|
|
|
-- Codenamer also allows for optional separators. Here, we tell codenamer to
|
|
-- use a space instead of `_`, which is the default separator for words.
|
|
|
|
local fmt_arrow = "\n╰╸╾> "
|
|
|
|
codenames = table.concat(codenames, fmt_arrow)
|
|
|
|
print("===============")
|
|
print("Generated codenames:")
|
|
print(fmt_arrow .. codenames)
|
|
print("===============")
|