mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge remote-tracking branch 'origin/master' into sharp/zoomy-worldgen
This commit is contained in:
commit
9ebf07c6e1
@ -3,6 +3,12 @@ rustflags = [
|
||||
"-C", "link-arg=-fuse-ld=gold",
|
||||
]
|
||||
|
||||
[target.x86_64-pc-windows-gnu]
|
||||
rustflags = [
|
||||
# Required for mimalloc
|
||||
"-C", "link-arg=-lpsapi",
|
||||
]
|
||||
|
||||
[alias]
|
||||
# tools
|
||||
cmd-doc-gen = "run --features=bin_cmd_doc_gen --bin cmd_doc_gen"
|
||||
|
@ -13,7 +13,7 @@ variables:
|
||||
# https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning
|
||||
GIT_DEPTH: 3
|
||||
GIT_CLEAN_FLAGS: -f
|
||||
CACHE_IMAGE_TAG: 59fdc4df
|
||||
CACHE_IMAGE_TAG: c96aef21
|
||||
TAG_REGEX: '/^v[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||
|
||||
default:
|
||||
|
@ -59,6 +59,7 @@ coverage:
|
||||
extends: .release
|
||||
stage: build
|
||||
image: registry.gitlab.com/veloren/veloren-docker-ci/cache/tarpaulin:${CACHE_IMAGE_TAG}
|
||||
coverage: '/^\d+.\d+% coverage/'
|
||||
tags: ["veloren/veloren", "check"]
|
||||
script:
|
||||
- ln -s /dockercache/target target
|
||||
|
@ -2,5 +2,8 @@
|
||||
# exports default env variables in CI
|
||||
export DISABLE_GIT_LFS_CHECK=true
|
||||
export VELOREN_ASSETS="assets"
|
||||
|
||||
# When updating RUSTFLAGS here, windows-x86_64.sh must also be updated as it sets them independently
|
||||
export RUSTFLAGS="-D warnings"
|
||||
|
||||
export SHADERC_LIB_DIR=/shaderc/combined/
|
||||
|
@ -2,4 +2,10 @@
|
||||
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
|
||||
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
||||
export VELOREN_USERDATA_STRATEGY=executable
|
||||
|
||||
# RUSTFLAGS is set here in addition to env.sh (which is used for all targets not just windows) due to
|
||||
# https://github.com/rust-lang/cargo/issues/5376 which prevents the windows-specific rustflags set in
|
||||
# .cargo/config from being applied
|
||||
export RUSTFLAGS="-D warnings -C link-arg=-lpsapi"
|
||||
|
||||
time cargo build --target=x86_64-pc-windows-gnu --release --no-default-features --features default-publish
|
||||
|
24
CHANGELOG.md
24
CHANGELOG.md
@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
## [0.13.0] - 2022-07-23
|
||||
|
||||
### Added
|
||||
- Chat commands to mute and unmute players
|
||||
- Waypoints saved between sessions and shared with group members.
|
||||
@ -38,6 +48,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Slider for ambience volume
|
||||
- Weather generated on server is sent to clients, and seen on clients as rain/clouds.
|
||||
- Updated Brazilian Portuguese Translation
|
||||
- Lightning storms
|
||||
- More varied ambient birdcalls
|
||||
- Cave biomes
|
||||
- Updated the Polish translation
|
||||
|
||||
### Changed
|
||||
|
||||
@ -52,10 +66,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Changed module component modifier costs to the following scheme, based on base material: 1 -> 2 -> 5 -> 10 -> 15 -> 25
|
||||
- Damage from the same source dealt in the same tick will now be grouped up.
|
||||
- Critical hits are now shown differently in the damage numbers.
|
||||
- Fall damage and some (extra) buffs/debuffs now show up in the damage numbers.
|
||||
- Fall damage and some (extra) buffs/debuffs now show up in the damage numbers.
|
||||
- Optimized sprite processing decreasing the startup time of voxygen (and long freezes when trying
|
||||
to enter the world when this hasn't finished).
|
||||
- Metadata added to music files. Listen to the soundtrack more easily!
|
||||
- Overhauled caves: they're now a multi-layer network spanning the entire world
|
||||
|
||||
### Removed
|
||||
- Removed the options for single and cumulated damage.
|
||||
@ -70,7 +85,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Fixed an error where '{amount} Exp' floater did not use existing localizations
|
||||
- Fix villagers seeing cultists and familiar enemies through objects.
|
||||
- Menacing agents are now less spammy with their menacing messages
|
||||
- Fixed the title screen FPS cap not applying when the background FPS limit was set higher than 60 FPS
|
||||
- Fixed the title screen FPS cap not applying when the background FPS limit was set higher than 60 FPS
|
||||
- Fixed an issue where the hurt animation would "jump" whenever you lost/gained health.
|
||||
- Fixed a bug where multiple damage sources in the same tick would show up as a singular attack.
|
||||
- Fixed an issue where, if the same amount of healing and damage was received in the same tick, nothing would be shown.
|
||||
@ -78,6 +93,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Most sfx now correctly play when camera is underwater
|
||||
- All sounds now stop upon quitting to main menu
|
||||
- Combat music now loops and ends properly
|
||||
- Modular weapons now have a selling price
|
||||
- Closing a subwindow now only regrabs the cursor if no other subwindow requires it.
|
||||
|
||||
## [0.12.0] - 2022-02-19
|
||||
|
||||
@ -985,7 +1002,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
_0.1.0 was part of the legacy engine_
|
||||
|
||||
[unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.12.0&to=master
|
||||
[unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.13.0&to=master
|
||||
[0.13.0]: https://gitlab.com/veloren/veloren/compare?from=v0.12.0&to=v0.13.0
|
||||
[0.12.0]: https://gitlab.com/veloren/veloren/compare?from=v0.11.0&to=v0.12.0
|
||||
[0.11.0]: https://gitlab.com/veloren/veloren/compare?from=v0.10.0&to=v0.11.0
|
||||
[0.10.0]: https://gitlab.com/veloren/veloren/compare?from=v0.9.0&to=v0.10.0
|
||||
|
32
Cargo.lock
generated
32
Cargo.lock
generated
@ -4956,6 +4956,15 @@ dependencies = [
|
||||
"petgraph 0.5.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "roxmltree"
|
||||
version = "0.14.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b"
|
||||
dependencies = [
|
||||
"xmlparser",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rstar"
|
||||
version = "0.9.2"
|
||||
@ -5425,9 +5434,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "shaderc"
|
||||
version = "0.6.3"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "50b8aeaae10b9bda5cba66736a7e265f67698e912e1cc6a4678acba286e22be9"
|
||||
checksum = "80e6fe602a861622769530a23bc40bfba31adbf186d0c8412e83f5519c5d6bee"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"shaderc-sys",
|
||||
@ -5435,12 +5444,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "shaderc-sys"
|
||||
version = "0.6.3"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b12d7c62d6732884c9dfab587503fa3a795b108df152415a89da23812d4737e"
|
||||
checksum = "3794498651f8173d0afbc0bb8aca45ced111098227e755dde4c0ef2888c8d0bf"
|
||||
dependencies = [
|
||||
"cmake",
|
||||
"libc",
|
||||
"roxmltree",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6463,7 +6473,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "veloren-client"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"authc",
|
||||
@ -6735,7 +6745,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "veloren-server"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"atomicwrites",
|
||||
"authc",
|
||||
@ -6785,7 +6795,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "veloren-server-cli"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"ansi-parser",
|
||||
"clap 3.1.8",
|
||||
@ -6809,7 +6819,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "veloren-voxygen"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"assets_manager",
|
||||
"backtrace",
|
||||
@ -7970,6 +7980,12 @@ version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
|
||||
|
||||
[[package]]
|
||||
name = "xmlparser"
|
||||
version = "0.13.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8"
|
||||
|
||||
[[package]]
|
||||
name = "yasna"
|
||||
version = "0.5.0"
|
||||
|
@ -311,9 +311,9 @@
|
||||
keyword: "orc",
|
||||
generic: "Orc"
|
||||
),
|
||||
undead: (
|
||||
keyword: "undead",
|
||||
generic: "Undead"
|
||||
draugr: (
|
||||
keyword: "draugr",
|
||||
generic: "Draugr"
|
||||
)
|
||||
)
|
||||
),
|
||||
|
@ -30,8 +30,11 @@
|
||||
(4.0, Item("common.items.crafting_ing.hide.animal_hide")),
|
||||
|
||||
// Mob Drops
|
||||
(0.10, Item("common.items.crafting_ing.animal_misc.long_tusk")),
|
||||
(0.15, Item("common.items.crafting_ing.animal_misc.elegant_crest")),
|
||||
(0.15, Item("common.items.crafting_ing.animal_misc.grim_eyeball")),
|
||||
(0.15, Item("common.items.crafting_ing.animal_misc.icy_fang")),
|
||||
(0.2, Item("common.items.crafting_ing.animal_misc.strong_pincer")),
|
||||
(0.5, Item("common.items.crafting_ing.animal_misc.raptor_feather")),
|
||||
(1.2, Item("common.items.crafting_ing.animal_misc.claw")),
|
||||
(2.5, Item("common.items.crafting_ing.animal_misc.fur")),
|
||||
|
BIN
assets/voxygen/audio/ambience/leaves.ogg
(Stored with Git LFS)
BIN
assets/voxygen/audio/ambience/leaves.ogg
(Stored with Git LFS)
Binary file not shown.
@ -2,7 +2,7 @@
|
||||
tracks: [
|
||||
(
|
||||
path: "voxygen.audio.ambience.wind",
|
||||
length: 14.203,
|
||||
length: 14.2,
|
||||
tag: Wind,
|
||||
),
|
||||
(
|
||||
|
@ -11,8 +11,16 @@
|
||||
),
|
||||
Birdcall: (
|
||||
files: [
|
||||
"voxygen.audio.sfx.ambient.birdcall_1",
|
||||
"voxygen.audio.sfx.ambient.birdcall_2",
|
||||
"voxygen.audio.sfx.ambient.birdcall_01",
|
||||
"voxygen.audio.sfx.ambient.birdcall_02",
|
||||
"voxygen.audio.sfx.ambient.birdcall_03",
|
||||
"voxygen.audio.sfx.ambient.birdcall_04",
|
||||
"voxygen.audio.sfx.ambient.birdcall_05",
|
||||
"voxygen.audio.sfx.ambient.birdcall_06",
|
||||
"voxygen.audio.sfx.ambient.birdcall_07",
|
||||
"voxygen.audio.sfx.ambient.birdcall_08",
|
||||
"voxygen.audio.sfx.ambient.birdcall_09",
|
||||
"voxygen.audio.sfx.ambient.birdcall_10",
|
||||
],
|
||||
threshold: 10.0,
|
||||
),
|
||||
@ -1169,5 +1177,11 @@
|
||||
],
|
||||
threshold: 1.0,
|
||||
),
|
||||
Lightning: (
|
||||
files: [
|
||||
"voxygen.audio.sfx.ambient.lightning_1",
|
||||
],
|
||||
threshold: 1.0,
|
||||
),
|
||||
}
|
||||
)
|
||||
|
BIN
assets/voxygen/audio/sfx/ambient/birdcall_01.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_01.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_02.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_02.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_03.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_03.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_04.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_04.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_05.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_05.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_06.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_06.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_07.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_07.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_08.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_08.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_09.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_09.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_1.ogg
(Stored with Git LFS)
BIN
assets/voxygen/audio/sfx/ambient/birdcall_1.ogg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_10.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/birdcall_10.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/birdcall_2.ogg
(Stored with Git LFS)
BIN
assets/voxygen/audio/sfx/ambient/birdcall_2.ogg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/audio/sfx/ambient/lightning_1.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/ambient/lightning_1.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -67,6 +67,7 @@
|
||||
timing: Some(Night),
|
||||
biomes: [
|
||||
(Forest, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -79,6 +80,7 @@
|
||||
timing: Some(Night),
|
||||
biomes: [
|
||||
(Forest, 2),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -226,7 +228,6 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Snowland, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -268,6 +269,7 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Forest, 2),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -282,6 +284,7 @@
|
||||
biomes: [
|
||||
(Forest, 2),
|
||||
(Jungle, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -322,7 +325,6 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Snowland, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -336,7 +338,6 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Snowland, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -376,6 +377,7 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Forest, 2),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -389,6 +391,7 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Mountain, 1),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -402,6 +405,7 @@
|
||||
weather: None,
|
||||
biomes: [
|
||||
(Forest, 2),
|
||||
(Taiga, 1),
|
||||
],
|
||||
site: Some(Void),
|
||||
music_state: Activity(Explore),
|
||||
@ -521,6 +525,16 @@
|
||||
|
||||
// Cave music
|
||||
|
||||
Individual((
|
||||
title: "Stars Like Stalactites",
|
||||
path: "voxygen.audio.soundtrack.cave.stars_like_stalactites",
|
||||
length: 130.0,
|
||||
timing: None,
|
||||
biomes: [],
|
||||
site: Some(Cave),
|
||||
music_state: Activity(Explore),
|
||||
artist: "DragonDee",
|
||||
)),
|
||||
Individual((
|
||||
title: "Cavernous Hollow",
|
||||
path: "voxygen.audio.soundtrack.cave.cavernous_hollow",
|
||||
@ -641,8 +655,8 @@
|
||||
biomes: [],
|
||||
site: Some(Dungeon),
|
||||
segments: [
|
||||
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 56.0, Transition(Explore, Combat(High)), Some(Combat(High))),
|
||||
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.0, Activity(Combat(High)), None),
|
||||
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 55.97, Transition(Explore, Combat(High)), Some(Combat(High))),
|
||||
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 53.97, Activity(Combat(High)), None),
|
||||
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None),
|
||||
],
|
||||
),
|
||||
@ -653,8 +667,8 @@
|
||||
biomes: [],
|
||||
site: Some(Dungeon),
|
||||
segments: [
|
||||
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 60.0, Transition(Explore, Combat(High)), Some(Combat(High))),
|
||||
("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None),
|
||||
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 59.97, Transition(Explore, Combat(High)), Some(Combat(High))),
|
||||
("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 59.97, Activity(Combat(High)), None),
|
||||
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 4.0, Transition(Combat(High), Explore), None),
|
||||
],
|
||||
),
|
||||
|
BIN
assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg
(Stored with Git LFS)
BIN
assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg
(Stored with Git LFS)
BIN
assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/background/bg_4.jpg
(Stored with Git LFS)
BIN
assets/voxygen/background/bg_4.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/background/bg_main.jpg
(Stored with Git LFS)
BIN
assets/voxygen/background/bg_main.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/element/animation/loaders/boat1.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/animation/loaders/boat1.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/element/animation/loaders/boat2.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/animation/loaders/boat2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/element/animation/loaders/boat3.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/animation/loaders/boat3.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/element/animation/loaders/boat4.png
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/element/animation/loaders/boat4.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -41,4 +41,10 @@
|
||||
"voxygen.element.animation.loaders.ship4",
|
||||
"voxygen.element.animation.loaders.ship5",
|
||||
]),
|
||||
(2.0, [
|
||||
"voxygen.element.animation.loaders.boat1",
|
||||
"voxygen.element.animation.loaders.boat2",
|
||||
"voxygen.element.animation.loaders.boat3",
|
||||
"voxygen.element.animation.loaders.boat4",
|
||||
]),
|
||||
])
|
@ -59,7 +59,7 @@
|
||||
"common.species.human": "Чалавек",
|
||||
"common.species.dwarf": "Дварф",
|
||||
"common.species.elf": "Эльф",
|
||||
"common.species.undead": "Нежыць",
|
||||
"common.species.draugr": "Нежыць",
|
||||
"common.species.danari": "Данары",
|
||||
|
||||
"common.weapons.axe": "Сякера",
|
||||
|
@ -59,7 +59,7 @@ Està el client actualitzat?"#,
|
||||
"common.species.human": "Humà",
|
||||
"common.species.dwarf": "Nan",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "No-mort",
|
||||
"common.species.draugr": "No-mort",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Destral",
|
||||
|
@ -57,7 +57,7 @@
|
||||
"common.species.human": "Člověk",
|
||||
"common.species.dwarf": "Trpaslík",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Nemrtvý",
|
||||
"common.species.draugr": "Nemrtvý",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Sekera",
|
||||
|
@ -57,7 +57,7 @@ Ist das Spiel auf dem neusten Stand?"#,
|
||||
"common.species.human": "Mensch",
|
||||
"common.species.dwarf": "Zwerg",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Untoter",
|
||||
"common.species.draugr": "Untoter",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Axt",
|
||||
|
@ -59,7 +59,7 @@ Is the client up to date?"#,
|
||||
"common.species.human": "Human",
|
||||
"common.species.dwarf": "Dwarf",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Undead",
|
||||
"common.species.draugr": "Draugr",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Axe",
|
||||
|
@ -58,7 +58,7 @@
|
||||
"common.species.human": "Humano",
|
||||
"common.species.dwarf": "Enano",
|
||||
"common.species.elf": "Elfo",
|
||||
"common.species.undead": "No muerto",
|
||||
"common.species.draugr": "No muerto",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Hacha",
|
||||
|
@ -59,7 +59,7 @@
|
||||
"common.species.human": "Humano",
|
||||
"common.species.dwarf": "Enano",
|
||||
"common.species.elf": "Elfo",
|
||||
"common.species.undead": "No-Muerto",
|
||||
"common.species.draugr": "No-Muerto",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Hacha",
|
||||
|
@ -57,7 +57,7 @@ Jokoa eguneratuta duzu?"#,
|
||||
"common.species.human": "Gizakia",
|
||||
"common.species.dwarf": "Dwarf",
|
||||
"common.species.elf": "Elfoa",
|
||||
"common.species.undead": "Ez-hila",
|
||||
"common.species.draugr": "Ez-hila",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Aizkora",
|
||||
|
@ -58,7 +58,7 @@ Le client est-il à jour ?"#,
|
||||
"common.species.human": "Humain",
|
||||
"common.species.dwarf": "Nain",
|
||||
"common.species.elf": "Elfe",
|
||||
"common.species.undead": "Mort-vivant",
|
||||
"common.species.draugr": "Mort-vivant",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Hâche",
|
||||
|
@ -57,7 +57,7 @@ Naprakész a kliens?"#,
|
||||
"common.species.human": "Ember",
|
||||
"common.species.dwarf": "Törpe",
|
||||
"common.species.elf": "Tünde",
|
||||
"common.species.undead": "Élőhalott",
|
||||
"common.species.draugr": "Élőhalott",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Fejsze",
|
||||
|
@ -59,7 +59,7 @@ Il client è aggiornato?"#,
|
||||
"common.species.human": "Umano",
|
||||
"common.species.dwarf": "Nano",
|
||||
"common.species.elf": "Elfo",
|
||||
"common.species.undead": "Non-Morto",
|
||||
"common.species.draugr": "Non-Morto",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Ascia",
|
||||
|
@ -55,7 +55,7 @@
|
||||
"common.species.human": "人間",
|
||||
"common.species.dwarf": "ドワーフ",
|
||||
"common.species.elf": "エルフ",
|
||||
"common.species.undead": "アンデッド",
|
||||
"common.species.draugr": "アンデッド",
|
||||
"common.species.danari": "デナリ",
|
||||
|
||||
"common.weapons.axe": "斧",
|
||||
|
@ -53,7 +53,7 @@ Is je client nog up to date?"#,
|
||||
"common.species.human": "Mens",
|
||||
"common.species.dwarf": "Dwerg",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Ondood",
|
||||
"common.species.draugr": "Ondood",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Bijl",
|
||||
|
@ -53,7 +53,7 @@ Har det kommet nye oppdateringer?"#,
|
||||
"common.species.human": "Menneske",
|
||||
"common.species.dwarf": "Dverg",
|
||||
"common.species.elf": "Alv",
|
||||
"common.species.undead": "Udødelig",
|
||||
"common.species.draugr": "Udødelig",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Øks",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// Localization for Polish
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Tłumaczenia dla języka polskiego
|
||||
/// Localization for Polish
|
||||
(
|
||||
metadata: (
|
||||
language_name: "Polish",
|
||||
|
@ -1,43 +1,43 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Buffs
|
||||
"buff.remove": "Kliknij by usunąć",
|
||||
"buff.remove": "Kliknij aby usunąć",
|
||||
"buff.title.missing": "Brak tytułu",
|
||||
"buff.desc.missing": "Brak opisu",
|
||||
"buff.title.heal": "Uzdrowienie",
|
||||
"buff.desc.heal": "Odnawia zdrowie w ciągu chwili",
|
||||
"buff.desc.heal": "Regenerujesz zdrowie przez określony czas.",
|
||||
"buff.title.potion": "Mikstura",
|
||||
"buff.desc.potion": "Można ją wypić...",
|
||||
"buff.title.saturation": "Najedzenie",
|
||||
"buff.desc.saturation": "Odzyskaj zdrowie jedząc żywność.",
|
||||
"buff.desc.saturation": "Możesz odzyskać zdrowie poprzez jedzenie.",
|
||||
"buff.title.campfire_heal": "Odpoczynek przy ognisku",
|
||||
"buff.desc.campfire_heal": "Odpoczywanie przy ognisku odnawia {rate}% zdrowia na sekundę.",
|
||||
"buff.desc.campfire_heal": "Odpoczywanie przy ognisku przywraca {rate}% zdrowia na sekundę.",
|
||||
"buff.title.invulnerability": "Nietykalność",
|
||||
"buff.desc.invulnerability": "Nie można Cię zranić.",
|
||||
"buff.title.protectingward": "Totem ochronny",
|
||||
"buff.desc.protectingward": "Ochrona, poniekąd, przed atakami.",
|
||||
"buff.title.frenzied": "Oszalały",
|
||||
"buff.desc.frenzied": "Jesteś wypełniony nienaturalną prędkością i ignorujesz pomniejsze obrażenia.",
|
||||
"buff.title.hastened": "Szybkość",
|
||||
"buff.desc.hastened": "Twoje ruchy i ataki są szybsze.",
|
||||
"buff.desc.protectingward": "Częściowa ochrona przed atakami.",
|
||||
"buff.title.frenzied": "Szał Walki",
|
||||
"buff.desc.frenzied": "Wypełnia cię nienaturalny szał, ignorujesz pomniejsze obrażenia.",
|
||||
"buff.title.hastened": "Pośpiech",
|
||||
"buff.desc.hastened": "Twoje ruchy i ataki są szybsze.",
|
||||
// Debuffs
|
||||
"buff.title.bleed": "Krwawienie",
|
||||
"buff.desc.bleed": "Zadaje regularne obrażenia.",
|
||||
"buff.desc.bleed": "Zadaje ciągłe obrażenia.",
|
||||
"buff.title.cursed": "Klątwa",
|
||||
"buff.desc.cursed": "Jesteś przeklęty.",
|
||||
"buff.title.burn": "Płoniesz",
|
||||
"buff.title.burn": "Ogień",
|
||||
"buff.desc.burn": "Palisz się żywcem",
|
||||
"buff.title.crippled": "Okaleczony",
|
||||
"buff.desc.crippled": "Ruszasz się jak kaleka, gdyż twoje nogi są bardzo poranione.",
|
||||
"buff.title.frozen": "Zmrożony",
|
||||
"buff.desc.frozen": "Twoje ruchy i ataki są spowolnione.",
|
||||
"buff.title.wet": "Mokry",
|
||||
"buff.desc.wet": "Ciężko Ci się zatrzymać? W końcu się ślizgasz!",
|
||||
"buff.title.crippled": "Okaleczenie",
|
||||
"buff.desc.crippled": "Czy noga powinna się wyginać w tę stronę?",
|
||||
"buff.title.frozen": "Odmrożenia",
|
||||
"buff.desc.frozen": "Twoje ruchy i ataki są spowolnione.",
|
||||
"buff.title.wet": "Przemoczenie",
|
||||
"buff.desc.wet": "Twoje nogi nie trzymają się podłogi.",
|
||||
"buff.title.ensnared": "Spętany",
|
||||
"buff.desc.ensnared": "Pnącza oplotły twoje nogi, utrudniając Ci ruch.",
|
||||
"buff.desc.ensnared": "Pnącza oplotły twoje nogi, utrudniając poruszanie się.",
|
||||
// Buffs stats
|
||||
"buff.stat.health": "Odnawia {str_total} Zdrowia",
|
||||
"buff.stat.increase_max_energy": "Podnosi Maksymalną Wytrzymałość o {strength}",
|
||||
|
@ -1,17 +1,17 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"char_selection.loading_characters": "Ładowanie postaci...",
|
||||
"char_selection.delete_permanently": "Czy chcesz skasować tę postać (nie będzie można jej odzyskać)?",
|
||||
"char_selection.deleting_character": "Kasowanie postaci...",
|
||||
"char_selection.change_server": "Zmień serwer",
|
||||
"char_selection.enter_world": "Wejdź do świata",
|
||||
"char_selection.loading_characters": "Ładowanie Postaci...",
|
||||
"char_selection.delete_permanently": "Czy na pewno chcesz usunąć tę Postać na zawsze?",
|
||||
"char_selection.deleting_character": "Usuwanie Postaci...",
|
||||
"char_selection.change_server": "Zmień Serwer",
|
||||
"char_selection.enter_world": "Dołącz do Świata",
|
||||
"char_selection.logout": "Wyloguj się",
|
||||
"char_selection.create_new_character": "Stwórz nową postać",
|
||||
"char_selection.creating_character": "Tworzenie nowej postaci...",
|
||||
"char_selection.character_creation": "Tworzenie postaci",
|
||||
"char_selection.create_new_character": "Stwórz nową Postać",
|
||||
"char_selection.creating_character": "Tworzenie nowej Postaci...",
|
||||
"char_selection.character_creation": "Tworzenie Postaci",
|
||||
"char_selection.human_default": "Domyślny człowiek",
|
||||
"char_selection.level_fmt": "Poziom {level_nb}",
|
||||
"char_selection.uncanny_valley": "Dzicz",
|
||||
@ -23,8 +23,8 @@
|
||||
"char_selection.skin": "Skóra",
|
||||
"char_selection.eyeshape": "Detale oczu",
|
||||
"char_selection.accessories": "Akcesoria",
|
||||
"char_selection.create_info_name": "Twoja postać musi posiadać imię!",
|
||||
"char_selection.version_mismatch": "UWAGA! Ten serwer używa innej (prawdopodobnie niekompatybilnej) wersji gry. Zaktualizuj grę."
|
||||
"char_selection.create_info_name": "Twoja Postać musi posiadać imię!",
|
||||
"char_selection.version_mismatch": "UWAGA! Ten serwer używa innej (potencjalnie niekompatybilnej) wersji gry. Zaktualizuj grę."
|
||||
},
|
||||
|
||||
vector_map: {
|
||||
|
@ -1,10 +1,10 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Texts used in multiple locations with the same formatting
|
||||
"common.username": "Nazwa konta",
|
||||
"common.username": "Nazwa Użytkownika",
|
||||
"common.singleplayer": "Tryb jednoosobowy",
|
||||
"common.multiplayer": "Tryb wieloosobowy",
|
||||
"common.servers": "Serwery",
|
||||
@ -16,7 +16,7 @@
|
||||
"common.controls": "Sterowanie",
|
||||
"common.video": "Grafika",
|
||||
"common.sound": "Dźwięk",
|
||||
"common.chat": "Czat",
|
||||
"common.chat": "Czat",
|
||||
"common.resume": "Kontynuuj",
|
||||
"common.characters": "Postacie",
|
||||
"common.close": "Zamknij",
|
||||
@ -28,7 +28,7 @@
|
||||
"common.add": "Dodaj",
|
||||
"common.accept": "Akceptuj",
|
||||
"common.decline": "Odrzuć",
|
||||
"common.disclaimer": "Przypis",
|
||||
"common.disclaimer": "Uwaga",
|
||||
"common.cancel": "Anuluj",
|
||||
"common.none": "Brak",
|
||||
"common.error": "Błąd",
|
||||
@ -37,8 +37,8 @@
|
||||
"common.automatic": "Automatyczne",
|
||||
"common.random": "Losowo",
|
||||
"common.empty": "Pusty",
|
||||
"common.confirm": "Potwierdź",
|
||||
"common.delete_server": "Usuń serwer",
|
||||
"common.confirm": "Potwierdzam",
|
||||
"common.delete_server": "Usuń Serwer",
|
||||
|
||||
// Settings Window title
|
||||
"common.interface_settings": "Ustawienia interfejsu",
|
||||
@ -47,11 +47,11 @@
|
||||
"common.video_settings": "Ustawienia grafiki",
|
||||
"common.sound_settings": "Ustawienia dźwięku",
|
||||
"common.language_settings": "Ustawienia języka",
|
||||
"common.chat_settings": "Ustawienia czatu",
|
||||
"common.chat_settings": "Ustawienia czatu",
|
||||
|
||||
// Message when connection to the server is lost
|
||||
"common.connection_lost": r#"Stracono połączenie!
|
||||
Serwer jest restartowany?
|
||||
Czy serwer nie jest właśnie restartowany?.
|
||||
Czy masz aktualną wersję gry?"#,
|
||||
|
||||
|
||||
@ -59,36 +59,37 @@ Czy masz aktualną wersję gry?"#,
|
||||
"common.species.human": "Człowiek",
|
||||
"common.species.dwarf": "Krasnolud",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Nieumarły",
|
||||
"common.species.draugr": "Nieumarły",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Siekiera",
|
||||
"common.weapons.dagger": "Sztylet",
|
||||
"common.weapons.greatsword": "Wielki miecz",
|
||||
"common.weapons.shortswords": "Krótki miecz",
|
||||
"common.weapons.dagger": "Sztylet",
|
||||
"common.weapons.greatsword": "Wielki Miecz",
|
||||
"common.weapons.shortswords": "Krótkie Miecze",
|
||||
"common.weapons.sword": "Miecz",
|
||||
"common.weapons.staff": "Kostur maga",
|
||||
"common.weapons.staff": "Płomienny Kostur",
|
||||
"common.weapons.bow": "Łuk",
|
||||
"common.weapons.hammer": "Młot",
|
||||
"common.weapons.general": "Ogólna walka",
|
||||
"common.weapons.sceptre": "Kostur druida",
|
||||
"common.weapons.general": "Ogólna Walka",
|
||||
"common.weapons.sceptre": "Berło Leczenia",
|
||||
"common.weapons.shield": "Tarcza",
|
||||
"common.weapons.spear": "Włócznia",
|
||||
"common.weapons.hammer_simple": "Prosty młot",
|
||||
"common.weapons.sword_simple": "Prosty miecz",
|
||||
"common.weapons.staff_simple": "Prosty kostur maga",
|
||||
"common.weapons.axe_simple": "Prosta siekiera",
|
||||
"common.weapons.bow_simple": "Prosty łuk",
|
||||
"common.weapons.hammer_simple": "Prosty Młot",
|
||||
"common.weapons.sword_simple": "Prosty Miecz",
|
||||
"common.weapons.staff_simple": "Prosty Płomienny Kostur",
|
||||
"common.weapons.axe_simple": "Prosta Siekiera",
|
||||
"common.weapons.bow_simple": "Prosty Łuk",
|
||||
"common.weapons.unique": "Unikalny",
|
||||
"common.tool.debug": "Debug",
|
||||
"common.tool.farming": "Narzędzie do uprawy",
|
||||
"common.tool.farming": "Narzędzie Rolnicze",
|
||||
"common.tool.pick": "Kilof",
|
||||
"common.tool.mining": "Wykopywanie",
|
||||
"common.kind.modular_component": "Modularny komponent",
|
||||
"common.tool.mining": "Kopanie", // TODO: check what this is ingame
|
||||
"common.kind.modular_component": "Modularna część",
|
||||
"common.kind.modular_component_partial": "Część",
|
||||
"common.kind.glider": "Lotnia",
|
||||
"common.kind.consumable": "Jadalne",
|
||||
"common.kind.throwable": "Może być rzucone",
|
||||
"common.kind.utility": "Użytkowy",
|
||||
"common.kind.utility": "Użytkowe",
|
||||
"common.kind.ingredient": "Składnik",
|
||||
"common.kind.lantern": "Latarnia",
|
||||
"common.hands.one": "Jednoręczne",
|
||||
@ -101,6 +102,9 @@ Czy masz aktualną wersję gry?"#,
|
||||
"common.stats.power": "Moc",
|
||||
"common.stats.speed": "Prędkość",
|
||||
"common.stats.poise": "Odporność",
|
||||
"common.stats.range": "Zasięg",
|
||||
"common.stats.energy_efficiency": "Efektywność Energii",
|
||||
"common.stats.buff_strength": "Siła Efektów Wzmacniających",
|
||||
"common.stats.crit_chance": "% na cios kryt.",
|
||||
"common.stats.crit_mult": "Mnożnik ciosu kryt.",
|
||||
"common.stats.armor": "Obrona",
|
||||
@ -111,10 +115,10 @@ Czy masz aktualną wersję gry?"#,
|
||||
"common.stats.stealth": "Skradanie",
|
||||
"common.stats.slots": "Sloty",
|
||||
|
||||
"common.material.metal": "Metal",
|
||||
"common.material.metal": "Metal",
|
||||
"common.material.wood": "Drewno",
|
||||
"common.material.stone": "Kamień",
|
||||
"common.material.cloth": "Płótno",
|
||||
"common.material.cloth": "Tkanina",
|
||||
"common.material.hide": "Skóra",
|
||||
|
||||
"common.sprite.chest": "Skrzynia",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"esc_menu.logout": "Wyloguj",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"gameinput.primary": "Prosty atak",
|
||||
@ -16,31 +16,31 @@
|
||||
"gameinput.slot8": "Skrót 8",
|
||||
"gameinput.slot9": "Skrót 9",
|
||||
"gameinput.slot10": "Skrót 10",
|
||||
"gameinput.swaploadout": "Zmień wyposażenie",
|
||||
"gameinput.swaploadout": "Zamień wyposażenie",
|
||||
"gameinput.togglecursor": "Pokaż/schowaj kursor",
|
||||
"gameinput.help": "Pokaż/schowaj okno pomocy",
|
||||
"gameinput.toggleinterface": "Pokaż/schowaj interfejs",
|
||||
"gameinput.toggledebug": "Pokaż/schowaj FPS i debugowanie",
|
||||
"gameinput.toggle_egui_debug": "Włącz debugowanie EGUI",
|
||||
"gameinput.togglechat": "Włącz czat",
|
||||
"gameinput.screenshot": "Zrób zrzut ekranu",
|
||||
"gameinput.toggleingameui": "Pokaż/schowaj imiona i nazwy",
|
||||
"gameinput.fullscreen": "Przełącz pełny ekran",
|
||||
"gameinput.moveforward": "Naprzód",
|
||||
"gameinput.toggle_egui_debug": "Pokaż/schowaj debugowanie EGUI",
|
||||
"gameinput.togglechat": "Pokaż/schowaj czat",
|
||||
"gameinput.screenshot": "Zrzut ekranu",
|
||||
"gameinput.toggleingameui": "Pokaż/schowaj imiona postaci",
|
||||
"gameinput.fullscreen": "Pełny ekran",
|
||||
"gameinput.moveforward": "Przód",
|
||||
"gameinput.moveleft": "Lewo",
|
||||
"gameinput.moveright": "Prawo",
|
||||
"gameinput.moveback": "Cofaj się",
|
||||
"gameinput.moveback": "Wstecz",
|
||||
"gameinput.jump": "Skok",
|
||||
"gameinput.glide": "Lotnia",
|
||||
"gameinput.roll": "Przewrót",
|
||||
"gameinput.climb": "Wspinaj się",
|
||||
"gameinput.climbdown": "Opuść się (wspinaczka)",
|
||||
"gameinput.wallleap": "Odskocz (od ściany)",
|
||||
"gameinput.climb": "Wspinaczka w górę",
|
||||
"gameinput.climbdown": "Wspinaczka w dół",
|
||||
"gameinput.wallleap": "Odskocz od ściany",
|
||||
"gameinput.togglelantern": "Zapal/zgaś latarnię",
|
||||
"gameinput.mount": "Dosiądź",
|
||||
"gameinput.chat": "Czat",
|
||||
"gameinput.command": "Komenda",
|
||||
"gameinput.escape": "Menu",
|
||||
"gameinput.escape": "Menu", // TODO: czy nie da się lepiej?
|
||||
"gameinput.map": "Mapa",
|
||||
"gameinput.bag": "Torba",
|
||||
"gameinput.trade": "Handel",
|
||||
@ -49,26 +49,26 @@
|
||||
"gameinput.spellbook": "Czary",
|
||||
"gameinput.settings": "Ustawienia",
|
||||
"gameinput.respawn": "Odrodzenie",
|
||||
"gameinput.charge": "Szarża/Ładowanie",
|
||||
"gameinput.togglewield": "Zmień przedmiot w rękach",
|
||||
"gameinput.charge": "Szarża/Ładowanie", // TODO: sprawdź które to ma być
|
||||
"gameinput.togglewield": "Przełącz broń",
|
||||
"gameinput.interact": "Interakcja",
|
||||
"gameinput.freelook": "Tryb wolnego widoku",
|
||||
"gameinput.autowalk": "Automatyczne unoszenie/chodzenie",
|
||||
"gameinput.autowalk": "Automatyczne chodzenie/pływanie",
|
||||
"gameinput.cameraclamp": "Blokada kamery",
|
||||
"gameinput.dance": "Tańcz",
|
||||
"gameinput.select": "Zaznacz (obiekt)",
|
||||
"gameinput.select": "Zaznacz Obiekt",
|
||||
"gameinput.acceptgroupinvite": "Akceptuj zaproszenie do grupy",
|
||||
"gameinput.declinegroupinvite": "Odrzuć zaproszenie do grupy",
|
||||
"gameinput.cyclecamera": "Przełącz kamerę",
|
||||
"gameinput.crafting": "Tworzenie",
|
||||
"gameinput.cyclecamera": "Przełącz tryb kamery",
|
||||
"gameinput.crafting": "Tworzenie", // TODO: check this
|
||||
"gameinput.fly": "Lot",
|
||||
"gameinput.sneak": "Skradanie",
|
||||
"gameinput.swimdown": "Nurkuj",
|
||||
"gameinput.swimup": "Wynurz",
|
||||
"gameinput.swimdown": "Płyń w dół",
|
||||
"gameinput.swimup": "Płyń w górę",
|
||||
"gameinput.mapzoomin": "Przybliż mapę",
|
||||
"gameinput.mapzoomout": "Oddal mapę",
|
||||
"gameinput.greet": "Pozdrów",
|
||||
"gameinput.map.locationmarkerbutton": "Ustaw punkt orientacyjny na mapie"
|
||||
"gameinput.greet": "Pozdrów",
|
||||
"gameinput.map.locationmarkerbutton": "Utwórz znacznik na mapie"
|
||||
},
|
||||
|
||||
|
||||
|
35
assets/voxygen/i18n/pl_PL/hud/ability.ron
Normal file
35
assets/voxygen/i18n/pl_PL/hud/ability.ron
Normal file
@ -0,0 +1,35 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Debug stick
|
||||
"common.abilities.debug.possess.name": "Strzała Opętania",
|
||||
"common.abilities.debug.possess.desc": "Pozwala przejąć kontrolę nad twoim celem.",
|
||||
// Sword
|
||||
"common.abilities.sword.spin.name": "Cyklon",
|
||||
"common.abilities.sword.spin.desc": "Poruszasz się do przodu kręcąc się z Twoim mieczem.",
|
||||
// Axe
|
||||
"common.abilities.axe.leap.name": "Skok Drwala",
|
||||
"common.abilities.axe.leap.desc": "Skaczesz w kierunku kursora, tnąc swoją siekierą.",
|
||||
// Hammer
|
||||
"common.abilities.hammer.leap.name": "Uderzenie Zagłady",
|
||||
"common.abilities.hammer.leap.desc": "Atak obszarowy z odrzutem. Skaczesz w kierunku kursora, uderzając w ziemię swoim młotem.",
|
||||
// Bow
|
||||
"common.abilities.bow.shotgun.name": "Salwa",
|
||||
"common.abilities.bow.shotgun.desc": "Wystrzeliwujesz salwę strzał.",
|
||||
// Staff
|
||||
"common.abilities.staff.fireshockwave.name": "Pierścień Ognia",
|
||||
"common.abilities.staff.fireshockwave.desc": "Przywołujesz ognisty pierścień odrzucający przeciwników.",
|
||||
// Sceptre
|
||||
"common.abilities.sceptre.wardingaura.name": "Ochronna Aura",
|
||||
"common.abilities.sceptre.wardingaura.desc": "Chroni twoich sojuszników przed atakami.",
|
||||
// Unknown
|
||||
"common.abilities.unknown.name": "Umiejętność bez nazwy",
|
||||
"common.abilities.unknown.desc": "Umiejętność bez opisu",
|
||||
},
|
||||
|
||||
|
||||
vector_map: {
|
||||
}
|
||||
)
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Inventory
|
||||
@ -24,7 +24,7 @@
|
||||
"hud.bag.feet": "Stopy",
|
||||
"hud.bag.mainhand": "Ręka główna",
|
||||
"hud.bag.offhand": "Ręka poboczna",
|
||||
"hud.bag.inactive_mainhand": "Nieaktywna ręka główna",
|
||||
"hud.bag.inactive_mainhand": "Nieaktywna ręka główna",
|
||||
"hud.bag.inactive_offhand": "Nieaktywna ręka poboczna",
|
||||
"hud.bag.swap_equipped_weapons_title": "Zamień założone bronie",
|
||||
"hud.bag.swap_equipped_weapons_desc": "Wciśnij {key}",
|
||||
@ -33,7 +33,8 @@
|
||||
"hud.bag.energy": "Energia",
|
||||
"hud.bag.combat_rating": "Combat Rating (CR)",
|
||||
"hud.bag.protection": "Ochrona",
|
||||
"hud.bag.stun_res": "Odporność na ogłuszenie",
|
||||
"hud.bag.stun_res": "Odporność na ogłuszenie",
|
||||
"hud.bag.stealth": "Ukrywanie się",
|
||||
"hud.bag.combat_rating_desc": "Liczone na postawie Twojego\nekwipunku i zdrowia.",
|
||||
"hud.bag.protection_desc": "Redukcja obrażeń dzięki pancerzowi",
|
||||
"hud.bag.stun_res_desc": "Odporność na ogłuszenie spowodowane przyjmowaniem wielu ciosów.\nRegeneruje się jak energia.",
|
||||
|
@ -1,17 +1,17 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"character_window.character_name": "Imię postaci",
|
||||
// Character stats
|
||||
"character_window.character_stats": r#"Wytrzymałość
|
||||
|
||||
Wytrenowanie
|
||||
Kondycja
|
||||
|
||||
Siła woli
|
||||
|
||||
Ochrona
|
||||
Obrona
|
||||
"#,
|
||||
},
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.chat.all": "Wszystko",
|
||||
"hud.chat.all": "Wszystko",
|
||||
"hud.chat.chat_tab_hover_tooltip": "Kliknij prawym aby otworzyć ustawienia",
|
||||
|
||||
// Debuff outcomes
|
||||
@ -26,16 +26,16 @@
|
||||
"hud.chat.pvp_melee_kill_msg": "[{attacker}] zwycięża nad [{victim}]",
|
||||
"hud.chat.pvp_ranged_kill_msg": "[{attacker}] ustrzela [{victim}]",
|
||||
"hud.chat.pvp_explosion_kill_msg": "[{attacker}] wysadza [{victim}]",
|
||||
"hud.chat.pvp_energy_kill_msg": "[{attacker}] ubija [{victim}] magią",
|
||||
"hud.chat.pvp_energy_kill_msg": "[{attacker}] zabija [{victim}] magią",
|
||||
|
||||
"hud.chat.died_of_buff_nonexistent_msg": "[{victim}] {died_of_buff}",
|
||||
|
||||
"hud.chat.died_of_npc_buff_msg": "[{victim}] {died_of_buff} nałożone przez {attacker}",
|
||||
"hud.chat.npc_melee_kill_msg": "{attacker} ubija [{victim}]",
|
||||
"hud.chat.npc_melee_kill_msg": "{attacker} zabija [{victim}]",
|
||||
"hud.chat.npc_ranged_kill_msg": "{attacker} ustrzela [{victim}]",
|
||||
"hud.chat.npc_explosion_kill_msg": "{attacker} wysadza [{victim}]",
|
||||
"hud.chat.npc_energy_kill_msg": "{attacker} ubija [{victim}] magią",
|
||||
"hud.chat.npc_other_kill_msg": "{attacker} ubija [{victim}]",
|
||||
"hud.chat.npc_energy_kill_msg": "{attacker} zabija [{victim}] magią",
|
||||
"hud.chat.npc_other_kill_msg": "{attacker} zabija [{victim}]",
|
||||
|
||||
"hud.chat.loot_msg": "Podniesiono [{item}]",
|
||||
"hud.chat.loot_fail": "Twój ekwipunek jest pełen!",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.crafting": "Tworzenie",
|
||||
@ -23,7 +23,7 @@
|
||||
// Tabs
|
||||
"hud.crafting.tabs.all": "Wszystko",
|
||||
"hud.crafting.tabs.armor": "Pancerz",
|
||||
"hud.crafting.tabs.dismantle": "Zdemontuj",
|
||||
"hud.crafting.tabs.dismantle": "Zdemontuj",
|
||||
"hud.crafting.tabs.food": "Żywność",
|
||||
"hud.crafting.tabs.glider": "Lotnie",
|
||||
"hud.crafting.tabs.potion": "Mikstury",
|
||||
@ -34,6 +34,17 @@
|
||||
"hud.crafting.tabs.processed_material": "Materiały",
|
||||
"hud.crafting.dismantle_title": "Demontowanie",
|
||||
"hud.crafting.dismantle_explanation" : "Najedź na przedmioty w pleacaku aby\nzobaczyć co możesz odzyskać.\n\nKliknij podwójnie aby rozmontować.",
|
||||
"hud.crafting.modular_desc": "Przeciągnij części przedmiotu aby stworzyć broń",
|
||||
"hud.crafting.mod_weap_prim_slot_title": "Główna część broni",
|
||||
"hud.crafting.mod_weap_prim_slot_desc": "Połóż tutaj główną część broni (np. ostrze miecza, siekiery, lub kończyny łuku).",
|
||||
"hud.crafting.mod_weap_sec_slot_title": "Poboczna część broni",
|
||||
"hud.crafting.mod_weap_sec_slot_desc": "Połóż tutaj poboczną część bronii (np. rękojeść miecza, uchwyt łuku, lub rdzeń różdżki).", // TODO: prawdopodobnie kostur zamiast różdżki
|
||||
"hud.crafting.mod_comp_metal_prim_slot_title": "Sztabka metalu",
|
||||
"hud.crafting.mod_comp_metal_prim_slot_desc": "Połóż tutaj sztabkę metalu, tylko niektóre metale mogą być użyte do tworzenia broni.",
|
||||
"hud.crafting.mod_comp_wood_prim_slot_title": "Drewno",
|
||||
"hud.crafting.mod_comp_wood_prim_slot_desc": "Połóż tutaj drewno, tylko niektóre rodzaje drewna mogą być użyte do tworzenia broni.",
|
||||
"hud.crafting.mod_comp_sec_slot_title": "Materiał zwierzęcy",
|
||||
"hud.crafting.mod_comp_sec_slot_desc": "Opcjonalnie połóż tutaj zwierzęcy materiał do tworzenia przedmiotów, tylko niektóre materiały zwierzęce mogą zostać użyte do ulepszenia broni.",
|
||||
},
|
||||
|
||||
|
||||
|
@ -1,21 +1,21 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.group": "Drużyna",
|
||||
"hud.group.invite_to_join": "[{name}] zaprasza Cię do drużyny!",
|
||||
"hud.group": "Grupa",
|
||||
"hud.group.invite_to_join": "[{name}] zaprasza Cię do grupy!",
|
||||
"hud.group.invite_to_trade": "[{name}] zaprasza Cię do wymiany.",
|
||||
"hud.group.invite": "Zaproś",
|
||||
"hud.group.kick": "Wyrzuć",
|
||||
"hud.group.assign_leader": "Daj lidera",
|
||||
"hud.group.assign_leader": "Przypisz dowódcę",
|
||||
"hud.group.leave": "Opuść drużynę",
|
||||
"hud.group.dead" : "Martwy", /// forma
|
||||
"hud.group.out_of_range": "Poza zasięgiem",
|
||||
"hud.group.add_friend": "Dodaj do przyjaciół",
|
||||
"hud.group.link_group": "Połącz drużyny",
|
||||
"hud.group.add_friend": "Dodaj do znajomych",
|
||||
"hud.group.link_group": "Połącz grupy",
|
||||
"hud.group.in_menu": "W menu",
|
||||
"hud.group.members": "Członkowie drużyny",
|
||||
"hud.group.members": "Członkowie grupy",
|
||||
},
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Map and Questlog
|
||||
@ -32,10 +32,10 @@
|
||||
"hud.map.toggle_minimap_voxel": "Przełącz widok wokseli na minimapie",
|
||||
"hud.map.zoom_minimap_explanation": "Przybliż minimapę aby zobaczyć\nteren dookoła ciebie z większą dokładnością",
|
||||
"hud.map.gnarling": "Fortyfikacje Gnarlingów",
|
||||
"hud.map.placed_by": "Umiejscowione poprzez {name}",
|
||||
"hud.map.placed_by": "Umiejscowione przez {name}",
|
||||
},
|
||||
|
||||
|
||||
vector_map: {
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -1,32 +1,35 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.do_not_show_on_startup": "Nie pokazuj tego podczas startu",
|
||||
"hud.show_tips": "Pokaż porady",
|
||||
"hud.quests": "Zadania",
|
||||
"hud.you_died": "Zginąłeś",
|
||||
"hud.waypoint_saved": "Punkt orientacyjny zachowany",
|
||||
"hud.sp_arrow_txt": "PR", /// punkty rozwoju
|
||||
"hud.you_died": "Zginąłeś", // forma
|
||||
"hud.waypoint_saved": "Punkt orientacyjny zapisany",
|
||||
"hud.sp_arrow_txt": "PR", // punkty rozwoju
|
||||
"hud.inventory_full": "Ekwipunek pełen",
|
||||
"hud.someone_else": "kogoś innego", // TODO: forma (ktoś inny)
|
||||
"hud.another_group": "inną grupę", // TODO: forma (inna grupa)
|
||||
"hud.owned_by_for_secs": "Posiadane przez {name} przez {secs} sekund",
|
||||
|
||||
"hud.press_key_to_show_keybindings_fmt": "[{key}] przypisania klawiszy",
|
||||
"hud.press_key_to_toggle_lantern_fmt": "[{key}] latarnia",
|
||||
"hud.press_key_to_show_debug_info_fmt": "Naciśnij {key} by zobaczyć debug",
|
||||
"hud.press_key_to_toggle_keybindings_fmt": "Naciśnij {key} by przełączyć przypisania klawiszy",
|
||||
"hud.press_key_to_toggle_debug_info_fmt": "Naciśnij {key} by przełączyć debugowanie",
|
||||
|
||||
// Respawn message
|
||||
|
||||
// Respawn message
|
||||
"hud.press_key_to_respawn": r#"Naciśnij {key} by odrodzić się przy ostatnio odwiedzonym ognisku."#,
|
||||
|
||||
// Tutorial Button
|
||||
|
||||
// Tutorial Button
|
||||
"hud.tutorial_btn": r#"Samouczek"#,
|
||||
"hud.tutorial_click_here": r#"Naciśnij [ {key} ] by przełączyć tryb przechwytywania myszy i naciśnij ten przycisk!"#,
|
||||
"hud.tutorial_elements": r#"Tworzenie"#,
|
||||
|
||||
"hud.temp_quest_headline": r#"Witaj Przybyszu!"#,
|
||||
"hud.temp_quest_text": r#"By zacząć swoją podróż zacznij od rozglądnięcia się i zebrania zapasów.
|
||||
"hud.temp_quest_headline": r#"Witaj Przybyszu!"#,
|
||||
"hud.temp_quest_text": r#"By zacząć swoją podróż zacznij od rozglądnięcia się i zebrania zapasów.
|
||||
|
||||
Śmiało bierz cokolwiek będzie Ci potrzebne podczas Twojej wyprawy!
|
||||
|
||||
@ -46,7 +49,7 @@ Kiedy poczujesz się gotów, spróbuj zdobyć lepszy ekwipunek z wielu wyzwań r
|
||||
"hud.free_look_indicator": "Tryb rozglądania aktywny. Naciśnij {key} by wyłączyć.",
|
||||
"hud.camera_clamp_indicator": "Pionowa blokada kamery aktywna. Naciśnij {key} by wyłączyć.",
|
||||
"hud.auto_walk_indicator": "Automatyczne chodzenie/pływanie aktywne",
|
||||
"hud.collect": "Zbierz",
|
||||
"hud.collect": "Zbieraj",
|
||||
"hud.pick_up": "Podnieś",
|
||||
"hud.open": "Otwórz",
|
||||
"hud.use": "Użyj",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// SCT outputs
|
||||
|
@ -1,10 +1,10 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
// Settings
|
||||
"hud.settings.general": "Generalne",
|
||||
"hud.settings.general": "Ogólne",
|
||||
"hud.settings.none": "Brak",
|
||||
"hud.settings.press_behavior.toggle": "Przełącz",
|
||||
"hud.settings.press_behavior.hold": "Przytrzymaj",
|
||||
@ -15,8 +15,8 @@
|
||||
"hud.settings.show_hotkey_hints": "Pokaż klawisze skrótu",
|
||||
"hud.settings.tips_on_startup": "Porady startowe",
|
||||
"hud.settings.ui_scale": "Skala interfejsu",
|
||||
"hud.settings.relative_scaling": "Relatywne skalowanie",
|
||||
"hud.settings.custom_scaling": "Niestandardowe skalowanie",
|
||||
"hud.settings.relative_scaling": "Skalowanie relatywne",
|
||||
"hud.settings.custom_scaling": "Skalowanie niestandardowe",
|
||||
"hud.settings.crosshair": "Celownik",
|
||||
"hud.settings.opacity": "Przezroczystość",
|
||||
"hud.settings.hotbar": "Pasek skrótów",
|
||||
@ -25,13 +25,18 @@
|
||||
"hud.settings.buffs_mmap": "Wzmocnienia na minimapie",
|
||||
"hud.settings.toggle_bar_experience": "Przełącz pasek doświadczenia",
|
||||
"hud.settings.scrolling_combat_text": "Przewijanie tekstu podczas walki",
|
||||
"hud.settings.damage_accumulation_duration": "Czas akumulacji obrażeń",
|
||||
"hud.settings.incoming_damage": "Otrzymywane obrażenia",
|
||||
"hud.settings.incoming_damage_accumulation_duration": "Czas akumulacji otrzymywanych obrażeń",
|
||||
"hud.settings.round_damage": "Zaokrąglaj obrażenia",
|
||||
"hud.settings.speech_bubble": "Dymek rozmowy",
|
||||
"hud.settings.speech_bubble_self": "Pokazuj swój dymek rozmowy",
|
||||
"hud.settings.speech_bubble_dark_mode": "Dymek rozmowy w trybie ciemnym",
|
||||
"hud.settings.speech_bubble_icon": "Ikona dymka rozmowy",
|
||||
"hud.settings.energybar_numbers": "Numery na pasku energii",
|
||||
"hud.settings.always_show_bars": "Zawsze pokazuj paski zdrowia i energii",
|
||||
"hud.settings.energybar_numbers": "Liczby na pasku energii",
|
||||
"hud.settings.always_show_bars": "Zawsze pokazuj paski zdrowia i energii",
|
||||
"hud.settings.experience_numbers": "Ilość Doświadczenia",
|
||||
"hud.settings.accumulate_experience": "Kumuluj ilość doświadczenia",
|
||||
"hud.settings.values": "Wartości",
|
||||
"hud.settings.percentages": "Procenty",
|
||||
"hud.settings.chat": "Czat",
|
||||
@ -42,8 +47,8 @@
|
||||
|
||||
"hud.settings.pan_sensitivity": "Czułość rozglądania",
|
||||
"hud.settings.zoom_sensitivity": "Czułość przybliżenia",
|
||||
"hud.settings.camera_clamp_angle": "Kąt kamery w osi pionowej w zablokowanym trybie",
|
||||
"hud.settings.invert_scroll_zoom": "Odwróć przybliżenie kółkiem myszy",
|
||||
"hud.settings.camera_clamp_angle": "Kąt kamery w osi pionowej w trybie zablokowanym",
|
||||
"hud.settings.invert_scroll_zoom": "Odwrócone przybliżanie kółkiem myszy",
|
||||
"hud.settings.invert_mouse_y_axis": "Odwróć oś Y myszy",
|
||||
"hud.settings.invert_controller_y_axis": "Odwróć oś Y kontrolera",
|
||||
"hud.settings.enable_mouse_smoothing": "Wygładzanie ruchu kamery",
|
||||
@ -53,14 +58,16 @@
|
||||
"hud.settings.player_physics_behavior": "Fizyka gracza (eksperymentalne)",
|
||||
"hud.settings.stop_auto_walk_on_input": "Przełącz automatyczny chód poruszaniem",
|
||||
"hud.settings.auto_camera": "Automatyczna kamera",
|
||||
"hud.settings.bow_zoom": "Przybliż widok podczas naciągania łuku",
|
||||
"hud.settings.reset_gameplay": "Zresetuj ustawienia",
|
||||
|
||||
"hud.settings.view_distance": "Odległość renderowania",
|
||||
"hud.settings.lod_distance": "Odległość renderowania LoD (elementów uproszczonych)",
|
||||
"hud.settings.sprites_view_distance": "Odległość renderowania 2d",
|
||||
"hud.settings.figures_view_distance": "Odległość renderowania obiektów",
|
||||
"hud.settings.maximum_fps": "Ogranicz maksymalne klatki",
|
||||
"hud.settings.background_fps": "Ilość klatek w tle",
|
||||
"hud.settings.present_mode": "Obecny tryb",
|
||||
"hud.settings.maximum_fps": "Limit klatek",
|
||||
"hud.settings.background_fps": "Limit klatek w tle",
|
||||
"hud.settings.present_mode": "Present Mode", // TODO: ask what does this do
|
||||
"hud.settings.present_mode.fifo": "FIFO",
|
||||
"hud.settings.present_mode.mailbox": "MAILBOX",
|
||||
"hud.settings.present_mode.immediate": "Natychmiastowy",
|
||||
@ -72,25 +79,25 @@
|
||||
"hud.settings.upscale_factor": "Rozdzielczość wewnętrzna",
|
||||
"hud.settings.cloud_rendering_mode": "Tryb renderowania chmur",
|
||||
"hud.settings.fluid_rendering_mode": "Tryb renderowania płynów",
|
||||
"hud.settings.fluid_rendering_mode.cheap": "Lekki",
|
||||
"hud.settings.fluid_rendering_mode.cheap": "Szybki",
|
||||
"hud.settings.fluid_rendering_mode.shiny": "Połyskujący",
|
||||
"hud.settings.cloud_rendering_mode.minimal": "Minimalny",
|
||||
"hud.settings.cloud_rendering_mode.low": "Niski",
|
||||
"hud.settings.cloud_rendering_mode.medium": "Średni",
|
||||
"hud.settings.cloud_rendering_mode.high": "Wysoki",
|
||||
"hud.settings.cloud_rendering_mode.ultra": "Uber (bez hairworksów)",
|
||||
"hud.settings.cloud_rendering_mode.ultra": "Ultra (bez hairworksów)",
|
||||
"hud.settings.fullscreen": "Pełen ekran",
|
||||
"hud.settings.fullscreen_mode": "Tryb pełnego ekranu",
|
||||
"hud.settings.fullscreen_mode.exclusive": "Ekskluzywny (przejęcie)",
|
||||
"hud.settings.fullscreen_mode.borderless": "Okno bez ramek (łatwiejsze alt-tab'owanie)",
|
||||
"hud.settings.gpu_profiler": "Włącz taktowanie GPU (Nie zawsze wspierane)",
|
||||
"hud.settings.lossy_terrain_compression": "Słabsza kompresja terenu",
|
||||
"hud.settings.weapon_trails": "Ścieżki broni (efekt ataku)",
|
||||
"hud.settings.gpu_profiler": "Włącz taktowanie GPU (Nie zawsze wspierane)", // TODO ask what this does and improve translation
|
||||
"hud.settings.particles": "Cząsteczki",
|
||||
"hud.settings.lossy_terrain_compression": "Stratna kompresja terenu (dla wolnych połączeń)",
|
||||
"hud.settings.weapon_trails": "Smugi za bronią (efekt ataku)",
|
||||
"hud.settings.resolution": "Rozdzielczość",
|
||||
"hud.settings.bit_depth": "Głębia bitowa",
|
||||
"hud.settings.refresh_rate": "Częstotliwość odświeżania",
|
||||
"hud.settings.lighting_rendering_mode": "Tryb renderowania odbić",
|
||||
"hud.settings.lighting_rendering_mode": "Tryb Renderowania Oświetlenia",
|
||||
"hud.settings.lighting_rendering_mode.ashikhmin": "Typ A - Wysokie",
|
||||
"hud.settings.lighting_rendering_mode.blinnphong": "Typ B - Średnie",
|
||||
"hud.settings.lighting_rendering_mode.lambertian": "Typ L - Lekkie",
|
||||
@ -99,16 +106,18 @@
|
||||
"hud.settings.shadow_rendering_mode.cheap": "Lekki",
|
||||
"hud.settings.shadow_rendering_mode.map": "Mapa",
|
||||
"hud.settings.shadow_rendering_mode.map.resolution": "Rozdzielczość",
|
||||
"hud.settings.lod_detail": "Ilość szczegółów",
|
||||
"hud.settings.rain_occlusion.resolution": "Wykrywanie Okluzji Deszczu",
|
||||
"hud.settings.lod_detail": "Jakość LoD",
|
||||
"hud.settings.save_window_size": "Zapisz wymiary okna",
|
||||
"hud.settings.reset_graphics": "Zresetuj ustawienia",
|
||||
"hud.settings.bloom": "Rozmycie",
|
||||
"hud.settings.bloom": "Poświata (Bloom)",
|
||||
"hud.settings.point_glow": "Poświata punktowa",
|
||||
|
||||
"hud.settings.master_volume": "Głośność ogólna",
|
||||
"hud.settings.inactive_master_volume_perc": "Głośność ogólna (nieaktywne okno)",
|
||||
"hud.settings.music_volume": "Głośność muzyki",
|
||||
"hud.settings.sound_effect_volume": "Głośność efektów dźwiękowych",
|
||||
"hud.settings.master_volume": "Głośność Ogólna",
|
||||
"hud.settings.inactive_master_volume_perc": "Głośność Ogólna (nieaktywne okno)",
|
||||
"hud.settings.music_volume": "Głośność Muzyki",
|
||||
"hud.settings.sound_effect_volume": "Głośność Efektów Dźwiękowych",
|
||||
"hud.settings.ambience_volume": "Głośność Efektów Otoczenia",
|
||||
"hud.settings.audio_device": "Urządzenie dźwiękowe",
|
||||
"hud.settings.reset_sound": "Zresetuj ustawienia",
|
||||
|
||||
@ -132,7 +141,7 @@
|
||||
"hud.settings.say": "Powiedz",
|
||||
"hud.settings.all": "Wszyscy",
|
||||
"hud.settings.group_only": "Tylko dla grupy",
|
||||
"hud.settings.reset_chat" : "Przywróć ustawienia podstawowe",
|
||||
"hud.settings.reset_chat" : "Zresetuj ustawienia",
|
||||
},
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.rank_up": "Nowy punkt rozwoju",
|
||||
@ -106,36 +106,36 @@
|
||||
// Bow
|
||||
"hud.skill.bow_projectile_speed_title" : "Prędkość strzały",
|
||||
"hud.skill.bow_projectile_speed" : "Pozwala wypuszczać strzały szybsze i lecące dalej {boost}%{SP}",
|
||||
"hud.skill.bow_arrow_count_title" : "Ilość strzał",
|
||||
"hud.skill.bow_arrow_count" : "Wystrzel dodatkową strzałę gdy robisz przewrót{SP}",
|
||||
"hud.skill.bow_repeater_cost_title" : "Wielostrzał - koszt",
|
||||
"hud.skill.bow_repeater_cost" : "Zmniejsza koszt Wytrzymałości wielostrzału o {boost}%{SP}",
|
||||
"hud.skill.bow_repeater_glide_title" : "Wielostrzał - odskok",
|
||||
"hud.skill.bow_repeater_glide" : "Odskocz dalej podczas wielostrzału{SP}",
|
||||
"hud.skill.bow_repeater_damage_title" : "Wielostrzał - obrażenia",
|
||||
"hud.skill.bow_repeater_damage" : "Zwiększa obrażenia o {boost}%{SP}",
|
||||
"hud.skill.bow_repeater_unlock_title" : "Wielostrzał",
|
||||
"hud.skill.bow_repeater_unlock" : "Odblokowuje ładowany sus w powierze i zasypanie przeciwników gradem strzał{SP}",
|
||||
"hud.skill.bow_charged_title" : "Przeciągnięcie",
|
||||
"hud.skill.bow_charged" : "Ponieważ naciągnąłeś zbyt mocno (charged shot)",
|
||||
"hud.skill.bow_charged_knockback_title" : "Przeciągnięcie - odrzut",
|
||||
"hud.skill.bow_charged_knockback" : "Odrzuć przeciwników {boost}% dalej przeciągnięciem{SP}",
|
||||
"hud.skill.bow_charged_move_speed_title" : "Przeciągnięcie - poruszanie",
|
||||
"hud.skill.bow_charged_move_speed" : "Zwiększa możliwość jak bardzo możesz się poruszać podczas przeciągnięcia o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_speed_title" : "Przeciągnięcie - szybkość",
|
||||
"hud.skill.bow_charged_speed" : "Zwiększa prędkość ładownia przeciągnięcia o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_projectile_speed_title" : "Przeciągnięcie - prędkość",
|
||||
"hud.skill.bow_charged_projectile_speed" : "Dodaje {boost}% prędkości strzale wystrzelonej przeciągnięciem{SP}",
|
||||
"hud.skill.bow_charged_drain_title" : "Przeciągnięcie - zmęczenie",
|
||||
"hud.skill.bow_charged_drain" : "Zmniejsza zmęczenie Wytrzymałości o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_damage_title" : "Przeciągnięcie - obrażnia",
|
||||
"hud.skill.bow_charged_title" : "Mocny Strzał",
|
||||
"hud.skill.bow_charged" : "Naciągasz łuk mocniej niż zwykle.",
|
||||
"hud.skill.bow_charged_damage_title" : "Mocny Strzał - obrażnia",
|
||||
"hud.skill.bow_charged_damage" : "Zwiększa obrażenia o {boost}%{SP}",
|
||||
"hud.skill.bow_energy_regen_title" : "Regeneracja Wytrzymałości",
|
||||
"hud.skill.bow_energy_regen" : "Zwiększa regenerację wytrzymałości o {boost}%{SP}",
|
||||
"hud.skill.bow_title" : "Strzał",
|
||||
"hud.skill.bow" : "Nieskończony kołczan gratis, trzymać zdala od dzieci",
|
||||
"hud.skill.bow_damage_title" : "Obrażenia",
|
||||
"hud.skill.bow_damage" : "Zwiększa obrażenia o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_energy_regen_title" : "Mocny Strzał - odnawiana energia",
|
||||
"hud.skill.bow_charged_energy_regen" : "Zwiększa odnawianą energię o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_knockback_title" : "Mocny Strzał - odrzut",
|
||||
"hud.skill.bow_charged_knockback" : "Odrzuć przeciwników dalej o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_speed_title" : "Mocny Strzał - szybkość",
|
||||
"hud.skill.bow_charged_speed" : "Zwiększa prędkość ładownia strzału o {boost}%{SP}",
|
||||
"hud.skill.bow_charged_move_title" : "Mocny Strzał - poruszanie",
|
||||
"hud.skill.bow_charged_move" : "Zwiększa jak szybko możesz się poruszać podczas ładowania strzału o {boost}%{SP}",
|
||||
"hud.skill.bow_repeater_title" : "Zwykły Strzał",
|
||||
"hud.skill.bow_repeater" : "Nieskończony kołczan gratis, trzymać zdala od dzieci. Szybkość strzelania zwiększa się z czasem.",
|
||||
"hud.skill.bow_repeater_damage_title" : "Zwykły Strzał - obrażenia",
|
||||
"hud.skill.bow_repeater_damage" : "Zwiększa obrażenia o {boost}%{SP}",
|
||||
"hud.skill.bow_repeater_cost_title" : "Zwykły Strzał - koszt",
|
||||
"hud.skill.bow_repeater_cost" : "Zmniejsza koszt Wytrzymałości wielostrzału o {boost}%{SP}",
|
||||
"hud.skill.bow_repeater_speed_title" : "Zwykły Strzał - szybkość",
|
||||
"hud.skill.bow_repeater_speed" : "Zwiększa szybkość strzelania o {boost}%{SP}",
|
||||
"hud.skill.bow_shotgun_unlock_title" : "Odblokowuje Wielostrzał",
|
||||
"hud.skill.bow_shotgun_unlock" : "Pozwala strzelać kilkoma strzałami na raz.",
|
||||
"hud.skill.bow_shotgun_damage_title" : "Wielostrzał - Obrażenia",
|
||||
"hud.skill.bow_shotgun_damage" : "Zwiększa obrażenia wielostrzału o {boost}%{SP}",
|
||||
"hud.skill.bow_shotgun_cost_title" : "Koszt wielostrzału",
|
||||
"hud.skill.bow_shotgun_cost" : "Zmniejsza koszt wielostrzału o {boost}%{SP}",
|
||||
"hud.skill.bow_shotgun_arrow_count_title" : "Wielostrzał - Ilość Strzał",
|
||||
"hud.skill.bow_shotgun_arrow_count" : "Zwiększa ilość strzał wystrzelonych na raz o {boost}{SP}",
|
||||
"hud.skill.bow_shotgun_spread_title" : "Wielostrzał - Celność",
|
||||
"hud.skill.bow_shotgun_spread" : "Zmniejsza rozrzut strzał o {boost}%{SP}",
|
||||
// Hammer
|
||||
"hud.skill.hmr_leap_radius_title" : "Tąpnięcie - zasięg",
|
||||
"hud.skill.hmr_leap_radius" : "Zwiększa zasięg o {boost} metr{SP}",
|
||||
@ -254,4 +254,4 @@
|
||||
|
||||
vector_map: {
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.social": "Inni gracze",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
"hud.trade.trade_window": "Okno handlu",
|
||||
@ -29,4 +29,4 @@
|
||||
|
||||
vector_map: {
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Lokalizacja na Polskie tłumaczenie
|
||||
/// Localization for Polish
|
||||
(
|
||||
string_map: {
|
||||
/// Start Main screen section
|
||||
@ -10,83 +10,84 @@
|
||||
"main.connecting": "Łączenie",
|
||||
"main.creating_world": "Tworzenie świata",
|
||||
"main.tip": "Porada:",
|
||||
"main.unbound_key_tip": "Rozwiąż",
|
||||
"main.unbound_key_tip": "nieprzypisany",
|
||||
|
||||
// Welcome notice that appears the first time Veloren is started
|
||||
"main.notice": r#"Witaj w alfie Veloren!
|
||||
"main.notice": r#"Witaj w wersji alfa Veloren!
|
||||
|
||||
Zanim zanurzysz się w tym świecie, prosimy pamiętać o kilku rzeczach:
|
||||
|
||||
- Jest to bardzo wczesna alfa. Spodziewaj się błędów, bardzo niedokończonej rozgrywki, niedokończonych mechanik i brakujących funkcjonalności.
|
||||
- Jest to bardzo wczesna alfa. Spodziewaj się błędów, bardzo niedokończonej rozgrywki, niedokończonych mechanik i brakujących funkcji.
|
||||
|
||||
- Jeśli chcesz podzielić się konstruktywną krytyką lub zgłosić błąd/błędy - możesz skontakować się z nami na Reddicie, Gitlabie lub Discordzie.
|
||||
- Jeśli chcesz podzielić się konstruktywną krytyką lub zgłosić błędy, możesz skontakować się z nami na Reddicie, Gitlabie lub Discordzie.
|
||||
|
||||
- Veloren jest objęty licencją 'GPL 3 open-source licence'. Co oznacza, że jest darmowy do grania, modyfikacji i redystrybucji gry jakkolwiek
|
||||
chcesz (ograniczeniem jest by praca pochodna też była na licencji GPL 3).
|
||||
- Veloren jest objęte licencją typu open-source 'GNU GPLv3'.
|
||||
Oznacza to że gra jest darmowa, oraz że możesz ją modyfikować i udostępniać na zasadach określonych w licencji (zmodyfikowane wersje muszą również używać licencji GNU GPLv3).
|
||||
|
||||
- Veloren jest projektem non-profit i każdy wkład jest pracą wolontariuszy.
|
||||
Jeśli podoba Ci się ten projekt - zapraszamy do naszych ekip programistów, artystów i innych drużyn rozwojowych.
|
||||
- Veloren jest projektem non-profit, w całości tworzonym przez wolontariuszy w wolnym czasie.
|
||||
Jeśli polubisz Veloren, zapraszamy cię do dołączenia do naszego zespołu! Nowi programiści, artyści, tłumacze i inni są zawsze mile widziani!
|
||||
|
||||
Dziękujemy za przeczytanie tej notki i życzymy miłej gry!
|
||||
|
||||
~ Ekipa Veloren"#,
|
||||
~ Zespół Twórców Veloren"#,
|
||||
|
||||
// Login process description
|
||||
"main.login_process": r#"Informacje o procesie logowania:
|
||||
|
||||
By grać na serwerach z wymaganą
|
||||
rejestracją musisz stworzyć konto.
|
||||
Aby grać na większości serwerów,
|
||||
musisz stworzyć darmowe konto.
|
||||
|
||||
Konto możesz stworzyć wchodząc na
|
||||
Możesz to zrobić na stronie:
|
||||
|
||||
https://veloren.net/account/."#,
|
||||
"main.login.server_not_found": "Serwer nie został znaleziony",
|
||||
"main.login.authentication_error": "Błąd autoryzacji na serwerze",
|
||||
"main.login.internal_error": "Wewnętrzny błąd klienta (najprawdopodobniej postać gracza została usunięta)",
|
||||
"main.login.failed_auth_server_url_invalid": "Błąd w łączeniu się z serwerem kont",
|
||||
/// "The auth Scheme HTTP is NOT supported. It's insecure! For development purposes, HTTP is allowed for 'localhost' or debug builds",
|
||||
"main.login.insecure_auth_scheme": "Autoryzacja poprzez HTTP nie jest wspierana. HTTP jest dopuszczalne jedynie w kontekście 'localhost' i lokalnych kompilacji do użytku testowego. (The auth Scheme HTTP is NOT supported. It's insecure! For development purposes, HTTP is allowed for 'localhost' or debug builds)",
|
||||
"main.login.server_full": "Serwer jest pełen",
|
||||
"main.login.insecure_auth_scheme": "Schemat autoryzacji HTTP NIE JEST wspierany. Jest niezabezpieczony! W celach programistycznych, jest dozwolony dla adresu 'localhost' oraz wersji deweloperskich.",
|
||||
"main.login.server_full": "Serwer jest pełny",
|
||||
"main.login.untrusted_auth_server": "Serwer autoryzacji nie jest zaufany",
|
||||
"main.login.outdated_client_or_server": "Serwer odrzucił połączenie: prawdopodobnie masz inną wersję gry niż serwer - sprawdź aktualizacje.",
|
||||
"main.login.timeout": "Przekroczenie czasu oczekiwania: serwer nie odpowiedział na czas (przeładowany, bądź problemy z połączeniem, sprawdź swój ping do serwera).",
|
||||
"main.login.outdated_client_or_server": "Serwer odrzucił połączenie: prawdopodobnie masz inną wersję gry niż serwer - spróbuj zaaktualizować grę.",
|
||||
"main.login.timeout": "Przekroczenie czasu oczekiwania: serwer nie odpowiedział na czas (Przeciążenie lub problemy z połączeniem).",
|
||||
"main.login.server_shut_down": "Serwer został wyłączony",
|
||||
"main.login.network_error": "Błąd sieci",
|
||||
"main.login.network_wrong_version": "Serwer jest na innej wersji gry niż Ty, sprawdź czy są aktualizacje.",
|
||||
"main.login.network_wrong_version": "Serwer jest na innej wersji gry niż Ty, sprawdź czy są dostępne aktualizacje.",
|
||||
"main.login.failed_sending_request": "Błąd z wysysłaniem próby logowania",
|
||||
"main.login.invalid_character": "Wybrana postać jest wadliwa",
|
||||
"main.login.invalid_character": "Wybrano nieprawidłową postać",
|
||||
"main.login.client_crashed": "Klient się wysypał",
|
||||
"main.login.not_on_whitelist": "Musisz zapytać o dopisanie na białą listę",
|
||||
"main.login.not_on_whitelist": "Musisz poprosić o dopisanie na listę dozwolonych graczy",
|
||||
"main.login.banned": "Konto zostało zbanowane z powodu:",
|
||||
"main.login.kicked": "Sesja została wyrzucona z powodu:",
|
||||
"main.login.kicked": "Sesja została zamknięta z powodu:",
|
||||
"main.login.select_language": "Wybierz język",
|
||||
"main.login.client_version": "Wersja klienta",
|
||||
"main.login.client_version": "Wersja klienta",
|
||||
"main.login.server_version": "Wersja serwera",
|
||||
"main.login.client_init_failed": "Błąd inicjalizacji klienta: {init_fail_reason}",
|
||||
"main.login.username_bad_characters": "Nazwa posiada niedozwolone znaki! (Tylko znaki alfanumeryczne, '_' i '-' są dozwolone)",
|
||||
"main.login.username_too_long": "Nazwa zbyt długa! Maksymalna długość wynosi: {max_len}",
|
||||
"main.login.username_bad_characters": "Nazwa użytkownika zawiera nieprawidłowe znaki! (Dozwolone są tylko: znaki alfanumeryczne, '_' i '-')",
|
||||
"main.login.username_too_long": "Nazwa użytkownika jest zbyt długa! Maksymalna długość: {max_len}",
|
||||
"main.servers.select_server": "Wybierz serwer",
|
||||
"main.servers.singleplayer_error": "Nie udało się połączyć z serwerem: {sp_error}",
|
||||
"main.servers.network_error": "Błąd gniazda/połączenia z serwerem: {raw_error}",
|
||||
"main.servers.participant_error": "Rozłączono klienta/błąd protokołu: {raw_error}",
|
||||
"main.servers.stream_error": "Błąd (de)serializacji/połączenia z klientem: {raw_error}",
|
||||
"main.servers.singleplayer_error": "Błąd połączenia z serwerem wewnętrznym: {sp_error}",
|
||||
"main.servers.network_error": "Błąd sieci: {raw_error}",
|
||||
"main.servers.participant_error": "Uczestnik rozłączony/błąd protokołu: {raw_error}",
|
||||
"main.servers.stream_error": "Błąd kompresji/połączenia/(de)serializacji klienta: {raw_error}",
|
||||
"main.servers.database_error": "Błąd bazy danych serwera: {raw_error}",
|
||||
"main.servers.persistence_error": "Błąd wytrzymałości serwera (Prawdopodobnie powiązane z zasobami/danymi postaci): {raw_error}",
|
||||
"main.servers.persistence_error": "Błąd systemu przechowywania danych serwera (Prawdopodobnie związany z zasobami lub danymi postaci): {raw_error}",
|
||||
"main.servers.other_error": "Ogólny błąd serwera: {raw_error}",
|
||||
|
||||
// Credits screen
|
||||
"main.credits": "Twórcy",
|
||||
"main.credits.created_by": "stworzone przez",
|
||||
"main.credits": "Podziękowania",
|
||||
"main.credits.created_by": "utworzone przez",
|
||||
"main.credits.music": "Muzyka",
|
||||
"main.credits.fonts": "Czcionki",
|
||||
"main.credits.other_art": "Inne dzieła",
|
||||
"main.credits.other_art": "Inna Sztuka",
|
||||
"main.credits.contributors": "Współtwórcy",
|
||||
|
||||
/// End Main screen section
|
||||
},
|
||||
|
||||
|
||||
// TODO: Check this whole thing
|
||||
vector_map: {
|
||||
/// The keybinding names can be found in voxygen/src/game_input.rs in the GameInput enum
|
||||
// The keybinding names can be found in voxygen/src/game_input.rs in the GameInput enum
|
||||
"loading.tips": [
|
||||
"Naciśnij '{gameinput.togglelantern}' by zapalić latarnię.",
|
||||
"Naciśnij '{gameinput.help}' by zobaczyć podstawową klawiszologię.",
|
||||
|
@ -1,6 +1,7 @@
|
||||
/// Localization for Polish
|
||||
/// WARNING: Localization files shall be saved in UTF-8 format without BOM
|
||||
|
||||
/// Tłumaczenia dla języka polskiego
|
||||
/// Localization for Polish
|
||||
// TODO: Check this whole file
|
||||
(
|
||||
string_map: {
|
||||
},
|
||||
|
@ -59,7 +59,7 @@ O cliente está atualizado?"#,
|
||||
"common.species.human": "Humano",
|
||||
"common.species.dwarf": "Anão",
|
||||
"common.species.elf": "Elfo",
|
||||
"common.species.undead": "Morto-vivo",
|
||||
"common.species.draugr": "Morto-vivo",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Machado",
|
||||
|
@ -41,7 +41,7 @@ O cliente está atualizado?"#,
|
||||
"common.species.human": "Humano",
|
||||
"common.species.dwarf": "Anão",
|
||||
"common.species.elf": "Elfo",
|
||||
"common.species.undead": "Morto-vivo",
|
||||
"common.species.draugr": "Morto-vivo",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Machado",
|
||||
|
@ -59,7 +59,7 @@
|
||||
"common.species.human": "Человек",
|
||||
"common.species.dwarf": "Дворф",
|
||||
"common.species.elf": "Эльф",
|
||||
"common.species.undead": "Нежить",
|
||||
"common.species.draugr": "Нежить",
|
||||
"common.species.danari": "Данари",
|
||||
|
||||
"common.weapons.axe": "Топор",
|
||||
|
@ -57,7 +57,7 @@
|
||||
"common.species.human": "Човек",
|
||||
"common.species.dwarf": "патуљак",
|
||||
"common.species.elf": "Вилењак",
|
||||
"common.species.undead": "Мртвац",
|
||||
"common.species.draugr": "Мртвац",
|
||||
"common.species.danari": "Данари",
|
||||
|
||||
"common.weapons.axe": "Секира",
|
||||
|
@ -59,7 +59,7 @@ Startade servern om?
|
||||
"common.species.human": "Människa",
|
||||
"common.species.dwarf": "Dvärg",
|
||||
"common.species.elf": "Alv",
|
||||
"common.species.undead": "Odöd",
|
||||
"common.species.draugr": "Odöd",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Yxa",
|
||||
|
@ -59,7 +59,7 @@
|
||||
"common.species.human": "มนุษย์",
|
||||
"common.species.dwarf": "คนแคระ",
|
||||
"common.species.elf": "เอลฟ์",
|
||||
"common.species.undead": "ภูตผี",
|
||||
"common.species.draugr": "ภูตผี",
|
||||
"common.species.danari": "ดานาริ",
|
||||
|
||||
"common.weapons.axe": "ขวาน",
|
||||
|
@ -57,7 +57,7 @@ Sunucu yeniden mi başladı?
|
||||
"common.species.human": "İnsan",
|
||||
"common.species.dwarf": "Cüce",
|
||||
"common.species.elf": "Elf",
|
||||
"common.species.undead": "Hortlak",
|
||||
"common.species.draugr": "Hortlak",
|
||||
"common.species.danari": "Danari",
|
||||
|
||||
"common.weapons.axe": "Balta",
|
||||
|
@ -96,7 +96,7 @@
|
||||
"common.species.human": "Людина",
|
||||
"common.species.dwarf": "Дварф",
|
||||
"common.species.elf": "Ельф",
|
||||
"common.species.undead": "Нежить",
|
||||
"common.species.draugr": "Нежить",
|
||||
"common.species.danari": "Данарі",
|
||||
|
||||
// Stats
|
||||
|
@ -57,7 +57,7 @@ Trò chơi có được cập nhật không?"#,
|
||||
"common.species.human": "Loài người",
|
||||
"common.species.dwarf": "Người lùn",
|
||||
"common.species.elf": "Yêu tinh",
|
||||
"common.species.undead": "Xác sống",
|
||||
"common.species.draugr": "Xác sống",
|
||||
"common.species.danari": "Loài Danari",
|
||||
|
||||
"common.weapons.axe": "Rìu",
|
||||
|
@ -55,7 +55,7 @@
|
||||
"common.species.human": "人类",
|
||||
"common.species.dwarf": "矮人",
|
||||
"common.species.elf": "精灵",
|
||||
"common.species.undead": "亡灵",
|
||||
"common.species.draugr": "亡灵",
|
||||
"common.species.danari": "丹那利",
|
||||
|
||||
"common.weapons.axe": "斧",
|
||||
|
@ -41,7 +41,7 @@
|
||||
"common.races.human": "人類",
|
||||
"common.races.dwarf": "矮人",
|
||||
"common.races.elf": "精靈",
|
||||
"common.races.undead": "不死族",
|
||||
"common.races.draugr": "不死族",
|
||||
"common.races.danari": "丹那利",
|
||||
|
||||
"common.weapons.axe": "斧",
|
||||
|
@ -83,73 +83,48 @@ void main() {
|
||||
#if (CLOUD_MODE == CLOUD_MODE_NONE)
|
||||
color.rgb = apply_point_glow(cam_pos.xyz + focus_off.xyz, dir, dist, color.rgb);
|
||||
#else
|
||||
vec3 old_color = color.rgb;
|
||||
if (medium.x == MEDIUM_AIR && rain_density > 0.001) {
|
||||
vec3 cam_wpos = cam_pos.xyz + focus_off.xyz;
|
||||
|
||||
// normalized direction from the camera position to the fragment in world, transformed by the relative rain direction
|
||||
vec3 adjusted_dir = (vec4(dir, 0) * rain_dir_mat).xyz;
|
||||
vec3 adjusted_dir = (vec4(dir, 0) * rain_dir_mat).xyz;
|
||||
|
||||
// stretch z values as they move away from 0
|
||||
float z = (-1 / (abs(adjusted_dir.z) - 1) - 1) * sign(adjusted_dir.z);
|
||||
// normalize xy to get a 2d direction
|
||||
vec2 dir_2d = normalize(adjusted_dir.xy);
|
||||
// sort of map cylinder around the camera to 2d grid
|
||||
vec2 view_pos = vec2(atan2(dir_2d.x, dir_2d.y), z);
|
||||
vec2 dir2d = adjusted_dir.xy;
|
||||
vec3 rorigin = cam_pos.xyz + focus_off.xyz + 0.5;
|
||||
vec3 rpos = vec3(0.0);
|
||||
float t = 0.0;
|
||||
const float PLANCK = 0.01;
|
||||
for (int i = 0; i < 14 /* log2(64) * 2 + 2 */; i ++) {
|
||||
float scale = min(pow(2, ceil(t / 2.0)), 32);
|
||||
vec2 deltas = (step(vec2(0), dir2d) - fract(rpos.xy / scale + 100.0)) / dir2d;
|
||||
float jump = max(min(deltas.x, deltas.y) * scale, PLANCK);
|
||||
t += jump;
|
||||
|
||||
// compute camera position in the world
|
||||
vec3 cam_wpos = cam_pos.xyz + focus_off.xyz;
|
||||
|
||||
// Rain density is now only based on the cameras current position.
|
||||
// This could be affected by a setting where rain_density_at is instead
|
||||
// called each iteration of the loop. With the current implementation
|
||||
// of rain_dir this has issues with being in a place where it doesn't rain
|
||||
// and seeing rain.
|
||||
float rain_density = rain_density * 1.0;
|
||||
if (medium.x == MEDIUM_AIR && rain_density > 0.0) {
|
||||
float rain_dist = 50.0;
|
||||
#if (CLOUD_MODE <= CLOUD_MODE_LOW)
|
||||
const int iterations = 2;
|
||||
#else
|
||||
const int iterations = 4;
|
||||
#endif
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_MEDIUM)
|
||||
if (t >= 64.0) { break; }
|
||||
#else
|
||||
if (t >= 16.0) { break; }
|
||||
#endif
|
||||
|
||||
for (int i = 0; i < iterations; i ++) {
|
||||
float old_rain_dist = rain_dist;
|
||||
rain_dist *= 0.3 / 4.0 * iterations;
|
||||
rpos = rorigin + adjusted_dir * t;
|
||||
|
||||
vec2 drop_density = vec2(30, 1);
|
||||
vec2 diff = abs(round(rpos.xy) - rpos.xy);
|
||||
vec3 wall_pos = vec3((diff.x > diff.y) ? rpos.xy : rpos.yx, rpos.z + integrated_rain_vel);
|
||||
wall_pos.xz *= vec2(4, 0.3);
|
||||
wall_pos.z += hash_two(uvec2(wall_pos.xy + vec2(0, 0.5)));
|
||||
|
||||
vec2 rain_pos = (view_pos * rain_dist);
|
||||
rain_pos.y += integrated_rain_vel;
|
||||
float depth_adjust = fract(hash_two(uvec2(wall_pos.xz) + 500u));
|
||||
float wpos_dist = t - jump * depth_adjust;
|
||||
vec3 wpos = cam_pos.xyz + dir * wpos_dist;
|
||||
|
||||
vec2 cell = floor(rain_pos * drop_density) / drop_density;
|
||||
if (wpos_dist > dist) { break; }
|
||||
if (length((fract(wall_pos.xz) - 0.5)) < 0.1 + pow(max(0.0, wpos_dist - (dist - 0.25)) / 0.25, 4.0) * 0.2) {
|
||||
float density = rain_density * rain_occlusion_at(wpos);
|
||||
if (fract(hash_two(uvec2(wall_pos.xz) + 1000u)) >= density) { continue; }
|
||||
|
||||
float drop_depth = mix(
|
||||
old_rain_dist,
|
||||
rain_dist,
|
||||
fract(hash(fract(vec4(cell, rain_dist, 0) * 0.1)))
|
||||
);
|
||||
|
||||
float dist_to_rain = drop_depth / length(dir.xy);
|
||||
vec3 rpos = dir * dist_to_rain;
|
||||
if (dist < dist_to_rain || cam_wpos.z + rpos.z > CLOUD_AVG_ALT) {
|
||||
continue;
|
||||
float alpha = 0.5 * clamp((wpos_dist - 1.0) * 0.5, 0.0, 1.0);
|
||||
float light = dot(color.rgb, vec3(1)) + 0.05 + (get_sun_brightness() + get_moon_brightness()) * 0.2;
|
||||
color.rgb = mix(color.rgb, vec3(0.3, 0.35, 0.5) * light, alpha);
|
||||
}
|
||||
|
||||
if (dot(rpos * vec3(1, 1, 0.5), rpos) < 1.0) {
|
||||
break;
|
||||
}
|
||||
float rain_density = 10.0 * rain_density * floor(rain_occlusion_at(cam_pos.xyz + rpos.xyz));
|
||||
|
||||
if (rain_density < 0.001 || fract(hash(fract(vec4(cell, rain_dist, 0) * 0.01))) > rain_density) {
|
||||
continue;
|
||||
}
|
||||
vec2 near_drop = cell + (vec2(0.5) + (vec2(hash(vec4(cell, 0, 0)), 0.5) - 0.5) * vec2(2, 0)) / drop_density;
|
||||
|
||||
vec2 drop_size = vec2(0.0008, 0.03);
|
||||
float avg_alpha = (drop_size.x * drop_size.y) * 10 / 1;
|
||||
float alpha = sign(max(1 - length((rain_pos - near_drop) / drop_size * 0.1), 0));
|
||||
float light = sqrt(dot(old_color, vec3(1))) + (get_sun_brightness() + get_moon_brightness()) * 0.01;
|
||||
color.rgb = mix(color.rgb, vec3(0.3, 0.4, 0.5) * light, mix(avg_alpha, alpha, min(1000 / dist_to_rain, 1)) * 0.25);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -92,9 +92,9 @@ void main() {
|
||||
// vec3 f_col = f_col_light.rgb;
|
||||
// float f_ao = f_col_light.a;
|
||||
|
||||
float f_ao, f_glow;
|
||||
float f_ao;
|
||||
uint material = 0xFFu;
|
||||
vec3 f_col = greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_ao, f_glow, material);
|
||||
vec3 f_col = greedy_extract_col_light_figure(t_col_light, s_col_light, f_uv_pos, f_ao, material);
|
||||
|
||||
#ifdef EXPERIMENTAL_BAREMINIMUM
|
||||
tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1);
|
||||
@ -164,6 +164,17 @@ void main() {
|
||||
vec3 surf_color = /*srgb_to_linear*/f_col;
|
||||
float alpha = 1.0;
|
||||
const float n2 = 1.5;
|
||||
|
||||
|
||||
// This is a silly hack. It's not true reflectance (see below for that), but gives the desired
|
||||
// effect without breaking the entire lighting model until we come up with a better way of doing
|
||||
// reflectivity that accounts for physical surroundings like the ground
|
||||
if ((material & (1u << 1u)) > 0u) {
|
||||
vec3 reflect_ray_dir = reflect(cam_to_frag, f_norm);
|
||||
surf_color *= dot(vec3(1.0) - abs(fract(reflect_ray_dir * 1.5) * 2.0 - 1.0) * 0.85, vec3(1));
|
||||
alpha = 0.1;
|
||||
}
|
||||
|
||||
const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2);
|
||||
const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2);
|
||||
const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2);
|
||||
@ -174,14 +185,6 @@ void main() {
|
||||
vec3 k_d = vec3(1.0);
|
||||
vec3 k_s = vec3(R_s);
|
||||
|
||||
// This is a silly hack. It's not true reflectance (see below for that), but gives the desired
|
||||
// effect without breaking the entire lighting model until we come up with a better way of doing
|
||||
// reflectivity that accounts for physical surroundings like the ground
|
||||
if ((material & (1u << 1u)) > 0u) {
|
||||
vec3 reflect_ray_dir = reflect(cam_to_frag, f_norm);
|
||||
surf_color *= dot(vec3(1.0) - abs(fract(reflect_ray_dir * 1.5) * 2.0 - 1.0) * 0.85, vec3(1));
|
||||
}
|
||||
|
||||
vec3 emitted_light, reflected_light;
|
||||
|
||||
// Make voxel shadows block the sun and moon
|
||||
@ -209,10 +212,16 @@ void main() {
|
||||
: compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz);
|
||||
#endif
|
||||
|
||||
// Prevent the sky affecting light when underground
|
||||
float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0);
|
||||
|
||||
max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
|
||||
|
||||
max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
|
||||
|
||||
// TODO: Hack to add a small amount of underground ambient light to the scene
|
||||
reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground);
|
||||
|
||||
float ao = f_ao * sqrt(f_ao);//0.25 + f_ao * 0.75; ///*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15;
|
||||
|
||||
// For now, just make glowing material light be the same colour as the surface
|
||||
|
@ -242,7 +242,7 @@ vec3 get_cloud_color(vec3 surf_color, vec3 dir, vec3 origin, const float time_of
|
||||
int i;
|
||||
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_MEDIUM)
|
||||
#ifdef EXPERIMENTAL_RAINBOWS
|
||||
#ifndef EXPERIMENTAL_NORAINBOWS
|
||||
// TODO: Make it a double rainbow
|
||||
float rainbow_t = (0.7 - dot(sun_dir.xyz, dir)) * 8 / 0.05;
|
||||
int rainbow_c = int(floor(rainbow_t));
|
||||
@ -281,11 +281,13 @@ vec3 get_cloud_color(vec3 surf_color, vec3 dir, vec3 origin, const float time_of
|
||||
sun_color * sun_scatter * get_sun_brightness() * (sun_access * (1.0 - cloud_darken) * cloud_diffuse /*+ sky_color * global_scatter_factor*/) +
|
||||
moon_color * moon_scatter * get_moon_brightness() * (moon_access * (1.0 - cloud_darken) * cloud_diffuse /*+ sky_color * global_scatter_factor*/) +
|
||||
sky_light * (1.0 - global_darken) * not_underground +
|
||||
// A small amount fake ambient light underground
|
||||
(1.0 - not_underground) * vec3(0.2, 0.35, 0.5) * (1.0 - global_darken) +
|
||||
emission * density_integrals.y * step;
|
||||
|
||||
// Rainbow
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_MEDIUM)
|
||||
#ifdef EXPERIMENTAL_RAINBOWS
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_ULTRA)
|
||||
#ifndef EXPERIMENTAL_NORAINBOWS
|
||||
if (rainbow_c >= 0 && rainbow_c < 8) {
|
||||
vec3 colors[9] = {
|
||||
surf_color,
|
||||
@ -300,7 +302,7 @@ vec3 get_cloud_color(vec3 surf_color, vec3 dir, vec3 origin, const float time_of
|
||||
};
|
||||
float h = max(0.0, min(pos.z, 900.0 - pos.z) / 450.0);
|
||||
float rain = rain_density_at(pos.xy) * pow(h, 0.1);
|
||||
|
||||
|
||||
float sun = sun_access * get_sun_brightness();
|
||||
float energy = pow(rain * sun * min(cdist / 500.0, 1.0), 2.0) * 0.4;
|
||||
|
||||
|
@ -19,6 +19,7 @@ layout(std140, set = 0, binding = 0) uniform u_globals {
|
||||
uvec4 medium;
|
||||
ivec4 select_pos;
|
||||
vec4 gamma_exposure;
|
||||
vec4 last_lightning;
|
||||
float ambiance;
|
||||
// 0 - FirstPerson
|
||||
// 1 - ThirdPerson
|
||||
|
@ -153,7 +153,7 @@ float lights_at(vec3 wpos, vec3 wnorm, vec3 /*cam_to_frag*/view_dir, vec3 mu, ve
|
||||
|
||||
// float strength = attenuation_strength(difference);// pow(attenuation_strength(difference), 0.6);
|
||||
// NOTE: This normalizes strength to 0.25 at the center of the point source.
|
||||
float strength = 1.0 / (4 + distance_2);
|
||||
float strength = 3.0 / (5 + distance_2);
|
||||
|
||||
// Multiply the vec3 only once
|
||||
const float PI = 3.1415926535897932384626433832795;
|
||||
|
@ -1,6 +1,50 @@
|
||||
#ifndef POINT_GLOW_GLSL
|
||||
#define POINT_GLOW_GLSL
|
||||
|
||||
#include "sky.glsl"
|
||||
|
||||
void apply_point_glow_light(Light L, vec3 wpos, vec3 dir, float max_dist, inout vec3 color) {
|
||||
vec3 light_pos = L.light_pos.xyz;
|
||||
// Project light_pos to dir line
|
||||
float t = max(dot(light_pos - wpos, dir), 0);
|
||||
vec3 nearest = wpos + dir * min(t, max_dist);
|
||||
|
||||
vec3 difference = light_pos - nearest;
|
||||
float distance_2 = dot(difference, difference);
|
||||
//if (distance_2 > 100000.0) {
|
||||
// return;
|
||||
//}
|
||||
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_HIGH)
|
||||
vec3 _unused;
|
||||
float unused2;
|
||||
float spread = 1.0 / (1.0 + cloud_at(nearest, 0.0, _unused, unused2).z * 0.005);
|
||||
#else
|
||||
const float spread = 1.0;
|
||||
#endif
|
||||
|
||||
float strength = pow(attenuation_strength_real(difference), spread);
|
||||
|
||||
#ifdef EXPERIMENTAL_LOWGLOWNEARCAMERA
|
||||
vec3 cam_wpos = cam_pos.xyz + focus_pos.xyz + focus_off.xyz;
|
||||
vec3 cam_diff = light_pos - cam_wpos;
|
||||
float cam_dist_2 = dot(cam_diff, cam_diff);
|
||||
// 3 meters away glow returns to the maximum strength.
|
||||
strength *= clamp(cam_dist_2 / 9.0, 0.25, 1.0);
|
||||
#endif
|
||||
|
||||
vec3 light_color = srgb_to_linear(L.light_col.rgb) * strength;
|
||||
|
||||
const float LIGHT_AMBIANCE = 0.025;
|
||||
color += light_color
|
||||
* 0.002
|
||||
#ifdef POINT_GLOW_FACTOR
|
||||
// Constant, *should* const fold
|
||||
* POINT_GLOW_FACTOR
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
||||
vec3 apply_point_glow(vec3 wpos, vec3 dir, float max_dist, vec3 color) {
|
||||
#ifndef POINT_GLOW_FACTOR
|
||||
return color;
|
||||
@ -9,44 +53,14 @@ vec3 apply_point_glow(vec3 wpos, vec3 dir, float max_dist, vec3 color) {
|
||||
// Only access the array once
|
||||
Light L = lights[i];
|
||||
|
||||
vec3 light_pos = L.light_pos.xyz;
|
||||
// Project light_pos to dir line
|
||||
float t = max(dot(light_pos - wpos, dir), 0);
|
||||
vec3 nearest = wpos + dir * min(t, max_dist);
|
||||
|
||||
vec3 difference = light_pos - nearest;
|
||||
float distance_2 = dot(difference, difference);
|
||||
if (distance_2 > 100000.0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
#if (CLOUD_MODE >= CLOUD_MODE_HIGH)
|
||||
vec3 _unused;
|
||||
float unused2;
|
||||
float spread = 1.0 / (1.0 + cloud_at(nearest, 0.0, _unused, unused2).z * 0.005);
|
||||
#else
|
||||
const float spread = 1.0;
|
||||
#endif
|
||||
|
||||
float strength = pow(attenuation_strength_real(difference), spread);
|
||||
|
||||
#ifdef EXPERIMENTAL_LOWGLOWNEARCAMERA
|
||||
vec3 cam_wpos = cam_pos.xyz + focus_pos.xyz + focus_off.xyz;
|
||||
vec3 cam_diff = light_pos - cam_wpos;
|
||||
float cam_dist_2 = dot(cam_diff, cam_diff);
|
||||
// 3 meters away glow returns to the maximum strength.
|
||||
strength *= clamp(cam_dist_2 / 9.0, 0.25, 1.0);
|
||||
#endif
|
||||
|
||||
vec3 light_color = srgb_to_linear(L.light_col.rgb) * strength;
|
||||
|
||||
const float LIGHT_AMBIANCE = 0.025;
|
||||
color += light_color
|
||||
* 0.002
|
||||
// Constant, *should* const fold
|
||||
* POINT_GLOW_FACTOR;
|
||||
apply_point_glow_light(L, wpos, dir, max_dist, color);
|
||||
}
|
||||
#endif
|
||||
float time_since_lightning = tick.x - last_lightning.w;
|
||||
if (time_since_lightning < MAX_LIGHTNING_PERIOD) {
|
||||
// Apply lightning
|
||||
apply_point_glow_light(Light(last_lightning.xyzw + vec4(0, 0, LIGHTNING_HEIGHT, 0), vec4(vec3(0.2, 0.4, 1) * lightning_intensity() * 0.003, 1)), wpos, dir, max_dist, color);
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
|
@ -20,9 +20,7 @@ uniform u_rain_occlusion {
|
||||
|
||||
float rain_occlusion_at(in vec3 fragPos)
|
||||
{
|
||||
float bias = -0.2;
|
||||
|
||||
vec4 rain_pos = rain_occlusion_texture_mat * vec4(fragPos, 1.0) - vec4(0, 0, bias, 0);
|
||||
vec4 rain_pos = rain_occlusion_texture_mat * vec4(fragPos, 1.0);
|
||||
|
||||
float visibility = textureProj(sampler2DShadow(t_directed_occlusion_maps, s_directed_occlusion_maps), rain_pos);
|
||||
|
||||
|
@ -232,6 +232,34 @@ DirectionalLight get_moon_info(vec4 _dir, float shade_frac/*, vec4 light_pos[2]*
|
||||
return DirectionalLight(/*dir, */shadow, block/*, get_moon_color(dir), get_moon_brightness(dir)*/);
|
||||
}
|
||||
|
||||
const float LIGHTNING_HEIGHT = 25.0;
|
||||
const float MAX_LIGHTNING_PERIOD = 5.0;
|
||||
|
||||
float lightning_intensity() {
|
||||
float time_since_lightning = tick.x - last_lightning.w;
|
||||
return
|
||||
// Strength
|
||||
1000000
|
||||
// Flash
|
||||
* max(0.0, 1.0 - time_since_lightning * 1.0)
|
||||
// Reverb
|
||||
* max(sin(time_of_day.x * 0.4), 0.0);
|
||||
}
|
||||
|
||||
vec3 lightning_at(vec3 wpos) {
|
||||
float time_since_lightning = tick.x - last_lightning.w;
|
||||
if (time_since_lightning < MAX_LIGHTNING_PERIOD) {
|
||||
vec3 diff = wpos + focus_off.xyz - (last_lightning.xyz + vec3(0, 0, LIGHTNING_HEIGHT));
|
||||
float dist = length(diff);
|
||||
return vec3(0.5, 0.8, 1.0)
|
||||
* lightning_intensity()
|
||||
// Attenuation
|
||||
/ pow(50.0 + dist, 2);
|
||||
} else {
|
||||
return vec3(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
// // Calculates extra emission and reflectance (due to sunlight / moonlight).
|
||||
// //
|
||||
// // reflectence = k_a * i_a + i_a,persistent
|
||||
@ -437,7 +465,7 @@ float get_sun_diffuse2(DirectionalLight sun_info, DirectionalLight moon_info, ve
|
||||
light_reflection_factor(norm, dir, normalize(sun_dir - vec3(0.0, 0.1, 0.0)), k_d, k_s, alpha)*/) +
|
||||
(1.0 - MOON_AMBIANCE) * moon_chroma * moon_shadow * 1.0 * /*4.0 * */light_reflection_factor(norm, dir, moon_dir, k_d, k_s, alpha, voxel_norm, voxel_lighting) +
|
||||
emission
|
||||
);
|
||||
) + lightning_at(wpos);
|
||||
|
||||
/* light = sun_chroma + moon_chroma + PERSISTENT_AMBIANCE;
|
||||
diffuse_light =
|
||||
|
@ -620,35 +620,51 @@ vec3 compute_attenuation_point(vec3 wpos, vec3 ray_dir, vec3 mu, float surface_a
|
||||
//}
|
||||
//#endif
|
||||
|
||||
vec3 greedy_extract_col_light_attr(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out float f_glow, out uint f_attr) {
|
||||
uvec4 f_col_light = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos), 0) * 255);
|
||||
vec3 f_col = vec3(
|
||||
float(((f_col_light.r & 0x7u) << 1u) | (f_col_light.b & 0xF0u)),
|
||||
float(f_col_light.a),
|
||||
float(((f_col_light.g & 0x7u) << 1u) | ((f_col_light.b & 0x0Fu) << 4u))
|
||||
) / 255.0;
|
||||
|
||||
vec3 greedy_extract_col_light_attr(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out float f_glow, out float f_ao, out uint f_attr, out float f_sky_exposure) {
|
||||
// TODO: Figure out how to use `texture` and modulation to avoid needing to do manual filtering
|
||||
vec2 light_00 = vec2(uvec2(f_col_light.rg) >> 3u);
|
||||
vec2 light_10 = vec2(uvec2(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 0), 0).rg * 255.0) >> 3u);
|
||||
vec2 light_01 = vec2(uvec2(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(0, 1), 0).rg * 255.0) >> 3u);
|
||||
vec2 light_11 = vec2(uvec2(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 1), 0).rg * 255.0) >> 3u);
|
||||
vec2 light_0 = mix(light_00, light_01, fract(f_uv_pos.y));
|
||||
vec2 light_1 = mix(light_10, light_11, fract(f_uv_pos.y));
|
||||
vec2 light = mix(light_0, light_1, fract(f_uv_pos.x));
|
||||
// TODO: Use `texture` instead
|
||||
//vec2 light = texture(t_col_light, f_uv_pos).xy / 31;
|
||||
|
||||
uvec4 tex_00 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(0, 0), 0) * 255);
|
||||
uvec4 tex_10 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 0), 0) * 255);
|
||||
uvec4 tex_01 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(0, 1), 0) * 255);
|
||||
uvec4 tex_11 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 1), 0) * 255);
|
||||
vec3 light_00 = vec3(tex_00.rg >> 3u, tex_00.a & 1u);
|
||||
vec3 light_10 = vec3(tex_10.rg >> 3u, tex_10.a & 1u);
|
||||
vec3 light_01 = vec3(tex_01.rg >> 3u, tex_01.a & 1u);
|
||||
vec3 light_11 = vec3(tex_11.rg >> 3u, tex_11.a & 1u);
|
||||
vec3 light_0 = mix(light_00, light_01, fract(f_uv_pos.y));
|
||||
vec3 light_1 = mix(light_10, light_11, fract(f_uv_pos.y));
|
||||
vec3 light = mix(light_0, light_1, fract(f_uv_pos.x));
|
||||
|
||||
vec3 f_col = vec3(
|
||||
float(((tex_00.r & 0x7u) << 1u) | (tex_00.b & 0xF0u)),
|
||||
float(tex_00.a & 0xFE),
|
||||
float(((tex_00.g & 0x7u) << 1u) | ((tex_00.b & 0x0Fu) << 4u))
|
||||
) / 255.0;
|
||||
|
||||
f_ao = light.z;
|
||||
f_light = light.x / 31.0;
|
||||
f_sky_exposure = light.x / 31.0 + (1.0 - f_ao) * 0.5;
|
||||
f_glow = light.y / 31.0;
|
||||
f_attr = f_col_light.g >> 3u;
|
||||
f_attr = tex_00.g >> 3u;
|
||||
return srgb_to_linear(f_col);
|
||||
}
|
||||
|
||||
vec3 greedy_extract_col_light_glow(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out float f_glow) {
|
||||
uint f_attr;
|
||||
return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, f_glow, f_attr);
|
||||
vec3 greedy_extract_col_light_terrain(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out float f_glow, out float f_ao, out float f_sky_exposure) {
|
||||
float _f_attr;
|
||||
return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, f_glow, f_ao, _f_attr, f_sky_exposure);
|
||||
}
|
||||
|
||||
vec3 greedy_extract_col_light_sprite(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light) {
|
||||
float _f_sky_exposure, _f_light, _f_glow, _f_ao;
|
||||
uint _f_attr;
|
||||
return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, _f_glow, _f_ao, _f_attr, _f_sky_exposure);
|
||||
}
|
||||
|
||||
vec3 greedy_extract_col_light_figure(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out uint f_attr) {
|
||||
float _f_sky_exposure, _f_light, _f_glow, _f_ao;
|
||||
return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, _f_glow, _f_ao, f_attr, _f_sky_exposure);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -41,7 +41,6 @@ const int SMOKE = 0;
|
||||
const int FIRE = 1;
|
||||
const int GUN_POWDER_SPARK = 2;
|
||||
const int SHRAPNEL = 3;
|
||||
|
||||
const int FIREWORK_BLUE = 4;
|
||||
const int FIREWORK_GREEN = 5;
|
||||
const int FIREWORK_PURPLE = 6;
|
||||
@ -76,6 +75,7 @@ const int DEATH = 34;
|
||||
const int ENERGY_BUFFING = 35;
|
||||
const int WEB_STRAND = 36;
|
||||
const int BLACK_SMOKE = 37;
|
||||
const int LIGHTNING = 38;
|
||||
|
||||
// meters per second squared (acceleration)
|
||||
const float earth_gravity = 9.807;
|
||||
@ -602,6 +602,18 @@ void main() {
|
||||
spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0)
|
||||
);
|
||||
break;
|
||||
case LIGHTNING:
|
||||
f_reflect = 0.0;
|
||||
perp_axis = normalize(cross(inst_dir, vec3(0.0, 0.0, 1.0)));
|
||||
float z = inst_dir.z * (percent() - 1.0);
|
||||
vec3 start_off = vec3(abs(fract(vec3(vec2(z) * vec2(0.015, 0.01), 0)) - 0.5) * z * 0.4);
|
||||
attr = Attr(
|
||||
inst_dir * percent() + start_off,
|
||||
vec3(max(3.0, 0.05 * length(start_pos + inst_dir * percent()))),
|
||||
vec4(10.0, 20.0, 50.0, 1.0),// * (1.0 - length(inst_dir) * 0.1),
|
||||
identity()//spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0)
|
||||
);
|
||||
break;
|
||||
default:
|
||||
attr = Attr(
|
||||
linear_motion(
|
||||
|
@ -40,8 +40,8 @@ layout(location = 0) out vec4 tgt_color;
|
||||
const float FADE_DIST = 32.0;
|
||||
|
||||
void main() {
|
||||
float f_ao, f_glow;
|
||||
vec3 f_col = greedy_extract_col_light_glow(t_col_light, s_col_light, f_uv_pos, f_ao, f_glow);
|
||||
float f_ao;
|
||||
vec3 f_col = greedy_extract_col_light_sprite(t_col_light, s_col_light, f_uv_pos, f_ao);
|
||||
|
||||
#ifdef EXPERIMENTAL_BAREMINIMUM
|
||||
tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1);
|
||||
@ -100,6 +100,9 @@ void main() {
|
||||
: compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz);
|
||||
#endif
|
||||
|
||||
// Prevent the sky affecting light when underground
|
||||
float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0);
|
||||
|
||||
max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
|
||||
|
||||
emitted_light *= sun_info.block;
|
||||
@ -107,6 +110,9 @@ void main() {
|
||||
|
||||
max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
|
||||
|
||||
// TODO: Hack to add a small amount of underground ambient light to the scene
|
||||
reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground);
|
||||
|
||||
vec3 glow = pow(f_inst_light.y, 3) * 4 * glow_light(f_pos);
|
||||
emitted_light += glow * cam_attenuation;
|
||||
|
||||
|
@ -83,8 +83,10 @@ void main() {
|
||||
f_pos += chunk_offs;
|
||||
|
||||
#ifndef EXPERIMENTAL_BAREMINIMUM
|
||||
// Terrain 'pop-in' effect
|
||||
f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
||||
#ifndef EXPERIMENTAL_NOTERRAINPOP
|
||||
// Terrain 'pop-in' effect
|
||||
f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef EXPERIMENTAL_CURVEDWORLD
|
||||
|
@ -84,8 +84,8 @@ void main() {
|
||||
vec2 f_uv_pos = f_uv_pos + atlas_offs.xy;
|
||||
// vec4 f_col_light = textureProj(t_col_light, vec3(f_uv_pos + 0.5, textureSize(t_col_light, 0)));//(f_uv_pos/* + 0.5*/) / texSize);
|
||||
// float f_light = textureProj(t_col_light, vec3(f_uv_pos + 0.5, textureSize(t_col_light, 0))).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0;
|
||||
float f_light, f_glow;
|
||||
vec3 f_col = greedy_extract_col_light_glow(t_col_light, s_col_light, f_uv_pos, f_light, f_glow);
|
||||
float f_light, f_glow, f_ao, f_sky_exposure;
|
||||
vec3 f_col = greedy_extract_col_light_terrain(t_col_light, s_col_light, f_uv_pos, f_light, f_glow, f_ao, f_sky_exposure);
|
||||
|
||||
#ifdef EXPERIMENTAL_BAREMINIMUM
|
||||
tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_light), 1);
|
||||
@ -244,22 +244,52 @@ void main() {
|
||||
drop_pos.z *= 0.5 + hash_fast(uvec3(cell2d, 0));
|
||||
vec3 cell = vec3(cell2d, floor(drop_pos.z * drop_density.z));
|
||||
|
||||
if (fract(hash(fract(vec4(cell, 0) * 0.01))) < rain_density * rain_occlusion_at(f_pos.xyz) * 50.0) {
|
||||
vec3 off = vec3(hash_fast(uvec3(cell * 13)), hash_fast(uvec3(cell * 5)), 0);
|
||||
vec3 near_cell = (cell + 0.5 + (off - 0.5) * 0.5) / drop_density;
|
||||
#ifdef EXPERIMENTAL_WETNESS
|
||||
float puddle = clamp((noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.03) - 0.5) * 20.0, 0.0, 1.0)
|
||||
* min(rain_density * 10.0, 1.0)
|
||||
* clamp((f_sky_exposure - 0.9) * 50.0, 0.0, 1.0);
|
||||
#else
|
||||
const float puddle = 1.0;
|
||||
#endif
|
||||
|
||||
float dist = length((drop_pos - near_cell) / vec3(1, 1, 2));
|
||||
float drop_rad = 0.1;
|
||||
float distort = max(1.0 - abs(dist - drop_rad) * 100, 0) * 1.5 * max(drop_pos.z - near_cell.z, 0);
|
||||
k_a += distort;
|
||||
k_d += distort;
|
||||
k_s += distort;
|
||||
f_norm.xy += (drop_pos - near_cell).xy
|
||||
* max(1.0 - abs(dist - drop_rad) * 30, 0)
|
||||
* 500.0
|
||||
* max(drop_pos.z - near_cell.z, 0)
|
||||
* sign(dist - drop_rad)
|
||||
* max(drop_pos.z - near_cell.z, 0);
|
||||
#ifdef EXPERIMENTAL_WETNESS
|
||||
if (puddle > 0.0) {
|
||||
float h = (noise_2d((f_pos.xy + focus_off.xy) * 0.3) - 0.5) * sin(tick.x * 8.0 + f_pos.x * 3)
|
||||
+ (noise_2d((f_pos.xy + focus_off.xy) * 0.6) - 0.5) * sin(tick.x * 3.5 - f_pos.y * 6);
|
||||
float hx = (noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.3) - 0.5) * sin(tick.x * 8.0 + f_pos.x * 3)
|
||||
+ (noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.6) - 0.5) * sin(tick.x * 3.5 - f_pos.y * 6);
|
||||
float hy = (noise_2d((f_pos.xy + focus_off.xy + vec2(0, 0.1)) * 0.3) - 0.5) * sin(tick.x * 8.0 + f_pos.x * 3)
|
||||
+ (noise_2d((f_pos.xy + focus_off.xy + vec2(0, 0.1)) * 0.6) - 0.5) * sin(tick.x * 3.5 - f_pos.y * 6);
|
||||
f_norm.xy += mix(vec2(0), vec2(h - hx, h - hy) / 0.1 * 0.03, puddle);
|
||||
alpha = mix(1.0, 0.2, puddle);
|
||||
f_col.rgb *= mix(1.0, 0.7, puddle);
|
||||
k_s = mix(k_s, vec3(0.7, 0.7, 1.0), puddle);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (rain_occlusion_at(f_pos.xyz + vec3(0, 0, 0.25)) > 0.5) {
|
||||
if (fract(hash(fract(vec4(cell, 0) * 0.01))) < rain_density * 2.0 && puddle > 0.3) {
|
||||
vec3 off = vec3(hash_fast(uvec3(cell * 13)), hash_fast(uvec3(cell * 5)), 0);
|
||||
vec3 near_cell = (cell + 0.5 + (off - 0.5) * 0.5) / drop_density;
|
||||
|
||||
float dist = length((drop_pos - near_cell) / vec3(1, 1, 2));
|
||||
float drop_rad = 0.1;
|
||||
float distort = max(1.0 - abs(dist - drop_rad) * 100, 0) * 1.5 * max(drop_pos.z - near_cell.z, 0);
|
||||
k_a += distort;
|
||||
k_d += distort;
|
||||
k_s += distort;
|
||||
|
||||
#ifdef EXPERIMENTAL_WETNESS
|
||||
/* puddle = mix(puddle, 1.0, distort * 10); */
|
||||
#endif
|
||||
|
||||
f_norm.xy += (drop_pos - near_cell).xy
|
||||
* max(1.0 - abs(dist - drop_rad) * 30, 0)
|
||||
* 500.0
|
||||
* max(drop_pos.z - near_cell.z, 0)
|
||||
* sign(dist - drop_rad)
|
||||
* max(drop_pos.z - near_cell.z, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -300,7 +330,7 @@ void main() {
|
||||
vec3 two_down = f_pos - offset_two;
|
||||
|
||||
// Adjust this to change the size of the grid cells relative to the
|
||||
// number of shadow texels
|
||||
// number of shadow texels
|
||||
float grid_cell_to_texel_ratio = 32.0;
|
||||
|
||||
vec2 shadowTexSize = textureSize(sampler2D(t_directed_shadow_maps, s_directed_shadow_maps), 0) / grid_cell_to_texel_ratio;
|
||||
@ -320,7 +350,7 @@ void main() {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
float max_light = 0.0;
|
||||
|
||||
// After shadows are computed, we use a refracted sun and moon direction.
|
||||
@ -354,12 +384,17 @@ void main() {
|
||||
reflected_light *= f_light;
|
||||
max_light *= f_light;
|
||||
|
||||
// TODO: Hack to add a small amount of underground ambient light to the scene
|
||||
reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground);
|
||||
|
||||
// TODO: Apply AO after this
|
||||
vec3 glow = glow_light(f_pos) * (pow(f_glow, 3) * 5 + pow(f_glow, 2.0) * 2) * pow(max(dot(face_norm, f_norm), 0), 2);
|
||||
reflected_light += glow * cam_attenuation;
|
||||
|
||||
max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light);
|
||||
|
||||
reflected_light *= 0.4 + f_ao * 0.6;
|
||||
|
||||
#ifndef EXPERIMENTAL_NOCAUSTICS
|
||||
#if (FLUID_MODE == FLUID_MODE_SHINY)
|
||||
if (faces_fluid) {
|
||||
|
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-0.vox
(Stored with Git LFS)
Normal file → Executable file
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-0.vox
(Stored with Git LFS)
Normal file → Executable file
Binary file not shown.
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-1.vox
(Stored with Git LFS)
Normal file → Executable file
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-1.vox
(Stored with Git LFS)
Normal file → Executable file
Binary file not shown.
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-2.vox
(Stored with Git LFS)
Normal file → Executable file
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-2.vox
(Stored with Git LFS)
Normal file → Executable file
Binary file not shown.
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-3.vox
(Stored with Git LFS)
Normal file → Executable file
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-3.vox
(Stored with Git LFS)
Normal file → Executable file
Binary file not shown.
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-4.vox
(Stored with Git LFS)
Normal file → Executable file
BIN
assets/voxygen/voxel/figure/accessory/danari/horns-4.vox
(Stored with Git LFS)
Normal file → Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user