Skip to content

Commit

Permalink
The phrase generator can express Naev generic names.
Browse files Browse the repository at this point in the history
  • Loading branch information
oo13 committed Jul 13, 2024
1 parent 9a2af97 commit b37e1f2
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 47 deletions.
36 changes: 32 additions & 4 deletions events/pilotname/generic.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ Copyright © 2021 bobbens@github
--]]

local static_phrase_generator = require "static_phrase_generator"
local phrase = require "phrase"

return function ()
local ph = static_phrase_generator.get("pilotname_generic")
local syntax = phrase.compile()

-- The weight of "main" is to normalize to 1.
ph:add(_([[
syntax:add(_([[
NAME =
Aurochs |
Axis |
Expand Down Expand Up @@ -118,7 +118,35 @@ return function ()
Wolf |
Wraith |
Zombie
]]))

-- "1" to "99" The rational person counts from zero.😆
syntax:add(_([[
_N19 = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
NUM = {_N19}{_N19} | {_N19} | {_N19}0
]]))

syntax:add(_([[
_I = I | II | III | IV | V | VI | VII | VIII | IX
_X = X | XX | XXX | XL | L | LX | LXX | LXXX | XC
ROMAN_NUM = {_X}{_I} | {_I} | {_X}
]]))

-- I doubt _NUMBER is intentional, but Naev does so.
syntax:add(_([[
_GREEK = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω
_NUMBER = "1" 0.4 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | "11" 0.5
SUFFIX = "{_GREEK}" 0.5 | "{_GREEK}-{_NUMBER}" 0.5
]]))

main 1 = "{NAME} {LETTER}{SUFFIX}"
-- The weight of "main" is to normalize to 1.
syntax:add(_([[
main 1 =
"{NAME} {NUM}" 0.5 |
"{NAME} {ROMAN_NUM}" 0.35 |
"{NAME} {SUFFIX}" 0.15
]]))

local ph = static_phrase_generator.get("pilotname_generic")
ph:add(syntax)
end
Binary file modified gettext/ja/LC_MESSAGES/endless_names_mod.mo
Binary file not shown.
40 changes: 33 additions & 7 deletions po/endless_names_mod.pot
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-07 13:29+0900\n"
"POT-Creation-Date: 2024-07-13 19:25+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
Expand Down Expand Up @@ -1454,8 +1454,38 @@ msgid ""
" Wolf |\n"
" Wraith |\n"
" Zombie\n"
"\n"
" main 1 = \"{NAME} {LETTER}{SUFFIX}\"\n"
" "
msgstr ""

#: events/pilotname/generic.lua:124
msgid ""
" _N19 = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9\n"
" NUM = {_N19}{_N19} | {_N19} | {_N19}0\n"
" "
msgstr ""

#: events/pilotname/generic.lua:129
msgid ""
" _I = I | II | III | IV | V | VI | VII | VIII | IX\n"
" _X = X | XX | XXX | XL | L | LX | LXX | LXXX | XC\n"
" ROMAN_NUM = {_X}{_I} | {_I} | {_X}\n"
" "
msgstr ""

#: events/pilotname/generic.lua:136
msgid ""
" _GREEK = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
" _NUMBER = \"1\" 0.4 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | \"11\" 0.5\n"
" SUFFIX = \"{_GREEK}\" 0.5 | \"{_GREEK}-{_NUMBER}\" 0.5\n"
" "
msgstr ""

#: events/pilotname/generic.lua:143
msgid ""
" main 1 =\n"
" \"{NAME} {NUM}\" 0.5 |\n"
" \"{NAME} {ROMAN_NUM}\" 0.35 |\n"
" \"{NAME} {SUFFIX}\" 0.15\n"
" "
msgstr ""

Expand Down Expand Up @@ -1973,7 +2003,3 @@ msgid ""
" {ARTICLE} {DESCRIPTOR} {COLOUR} {ACTOR}\n"
" "
msgstr ""

#: scripts/pilotname/generic.lua:32
msgid " main = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
msgstr ""
58 changes: 49 additions & 9 deletions po/ja.po
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: endless_names_plugin_for_naev 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-07 13:29+0900\n"
"POT-Creation-Date: 2024-07-13 19:25+0900\n"
"PO-Revision-Date: 2024-06-22 19:46+0900\n"
"Last-Translator: OOTA, Masato <ooyooxei+gh@gmail.com>\n"
"Language-Team: None\n"
Expand Down Expand Up @@ -2731,8 +2731,6 @@ msgid ""
" Wolf |\n"
" Wraith |\n"
" Zombie\n"
"\n"
" main 1 = \"{NAME} {LETTER}{SUFFIX}\"\n"
" "
msgstr ""
" NAME =\n"
Expand Down Expand Up @@ -2825,10 +2823,56 @@ msgstr ""
" ウルフ {* Wolf } |\n"
" レイス {* Wraith } |\n"
" ゾンビ {* Zombie }\n"
"\n"
" main 1 = \"{NAME} {LETTER}{SUFFIX} \" ~ /  // ~ /([^A-Z0-9α-Ψ]) $/%1/\n"
" "

#: events/pilotname/generic.lua:124
msgid ""
" _N19 = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9\n"
" NUM = {_N19}{_N19} | {_N19} | {_N19}0\n"
" "
msgstr ""
" _N19 = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9\n"
" NUM = {_N19}{_N19} | {_N19} | {_N19}0\n"
" "

#: events/pilotname/generic.lua:129
msgid ""
" _I = I | II | III | IV | V | VI | VII | VIII | IX\n"
" _X = X | XX | XXX | XL | L | LX | LXX | LXXX | XC\n"
" ROMAN_NUM = {_X}{_I} | {_I} | {_X}\n"
" "
msgstr ""
" _I = I | II | III | IV | V | VI | VII | VIII | IX\n"
" _X = X | XX | XXX | XL | L | LX | LXX | LXXX | XC\n"
" ROMAN_NUM = {_X}{_I} | {_I} | {_X}\n"
" "

#: events/pilotname/generic.lua:136
msgid ""
" _GREEK = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
" _NUMBER = \"1\" 0.4 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | \"11\" 0.5\n"
" SUFFIX = \"{_GREEK}\" 0.5 | \"{_GREEK}-{_NUMBER}\" 0.5\n"
" "
msgstr ""
" _GREEK = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
" _NUMBER = \"1\" 0.4 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | \"11\" 0.5\n"
" SUFFIX = \"{_GREEK}\" 0.5 | \"{_GREEK}-{_NUMBER}\" 0.5\n"
" "

#: events/pilotname/generic.lua:143
msgid ""
" main 1 =\n"
" \"{NAME} {NUM}\" 0.5 |\n"
" \"{NAME} {ROMAN_NUM}\" 0.35 |\n"
" \"{NAME} {SUFFIX}\" 0.15\n"
" "
msgstr ""
" main 1 =\n"
" \"{NAME} {NUM} \" 0.5 |\n"
" \"{NAME} {ROMAN_NUM} \" 0.35 |\n"
" \"{NAME} {SUFFIX} \" 0.15\n"
" "

#: events/pilotname/pirate.lua:30
msgid ""
" ARTICLE =\n"
Expand Down Expand Up @@ -3857,7 +3901,3 @@ msgstr ""
" /ジャ・@/ジ・/ ~\n"
" /@//g\n"
" "

#: scripts/pilotname/generic.lua:32
msgid " main = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
msgstr " main = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω\n"
28 changes: 1 addition & 27 deletions scripts/pilotname/generic.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,39 +22,13 @@ Copyright © 2021 bobbens@github
--]]

local static_phrase_generator = require "static_phrase_generator"
local utility = require "pilotname.utility"
local phrase = require "phrase"
local naev_rnd = require "phrase.naev_rnd_wrapper"

phrase.output_error = warn
phrase.set_random_function(naev_rnd.f)

local greek = phrase.new(_([[
main = α | β | γ | δ | ε | ζ | Δ | Σ | Ψ | Ω
]]))

--[[
-- @brief Generates generic pilot names
--]]
local function generic ()
local num = rnd.rnd(1, 99)
local str
local letter = ""
local r = rnd.rnd()
if r < 0.5 then
str = tostring(num)
elseif r < 0.85 then
str = utility.roman_encode(num)
else
letter = greek:generate()
str = ""
if rnd.rnd() < 0.5 then
local comb = greek:get_combination_number()
str = tostring(math.floor(num/comb+0.5)+1)
end
end
local pilotname_generic = static_phrase_generator.get("pilotname_generic")
return pilotname_generic:generate({ LETTER = letter, SUFFIX = str })
return pilotname_generic:generate()
end

return generic

0 comments on commit b37e1f2

Please sign in to comment.