104 lines
3.6 KiB
Lua
104 lines
3.6 KiB
Lua
-- -------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
-- TRANSLATION LIBRARY CONTROL TESTS
|
|
|
|
local event = require("__RaiLuaLib__.lualib.event")
|
|
local translation = require("__RaiLuaLib__.lualib.translation")
|
|
|
|
local mod_gui = require("mod-gui")
|
|
|
|
-- build LOTS of data to really stress the translation engine
|
|
local function build_data()
|
|
local translation_data = {}
|
|
local function generic_setup(key)
|
|
local data = {}
|
|
local i = 0
|
|
for name,prototype in pairs(game[key.."_prototypes"]) do
|
|
i = i + 1
|
|
data[i] = {localised=prototype.localised_name, internal=name}
|
|
end
|
|
return data
|
|
end
|
|
translation_data.achievement = generic_setup("achievement")
|
|
translation_data.entity = generic_setup("entity")
|
|
translation_data.equipment = generic_setup("equipment")
|
|
translation_data.fluid = generic_setup("fluid")
|
|
translation_data.item = generic_setup("item")
|
|
translation_data.recipe = generic_setup("recipe")
|
|
translation_data.technology = generic_setup("technology")
|
|
translation_data.tile = generic_setup("tile")
|
|
global.__lualib.translation.build_data = translation_data
|
|
end
|
|
|
|
local function translate_whole(player)
|
|
for name,t in pairs(global.__lualib.translation.build_data) do
|
|
translation.start(player, name, t)
|
|
end
|
|
end
|
|
|
|
local function translate_for_all_players()
|
|
for _,player in ipairs(game.connected_players) do
|
|
translate_whole(player)
|
|
end
|
|
end
|
|
|
|
event.on_init(function()
|
|
global.players = {}
|
|
for i,p in pairs(game.players) do
|
|
global.players[i] = {dictionary={}}
|
|
end
|
|
build_data()
|
|
translate_for_all_players()
|
|
event.register(translation.retranslate_all_event, translate_for_all_players)
|
|
end)
|
|
|
|
event.on_load(function()
|
|
event.register(translation.retranslate_all_event, translate_for_all_players)
|
|
end)
|
|
|
|
event.on_configuration_changed(function()
|
|
build_data()
|
|
translate_for_all_players()
|
|
end)
|
|
|
|
event.on_player_created(function(e)
|
|
global.players[e.player_index] = {dictionary={}}
|
|
|
|
-- create test buttons
|
|
local player = game.get_player(e.player_index)
|
|
local button_flow = mod_gui.get_button_flow(player)
|
|
button_flow.add{type="button", name="translation_cancel_recipe", style=mod_gui.button_style, caption="Cancel Recipe"}
|
|
button_flow.add{type="button", name="translation_cancel_all", style=mod_gui.button_style, caption="Cancel All"}
|
|
button_flow.add{type="button", name="translation_start_recipe", style=mod_gui.button_style, caption="Start Recipe"}
|
|
button_flow.add{type="button", name="translation_start_all", style=mod_gui.button_style, caption="Start All"}
|
|
end)
|
|
|
|
event.on_player_joined_game(function(e)
|
|
translate_whole(game.get_player(e.player_index))
|
|
end)
|
|
|
|
event.register(translation.finish_event, function(e)
|
|
game.print("[color=255,200,150]finished translation of dictionary: "..e.dictionary_name.."[/color]")
|
|
global.players[e.player_index].dictionary[e.dictionary_name] = {
|
|
lookup = e.lookup,
|
|
searchable = e.searchable,
|
|
translations = e.translations
|
|
}
|
|
end)
|
|
|
|
-- test button handlers
|
|
|
|
event.on_gui_click(function(e)
|
|
translation.cancel(game.get_player(e.player_index), "recipe")
|
|
end, "translation_cancel_recipe")
|
|
|
|
event.on_gui_click(function(e)
|
|
translation.cancel_all_for_player(game.get_player(e.player_index))
|
|
end, "translation_cancel_all")
|
|
|
|
event.on_gui_click(function(e)
|
|
translation.start(game.get_player(e.player_index), "recipe", global.__lualib.translation.build_data.recipe)
|
|
end, "translation_start_recipe")
|
|
|
|
event.on_gui_click(function(e)
|
|
translate_whole(game.get_player(e.player_index))
|
|
end, "translation_start_all") |