mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'master' into 'combat'
# Conflicts: # CHANGELOG.md
This commit is contained in:
commit
97148cb6bb
@ -28,6 +28,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Added gamepad/controller support
|
||||
- Added player feedback when attempting to pickup an item with a full inventory
|
||||
- Added free look
|
||||
- Added Italian translation
|
||||
- Added Portuguese translation
|
||||
- Added Turkish translation
|
||||
- Complete rewrite of the combat system into a state machine
|
||||
- Abilities like Dash and Triplestrike
|
||||
- Armor can now be eqipped as items
|
||||
|
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -633,7 +633,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "conrod_core"
|
||||
version = "0.63.0"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=hide_text#92925b122dfed139169c7d7687b3ca15c0cb5a2e"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=capucho/hide_text_cursor_fix#df3a5d8098687fb0addf6fdf7c9ad2ac8794997f"
|
||||
dependencies = [
|
||||
"conrod_derive",
|
||||
"copypasta",
|
||||
@ -648,7 +648,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "conrod_derive"
|
||||
version = "0.63.0"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=hide_text#92925b122dfed139169c7d7687b3ca15c0cb5a2e"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=capucho/hide_text_cursor_fix#df3a5d8098687fb0addf6fdf7c9ad2ac8794997f"
|
||||
dependencies = [
|
||||
"proc-macro2 0.4.30",
|
||||
"quote 0.6.13",
|
||||
@ -658,7 +658,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "conrod_winit"
|
||||
version = "0.63.0"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=hide_text#92925b122dfed139169c7d7687b3ca15c0cb5a2e"
|
||||
source = "git+https://gitlab.com/veloren/conrod.git?branch=capucho/hide_text_cursor_fix#df3a5d8098687fb0addf6fdf7c9ad2ac8794997f"
|
||||
|
||||
[[package]]
|
||||
name = "const-random"
|
||||
|
BIN
assets/voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf
(Stored with Git LFS)
BIN
assets/voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf
(Stored with Git LFS)
Binary file not shown.
@ -62,6 +62,7 @@ VoxygenLocalization(
|
||||
"common.back": "Back",
|
||||
"common.create": "Create",
|
||||
"common.okay": "Okay",
|
||||
"common.accept": "Accept",
|
||||
"common.disclaimer": "Disclaimer",
|
||||
"common.cancel": "Cancel",
|
||||
"common.none": "None",
|
||||
@ -205,6 +206,8 @@ Enjoy your stay in the World of Veloren."#,
|
||||
// Settings
|
||||
"hud.settings.general": "General",
|
||||
"hud.settings.none": "None",
|
||||
"hud.settings.press_behavior.toggle": "Toggle",
|
||||
"hud.settings.press_behavior.hold": "Hold",
|
||||
"hud.settings.help_window": "Help Window",
|
||||
"hud.settings.debug_info": "Debug Info",
|
||||
"hud.settings.tips_on_startup": "Tips-On-Startup",
|
||||
@ -232,6 +235,7 @@ Enjoy your stay in the World of Veloren."#,
|
||||
"hud.settings.zoom_sensitivity": "Zoom Sensitivity",
|
||||
"hud.settings.invert_scroll_zoom": "Invert Scroll Zoom",
|
||||
"hud.settings.invert_mouse_y_axis": "Invert Mouse Y Axis",
|
||||
"hud.settings.free_look_behavior": "Free look behavior",
|
||||
|
||||
"hud.settings.view_distance": "View Distance",
|
||||
"hud.settings.maximum_fps": "Maximum FPS",
|
||||
@ -321,6 +325,9 @@ Send Chat Message
|
||||
Scroll Chat
|
||||
|
||||
|
||||
Free look
|
||||
|
||||
|
||||
Chat commands:
|
||||
|
||||
/alias [Name] - Change your Chat Name
|
||||
|
528
assets/voxygen/i18n/it.ron
Normal file
528
assets/voxygen/i18n/it.ron
Normal file
@ -0,0 +1,528 @@
|
||||
/// Translation document instructions
|
||||
///
|
||||
/// In order to keep localization documents readible please follow the following
|
||||
/// rules:
|
||||
/// - separate the string map sections using a commentary describing the purpose
|
||||
/// of the next section
|
||||
/// - prepend multi-line strings with a commentary
|
||||
/// - append one blank lines after a multi-line strings and two after sections
|
||||
///
|
||||
/// To add a new language in Veloren, just write an additional `.ron` file in
|
||||
/// `assets/voxygen/i18n` and that's it!
|
||||
|
||||
|
||||
|
||||
|
||||
/// Localization for "global" Italian
|
||||
VoxygenLocalization(
|
||||
metadata: (
|
||||
language_name: "Italiano",
|
||||
language_identifier: "it",
|
||||
),
|
||||
convert_utf8_to_ascii: false,
|
||||
fonts: {
|
||||
"opensans": Font (
|
||||
asset_key: "voxygen.font.OpenSans-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"metamorph": Font (
|
||||
asset_key: "voxygen.font.Metamorphous-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"alkhemi": Font (
|
||||
asset_key: "voxygen.font.Alkhemikal",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"wizard": Font (
|
||||
asset_key: "voxygen.font.wizard",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"cyri": Font (
|
||||
asset_key: "voxygen.font.haxrcorp_4089_cyrillic_altgr_extended",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
},
|
||||
string_map: {
|
||||
/// Start Common section
|
||||
// Texts used in multiple locations with the same formatting
|
||||
"common.username": "Nome Utente",
|
||||
"common.singleplayer": "Giocatore Singolo",
|
||||
"common.multiplayer": "Multigiocatore",
|
||||
"common.servers": "Server",
|
||||
"common.quit": "Esci",
|
||||
"common.settings": "Impostazioni",
|
||||
"common.languages": "Lingue",
|
||||
"common.interface": "Interfaccia",
|
||||
"common.gameplay": "Gameplay",
|
||||
"common.controls": "Controlli",
|
||||
"common.video": "Video",
|
||||
"common.sound": "Audio",
|
||||
"common.resume": "Riprendi",
|
||||
"common.characters": "Personaggi",
|
||||
"common.close": "Chiudi",
|
||||
"common.yes": "Si",
|
||||
"common.no": "No",
|
||||
"common.back": "Indietro",
|
||||
"common.create": "Crea",
|
||||
"common.okay": "Ok",
|
||||
"common.disclaimer": "Disclaimer",
|
||||
"common.cancel": "Cancella",
|
||||
"common.none": "Nessuno",
|
||||
"common.error": "Errore",
|
||||
"common.fatal_error": "Errore Fatale",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Message when connection to the server is lost
|
||||
"common.connection_lost": r#"Connessione persa!
|
||||
Si è riavviato il server?
|
||||
Il client è aggiornato?"#,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"common.races.orc": "Orco",
|
||||
"common.races.human": "Umano",
|
||||
"common.races.dwarf": "Nano",
|
||||
"common.races.elf": "Elfo",
|
||||
"common.races.undead": "Non-Morto",
|
||||
"common.races.danari": "Danari",
|
||||
|
||||
|
||||
|
||||
|
||||
"common.weapons.axe": "Ascia",
|
||||
"common.weapons.sword": "Spada",
|
||||
"common.weapons.staff": "Bastone",
|
||||
"common.weapons.bow": "Arco",
|
||||
"common.weapons.hammer": "Martello",
|
||||
/// End Common section
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start Main screen section
|
||||
"main.connecting": "Connessione in corso",
|
||||
"main.creating_world": "Creazione del mondo",
|
||||
|
||||
|
||||
|
||||
|
||||
// Welcome notice that appears the first time Veloren is started
|
||||
"main.notice": r#"Benvenuto nella versione Alpha di Veloren!
|
||||
|
||||
|
||||
|
||||
|
||||
Prima di tuffarti nel divertimento, ti preghiamo di tenere a mente che:
|
||||
|
||||
|
||||
|
||||
|
||||
- Questa è un’Alpha molto prematura. Aspettati errori, gameplay non completo, meccaniche non rifinite, e funzioni mancanti.
|
||||
- Se hai critiche costruttive o errori da segnalare, ci puoi contattare tramite Reddit, GitLab, o il server Discord della nostra community.
|
||||
- Veloren è concesso in licenza con la licenza open-source GPL 3. Il che vuol dire che sei libero di giocare, modificare, e ridistribuire il gioco come tu desideri (purché il lavoro che ne derivi sia sempre sotto licenza GPL 3).
|
||||
- Veloren è un progetto comunitario no-profit, e chiunque ci lavori sopra è un volontario.
|
||||
Se ti piace ciò che vedi, sei il benvenuto ad unirti ai team di sviluppo e artistico!
|
||||
- 'Voxel RPG' è un genere a sé stante. Gli sparatutto-in-prima-persona venivano considerati cloni di Doom.
|
||||
|
||||
|
||||
|
||||
|
||||
Come loro, stiamo cercando di costruire una nicchia. Il gioco non è un clone, e il suo sviluppo divergerà dai giochi esistenti in futuro.
|
||||
|
||||
|
||||
|
||||
|
||||
Grazie per aver dedicato del tempo a leggere questo avviso, speriamo che ti divertirai col gioco!
|
||||
|
||||
|
||||
|
||||
|
||||
~ Il team di sviluppo di Veloren"#,
|
||||
|
||||
|
||||
|
||||
|
||||
// Login process description
|
||||
"main.login_process": r#"Informazioni sul processo del Login:
|
||||
|
||||
|
||||
Se stai avendo problemi nell'accedere:
|
||||
|
||||
Notare che hai bisogno di un account
|
||||
per giocare su server con autenticazione abilitata.
|
||||
|
||||
Puoi creare un account su
|
||||
|
||||
https://account.veloren.net."#,
|
||||
"main.login.server_not_found": "Server non trovato",
|
||||
"main.login.authentication_error": "Errore di autenticazione server",
|
||||
"main.login.server_full": "Il server è pieno",
|
||||
"main.login.untrusted_auth_server": "Server di autenticazione non affidabile",
|
||||
"main.login.outdated_client_or_server": "Il server è impazzito: Probabilmente le versioni sono incompatibili, controlla per degli aggiornamenti",
|
||||
"main.login.timeout": "Tempo scaduto: Il server non ha risposto in tempo. (In sovraccarico o problemi di rete)",
|
||||
"main.login.server_shut_down": "Il server è stato chiuso",
|
||||
"main.login.already_logged_in": "Hai già effettuato l'accesso al server",
|
||||
"main.login.network_error": "Errore di rete",
|
||||
"main.login.failed_sending_request": "Richiesta ai server di autenticazione fallita",
|
||||
"main.login.client_crashed": "Il client si è arrestato",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// End Main screen section
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start HUD Section
|
||||
"hud.do_not_show_on_startup": "Non mostrare all’avvio",
|
||||
"hud.show_tips": "Mostra consigli",
|
||||
"hud.quests": "Missioni",
|
||||
"hud.you_died": "Sei Morto",
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "Premi {key} per mostrare le scorciatoie da tastiera",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Premi {key} per mostrare le informazioni di debug",
|
||||
"hud.press_key_to_toggle_keybindings_fmt": "Premi {key} per attivare/disattivare le scorciatoie da tastiera",
|
||||
"hud.press_key_to_toggle_debug_info_fmt": "Premi {key} per attivare/disattivare le informazioni di debug",
|
||||
|
||||
|
||||
|
||||
|
||||
// Respawn message
|
||||
"hud.press_key_to_respawn": r#"Premi {key} per rinascere al tuo Waypoint.
|
||||
|
||||
|
||||
|
||||
|
||||
Premi Invio, scrivi /waypoint e conferma per impostarlo qui."#,
|
||||
|
||||
|
||||
|
||||
|
||||
// Welcome message
|
||||
"hud.welcome": r#"Benvenuto nell’Alpha di Veloren!
|
||||
|
||||
|
||||
|
||||
|
||||
Alcuni consigli prima di cominciare:
|
||||
|
||||
|
||||
MOLTO IMPORTANTE: Per impostare il tuo punto di rinascita scrivi /waypoint
|
||||
|
||||
|
||||
nella chat.
|
||||
|
||||
|
||||
Ciò può essere fatto anche se sei già morto!
|
||||
|
||||
|
||||
|
||||
|
||||
Premi F1 per vedere i comandi chiave disponibili.
|
||||
|
||||
|
||||
Scrivi /help nella chat per vedere i comandi della chat.
|
||||
|
||||
|
||||
|
||||
|
||||
Ci sono forzieri e altri oggetti che appaiono casualmente nel Mondo!
|
||||
|
||||
|
||||
Clicca col tasto destro del mouse per raccoglierli.
|
||||
|
||||
|
||||
Per usare qualsiasi cosa tu ottenga da quei forzieri apri il tuo inventario con 'B'.
|
||||
|
||||
|
||||
Fai doppio click sugli oggetti nella tua borsa per usarli o equipaggiarli.
|
||||
|
||||
|
||||
Gettali via cliccandoci una volta sopra e una volta fuori dall’inventario.
|
||||
|
||||
|
||||
|
||||
|
||||
Le notti possono essere molto buie in Veloren.
|
||||
|
||||
|
||||
Accendi la tua lanterna scrivendo /lantern nella chat.
|
||||
|
||||
|
||||
|
||||
|
||||
Vuoi sbloccare il cursore per chiudere questa finestra? Premi TAB!
|
||||
|
||||
|
||||
|
||||
|
||||
Goditi il tuo soggiorno nel Mondo di Veloren."#,
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.settings.general": "Generale",
|
||||
"hud.settings.none": "Nessuno",
|
||||
"hud.settings.press_behavior.toggle": "Attiva/Disattiva",
|
||||
"hud.settings.press_behavior.hold": "Tieni Premuto",
|
||||
"hud.settings.help_window": "Finestra di Aiuto",
|
||||
"hud.settings.debug_info": "Informazioni di Debug",
|
||||
"hud.settings.tips_on_startup": "Consigli all’Avvio",
|
||||
"hud.settings.ui_scale": "Proporzione Interfaccia",
|
||||
"hud.settings.relative_scaling": "Proporzione Relativa",
|
||||
"hud.settings.custom_scaling": "Proporzione Person.",
|
||||
"hud.settings.crosshair": "Mirino",
|
||||
"hud.settings.transparency": "Trasparenza",
|
||||
"hud.settings.hotbar": "Barra Veloce",
|
||||
"hud.settings.toggle_shortcuts": "Attivare/Disattivare Scorciatoie",
|
||||
"hud.settings.toggle_bar_experience": "Attivare/Disattivare Barra dell’Esperienza",
|
||||
"hud.settings.scrolling_combat_text": "Testo di Combattimento Scorrevole",
|
||||
"hud.settings.single_damage_number": "Danno Nemico (Singolo)",
|
||||
"hud.settings.cumulated_damage": "Danno Nemico (Cumulativo)",
|
||||
"hud.settings.incoming_damage": "Danno Giocatore (Singolo)",
|
||||
"hud.settings.cumulated_incoming_damage": "Danno Giocatore (Cumulativo)",
|
||||
"hud.settings.energybar_numbers": "Numeri Barra dell’Energia",
|
||||
"hud.settings.values": "Valori",
|
||||
"hud.settings.percentages": "Percentuali",
|
||||
"hud.settings.chat": "Chat",
|
||||
"hud.settings.background_transparency": "Trasparenza dello Sfondo",
|
||||
"hud.settings.none": "Nessuno",
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.settings.pan_sensitivity": "Sensibilità Camera",
|
||||
"hud.settings.zoom_sensitivity": "Sensibilità Zoom",
|
||||
"hud.settings.invert_scroll_zoom": "Zoom Invertito",
|
||||
"hud.settings.invert_mouse_y_axis": "Asse Y del Mouse Invertito",
|
||||
"hud.settings.free_look_behavior": "Comportamento Visuale Libera",
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.settings.view_distance": "Distanza Oggetto",
|
||||
"hud.settings.maximum_fps": "FPS Massimi",
|
||||
"hud.settings.fov": "Campo Visivo (gradi)",
|
||||
"hud.settings.gamma": "Gamma",
|
||||
"hud.settings.antialiasing_mode": "Modalità AntiAliasing",
|
||||
"hud.settings.cloud_rendering_mode": "Modalità Renderizzazione Nuvole",
|
||||
"hud.settings.fluid_rendering_mode": "Modalità Renderizzazione Fluido",
|
||||
"hud.settings.fluid_rendering_mode.cheap": "Economico",
|
||||
"hud.settings.fluid_rendering_mode.shiny": "Lucente",
|
||||
"hud.settings.cloud_rendering_mode.regular": "Regolare",
|
||||
"hud.settings.fullscreen": "Schermo Intero",
|
||||
"hud.settings.save_window_size": "Salva dimensione finestra",
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.settings.music_volume": "Volume Musica",
|
||||
"hud.settings.sound_effect_volume": "Volume Effetti Sonori",
|
||||
"hud.settings.audio_device": "Dispositivo Audio",
|
||||
|
||||
|
||||
|
||||
|
||||
// Control list
|
||||
"hud.settings.control_names": r#"Cursore Libero
|
||||
Attiva/Disattiva Finestra di Aiuto
|
||||
Attiva/Disattiva Interfaccia
|
||||
Attiva/Disattiva FPS e Informazioni di Debug
|
||||
Scatta Screenshot
|
||||
Attiva/Disattiva Nomi
|
||||
Attiva/Disattiva Schermo Intero
|
||||
|
||||
|
||||
Movimento in Avanti
|
||||
Movimento a Sinistra
|
||||
Movimento a Destra
|
||||
Movimento all’Indietro
|
||||
|
||||
Salto
|
||||
|
||||
Aliante
|
||||
|
||||
Schivata
|
||||
|
||||
Rotolata
|
||||
|
||||
Scalata
|
||||
|
||||
Discesa
|
||||
|
||||
Camminata Automatica
|
||||
|
||||
Riporre/Sfoderare Armi
|
||||
|
||||
Mettere/Rimuovere Elmo
|
||||
|
||||
Sedersi
|
||||
|
||||
Cavalcatura
|
||||
|
||||
Interagire
|
||||
|
||||
|
||||
Attacco Base
|
||||
Attacco Secondario/Parata/Mira
|
||||
|
||||
|
||||
Slot 1 Barra delle Abilità
|
||||
Slot 2 Barra delle Abilità
|
||||
Slot 3 Barra delle Abilità
|
||||
Slot 4 Barra delle Abilità
|
||||
Slot 5 Barra delle Abilità
|
||||
Slot 6 Barra delle Abilità
|
||||
Slot 7 Barra delle Abilità
|
||||
Slot 8 Barra delle Abilità
|
||||
Slot 9 Barra delle Abilità
|
||||
Slot 10 Barra delle Abilità
|
||||
|
||||
|
||||
Menù di Pausa
|
||||
Impostazioni
|
||||
Social
|
||||
Mappa
|
||||
Libro degli Incantesimi
|
||||
Personaggio
|
||||
Diario delle Missioni
|
||||
Borsa
|
||||
|
||||
|
||||
|
||||
Invia Messaggio nella Chat
|
||||
Scorrimento della Chat
|
||||
|
||||
Camera Libera
|
||||
|
||||
|
||||
|
||||
Comandi della Chat:
|
||||
|
||||
/alias [Name] - Cambia il tuo Nome nella Chat
|
||||
/tp [Name] - Ti teleporta da un altro giocatore
|
||||
/jump <dx> <dy> <dz> - Devia la tua posizione
|
||||
/goto <x> <y> <z> - Ti teleporta in una posizione
|
||||
/kill - Suicidati
|
||||
/pig - Fai apparire un maiale PNG
|
||||
/wolf - Fai apparire un lupo PNG
|
||||
/help - Mostra comandi della Chat"#,
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.social": "Social",
|
||||
"hud.social.online": "Online",
|
||||
"hud.social.friends": "Amici",
|
||||
"hud.social.not_yet_available": "Non ancora disponibile",
|
||||
"hud.social.faction": "Fazione",
|
||||
"hud.social.play_online_fmt": "{nb_player} giocatore/i online",
|
||||
|
||||
|
||||
|
||||
|
||||
"hud.spell": "Incantesimo",
|
||||
|
||||
"hud.free_look_indicator": "Visuale Libera Attiva",
|
||||
/// End HUD section
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start character selection section
|
||||
"char_selection.delete_permanently": "Eliminare permanente questo Personaggio?",
|
||||
"char_selection.change_server": "Cambia Server",
|
||||
"char_selection.enter_world": "Unisciti al Mondo",
|
||||
"char_selection.logout": "Disconnettiti",
|
||||
"char_selection.create_new_charater": "Crea un nuovo Personaggio",
|
||||
"char_selection.character_creation": "Creazione Personaggio",
|
||||
|
||||
|
||||
|
||||
|
||||
"char_selection.human_default": "Umano Predefinito",
|
||||
"char_selection.level_fmt": "Livello {level_nb}",
|
||||
"char_selection.uncanny_valley": "Valle Perturbante",
|
||||
"char_selection.plains_of_uncertainty": "Pianure dell'Incertezza",
|
||||
"char_selection.beard": "Barba",
|
||||
"char_selection.hair_style": "Stile Capelli",
|
||||
"char_selection.hair_color": "Colore Capelli",
|
||||
"char_selection.chest_color": "Colore Torace",
|
||||
"char_selection.eye_color": "Colore Occhi",
|
||||
"char_selection.skin": "Pelle",
|
||||
"char_selection.eyebrows": "Sopracciglia",
|
||||
"char_selection.accessories": "Accessori",
|
||||
|
||||
|
||||
|
||||
|
||||
/// End chracter selection section
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start character window section
|
||||
"character_window.character_name": "Nome Personaggio",
|
||||
// Charater stats
|
||||
"character_window.character_stats": r#"Stamina
|
||||
|
||||
|
||||
|
||||
|
||||
Vitalità
|
||||
|
||||
|
||||
|
||||
|
||||
Volontà
|
||||
"#,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start character window section
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// Start Escape Menu Section
|
||||
"esc_menu.logout": "Disconnettiti",
|
||||
"esc_menu.quit_game": "Esci dal Gioco",
|
||||
/// End Escape Menu Section
|
||||
}
|
||||
)
|
372
assets/voxygen/i18n/pt_PT.ron
Normal file
372
assets/voxygen/i18n/pt_PT.ron
Normal file
@ -0,0 +1,372 @@
|
||||
/// Localization for portuguese (Portugal)
|
||||
VoxygenLocalization(
|
||||
metadata: (
|
||||
language_name: "Português",
|
||||
language_identifier: "pt_PT",
|
||||
),
|
||||
convert_utf8_to_ascii: false,
|
||||
fonts: {
|
||||
"opensans": Font (
|
||||
asset_key: "voxygen.font.OpenSans-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"metamorph": Font (
|
||||
asset_key: "voxygen.font.Metamorphous-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"alkhemi": Font (
|
||||
asset_key: "voxygen.font.Alkhemikal",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"wizard": Font (
|
||||
asset_key: "voxygen.font.wizard",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"cyri": Font (
|
||||
asset_key: "voxygen.font.haxrcorp_4089_cyrillic_altgr_extended",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
},
|
||||
string_map: {
|
||||
/// Start Common section
|
||||
// Texts used in multiple locations with the same formatting
|
||||
"common.username": "nome de utilizador",
|
||||
"common.singleplayer": "Um jogador",
|
||||
"common.multiplayer": "Multijogador",
|
||||
"common.servers": "Servidores",
|
||||
"common.quit": "Sair",
|
||||
"common.settings": "Definições",
|
||||
"common.languages": "Linguagens",
|
||||
"common.interface": "Interface",
|
||||
"common.gameplay": "Jogabilidade",
|
||||
"common.controls": "Controlos",
|
||||
"common.video": "Video",
|
||||
"common.sound": "Som",
|
||||
"common.resume": "Resumir",
|
||||
"common.characters": "Personagens",
|
||||
"common.close": "Fechar",
|
||||
"common.yes": "Sim",
|
||||
"common.no": "Não",
|
||||
"common.back": "Voltar",
|
||||
"common.create": "Criar",
|
||||
"common.okay": "Okay",
|
||||
"common.accept": "Aceitar",
|
||||
"common.disclaimer": "Aviso",
|
||||
"common.cancel": "Cancelar",
|
||||
"common.none": "Nenhum",
|
||||
"common.error": "Erro",
|
||||
"common.fatal_error": "Erro fatal",
|
||||
|
||||
// Message when connection to the server is lost
|
||||
"common.connection_lost": r#"Conexâo perdida!
|
||||
Será que o server reiniciou?
|
||||
O cliente está atualizado?"#,
|
||||
|
||||
|
||||
"common.races.orc": "Ogre",
|
||||
"common.races.human": "Humano",
|
||||
"common.races.dwarf": "Anão",
|
||||
"common.races.elf": "Elfo",
|
||||
"common.races.undead": "Morto-vivo",
|
||||
"common.races.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Machado",
|
||||
"common.weapons.sword": "Espada",
|
||||
"common.weapons.staff": "Cajado",
|
||||
"common.weapons.bow": "Arco",
|
||||
"common.weapons.hammer": "Martelo",
|
||||
/// End Common section
|
||||
|
||||
|
||||
/// Start Main screen section
|
||||
"main.connecting": "Conectando",
|
||||
"main.creating_world": "Criando o mundo",
|
||||
|
||||
// Welcome notice that appears the first time Veloren is started
|
||||
"main.notice": r#"Bem vindo a versão alpha de Veloren!
|
||||
|
||||
Antes de começar a jogar, por favor tenha em mente que:
|
||||
|
||||
- Isto é uma versão muito experimental. Prepare-se para defeitos, jogabilidade muito inacabada, mecanismos por polir e funcionalidades por
|
||||
adicionar.
|
||||
- Se tiver comentários construtivos ou defeitos para reportar, pode contactar-nos através do Reddit, GitLab ou o nosso servidor comunitário de
|
||||
Discord.
|
||||
- Veloren está licenciado sob a licensa código aberto GPL 3. Isto significa que pode jogar, modificar e redistribuir como quiser
|
||||
(Contanto que o trabalho derivado seja também GPL 3).
|
||||
- Veloren é um projeto comunitário sem lucro, e toda a gente que trabalha nele é um voluntário. Se gostar do que ve, considere juntar-se a equipa
|
||||
de desenvolvimento ou a de artes!
|
||||
- 'Voxel RPG' é um género em si mesmo. First-person shooters costumavam ser chamados de clones do DOOM.
|
||||
|
||||
Tal como eles, nós estamos a tentar construir um género. Este jogo não é um clone e o seu desenvolvimento vai divergir de jogos existentes no
|
||||
futuro.
|
||||
|
||||
Obrigado por ler este aviso, nós esperamos que goste do jogo!
|
||||
|
||||
~ A equipa do Veloren"#,
|
||||
|
||||
// Login process description
|
||||
"main.login_process": r#"Informação sobre o processo de Login:
|
||||
|
||||
Se tiver problemas a logar:
|
||||
|
||||
Tenha em atenção que é necessário uma conta
|
||||
para jogar em servidores com autenticação.
|
||||
|
||||
Para criar uma conta navegue até
|
||||
|
||||
https://account.veloren.net."#,
|
||||
"main.login.server_not_found": "Servidor não encontrado",
|
||||
"main.login.authentication_error": "Erro de autenticação",
|
||||
"main.login.server_full": "Servidor está cheio",
|
||||
"main.login.untrusted_auth_server": "Server de autenticação não confiado",
|
||||
"main.login.outdated_client_or_server": "Servidor endoideceu: Provavelmente as versões são incompativéis, verifique se há versões mais recentes.",
|
||||
"main.login.timeout": "Tempo esgotado: O servidor não respondeu a tempo. (Sobrecarregado ou problemas de rede).",
|
||||
"main.login.server_shut_down": "O servidor encerrou",
|
||||
"main.login.already_logged_in": "Vocé ja está logado neste servidor.",
|
||||
"main.login.network_error": "Error de rede",
|
||||
"main.login.failed_sending_request": "Pedido ao servidor de autenticação falhou",
|
||||
"main.login.client_crashed": "O cliente crashou",
|
||||
|
||||
/// End Main screen section
|
||||
|
||||
|
||||
/// Start HUD Section
|
||||
"hud.do_not_show_on_startup": "Não mostre no início",
|
||||
"hud.show_tips": "Mostrar dicas",
|
||||
"hud.quests": "Missões",
|
||||
"hud.you_died": "Você Morreu",
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "Clique em {key} para mostrar as teclas mapeadas",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Clique em {key} para mostrar a informação de depuração",
|
||||
"hud.press_key_to_toggle_keybindings_fmt": "Clique em {key} para mostrar/ocultar as teclas mapeadas",
|
||||
"hud.press_key_to_toggle_debug_info_fmt": "Clique em {key} para mostrar/ocultar a informação de depuração",
|
||||
|
||||
// Respawn message
|
||||
"hud.press_key_to_respawn": r#"Clique em {key} para renascer na última fogueira visitada."#,
|
||||
|
||||
// Welcome message
|
||||
"hud.welcome": r#"Bem vindo a Alpha do Veloren!,
|
||||
|
||||
|
||||
Algumas dicas antes de começar:
|
||||
|
||||
|
||||
MAIS IMPORTANTE: Para definir o seu local de renascimento escreva /waypoint no chat.
|
||||
|
||||
Isto também pode ser realizado depois de morto!
|
||||
|
||||
|
||||
Clique em F1 para ver as teclas mapeadas.
|
||||
|
||||
Escreva /help no chat para ver os comandos de chat
|
||||
|
||||
|
||||
A muitos baús e outros objetos a aperecer no mundo aleatoriamente!
|
||||
|
||||
Pressione o botão direito do mouse pare coletá-los.
|
||||
|
||||
Para usar o que coletou basta abrir o inventário pressionando a tecla 'B'.
|
||||
|
||||
Faça duplo clique nos items para usá-los ou equipá-los.
|
||||
|
||||
Deite-os fora cliquando uma vez neles e depois outra fora do inventário.
|
||||
|
||||
|
||||
As noites podem ser bastante escuras.
|
||||
|
||||
Acenda a lanterna escrevendo /lantern no chat.
|
||||
|
||||
|
||||
Quer libertar o mouse para fechar esta janela? Clique em TAB!
|
||||
|
||||
|
||||
Aprecie a sua estadia no mundo de Veloren."#,
|
||||
|
||||
"hud.settings.general": "Geral",
|
||||
"hud.settings.none": "Nenhum",
|
||||
"hud.settings.press_behavior.toggle": "Alternar",
|
||||
"hud.settings.press_behavior.hold": "Segurar",
|
||||
"hud.settings.help_window": "Janela de ajuda",
|
||||
"hud.settings.debug_info": "Informação de depuração",
|
||||
"hud.settings.tips_on_startup": "Dicas no início",
|
||||
"hud.settings.ui_scale": "Escala da interface",
|
||||
"hud.settings.relative_scaling": "Escala relativa",
|
||||
"hud.settings.custom_scaling": "Escala customizada",
|
||||
"hud.settings.crosshair": "Crosshair",
|
||||
"hud.settings.transparency": "Transparência",
|
||||
"hud.settings.hotbar": "Hotbar",
|
||||
"hud.settings.toggle_shortcuts": "Mostar/Ocultar atalhos",
|
||||
"hud.settings.toggle_bar_experience": "Mostar/Ocultar barra de experiência",
|
||||
"hud.settings.scrolling_combat_text": "Texto de combate deslizante",
|
||||
"hud.settings.single_damage_number": "Números de dano únicos",
|
||||
"hud.settings.cumulated_damage": "Dano acumulado",
|
||||
"hud.settings.incoming_damage": "Dano recebido",
|
||||
"hud.settings.cumulated_incoming_damage": "Dano recebido acumulado",
|
||||
"hud.settings.energybar_numbers": "Números da barra de energia",
|
||||
"hud.settings.values": "Valores",
|
||||
"hud.settings.percentages": "Percentagens",
|
||||
"hud.settings.chat": "Chat",
|
||||
"hud.settings.background_transparency": "Transparência do fundo",
|
||||
|
||||
"hud.settings.pan_sensitivity": "Sensibilidade de rotação",
|
||||
"hud.settings.zoom_sensitivity": "Sensibilidade de zoom",
|
||||
"hud.settings.invert_scroll_zoom": "Inverter scroll zoom",
|
||||
"hud.settings.invert_mouse_y_axis": "Inverter o eixo Y do mouse",
|
||||
"hud.settings.free_look_behavior": "Ativação de rotação livre",
|
||||
|
||||
"hud.settings.view_distance": "Alcance de visão",
|
||||
"hud.settings.maximum_fps": "FPS máximo",
|
||||
"hud.settings.fov": "Campo de visão(graus)",
|
||||
"hud.settings.gamma": "Luminosidade",
|
||||
"hud.settings.antialiasing_mode": "Modo de antialiasing",
|
||||
"hud.settings.cloud_rendering_mode": "Modo de representação de nuvens",
|
||||
"hud.settings.fluid_rendering_mode": "Modo de representação de fluídos",
|
||||
"hud.settings.fluid_rendering_mode.cheap": "Barato",
|
||||
"hud.settings.fluid_rendering_mode.shiny": "Brilhante",
|
||||
"hud.settings.cloud_rendering_mode.regular": "Normal",
|
||||
"hud.settings.fullscreen": "Tela cheia",
|
||||
"hud.settings.save_window_size": "Gravar dimensões",
|
||||
|
||||
"hud.settings.music_volume": "Volume da música",
|
||||
"hud.settings.sound_effect_volume": "Volume dos efeitos sonoros",
|
||||
"hud.settings.audio_device": "Dispositivo de aúdio",
|
||||
|
||||
// Control list
|
||||
"hud.settings.control_names": r#"Libertar mouse
|
||||
Mostar/Ocultar janela de ajuda
|
||||
Mostar/Ocultar interface
|
||||
Mostar/Ocultar FPS e informação de depuração
|
||||
Gravar captura de ecrã
|
||||
Mostar/Ocultar nomes
|
||||
Mostar/Ocultar tela cheia
|
||||
|
||||
|
||||
Mover para frente
|
||||
Mover para a esquerda
|
||||
Mover para a direita
|
||||
Mover para trás
|
||||
|
||||
Saltar
|
||||
|
||||
Planador
|
||||
|
||||
Desviar
|
||||
|
||||
Rolar
|
||||
|
||||
Trepar
|
||||
|
||||
Descer
|
||||
|
||||
Auto caminhar
|
||||
|
||||
Embainhar/sacar armas
|
||||
|
||||
Equipar/remover capacete
|
||||
|
||||
Sentar
|
||||
|
||||
Montar
|
||||
|
||||
Interagir
|
||||
|
||||
|
||||
Ataque básico
|
||||
Ataque/bloquear/apontar secundário
|
||||
|
||||
|
||||
Habilidade 1
|
||||
Habilidade 2
|
||||
Habilidade 3
|
||||
Habilidade 4
|
||||
Habilidade 5
|
||||
Habilidade 6
|
||||
Habilidade 7
|
||||
Habilidade 8
|
||||
Habilidade 9
|
||||
Habilidade 10
|
||||
|
||||
|
||||
Menu de pausa
|
||||
Definições
|
||||
Social
|
||||
Mapa
|
||||
Livro de feitiços
|
||||
Personagem
|
||||
Registo de missões
|
||||
Inventário
|
||||
|
||||
|
||||
|
||||
Enviar mensagem de chat
|
||||
Scroll chat
|
||||
|
||||
|
||||
Comandos de chat:
|
||||
|
||||
/alias [nome] - Mudar o seu nome de chat
|
||||
/tp [nome] - Teletransporta-te para outro player
|
||||
/jump <dx> <dy> <dz> - Deslocar a posição
|
||||
/goto <x> <y> <z> - Teletransporta-te para a posição
|
||||
/kill - Suicidar
|
||||
/pig - Invocar NPC de porco
|
||||
/wolf - Invocar NPC do lobo
|
||||
/help - Mostrar comandos de chat"#,
|
||||
|
||||
"hud.social": "Social",
|
||||
"hud.social.online": "Online",
|
||||
"hud.social.friends": "Amigos",
|
||||
"hud.social.not_yet_available": "Indisponível de momento",
|
||||
"hud.social.faction": "Facção",
|
||||
"hud.social.play_online_fmt": "{nb_player} jogador(es) online",
|
||||
|
||||
"hud.spell": "Feitiço",
|
||||
|
||||
"hud.free_look_indicator": "Rotação livre ativada",
|
||||
/// End HUD section
|
||||
|
||||
|
||||
/// Start chracter selection section
|
||||
"char_selection.delete_permanently": "Deletar esta personagem permanentemente?",
|
||||
"char_selection.change_server": "Mudar de servidor",
|
||||
"char_selection.enter_world": "Entrar no mundo",
|
||||
"char_selection.logout": "Desconectar",
|
||||
"char_selection.create_new_charater": "Criar nova personagem",
|
||||
"char_selection.character_creation": "Criação de personagem",
|
||||
|
||||
"char_selection.human_default": "Humano padrão",
|
||||
"char_selection.level_fmt": "Nível {level_nb}",
|
||||
"char_selection.uncanny_valley": "Vale da estranheza",
|
||||
"char_selection.plains_of_uncertainty": "Planícies da incerteza",
|
||||
"char_selection.beard": "Barba",
|
||||
"char_selection.hair_style": "Estilo do cabelo",
|
||||
"char_selection.hair_color": "Cor do cabelo",
|
||||
"char_selection.chest_color": "Cor do peitoral",
|
||||
"char_selection.eye_color": "Cor dos olhos",
|
||||
"char_selection.skin": "Cor da pele",
|
||||
"char_selection.eyebrows": "Pestanas",
|
||||
"char_selection.accessories": "Acessórios",
|
||||
|
||||
/// End chracter selection section
|
||||
|
||||
|
||||
/// Start character window section
|
||||
"character_window.character_name": "Nome da personagem",
|
||||
// Charater stats
|
||||
"character_window.character_stats": r#"Resistência
|
||||
|
||||
Aptidão fisíca
|
||||
|
||||
Força de vontade
|
||||
"#,
|
||||
|
||||
|
||||
/// Start character window section
|
||||
|
||||
|
||||
/// Start Escape Menu Section
|
||||
"esc_menu.logout": "Desconectar",
|
||||
"esc_menu.quit_game": "Sair do jogo",
|
||||
/// End Escape Menu Section
|
||||
}
|
||||
)
|
388
assets/voxygen/i18n/tr_TR.ron
Normal file
388
assets/voxygen/i18n/tr_TR.ron
Normal file
@ -0,0 +1,388 @@
|
||||
/// Translation document instructions
|
||||
///
|
||||
/// In order to keep localization documents readible please follow the following
|
||||
/// rules:
|
||||
/// - separate the string map sections using a commentary describing the purpose
|
||||
/// of the next section
|
||||
/// - prepend multi-line strings with a commentary
|
||||
/// - append one blank lines after a multi-line strings and two after sections
|
||||
///
|
||||
/// To add a new language in Veloren, just write an additional `.ron` file in
|
||||
/// `assets/voxygen/i18n` and that's it!
|
||||
|
||||
/// Localization for Turkish (Turkey)
|
||||
VoxygenLocalization(
|
||||
metadata: (
|
||||
language_name: "Türkçe (Türkiye)",
|
||||
language_identifier: "tr_TR",
|
||||
),
|
||||
convert_utf8_to_ascii: false,
|
||||
fonts: {
|
||||
"opensans": Font (
|
||||
asset_key: "voxygen.font.OpenSans-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"metamorph": Font (
|
||||
asset_key: "voxygen.font.Metamorphous-Regular",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"alkhemi": Font (
|
||||
asset_key: "voxygen.font.Alkhemikal",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"wizard": Font (
|
||||
asset_key: "voxygen.font.wizard",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
"cyri": Font (
|
||||
asset_key: "voxygen.font.haxrcorp_4089_cyrillic_altgr_extended",
|
||||
scale_ratio: 1.0,
|
||||
),
|
||||
},
|
||||
string_map: {
|
||||
/// Start Common section
|
||||
// Texts used in multiple locations with the same formatting
|
||||
"common.username": "kullanıcı adı",
|
||||
"common.singleplayer": "Tek oyuncu",
|
||||
"common.multiplayer": "Çok oyunculu",
|
||||
"common.servers": "Sunucular",
|
||||
"common.quit": "Çık",
|
||||
"common.settings": "Ayarlar",
|
||||
"common.languages": "Diller",
|
||||
"common.interface": "Arayüz",
|
||||
"common.gameplay": "Oynanış",
|
||||
"common.controls": "Kontroller",
|
||||
"common.video": "Video",
|
||||
"common.sound": "Ses",
|
||||
"common.resume": "Devam Et",
|
||||
"common.characters": "Karakterler",
|
||||
"common.close": "Kapat",
|
||||
"common.yes": "Evet",
|
||||
"common.no": "Hayır",
|
||||
"common.back": "Geri",
|
||||
"common.create": "Oluştur",
|
||||
"common.okay": "Tamam",
|
||||
"common.disclaimer": "Uyarı",
|
||||
"common.cancel": "İptal Et",
|
||||
"common.none": "Yok",
|
||||
"common.error": "Hata",
|
||||
"common.fatal_error": "Ölümcül hata",
|
||||
"common.accept": "Kabul Et",
|
||||
|
||||
// Message when connection to the server is lost
|
||||
"common.connection_lost": r#"Bağlantı koptu!
|
||||
Sunucu yeniden mi başladı?
|
||||
İstemci güncel mi?"#,
|
||||
|
||||
|
||||
"common.races.orc": "Ork",
|
||||
"common.races.human": "İnsan",
|
||||
"common.races.dwarf": "Cüce",
|
||||
"common.races.elf": "Elf",
|
||||
"common.races.undead": "Hortlak",
|
||||
"common.races.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Balta",
|
||||
"common.weapons.sword": "Kılıç",
|
||||
"common.weapons.staff": "Asa",
|
||||
"common.weapons.bow": "Yay",
|
||||
"common.weapons.hammer": "Çekiç",
|
||||
/// End Common section
|
||||
|
||||
|
||||
/// Start Main screen section
|
||||
"main.connecting": "Bağlanılıyor",
|
||||
"main.creating_world": "Dünya oluşturuluyor",
|
||||
|
||||
// Welcome notice that appears the first time Veloren is started
|
||||
"main.notice": r#"Veloren Alfa sürümüne hoşgeldin!
|
||||
|
||||
Eğlenmeye başlamadan önce, lütfen bir kaç şeyi aklında tut:
|
||||
|
||||
- Bu alfa sürümü daha çok yeni. Hatalar, bitmemiş oynanış, elden geçirilmemiş mekanikler ve eksik özellikler bulunuyor.
|
||||
- Yapıcı geri bildirim veya hata raporların varsa, bize Reddit, GitLab veya Discord sunucumuzdan ulaşabilirsin.
|
||||
- Veloren GPL 3 açık kaynak lisansı ile lisanslıdır. Bunun anlamı, oyunu istediğin gibi oynayabilir, değiştirebilir ve dağıtabilirsin
|
||||
(türetilmiş çalışmalarda GPL 3 ile lisanslanmış olduğu sürece)
|
||||
- Veloren kar gütmeyen bir topluluk projesidir ve üzerinde çalışan herkes birer gönüllüdür.
|
||||
Gördüklerini beğendiysen, geliştirme veya sanat takımlarına katılabilirsin!
|
||||
- 'Voxel RPG' kendi başına bir tür. Birinci şahıs nişancı oyunları önceden Doom kopyaları olarak adlandırılıyordu.
|
||||
|
||||
Bizde onlar gibi bir niş inşa etmeye çalışıyoruz. Bu oyun bir kopya değil ve gelecekte gelişimi mevcut oyunlardan ayrılacak.
|
||||
|
||||
Bu bildiriyi okumaya zaman ayırdığın için teşekkür ederiz, umarız ki oyundan memnun kalırsın!
|
||||
|
||||
~ Veloren Geliştiricileri"#,
|
||||
|
||||
// Login process description
|
||||
"main.login_process": r#"Giriş işlemi hakkında bilgi:
|
||||
|
||||
Eğer giriş yaparken sorunlarla karşılaşıyorsan:
|
||||
|
||||
Lütfen kimlik doğrulaması gerektiren sunucularda
|
||||
oynamak için bir hesaba ihtiyacın olduğunu hatırla.
|
||||
|
||||
https://account.veloren.net adresinden
|
||||
|
||||
bir hesap oluşturabilirsin."#,
|
||||
"main.login.server_not_found": "Sunucu bulunamadı",
|
||||
"main.login.authentication_error": "Sunucuda kimlik doğrulama hatası",
|
||||
"main.login.server_full": "Sunucu dolu",
|
||||
"main.login.untrusted_auth_server": "Kimlik doğrulama sunucusu güvenilir değil",
|
||||
"main.login.outdated_client_or_server": "SunucuÇılgınaDöndü: Muhtemelen versiyonlar uyuşmuyor, güncellemeler için kontrol et.",
|
||||
"main.login.timeout": "Zamanaşımı: Sunucu zamanında cevap vermedi. (Aşırı yüklenme veya ağ sorunları).",
|
||||
"main.login.server_shut_down": "Sunucu kapandı",
|
||||
"main.login.already_logged_in": "Zaten sunucuya giriş yapmışsın.",
|
||||
"main.login.network_error": "Ağ hatası",
|
||||
"main.login.failed_sending_request": "Kimlik doğrulama sunucusuna istek gönderilemedi",
|
||||
"main.login.client_crashed": "İstemci çöktü",
|
||||
|
||||
/// End Main screen section
|
||||
|
||||
|
||||
/// Start HUD Section
|
||||
"hud.do_not_show_on_startup": "Bunu açılışta gösterme",
|
||||
"hud.show_tips": "Öneriler",
|
||||
"hud.quests": "Görevler",
|
||||
"hud.you_died": "Öldün",
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "Kontrolleri göstermek için {key}'e bas",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Hata ayıklama bilgilerini göstermek için {key}'e bas",
|
||||
"hud.press_key_to_toggle_keybindings_fmt": "Kontrolleri açmak veya kapamak için {key}'e bas",
|
||||
"hud.press_key_to_toggle_debug_info_fmt": "Hata ayıklama bilgilerini açmak veya kapamak için {key}'e bas",
|
||||
|
||||
// Respawn message
|
||||
"hud.press_key_to_respawn": r#"Ziyaret ettiğin en son kamp ateşinde yeniden doğmak için {key}'e bas."#,
|
||||
|
||||
// Welcome message
|
||||
"hud.welcome": r#"Veloren Alfa sürümüne hoşgeldin!,
|
||||
|
||||
|
||||
Başlamadan önce bazı ipuçları:
|
||||
|
||||
|
||||
EN ÖNEMLİSİ: Yeniden doğma noktanı ayarlamak için sohbete /waypoint yaz.
|
||||
|
||||
Bu ölmüşsen bile yapılabilir!
|
||||
|
||||
|
||||
Kontrolleri görmek için F1'e bas.
|
||||
|
||||
Sohbet komutlarını görmek için sohbete /help yaz.
|
||||
|
||||
|
||||
Dünyada rastgele oluşan sandıklar ve başka objeler var!
|
||||
|
||||
Onları toplamak için Sağ-Tık kullan.
|
||||
|
||||
Topladıklarını kullanmak için 'B'ye basarak envanterini aç.
|
||||
|
||||
Envanterindeki eşyaları kullanmak veya kuşanmak için iki kere üzerlerine tıkla.
|
||||
|
||||
Üzerlerine bir kere tıklayıp ve sonra envaterin dışına tıklayarak onları at.
|
||||
|
||||
|
||||
Veloren'de geceler oldukça karanlık olabiliyor.
|
||||
|
||||
Sohbete /lantern yazarak fenerini yak.
|
||||
|
||||
|
||||
Bu pencereyi kapatmak için imlecini serbest bırakmak mı istiyorsun? TAB'a bas!
|
||||
|
||||
|
||||
Veloren'in Dünyasında sana iyi eğlenceler!"#,
|
||||
|
||||
"hud.settings.general": "Genel",
|
||||
"hud.settings.none": "Yok",
|
||||
"hud.settings.press_behavior.toggle": "Aç/kapa",
|
||||
"hud.settings.press_behavior.hold": "Basılı tut",
|
||||
"hud.settings.help_window": "Yardım Penceresi",
|
||||
"hud.settings.debug_info": "Hata Ayıklama Bilgileri",
|
||||
"hud.settings.tips_on_startup": "Açılışta İpuçlarını Göster",
|
||||
"hud.settings.ui_scale": "Arayüz Ölçeği",
|
||||
"hud.settings.relative_scaling": "Otomatik Ölçek",
|
||||
"hud.settings.custom_scaling": "Özel Ölçek",
|
||||
"hud.settings.crosshair": "İmleç tipi",
|
||||
"hud.settings.transparency": "Şeffaflık",
|
||||
"hud.settings.hotbar": "Hotbar",
|
||||
"hud.settings.toggle_shortcuts": "Kısayolları aç/kapa",
|
||||
"hud.settings.toggle_bar_experience": "Tecrübe çubuğunu aç/kapa",
|
||||
"hud.settings.scrolling_combat_text": "Verilen/Alınan Hasar Yazısı",
|
||||
"hud.settings.single_damage_number": "Verilen Hasarı Tek Tek Göster",
|
||||
"hud.settings.cumulated_damage": "Toplam Verilen Hasarı Göster",
|
||||
"hud.settings.incoming_damage": "Alınan Hasarı Tek Tek Göster",
|
||||
"hud.settings.cumulated_incoming_damage": "Toplam Alınan Hasarı Göster",
|
||||
"hud.settings.energybar_numbers": "Enerji çubuğu değerleri",
|
||||
"hud.settings.values": "Sayılar",
|
||||
"hud.settings.percentages": "Yüzdeler",
|
||||
"hud.settings.chat": "Sohbet",
|
||||
"hud.settings.background_transparency": "Arkaplan Şeffaflığı",
|
||||
"hud.settings.none": "Yok",
|
||||
|
||||
"hud.settings.pan_sensitivity": "Kaydırma Hassaslığı",
|
||||
"hud.settings.zoom_sensitivity": "Büyütme Hassaslığı",
|
||||
"hud.settings.invert_scroll_zoom": "Kaydırma Büyütmesini ters çevir",
|
||||
"hud.settings.invert_mouse_y_axis": "Fare Y eksenini ters çevir",
|
||||
"hud.settings.free_look_behavior": "Serbest bakış davranışı",
|
||||
|
||||
"hud.settings.view_distance": "Görüş Mesafesi",
|
||||
"hud.settings.maximum_fps": "Maksimum FPS",
|
||||
"hud.settings.fov": "Görüş alanı (derece)",
|
||||
"hud.settings.gamma": "Gama",
|
||||
"hud.settings.antialiasing_mode": "Kenar Yumuşatma Modu",
|
||||
"hud.settings.cloud_rendering_mode": "Bulut Render Modu",
|
||||
"hud.settings.fluid_rendering_mode": "Su Render Modu",
|
||||
"hud.settings.fluid_rendering_mode.cheap": "Ucuz",
|
||||
"hud.settings.fluid_rendering_mode.shiny": "Güzel",
|
||||
"hud.settings.cloud_rendering_mode.regular": "Normal",
|
||||
"hud.settings.fullscreen": "Tam ekran",
|
||||
"hud.settings.save_window_size": "Pencere boyutunu kaydet",
|
||||
|
||||
"hud.settings.music_volume": "Müzik Sesi",
|
||||
"hud.settings.sound_effect_volume": "Efekt Sesi",
|
||||
"hud.settings.audio_device": "Ses Aygıtı",
|
||||
|
||||
// Control list
|
||||
"hud.settings.control_names": r#"İmleci serbest bırak
|
||||
Yardım Pencerisini aç/kapa
|
||||
Arayüzü aç/kapa
|
||||
FPS ve hata ayıklama bilgilerini aç/kapa
|
||||
Ekran görüntüsü al
|
||||
İsim etiketlerini aç/kapa
|
||||
Tam ekranı aç/kapa
|
||||
|
||||
|
||||
İleri Git
|
||||
Sola Git
|
||||
Sağa Git
|
||||
Geriye Git
|
||||
|
||||
Zıpla
|
||||
|
||||
Planör
|
||||
|
||||
Sıçra
|
||||
|
||||
Yuvarlan
|
||||
|
||||
Tırman
|
||||
|
||||
İn
|
||||
|
||||
Otomatik yürüme
|
||||
|
||||
Silahları koy/çıkar
|
||||
|
||||
Kaskı kuşan/çıkar
|
||||
|
||||
Otur
|
||||
|
||||
Bin
|
||||
|
||||
Etkileşim
|
||||
|
||||
|
||||
Basit Saldırı
|
||||
İkincil Saldırı/Blok/Nişan Alma
|
||||
|
||||
|
||||
Yetenek çubuğu Slot 1
|
||||
Yetenek çubuğu Slot 2
|
||||
Yetenek çubuğu Slot 3
|
||||
Yetenek çubuğu Slot 4
|
||||
Yetenek çubuğu Slot 5
|
||||
Yetenek çubuğu Slot 6
|
||||
Yetenek çubuğu Slot 7
|
||||
Yetenek çubuğu Slot 8
|
||||
Yetenek çubuğu Slot 9
|
||||
Yetenek çubuğu Slot 10
|
||||
|
||||
|
||||
Duraklatma Menüsü
|
||||
Ayarlar
|
||||
Sosyal
|
||||
Harita
|
||||
Büyü kitabı
|
||||
Karakter
|
||||
Görev kaydı
|
||||
Çanta
|
||||
|
||||
|
||||
|
||||
Sohbet Mesajı Gönder
|
||||
Sohbeti Kaydır
|
||||
|
||||
|
||||
Serbest bakış
|
||||
|
||||
|
||||
Sohbet komutları:
|
||||
|
||||
/alias [İsim] - Sohbet İsmini değiştir
|
||||
/tp [İsim] - Seni başka bir oyuncuya ışınlar
|
||||
/jump <dx> <dy> <dz> - Pozisyonunu kaydır
|
||||
/goto <x> <y> <z> - Bir pozisyona ışınlan
|
||||
/kill - Kendini öldür
|
||||
/pig - Domuz NPC'si oluştur
|
||||
/wolf - Kurt NPC'si oluştur
|
||||
/help - Sohbet komutlarını göster"#,
|
||||
|
||||
"hud.social": "Sosyal",
|
||||
"hud.social.online": "Çevrimiçi",
|
||||
"hud.social.friends": "Arkadaşlar",
|
||||
"hud.social.not_yet_available": "Şu anda kullanılabilir değil",
|
||||
"hud.social.faction": "Klan",
|
||||
"hud.social.play_online_fmt": "{nb_player} oyuncu çevrimiçi",
|
||||
|
||||
"hud.spell": "Büyü",
|
||||
|
||||
"hud.free_look_indicator": "Serbest bakış açık",
|
||||
/// End HUD section
|
||||
|
||||
|
||||
/// Start chracter selection section
|
||||
// Character delete question
|
||||
"char_selection.delete_permanently": r#"Bu karakteri kalıcı olarak
|
||||
silmek istediğinden emin misin?"#,
|
||||
|
||||
"char_selection.change_server": "Sunucu Değiştir",
|
||||
"char_selection.enter_world": "Dünyaya Gir",
|
||||
"char_selection.logout": "Çıkış yap",
|
||||
"char_selection.create_new_charater": "Yeni Karakter Oluştur",
|
||||
"char_selection.character_creation": "Karakter Oluşumu",
|
||||
|
||||
"char_selection.human_default": "İnsan Varsayılanı",
|
||||
"char_selection.level_fmt": "Seviye {level_nb}",
|
||||
"char_selection.uncanny_valley": "Esrarengiz Vadi",
|
||||
"char_selection.plains_of_uncertainty": "Belirsizlik Ovaları",
|
||||
"char_selection.beard": "Sakal",
|
||||
"char_selection.hair_style": "Saç Stili",
|
||||
"char_selection.hair_color": "Saç Rengi",
|
||||
"char_selection.chest_color": "Göğüs Rengi",
|
||||
"char_selection.eye_color": "Göz Rengi",
|
||||
"char_selection.skin": "Deri",
|
||||
"char_selection.eyebrows": "Kaşlar",
|
||||
"char_selection.accessories": "Aksesuarlar",
|
||||
|
||||
/// End chracter selection section
|
||||
|
||||
|
||||
/// Start character window section
|
||||
"character_window.character_name": "Karakter Adı",
|
||||
// Charater stats
|
||||
"character_window.character_stats": r#"Dayanıklılık
|
||||
|
||||
Fiziksel yetenek
|
||||
|
||||
İrade gücü
|
||||
"#,
|
||||
|
||||
|
||||
/// Start character window section
|
||||
|
||||
|
||||
/// Start Escape Menu Section
|
||||
"esc_menu.logout": "Çıkış yap",
|
||||
"esc_menu.quit_game": "Oyundan çık",
|
||||
/// End Escape Menu Section
|
||||
}
|
||||
)
|
@ -34,16 +34,6 @@ void main() {
|
||||
|
||||
vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz);
|
||||
|
||||
/*
|
||||
// Round the position to the nearest triangular grid cell
|
||||
vec3 hex_pos = f_pos * 2.0;
|
||||
hex_pos = hex_pos + vec3(hex_pos.y * 1.4 / 3.0, hex_pos.y * 0.1, 0);
|
||||
if (fract(hex_pos.x) > fract(hex_pos.y)) {
|
||||
hex_pos += vec3(1.0, 1.0, 0);
|
||||
}
|
||||
hex_pos = floor(hex_pos);
|
||||
*/
|
||||
|
||||
vec3 light, diffuse_light, ambient_light;
|
||||
get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 0.0);
|
||||
float point_shadow = shadow_at(f_pos,f_norm);
|
||||
@ -52,7 +42,7 @@ void main() {
|
||||
vec3 point_light = light_at(f_pos, f_norm);
|
||||
light += point_light;
|
||||
diffuse_light += point_light;
|
||||
vec3 surf_color = illuminate(srgb_to_linear(vec3(0.2, 0.2, 1.0)), light, diffuse_light, ambient_light);
|
||||
vec3 surf_color = srgb_to_linear(vec3(0.4, 0.7, 2.0)) * light * diffuse_light * ambient_light;
|
||||
|
||||
float fog_level = fog(f_pos.xyz, focus_pos.xyz, medium.x);
|
||||
vec4 clouds;
|
||||
|
@ -68,16 +68,6 @@ void main() {
|
||||
vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz);
|
||||
float frag_dist = length(f_pos - cam_pos.xyz);
|
||||
|
||||
/*
|
||||
// Round the position to the nearest triangular grid cell
|
||||
vec3 hex_pos = f_pos * 2.0;
|
||||
hex_pos = hex_pos + vec3(hex_pos.y * 1.4 / 3.0, hex_pos.y * 0.1, 0);
|
||||
if (fract(hex_pos.x) > fract(hex_pos.y)) {
|
||||
hex_pos += vec3(1.0, 1.0, 0);
|
||||
}
|
||||
hex_pos = floor(hex_pos);
|
||||
*/
|
||||
|
||||
vec3 b_norm;
|
||||
if (f_norm.z > 0.0) {
|
||||
b_norm = vec3(1, 0, 0);
|
||||
@ -111,7 +101,7 @@ void main() {
|
||||
vec3 point_light = light_at(f_pos, norm);
|
||||
light += point_light;
|
||||
diffuse_light += point_light;
|
||||
vec3 surf_color = illuminate(srgb_to_linear(f_col), light, diffuse_light, ambient_light);
|
||||
vec3 surf_color = srgb_to_linear(vec3(0.2, 0.5, 1.0)) * light * diffuse_light * ambient_light;
|
||||
|
||||
float fog_level = fog(f_pos.xyz, focus_pos.xyz, medium.x);
|
||||
vec4 clouds;
|
||||
@ -119,7 +109,7 @@ void main() {
|
||||
|
||||
vec3 reflect_ray_dir = reflect(cam_to_frag, norm);
|
||||
// Hack to prevent the reflection ray dipping below the horizon and creating weird blue spots in the water
|
||||
reflect_ray_dir.z = max(reflect_ray_dir.z, 0.05);
|
||||
reflect_ray_dir.z = max(reflect_ray_dir.z, 0.01);
|
||||
|
||||
vec4 _clouds;
|
||||
vec3 reflect_color = get_sky_color(reflect_ray_dir, time_of_day.x, f_pos, vec3(-100000), 0.25, false, _clouds) * f_light;
|
||||
|
@ -27,6 +27,9 @@ void main() {
|
||||
f_pos.z *= min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0);
|
||||
f_pos.z -= 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0);
|
||||
|
||||
// Small waves
|
||||
f_pos.z -= 0.05 + 0.05 * (sin(tick.x * 2.0 + f_pos.x * 2.0 + f_pos.y * 2.0) + 1.0) * 0.5;
|
||||
|
||||
f_col = vec3(
|
||||
float((v_col_light >> 8) & 0xFFu),
|
||||
float((v_col_light >> 16) & 0xFFu),
|
||||
|
@ -21,6 +21,8 @@ const vec3 SKY_NIGHT_MID = vec3(0.001, 0.005, 0.02);
|
||||
const vec3 SKY_NIGHT_BOT = vec3(0.002, 0.004, 0.004);
|
||||
const vec3 NIGHT_LIGHT = vec3(0.002, 0.01, 0.03);
|
||||
|
||||
const float UNDERWATER_MIST_DIST = 100.0;
|
||||
|
||||
vec3 get_sun_dir(float time_of_day) {
|
||||
const float TIME_FACTOR = (PI * 2.0) / (3600.0 * 24.0);
|
||||
|
||||
@ -202,7 +204,7 @@ float fog(vec3 f_pos, vec3 focus_pos, uint medium) {
|
||||
float max_fog = 1.0;
|
||||
|
||||
if (medium == 1u) {
|
||||
mist_radius = 96.0;
|
||||
mist_radius = UNDERWATER_MIST_DIST;
|
||||
min_fog = 0.0;
|
||||
}
|
||||
|
||||
|
@ -14,5 +14,13 @@ out vec4 tgt_color;
|
||||
|
||||
void main() {
|
||||
vec4 _clouds;
|
||||
tgt_color = vec4(get_sky_color(normalize(f_pos), time_of_day.x, cam_pos.xyz, vec3(-100000), 1.0, true, _clouds), 1.0);
|
||||
float fog_level = fog(f_pos.xyz, focus_pos.xyz, medium.x);
|
||||
|
||||
float dist = 100000.0;
|
||||
if (medium.x == 1u) {
|
||||
dist = UNDERWATER_MIST_DIST;
|
||||
}
|
||||
vec3 wpos = cam_pos.xyz + normalize(f_pos) * dist;
|
||||
|
||||
tgt_color = vec4(get_sky_color(normalize(f_pos), time_of_day.x, cam_pos.xyz, wpos, 1.0, true, _clouds), 1.0);
|
||||
}
|
||||
|
@ -332,7 +332,8 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn connect() {
|
||||
let (mut postoffice, sock) = create_postoffice::<(), ()>(0).unwrap();
|
||||
let (mut postoffice, bound) = create_postoffice::<(), ()>(0).unwrap();
|
||||
let sock = (std::net::Ipv4Addr::LOCALHOST, bound.port());
|
||||
|
||||
let _client0 = PostBox::<(), ()>::to(sock).unwrap();
|
||||
let _client1 = PostBox::<(), ()>::to(sock).unwrap();
|
||||
@ -364,7 +365,8 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn send_recv() {
|
||||
let (mut postoffice, sock) = create_postoffice::<(), i32>(2).unwrap();
|
||||
let (mut postoffice, bound) = create_postoffice::<(), i32>(2).unwrap();
|
||||
let sock = (std::net::Ipv4Addr::LOCALHOST, bound.port());
|
||||
let test_msgs = vec![1, 1337, 42, -48];
|
||||
|
||||
let mut client = PostBox::<i32, ()>::to(sock).unwrap();
|
||||
@ -386,7 +388,8 @@ mod tests {
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn send_recv_huge() {
|
||||
let (mut postoffice, sock) = create_postoffice::<(), Vec<i32>>(3).unwrap();
|
||||
let (mut postoffice, bound) = create_postoffice::<(), Vec<i32>>(3).unwrap();
|
||||
let sock = (std::net::Ipv4Addr::LOCALHOST, bound.port());
|
||||
let test_msgs: Vec<Vec<i32>> = (0..5)
|
||||
.map(|i| (0..100000).map(|j| i * 2 + j).collect())
|
||||
.collect();
|
||||
@ -410,7 +413,8 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn send_recv_both() {
|
||||
let (mut postoffice, sock) = create_postoffice::<u32, u32>(4).unwrap();
|
||||
let (mut postoffice, bound) = create_postoffice::<u32, u32>(4).unwrap();
|
||||
let sock = (std::net::Ipv4Addr::LOCALHOST, bound.port());
|
||||
let mut client = PostBox::<u32, u32>::to(sock).unwrap();
|
||||
loop_for(Duration::from_millis(250), || ());
|
||||
let mut server = postoffice.new_postboxes().next().unwrap();
|
||||
|
@ -25,8 +25,8 @@ gfx_device_gl = { version = "0.16.2", optional = true }
|
||||
gfx_window_glutin = "0.31.0"
|
||||
glutin = "0.21.1"
|
||||
winit = { version = "0.19.4", features = ["serde"] }
|
||||
conrod_core = { git = "https://gitlab.com/veloren/conrod.git", branch = "hide_text" }
|
||||
conrod_winit = { git = "https://gitlab.com/veloren/conrod.git", branch = "hide_text" }
|
||||
conrod_core = { git = "https://gitlab.com/veloren/conrod.git", branch = "capucho/hide_text_cursor_fix" }
|
||||
conrod_winit = { git = "https://gitlab.com/veloren/conrod.git", branch = "capucho/hide_text_cursor_fix" }
|
||||
euc = "0.3.0"
|
||||
|
||||
# ECS
|
||||
|
@ -238,11 +238,8 @@ impl AudioFrontend {
|
||||
|
||||
/// Returns the default audio device.
|
||||
/// Does not return rodio Device struct in case our audio backend changes.
|
||||
pub fn get_default_device() -> String {
|
||||
rodio::default_output_device()
|
||||
.expect("No audio output devices detected.")
|
||||
.name()
|
||||
.expect("Unable to get device name")
|
||||
pub fn get_default_device() -> Option<String> {
|
||||
rodio::default_output_device().map(|dev| dev.name().expect("Unable to get device name"))
|
||||
}
|
||||
|
||||
/// Returns a vec of the audio devices available.
|
||||
|
@ -236,6 +236,7 @@ pub enum Event {
|
||||
Logout,
|
||||
Quit,
|
||||
ChangeLanguage(LanguageMetadata),
|
||||
ChangeFreeLookBehavior(PressBehavior),
|
||||
}
|
||||
|
||||
// TODO: Are these the possible layouts we want?
|
||||
@ -276,6 +277,11 @@ pub enum ShortcutNumbers {
|
||||
On,
|
||||
Off,
|
||||
}
|
||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
|
||||
pub enum PressBehavior {
|
||||
Toggle = 0,
|
||||
Hold = 1,
|
||||
}
|
||||
|
||||
pub struct Show {
|
||||
ui: bool,
|
||||
@ -1806,6 +1812,9 @@ impl Hud {
|
||||
settings_window::Event::AdjustWindowSize(new_size) => {
|
||||
events.push(Event::AdjustWindowSize(new_size));
|
||||
},
|
||||
settings_window::Event::ChangeFreeLookBehavior(behavior) => {
|
||||
events.push(Event::ChangeFreeLookBehavior(behavior));
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1879,8 +1888,8 @@ impl Hud {
|
||||
},
|
||||
Some(esc_menu::Event::Close) => {
|
||||
self.show.esc_menu = false;
|
||||
self.show.want_grab = false;
|
||||
self.force_ungrab = true;
|
||||
self.show.want_grab = true;
|
||||
self.force_ungrab = false;
|
||||
|
||||
// Unpause the game if we are on singleplayer
|
||||
if let Some(singleplayer) = global_state.singleplayer.as_ref() {
|
||||
|
@ -1,6 +1,6 @@
|
||||
use super::{
|
||||
img_ids::Imgs, BarNumbers, CrosshairType, Intro, ShortcutNumbers, Show, XpBar, MENU_BG,
|
||||
TEXT_COLOR,
|
||||
img_ids::Imgs, BarNumbers, CrosshairType, Intro, PressBehavior, ShortcutNumbers, Show, XpBar,
|
||||
MENU_BG, TEXT_COLOR,
|
||||
};
|
||||
use crate::{
|
||||
i18n::{list_localizations, LanguageMetadata, VoxygenLocalization},
|
||||
@ -141,7 +141,8 @@ widget_ids! {
|
||||
sct_num_dur_text,
|
||||
sct_num_dur_slider,
|
||||
sct_num_dur_value,
|
||||
|
||||
free_look_behavior_text,
|
||||
free_look_behavior_list
|
||||
}
|
||||
}
|
||||
|
||||
@ -220,6 +221,7 @@ pub enum Event {
|
||||
SctPlayerBatch(bool),
|
||||
SctDamageBatch(bool),
|
||||
ChangeLanguage(LanguageMetadata),
|
||||
ChangeFreeLookBehavior(PressBehavior),
|
||||
}
|
||||
|
||||
pub enum ScaleChange {
|
||||
@ -1254,6 +1256,45 @@ impl<'a> Widget for SettingsWindow<'a> {
|
||||
.graphics_for(state.ids.mouse_y_invert_button)
|
||||
.color(TEXT_COLOR)
|
||||
.set(state.ids.mouse_y_invert_label, ui);
|
||||
|
||||
// Free look behaviour
|
||||
Text::new(
|
||||
&self
|
||||
.localized_strings
|
||||
.get("hud.settings.free_look_behavior"),
|
||||
)
|
||||
.down_from(state.ids.mouse_zoom_invert_button, 10.0)
|
||||
.font_size(self.fonts.cyri.scale(14))
|
||||
.font_id(self.fonts.cyri.conrod_id)
|
||||
.color(TEXT_COLOR)
|
||||
.set(state.ids.free_look_behavior_text, ui);
|
||||
|
||||
let mode_label_list = [
|
||||
&self
|
||||
.localized_strings
|
||||
.get("hud.settings.press_behavior.toggle"),
|
||||
&self
|
||||
.localized_strings
|
||||
.get("hud.settings.press_behavior.hold"),
|
||||
];
|
||||
|
||||
// Get which free look behavior is currently active
|
||||
let selected = self.global_state.settings.gameplay.free_look_behavior as usize;
|
||||
|
||||
if let Some(clicked) = DropDownList::new(&mode_label_list, Some(selected))
|
||||
.w_h(200.0, 30.0)
|
||||
.color(MENU_BG)
|
||||
.label_color(TEXT_COLOR)
|
||||
.label_font_id(self.fonts.cyri.conrod_id)
|
||||
.down_from(state.ids.free_look_behavior_text, 8.0)
|
||||
.set(state.ids.free_look_behavior_list, ui)
|
||||
{
|
||||
match clicked {
|
||||
0 => events.push(Event::ChangeFreeLookBehavior(PressBehavior::Toggle)),
|
||||
1 => events.push(Event::ChangeFreeLookBehavior(PressBehavior::Hold)),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 3) Controls Tab --------------------------------
|
||||
@ -1365,6 +1406,9 @@ impl<'a> Widget for SettingsWindow<'a> {
|
||||
{}\n\
|
||||
\n\
|
||||
\n\
|
||||
{}\n\
|
||||
\n\
|
||||
\n\
|
||||
\n\
|
||||
\n\
|
||||
",
|
||||
@ -1413,6 +1457,7 @@ impl<'a> Widget for SettingsWindow<'a> {
|
||||
controls.bag,
|
||||
controls.enter,
|
||||
"Mouse Wheel", // Scroll chat
|
||||
controls.free_look
|
||||
))
|
||||
.color(TEXT_COLOR)
|
||||
.right_from(state.ids.controls_text, 0.0)
|
||||
|
@ -1,4 +1,5 @@
|
||||
#![deny(unsafe_code)]
|
||||
#![feature(bool_to_option)]
|
||||
#![recursion_limit = "2048"]
|
||||
|
||||
use veloren_voxygen::{
|
||||
@ -7,7 +8,7 @@ use veloren_voxygen::{
|
||||
logging,
|
||||
menu::main::MainMenuState,
|
||||
meta::Meta,
|
||||
settings::Settings,
|
||||
settings::{AudioOutput, Settings},
|
||||
window::Window,
|
||||
Direction, GlobalState, PlayState, PlayStateResult,
|
||||
};
|
||||
@ -46,16 +47,13 @@ fn main() {
|
||||
panic!("Failed to save settings: {:?}", err);
|
||||
}
|
||||
|
||||
let audio_device = || match &settings.audio.audio_device {
|
||||
Some(d) => d.to_string(),
|
||||
None => audio::get_default_device(),
|
||||
};
|
||||
|
||||
let mut audio = if settings.audio.audio_on {
|
||||
AudioFrontend::new(audio_device(), settings.audio.max_sfx_channels)
|
||||
} else {
|
||||
AudioFrontend::no_audio()
|
||||
};
|
||||
let mut audio = match settings.audio.output {
|
||||
AudioOutput::Off => None,
|
||||
AudioOutput::Automatic => audio::get_default_device(),
|
||||
AudioOutput::Device(ref dev) => Some(dev.clone()),
|
||||
}
|
||||
.map(|dev| AudioFrontend::new(dev, settings.audio.max_sfx_channels))
|
||||
.unwrap_or_else(AudioFrontend::no_audio);
|
||||
|
||||
audio.set_music_volume(settings.audio.music_volume);
|
||||
audio.set_sfx_volume(settings.audio.sfx_volume);
|
||||
|
@ -36,7 +36,7 @@ impl PlayState for MainMenuState {
|
||||
let mut client_init: Option<ClientInit> = None;
|
||||
|
||||
// Kick off title music
|
||||
if global_state.settings.audio.audio_on && global_state.audio.music_enabled() {
|
||||
if global_state.settings.audio.output.is_enabled() && global_state.audio.music_enabled() {
|
||||
global_state.audio.play_title_music();
|
||||
}
|
||||
|
||||
|
@ -433,7 +433,7 @@ impl MainMenuUi {
|
||||
.hover_image(self.imgs.button_hover)
|
||||
.press_image(self.imgs.button_press)
|
||||
.label_y(Relative::Scalar(2.0))
|
||||
.label("Accept")
|
||||
.label(&self.voxygen_i18n.get("common.accept"))
|
||||
.label_font_size(self.fonts.cyri.scale(22))
|
||||
.label_color(TEXT_COLOR)
|
||||
.label_font_id(self.fonts.cyri.conrod_id)
|
||||
|
@ -1,11 +1,12 @@
|
||||
use crate::{
|
||||
ecs::MyEntity,
|
||||
hud::{DebugInfo, Event as HudEvent, Hud},
|
||||
hud::{DebugInfo, Event as HudEvent, Hud, PressBehavior},
|
||||
i18n::{i18n_asset_key, VoxygenLocalization},
|
||||
key_state::KeyState,
|
||||
menu::char_selection::CharSelectionState,
|
||||
render::Renderer,
|
||||
scene::{camera, Scene, SceneData},
|
||||
settings::AudioOutput,
|
||||
window::{AnalogGameInput, Event, GameInput},
|
||||
Direction, Error, GlobalState, PlayState, PlayStateResult,
|
||||
};
|
||||
@ -422,9 +423,18 @@ impl PlayState for SessionState {
|
||||
Event::InputUpdate(GameInput::Charge, state) => {
|
||||
self.inputs.charge.set_state(state);
|
||||
},
|
||||
Event::InputUpdate(GameInput::FreeLook, true) => {
|
||||
free_look = !free_look;
|
||||
self.hud.free_look(free_look);
|
||||
Event::InputUpdate(GameInput::FreeLook, state) => {
|
||||
match (global_state.settings.gameplay.free_look_behavior, state) {
|
||||
(PressBehavior::Toggle, true) => {
|
||||
free_look = !free_look;
|
||||
self.hud.free_look(free_look);
|
||||
},
|
||||
(PressBehavior::Hold, state) => {
|
||||
free_look = state;
|
||||
self.hud.free_look(free_look);
|
||||
},
|
||||
_ => {},
|
||||
};
|
||||
},
|
||||
Event::AnalogGameInput(input) => match input {
|
||||
AnalogGameInput::MovementX(v) => {
|
||||
@ -626,7 +636,7 @@ impl PlayState for SessionState {
|
||||
HudEvent::ChangeAudioDevice(name) => {
|
||||
global_state.audio.set_device(name.clone());
|
||||
|
||||
global_state.settings.audio.audio_device = Some(name);
|
||||
global_state.settings.audio.output = AudioOutput::Device(name);
|
||||
global_state.settings.save_to_file_warn();
|
||||
},
|
||||
HudEvent::ChangeMaxFPS(fps) => {
|
||||
@ -703,6 +713,9 @@ impl PlayState for SessionState {
|
||||
global_state.settings.graphics.window_size = new_size;
|
||||
global_state.settings.save_to_file_warn();
|
||||
},
|
||||
HudEvent::ChangeFreeLookBehavior(behavior) => {
|
||||
global_state.settings.gameplay.free_look_behavior = behavior;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
use crate::{
|
||||
hud::{BarNumbers, CrosshairType, Intro, ShortcutNumbers, XpBar},
|
||||
hud::{BarNumbers, CrosshairType, Intro, PressBehavior, ShortcutNumbers, XpBar},
|
||||
i18n,
|
||||
render::{AaMode, CloudMode, FluidMode},
|
||||
ui::ScaleMode,
|
||||
@ -348,6 +348,7 @@ pub struct GameplaySettings {
|
||||
pub shortcut_numbers: ShortcutNumbers,
|
||||
pub bar_numbers: BarNumbers,
|
||||
pub ui_scale: ScaleMode,
|
||||
pub free_look_behavior: PressBehavior,
|
||||
}
|
||||
|
||||
impl Default for GameplaySettings {
|
||||
@ -369,6 +370,7 @@ impl Default for GameplaySettings {
|
||||
shortcut_numbers: ShortcutNumbers::On,
|
||||
bar_numbers: BarNumbers::Off,
|
||||
ui_scale: ScaleMode::RelativeToWindow([1920.0, 1080.0].into()),
|
||||
free_look_behavior: PressBehavior::Toggle,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -461,7 +463,26 @@ impl Default for GraphicsSettings {
|
||||
}
|
||||
}
|
||||
}
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum AudioOutput {
|
||||
/// Veloren's audio system wont work on some systems,
|
||||
/// so you can use this to disable it, and allow the
|
||||
/// game to function
|
||||
// If this option is disabled, functions in the rodio
|
||||
// library MUST NOT be called.
|
||||
Off,
|
||||
Automatic,
|
||||
Device(String),
|
||||
}
|
||||
|
||||
impl AudioOutput {
|
||||
pub fn is_enabled(&self) -> bool {
|
||||
match self {
|
||||
Self::Off => false,
|
||||
_ => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
/// `AudioSettings` controls the volume of different audio subsystems and which
|
||||
/// device is used.
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
@ -473,8 +494,7 @@ pub struct AudioSettings {
|
||||
pub max_sfx_channels: usize,
|
||||
|
||||
/// Audio Device that Voxygen will use to play audio.
|
||||
pub audio_device: Option<String>,
|
||||
pub audio_on: bool,
|
||||
pub output: AudioOutput,
|
||||
}
|
||||
|
||||
impl Default for AudioSettings {
|
||||
@ -484,8 +504,7 @@ impl Default for AudioSettings {
|
||||
music_volume: 0.4,
|
||||
sfx_volume: 0.6,
|
||||
max_sfx_channels: 10,
|
||||
audio_device: None,
|
||||
audio_on: true,
|
||||
output: AudioOutput::Automatic,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user