diff --git a/.cargo/config b/.cargo/config index 3e8860a59c..c694936e59 100644 --- a/.cargo/config +++ b/.cargo/config @@ -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" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 34dfb8de6f..c95d5915d4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/.gitlab/CI/build.gitlab-ci.yml b/.gitlab/CI/build.gitlab-ci.yml index c06ab55101..47803942cb 100644 --- a/.gitlab/CI/build.gitlab-ci.yml +++ b/.gitlab/CI/build.gitlab-ci.yml @@ -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 diff --git a/.gitlab/scripts/env.sh b/.gitlab/scripts/env.sh index fc9c02167b..7241ab322c 100644 --- a/.gitlab/scripts/env.sh +++ b/.gitlab/scripts/env.sh @@ -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/ diff --git a/.gitlab/scripts/windows-x86_64.sh b/.gitlab/scripts/windows-x86_64.sh index 1f3a2d967b..b72594f907 100755 --- a/.gitlab/scripts/windows-x86_64.sh +++ b/.gitlab/scripts/windows-x86_64.sh @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2865d3e5b0..a0d7a52f0b 100644 --- a/CHANGELOG.md +++ b/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 diff --git a/Cargo.lock b/Cargo.lock index 633ee916a8..d74cea91bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index 249e546dd1..5d3394342e 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -311,9 +311,9 @@ keyword: "orc", generic: "Orc" ), - undead: ( - keyword: "undead", - generic: "Undead" + draugr: ( + keyword: "draugr", + generic: "Draugr" ) ) ), diff --git a/assets/common/trading/sellable_materials.ron b/assets/common/trading/sellable_materials.ron index ac778249cd..46b240cc12 100644 --- a/assets/common/trading/sellable_materials.ron +++ b/assets/common/trading/sellable_materials.ron @@ -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")), diff --git a/assets/voxygen/audio/ambience/leaves.ogg b/assets/voxygen/audio/ambience/leaves.ogg index 22276e12f7..c9579003e9 100644 --- a/assets/voxygen/audio/ambience/leaves.ogg +++ b/assets/voxygen/audio/ambience/leaves.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30a6d9bc0e63f7216eaaddef5d9ada465f241b2f1206b522dd388a552dba5708 -size 461250 +oid sha256:7ddab0aace204faf42c8832a7f7819c8f44e89f075673347762460d0d4f0ab1c +size 454229 diff --git a/assets/voxygen/audio/ambient.ron b/assets/voxygen/audio/ambient.ron index a1fb6a9d48..768f2ab049 100644 --- a/assets/voxygen/audio/ambient.ron +++ b/assets/voxygen/audio/ambient.ron @@ -2,7 +2,7 @@ tracks: [ ( path: "voxygen.audio.ambience.wind", - length: 14.203, + length: 14.2, tag: Wind, ), ( diff --git a/assets/voxygen/audio/sfx.ron b/assets/voxygen/audio/sfx.ron index d527537436..68059aaa3f 100644 --- a/assets/voxygen/audio/sfx.ron +++ b/assets/voxygen/audio/sfx.ron @@ -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, + ), } ) diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg new file mode 100644 index 0000000000..3c1c8ab259 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b4856a3cc7cf1dee0e2efd04cc98a2f30d82a722cd41fede53c2fa44455a23 +size 63936 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg new file mode 100644 index 0000000000..96e25a34be --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8be3df66d65c161367c22d07a63c7795facb47e5474d046e2a42ce9793dd394a +size 104973 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg new file mode 100644 index 0000000000..5e3b643ea6 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54083f061589226e1aae7d2f6fe4515cce102893a15f338dbc4bb1f45f59e1f6 +size 26172 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg new file mode 100644 index 0000000000..06a98277d1 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffce718d263762fd1a33ee407de799ba246793ca5cd8be055b3eae0abfb6f277 +size 17170 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg new file mode 100644 index 0000000000..ec41b05da3 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f60a420e14ba78d95e38270ebd421f59b908fc165d9a0d0454d7d6c687435b +size 22820 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg new file mode 100644 index 0000000000..d1861e72d1 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:520808442ca79ac7d55be28eb9c5403f97aae42fdd9c05f942d0eeb5f46bb62a +size 8793 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg new file mode 100644 index 0000000000..39e8f56f6f --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05cc7ea5bf1f876148c89490b0eac874ea300e2439926dc1cf0b44fb718c66ed +size 12691 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg new file mode 100644 index 0000000000..e24e16cf8a --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ae70d45083db4496467c91d632b17e3c7858d44411812d0fed9eeef7ddf0c7 +size 22828 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg new file mode 100644 index 0000000000..17e82677c3 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98a02c4aaad8f649f529200f9ca5e1ddec19ec42ba2e0eac9d5279c4524acfca +size 22051 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg deleted file mode 100644 index 06ceea2840..0000000000 --- a/assets/voxygen/audio/sfx/ambient/birdcall_1.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8e7061dca633f53c30cc91d18b266d46c53504926ad3168ace1c673de444cef -size 66488 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg new file mode 100644 index 0000000000..a4c7790c54 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff4ed33c111b2acd3d9a976aa2a1911921fbe3c440bbf6446fa52a0289eefae +size 19832 diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg deleted file mode 100644 index e1e6cbfb50..0000000000 --- a/assets/voxygen/audio/sfx/ambient/birdcall_2.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a305641f3eaa45b8fadd4160e6a677bfd9bf0a5950c79e62bbc0d4bb72b4fa6 -size 107298 diff --git a/assets/voxygen/audio/sfx/ambient/lightning_1.ogg b/assets/voxygen/audio/sfx/ambient/lightning_1.ogg new file mode 100644 index 0000000000..2222431396 --- /dev/null +++ b/assets/voxygen/audio/sfx/ambient/lightning_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a49864f72934aeaf1afb8c53ed60112a20520941de76b9c858c869cfcf23df51 +size 56352 diff --git a/assets/voxygen/audio/soundtrack.ron b/assets/voxygen/audio/soundtrack.ron index 6a0958c4af..15b32fea8e 100644 --- a/assets/voxygen/audio/soundtrack.ron +++ b/assets/voxygen/audio/soundtrack.ron @@ -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), ], ), diff --git a/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg index 2a39fd5cbb..b628caf9ba 100644 --- a/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg +++ b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:286db0b9c41193289e1695f3a88fc4eafa242ece90eee31abcf75fae428dd19f +oid sha256:a18c1aa05ece035f8e6b56c0cf66c10f33e5fbdad4eb00b5104ee9dd98b88ad4 size 4539199 diff --git a/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg new file mode 100644 index 0000000000..71c7defbbc --- /dev/null +++ b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9bdc608b7e87614b41091af7ff436d43976f3b50aa5477e6f442adf49232f39 +size 1476614 diff --git a/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg index cdee59f84b..39d894fc36 100644 --- a/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg +++ b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ce1161a48c816af1aa26fa0a8093b49f7388a96744d0f59bd9c8e9c54e1be24 -size 2788159 +oid sha256:8ece29a9b8311843db94497117638b29670be69ed9c87a73c59311fd5407013a +size 2752509 diff --git a/assets/voxygen/background/bg_4.jpg b/assets/voxygen/background/bg_4.jpg index 551e958598..d916f378d9 100644 --- a/assets/voxygen/background/bg_4.jpg +++ b/assets/voxygen/background/bg_4.jpg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8df2e3ecd8843fb47da6479cd9c7fbb564ad06a906a16bd04be46c894b087ac0 -size 574151 +oid sha256:5f945d99f3d4f4b4285c17952412c875e596c9d2481921c2d384829fe522f3e9 +size 1594767 diff --git a/assets/voxygen/background/bg_main.jpg b/assets/voxygen/background/bg_main.jpg index d916f378d9..6c382beb33 100644 --- a/assets/voxygen/background/bg_main.jpg +++ b/assets/voxygen/background/bg_main.jpg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f945d99f3d4f4b4285c17952412c875e596c9d2481921c2d384829fe522f3e9 -size 1594767 +oid sha256:e6e1994598f4924d57de68daaf0a47a819eff64b019b81a517bfe5e6e73ce118 +size 438566 diff --git a/assets/voxygen/element/animation/loaders/boat1.png b/assets/voxygen/element/animation/loaders/boat1.png new file mode 100644 index 0000000000..198239c85d --- /dev/null +++ b/assets/voxygen/element/animation/loaders/boat1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93b93b7ad55d2797cf2514fe77ba64e0273d602d6c45ea5d212b9768da9d2aaf +size 475 diff --git a/assets/voxygen/element/animation/loaders/boat2.png b/assets/voxygen/element/animation/loaders/boat2.png new file mode 100644 index 0000000000..218f39b9eb --- /dev/null +++ b/assets/voxygen/element/animation/loaders/boat2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:697d2428a243e82e554f9626e41d0029b675f1c27e011619ab376e78fc01020f +size 478 diff --git a/assets/voxygen/element/animation/loaders/boat3.png b/assets/voxygen/element/animation/loaders/boat3.png new file mode 100644 index 0000000000..3bdd21049e --- /dev/null +++ b/assets/voxygen/element/animation/loaders/boat3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cad2e9e2f4ba34299e6953c7a4a17470d14d5efae3065749c7503dc0fb635125 +size 481 diff --git a/assets/voxygen/element/animation/loaders/boat4.png b/assets/voxygen/element/animation/loaders/boat4.png new file mode 100644 index 0000000000..945b8968f7 --- /dev/null +++ b/assets/voxygen/element/animation/loaders/boat4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02119b1327cb627f5e3f51f1f212b920e4e16731ca1889cf3f145f194e723c01 +size 483 diff --git a/assets/voxygen/element/animation/loaders/manifest.ron b/assets/voxygen/element/animation/loaders/manifest.ron index 70e944e43a..1843b40afb 100644 --- a/assets/voxygen/element/animation/loaders/manifest.ron +++ b/assets/voxygen/element/animation/loaders/manifest.ron @@ -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", + ]), ]) \ No newline at end of file diff --git a/assets/voxygen/i18n/be_BY/common.ron b/assets/voxygen/i18n/be_BY/common.ron index 9ea77cbf3b..c0f4a6846b 100644 --- a/assets/voxygen/i18n/be_BY/common.ron +++ b/assets/voxygen/i18n/be_BY/common.ron @@ -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": "Сякера", diff --git a/assets/voxygen/i18n/ca_CA/common.ron b/assets/voxygen/i18n/ca_CA/common.ron index 58ea624ebc..4dfae867b1 100644 --- a/assets/voxygen/i18n/ca_CA/common.ron +++ b/assets/voxygen/i18n/ca_CA/common.ron @@ -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", diff --git a/assets/voxygen/i18n/cz_CZ/common.ron b/assets/voxygen/i18n/cz_CZ/common.ron index 2eb4999760..b0b61f4b86 100644 --- a/assets/voxygen/i18n/cz_CZ/common.ron +++ b/assets/voxygen/i18n/cz_CZ/common.ron @@ -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", diff --git a/assets/voxygen/i18n/de_DE/common.ron b/assets/voxygen/i18n/de_DE/common.ron index c5ba3b1472..ad0c579d1a 100644 --- a/assets/voxygen/i18n/de_DE/common.ron +++ b/assets/voxygen/i18n/de_DE/common.ron @@ -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", diff --git a/assets/voxygen/i18n/en/common.ron b/assets/voxygen/i18n/en/common.ron index 7ebd14770e..5736ac36bf 100644 --- a/assets/voxygen/i18n/en/common.ron +++ b/assets/voxygen/i18n/en/common.ron @@ -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", diff --git a/assets/voxygen/i18n/es_ES/common.ron b/assets/voxygen/i18n/es_ES/common.ron index 43ad02a658..ce0b9276d7 100644 --- a/assets/voxygen/i18n/es_ES/common.ron +++ b/assets/voxygen/i18n/es_ES/common.ron @@ -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", diff --git a/assets/voxygen/i18n/es_LA/common.ron b/assets/voxygen/i18n/es_LA/common.ron index c85ec804cd..7592fcb392 100644 --- a/assets/voxygen/i18n/es_LA/common.ron +++ b/assets/voxygen/i18n/es_LA/common.ron @@ -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", diff --git a/assets/voxygen/i18n/eu/common.ron b/assets/voxygen/i18n/eu/common.ron index 1fecf84cd0..51a0c2dd4f 100644 --- a/assets/voxygen/i18n/eu/common.ron +++ b/assets/voxygen/i18n/eu/common.ron @@ -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", diff --git a/assets/voxygen/i18n/fr_FR/common.ron b/assets/voxygen/i18n/fr_FR/common.ron index 2e09380387..d659bd3c1f 100644 --- a/assets/voxygen/i18n/fr_FR/common.ron +++ b/assets/voxygen/i18n/fr_FR/common.ron @@ -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", diff --git a/assets/voxygen/i18n/hu_HU/common.ron b/assets/voxygen/i18n/hu_HU/common.ron index e42f35733d..37572fb98e 100644 --- a/assets/voxygen/i18n/hu_HU/common.ron +++ b/assets/voxygen/i18n/hu_HU/common.ron @@ -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", diff --git a/assets/voxygen/i18n/it_IT/common.ron b/assets/voxygen/i18n/it_IT/common.ron index 385bb35b3f..b2e7f64ede 100644 --- a/assets/voxygen/i18n/it_IT/common.ron +++ b/assets/voxygen/i18n/it_IT/common.ron @@ -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", diff --git a/assets/voxygen/i18n/ja_JP/common.ron b/assets/voxygen/i18n/ja_JP/common.ron index 81cff85b44..42c6c4925a 100644 --- a/assets/voxygen/i18n/ja_JP/common.ron +++ b/assets/voxygen/i18n/ja_JP/common.ron @@ -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": "斧", diff --git a/assets/voxygen/i18n/nl_NL/common.ron b/assets/voxygen/i18n/nl_NL/common.ron index 26433554a5..cbbe894bf4 100644 --- a/assets/voxygen/i18n/nl_NL/common.ron +++ b/assets/voxygen/i18n/nl_NL/common.ron @@ -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", diff --git a/assets/voxygen/i18n/no_NB/common.ron b/assets/voxygen/i18n/no_NB/common.ron index aec357f32a..c8bfeffe64 100644 --- a/assets/voxygen/i18n/no_NB/common.ron +++ b/assets/voxygen/i18n/no_NB/common.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/_manifest.ron b/assets/voxygen/i18n/pl_PL/_manifest.ron index c45b621503..a39cfcc95a 100644 --- a/assets/voxygen/i18n/pl_PL/_manifest.ron +++ b/assets/voxygen/i18n/pl_PL/_manifest.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/buff.ron b/assets/voxygen/i18n/pl_PL/buff.ron index 7aa52b2bf2..1a28d6167e 100644 --- a/assets/voxygen/i18n/pl_PL/buff.ron +++ b/assets/voxygen/i18n/pl_PL/buff.ron @@ -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}", diff --git a/assets/voxygen/i18n/pl_PL/char_selection.ron b/assets/voxygen/i18n/pl_PL/char_selection.ron index 4b7b51c6bf..086c8903e4 100644 --- a/assets/voxygen/i18n/pl_PL/char_selection.ron +++ b/assets/voxygen/i18n/pl_PL/char_selection.ron @@ -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: { diff --git a/assets/voxygen/i18n/pl_PL/common.ron b/assets/voxygen/i18n/pl_PL/common.ron index d5a10d4c41..b611574466 100644 --- a/assets/voxygen/i18n/pl_PL/common.ron +++ b/assets/voxygen/i18n/pl_PL/common.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/esc_menu.ron b/assets/voxygen/i18n/pl_PL/esc_menu.ron index ce8ee707e0..277c8f2672 100644 --- a/assets/voxygen/i18n/pl_PL/esc_menu.ron +++ b/assets/voxygen/i18n/pl_PL/esc_menu.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/gameinput.ron b/assets/voxygen/i18n/pl_PL/gameinput.ron index 7f2ad228f5..85f7b46835 100644 --- a/assets/voxygen/i18n/pl_PL/gameinput.ron +++ b/assets/voxygen/i18n/pl_PL/gameinput.ron @@ -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" }, diff --git a/assets/voxygen/i18n/pl_PL/hud/ability.ron b/assets/voxygen/i18n/pl_PL/hud/ability.ron new file mode 100644 index 0000000000..856c6a9392 --- /dev/null +++ b/assets/voxygen/i18n/pl_PL/hud/ability.ron @@ -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: { + } +) diff --git a/assets/voxygen/i18n/pl_PL/hud/bag.ron b/assets/voxygen/i18n/pl_PL/hud/bag.ron index f822cdeaac..32794c1c19 100644 --- a/assets/voxygen/i18n/pl_PL/hud/bag.ron +++ b/assets/voxygen/i18n/pl_PL/hud/bag.ron @@ -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.", diff --git a/assets/voxygen/i18n/pl_PL/hud/char_window.ron b/assets/voxygen/i18n/pl_PL/hud/char_window.ron index 068e74811b..02a1f1b63d 100644 --- a/assets/voxygen/i18n/pl_PL/hud/char_window.ron +++ b/assets/voxygen/i18n/pl_PL/hud/char_window.ron @@ -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 "#, }, diff --git a/assets/voxygen/i18n/pl_PL/hud/chat.ron b/assets/voxygen/i18n/pl_PL/hud/chat.ron index 228a61359a..2a308c47a4 100644 --- a/assets/voxygen/i18n/pl_PL/hud/chat.ron +++ b/assets/voxygen/i18n/pl_PL/hud/chat.ron @@ -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!", diff --git a/assets/voxygen/i18n/pl_PL/hud/crafting.ron b/assets/voxygen/i18n/pl_PL/hud/crafting.ron index 2aa350d614..78d64172f7 100644 --- a/assets/voxygen/i18n/pl_PL/hud/crafting.ron +++ b/assets/voxygen/i18n/pl_PL/hud/crafting.ron @@ -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.", }, diff --git a/assets/voxygen/i18n/pl_PL/hud/group.ron b/assets/voxygen/i18n/pl_PL/hud/group.ron index 2899db7050..724048b176 100644 --- a/assets/voxygen/i18n/pl_PL/hud/group.ron +++ b/assets/voxygen/i18n/pl_PL/hud/group.ron @@ -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", }, diff --git a/assets/voxygen/i18n/pl_PL/hud/map.ron b/assets/voxygen/i18n/pl_PL/hud/map.ron index 644264a0e6..e52d381959 100644 --- a/assets/voxygen/i18n/pl_PL/hud/map.ron +++ b/assets/voxygen/i18n/pl_PL/hud/map.ron @@ -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: { } -) \ No newline at end of file +) diff --git a/assets/voxygen/i18n/pl_PL/hud/misc.ron b/assets/voxygen/i18n/pl_PL/hud/misc.ron index 5b7523a012..7dda45f6c4 100644 --- a/assets/voxygen/i18n/pl_PL/hud/misc.ron +++ b/assets/voxygen/i18n/pl_PL/hud/misc.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/hud/sct.ron b/assets/voxygen/i18n/pl_PL/hud/sct.ron index 8837fc2069..d24e3c3203 100644 --- a/assets/voxygen/i18n/pl_PL/hud/sct.ron +++ b/assets/voxygen/i18n/pl_PL/hud/sct.ron @@ -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 diff --git a/assets/voxygen/i18n/pl_PL/hud/settings.ron b/assets/voxygen/i18n/pl_PL/hud/settings.ron index 41f219b3e5..e47591d402 100644 --- a/assets/voxygen/i18n/pl_PL/hud/settings.ron +++ b/assets/voxygen/i18n/pl_PL/hud/settings.ron @@ -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", }, diff --git a/assets/voxygen/i18n/pl_PL/hud/skills.ron b/assets/voxygen/i18n/pl_PL/hud/skills.ron index dd60b65cf8..59ac5dad13 100644 --- a/assets/voxygen/i18n/pl_PL/hud/skills.ron +++ b/assets/voxygen/i18n/pl_PL/hud/skills.ron @@ -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: { } -) \ No newline at end of file +) diff --git a/assets/voxygen/i18n/pl_PL/hud/social.ron b/assets/voxygen/i18n/pl_PL/hud/social.ron index cc3f362c0b..dc7fd626eb 100644 --- a/assets/voxygen/i18n/pl_PL/hud/social.ron +++ b/assets/voxygen/i18n/pl_PL/hud/social.ron @@ -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", diff --git a/assets/voxygen/i18n/pl_PL/hud/trade.ron b/assets/voxygen/i18n/pl_PL/hud/trade.ron index 97beddb038..42f515fb80 100644 --- a/assets/voxygen/i18n/pl_PL/hud/trade.ron +++ b/assets/voxygen/i18n/pl_PL/hud/trade.ron @@ -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: { } -) \ No newline at end of file +) diff --git a/assets/voxygen/i18n/pl_PL/main.ron b/assets/voxygen/i18n/pl_PL/main.ron index 5623438ed5..ce59f4e2ef 100644 --- a/assets/voxygen/i18n/pl_PL/main.ron +++ b/assets/voxygen/i18n/pl_PL/main.ron @@ -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ę.", diff --git a/assets/voxygen/i18n/pl_PL/npc.ron b/assets/voxygen/i18n/pl_PL/npc.ron index c19ed6ed04..564da936c5 100644 --- a/assets/voxygen/i18n/pl_PL/npc.ron +++ b/assets/voxygen/i18n/pl_PL/npc.ron @@ -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: { }, diff --git a/assets/voxygen/i18n/pt_BR/common.ron b/assets/voxygen/i18n/pt_BR/common.ron index 2c3ae76ce4..24f153f9e3 100644 --- a/assets/voxygen/i18n/pt_BR/common.ron +++ b/assets/voxygen/i18n/pt_BR/common.ron @@ -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", diff --git a/assets/voxygen/i18n/pt_PT/common.ron b/assets/voxygen/i18n/pt_PT/common.ron index e9848f546a..e20033a113 100644 --- a/assets/voxygen/i18n/pt_PT/common.ron +++ b/assets/voxygen/i18n/pt_PT/common.ron @@ -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", diff --git a/assets/voxygen/i18n/ru_RU/common.ron b/assets/voxygen/i18n/ru_RU/common.ron index ad308f0957..501cb5c674 100644 --- a/assets/voxygen/i18n/ru_RU/common.ron +++ b/assets/voxygen/i18n/ru_RU/common.ron @@ -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": "Топор", diff --git a/assets/voxygen/i18n/sr_SR/common.ron b/assets/voxygen/i18n/sr_SR/common.ron index 544d10ea43..9ad9ce5bed 100644 --- a/assets/voxygen/i18n/sr_SR/common.ron +++ b/assets/voxygen/i18n/sr_SR/common.ron @@ -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": "Секира", diff --git a/assets/voxygen/i18n/sv_SE/common.ron b/assets/voxygen/i18n/sv_SE/common.ron index c3d5c05ca8..44520bcefc 100644 --- a/assets/voxygen/i18n/sv_SE/common.ron +++ b/assets/voxygen/i18n/sv_SE/common.ron @@ -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", diff --git a/assets/voxygen/i18n/th_TH/common.ron b/assets/voxygen/i18n/th_TH/common.ron index 913fb126e4..cbcf706f22 100644 --- a/assets/voxygen/i18n/th_TH/common.ron +++ b/assets/voxygen/i18n/th_TH/common.ron @@ -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": "ขวาน", diff --git a/assets/voxygen/i18n/tr_TR/common.ron b/assets/voxygen/i18n/tr_TR/common.ron index c30b4e22b0..7e61bfb44d 100644 --- a/assets/voxygen/i18n/tr_TR/common.ron +++ b/assets/voxygen/i18n/tr_TR/common.ron @@ -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", diff --git a/assets/voxygen/i18n/uk_UA/common.ron b/assets/voxygen/i18n/uk_UA/common.ron index 2ddc16c2dd..291db2ecb5 100644 --- a/assets/voxygen/i18n/uk_UA/common.ron +++ b/assets/voxygen/i18n/uk_UA/common.ron @@ -96,7 +96,7 @@ "common.species.human": "Людина", "common.species.dwarf": "Дварф", "common.species.elf": "Ельф", - "common.species.undead": "Нежить", + "common.species.draugr": "Нежить", "common.species.danari": "Данарі", // Stats diff --git a/assets/voxygen/i18n/vi_VI/common.ron b/assets/voxygen/i18n/vi_VI/common.ron index fa0ef9c8cd..28997dd7ef 100644 --- a/assets/voxygen/i18n/vi_VI/common.ron +++ b/assets/voxygen/i18n/vi_VI/common.ron @@ -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", diff --git a/assets/voxygen/i18n/zh_CN/common.ron b/assets/voxygen/i18n/zh_CN/common.ron index f84afd5f59..d4af06041c 100644 --- a/assets/voxygen/i18n/zh_CN/common.ron +++ b/assets/voxygen/i18n/zh_CN/common.ron @@ -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": "斧", diff --git a/assets/voxygen/i18n/zh_TW/common.ron b/assets/voxygen/i18n/zh_TW/common.ron index f1c412f57d..935c2e67f5 100644 --- a/assets/voxygen/i18n/zh_TW/common.ron +++ b/assets/voxygen/i18n/zh_TW/common.ron @@ -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": "斧", diff --git a/assets/voxygen/shaders/clouds-frag.glsl b/assets/voxygen/shaders/clouds-frag.glsl index 01faedb424..273bf4f4db 100644 --- a/assets/voxygen/shaders/clouds-frag.glsl +++ b/assets/voxygen/shaders/clouds-frag.glsl @@ -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 diff --git a/assets/voxygen/shaders/figure-frag.glsl b/assets/voxygen/shaders/figure-frag.glsl index 140fdee912..1dbd776170 100644 --- a/assets/voxygen/shaders/figure-frag.glsl +++ b/assets/voxygen/shaders/figure-frag.glsl @@ -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 diff --git a/assets/voxygen/shaders/include/cloud/regular.glsl b/assets/voxygen/shaders/include/cloud/regular.glsl index ddb4a2f552..a6905984df 100644 --- a/assets/voxygen/shaders/include/cloud/regular.glsl +++ b/assets/voxygen/shaders/include/cloud/regular.glsl @@ -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; diff --git a/assets/voxygen/shaders/include/globals.glsl b/assets/voxygen/shaders/include/globals.glsl index cc75645b39..445f44d8f9 100644 --- a/assets/voxygen/shaders/include/globals.glsl +++ b/assets/voxygen/shaders/include/globals.glsl @@ -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 diff --git a/assets/voxygen/shaders/include/light.glsl b/assets/voxygen/shaders/include/light.glsl index c790e6f254..213ad56551 100644 --- a/assets/voxygen/shaders/include/light.glsl +++ b/assets/voxygen/shaders/include/light.glsl @@ -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; diff --git a/assets/voxygen/shaders/include/point_glow.glsl b/assets/voxygen/shaders/include/point_glow.glsl index 11b08e302d..3ffcdce4ec 100644 --- a/assets/voxygen/shaders/include/point_glow.glsl +++ b/assets/voxygen/shaders/include/point_glow.glsl @@ -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; } diff --git a/assets/voxygen/shaders/include/rain_occlusion.glsl b/assets/voxygen/shaders/include/rain_occlusion.glsl index 5f525c282f..95cc07c33a 100644 --- a/assets/voxygen/shaders/include/rain_occlusion.glsl +++ b/assets/voxygen/shaders/include/rain_occlusion.glsl @@ -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); diff --git a/assets/voxygen/shaders/include/sky.glsl b/assets/voxygen/shaders/include/sky.glsl index 167ae6b407..c41cbb417b 100644 --- a/assets/voxygen/shaders/include/sky.glsl +++ b/assets/voxygen/shaders/include/sky.glsl @@ -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 = diff --git a/assets/voxygen/shaders/include/srgb.glsl b/assets/voxygen/shaders/include/srgb.glsl index d816a7f528..adc3fc8149 100644 --- a/assets/voxygen/shaders/include/srgb.glsl +++ b/assets/voxygen/shaders/include/srgb.glsl @@ -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 diff --git a/assets/voxygen/shaders/particle-vert.glsl b/assets/voxygen/shaders/particle-vert.glsl index b230abb7d7..8359e87409 100644 --- a/assets/voxygen/shaders/particle-vert.glsl +++ b/assets/voxygen/shaders/particle-vert.glsl @@ -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( diff --git a/assets/voxygen/shaders/sprite-frag.glsl b/assets/voxygen/shaders/sprite-frag.glsl index 5d4b7463d6..fd3ebdd503 100644 --- a/assets/voxygen/shaders/sprite-frag.glsl +++ b/assets/voxygen/shaders/sprite-frag.glsl @@ -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; diff --git a/assets/voxygen/shaders/sprite-vert.glsl b/assets/voxygen/shaders/sprite-vert.glsl index f5d25606f2..fc1977482b 100644 --- a/assets/voxygen/shaders/sprite-vert.glsl +++ b/assets/voxygen/shaders/sprite-vert.glsl @@ -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 diff --git a/assets/voxygen/shaders/terrain-frag.glsl b/assets/voxygen/shaders/terrain-frag.glsl index 2c821f9cf4..fb2dafb7fa 100644 --- a/assets/voxygen/shaders/terrain-frag.glsl +++ b/assets/voxygen/shaders/terrain-frag.glsl @@ -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) { diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox old mode 100644 new mode 100755 index 8b74f40935..7cc9f2aa1c --- a/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e27bd3211ad3c0fca466a16297e37cd35b7118f8da2299e4b01ac36a5ad5f888 +oid sha256:d05e74f45fda88dbc33a763816a84725fa68903c0bd56c2cd48a712c7da1f805 size 1136 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox old mode 100644 new mode 100755 index a6163f3f26..06893d41d4 --- a/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:470bf81884e9fd52cd9c03596aeedcccc40865e068d3d88a5f2dba8e6c29af45 -size 1144 +oid sha256:2625fedbc3f4b7a37a417f0bb328784858d311c490839975718bb75542fc2af2 +size 1184 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox old mode 100644 new mode 100755 index ca5b2f4027..8ae8de37b9 --- a/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6587e8c401fc4c24eef6a887e88a63a47f73b88d1165bdbab22fc9b26d4d6f41 -size 1248 +oid sha256:8f79472525f4bfd67e195428cdd33bc796452d42686dfaeb853f4638438f53df +size 1280 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox old mode 100644 new mode 100755 index dee31bb785..2cab7b242a --- a/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3e40e28fc82e16a88063336263b97e63d8b8c1209236253c6c025ed47a00577 +oid sha256:d8a67251a68d6df92e7014f83b9522afc4dac489b200cbcb908e5637dc3384fc size 1104 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox old mode 100644 new mode 100755 index 9c040cf8fb..0e363ff89e --- a/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c7d185488018d870907d28fd9875e71dcdef84860c51e1d0776a09773dbdca5 -size 1136 +oid sha256:2c484f7087af31f35fe5d1b7bfc6f184282ef9749baa08c07e57a37a66de4486 +size 1208 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox old mode 100644 new mode 100755 index 1d8abafc6b..f9f04a5c90 --- a/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:24aef6d558e7715b495fb682a2fa477bc13fb1182c1751677afd4fc2c726676c -size 1224 +oid sha256:d47abd943566e1bad883d5116baac92be332dbbcf016a822526015586addeb35 +size 1248 diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox old mode 100644 new mode 100755 index 0c40d35715..7d7562ac5e --- a/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox +++ b/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ee0a26c27208bac2df6e0f56897683ac448e13c78f00594eab9ff1391505c73 -size 1152 +oid sha256:2d0cfb3503ee7529acad066e3b6520709a14a56388cb41c013e427ab3c23bdfb +size 1176 diff --git a/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox new file mode 100755 index 0000000000..e35e8e95f6 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:959a4f73e090b907f8f5e57fe4b94f12ec60d56f0a3dfbdc9bea16eb641ba6c7 +size 1216 diff --git a/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox new file mode 100755 index 0000000000..f4bb642ef8 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65fd8bac869ec2937b287674c3e820272c5062397797a141275862e198fb0882 +size 1216 diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox new file mode 100755 index 0000000000..77324b38a4 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cb40b772249e685d7823379daeabab2b21e424de89f05ff1e8d3ff480879b9b +size 1112 diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox new file mode 100755 index 0000000000..5b1001f234 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fe7dfbacf79827dd346003de23e8f81d61998101f05db8c0f1c58c3ab7bc6be +size 1112 diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox new file mode 100755 index 0000000000..404c161385 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2e7aadeca3e64b54bbcd15f5be38d72f027f0a927d550be4aa643575e32a578 +size 1112 diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox new file mode 100755 index 0000000000..40b1bf814a --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ceabf5a49b19ad79243bdf2e15914da76e207b427ab636cbe5a381e9a4b4af0 +size 1120 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox old mode 100644 new mode 100755 index 23615fc3f8..b183565e94 --- a/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6355cd59e15dab5e9f634faa080562cdd7397239f04c2a9b575bd6b856843ac8 +oid sha256:3ed6752009f9cfe437189218b3ab56a87ea2e3e33f2fb9843a3dcf75cf06e8ce size 1100 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox new file mode 100755 index 0000000000..cf79f16999 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc47fe1db0870af73c2d2137fe6ba5deb699d1c4945ab835295767434c075fa6 +size 1104 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox new file mode 100755 index 0000000000..fdc9750930 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d385045a6e5e375cdc71cf3c38fee94701b8ec1dc74e1c3af078a89f556fc5b +size 1120 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox new file mode 100755 index 0000000000..87ed4057a9 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d147c960a8e12af0546cab3948babe46e5b2088ceb00eb4d2a9e58e464c9f6b1 +size 1128 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox new file mode 100755 index 0000000000..b91a6f3dbe --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9a3236a0b78282da6c86ae561deeecd9bf0ab1bcb2704dae747e9b4d58febd7 +size 1112 diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox new file mode 100755 index 0000000000..b8278d46e5 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7009804e24cbb180981ff78bc4b6e1bfb157a84d7eda6dbaf45a6b0e64f6a516 +size 1128 diff --git a/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox b/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox new file mode 100755 index 0000000000..eba84170ff --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8837bb17c49dfd2899a977d563b4bfc2f2c53ae0ad0c445553497f265df7b2f +size 1120 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox old mode 100644 new mode 100755 index 5199d3841b..14d1b230a8 --- a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:635b1dfa3868c780910d235aa467ce821a78fd0c04e116089cd33ba86ad80e65 +oid sha256:edee573319fea1f591d5df34596e7db4c1526b7f46c1a8a0929c9e92f824749d size 1164 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox old mode 100644 new mode 100755 index 2cfe197670..22d033231e --- a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eed5f71dde24d04a5584c3d8103515a897c2bbf6fdfcfd00646d99337a2524f2 +oid sha256:65ce3058ce41586448afe35362a83939693128e2fa00ae9f9271e21a2d837957 size 1120 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox new file mode 100644 index 0000000000..a44cda50e8 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea95f5e06a3bf3302b79d3963f96b348649777b6b71ffd0fe91b462dde9b2fcd +size 1208 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox new file mode 100755 index 0000000000..cc51039df7 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89972b0ac9091e8d47cc6697fa757c6460206a206009c399f9caca35a10664ef +size 1192 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox old mode 100644 new mode 100755 index e21855128a..ce1da6c969 --- a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aaac3c35679745cb25a918857779379df8d800041f2803f72fbef08b65a584b5 -size 1264 +oid sha256:8eb200c4ffcdb5ef06be271109af61a9b8b61479a1fc16631d9a1191b26637b4 +size 1244 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox new file mode 100755 index 0000000000..d7114645a4 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e284f902c0cf12c3ec238280d0a18042a43e445a3e1be64314f822ef413b52e +size 1296 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox new file mode 100755 index 0000000000..6f5ba45c79 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fca14bd51b11fd04dd3681c48134c171e3a5889145588382008889b23e9df853 +size 1260 diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox new file mode 100755 index 0000000000..122c017bc6 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa2f0d12cfa90549e7e465aaa3e489757f64b843171d4c225ac86b8b60afbf08 +size 1272 diff --git a/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox deleted file mode 100644 index ea5af4024e..0000000000 --- a/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7729c594f1f83fa8952827dfea766a6052ef191ee1c36fb30a01b1375ebab540 -size 1224 diff --git a/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox deleted file mode 100644 index 5ed9d52354..0000000000 --- a/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:922d12840831ac4976e5c1fd6445f67625a39cdf9320961935c3d83dcb94afa1 -size 1192 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-0.vox b/assets/voxygen/voxel/figure/beard/danari/danari-0.vox old mode 100644 new mode 100755 index 349356722f..7ed225ea65 --- a/assets/voxygen/voxel/figure/beard/danari/danari-0.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:89121d3f2158974a75bc8f8264272bfa7756f7f0b1cc3805cd62c349a4a0110f -size 1304 +oid sha256:82a2ed00c3874cdfa14e26e70d1df9a007bd53d533b16d9fe1c03a24df167bf3 +size 1312 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-1.vox b/assets/voxygen/voxel/figure/beard/danari/danari-1.vox old mode 100644 new mode 100755 index b94aa29f2a..73d34d15d7 --- a/assets/voxygen/voxel/figure/beard/danari/danari-1.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b005ed22896af3c07b323253ad3944fd925f19f019119f287f15944dcfe8331 -size 1376 +oid sha256:f1055380ee8cb55cbb4807039f92f7a12ef19d30a24ac7a67a6681c1f845cc83 +size 1304 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-10.vox b/assets/voxygen/voxel/figure/beard/danari/danari-10.vox old mode 100644 new mode 100755 index 5a774ab499..e4b1251869 --- a/assets/voxygen/voxel/figure/beard/danari/danari-10.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-10.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:90b2c6b1c92691454f9fb491255f600a4e740872b110207b687a6f628c15f745 -size 1504 +oid sha256:58f67ecf1e69d17b4b5df64248f6219b801f23ebea4108e759b90915e8c21b71 +size 1528 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-11.vox b/assets/voxygen/voxel/figure/beard/danari/danari-11.vox old mode 100644 new mode 100755 index f51fa6ee5b..2a2682508f --- a/assets/voxygen/voxel/figure/beard/danari/danari-11.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-11.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab857cffd5f157ca5e443af2877c2fabd3ee2f95b1df870f061a8e788bb04ee9 -size 1640 +oid sha256:fa93a9f73b17edfc88f5eab203be40fd0c60a5b85a0c82c6f4c65c197f5be625 +size 1464 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-12.vox b/assets/voxygen/voxel/figure/beard/danari/danari-12.vox old mode 100644 new mode 100755 index 31db774e58..67c747546c --- a/assets/voxygen/voxel/figure/beard/danari/danari-12.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-12.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e0a3b287e0248ac91080ebf5de54918571c8cfb1b81fc9db2bd861c15c10e8d +oid sha256:108df7563dea85bdfcfe03ee81a20b711017655ebe2bade259757ebe9ae98345 size 1240 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-13.vox b/assets/voxygen/voxel/figure/beard/danari/danari-13.vox old mode 100644 new mode 100755 index 53e8761f90..7ec208fb22 --- a/assets/voxygen/voxel/figure/beard/danari/danari-13.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-13.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0068f185e10373f7ea1d5a859c225f76df6b0286d2b26227f030004f6838818 -size 1136 +oid sha256:61391162bdcf3e4a70e945868b85a863937f73f632d47215d3ec076076a3e2cd +size 1160 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-14.vox b/assets/voxygen/voxel/figure/beard/danari/danari-14.vox old mode 100644 new mode 100755 index 4340553061..dee944ea7c --- a/assets/voxygen/voxel/figure/beard/danari/danari-14.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-14.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:447634647c2a3df55b91a052d5a6f1ebc733dcbf974ae4400774c0be5acac2ed -size 1280 +oid sha256:b4e225834e3a47355707923190a6da81c10387200f56e94d86801036c642d289 +size 1128 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-2.vox b/assets/voxygen/voxel/figure/beard/danari/danari-2.vox old mode 100644 new mode 100755 index 8fdfd5a782..33e07df624 --- a/assets/voxygen/voxel/figure/beard/danari/danari-2.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d16cf4dfc97b7e3443cc04782aa0e2289955c5e8775b8a2c86ec024bea0103f4 -size 1156 +oid sha256:573cb3acc85bf9cf1085065ee4d8be52cdb660d4a581e49ab909a53247151c34 +size 1176 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-3.vox b/assets/voxygen/voxel/figure/beard/danari/danari-3.vox old mode 100644 new mode 100755 index ead51c9c56..a6be8f011b --- a/assets/voxygen/voxel/figure/beard/danari/danari-3.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:524901dd96aefaecbc687273407d4cd3fc26a9be5de41eb326071793aa56e193 -size 1592 +oid sha256:3c2c4ca0776ab17a8bbfd4ed62911b7c101fef5884d4ace0c62dc7171d477be3 +size 1456 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-4.vox b/assets/voxygen/voxel/figure/beard/danari/danari-4.vox old mode 100644 new mode 100755 index 38e960015c..29f0839fc0 --- a/assets/voxygen/voxel/figure/beard/danari/danari-4.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2e96b0c543ca3c14c0511073b3ce384bd8ceb41557a44fc2c960b1b1b6f9ed0 -size 1680 +oid sha256:c3b42277dae024874d0f1164902b3a63e22fa80103ef918d02117fd980737311 +size 1424 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-5.vox b/assets/voxygen/voxel/figure/beard/danari/danari-5.vox old mode 100644 new mode 100755 index 37e30b75a6..5a8f1316e9 --- a/assets/voxygen/voxel/figure/beard/danari/danari-5.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1224a5567a1350e8f9c7320e7d6764ce6e7a895dc3cb1b2364c85e66e6d035ec -size 1160 +oid sha256:a94b15b8f84dace60140bfeb22371fc675707fd8721895aebcfda216da648c3b +size 1248 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-6.vox b/assets/voxygen/voxel/figure/beard/danari/danari-6.vox old mode 100644 new mode 100755 index 82408242a1..fd18df54ad --- a/assets/voxygen/voxel/figure/beard/danari/danari-6.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d702178d25d04a4c2610eabf74c5e242578ae15b403539df0740c39ec01b798b -size 1232 +oid sha256:ff11d3e5bae0640d45131ef18b1c4501a387b1462479b9cf5b473f1ccb2850bb +size 1216 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-7.vox b/assets/voxygen/voxel/figure/beard/danari/danari-7.vox old mode 100644 new mode 100755 index 0b69eb7f13..1eb63dc902 --- a/assets/voxygen/voxel/figure/beard/danari/danari-7.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97b5dfd7d3ec6b4d59ee475d3144d5bf4d69c5fefcf1c6051abcdfae739df512 -size 1512 +oid sha256:1f5bf4ead86eeb24b8e7e39bcb2af1cb0ce227b7d6cb1177bfbce3612972c636 +size 1472 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-8.vox b/assets/voxygen/voxel/figure/beard/danari/danari-8.vox old mode 100644 new mode 100755 index 9a4455a927..4c123bd8db --- a/assets/voxygen/voxel/figure/beard/danari/danari-8.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-8.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2e909af2704b63f26d88849307ce3f0ee4ba8bf74304169296ff1653c2ae7ac -size 1744 +oid sha256:e66299c8f0b3bd19eb94e937dbfc6fecb37c08cf50318a621391bcfb12e69d3c +size 1536 diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-9.vox b/assets/voxygen/voxel/figure/beard/danari/danari-9.vox old mode 100644 new mode 100755 index a9bd87f839..9e93b94b75 --- a/assets/voxygen/voxel/figure/beard/danari/danari-9.vox +++ b/assets/voxygen/voxel/figure/beard/danari/danari-9.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31da18b778397f4cd0d978588c9ccceebf5e194205235ebbd83d9f741662cacd -size 1808 +oid sha256:bc1c0302d1fb4a73b64f629d9070f891e7b9564b994903d7a082e27dc80bfc73 +size 1584 diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-0.vox b/assets/voxygen/voxel/figure/beard/draugr/male-0.vox new file mode 100755 index 0000000000..3d393abefa --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/draugr/male-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d2a6ed93c348ccdd2ece9a88d0f7af3e4baf4af93694ec8f91f2e226b11aa7c +size 1196 diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-1.vox b/assets/voxygen/voxel/figure/beard/draugr/male-1.vox new file mode 100755 index 0000000000..8430773cf6 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/draugr/male-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f50a816fa2be74a6f53e354c2ec642b552ded469b0db17c42238e4867a81205 +size 1276 diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-2.vox b/assets/voxygen/voxel/figure/beard/draugr/male-2.vox new file mode 100755 index 0000000000..496eb62913 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/draugr/male-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9864e415ca9eba26e5c9b76bceceb78f93498fca7612606acb879347f003fb0b +size 1116 diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-3.vox b/assets/voxygen/voxel/figure/beard/draugr/male-3.vox new file mode 100755 index 0000000000..5c04fce51a --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/draugr/male-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d6b759bea8768d3dcfc75d5854d76d873cef2c67d4fd1378caa001d3769e339 +size 1360 diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-4.vox b/assets/voxygen/voxel/figure/beard/draugr/male-4.vox new file mode 100755 index 0000000000..4b511c4795 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/draugr/male-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e48cee32db9c611db77c030a3cd1109e751ed615ed900f97a65130afa79cb58f +size 1176 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox old mode 100644 new mode 100755 index 06e48e1dd7..726b1917ae --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a78f9c73a5de56e1eab202b448737cd9ac1b6450a23285d83b59d0065395340 -size 1152 +oid sha256:069cc92294c4b4d0e3e9fa0541dbc6a7b7db1f9b6b854912419f07e53dd2af1e +size 1168 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox old mode 100644 new mode 100755 index 1077c4311f..594aaa1d65 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b9f2e9facd32e4270d604b6fbd060dde7f94c53ef481a28a6817400d1888fc4 -size 1384 +oid sha256:bc13561cfa6b10fa25269b9058cccde9f1fed321dd4c5214b42bd5ed2069e569 +size 1400 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox old mode 100644 new mode 100755 index fee7e6aeb7..15a892b338 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58e8369fcf98d22b1008eaf53ca9151041bfbd5d1a9ed9782cb3db769d1464cd -size 1216 +oid sha256:08c5b0e1c9a40a0b5f24a3eedf4f4bd9494dfe8904b23a58d4108117a46d8eff +size 1352 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox old mode 100644 new mode 100755 index d7e7cba495..cffb8322f9 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9e5060691cd8aa7cf6fcb7f15ea4e349eb63b9f2c8969ecf3a1e84fc1988e8b -size 1112 +oid sha256:389e0508882603b5efd80acdccd8e5e92b49f515e17ad48071d2387e052167ca +size 1416 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox old mode 100644 new mode 100755 index b1acab0aae..686f5f80b8 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea2e1e778a36f554b8cad25919baaee70685641079b479b28fe122dd86419f7e -size 1248 +oid sha256:c70e93b729b76fa582a0c3d1c2e520be1a14167acadb43326878e5656b1569a7 +size 1280 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox old mode 100644 new mode 100755 index 81974f0b84..b2cfa3f4c3 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ed9973b3f2d2b7e659aaa49d474df061571a5f7986c83de0a671d8946ba0c95 -size 1272 +oid sha256:7f511ac3beea586e2593c1d5bfd17bc5576fd4317cc22d36ddd5c551ce3cc10a +size 1392 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox old mode 100644 new mode 100755 index 5658855d85..17d5f354a2 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6bb5ced957dd009b77338c6c9a377c54e74bc80829f987778ea358d1ad298148 -size 1536 +oid sha256:fd26322b09fb6b6cad4b5b02ce84dd713014e594e1a6dd7bfb8d50f8bd6da637 +size 1572 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox old mode 100644 new mode 100755 index f0e147b81b..86feadb57c --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7c213d67cd905119d6a24d58be1f629ddd5a784a7bd741c5de9b5c01bdd26e2 -size 1760 +oid sha256:7a8488a8dfadec56c0e313eac3291db514c6ac56fbaa7d314453718ccc6c40bf +size 1776 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox old mode 100644 new mode 100755 index 88a55ebdd2..d58aa3a971 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9094a2b9035efa5b8253f64df9b30b79cb1a485bfc247dc9119915750d488c8e -size 1824 +oid sha256:5f05e49fbbce8b5c0c2a54fb74116d3f9edf2bb4ba53448efb688756242512ec +size 1940 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox old mode 100644 new mode 100755 index 4d35630ce4..7cb99573d2 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2d41a2736dda2f7fbcfc11ff2937b8f908bb6e33b45d18a8360f47296386684 -size 1520 +oid sha256:a4f76711545bbf40508e83343151d2e03eea0d40c921949ed6e91e52b5a341aa +size 1592 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox old mode 100644 new mode 100755 index 5ece4b7bdb..191ac96472 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fae60c3dbcda4404ef89e6fbc09e12c80c85c968ccba1f29e91f14cf4e0665e6 -size 1288 +oid sha256:5b8ba886b4d7240fcce558ca2589f78b842f7c8389ebdc74f50d040fded20a4a +size 1464 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox old mode 100644 new mode 100755 index f51fa6ee5b..dcf45910bf --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab857cffd5f157ca5e443af2877c2fabd3ee2f95b1df870f061a8e788bb04ee9 -size 1640 +oid sha256:00ccd6f98f7e79c17cae64e7841191ad298cba3f6219b394accaf9d0116eb831 +size 1672 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox old mode 100644 new mode 100755 index d2c6af0edc..e224658329 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f03e0d1762b49e99d350c25420822b5c5916888bc3d0783e7f38b610002acbd4 -size 1108 +oid sha256:79969e03b37a6489ac3ec5e49f225f3387a2a8cc1d97a71e03ca5830a6894d25 +size 1608 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox old mode 100644 new mode 100755 index 6ab4ce661f..3df0f3a4eb --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef7b0909e5d665b64d2e8ee28c10b93ad8a0e3bb066df5a1772bfc5dd9919336 -size 1328 +oid sha256:f1a33eed7b95f45b47898c8823fd8b634b77445d2832ae63a906c641f57c16d5 +size 1752 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox old mode 100644 new mode 100755 index a764717075..feb2f122e7 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:033c11472aa720a441b245b191ac07143d4c99162d19e24018cb63b2187e8a33 -size 1416 +oid sha256:5cadaa48b1b8fe86a19eb0d93c2e402d5ddb406899b489196dd1d84db797de4f +size 1392 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox old mode 100644 new mode 100755 index 439eee57fd..88b693ca22 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9d8750c52704a078f7557a5b6948d83a4d3810a596533d06f628482f1dbac1a -size 1640 +oid sha256:b43906690cfbacc752e769d03603ae971ee9beae879b65e36e7e49ac81851a0f +size 1576 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox old mode 100644 new mode 100755 index dbc5f5d671..ab69ca88fc --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a31013e7a8f584cfff875e730a66d525e81b777ef0a1d32e8e1d461b8913d785 -size 1248 +oid sha256:cea0bbae30ca31017c83650434efdd83a80903b2856962f6aeb3f16e60abb945 +size 1312 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox old mode 100644 new mode 100755 index 3d6f017615..3467afee5b --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a997e3ce8d0e4f0b98ad12c036fcc8af05a362aef46e618bf6fd5942b406b86 -size 1164 +oid sha256:3393fd4e6d71b2a951fc800bb2e98db9eb4463aec0bdbf9b46d8b90759841cc8 +size 1180 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox old mode 100644 new mode 100755 index 05532071cb..0c2d2a1b43 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79fe47c2e1a0827d3fa5ee43c2f20f56d483d2440a350ff6bac397953af54b95 -size 1608 +oid sha256:fe133802b0e106945e0fd260066a9e704a59161c65b25873456c8ddd708d6d0a +size 1656 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox old mode 100644 new mode 100755 index d63c068df7..645e1840b3 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de5c2b852f9310f62f94aafab0bfd711e129352ae5c9617ed3cb539dcc453c6e -size 1688 +oid sha256:ae293af97ec217ff6863e6bbd08dfffb3350bced80f591f92fa3f1140515a039 +size 1752 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox old mode 100644 new mode 100755 index d925d23530..ffcea28c66 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b97cb3ddb387ee38614b1b42c90b7dca0c0c36bd4351bc39fa7907abf915578 -size 1152 +oid sha256:6c845dd35ecc2a88a3379119d45bf74055325f596fb16f1b58f309480c04d234 +size 1256 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox old mode 100644 new mode 100755 index d419959b79..5be7bfe64b --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:28b6ebde1c0dabe2d40ee75b5fb9d5a601331efbfa135dd3f33d139cdb8b522c -size 1172 +oid sha256:07fd6e8945a5b8ea0b60addd422be7b4054cadc15c0fbc6e29249b2ccdc91603 +size 1532 diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox old mode 100644 new mode 100755 index 37e30b75a6..090c2aa8e5 --- a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox +++ b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1224a5567a1350e8f9c7320e7d6764ce6e7a895dc3cb1b2364c85e66e6d035ec -size 1160 +oid sha256:77d467ad9c7f57147f8bc72d123fc1e8aec840266a4acd0f1ec08c33ff347345 +size 1320 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-0.vox b/assets/voxygen/voxel/figure/beard/elf/elf-0.vox new file mode 100755 index 0000000000..1da0935c98 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f66acb9c778ff789cae309584a85d5dc028cfd6f734220641f234d92616f9bb6 +size 1112 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-1.vox b/assets/voxygen/voxel/figure/beard/elf/elf-1.vox new file mode 100755 index 0000000000..8f6fb7effd --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c819cc6fa67e374cb8809197c6af3719cb7b0c03d4fd917e233c4dd07ca371f7 +size 1136 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-2.vox b/assets/voxygen/voxel/figure/beard/elf/elf-2.vox new file mode 100755 index 0000000000..d89f003b1b --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:337e9e10ce828c9beca97b0316f6e19d0c8aac447603d2e2cf7e4621ccfd83b8 +size 1132 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-3.vox b/assets/voxygen/voxel/figure/beard/elf/elf-3.vox new file mode 100755 index 0000000000..2412f4e564 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab1f4a7dcce35b9c108b26c76876c1136ef2eb8cf5ca32b5e9dbef97e7aa8a1 +size 1116 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-4.vox b/assets/voxygen/voxel/figure/beard/elf/elf-4.vox new file mode 100755 index 0000000000..ca78d7bf91 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:161a9528b410c90245a91555cb4c551940c322e02d8c0e65843e7cac583d20f4 +size 1260 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-5.vox b/assets/voxygen/voxel/figure/beard/elf/elf-5.vox new file mode 100755 index 0000000000..e2a57a2da5 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38efc5d21215dfe05c845353f6db0c0988311881b6994a1623643ba7b491b2b6 +size 1280 diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-6.vox b/assets/voxygen/voxel/figure/beard/elf/elf-6.vox new file mode 100755 index 0000000000..8808ef77d4 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/elf/elf-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14a6658834c37962dde5e863490885ee68aecbe552cf098120bcae7fcfc394c7 +size 1172 diff --git a/assets/voxygen/voxel/figure/beard/human/human-0.vox b/assets/voxygen/voxel/figure/beard/human/human-0.vox old mode 100644 new mode 100755 index 31db774e58..5b579d0607 --- a/assets/voxygen/voxel/figure/beard/human/human-0.vox +++ b/assets/voxygen/voxel/figure/beard/human/human-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e0a3b287e0248ac91080ebf5de54918571c8cfb1b81fc9db2bd861c15c10e8d +oid sha256:5316a5ffeeaff91438da4992319afa9e6e4c1984096e5bcc12f4979c97d93e61 size 1240 diff --git a/assets/voxygen/voxel/figure/beard/human/human-1.vox b/assets/voxygen/voxel/figure/beard/human/human-1.vox old mode 100644 new mode 100755 index 53e8761f90..6f97d0ab1c --- a/assets/voxygen/voxel/figure/beard/human/human-1.vox +++ b/assets/voxygen/voxel/figure/beard/human/human-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0068f185e10373f7ea1d5a859c225f76df6b0286d2b26227f030004f6838818 +oid sha256:14a5a8991bf54b784d2c838e44e24d0182c4bb25d8177cdc32044d03af0caf8b size 1136 diff --git a/assets/voxygen/voxel/figure/beard/human/human-2.vox b/assets/voxygen/voxel/figure/beard/human/human-2.vox old mode 100644 new mode 100755 index 5ece4b7bdb..ffc40404cb --- a/assets/voxygen/voxel/figure/beard/human/human-2.vox +++ b/assets/voxygen/voxel/figure/beard/human/human-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fae60c3dbcda4404ef89e6fbc09e12c80c85c968ccba1f29e91f14cf4e0665e6 +oid sha256:0ed4c5a06d0509080c1fff4cee367d165d4406d34e3397844e07122260cbf252 size 1288 diff --git a/assets/voxygen/voxel/figure/beard/human/human-3.vox b/assets/voxygen/voxel/figure/beard/human/human-3.vox new file mode 100644 index 0000000000..2265aca353 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71d734ea5763d3cf82bce3ba89f878ad393b3ac491df566f0424605011e83bd3 +size 1320 diff --git a/assets/voxygen/voxel/figure/beard/human/human-4.vox b/assets/voxygen/voxel/figure/beard/human/human-4.vox new file mode 100755 index 0000000000..290e40ed07 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5e8da9634a5d6e0e760748e1934bce227fdb31ba6c6d0dacba34c1b07eac5db +size 1136 diff --git a/assets/voxygen/voxel/figure/beard/human/human-5.vox b/assets/voxygen/voxel/figure/beard/human/human-5.vox new file mode 100644 index 0000000000..62683bb3c8 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bef394e06c99e6b889f9399edfa935f004dd0095e2bf232b06a7f38da015b8b +size 1320 diff --git a/assets/voxygen/voxel/figure/beard/human/human-6.vox b/assets/voxygen/voxel/figure/beard/human/human-6.vox new file mode 100755 index 0000000000..a95cc80ab4 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f62dc0d47e7f4d7ab595983bdcbf6a53ff8da8ea1e2150fe2cc6c5c8f2c70518 +size 1136 diff --git a/assets/voxygen/voxel/figure/beard/human/human-7.vox b/assets/voxygen/voxel/figure/beard/human/human-7.vox new file mode 100644 index 0000000000..535648697d --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c7505ccdf47ab4e448e39737898ecf6ca7cc89518ba8c2ee818726a26f36f89 +size 1240 diff --git a/assets/voxygen/voxel/figure/beard/human/human-8.vox b/assets/voxygen/voxel/figure/beard/human/human-8.vox new file mode 100755 index 0000000000..49658d489a --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/human/human-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cce89926b52eda2f44a5ecd401ba07320327c02f7946af11090f29ae198024e +size 1144 diff --git a/assets/voxygen/voxel/figure/beard/orc/1.vox b/assets/voxygen/voxel/figure/beard/orc/1.vox deleted file mode 100644 index 2f8e9b3303..0000000000 --- a/assets/voxygen/voxel/figure/beard/orc/1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:78d06c8b04feefdb1c179c30c42118972cbf1dfaae4d14f2d329ac9f67bd1ae9 -size 1104 diff --git a/assets/voxygen/voxel/figure/beard/orc/2.vox b/assets/voxygen/voxel/figure/beard/orc/2.vox deleted file mode 100644 index 522f6333c8..0000000000 --- a/assets/voxygen/voxel/figure/beard/orc/2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:180950b3bba713f3c43a8b038e8904feff4f3eb1c16f6f3a651329eccc53d5e7 -size 23014 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-0.vox b/assets/voxygen/voxel/figure/beard/orc/orc-0.vox new file mode 100755 index 0000000000..12c7ec99be --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c9b26a926d6a76d43c27f2f5a8c8fb56766a1476462b5b980c1a9038be2aedb +size 1104 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-1.vox b/assets/voxygen/voxel/figure/beard/orc/orc-1.vox new file mode 100644 index 0000000000..2fa5a03377 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9a94f3dd692b35fb55b7db875a2dc1bca0e55bf18a9cdf05f0af832c21855fc +size 1484 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-2.vox b/assets/voxygen/voxel/figure/beard/orc/orc-2.vox new file mode 100755 index 0000000000..1988f5dbb8 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5889d8e6aeabb8025b09a1f56f6c8c475247fff3f71a511fae12851c62e78469 +size 1120 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-3.vox b/assets/voxygen/voxel/figure/beard/orc/orc-3.vox new file mode 100644 index 0000000000..6d54aabcc3 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77a5e636a1071a47191be29009004879d563bdd73db6f3a1b53eb0663b1283a3 +size 1224 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-4.vox b/assets/voxygen/voxel/figure/beard/orc/orc-4.vox new file mode 100755 index 0000000000..0e247a4bbe --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b066f27f20740053c546328d54bbc17c485c6c779886e62caf1ed08510fafd67 +size 1296 diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-5.vox b/assets/voxygen/voxel/figure/beard/orc/orc-5.vox new file mode 100755 index 0000000000..e8bc1a9a54 --- /dev/null +++ b/assets/voxygen/voxel/figure/beard/orc/orc-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93da691019a2d82e97021f1027bdeaf9044b29df9fbd3976d6cc061a0dae1d35 +size 1256 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox new file mode 100644 index 0000000000..ce23f43b37 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14c22c2ed6c2da26ed692942d8fc9a108394d07a5377f84c1d2611367e2713c4 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox new file mode 100644 index 0000000000..a697bbb83f --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:376c4ff502674a7ad94a2f9e20cd31499673f23c3cde5fac66fc8b00f143162d +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox new file mode 100644 index 0000000000..c5fbec35cd --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb96e2ddccb8219dbdf98e15f5f06777faafed09c8b57e44f1a71b5b9a7193c7 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox new file mode 100755 index 0000000000..3946324311 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d8caf6a67706bad96153a183e0151ba5cbf9e81e63ff18d4cfe08ca071466df +size 1120 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox new file mode 100755 index 0000000000..26544e0224 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d280bb3bdaf79bad2b5ac70627acf1af5721c81a8def9dd179730a346e48e7f8 +size 1120 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox new file mode 100755 index 0000000000..b8aa86c4a9 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:178b77782c083b969fb5689e23a8c2636af1c0cb3f9833322646595752beb934 +size 1120 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox new file mode 100755 index 0000000000..1915c240b6 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6da497ab4740641ad6d53e6fafe8019170c791f8c004a17f66ba7cab0e2960e +size 1120 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox new file mode 100755 index 0000000000..a606845525 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9551ddd38d919b4a7d51f30ee246c06720e5cd367027bb64c9668589fdc6a98 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox new file mode 100755 index 0000000000..b0b26d1e22 --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3855deaa600d16ccc25a5809568c66165165e6e87209dfe1b466bd941331a097 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox new file mode 100755 index 0000000000..5746b29c4d --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e10f57c03627bb27db7bc969c53c3312b122c713894ff69e0210d39bc99be08 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox new file mode 100755 index 0000000000..caebd88acf --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d73cbb2e21134efd67ed1b4963b5f1d42c9e6ad650b8e1bb66df0c86121dcdb9 +size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox index 5f32d0a872..2a799d409c 100644 --- a/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox +++ b/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ff1ac798ca93a041195e3efee2c1166670a3f13c2fc907a432f1c7b44c381c4c +oid sha256:4eb00e2b0bb139f310cfa445ffc5a8c12539310b8a9b43e748ba4881c3d95771 size 1176 diff --git a/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox b/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox new file mode 100755 index 0000000000..2d68d363eb --- /dev/null +++ b/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34fd9b8839f52d57630ea300613e7f1341d7d4d0bddce2f5de317d27751d3c3b +size 1160 diff --git a/assets/voxygen/voxel/figure/eyes/general/male_old.vox b/assets/voxygen/voxel/figure/eyes/general/male_old.vox index edf3309004..ccd9a0914e 100644 --- a/assets/voxygen/voxel/figure/eyes/general/male_old.vox +++ b/assets/voxygen/voxel/figure/eyes/general/male_old.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:39c55d37bac17f7a1411d921446c9a3c775f9a84d9435705a0844e8ceb56a82f +oid sha256:6599475a4ed0e0ee2a41d3b9c07a3116321256fa97c1d8738d97003ccefcfc0f size 1184 diff --git a/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox b/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox index 69528e2110..bfd516c6fb 100644 --- a/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox +++ b/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02486a50a7485adb666e77488dc7c3f1bc0e92a3d7e3ba493abde2242d76764f +oid sha256:69d82736e23f5ac98960843a4e30a1caa7a6545323240561de9f6110510038cd size 1176 diff --git a/assets/voxygen/voxel/figure/eyes/undead/female-0.vox b/assets/voxygen/voxel/figure/eyes/undead/female-0.vox deleted file mode 100644 index ed58911c67..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/female-0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10289af4d395cd4a55183b3398295c1b468c996a7aad05474ed3aaf39161f1ef -size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/undead/female-1.vox b/assets/voxygen/voxel/figure/eyes/undead/female-1.vox deleted file mode 100644 index 208a3abc08..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/female-1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d58b83f7285bb96c1f63db7ee6f0d3e2e843a7da4ce747ba03d361434d422193 -size 1144 diff --git a/assets/voxygen/voxel/figure/eyes/undead/female-2.vox b/assets/voxygen/voxel/figure/eyes/undead/female-2.vox deleted file mode 100644 index 6cb33ed379..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/female-2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:63c0392403c912d975c66e584528043b368e31f4833610b1a829ca20630a174f -size 1144 diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-0.vox b/assets/voxygen/voxel/figure/eyes/undead/male-0.vox deleted file mode 100644 index a42ef18611..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/male-0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1a84d7a62081ecf7bc5e3eb35f5537263889f3974b2261e4b7c11a682238c95 -size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-1.vox b/assets/voxygen/voxel/figure/eyes/undead/male-1.vox deleted file mode 100644 index ed5f17373b..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/male-1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f77a0d0e28b84b7f37bb6fe150252a6d2adf55895bc0f7b034ed98264ada8595 -size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-2.vox b/assets/voxygen/voxel/figure/eyes/undead/male-2.vox deleted file mode 100644 index 6dd0a05ac3..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/male-2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0248c911ec7d509e5a6a86f7b636b08137d7920bf7edf7e7d613205791c195b6 -size 1112 diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-3.vox b/assets/voxygen/voxel/figure/eyes/undead/male-3.vox deleted file mode 100644 index b55f9ef05a..0000000000 --- a/assets/voxygen/voxel/figure/eyes/undead/male-3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:870fe83897319c3f43fc448b8f9e0c09cc4daaf5afbd6be712d04ee1038dc82b -size 1112 diff --git a/assets/voxygen/voxel/figure/hair/danari/bald.vox b/assets/voxygen/voxel/figure/hair/danari/bald.vox new file mode 100755 index 0000000000..104a12eeff --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/bald.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b523cb4cff180484cb9ba2eedc82d1592c4aca91072d66eda2fd39c692384f78 +size 1096 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-0.vox b/assets/voxygen/voxel/figure/hair/danari/female-0.vox old mode 100644 new mode 100755 index c1758ba726..4eab3705eb --- a/assets/voxygen/voxel/figure/hair/danari/female-0.vox +++ b/assets/voxygen/voxel/figure/hair/danari/female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d70d8bbc0ed7ebcaffc14154d6542e77be28897366da42374eed19f67fe8e194 -size 2364 +oid sha256:2e141c9cfbf682c9acccba30a5d97a8031f1da8b673725fef7812faf8313d611 +size 2620 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-1.vox b/assets/voxygen/voxel/figure/hair/danari/female-1.vox old mode 100644 new mode 100755 index 9ce7a1d23d..680148fb4f --- a/assets/voxygen/voxel/figure/hair/danari/female-1.vox +++ b/assets/voxygen/voxel/figure/hair/danari/female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3acd240b2dc5f68b4ace9a14b42bc7bb7d91e9f3f67ae409785ef0639aa0360e -size 2328 +oid sha256:5b7a2b132b411a95cd47b182dc501ea49eac5b824a45bdd0e7d9f5d9ec71893b +size 2776 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-10.vox b/assets/voxygen/voxel/figure/hair/danari/female-10.vox new file mode 100755 index 0000000000..331556aa64 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afa1f37178b7d68097a06608f07ab6334fd6360810070699c55da7c0f48665b7 +size 2120 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-11.vox b/assets/voxygen/voxel/figure/hair/danari/female-11.vox new file mode 100755 index 0000000000..68cad7699d --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3691a6be57c44414ac493825cb08156c1464e8244e4bdb6afa26c113ea4de6a1 +size 2368 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-12.vox b/assets/voxygen/voxel/figure/hair/danari/female-12.vox new file mode 100755 index 0000000000..e2ed606405 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b72be796a68062ca31d7fe4a27f34e638ecfc1531525d54b2e405e7651e7043 +size 2408 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-13.vox b/assets/voxygen/voxel/figure/hair/danari/female-13.vox new file mode 100755 index 0000000000..d1d3e0d947 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0bd447f9947d801e8ea497bca94a647ce8e9cbb3e5eaa8ce034d5cdf1f41355 +size 2264 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-14.vox b/assets/voxygen/voxel/figure/hair/danari/female-14.vox new file mode 100755 index 0000000000..e8eaf5798a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-14.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72548bb8fbe31e798518451494e96882d54995e3ba8a0d942e6ff2de45f62a7e +size 2404 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-2.vox b/assets/voxygen/voxel/figure/hair/danari/female-2.vox old mode 100644 new mode 100755 index d23bfd5f60..af6b1233a8 --- a/assets/voxygen/voxel/figure/hair/danari/female-2.vox +++ b/assets/voxygen/voxel/figure/hair/danari/female-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:923accdb7f3405e7f7cd45a86eddd9bbfa555e8116240458a0d6beef28477d19 -size 1960 +oid sha256:3aaf9141562e3ce9eef0b9c05d80f4c00264a9c61c4e8ae94275c0eae4b5184b +size 1972 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-3.vox b/assets/voxygen/voxel/figure/hair/danari/female-3.vox old mode 100644 new mode 100755 index 3663f7e752..3bc4377741 --- a/assets/voxygen/voxel/figure/hair/danari/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/danari/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de5c1d8f7a3fc9a7cfc1e39b6b3f1247e4741eed6f6bccd88ee2902ec71d359b -size 2192 +oid sha256:362ad04e351170918c6f6d5ccef54f2f8ac57fd4e3f488bbdcc4f1454f82bd22 +size 2320 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-4.vox b/assets/voxygen/voxel/figure/hair/danari/female-4.vox new file mode 100755 index 0000000000..a00b0d140a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a6b4c56c8b46dfb8f26caf9f83bf8afa6716144f2aca58b9a5930dbd73541bf +size 2416 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-5.vox b/assets/voxygen/voxel/figure/hair/danari/female-5.vox new file mode 100644 index 0000000000..1bd94e4086 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c9b8d2bfd04b78430e8fd0ceb70cc0c3771cc9ee94f80ed9d8edc98461975ea +size 2212 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-6.vox b/assets/voxygen/voxel/figure/hair/danari/female-6.vox new file mode 100755 index 0000000000..2bb81e58ca --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9055c4b3fc3fc499e1306e9a00f8eda239514fe96fa2ec8fcdffbe27fe12ed01 +size 2712 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-7.vox b/assets/voxygen/voxel/figure/hair/danari/female-7.vox new file mode 100644 index 0000000000..9631c587ea --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa5066c0fb467e353b9bcc244a3f376baf70f803fabaf7f590b78cf9d80df0f5 +size 2140 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-8.vox b/assets/voxygen/voxel/figure/hair/danari/female-8.vox new file mode 100755 index 0000000000..785f75f881 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f687b185df9e9dc7657fcd18b56ca66519097441e6e70a4b9dd8a826ee17963d +size 2276 diff --git a/assets/voxygen/voxel/figure/hair/danari/female-9.vox b/assets/voxygen/voxel/figure/hair/danari/female-9.vox new file mode 100755 index 0000000000..f632d7347e --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/female-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:361c304442971747d812384aacdda6f10a7a45bd17d603e162428377523ec048 +size 2084 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-0.vox b/assets/voxygen/voxel/figure/hair/danari/male-0.vox old mode 100644 new mode 100755 index ca50e3c597..b50c12f42d --- a/assets/voxygen/voxel/figure/hair/danari/male-0.vox +++ b/assets/voxygen/voxel/figure/hair/danari/male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:39b3c62cff1db93bc3f07ce166d9a9ccd0e7370de9a2ed75be5bcc3fd536d218 -size 1816 +oid sha256:a2a4796e73b8c8c44e06d0990387305b6e240e586fb96fa357c14044479869b8 +size 1960 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-1.vox b/assets/voxygen/voxel/figure/hair/danari/male-1.vox index 36cef568f0..6070d90971 100644 --- a/assets/voxygen/voxel/figure/hair/danari/male-1.vox +++ b/assets/voxygen/voxel/figure/hair/danari/male-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c329e3ca026ff35f2574fac8d48af4f3b7f65951a491399de1001a527f471a1c -size 1792 +oid sha256:012c1adbd8cbe5800abc958ae26fc710bf659b0d17747b4e5b3991f4abf52ee9 +size 1852 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-10.vox b/assets/voxygen/voxel/figure/hair/danari/male-10.vox new file mode 100755 index 0000000000..a30e98f2c6 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51f1ca773298df99bccfe046cc06e654d94528863c843fb979d40343913503b9 +size 2272 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-11.vox b/assets/voxygen/voxel/figure/hair/danari/male-11.vox new file mode 100755 index 0000000000..2b8ba66e09 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a30a0ba884e7412b814acefbacf0e95856ac2ecc1f4a472568b24963d9e77b1 +size 1992 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-12.vox b/assets/voxygen/voxel/figure/hair/danari/male-12.vox new file mode 100755 index 0000000000..8d9f24e881 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e585f961be1fd191c7711600489d77600d416c08a94cdcb84af467160116629 +size 2320 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-13.vox b/assets/voxygen/voxel/figure/hair/danari/male-13.vox new file mode 100755 index 0000000000..3e5e2a1233 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38130c32658fefb98e1c61ca86e7beed2fff189835646859a02258b2c711bfa5 +size 2184 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-2.vox b/assets/voxygen/voxel/figure/hair/danari/male-2.vox old mode 100644 new mode 100755 index 89301f528c..eec22141b8 --- a/assets/voxygen/voxel/figure/hair/danari/male-2.vox +++ b/assets/voxygen/voxel/figure/hair/danari/male-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a42e4d6d2839a04443ce1c9ad1a8a433a34bcd2596f85ab49cd775b5bd0fdac -size 1776 +oid sha256:f840301e722b9660b4c048e42dc10794cbf3246b842111d3c92e52fd25deb588 +size 2144 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-3.vox b/assets/voxygen/voxel/figure/hair/danari/male-3.vox old mode 100644 new mode 100755 index 402a3fac52..156a061026 --- a/assets/voxygen/voxel/figure/hair/danari/male-3.vox +++ b/assets/voxygen/voxel/figure/hair/danari/male-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a63dcb525c4fadbc674ca2bdee8eecae2308b726348cd90e0fc15b343e73adb -size 2232 +oid sha256:8fc39be0c7ac40274b83a34ea98d96632db32029aa43b7788f03e5661ab68a55 +size 2600 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-4.vox b/assets/voxygen/voxel/figure/hair/danari/male-4.vox new file mode 100755 index 0000000000..e111fd6394 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7926fd877636a972281f7603782f006bbb225cd8979f6de0c3ff17bb89e4252 +size 2308 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-5.vox b/assets/voxygen/voxel/figure/hair/danari/male-5.vox new file mode 100755 index 0000000000..4cfc80af44 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efb929d73f857000bcf2f89ca33efd57b5ca760ebfa2df44e8774b9c6e75c3e6 +size 2068 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-6.vox b/assets/voxygen/voxel/figure/hair/danari/male-6.vox new file mode 100755 index 0000000000..b8eec73b2a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f0994917142e40058d71be27e8ca974868ff274b732d5dbb6f96a5a310da414 +size 2344 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-7.vox b/assets/voxygen/voxel/figure/hair/danari/male-7.vox new file mode 100755 index 0000000000..aba5a7559f --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd309128eea49f0b24001031f791e07a9157bd019065c26a71f965dac3a6483d +size 2836 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-8.vox b/assets/voxygen/voxel/figure/hair/danari/male-8.vox new file mode 100755 index 0000000000..518db2ed73 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43386ae0d3fadb6168fe9eeed3955656a2b708b5753bfe05ddbb29e523ef379e +size 2728 diff --git a/assets/voxygen/voxel/figure/hair/danari/male-9.vox b/assets/voxygen/voxel/figure/hair/danari/male-9.vox new file mode 100755 index 0000000000..ee1a4ea693 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/danari/male-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b352de102a1cf2462f82537169f8fd3982b07479757b9eb9025c5b0bd346c1ad +size 2356 diff --git a/assets/voxygen/voxel/figure/hair/draugr/bald.vox b/assets/voxygen/voxel/figure/hair/draugr/bald.vox new file mode 100755 index 0000000000..40a415285c --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/bald.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee9b62b569b6c92d361bf5e20997bc3e20f45f542353cb8f04a1e07541ae8351 +size 1096 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-0.vox b/assets/voxygen/voxel/figure/hair/draugr/female-0.vox new file mode 100755 index 0000000000..25bb730946 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd2825fa1b22c9615a9dbed5d1cc76532bd30393809d7167a90439c9bdf7f8b0 +size 1900 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-1.vox b/assets/voxygen/voxel/figure/hair/draugr/female-1.vox new file mode 100755 index 0000000000..cd5fb44844 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcfa348c46a26c17fd6f71745d9af2e2be39eb038bd077d12a2bfba10b4bcc8c +size 3008 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-10.vox b/assets/voxygen/voxel/figure/hair/draugr/female-10.vox new file mode 100755 index 0000000000..33ae4a6291 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9da370041adc678f7df5008b84742cc30af92b749f16d5da026a73ce4093453 +size 2436 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-11.vox b/assets/voxygen/voxel/figure/hair/draugr/female-11.vox new file mode 100755 index 0000000000..40a7da7767 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c0d2699dad911957d8512acb09b12dc3bad937a30ecbcf89298ea8fa53c496 +size 2508 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-12.vox b/assets/voxygen/voxel/figure/hair/draugr/female-12.vox new file mode 100755 index 0000000000..051b6c4bdb --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5ce717be930c0bacd80eb1ea0235c00bea3279f2068aa2080411db18f634d6 +size 3292 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-13.vox b/assets/voxygen/voxel/figure/hair/draugr/female-13.vox new file mode 100755 index 0000000000..086c9125f1 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c933b4c8e2b4ea70783f6a48da3c5ee9282e56200fb01b43c4f5366598cd66c4 +size 3076 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-2.vox b/assets/voxygen/voxel/figure/hair/draugr/female-2.vox new file mode 100755 index 0000000000..9aabb5bfb0 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a05de0cb4cdc75d81dec35d7294fd1b42ca2874a67bf5f9f0bfb9521b4ea55b +size 2044 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-3.vox b/assets/voxygen/voxel/figure/hair/draugr/female-3.vox new file mode 100755 index 0000000000..7b4191342b --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25fe2c8077c400cf42917bd100def8caa7349d43140b18e9f96d93ea596d8ff6 +size 2068 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-4.vox b/assets/voxygen/voxel/figure/hair/draugr/female-4.vox new file mode 100755 index 0000000000..a3222bf680 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e591f9eda6c33d59aaa32aa3791318da9e7f9c063b4b7b8c83506de37636ba76 +size 2148 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-5.vox b/assets/voxygen/voxel/figure/hair/draugr/female-5.vox new file mode 100755 index 0000000000..ca3ec3b6dc --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9360fe6e82cbdeccd2d4e074ddd42fd6ddd4248661ba46c6ef5ccc465b574a1f +size 2264 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-6.vox b/assets/voxygen/voxel/figure/hair/draugr/female-6.vox new file mode 100755 index 0000000000..f887b2d252 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85051e974ebcae6bc8d5318582fbd5c57cdf62985cbf7514b310496da14641a4 +size 2600 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-7.vox b/assets/voxygen/voxel/figure/hair/draugr/female-7.vox new file mode 100755 index 0000000000..805ad0811f --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92ef420db571df01c51a02075150f1c0a9d8373d3e318fd4c01cf7c15ea9993d +size 2940 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-8.vox b/assets/voxygen/voxel/figure/hair/draugr/female-8.vox new file mode 100755 index 0000000000..5ce3aafded --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1127cb4ffd6873e464b5a50c957a79e06d43324dab3178e37ab4d4bd533c8e91 +size 2576 diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-9.vox b/assets/voxygen/voxel/figure/hair/draugr/female-9.vox new file mode 100755 index 0000000000..6575954e24 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/female-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8daad9d87a1c33082d42f3f9a7e8696795931f5319bd7cdd6301f43d2f741f8 +size 1520 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-0.vox b/assets/voxygen/voxel/figure/hair/draugr/male-0.vox new file mode 100755 index 0000000000..e868475391 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96aa12e48c1dad51d872ba4f7a00457308963ef34ca821191b7e593f9220b4de +size 1924 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-1.vox b/assets/voxygen/voxel/figure/hair/draugr/male-1.vox new file mode 100755 index 0000000000..a65cb79c5a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:543d0afddf5a069d4981a8e96b9de4037df3cf97832b19bdd4e99e46acc324e3 +size 1460 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-10.vox b/assets/voxygen/voxel/figure/hair/draugr/male-10.vox new file mode 100755 index 0000000000..c9fe2b9553 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7b7a55dc19874018063ca1cad66e7f186149d6e8b4fee5da2c9b3389510c591 +size 2364 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-11.vox b/assets/voxygen/voxel/figure/hair/draugr/male-11.vox new file mode 100755 index 0000000000..631274b465 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:888e904f2c339756ca4f589899fcac052f9bea3b8481006ec36e7c3f8f7a74ed +size 1692 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-12.vox b/assets/voxygen/voxel/figure/hair/draugr/male-12.vox new file mode 100755 index 0000000000..fd0f885990 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d9abb65cc96dc33574fa9449530421640d48e6dc8c0c7dca6abfd83b6a1bb4c +size 2108 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-13.vox b/assets/voxygen/voxel/figure/hair/draugr/male-13.vox new file mode 100755 index 0000000000..cf1dc7061e --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbd4b798b8029eba762db28d109ca3eb5e19145b74647178feb03cff137581e6 +size 1528 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-2.vox b/assets/voxygen/voxel/figure/hair/draugr/male-2.vox new file mode 100755 index 0000000000..4409e12897 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e32c93b2a06cc2da6dd1cee7d76126378f467d311c74bd0cbc86dfd831db427 +size 1464 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-3.vox b/assets/voxygen/voxel/figure/hair/draugr/male-3.vox new file mode 100755 index 0000000000..2f0df16feb --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65e8340deca536cc341380bd69e1354712d5cdc5df1bb1ac0da596cf2caa52e7 +size 1916 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-4.vox b/assets/voxygen/voxel/figure/hair/draugr/male-4.vox new file mode 100755 index 0000000000..1ef73b56e1 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe3ba4fac31a0ed1cbf1d7499aa0359feacf9cac8ecb345f3e9ca534f5bdef6 +size 2312 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-5.vox b/assets/voxygen/voxel/figure/hair/draugr/male-5.vox new file mode 100755 index 0000000000..85215d186e --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62691b990b87fbc026f80356ed62f4a52547df18a6c0164b4b68cedd2bbf728a +size 2316 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-6.vox b/assets/voxygen/voxel/figure/hair/draugr/male-6.vox new file mode 100755 index 0000000000..b0b95dd0f4 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe3916b56191b8c89a769c96a9388ebc6429c2fbe28663a67c54dce68b1931b +size 1868 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-7.vox b/assets/voxygen/voxel/figure/hair/draugr/male-7.vox new file mode 100755 index 0000000000..909bfa4b58 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33281bf35c9fdbe75edefccab10050bfd8a5d7125888ab75b8edb180c3bdedb0 +size 2388 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-8.vox b/assets/voxygen/voxel/figure/hair/draugr/male-8.vox new file mode 100755 index 0000000000..24f3d7cb82 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6c3e5244bfc917ce0fcccc9a61ccc3fbff0c6b3a888323f3847ad5382da3a64 +size 1972 diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-9.vox b/assets/voxygen/voxel/figure/hair/draugr/male-9.vox new file mode 100755 index 0000000000..15f2798451 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/draugr/male-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3c76cce63909ee0b6278cd5ad62aaeb5b6b8d44721203c78434928d1c964fd +size 2132 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/bald.vox b/assets/voxygen/voxel/figure/hair/dwarf/bald.vox old mode 100644 new mode 100755 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox old mode 100644 new mode 100755 index 8e9df08c4f..6be92695f3 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddab65fcb39e2334262844464777012623ecf9dfc310b82a84e3c680460fa671 -size 2560 +oid sha256:071216404d6da3f09c8110a2c8e46106decbfe18628741bd96260fd042544b9c +size 2604 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox old mode 100644 new mode 100755 index 854ddbe942..788ce61c8e --- a/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a70fb875fbc7f6beddbedf9b3d208c53d495ee6a9e6f78c32ecc2e62e54f4c09 -size 2688 +oid sha256:066d8d9c94853fcdc8b14800084ef06ff06ce7170713effc85e3da37fb9cab72 +size 2780 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox new file mode 100755 index 0000000000..6dc2f56870 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876c3308e16f9a438f09914267a7e11350abd70071a130cac414cf02f5f7d324 +size 2624 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox new file mode 100755 index 0000000000..c31e51bcff --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:726c06e11da17ee6ea86294cb6d48630e6c4a767f4719e113044701688000879 +size 2904 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox new file mode 100755 index 0000000000..fa776bcafb --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91e1225d8192580f5f3ea7fc9c8a20e0c1a7b6bcc48426976d6ee80cc8fd98ad +size 3400 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox new file mode 100755 index 0000000000..06c9aade11 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d24c836f1548b0a8ca3764e682f4402db4be5334d01a0947583a7f14bc7917a9 +size 3164 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox new file mode 100755 index 0000000000..cdec0b42ec --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31efe23ecc734c44ddd661261a68d2779c4222b012eac8d8ffc4f64211e0499e +size 2888 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox old mode 100644 new mode 100755 index 76afb1902f..df74663606 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:abaeca010745185c37dc46892814e2656ec4bc5a8901db3d505b94e7fdb3e8a6 -size 2496 +oid sha256:7db43ba3640e0305f20d3d0f15beb1dd9c9f113e591b7afd7f3d28ca6a2f143a +size 2572 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox old mode 100644 new mode 100755 index 04d0412377..09c4157c74 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aa7efc315dd97840102aed60ae7caaf7ab42bc6d46d1a3103794ddbed6696e62 -size 2924 +oid sha256:fab9c7d98193ebe18b74926c1b59358b9061acfcf8fba2d7a5bff9d9a84b0a9a +size 2900 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox old mode 100644 new mode 100755 index e20c2a6b7d..2b2d633282 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2930b901eb0c3ffb0693b47bdf0b0754e2e82323e0a34cab237da78918b27c4 -size 2640 +oid sha256:bae345fc8151cb1fcef2417e1c610f9206d458280c8530ae4fa0b3ed46ce0803 +size 2496 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox old mode 100644 new mode 100755 index c497cdd6ef..e48943aae0 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e05d91233210406564d557467f7a37b8de9f0687d261eec143d2408dac79973 -size 2296 +oid sha256:0a25b69118791fde05882dd4f6f65871ad4d346da905ad8b74a55b7193fe2dd7 +size 2272 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox index 357fc810f4..0e7698e046 100644 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27e53effbe09fc668d36b14a09ddc2727e0db57f3cf481d04c42a2d6c26a2e13 -size 2928 +oid sha256:9944996a7bd14ae341ee0ab4524cafc25c0ea7bff0a4b8978792388d69d057ac +size 3048 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox index b20f0ad3b3..0068982a72 100644 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2055c87773d61874494353560f7f194a9678d77c389877f05ade8116243ff8a -size 3368 +oid sha256:b1dd4eb0b4c9123b06403a9bec6838396145214dcf98c48e3d55393d34c78664 +size 3392 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox new file mode 100755 index 0000000000..3f3cc59c35 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f5ebc21ac3ea96b199fddd771b878b57fc17d4f9a220b71d713ea69912b3b33 +size 2732 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox new file mode 100755 index 0000000000..3dbcbbc514 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:103d086d80c8b638d535dcdfcf717a5fe9548edf3b8fc72d111170702999d3af +size 2832 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox old mode 100644 new mode 100755 index 3c4fb074bf..5e685eaa4d --- a/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2eddaa5ffb8b5f0abfd9769147b7168fc35157666ad98bd874d64333969b161d -size 2520 +oid sha256:944f6bcd88a80b3729ed2a66b4e56450b800e6c0c56bb11e3be7123168f786d2 +size 2416 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox old mode 100644 new mode 100755 index ed4196bb8b..ecfd909820 --- a/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c60ed073ac070de5faf8e83b8ec41160cada993e8747f9192a03d8f345b4b5d3 -size 1800 +oid sha256:0ac543140e741c89f6d9c882753775d7d847153a8c56cb59e45b757a8ebeb1b9 +size 1884 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox new file mode 100755 index 0000000000..e5a6ed1259 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f49c0060806857794402db19b8e5c9dd07bd4723ece6483a3bacb07122857b +size 2420 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox new file mode 100755 index 0000000000..07add14e25 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:732215c09bbecaf198234bcad6013f4712dff2982996b5284deb1c365eaac251 +size 2532 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox new file mode 100755 index 0000000000..a570e21b00 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:200c702896e993f9cefb3f3ff873129811d56ccfaff1e8578b691df8d6fc42d9 +size 2916 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox new file mode 100755 index 0000000000..43c735c4ca --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce4da4c385b664314f1ef4c20dbabee628eff08a704efbf4ae3eb4c2e3e316c4 +size 2136 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox old mode 100644 new mode 100755 index f5b5bf2b6d..7314c77524 --- a/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:878d3b7653e21ad451636e3186acd7268ac61d6b7487c9fe272ffbf97907a5b1 -size 2592 +oid sha256:2eac27f1115141bafe29b44c6f44517a4388f3a37ea5dadb8b67e167205b26e9 +size 2544 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox old mode 100644 new mode 100755 index eb87250590..7dcd48bf46 --- a/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de0f665ce04df0d9e92c639b725b5b4f4c4029dbdcc7f7e115510eb895fb020d -size 1944 +oid sha256:5c59f5a2b794ec7a81c69cd441bd60bd5844acc2f8fb04b874799f5860526494 +size 2320 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox old mode 100644 new mode 100755 index 5217522841..b83faf802f --- a/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:813bcf7f1ed691ec2268a76161aa03ea45734351c8ba192b5830c10bf2071349 -size 1692 +oid sha256:38c3e7d7a79cab40632fa02dcd0a688dd80af31efebb1d9850e1880abd3c8490 +size 1724 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox old mode 100644 new mode 100755 index 03983032ef..f5279b0c6b --- a/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e37cb9e96ac340b26e59ed2434ce1cb92d8f53670f3f9fe5337ff29409ff648e -size 1904 +oid sha256:894cc72f062056a882a5d989c538f8bc56442276d839b2796e2ea6d2fc5d9bf6 +size 1840 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox old mode 100644 new mode 100755 index ae7a9af907..ef2a83674a --- a/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6131cfb0ea74af86cab91c7c59de55bc36fbf74b592a17b7f0c036ce235248cd -size 2640 +oid sha256:75594c58f5a1d909e846dbd820954839b8e8589e0f8c73e3c8fbd865316c94d1 +size 2668 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox old mode 100644 new mode 100755 index d68a4d07ed..6b011b7459 --- a/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:baada06f31322d58ccf5efa839af0a1e5d80969c7360ae35fecc3af15bbe0ca5 -size 3048 +oid sha256:affff3518a7feb91905299b6acc685707b2643c099c18a286d407d285fb2051e +size 2760 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox new file mode 100755 index 0000000000..e4c54d3fa7 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0647a6ac700e74ed7c107d1cd52506a2ce5796a365b4c6ec64ae1f305f874799 +size 2524 diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox new file mode 100755 index 0000000000..c564feb97f --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bb9f3c2d050666162b1b1e66406fdfaf482cb060723c5950470b063538e4373 +size 2412 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-0.vox b/assets/voxygen/voxel/figure/hair/elf/female-0.vox old mode 100644 new mode 100755 index cd30bb6c38..71b09b42c1 --- a/assets/voxygen/voxel/figure/hair/elf/female-0.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:affe57e1e04764bf002ff027719799dad1b8f3df1629f3f3bfec13b9e430fa33 -size 2952 +oid sha256:bc68bcd64b371b9fd9bbea2c4056bed4252a15c475fad984c8ba05abadf8e304 +size 2920 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-1.vox b/assets/voxygen/voxel/figure/hair/elf/female-1.vox old mode 100644 new mode 100755 index 4259d071cd..c9e694f87e --- a/assets/voxygen/voxel/figure/hair/elf/female-1.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f6fcbe925ecd7a8249cbe81c7b394a32e14f2aeb031e69bae522f0bc7dc2954 -size 2376 +oid sha256:790f8cce65752a4255e77f5a1db9a1a461987f9fc3673823848285c04eec934f +size 2560 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-10.vox b/assets/voxygen/voxel/figure/hair/elf/female-10.vox old mode 100644 new mode 100755 index 8c2670d908..91805fd92b --- a/assets/voxygen/voxel/figure/hair/elf/female-10.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-10.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d83728287cc2caa9cfa02cc0d6295879a08c2b6a90e1a8c922d636aa289fcd10 -size 3552 +oid sha256:6f11e721dc32ccd8d64597b25c653d7aad2b72bbcf95edd1acf062b7b54531fa +size 3584 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-11.vox b/assets/voxygen/voxel/figure/hair/elf/female-11.vox old mode 100644 new mode 100755 index db849748bb..45c7f99cd9 --- a/assets/voxygen/voxel/figure/hair/elf/female-11.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-11.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f1bdd7fc7cf521b96758442e1772a651726a4285537326e146b454bea602bdc7 -size 2020 +oid sha256:ef5f866315070807f68113f4e6d04df665135f2a174888f52936daa231152482 +size 3124 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-12.vox b/assets/voxygen/voxel/figure/hair/elf/female-12.vox old mode 100644 new mode 100755 index d64aac0dc6..6eee8a5525 --- a/assets/voxygen/voxel/figure/hair/elf/female-12.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-12.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8be51f26eea7f5d9742d669bf0c0799f3619c21456e177bb1af45b55b76f16fc -size 3000 +oid sha256:72aaaf4ccf3d611ca399e2b0c32a9bd50f8de85ecfa80c3dffc4ba106cb277f9 +size 3296 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-13.vox b/assets/voxygen/voxel/figure/hair/elf/female-13.vox old mode 100644 new mode 100755 index d744df025f..d7f0eca2da --- a/assets/voxygen/voxel/figure/hair/elf/female-13.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-13.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c266fa848e7f1690c6fc8e0e8004ea8f8db18c43cc4351aec526b4544c56273 -size 2644 +oid sha256:0e3e4d52eb08a540d2f465594973ee095646c4c3c8b5836a85408ebe6acc55d0 +size 2904 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-14.vox b/assets/voxygen/voxel/figure/hair/elf/female-14.vox index f3d513f8e1..a42767d807 100644 --- a/assets/voxygen/voxel/figure/hair/elf/female-14.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-14.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35d5cf15aa12c8f107ce2ce66f7fba062ce38ed095d34940b4044c2a99b11c5a -size 1948 +oid sha256:93420b1544774145922d348a12ced7df47aa4ae5835c8841fceaef4dd3cac9fa +size 3008 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-15.vox b/assets/voxygen/voxel/figure/hair/elf/female-15.vox index 2ac6422691..cffd53ad8e 100644 --- a/assets/voxygen/voxel/figure/hair/elf/female-15.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-15.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ce506e01c04f50a67199f914dff5b2cbd9340c24eb81553e8672747809f6331 -size 2384 +oid sha256:9926926e8c10442c604d287748c97910f38ffd0f3f85b50f3df15f661cf8dfac +size 3032 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-16.vox b/assets/voxygen/voxel/figure/hair/elf/female-16.vox old mode 100644 new mode 100755 index 76de90d5d8..116b8fa19c --- a/assets/voxygen/voxel/figure/hair/elf/female-16.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-16.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da6c1d63dd85c570c104b8573b23aedbe7d4d44d7e14b7ab05e1a5c1ff8ad7d8 -size 2356 +oid sha256:82a3bb6bc8bac465e88d93832258bde06a53cd13c140636bf23bd1292c3aedd4 +size 3340 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-17.vox b/assets/voxygen/voxel/figure/hair/elf/female-17.vox old mode 100644 new mode 100755 index dd1360f8e6..a604d15062 --- a/assets/voxygen/voxel/figure/hair/elf/female-17.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-17.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b557e1912c92e2163fd060c005f0fd6167a3ca41c616f13af14e36680b58336 -size 2940 +oid sha256:bba9b75b534933c7eb8593537cc25030c1327288a1ccd75500d9d1836b105b55 +size 2632 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-18.vox b/assets/voxygen/voxel/figure/hair/elf/female-18.vox old mode 100644 new mode 100755 index 844d2454fa..27f487dd14 --- a/assets/voxygen/voxel/figure/hair/elf/female-18.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-18.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e85e4cfd2cd14dde11bd9d13acb38366036b585a4ba85efaebb3d61a00dedde -size 2752 +oid sha256:9405026a345ae82d400610b24ff7b8b29b98106ea5b30d9161d7b41643cbd524 +size 3000 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-19.vox b/assets/voxygen/voxel/figure/hair/elf/female-19.vox old mode 100644 new mode 100755 index c055b9f51b..c0d43cc999 --- a/assets/voxygen/voxel/figure/hair/elf/female-19.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-19.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b55cd9e8ac02fdf51b2b92d45545fad23af631ab735655e3572cc4f2b6835dab -size 2700 +oid sha256:7ddef0a62d465e34c19caa268110d042f87f8aa6559ce04e8c218bf184569c89 +size 3116 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-2.vox b/assets/voxygen/voxel/figure/hair/elf/female-2.vox old mode 100644 new mode 100755 index 0f8d61b1be..c8feb898f1 --- a/assets/voxygen/voxel/figure/hair/elf/female-2.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e511587486c499d79b532961d1bfd13f313b0e28620f152a0b82dd5443fda4b1 -size 2632 +oid sha256:1d740d8730ab189296456a7830d5f6dd66cbe75eb6e1e4b8cf0fb74808dc35a5 +size 2952 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-20.vox b/assets/voxygen/voxel/figure/hair/elf/female-20.vox old mode 100644 new mode 100755 index 5a022cde25..0f67fe6bad --- a/assets/voxygen/voxel/figure/hair/elf/female-20.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-20.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29e78db470fb10298b53b5cb85a25ae42fe2421dec68c675d823b957ab09b9dd -size 2460 +oid sha256:0d2838cf6ac74cc93e4419b20592bc116a666c2d2094806a93d62b94b0dbb135 +size 3136 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-21.vox b/assets/voxygen/voxel/figure/hair/elf/female-21.vox old mode 100644 new mode 100755 index 48cd890ad4..60dd5b2820 --- a/assets/voxygen/voxel/figure/hair/elf/female-21.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-21.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdb7bbafc77b1549167c0b9198357b3ed787b8e8aa59d6b8cf25ef31ff50f371 -size 3716 +oid sha256:d6bbbe6fff3219520816e5677492f7e12a10605479af2014dc5d92ed2295961e +size 2840 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-3.vox b/assets/voxygen/voxel/figure/hair/elf/female-3.vox old mode 100644 new mode 100755 index 67c6de95fb..b4c12e5df7 --- a/assets/voxygen/voxel/figure/hair/elf/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ae29cf0c8b365d0358bc9ab175a90c85fc5f616a5d8fd66382503c1257f3b9b -size 2404 +oid sha256:c8e7be5d080225d60e0ccf830704b0b74a270413509f8f89502af867308b1b30 +size 2596 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-4.vox b/assets/voxygen/voxel/figure/hair/elf/female-4.vox index 2d6b695a7c..8e8d5c67e3 100644 --- a/assets/voxygen/voxel/figure/hair/elf/female-4.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95d2a6279a3adf51cf35cb5fde792d8a38538ef0edb5c137138392370ce01f1d -size 2708 +oid sha256:c32fe09c2f1681e42ce639a431281e58609dafa106226f480febcacff1c07adf +size 2816 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-5.vox b/assets/voxygen/voxel/figure/hair/elf/female-5.vox index 20d231ded1..bd4b996e59 100644 --- a/assets/voxygen/voxel/figure/hair/elf/female-5.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f705e19f9e0d6b2535f22b97424ef29cba6ec319202647fbc05a241ac217bea -size 2312 +oid sha256:8116ddb000dbda1a618823326c0ee05ec3cbaa0c27e18eacc7009620c8e1cbe3 +size 2824 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-6.vox b/assets/voxygen/voxel/figure/hair/elf/female-6.vox old mode 100644 new mode 100755 index b1097c2c66..d7e7f9c08e --- a/assets/voxygen/voxel/figure/hair/elf/female-6.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c558008dc134f8c056270186e3bcf5c14a55f02f2eecf8bedb3218b01a4e180 -size 2752 +oid sha256:78c3fd5c9cee91b22d641ed62f7faa9d5c86324c20d0e8979a2871060998f387 +size 2896 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-7.vox b/assets/voxygen/voxel/figure/hair/elf/female-7.vox old mode 100644 new mode 100755 index 67aefec497..4593b29626 --- a/assets/voxygen/voxel/figure/hair/elf/female-7.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0b1c1e57101215c679058304ee7047114dcfed6e5a8618c73a8b4f26377e9ac -size 2624 +oid sha256:b08085469e7bb1004d77b523371fb42f807dfa63233b6412d1c239eefb981d5d +size 2896 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-8.vox b/assets/voxygen/voxel/figure/hair/elf/female-8.vox index fb06e14504..b7a47dd0a2 100644 --- a/assets/voxygen/voxel/figure/hair/elf/female-8.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-8.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3613c4c7bfd6018592f19376dd1f676928b6e603e7ee4c03483bc2466a5ec0a7 -size 2984 +oid sha256:da27b83be37d12eb7749fa8f619dd091cd1d86cef650266c22bb8b28d5199e30 +size 3312 diff --git a/assets/voxygen/voxel/figure/hair/elf/female-9.vox b/assets/voxygen/voxel/figure/hair/elf/female-9.vox old mode 100644 new mode 100755 index c83dfeea5a..59fe281e0f --- a/assets/voxygen/voxel/figure/hair/elf/female-9.vox +++ b/assets/voxygen/voxel/figure/hair/elf/female-9.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fca6cc008ca885f98a78194ca58210d1f6697faa686d158ca1f0bd8029e1a987 -size 3168 +oid sha256:9f006cb4a028c1fc3ceafe491daa06669abaa134e4e4a307d04f08394dcb9446 +size 3632 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-0.vox b/assets/voxygen/voxel/figure/hair/elf/male-0.vox old mode 100644 new mode 100755 index a3de59ccc9..9f9729f16d --- a/assets/voxygen/voxel/figure/hair/elf/male-0.vox +++ b/assets/voxygen/voxel/figure/hair/elf/male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6d6b9f6e4bdfa5ce5e1cae102803d59e42b1c1ac9778a72181459547355adf9 -size 1896 +oid sha256:eaa4755076ad9e80982ef6bb29852d62888a510a2bf5ad4efd64d04988f0b7f2 +size 2616 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-1.vox b/assets/voxygen/voxel/figure/hair/elf/male-1.vox old mode 100644 new mode 100755 index fb06e14504..10b8b041ef --- a/assets/voxygen/voxel/figure/hair/elf/male-1.vox +++ b/assets/voxygen/voxel/figure/hair/elf/male-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3613c4c7bfd6018592f19376dd1f676928b6e603e7ee4c03483bc2466a5ec0a7 -size 2984 +oid sha256:2124639907b40e8077e563f5c8eec536c81c0d4331aa0814ed49c4d04ac7a3c9 +size 3396 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-10.vox b/assets/voxygen/voxel/figure/hair/elf/male-10.vox new file mode 100755 index 0000000000..0aa7e044d8 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c210cc2d89c3d78d43a8cc2251842ca7f076fbff22cc30a1f6c2c5123d4bbc42 +size 3360 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-11.vox b/assets/voxygen/voxel/figure/hair/elf/male-11.vox new file mode 100755 index 0000000000..1ffb0f5470 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ce2a779747699c39fa2e73ea5956adc5d22f0f827de17e110d8f5942bf75c99 +size 2912 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-12.vox b/assets/voxygen/voxel/figure/hair/elf/male-12.vox new file mode 100755 index 0000000000..122d84acd3 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ed5c850a786b9fe0e3f9a0118596cbf29b95629eeae4b8ab89dbf836b66ad3 +size 3064 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-13.vox b/assets/voxygen/voxel/figure/hair/elf/male-13.vox new file mode 100755 index 0000000000..15014ad874 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a85b59980302a2b77eaffdb7173ad65b0dbc37cc427d2f34b7b53e07a604b7a +size 2716 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-14.vox b/assets/voxygen/voxel/figure/hair/elf/male-14.vox new file mode 100755 index 0000000000..3b1b5d4cc3 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-14.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ce4c5000eba99f01a80a169bf31d3a0636b026930643a8c2a94c8ed80c928c4 +size 3196 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-2.vox b/assets/voxygen/voxel/figure/hair/elf/male-2.vox old mode 100644 new mode 100755 index 1da5dee387..0d6dc8c44c --- a/assets/voxygen/voxel/figure/hair/elf/male-2.vox +++ b/assets/voxygen/voxel/figure/hair/elf/male-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef37ee588aa533263b94c0ccf0f81d303769530c4f606af4008928cf5b7331aa -size 2548 +oid sha256:713fe5f78ca3970f0611abafc71d5dd7a694745c31b30fa535b9eea7e74655dd +size 3020 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-3.vox b/assets/voxygen/voxel/figure/hair/elf/male-3.vox old mode 100644 new mode 100755 index 8afc3c4e99..3412634b5e --- a/assets/voxygen/voxel/figure/hair/elf/male-3.vox +++ b/assets/voxygen/voxel/figure/hair/elf/male-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2cd7e4a007367a45c73ade5c4f2b549e8b15abcb0b5b0befafa4a4b39a9f0d2 -size 2296 +oid sha256:66bb51af12324bc3777d787a8d27c42816b2c9582efe44fe59b39de63eecf434 +size 2944 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-4.vox b/assets/voxygen/voxel/figure/hair/elf/male-4.vox new file mode 100755 index 0000000000..ab07ad76ec --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c03845b745b8e599d1db7e7ea85647d7efcc48522c55f149fee1d6527755a88 +size 2976 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-5.vox b/assets/voxygen/voxel/figure/hair/elf/male-5.vox new file mode 100644 index 0000000000..d0377263fb --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daac65754b1546f1f228e784ab0cbeac3d02840ea9d3f263460d8eae9310c8c0 +size 2900 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-6.vox b/assets/voxygen/voxel/figure/hair/elf/male-6.vox new file mode 100755 index 0000000000..7ae6600e6a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fb4cd032e4b9fa5e5051a17cc56eb4f3b8cfeb32e7d62f77223dd903d9ab810 +size 2968 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-7.vox b/assets/voxygen/voxel/figure/hair/elf/male-7.vox new file mode 100755 index 0000000000..5b6d4dcfd1 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8365c0a79e0a9df88ea1b77fae503ae1aacbdec0da4256194add9989118777df +size 2880 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-8.vox b/assets/voxygen/voxel/figure/hair/elf/male-8.vox new file mode 100755 index 0000000000..7090505d16 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbcb94726222169b778814b51725907d81734e78a9378ac9918db8347942ca6f +size 2604 diff --git a/assets/voxygen/voxel/figure/hair/elf/male-9.vox b/assets/voxygen/voxel/figure/hair/elf/male-9.vox new file mode 100755 index 0000000000..e1ef4ff079 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/elf/male-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a81dbb1a4aaa9b4418440c171393872d72f084723a24ef64d5d24424dab51129 +size 2764 diff --git a/assets/voxygen/voxel/figure/hair/human/female-0.vox b/assets/voxygen/voxel/figure/hair/human/female-0.vox old mode 100644 new mode 100755 index cd30bb6c38..161d2cf172 --- a/assets/voxygen/voxel/figure/hair/human/female-0.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:affe57e1e04764bf002ff027719799dad1b8f3df1629f3f3bfec13b9e430fa33 -size 2952 +oid sha256:458da2b182004c5559e759a0f180635494525eb432f1b4c0b0f774e8f563a691 +size 3052 diff --git a/assets/voxygen/voxel/figure/hair/human/female-1.vox b/assets/voxygen/voxel/figure/hair/human/female-1.vox old mode 100644 new mode 100755 index 480d525b91..0bd1b74825 --- a/assets/voxygen/voxel/figure/hair/human/female-1.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:951038ce277d6194b8a11061312e0199c2df9f36a5d59d6193181307a99e56c6 -size 2376 +oid sha256:f2a2f8d1ac214610034a2cce438dada55ca6a34246a0aac4f7730c83d58661cf +size 2520 diff --git a/assets/voxygen/voxel/figure/hair/human/female-10.vox b/assets/voxygen/voxel/figure/hair/human/female-10.vox old mode 100644 new mode 100755 index 8c2670d908..1006507a41 --- a/assets/voxygen/voxel/figure/hair/human/female-10.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-10.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d83728287cc2caa9cfa02cc0d6295879a08c2b6a90e1a8c922d636aa289fcd10 -size 3552 +oid sha256:66ced27ea4e59f43901184de68b8ab49edb1f1431fab4227805db4a2ef6c403b +size 3576 diff --git a/assets/voxygen/voxel/figure/hair/human/female-11.vox b/assets/voxygen/voxel/figure/hair/human/female-11.vox old mode 100644 new mode 100755 index db849748bb..939d7cb838 --- a/assets/voxygen/voxel/figure/hair/human/female-11.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-11.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f1bdd7fc7cf521b96758442e1772a651726a4285537326e146b454bea602bdc7 -size 2020 +oid sha256:d6a2a4d189d3952d8eed0d80d2d1e0698ff2eea247b36ff241b9715ceb83eaac +size 3636 diff --git a/assets/voxygen/voxel/figure/hair/human/female-12.vox b/assets/voxygen/voxel/figure/hair/human/female-12.vox old mode 100644 new mode 100755 index d64aac0dc6..09d20c57fd --- a/assets/voxygen/voxel/figure/hair/human/female-12.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-12.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8be51f26eea7f5d9742d669bf0c0799f3619c21456e177bb1af45b55b76f16fc -size 3000 +oid sha256:6c5819c66c62b29ea3bb560b4caacfc82f30269f63fa0c6dbaa829479ca711b6 +size 3208 diff --git a/assets/voxygen/voxel/figure/hair/human/female-13.vox b/assets/voxygen/voxel/figure/hair/human/female-13.vox old mode 100644 new mode 100755 index d744df025f..ae93569b9a --- a/assets/voxygen/voxel/figure/hair/human/female-13.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-13.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c266fa848e7f1690c6fc8e0e8004ea8f8db18c43cc4351aec526b4544c56273 -size 2644 +oid sha256:c867c3f3bfee49ea0081df2625dc0e40f4739f2fd8337d428ecb0031dcadaa79 +size 2856 diff --git a/assets/voxygen/voxel/figure/hair/human/female-14.vox b/assets/voxygen/voxel/figure/hair/human/female-14.vox old mode 100644 new mode 100755 index f3d513f8e1..f7f1924eba --- a/assets/voxygen/voxel/figure/hair/human/female-14.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-14.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35d5cf15aa12c8f107ce2ce66f7fba062ce38ed095d34940b4044c2a99b11c5a -size 1948 +oid sha256:9277dbe32588c18ee73d62ea7489aa2ef3e97740e53d3e309c19f06b8a9f5a05 +size 3096 diff --git a/assets/voxygen/voxel/figure/hair/human/female-15.vox b/assets/voxygen/voxel/figure/hair/human/female-15.vox old mode 100644 new mode 100755 index 23848ed252..fd151df33a --- a/assets/voxygen/voxel/figure/hair/human/female-15.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-15.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02fa7137248fc3e27300214ab845dd1fcdeb2707f123cf9d2f3fbc23ad3a954c -size 2388 +oid sha256:0e96c494f8dcb1ee992ee61a156d9df2c6bdaaa82f2a285322937c6bdc3b4495 +size 3292 diff --git a/assets/voxygen/voxel/figure/hair/human/female-16.vox b/assets/voxygen/voxel/figure/hair/human/female-16.vox old mode 100644 new mode 100755 index 76de90d5d8..08ada07edb --- a/assets/voxygen/voxel/figure/hair/human/female-16.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-16.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da6c1d63dd85c570c104b8573b23aedbe7d4d44d7e14b7ab05e1a5c1ff8ad7d8 -size 2356 +oid sha256:3d554a8550ead295b973cbeb9a0f2738b62a0f9c1b2f05ebd76a57abe56bcdac +size 2920 diff --git a/assets/voxygen/voxel/figure/hair/human/female-17.vox b/assets/voxygen/voxel/figure/hair/human/female-17.vox old mode 100644 new mode 100755 index dd1360f8e6..4e77c8d009 --- a/assets/voxygen/voxel/figure/hair/human/female-17.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-17.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b557e1912c92e2163fd060c005f0fd6167a3ca41c616f13af14e36680b58336 -size 2940 +oid sha256:0908b88d0ab1dd0d352c56edf7f29420f966b11fce7a2a82015ccef4b46fc78b +size 3380 diff --git a/assets/voxygen/voxel/figure/hair/human/female-18.vox b/assets/voxygen/voxel/figure/hair/human/female-18.vox old mode 100644 new mode 100755 index 844d2454fa..db2abc7ddc --- a/assets/voxygen/voxel/figure/hair/human/female-18.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-18.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e85e4cfd2cd14dde11bd9d13acb38366036b585a4ba85efaebb3d61a00dedde -size 2752 +oid sha256:0854f482b7f71c9f808b3399d894bad6f2a7fd5096e01b73bd8b145f34f2a434 +size 4268 diff --git a/assets/voxygen/voxel/figure/hair/human/female-19.vox b/assets/voxygen/voxel/figure/hair/human/female-19.vox old mode 100644 new mode 100755 index 48cd890ad4..e40b7ba87b --- a/assets/voxygen/voxel/figure/hair/human/female-19.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-19.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdb7bbafc77b1549167c0b9198357b3ed787b8e8aa59d6b8cf25ef31ff50f371 -size 3716 +oid sha256:486ff7e69b926823eb016e553a6f156228ab1cf95b347ad1616507b3075ede00 +size 3784 diff --git a/assets/voxygen/voxel/figure/hair/human/female-2.vox b/assets/voxygen/voxel/figure/hair/human/female-2.vox old mode 100644 new mode 100755 index 2d8a57854a..0e249c190a --- a/assets/voxygen/voxel/figure/hair/human/female-2.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fad884bcd7ebd56c18df9717af7a40c00a7e3fd8c2a3d8a0f8da2b302d3d982e -size 2632 +oid sha256:f3a77b40c6811639aaf27f9ef9c0ba76bf757317dc07796c7371766d9ff5ba06 +size 2956 diff --git a/assets/voxygen/voxel/figure/hair/human/female-3.vox b/assets/voxygen/voxel/figure/hair/human/female-3.vox old mode 100644 new mode 100755 index 2f8f0d2d2a..72608d0d0c --- a/assets/voxygen/voxel/figure/hair/human/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf159dfe30389760438ce06ed05c66e911f93f86cb0fd9bc7a00ce6a35f7ed54 -size 2404 +oid sha256:f28e058f6f05b2f4a1b83be316aed64c75867f966bec58a8c0a924b9802aeba0 +size 2512 diff --git a/assets/voxygen/voxel/figure/hair/human/female-4.vox b/assets/voxygen/voxel/figure/hair/human/female-4.vox old mode 100644 new mode 100755 index 2d6b695a7c..ef1bc8eead --- a/assets/voxygen/voxel/figure/hair/human/female-4.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95d2a6279a3adf51cf35cb5fde792d8a38538ef0edb5c137138392370ce01f1d -size 2708 +oid sha256:6649f011eff0b2bcab34181e06b06ff68d416bc306f23b8cc31e3a8ba38b0e7e +size 2768 diff --git a/assets/voxygen/voxel/figure/hair/human/female-5.vox b/assets/voxygen/voxel/figure/hair/human/female-5.vox old mode 100644 new mode 100755 index 20d231ded1..e37ab19f23 --- a/assets/voxygen/voxel/figure/hair/human/female-5.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f705e19f9e0d6b2535f22b97424ef29cba6ec319202647fbc05a241ac217bea -size 2312 +oid sha256:7047b3f8d20cd5620fa1fdbb60269d8f3a08925012d337b7a04baf69f06e15ac +size 3052 diff --git a/assets/voxygen/voxel/figure/hair/human/female-6.vox b/assets/voxygen/voxel/figure/hair/human/female-6.vox old mode 100644 new mode 100755 index 22a75844b4..2aacc25e0d --- a/assets/voxygen/voxel/figure/hair/human/female-6.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be1836233f2b17b03e11f0c4644e03d21e5a76648cfef69e0a3546c62156141f -size 2752 +oid sha256:6428e5d924ca71e5a1db373a51ab2249d45048d1e71300d7682bb6c4bfb7aae1 +size 3392 diff --git a/assets/voxygen/voxel/figure/hair/human/female-7.vox b/assets/voxygen/voxel/figure/hair/human/female-7.vox old mode 100644 new mode 100755 index 67aefec497..ab3a84eb8a --- a/assets/voxygen/voxel/figure/hair/human/female-7.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f0b1c1e57101215c679058304ee7047114dcfed6e5a8618c73a8b4f26377e9ac -size 2624 +oid sha256:147d2cecd1c43791e9f228bc5ea371dac30f6b48a51d1ccd05c9ceefd9f876e9 +size 2904 diff --git a/assets/voxygen/voxel/figure/hair/human/female-8.vox b/assets/voxygen/voxel/figure/hair/human/female-8.vox old mode 100644 new mode 100755 index fb06e14504..dcf405804f --- a/assets/voxygen/voxel/figure/hair/human/female-8.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-8.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3613c4c7bfd6018592f19376dd1f676928b6e603e7ee4c03483bc2466a5ec0a7 -size 2984 +oid sha256:12fc1f1b9adc573630693b89caaf318bba4f7c0260f79712d4aaecc05ff7d7a9 +size 3208 diff --git a/assets/voxygen/voxel/figure/hair/human/female-9.vox b/assets/voxygen/voxel/figure/hair/human/female-9.vox index c83dfeea5a..d5b8daaafb 100644 --- a/assets/voxygen/voxel/figure/hair/human/female-9.vox +++ b/assets/voxygen/voxel/figure/hair/human/female-9.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fca6cc008ca885f98a78194ca58210d1f6697faa686d158ca1f0bd8029e1a987 -size 3168 +oid sha256:e23d354971a84989318cf689edcabcf6374d660d6f8a4202ba2e8115ba13aff0 +size 3616 diff --git a/assets/voxygen/voxel/figure/hair/human/male-0.vox b/assets/voxygen/voxel/figure/hair/human/male-0.vox old mode 100644 new mode 100755 index 456fda8663..b9361efa0b --- a/assets/voxygen/voxel/figure/hair/human/male-0.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2024f688a627847d713274522b18d6b8a8159fe89bdad49f53082086e3b79998 -size 1868 +oid sha256:0425dccfc46c7b1a8bd0bddb0e9ef5d5dd3dce4cccef2a1aff96e9bc3752c3ec +size 1872 diff --git a/assets/voxygen/voxel/figure/hair/human/male-1.vox b/assets/voxygen/voxel/figure/hair/human/male-1.vox index 456fda8663..0ea8785c9d 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-1.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2024f688a627847d713274522b18d6b8a8159fe89bdad49f53082086e3b79998 -size 1868 +oid sha256:764af85a91d77d937f736804abb18fe2bd15cafab1f6100bb06143173859071a +size 2160 diff --git a/assets/voxygen/voxel/figure/hair/human/male-10.vox b/assets/voxygen/voxel/figure/hair/human/male-10.vox old mode 100644 new mode 100755 index 526f3e9f41..b495c1673e --- a/assets/voxygen/voxel/figure/hair/human/male-10.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-10.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd6bb8be7c2972ac967afd8029a69b38ef62251c24d23c9444b6bc612334432d -size 1688 +oid sha256:8f4af8ae4af894902394e7d08080c91b1ef21e3cb7a6a703fd9bdd05c0522ba9 +size 1904 diff --git a/assets/voxygen/voxel/figure/hair/human/male-11.vox b/assets/voxygen/voxel/figure/hair/human/male-11.vox old mode 100644 new mode 100755 index a421eefd11..e79679ccfe --- a/assets/voxygen/voxel/figure/hair/human/male-11.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-11.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:22533597f6d8f7a81a1281084fe3a9b4c337a9d14ef71031cabab45474985cf8 -size 2184 +oid sha256:81b2b19e69b3ed89d4a080f6d33b2fa5b5d7f5565824474d70a3e278c6368d55 +size 2424 diff --git a/assets/voxygen/voxel/figure/hair/human/male-12.vox b/assets/voxygen/voxel/figure/hair/human/male-12.vox index ab45703d72..1a7bcd186a 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-12.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-12.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:17a177635a44cce26bbd3200fcfc2a9b01a49b3fc7b5e3b781bb95f719ae63c8 -size 1160 +oid sha256:ee28fa0d6afd36e58b5867fde9da8d570b77a7346d1510d43ce9cd16da9d696e +size 1368 diff --git a/assets/voxygen/voxel/figure/hair/human/male-13.vox b/assets/voxygen/voxel/figure/hair/human/male-13.vox index c7f08044da..752faad423 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-13.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-13.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5df340fbade4cee1999fb1dbf3f60328eaa4315479e087776addf965a1b575a0 -size 2248 +oid sha256:efcb18dbc333c45fda93e8ed38c60d4e17710e7c77bb06da35882369466bdb5e +size 2272 diff --git a/assets/voxygen/voxel/figure/hair/human/male-14.vox b/assets/voxygen/voxel/figure/hair/human/male-14.vox index 4f3dab2ae6..ecf74bd7ec 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-14.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-14.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d17cedccc90f82b10157c26ca774b554057167224b91a94c548b87ee80fc0319 -size 1936 +oid sha256:cad2b857d352922dd8037c8fc8494a2471a6104a6ae0750c5895ea70f42bfde9 +size 2272 diff --git a/assets/voxygen/voxel/figure/hair/human/male-15.vox b/assets/voxygen/voxel/figure/hair/human/male-15.vox index cbff54ebfc..0e8e7aa4b7 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-15.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-15.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95d6ba20b2c395413694f8604e91211245d560d95ef5bf818e73c134fe616a00 -size 1948 +oid sha256:c6186ffea8df4512ba4fd5e143253e9be00517ed0955fffd4bde145d5c157753 +size 2824 diff --git a/assets/voxygen/voxel/figure/hair/human/male-16.vox b/assets/voxygen/voxel/figure/hair/human/male-16.vox index 9661760017..3a079522fe 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-16.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-16.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:028a3a431f30b44c5b2dc95642952deb898b9c1ff0204de1c8ee450e567203df -size 3200 +oid sha256:77897532ed18965bd87828858bf741b91ba3bae0244e201b09ddd3fb907c5920 +size 4288 diff --git a/assets/voxygen/voxel/figure/hair/human/male-17.vox b/assets/voxygen/voxel/figure/hair/human/male-17.vox old mode 100644 new mode 100755 index b449189faf..8f42b0e406 --- a/assets/voxygen/voxel/figure/hair/human/male-17.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-17.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bd16b5c78c667715b5d1ee4fe0776af5b329c53cc9f4432cfc9261ae8e8e0c3c -size 2104 +oid sha256:a1e80e502e677abf8abf95179f8b4956df00b0552551cd84ace7794c191c60ee +size 2456 diff --git a/assets/voxygen/voxel/figure/hair/human/male-18.vox b/assets/voxygen/voxel/figure/hair/human/male-18.vox old mode 100644 new mode 100755 index d503e69072..e4e08bde36 --- a/assets/voxygen/voxel/figure/hair/human/male-18.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-18.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc75510d200c794c7b2729002a16079c0337298176fcbd8ebf6010cc274f95be -size 2208 +oid sha256:3080598f135d885d408bca14935e36c8f9469e9534cdd608a3a60cb802cd3ef2 +size 2464 diff --git a/assets/voxygen/voxel/figure/hair/human/male-19.vox b/assets/voxygen/voxel/figure/hair/human/male-19.vox index 22725d666e..3987f04441 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-19.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-19.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:37febb8aa41738ff001853e76afd683d1346aa595986cdcf2b762fb7b5d39a9c -size 1936 +oid sha256:a21e1c388bb0ce2cf8247ec3dffaa701f72361d6fe3ac8d767fbc2ed726a8ded +size 2824 diff --git a/assets/voxygen/voxel/figure/hair/human/male-2.vox b/assets/voxygen/voxel/figure/hair/human/male-2.vox old mode 100644 new mode 100755 index 017b950f0f..9348b1f11e --- a/assets/voxygen/voxel/figure/hair/human/male-2.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:70ca7e4970b59b537f2e01ff0b8ca353edbf6eecfe09cae977687491fb3f618b -size 2264 +oid sha256:db3838171b47da49c9d7cfddcdbbc53d1576b791cecd8d7dcef7d47c7de14985 +size 2272 diff --git a/assets/voxygen/voxel/figure/hair/human/male-20.vox b/assets/voxygen/voxel/figure/hair/human/male-20.vox old mode 100644 new mode 100755 index 1da5dee387..78bd9b65bf --- a/assets/voxygen/voxel/figure/hair/human/male-20.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-20.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef37ee588aa533263b94c0ccf0f81d303769530c4f606af4008928cf5b7331aa -size 2548 +oid sha256:0e76fad0cd79f349ebed0d6b2c57ccdc7bc2600279d52a5e2038e16efd0e79e7 +size 2620 diff --git a/assets/voxygen/voxel/figure/hair/human/male-3.vox b/assets/voxygen/voxel/figure/hair/human/male-3.vox old mode 100644 new mode 100755 index fb06e14504..6b28462da0 --- a/assets/voxygen/voxel/figure/hair/human/male-3.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3613c4c7bfd6018592f19376dd1f676928b6e603e7ee4c03483bc2466a5ec0a7 -size 2984 +oid sha256:54a1d0c1978063dd402b7b7e848044ff1db78e946dce730d6d91a59a86a31759 +size 2976 diff --git a/assets/voxygen/voxel/figure/hair/human/male-4.vox b/assets/voxygen/voxel/figure/hair/human/male-4.vox old mode 100644 new mode 100755 index 2aca26fc08..58f3b345e5 --- a/assets/voxygen/voxel/figure/hair/human/male-4.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f32db1626a76cad31ac5f6fd2434ba72dcae52951db6cb82bda903e849d82c06 +oid sha256:3ba8ba35a7901cd4d22c15f514b2d9e2b6edaf185d28515f5585dd39d781d694 size 1568 diff --git a/assets/voxygen/voxel/figure/hair/human/male-5.vox b/assets/voxygen/voxel/figure/hair/human/male-5.vox old mode 100644 new mode 100755 index 648933841f..3268ca8a86 --- a/assets/voxygen/voxel/figure/hair/human/male-5.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:65875c093e8b3a74b519f914d4e2f309f1e29dda003ae54c10eee21f5f1d1b7b -size 2008 +oid sha256:6b48a8a58a2a36b7042252d6adbc4297152c5db07d90f543a3c70fd9b7b5615c +size 2040 diff --git a/assets/voxygen/voxel/figure/hair/human/male-6.vox b/assets/voxygen/voxel/figure/hair/human/male-6.vox index 72297429b2..5671fc81f6 100644 --- a/assets/voxygen/voxel/figure/hair/human/male-6.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12632fd6ca5195b45aa9c4239adbf467a4db0d558cfd9b5120ee5d70d90c8da8 -size 1884 +oid sha256:574252e4f27740556e06d0be4255af890a51e9d95f2b606408c385a0e2eaf0dd +size 2504 diff --git a/assets/voxygen/voxel/figure/hair/human/male-7.vox b/assets/voxygen/voxel/figure/hair/human/male-7.vox old mode 100644 new mode 100755 index f628b67325..77bc569620 --- a/assets/voxygen/voxel/figure/hair/human/male-7.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-7.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5bb469b98425dd33c26d9be23f13105b1fb14db595989df049e537d2ced6376c -size 1940 +oid sha256:8d1806b1328a8fcfa2466cd8ec9899e26c3804e9c9e79963b029eb8678ba1a7f +size 2372 diff --git a/assets/voxygen/voxel/figure/hair/human/male-8.vox b/assets/voxygen/voxel/figure/hair/human/male-8.vox old mode 100644 new mode 100755 index ce47363876..57938b2e01 --- a/assets/voxygen/voxel/figure/hair/human/male-8.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-8.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c71bbdda80e344851d8ac8fc6287ff59160b24eefcff63d4b04309ac868cc3d -size 2064 +oid sha256:a21df7b878d488974d8d6b304574ee8995255bc8cb003025164a3b63baea7c2d +size 2088 diff --git a/assets/voxygen/voxel/figure/hair/human/male-9.vox b/assets/voxygen/voxel/figure/hair/human/male-9.vox old mode 100644 new mode 100755 index 7004e8d0c2..e14f3d3f42 --- a/assets/voxygen/voxel/figure/hair/human/male-9.vox +++ b/assets/voxygen/voxel/figure/hair/human/male-9.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ceb3f931065997603972c458252fc7790cc6bf9c6cb2cebff572c5aedc0c5c2 -size 1736 +oid sha256:dba4d99e8c7d35417c4375093321b1812c41982dd6e71d30829b7b3a3ae319a9 +size 2052 diff --git a/assets/voxygen/voxel/figure/hair/orc/bald.vox b/assets/voxygen/voxel/figure/hair/orc/bald.vox new file mode 100755 index 0000000000..46b1d36567 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/bald.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15f1cc8bf98a04e90d729c6904880727ac429428705897fbae9c97f407616368 +size 1096 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-0.vox b/assets/voxygen/voxel/figure/hair/orc/female-0.vox old mode 100644 new mode 100755 index 8a0b886359..64e0efe7a9 --- a/assets/voxygen/voxel/figure/hair/orc/female-0.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e8513b0166f1b666b3f30387b698a36cdc4f0e8f1b40ffe08e66bb1f8a067ba -size 1840 +oid sha256:6b694a63fa2dcc6f633d3ca8bab535f05ffa87138a413a3305fa33a4e0832e30 +size 2908 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-1.vox b/assets/voxygen/voxel/figure/hair/orc/female-1.vox old mode 100644 new mode 100755 index 1d8151a08e..e9ed7449fa --- a/assets/voxygen/voxel/figure/hair/orc/female-1.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77c1d8c6dfa1fa87c7cc55fa09770805d13bde44e20504eb0d0eb0fadd607964 -size 1464 +oid sha256:fc4f78026020d13eaf47962aa9e22e05493df2fc9bcaa6d98a159301a0eccf50 +size 2956 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-10.vox b/assets/voxygen/voxel/figure/hair/orc/female-10.vox new file mode 100755 index 0000000000..9a199d6b31 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:542a8124ca69e00992eaf04729c3fe56269202542b1c34229f36ad649824d870 +size 3056 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-11.vox b/assets/voxygen/voxel/figure/hair/orc/female-11.vox new file mode 100755 index 0000000000..d97498c368 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f1bbc2fd1ed6332e75dae6a87291523eecb023f0bf21129bde69d74d20bc796 +size 3308 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-12.vox b/assets/voxygen/voxel/figure/hair/orc/female-12.vox new file mode 100644 index 0000000000..deb6b48cd6 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d47cecc749e5c59059da6a45119e441609e9785658a0eb64b344406db84e3889 +size 3312 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-13.vox b/assets/voxygen/voxel/figure/hair/orc/female-13.vox new file mode 100755 index 0000000000..131daea4a2 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51631576d71d4129f6c0be2d9e84cbc875eeab5c28e511ed03eddaab3724fb7b +size 2744 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-14.vox b/assets/voxygen/voxel/figure/hair/orc/female-14.vox new file mode 100755 index 0000000000..897e5e81cb --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-14.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0aee5228455d6048ff29a0f3468b467e11fb6d8a6e1dce74f800e68ede98e016 +size 2752 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-2.vox b/assets/voxygen/voxel/figure/hair/orc/female-2.vox old mode 100644 new mode 100755 index f345a4f5ec..c200e67875 --- a/assets/voxygen/voxel/figure/hair/orc/female-2.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b827cbf9db4d3d32ff41ac5d8b59e167075f17f645637de3b18a19464927bbc9 -size 2008 +oid sha256:1d9959917b760dda7c6809236391c328ef5fdc9b2d3c87892554ce5357c39302 +size 2868 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-3.vox b/assets/voxygen/voxel/figure/hair/orc/female-3.vox old mode 100644 new mode 100755 index 4c6003d01e..548c7e91f1 --- a/assets/voxygen/voxel/figure/hair/orc/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a75131b529cffd94b2e8c805c12bbf1bd3192a869dae0aef2cdafa94375a79d -size 3136 +oid sha256:23da3125c1269e9ae3d2a5d4db9d9ac599d8da360fe4583835f24d3f77e408ad +size 3032 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-4.vox b/assets/voxygen/voxel/figure/hair/orc/female-4.vox old mode 100644 new mode 100755 index e4d645dbe3..c846bde3a2 --- a/assets/voxygen/voxel/figure/hair/orc/female-4.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a44e8d31745129f38735413e272e40add8962d1255abd0d0ca73b6f046b8401 -size 1576 +oid sha256:31baedde7da9dc6cb72d44924638007011bc0c7fca9b320fa2cdefc42f50fdd1 +size 3040 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-5.vox b/assets/voxygen/voxel/figure/hair/orc/female-5.vox old mode 100644 new mode 100755 index c3f9b229d6..257a8912e7 --- a/assets/voxygen/voxel/figure/hair/orc/female-5.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b22d1657dcbf09109168c8ac565aa049a2cc00b529c39840fa7f452e1e54ba91 -size 3348 +oid sha256:73a7ea514f10f1ca85930bf46c44b02759c10fe1bc78bc04322d385565f9de92 +size 2828 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-6.vox b/assets/voxygen/voxel/figure/hair/orc/female-6.vox old mode 100644 new mode 100755 index 362af34643..561018140d --- a/assets/voxygen/voxel/figure/hair/orc/female-6.vox +++ b/assets/voxygen/voxel/figure/hair/orc/female-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e35d4a7a3f12e59cc16cbfa36c1f07ee34beaae66ed3a3ef22408a16b0aebc97 -size 2756 +oid sha256:8fed85e57d20f3a71fccab78b8594500ed60c485f432ee273ddb438ccb46bc38 +size 2988 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-7.vox b/assets/voxygen/voxel/figure/hair/orc/female-7.vox new file mode 100755 index 0000000000..46ce56d87a --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ff0948981fc181d2a325f98bab38aa84d3bd393e72d8ba2791680aa3e25d70a +size 2800 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-8.vox b/assets/voxygen/voxel/figure/hair/orc/female-8.vox new file mode 100755 index 0000000000..30c0b90e22 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40a93142abfa2036a72ca20dbb27c3240e022849a24b00ead72473bf00a53dfe +size 3520 diff --git a/assets/voxygen/voxel/figure/hair/orc/female-9.vox b/assets/voxygen/voxel/figure/hair/orc/female-9.vox new file mode 100755 index 0000000000..cfb6aafc10 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/female-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08320db07cd6afd3b049a6e1d0664f027a9afd223b8ab9da0882d51c1d4c55b8 +size 2624 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-0.vox b/assets/voxygen/voxel/figure/hair/orc/male-0.vox index b2f875cbae..57e0d5ddb2 100644 --- a/assets/voxygen/voxel/figure/hair/orc/male-0.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2e1d5544f54b8ca06619965bc3ef8142a8c140024a2c38bc6ccf6a61d2d1dc5c -size 1584 +oid sha256:b86fec81e9ceffdc831e6fae198c5b53cf4a749a1790d2c48db495bcd7728282 +size 1676 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-1.vox b/assets/voxygen/voxel/figure/hair/orc/male-1.vox old mode 100644 new mode 100755 index 3f56d06ddf..8995daeb1d --- a/assets/voxygen/voxel/figure/hair/orc/male-1.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-1.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecf277433dd8023f2e8d48a6d792597a37d0ec556122c55d2747a828fe42580d -size 2032 +oid sha256:de65c90e426184ab5e52b1a44c759efddf19826f3a3a8c5a528daff7c9b7abd4 +size 2144 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-10.vox b/assets/voxygen/voxel/figure/hair/orc/male-10.vox new file mode 100755 index 0000000000..d1ffaf84f4 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-10.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86525b84a44e6cc3d17d6400d6fea17213782214c7f89c5cc093eeca3edb083f +size 2480 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-11.vox b/assets/voxygen/voxel/figure/hair/orc/male-11.vox new file mode 100644 index 0000000000..a57051c084 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-11.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8bc7497ff9df6eeb642ace452f7bfa7c7142d60bf2eb5f3a542191b7eaaa4f8 +size 2116 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-12.vox b/assets/voxygen/voxel/figure/hair/orc/male-12.vox new file mode 100755 index 0000000000..b118958f68 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-12.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eae1265d130b134071cf27140ce47c210d4e1c1e75593ab5130b8c5b4ec6e5cc +size 2132 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-13.vox b/assets/voxygen/voxel/figure/hair/orc/male-13.vox new file mode 100755 index 0000000000..74cfa39bd3 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-13.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b11dcac430020aed48e1b04555ac9158871177b53aa625a23be384e32665a562 +size 1760 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-2.vox b/assets/voxygen/voxel/figure/hair/orc/male-2.vox old mode 100644 new mode 100755 index 82a8db4dab..7beab44d9c --- a/assets/voxygen/voxel/figure/hair/orc/male-2.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-2.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f492d4568ebcffb8ddc6e9dc2ad4d60a2fb26da07dedc074ab5c5a8ad1b6d18 -size 1876 +oid sha256:ce0ff1fea444b9226d08504fc482c0bb59509a4490343e7635b0dc10de42e778 +size 1944 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-3.vox b/assets/voxygen/voxel/figure/hair/orc/male-3.vox old mode 100644 new mode 100755 index b01b5a0035..3b61136908 --- a/assets/voxygen/voxel/figure/hair/orc/male-3.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:598472d24ee293ec70eacf044b858ade57bc463ea0686bb3e624e655427f76b6 +oid sha256:14e0937e413b691b44957f459004107f02b5b65bea8d74a088bdcbfbd610d99a size 2004 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-4.vox b/assets/voxygen/voxel/figure/hair/orc/male-4.vox old mode 100644 new mode 100755 index eeb3a067ea..c140f57f9f --- a/assets/voxygen/voxel/figure/hair/orc/male-4.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-4.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3aa93b8d72347f767e7ac426031588cb8dcb2ac1783a01fef229586e55b23810 -size 1560 +oid sha256:07f3b5d5057e79b9b4c2ce39252815929c9f8444d8e745e3241d6ca3fceb0014 +size 1596 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-5.vox b/assets/voxygen/voxel/figure/hair/orc/male-5.vox old mode 100644 new mode 100755 index cbd2aa387d..a145b97dd7 --- a/assets/voxygen/voxel/figure/hair/orc/male-5.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-5.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fc434af16b04768ae07a8052d1106b847dfca0a13eba0f0f61aaf8a3ae245108 -size 1352 +oid sha256:2b2b7239d42b55ba17ce0c02dee78619190efd983aa9e64f542dbd73f4a654f6 +size 1456 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-6.vox b/assets/voxygen/voxel/figure/hair/orc/male-6.vox old mode 100644 new mode 100755 index 9005904b48..0ca34a3ed5 --- a/assets/voxygen/voxel/figure/hair/orc/male-6.vox +++ b/assets/voxygen/voxel/figure/hair/orc/male-6.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9e3b4ae37c06dc30927dca14111b22ab8331c21cb36f4802a3ab1f180dfa990 -size 2004 +oid sha256:2f8f4ed7bf72417055754eee8045a4329cc26a978eeed71b27c5908ca560ceef +size 2056 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-7.vox b/assets/voxygen/voxel/figure/hair/orc/male-7.vox new file mode 100755 index 0000000000..5a37fe2d24 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41a218fd1cf23dda4b519e75ce058c5331b981cdcb47d7e307ece5c8314646a1 +size 2048 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-8.vox b/assets/voxygen/voxel/figure/hair/orc/male-8.vox new file mode 100755 index 0000000000..6c72e9df05 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a01949649af5ace196c17ee6cc7a682475ae76a5b30f08a69eabf18b700a881 +size 1512 diff --git a/assets/voxygen/voxel/figure/hair/orc/male-9.vox b/assets/voxygen/voxel/figure/hair/orc/male-9.vox new file mode 100755 index 0000000000..39208642a7 --- /dev/null +++ b/assets/voxygen/voxel/figure/hair/orc/male-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3012d916a08af5fc273df4d59296f79e29e88c1ac4357f904d64d3443296c61 +size 1796 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-0.vox b/assets/voxygen/voxel/figure/hair/undead/female-0.vox deleted file mode 100644 index 675c1bc148..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a0721044563cabaa77e80acacc7d6e51b1fadcdf058c7fe10ebdc1348839f7c -size 2012 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-1.vox b/assets/voxygen/voxel/figure/hair/undead/female-1.vox deleted file mode 100644 index 144b5d96f6..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acd22b0a08cf9957c6ccd753bb42ea28416f03cb94a7992cd627021c1a701d03 -size 3016 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-2.vox b/assets/voxygen/voxel/figure/hair/undead/female-2.vox deleted file mode 100644 index 21e4a2ff84..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9cbd8d99641825f711f10e79107f5b1a81a232e957243e470e65b334a37a9c2f -size 1880 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-3.vox b/assets/voxygen/voxel/figure/hair/undead/female-3.vox deleted file mode 100644 index f3ddccc5f1..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0c5c991cc7fb399e2a33293aa3aefaf659aa45027701c1e05bd5bd7a6a1d70ff -size 1892 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-4.vox b/assets/voxygen/voxel/figure/hair/undead/female-4.vox deleted file mode 100644 index 4412f1da64..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-4.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32125220a5c1ca1cc5b8166b7eae18cf922d85efe74ad2185c2ab254f6392067 -size 2004 diff --git a/assets/voxygen/voxel/figure/hair/undead/female-5.vox b/assets/voxygen/voxel/figure/hair/undead/female-5.vox deleted file mode 100644 index d895a1375a..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/female-5.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72fd2eacdce6e82d0977ebb721cddccd61ae55fab6ee7b189450fa33a34570ea -size 2272 diff --git a/assets/voxygen/voxel/figure/hair/undead/male-0.vox b/assets/voxygen/voxel/figure/hair/undead/male-0.vox deleted file mode 100644 index 300ca183d3..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/male-0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6cd0fcd4ca772ff15467fdf31e09f57ede91d91017af5ea2d1470182af24b211 -size 1960 diff --git a/assets/voxygen/voxel/figure/hair/undead/male-1.vox b/assets/voxygen/voxel/figure/hair/undead/male-1.vox deleted file mode 100644 index 5edc433b8c..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/male-1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d13b6572d9a830d3fc02f4254ef368b340d9d85c5d307875a993a0eecd29572d -size 1412 diff --git a/assets/voxygen/voxel/figure/hair/undead/male-2.vox b/assets/voxygen/voxel/figure/hair/undead/male-2.vox deleted file mode 100644 index d9c46b6239..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/male-2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:368d9e1705208599ffc53fc9f8ef4fd803408b495e24ea68c6545ebe7faa91d8 -size 1416 diff --git a/assets/voxygen/voxel/figure/hair/undead/male-3.vox b/assets/voxygen/voxel/figure/hair/undead/male-3.vox deleted file mode 100644 index 3691658dbf..0000000000 --- a/assets/voxygen/voxel/figure/hair/undead/male-3.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f11bf21b0dbef0e79a60f5b3f8c63e03daa2efa1a2c7d3ae09a499ce208b45c2 -size 1864 diff --git a/assets/voxygen/voxel/figure/head/danari/female.vox b/assets/voxygen/voxel/figure/head/danari/female.vox old mode 100644 new mode 100755 index 8868d56f30..c18c17edab --- a/assets/voxygen/voxel/figure/head/danari/female.vox +++ b/assets/voxygen/voxel/figure/head/danari/female.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b10d54c8bef697cb5d34fe313d1e744a47c4588de1c281dde5b629ed88b045f -size 3248 +oid sha256:0697b55219900cfa60fcaa1dbd160ba0fd8f9fff6a205c6f10dbc538f7a54abf +size 3224 diff --git a/assets/voxygen/voxel/figure/head/danari/male.vox b/assets/voxygen/voxel/figure/head/danari/male.vox old mode 100644 new mode 100755 index 5e94ff4429..c9cb59d28f --- a/assets/voxygen/voxel/figure/head/danari/male.vox +++ b/assets/voxygen/voxel/figure/head/danari/male.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:def17019457774071beae4ecffe98ee47232fd8885fb419bd04b0229f31a8620 -size 3312 +oid sha256:5f1fade33458d0e2d05aa2d5299c64f1225ee24aa3d742366e567d28938917b8 +size 3320 diff --git a/assets/voxygen/voxel/figure/head/draugr/female.vox b/assets/voxygen/voxel/figure/head/draugr/female.vox new file mode 100755 index 0000000000..54ba72cecb --- /dev/null +++ b/assets/voxygen/voxel/figure/head/draugr/female.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c45f6a14bbfd38e91a4a347c84a33c764301469ee9abd36b78cb63e2512833d +size 3312 diff --git a/assets/voxygen/voxel/figure/head/draugr/male.vox b/assets/voxygen/voxel/figure/head/draugr/male.vox new file mode 100644 index 0000000000..f9b3035307 --- /dev/null +++ b/assets/voxygen/voxel/figure/head/draugr/male.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53f98e80b56f8a622579445319ce9197d2f2fc3835c8a08c32a410c2ba2aadfe +size 3144 diff --git a/assets/voxygen/voxel/figure/head/orc/female.vox b/assets/voxygen/voxel/figure/head/orc/female.vox index 309f3bfe66..70d5f651fc 100644 --- a/assets/voxygen/voxel/figure/head/orc/female.vox +++ b/assets/voxygen/voxel/figure/head/orc/female.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5ed0b6d1c545b7a24a92f0cb5a481736c50263f43f93276bb4813452d7223e2 -size 3216 +oid sha256:7471a3eae3b57552abb5df5280a44c68438b4b832a53202ae3fc2e63673b6272 +size 3280 diff --git a/assets/voxygen/voxel/figure/head/undead/female.vox b/assets/voxygen/voxel/figure/head/undead/female.vox deleted file mode 100644 index 9dc1d84f33..0000000000 --- a/assets/voxygen/voxel/figure/head/undead/female.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f7e459f4f4f5acc312d533650b6d207ab74a4a90ce6ab9c92f0c24845a81691 -size 3300 diff --git a/assets/voxygen/voxel/figure/head/undead/male.vox b/assets/voxygen/voxel/figure/head/undead/male.vox deleted file mode 100644 index e28b12e47d..0000000000 --- a/assets/voxygen/voxel/figure/head/undead/male.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1cb58732a4086bf5f48f727d800de2bed3230b87c975f38dbc30044715fb3eb -size 3016 diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron index df7ec71da6..52dbf217f9 100644 --- a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -20,7 +20,7 @@ vox_spec: ("armor.misc.head.exclamation", (-11.0, -12.0, 18.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.exclamation"): ( + (Draugr, Male, "common.items.armor.misc.head.exclamation"): ( vox_spec: ("armor.misc.head.exclamation", (-14.0, -11.0, 18.0)), color: None ),//fix @@ -61,11 +61,11 @@ vox_spec: ("armor.witch.hat", (-2.0, -5.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.witch.hat"): ( + (Draugr, Male, "common.items.armor.witch.hat"): ( vox_spec: ("armor.witch.hat", (-6.0, -5.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.witch.hat"): ( + (Draugr, Female, "common.items.armor.witch.hat"): ( vox_spec: ("armor.witch.hat", (-6.0, -5.0, 6.0)), color: None ), @@ -110,11 +110,11 @@ vox_spec: ("armor.misc.head.hog_hood", (-2.0, -5, -6)), color: None ), - (Undead, Male, "common.items.armor.misc.head.hog_hood"): ( + (Draugr, Male, "common.items.armor.misc.head.hog_hood"): ( vox_spec: ("armor.misc.head.hog_hood", (-6.0, -5.0, -7.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.hog_hood"): ( + (Draugr, Female, "common.items.armor.misc.head.hog_hood"): ( vox_spec: ("armor.misc.head.hog_hood", (-6.0, -5.0, -8.0)), color: None ), @@ -151,11 +151,11 @@ vox_spec: ("armor.misc.head.bamboo_twig", (-1.0, 3.0, -4.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.bamboo_twig"): ( + (Draugr, Male, "common.items.armor.misc.head.bamboo_twig"): ( vox_spec: ("armor.misc.head.bamboo_twig", (-3.0, 1.0, -2.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.bamboo_twig"): ( + (Draugr, Female, "common.items.armor.misc.head.bamboo_twig"): ( vox_spec: ("armor.misc.head.bamboo_twig", (-3.0, 1.0, -3.0)), color: None ), @@ -208,11 +208,11 @@ vox_spec: ("armor.misc.head.wanderers_hat", (-2, -6.0, 6.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.wanderers_hat"): ( + (Draugr, Male, "common.items.armor.misc.head.wanderers_hat"): ( vox_spec: ("armor.misc.head.wanderers_hat", (-6, -6.0, 5.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.wanderers_hat"): ( + (Draugr, Female, "common.items.armor.misc.head.wanderers_hat"): ( vox_spec: ("armor.misc.head.wanderers_hat", (-6, -6.0, 5.0)), color: None ), @@ -258,11 +258,11 @@ vox_spec: ("armor.pirate.hat", (-2.0, -4.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.pirate.hat"): ( + (Draugr, Male, "common.items.armor.pirate.hat"): ( vox_spec: ("armor.pirate.hat", (-6.0, -4.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.pirate.hat"): ( + (Draugr, Female, "common.items.armor.pirate.hat"): ( vox_spec: ("armor.pirate.hat", (-6.0, -4.0, 6.0)), color: None ), @@ -307,11 +307,11 @@ vox_spec: ("armor.blacksmith.hat", (-2.0, 1.0, -1.0)), color: None ), - (Undead, Male, "common.items.armor.blacksmith.hat"): ( + (Draugr, Male, "common.items.armor.blacksmith.hat"): ( vox_spec: ("armor.blacksmith.hat", (-6.0, 0.0, -1.0)), color: None ), - (Undead, Female, "common.items.armor.blacksmith.hat"): ( + (Draugr, Female, "common.items.armor.blacksmith.hat"): ( vox_spec: ("armor.blacksmith.hat", (-6.0, 0.0, -2.0)), color: None ), @@ -356,11 +356,11 @@ vox_spec: ("armor.alchemist.hat", (-2.0, 1.0, 3.0)), color: None ), - (Undead, Male, "common.items.armor.alchemist.hat"): ( + (Draugr, Male, "common.items.armor.alchemist.hat"): ( vox_spec: ("armor.alchemist.hat", (-6.0, 0.0, 3.0)), color: None ), - (Undead, Female, "common.items.armor.alchemist.hat"): ( + (Draugr, Female, "common.items.armor.alchemist.hat"): ( vox_spec: ("armor.alchemist.hat", (-6.0, 0.0, 2.0)), color: None ), @@ -405,11 +405,11 @@ vox_spec: ("armor.chef.hat", (-2.0, -5.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.chef.hat"): ( + (Draugr, Male, "common.items.armor.chef.hat"): ( vox_spec: ("armor.chef.hat", (-6.0, -5.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.chef.hat"): ( + (Draugr, Female, "common.items.armor.chef.hat"): ( vox_spec: ("armor.chef.hat", (-6.0, -5.0, 6.0)), color: None ), @@ -454,11 +454,11 @@ vox_spec: ("armor.misc.head.straw", (-2.0, -5.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.straw"): ( + (Draugr, Male, "common.items.armor.misc.head.straw"): ( vox_spec: ("armor.misc.head.straw", (-6.0, -5.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.straw"): ( + (Draugr, Female, "common.items.armor.misc.head.straw"): ( vox_spec: ("armor.misc.head.straw", (-6.0, -5.0, 6.0)), color: None ), @@ -503,11 +503,11 @@ vox_spec: ("armor.misc.head.crown", (-2.0, -5.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.crown"): ( + (Draugr, Male, "common.items.armor.misc.head.crown"): ( vox_spec: ("armor.misc.head.crown", (-6.0, -5.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.crown"): ( + (Draugr, Female, "common.items.armor.misc.head.crown"): ( vox_spec: ("armor.misc.head.crown", (-6.0, -5.0, 6.0)), color: None ), @@ -552,11 +552,11 @@ vox_spec: ("armor.misc.head.mitre", (-2.0, -5.0, 7.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.mitre"): ( + (Draugr, Male, "common.items.armor.misc.head.mitre"): ( vox_spec: ("armor.misc.head.mitre", (-6.0, -5.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.mitre"): ( + (Draugr, Female, "common.items.armor.misc.head.mitre"): ( vox_spec: ("armor.misc.head.mitre", (-6.0, -5.0, 6.0)), color: None ), @@ -601,12 +601,12 @@ vox_spec: ("armor.misc.head.headband.orc_f", (3.0, 1.0, 5.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.headband"): ( - vox_spec: ("armor.misc.head.headband.undead_m", (0.0, 2.0, 7.0)), + (Draugr, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.draugr_m", (0.0, 2.0, 7.0)), color: Some((44, 74, 109)) ), - (Undead, Female, "common.items.armor.misc.head.headband"): ( - vox_spec: ("armor.misc.head.headband.undead_f", (0.0, 2.0, 6.0)), + (Draugr, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.draugr_f", (0.0, 2.0, 6.0)), color: None ), (Elf, Male, "common.items.armor.misc.head.headband"): ( @@ -650,11 +650,11 @@ vox_spec: ("armor.misc.head.helmet", (-3.0, -3.0, -1.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.helmet"): ( + (Draugr, Female, "common.items.armor.misc.head.helmet"): ( vox_spec: ("armor.misc.head.helmet", (-6.0, -5.0, -1.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.helmet"): ( + (Draugr, Male, "common.items.armor.misc.head.helmet"): ( vox_spec: ("armor.misc.head.helmet", (-6.0, -5.0, 1.0)), color: None ), @@ -691,11 +691,11 @@ vox_spec: ("armor.misc.head.bandana.red", (-4.0, -2.0, -10.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.bandana.red"): ( + (Draugr, Male, "common.items.armor.misc.head.bandana.red"): ( vox_spec: ("armor.misc.head.bandana.red", (-6.0, -2.0, -8.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.bandana.red"): ( + (Draugr, Female, "common.items.armor.misc.head.bandana.red"): ( vox_spec: ("armor.misc.head.bandana.red", (-6.0, -2.0, -9.0)), color: None ), @@ -740,11 +740,11 @@ vox_spec: ("armor.misc.head.bandana.thief", (-4.0, -2.0, -10.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.bandana.thief"): ( + (Draugr, Male, "common.items.armor.misc.head.bandana.thief"): ( vox_spec: ("armor.misc.head.bandana.thief", (-6.0, -2.0, -8.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.bandana.thief"): ( + (Draugr, Female, "common.items.armor.misc.head.bandana.thief"): ( vox_spec: ("armor.misc.head.bandana.thief", (-6.0, -2.0, -9.0)), color: None ), @@ -789,11 +789,11 @@ vox_spec: ("armor.cultist.bandana", (-4.0, 0.0, -10.0)), color: None ), - (Undead, Male, "common.items.armor.cultist.bandana"): ( + (Draugr, Male, "common.items.armor.cultist.bandana"): ( vox_spec: ("armor.cultist.bandana", (-6.0, -1.0, -8.0)), color: None ), - (Undead, Female, "common.items.armor.cultist.bandana"): ( + (Draugr, Female, "common.items.armor.cultist.bandana"): ( vox_spec: ("armor.cultist.bandana", (-6.0, -1.0, -9.0)), color: None ), @@ -846,11 +846,11 @@ vox_spec: ("armor.misc.head.hood", (-2.0, -6.0, -2.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.hood"): ( + (Draugr, Male, "common.items.armor.misc.head.hood"): ( vox_spec: ("armor.misc.head.hood", (-6.0, -6.0, -2.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.hood"): ( + (Draugr, Female, "common.items.armor.misc.head.hood"): ( vox_spec: ("armor.misc.head.hood", (-6.0, -6.0, -3.0)), color: None ), @@ -895,11 +895,11 @@ vox_spec: ("armor.misc.head.hood_dark", (-2.0, -7.0, -3.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.hood_dark"): ( + (Draugr, Male, "common.items.armor.misc.head.hood_dark"): ( vox_spec: ("armor.misc.head.hood_dark", (-6.0, -7.0, -3.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.hood_dark"): ( + (Draugr, Female, "common.items.armor.misc.head.hood_dark"): ( vox_spec: ("armor.misc.head.hood_dark", (-6.0, -7.0, -4.0)), color: None ), @@ -944,11 +944,11 @@ vox_spec: ("armor.misc.head.spikeguard", (-2.0, -4.0, 9.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.spikeguard"): ( + (Draugr, Male, "common.items.armor.misc.head.spikeguard"): ( vox_spec: ("armor.misc.head.spikeguard", (-6.0, -4.0, 7.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.spikeguard"): ( + (Draugr, Female, "common.items.armor.misc.head.spikeguard"): ( vox_spec: ("armor.misc.head.spikeguard", (-6.0, -4.0, 7.0)), color: None ), @@ -993,11 +993,11 @@ vox_spec: ("armor.merchant.turban", (-2.0, -7.0, -4.0)), color: None ), - (Undead, Male, "common.items.armor.merchant.turban"): ( + (Draugr, Male, "common.items.armor.merchant.turban"): ( vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -4.0)), color: None ), - (Undead, Female, "common.items.armor.merchant.turban"): ( + (Draugr, Female, "common.items.armor.merchant.turban"): ( vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -5.0)), color: None ), @@ -1042,11 +1042,11 @@ vox_spec: ("armor.misc.head.winged_coronet", (-2.0, -3.0, 0.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.winged_coronet"): ( + (Draugr, Male, "common.items.armor.misc.head.winged_coronet"): ( vox_spec: ("armor.misc.head.winged_coronet", (-6.0, -5.0, 0.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.winged_coronet"): ( + (Draugr, Female, "common.items.armor.misc.head.winged_coronet"): ( vox_spec: ("armor.misc.head.winged_coronet", (-6.0, -5.0, -1.0)), color: None ), @@ -1091,11 +1091,11 @@ vox_spec: ("armor.misc.head.boreal_warhelm", (-2.0, -6.0, -2.0)), color: None ), - (Undead, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + (Draugr, Male, "common.items.armor.misc.head.boreal_warhelm"): ( vox_spec: ("armor.misc.head.boreal_warhelm", (-6.0, -6.0, -3.0)), color: None ), - (Undead, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + (Draugr, Female, "common.items.armor.misc.head.boreal_warhelm"): ( vox_spec: ("armor.misc.head.boreal_warhelm", (-6.0, -6.0, -3.0)), color: None ), @@ -1140,11 +1140,11 @@ vox_spec: ("armor.misc.head.woolly_wintercap", (-2.0, -7.0, -2.0)), color: None ), - (Undead, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + (Draugr, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( vox_spec: ("armor.misc.head.woolly_wintercap", (-6.0, -7.0, -3.0)), color: None ), - (Undead, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + (Draugr, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( vox_spec: ("armor.misc.head.woolly_wintercap", (-6.0, -7.0, -4.0)), color: None ), diff --git a/assets/voxygen/voxel/humanoid_color_manifest.ron b/assets/voxygen/voxel/humanoid_color_manifest.ron index 0ca7742fcb..79d0351f32 100644 --- a/assets/voxygen/voxel/humanoid_color_manifest.ron +++ b/assets/voxygen/voxel/humanoid_color_manifest.ron @@ -7,279 +7,434 @@ // longer be something you need to worry about. hair_colors: ( Danari: [ - (198, 169, 113), // Philosopher's Grey - //(245, 232, 175), // Cream Blonde - //(228, 208, 147), // Gold Blonde - //(228, 223, 141), // Platinum Blonde - (176, 106, 41), // Summer Blonde - (107, 76, 51), // Oak - //(203, 154, 98), // Light - (64, 32, 18), // Skin7 - (86, 72, 71), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (107, 32, 60), // Grape Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - //(146, 32, 32), // Autumn Red - (20, 19, 17), // Black + (166, 168, 138), // Philosopher's Grey + (211, 226, 171), // Fresh Blonde + (34, 69, 27), // Dark Green + (53, 119, 40), // Seaweed Green + (14, 69, 47), // Sea Green + (19, 53, 52), // Deepsea Blue + (20, 38, 61), // Deep Blue + (21, 22, 53), // Midnight Blue + (143, 122, 185), // Lilac + (56, 51, 78), // Magic Purple + (101, 83, 95), // Matte Purple + (101, 57, 90), // Witch Purple + (107, 32, 60), // Grape Purple + (146, 32, 45), // Autumn Red + (88, 26, 29), // Wine Red + (147, 195, 234), // Icy Blue + (20, 19, 17), // Black ], Dwarf: [ - (210, 204, 130), // Platinum Blonde - (220, 199, 119), // Cream Blonde - (212, 156, 73), // Gold Blonde - (176, 106, 41), // Summer Blonde - (216, 146, 114), // Matte Pink - (107, 76, 51), // Oak - (203, 154, 98), // Light - (64, 32, 18), // Skin7 - (86, 72, 71), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - (191, 228, 254), // Ice NobleBlue - (92, 80, 144), // Kingfisher Blue - (146, 198, 238), // Lagoon Blue - (146, 166, 172), // Matte Green - (0, 139, 58), // Grass Green - (48, 61, 52), // Dark Green - (20, 19, 17), // Black + (226, 213, 208), // White + (160, 150, 147), // Light silver + (94, 88, 86), // Silver + (152, 96, 47), // Light brown + (102, 50, 27), // Rust brown + (107, 76, 51), // Oak + (185, 144, 98), // Birch + (64, 32, 18), // Skin7 + (86, 71, 78), // Soot + (57, 56, 61), // Raven Black + (101, 83, 95), // Matte Purple + (44, 38, 45), // Deep Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (191, 228, 254), // Ice NobleBlue + (176, 81, 55), // Bright Red + (152, 59, 36), // Autumn Red + (146, 166, 172), // Matte Green + (77, 94, 74), // Moss Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black ], Elf: [ - (66, 83, 113), // Mysterious Blue - (13, 76, 41), // Rainforest Green - (245, 232, 175), // Cream Blonde - (212, 156, 73), // Gold Blonde - (228, 223, 141), // Platinum Blonde - (176, 106, 41), // Summer Blonde - (107, 76, 51), // Oak - (203, 154, 98), // Light - (64, 32, 18), // Skin7 - (86, 72, 71), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - (103, 191, 254), // Ice Blue - (92, 80, 144), // Kingfisher Blue - (146, 198, 238), // Lagoon Blue - (80, 156, 211), // Candy Pink - (216, 146, 114), // Matte Pink - (146, 166, 172), // Matte Green - (84, 139, 107), // Grass Green - (48, 61, 52), // Dark Green - (20, 19, 17), // Black + (66, 83, 113), // Mysterious Blue + (13, 76, 41), // Rainforest Green + (245, 232, 175), // Cream Blonde + (245, 240, 209), // Silver Blonde + (228, 223, 141), // Platinum Blonde + (176, 81, 55), // Light Red + (152, 59, 36), // Autumn Red + (201, 196, 178), // Silver + (250, 243, 238), // White + (86, 71, 78), // Ash + (57, 56, 61), // Raven Black + (111, 87, 108), // Dark Purple + (101, 57, 90), // Witch Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (103, 191, 254), // Ice Blue + (92, 80, 144), // Kingfisher Blue + (146, 198, 238), // Lagoon Blue + (80, 156, 211), // Candy Pink + (216, 146, 114), // Matte Pink + (146, 166, 172), // Matte Green + (84, 139, 107), // Grass Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black ], Human: [ - (210, 204, 130), // Platinum Blonde - (220, 199, 119), // Cream Blonde - (212, 156, 73), // Gold Blonde - (176, 106, 41), // Summer Blonde - (216, 146, 114), // Matte Pink - (203, 200, 98), // Light - (107, 76, 51), // Oak - (64, 32, 18), // Skin7 - (86, 72, 81), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - (114, 137, 211), // Ice Blue - (92, 80, 144), // Kingfisher Blue - (146, 198, 238), // Lagoon Blue - (80, 156, 211), // Candy Pink - (146, 166, 172), // Matte Green - (84, 139, 107), // Grass Green - (48, 61, 52), // Dark Green - (20, 19, 17), // Black + (210, 204, 130), // Platinum Blonde + (220, 199, 119), // Cream Blonde + (212, 156, 73), // Gold Blonde + (176, 106, 41), // Summer Blonde + (216, 146, 114), // Matte Pink + (203, 200, 98), // Light + (107, 76, 51), // Oak + (97, 46, 19), // Light Brown + (64, 32, 18), // Dark Brown + (57, 56, 61), // Raven Black + (47, 36, 30), // Deep Brown + (89, 55, 49), // Matte Red + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (138, 50, 9), // Orange + (154, 70, 10), // Bright Orange + (239, 242, 245), // White + (204, 201, 199), // Gray 1 + (146, 141, 136), // Gray 2 + (97, 92, 88), // Gray 3 + (56, 55, 54), // Gray 4 + (20, 19, 17), // Black ], Orc: [ - (66, 66, 59), // Wise Grey - //(107, 76, 51), // Oak - //(203, 154, 98), // Light - (64, 32, 18), // Skin7 - (54, 30, 26), // Dark Skin7 - (86, 72, 71), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - (66, 83, 113), // Mysterious Blue - (20, 19, 17), // Black + (66, 66, 59), // Wise Grey + (119, 119, 109), // Silver + (242, 233, 215), // White + (64, 32, 18), // Skin7 + (54, 30, 26), // Dark Skin7 + (86, 72, 71), // Ash + (57, 56, 61), // Raven Black + (37, 45, 37), // Dark Green + (44, 38, 45), // Deep Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (36, 42, 53), // Dark Blue + (20, 19, 17), // Black ], - Undead: [ - //(245, 232, 175), // Cream Blonde - (228, 208, 147), // Gold Blonde - //(228, 223, 141), // Platinum Blonde - (176, 106, 41), // Summer Blonde - (107, 76, 51), // Oak - (203, 154, 98), // Light - (64, 32, 18), // Skin7 - (86, 72, 71), // Ash - (57, 56, 61), // Raven Black - (101, 83, 95), // Matte Purple - (101, 57, 90), // Witch Purple - (111, 54, 117), // Punky Purple - (135, 38, 39), // Dark Red - (88, 26, 29), // Wine Red - (103, 191, 254), // Ice Blue - (92, 80, 144), // Kingfisher Blue - (146, 198, 238), // Lagoon Blue - (66, 66, 59), // Decayed Grey - //(80, 156, 211), // Candy Pink - (216, 146, 114), // Matte Pink - (0, 131, 122), // Rotten Green - (146, 166, 172), // Matte Green - (84, 139, 107), // Grass Green - (48, 61, 52), // Dark Green - (20, 19, 17), // Black + Draugr: [ + (245, 232, 175), // Cream Blonde + (193, 182, 152), // Dead Blonde + (135, 131, 83), // Rotten Blonde + (50, 40, 32), // Grey Brown + (147, 160, 157), // Grey + (223, 242, 241), // White + (110, 111, 94), // Acid Grey + (86, 72, 71), // Ash + (57, 56, 61), // Raven Black + (101, 83, 95), // Matte Purple + (78, 59, 73), // Darker Purple + (81, 43, 86), // Punky Purple + (111, 37, 37), // Blood Red + (53, 24, 25), // Hellish Red + (84, 146, 193), // Ghostly Blue + (92, 80, 144), // Sea Green + (146, 198, 238), // Lagoon Blue + (66, 66, 59), // Decayed Grey + (30, 47, 61), // Deep Blue + (40, 75, 91), // Night Blue + (40, 131, 123), // Rotten Green + (125, 172, 161), // Matte Green + (70, 94, 57), // Swamp Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black ], ), + // Alphabetical Order eye_colors_light: ( - VigorousBlack: (71, 59, 49), - NobleBlue: (75, 158, 191), - CuriousGreen: (110, 167, 113), - LoyalBrown: (73, 42, 36), - ViciousRed: (169,0 ,47), - PumpkinOrange: (220, 156, 19), - GhastlyYellow: (221, 225, 31), - MagicPurple: (137, 4, 177), - ToxicGreen: (1, 223, 1), - ExoticPurple: (95, 32, 111), - SulfurYellow: (235, 198, 94), AmberOrange: (137, 46, 1), - PineGreen: (0, 78, 56), + AmberYellow: (226, 168, 54), + BrightBrown: (73, 41, 13), CornflowerBlue: (18, 66, 90), + CuriousGreen: (110, 167, 113), + EmeraldGreen: (67, 160, 48), + ExoticPurple: (95, 32, 111), + FrozenBlue: (53, 214, 255), + GhastlyYellow: (228, 234, 56), + LoyalBrown: (73, 42, 36), + MagicPurple: (137, 4, 177), + NobleBlue: (89, 185, 226), + PineGreen: (0, 78, 56), + PumpkinOrange: (242, 136, 43), + RubyRed: (143, 21, 21), + RegalPurple: (108, 49, 160), + RustBrown: (102, 42, 18), + SapphireBlue: (17, 49, 90), + SulfurYellow: (235, 198, 94), + ToxicGreen: (82, 223, 1), + ViciousRed: (169, 0,47), + VigorousBlack: (71, 59, 49), ), eye_colors_dark: ( - VigorousBlack: (32, 32, 32), - NobleBlue: (62, 130, 159), - CuriousGreen: (81, 124, 84), - LoyalBrown: (54, 30, 26), - ViciousRed: (119, 0, 33), - PumpkinOrange: (209, 145, 18), - GhastlyYellow: (205, 212, 29), - MagicPurple: (110, 3, 143), - ToxicGreen: (1, 185, 1), - ExoticPurple: (69, 23, 80), - SulfurYellow: (209, 176, 84), AmberOrange: (112, 40, 1), - PineGreen: (0, 54, 38), + AmberYellow: (193, 135, 21), + BrightBrown: (54, 31, 11), CornflowerBlue: (13, 47, 64), + CuriousGreen: (81, 124, 84), + EmeraldGreen: (50, 119, 36), + ExoticPurple: (69, 23, 80), + FrozenBlue: (0, 196, 250), + GhastlyYellow: (205, 212, 29), + LoyalBrown: (54, 30, 26), + MagicPurple: (110, 3, 143), + NobleBlue: (65, 154, 193), + PineGreen: (0, 54, 38), + PumpkinOrange: (226, 108, 11), + RubyRed: (94, 19, 19), + RegalPurple: (80, 36, 119), + RustBrown: (78, 33, 15), + SapphireBlue: (13, 35, 64), + SulfurYellow: (152, 132, 7), + ToxicGreen: (68, 185, 1), + ViciousRed: (135, 0, 35), + VigorousBlack: (32, 32, 32), ), eye_white: (255, 255, 255), skin_colors_plain: ( - Skin1: (228, 183, 160), - Skin2: (226, 181, 158), - Skin3: (223, 179, 157), - Skin4: (221, 177, 155), - Skin5: (218, 176, 154), - Skin6: (216, 174, 152), - Skin7: (213, 172, 151), - Skin8: (211, 170, 149), - Skin9: (198, 159, 140), - Skin10: (180, 144, 127), - Skin11: (163, 130, 114), - Skin12: (135, 103, 90), - Skin13: (120, 92, 80), - Skin14: (105, 80, 70), - Skin15: (90, 69, 60), - Skin16: (75, 57, 50), - Skin17: (60, 46, 40), - Skin18: (45, 34, 30), - Iron: (135, 113, 95), - Steel: (108, 94, 86), - DanariOne: (43, 166, 224), - DanariTwo: (40, 155, 210), - DanariThree: (37, 143, 195), - DanariFour: (34, 132, 181), - ElfOne: (118, 84, 157), - ElfTwo: (99, 114, 161), - // ElfThree: (230, 188, 198), + // Human Skin colors + HumanOne: (228, 173, 146), + HumanTwo: (223, 168, 143), + HumanThree: (215, 161, 138), + HumanFour: (207, 154, 133), + HumanFive: (198, 142, 120), + HumanSix: (190, 135, 115), + HumanSeven: (182, 125, 104), + HumanEight: (174, 119, 99), + HumanNine: (165, 109, 89), + HumanTen: (157, 102, 84), + HumanEleven: (149, 96, 80), + HumanTwelve: (132, 81, 67), + HumanThirteen: (124, 75, 63), + HumanFourteen: (116, 69, 59), + HumanFifteen: (108, 61, 52), + HumanSixteen: (91, 50, 43), + HumanSeventeen: (75, 40, 35), + HumanEighteen: (58, 30, 27), + // Dwarf skin colors + DwarfOne: (228, 183, 160), + DwarfTwo: (217, 173, 152), + DwarfThree: (209, 170, 152), + DwarfFour: (198, 160, 144), + DwarfFive: (190, 159, 146), + DwarfSix: (176, 146, 135), + DwarfSeven: (168, 142, 133), + DwarfEight: (160, 138, 131), + DwarfNine: (152, 130, 124), + DwarfTen: (143, 122, 117), + DwarfEleven: (135, 119, 115), + DwarfTwelve: (127, 113, 108), + DwarfThirteen: (119, 108, 101), + DwarfFourteen: (111, 103, 98), + // Elf skin colors + ElfOne: (250, 205, 205), + ElfTwo: (242, 191, 192), + ElfThree: (234, 178, 178), + ElfFour: (226, 171, 178), + ElfFive: (217, 164, 180), + ElfSix: (209, 158, 183), + ElfSeven: (201, 146, 184), + ElfEight: (193, 140, 187), + ElfNine: (171, 127, 176), + ElfTen: (146, 111, 160), + ElfEleven: (159, 161, 209), + ElfTwelve: (146, 148, 201), + ElfThirteen: (133, 135, 193), + ElfFourteen: (122, 124, 185), + ElfFifteen: (111, 112, 168), + ElfSixteen: (132, 119, 110), + ElfSeventeen: (116, 106, 100), + ElfEighteen: (100, 93, 89), + // Orc skin colors OrcOne: (61, 130, 42), OrcTwo: (82, 117, 36), OrcThree: (71, 94, 42), - OrcFour: (97, 54, 29), - UndeadOne: (178, 178, 178), - UndeadTwo: (162, 157, 150), - UndeadThree: (145, 135, 121), + OrcFour: (48, 130, 47), + OrcFive: (59, 102, 51), + OrcSix: (97, 54, 29), + OrcSeven: (97, 65, 29), + OrcEight: (105, 48, 31), + // Danari skin colors + DanariOne: (43, 166, 224), + DanariTwo: (61, 158, 215), + DanariThree: (65, 150, 207), + DanariFour: (64, 123, 182), + DanariFive: (34, 132, 181), + DanariSix: (79, 168, 207), + DanariSeven: (101, 186, 198), + // Draugr skin colors + DraugrOne: (153, 163, 157), + DraugrTwo: (119, 149, 135), + DraugrThree: (145, 182, 165), + DraugrFour: (99, 124, 116), + DraugrFive: (186, 210, 215), + DraugrSix: (215, 211, 207), + DraugrSeven: (132, 129, 127), + DraugrEight: (163, 149, 146), + DraugrNine: (131, 159, 163), ), skin_colors_light: ( - Skin1: (233, 190, 166), - Skin2: (232, 188, 164), - Skin3: (229, 186, 163), - Skin4: (227, 184, 161), - Skin5: (224, 183, 159), - Skin6: (222, 181, 157), - Skin7: (220, 178, 156), - Skin8: (218, 176, 154), - Skin9: (205, 165, 145), - Skin10: (187, 149, 131), - Skin11: (169, 134, 118), - Skin12: (135, 103, 90), - Skin13: (120, 92, 80), - Skin14: (105, 80, 70), - Skin15: (90, 69, 60), - Skin16: (75, 57, 50), - Skin17: (60, 46, 40), - Skin18: (45, 34, 30), - Iron: (144, 125, 106), - Steel: (120, 107, 99), - DanariOne: (44, 172, 230), - DanariTwo: (41, 161, 217), - DanariThree: (38, 148, 202), - DanariFour: (35, 136, 188), - ElfOne: (122, 87, 163), - ElfTwo: (102, 118, 167), - //ElfThree: (242, 199, 209), + // Human Skin colors + HumanOne: (239, 182, 153), + HumanTwo: (231, 176, 148), + HumanThree: (223, 169, 143), + HumanFour: (215, 162, 138), + HumanFive: (207, 148, 125), + HumanSix: (198, 140, 119), + HumanSeven: (190, 133, 114), + HumanEight: (182, 127, 109), + HumanNine: (174, 117, 100), + HumanTen: (165, 110, 95), + HumanEleven: (157, 98, 84), + HumanTwelve: (141, 83, 72), + HumanThirteen: (132, 77, 67), + HumanFourteen: (124, 72, 63), + HumanFifteen: (116, 66, 59), + HumanSixteen: (100, 54, 49), + HumanSeventeen: (83, 44, 40), + HumanEighteen: (67, 35, 32), + // Dwarf skin colors + DwarfOne: (233, 190, 166), + DwarfTwo: (226, 179, 156), + DwarfThree: (217, 176, 158), + DwarfFour: (207, 167, 150), + DwarfFive: (198, 165, 152), + DwarfSix: (185, 153, 142), + DwarfSeven: (176, 148, 139), + DwarfEight: (165, 142, 135), + DwarfNine: (160, 138, 131), + DwarfTen: (152, 130, 124), + DwarfEleven: (143, 126, 122), + DwarfTwelve: (135, 120, 115), + DwarfThirteen: (127, 116, 108), + DwarfFourteen: (119, 111, 105), + // Elf skin colors + ElfOne: (255, 210, 210), + ElfTwo: (250, 198, 198), + ElfThree: (242, 184, 184), + ElfFour: (234, 178, 184), + ElfFive: (226, 171, 189), + ElfSix: (217, 164, 190), + ElfSeven: (209, 152, 192), + ElfEight: (201, 146, 195), + ElfNine: (180, 134, 185), + ElfTen: (160, 122, 176), + ElfEleven: (164, 165, 217), + ElfTwelve: (152, 153, 209), + ElfThirteen: (139, 140, 201), + ElfFourteen: (127, 127, 193), + ElfFifteen: (115, 115, 176), + ElfSixteen: (141, 127, 117), + ElfSeventeen: (124, 114, 107), + ElfEighteen: (108, 101, 96), + // Orc skin colors OrcOne: (83, 165, 56), OrcTwo: (92, 132, 46), OrcThree: (84, 110, 54), - OrcFour: (97, 54, 29), - UndeadOne: (185, 185, 185), - UndeadTwo: (168, 163, 155), - UndeadThree: (150, 139, 125), + OrcFour: (61, 152, 62), + OrcFive: (68, 119, 59), + OrcSix: (113, 63, 34), + OrcSeven: (113, 76, 34), + OrcEight: (122, 54, 36), + // Danari skin colors + DanariOne: (45, 177, 239), + DanariTwo: (66, 170, 231), + DanariThree: (68, 153, 215), + DanariFour: (67, 128, 190), + DanariFive: (35, 136, 188), + DanariSix: (89, 175, 215), + DanariSeven: (106, 195, 207), + // Draugr skin colors + DraugrOne: (168, 179, 172), + DraugrTwo: (126, 157, 141), + DraugrThree: (159, 198, 176), + DraugrFour: (117, 141, 134), + DraugrFive: (200, 219, 223), + DraugrSix: (223, 219, 215), + DraugrSeven: (141, 138, 136), + DraugrEight: (179, 163, 160), + DraugrNine: (139, 169, 174), ), skin_colors_dark: ( - Skin1: (222, 176, 154), - Skin2: (220, 174, 153), - Skin3: (217, 172, 152), - Skin4: (214, 171, 150), - Skin5: (211, 170, 149), - Skin6: (209, 168, 147), - Skin7: (206, 166, 146), - Skin8: (204, 164, 144), - Skin9: (191, 154, 136), - Skin10: (173, 139, 123), - Skin11: (157, 126, 110), - Skin12: (132, 103, 82), - Skin13: (107, 82, 72), - Skin14: (92, 70, 62), - Skin15: (77, 59, 51), - Skin16: (61, 47, 41), - Skin17: (48, 37, 32), - Skin18: (33, 25, 22), - Iron: (124, 99, 82), - Steel: (96, 81, 72), - DanariOne: (43, 166, 224), - DanariTwo: (40, 155, 210), - DanariThree: (37, 143, 195), - DanariFour: (34, 132, 181), - ElfOne: (114, 81, 152), - ElfTwo: (96, 110, 155), - //ElfThree: (217, 178, 187), + // Human Skin colors + HumanOne: (222, 166, 142), + HumanTwo: (215, 161, 138), + HumanThree: (207, 154, 133), + HumanFour: (198, 147, 127), + HumanFive: (190, 134, 115), + HumanSix: (182, 128, 110), + HumanSeven: (174, 117, 100), + HumanEight: (165, 114, 99), + HumanNine: (157, 104, 90), + HumanTen: (149, 98, 85), + HumanEleven: (141, 88, 76), + HumanTwelve: (124, 74, 63), + HumanThirteen: (116, 68, 59), + HumanFourteen: (108, 63, 55), + HumanFifteen: (100, 58, 50), + HumanSixteen: (83, 47, 41), + HumanSeventeen: (67, 37, 33), + HumanEighteen: (50, 27, 24), + // Dwarf skin colors + DwarfOne: (222, 176, 154), + DwarfTwo: (209, 164, 145), + DwarfThree: (201, 159, 141), + DwarfFour: (190, 152, 138), + DwarfFive: (182, 151, 140), + DwarfSix: (168, 138, 129), + DwarfSeven: (160, 133, 126), + DwarfEight: (160, 133, 126), + DwarfNine: (143, 122, 117), + DwarfTen: (135, 115, 110), + DwarfEleven: (127, 112, 108), + DwarfTwelve: (119, 106, 101), + DwarfThirteen: (111, 101, 94), + DwarfFourteen:(102, 95, 90), + // Elf skin colors + ElfOne: (242, 199, 200), + ElfTwo: (234, 185, 186), + ElfThree: (226, 171, 171), + ElfFour: (217, 164, 170), + ElfFive: (209, 158, 174), + ElfSix: (201, 152, 176), + ElfSeven: (193, 140, 177), + ElfEight: (185, 134, 179), + ElfNine: (164, 121, 168), + ElfTen: (138, 105, 152), + ElfEleven: (152, 154, 201), + ElfTwelve: (140, 142, 193), + ElfThirteen: (128, 130, 185), + ElfFourteen: (116, 118, 176), + ElfFifteen: (106, 107, 160), + ElfSixteen: (124, 111, 103), + ElfSeventeen: (108, 99, 93), + ElfEighteen: (91, 85, 81), + // Orc skin colors OrcOne: (55, 114, 36), OrcTwo: (70, 104, 29), OrcThree: (60, 83, 32), - OrcFour: (84, 47, 25), - UndeadOne: (172, 172, 172), - UndeadTwo: (156, 152, 145), - UndeadThree: (128, 119, 107), + OrcFour: (42, 114, 42), + OrcFive: (50, 89, 44), + OrcSix: (84, 47, 25), + OrcSeven: (84, 56, 25), + OrcEight: (97, 43, 28), + // Danari skin colors + DanariOne: (41, 157, 215), + DanariTwo: (59, 155, 207), + DanariThree: (62, 141, 198), + DanariFour: (61, 117, 174), + DanariFive: (34, 132, 181), + DanariSix: (69, 157, 198), + DanariSeven: (84, 177, 190), + // Draugr skin colors + DraugrOne: (137, 146, 140), + DraugrTwo: (105, 132, 119), + DraugrThree: (131, 165, 148), + DraugrFour: (85, 108, 102), + DraugrFive: (171, 193, 198), + DraugrSix: (198, 195, 191), + DraugrSeven: (124, 121, 119), + DraugrEight: (174, 168, 162), + DraugrNine: (119, 145, 149), ), ) diff --git a/assets/voxygen/voxel/humanoid_head_manifest.ron b/assets/voxygen/voxel/humanoid_head_manifest.ron index 6c41353813..4eafc7e5a1 100644 --- a/assets/voxygen/voxel/humanoid_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_head_manifest.ron @@ -11,39 +11,44 @@ Some(("figure.eyes.general.male_scar-0", (3, 9, 2))), Some(("figure.eyes.general.male_blind-0", (3, 9, 2))), Some(("figure.eyes.general.male_old", (3, 9, 2))), - ], + ], hair: [ + None, Some(("figure.hair.human.male-0", (1, 1, 1))), - Some(("figure.hair.human.male-1", (1, 1, 1))), + Some(("figure.hair.human.male-1", (2, 1, 0))), Some(("figure.hair.human.male-2", (0, -1, 0))), Some(("figure.hair.human.male-3", (0, -1, 0))), Some(("figure.hair.human.male-4", (2, 2, 0))), Some(("figure.hair.human.male-5", (1, 1, 0))), - Some(("figure.hair.human.male-6", (1, 1, 1))), - //Some(("figure.hair.human.male-7", (0, 0, 0))), - //Some(("figure.hair.human.male-8", (5, 0, 5))), - //Some(("figure.hair.human.male-9", (5, 0, 5))), - Some(("figure.hair.human.male-10", (-3, -5, -4))), - //Some(("figure.hair.human.male-11", (0, 0, 0))), - Some(("figure.hair.human.male-12", (4, 2, 7))), + Some(("figure.hair.human.male-6", (0, 0, 0))), + Some(("figure.hair.human.male-7", (1, -2, 1))), + Some(("figure.hair.human.male-8", (1, 1, 0))), + Some(("figure.hair.human.male-9", (1, 1, 0))), + Some(("figure.hair.human.male-10", (1, 1, 0))), + Some(("figure.hair.human.male-11", (1, 1, 0))), + Some(("figure.hair.human.male-12", (2, 1, 2))), Some(("figure.hair.human.male-13", (1, 1, 0))), - Some(("figure.hair.human.male-14", (2, 0, 1))), - Some(("figure.hair.human.male-15", (1, 1, 0))), - Some(("figure.hair.human.male-16", (1, 0, 0))), - Some(("figure.hair.human.male-17", (1, 1, 0))), - Some(("figure.hair.human.male-18", (1, 0, 0))), - Some(("figure.hair.human.male-19", (2, 1, 0))), - Some(("figure.hair.human.male-20", (-3, -4, -7))), - None, + Some(("figure.hair.human.male-14", (2, -3, 0))), + Some(("figure.hair.human.male-15", (1, 0, -2))), + Some(("figure.hair.human.male-16", (0, -1, 0))), + Some(("figure.hair.human.male-17", (2, -3, -1))), + Some(("figure.hair.human.male-18", (1, -2, 0))), + Some(("figure.hair.human.male-19", (1, 0, -2))), + Some(("figure.hair.human.male-20", (0, 1, -3))), ], beard: [ None, Some(("figure.beard.human.human-0", (4, 6, -2))), Some(("figure.beard.human.human-1", (5, 10, -2))), Some(("figure.beard.human.human-2", (3, 7, -3))), + Some(("figure.beard.human.human-3", (2, 7, -1))), + Some(("figure.beard.human.human-4", (3, 10, 0))), + Some(("figure.beard.human.human-5", (2, 7, -3))), + Some(("figure.beard.human.human-6", (4, 10, -1))), + Some(("figure.beard.human.human-7", (2, 7, -1))), + Some(("figure.beard.human.human-8", (5, 7, -1))), ], - accessory: [ - None] + accessory: [None], ), (Human, Female): ( offset: (-7.0, -4.0, -2.0), @@ -55,32 +60,31 @@ Some(("figure.eyes.general.female_heterochromia-0", (2, 10, 2))), Some(("figure.eyes.general.female_scar-0", (2, 10, 2))), Some(("figure.eyes.general.female_blind-0", (2, 10, 2))), - ], + ], hair: [ Some(("figure.hair.human.female-0", (-1, -1, 0))), - Some(("figure.hair.human.female-1", (1, 2, -1))), - Some(("figure.hair.human.female-2", (1, 2, 0))), - Some(("figure.hair.human.female-3", (1, 1, -7))), - Some(("figure.hair.human.female-4", (2, 1, -1))), - Some(("figure.hair.human.female-5", (1, 2, 0))), - Some(("figure.hair.human.female-6", (1, 0, -7))), - Some(("figure.hair.human.female-7", (-1, 0, -1))), - Some(("figure.hair.human.female-8", (0, 0, 0))), - Some(("figure.hair.human.female-9", (0, 2, -1))), - Some(("figure.hair.human.female-10", (-1, -1, 0))), - Some(("figure.hair.human.female-11", (1, 2, 0))), + Some(("figure.hair.human.female-1", (1, 1, -1))), + Some(("figure.hair.human.female-2", (1, 0, 0))), + Some(("figure.hair.human.female-3", (1, -1, -5))), + Some(("figure.hair.human.female-4", (2, 1, 0))), + Some(("figure.hair.human.female-5", (-2, 1, -2))), + Some(("figure.hair.human.female-6", (1, 0, -6))), + Some(("figure.hair.human.female-7", (-1, -1, 0))), + Some(("figure.hair.human.female-8", (1, 1, 0))), + Some(("figure.hair.human.female-9", (1, 1, -4))), + Some(("figure.hair.human.female-10", (0, -1, 0))), + Some(("figure.hair.human.female-11", (0, 0, -4))), Some(("figure.hair.human.female-12", (1, -1, 0))), - Some(("figure.hair.human.female-13", (1, -2, -1))), - Some(("figure.hair.human.female-14", (1, 2, 0))), - Some(("figure.hair.human.female-15", (0, 1, -5))), - Some(("figure.hair.human.female-16", (1, 1, 1))), - Some(("figure.hair.human.female-17", (1, -2, -2))), - //Some(("figure.hair.human.female-18", (1, 0, -7))), - Some(("figure.hair.human.female-19", (-5, 0, -1))), + Some(("figure.hair.human.female-13", (1, 1, -1))), + Some(("figure.hair.human.female-14", (0, 0, -1))), + Some(("figure.hair.human.female-15", (0, -2, -1))), + Some(("figure.hair.human.female-16", (1, -3, -2))), + Some(("figure.hair.human.female-17", (1, -4, -1))), + Some(("figure.hair.human.female-18", (-1, -3, -1))), + Some(("figure.hair.human.female-19", (-4, 0, -1))), ], beard: [None], - accessory: [ - None] + accessory: [None], ), (Orc, Male): ( offset: (-8.0, -5.0, -2.0), @@ -88,34 +92,51 @@ eyes: [ Some(("figure.eyes.orc.male-0", (5, 10, 6))), Some(("figure.eyes.orc.male-1", (5, 10, 5))), - ], + ], hair: [ Some(("figure.hair.dwarf.bald", (0, 3, -1))), - Some(("figure.hair.orc.male-0", (4, 2, 0))), - Some(("figure.hair.orc.male-1", (0, 0, -1))), - Some(("figure.hair.orc.male-2", (0, 0, 0))), - Some(("figure.hair.orc.male-3", (0, 0, 0))), - Some(("figure.hair.orc.male-4", (0, 0, 0))), - Some(("figure.hair.orc.male-5", (0, 0, 0))), - Some(("figure.hair.orc.male-6", (0, 0, 0))), + Some(("figure.hair.orc.male-0", (4, 2, -1))), + Some(("figure.hair.orc.male-1", (0, 2, 1))), + Some(("figure.hair.orc.male-2", (3, 2, 1))), + Some(("figure.hair.orc.male-3", (3, 2, 1))), + Some(("figure.hair.orc.male-4", (3, -2, 1))), + Some(("figure.hair.orc.male-5", (4, 0, 5))), + Some(("figure.hair.orc.male-6", (3, 2, 0))), + Some(("figure.hair.orc.male-7", (4, -2, 2))), + Some(("figure.hair.orc.male-8", (6, 0, 3))), + Some(("figure.hair.orc.male-9", (5, 0, -1))), + Some(("figure.hair.orc.male-10", (3, -1, 0))), + Some(("figure.hair.orc.male-11", (4, -3, 2))), + Some(("figure.hair.orc.male-12", (3, -1, 3))), + Some(("figure.hair.orc.male-13", (4, 3, 4))), ], beard: [ None, - Some(("figure.beard.orc.1", (7, 11, 0))), - Some(("figure.beard.orc.2", (3, 8, -2))), + Some(("figure.beard.orc.orc-0", (7, 11, 0))), + Some(("figure.beard.orc.orc-1", (3, 8, -2))), + Some(("figure.beard.orc.orc-2", (7, 11, -1))), + Some(("figure.beard.orc.orc-3", (4, 10, -1))), + Some(("figure.beard.orc.orc-4", (3, 8, -1))), + Some(("figure.beard.orc.orc-5", (4, 8, -2))), ], accessory: [ Some(("figure.accessory.orc.teeth-0", (5, 11, 3))), - Some(("figure.accessory.orc.earring-male-0", (2, 7, 3))), Some(("figure.accessory.orc.teeth-1", (5, 11, 3))), Some(("figure.accessory.orc.teeth-2", (5, 11, 3))), - Some(("figure.accessory.orc.warpaint-male-0", (0, 4, 3))), + Some(("figure.accessory.orc.teeth-3", (5, 11, 3))), + Some(("figure.accessory.orc.earring-male-0", (2, 7, 3))), + Some(("figure.accessory.orc.earring-male-1", (2, 7, 3))), + Some(("figure.accessory.orc.earring-male-2", (2, 6, 1))), + Some(("figure.accessory.orc.warpaint-male-0", (0, 7, 3))), + Some(("figure.accessory.orc.warpaint-male-1", (5, 7, 0))), + Some(("figure.accessory.orc.warpaint-male-2", (4, 8, 3))), + Some(("figure.accessory.orc.warpaint-male-3", (4, 6, 0))), Some(("figure.accessory.orc.male_eyepatch", (0, 3, 0))), ], ), (Orc, Female): ( offset: (-8.0, -2.5, -2.0), - head: ("figure.head.orc.female", (0, 1, 0)), + head: ("figure.head.orc.female", (0, 0, 0)), eyes: [ Some(("figure.eyes.general.female_default-0", (3, 8, 2))), Some(("figure.eyes.general.female_styled-0", (3, 8, 2))), @@ -123,23 +144,36 @@ Some(("figure.eyes.general.female_heterochromia-0", (3, 8, 2))), Some(("figure.eyes.general.female_scar-0", (3, 8, 2))), Some(("figure.eyes.general.female_blind-0", (3, 8, 2))), - ], + ], hair: [ - Some(("figure.hair.orc.female-0", (-2, -8, 0))), - Some(("figure.hair.orc.female-1", (-2, -8, 0))), - Some(("figure.hair.orc.female-2", (-2, -8, 0))), - Some(("figure.hair.orc.female-3", (-2, -8, -4))), - Some(("figure.hair.orc.female-4", (-2, -8, 0))), - Some(("figure.hair.orc.female-5", (-2, -8, -4))), - Some(("figure.hair.orc.female-6", (-2, -8, -4))), + Some(("figure.hair.orc.female-0", (2, 0, 0))), + Some(("figure.hair.orc.female-1", (3, -5, 0))), + Some(("figure.hair.orc.female-2", (2, -1, 0))), + Some(("figure.hair.orc.female-3", (2, -7, 0))), + Some(("figure.hair.orc.female-4", (0, -1, -1))), + Some(("figure.hair.orc.female-5", (2, 0, -2))), + Some(("figure.hair.orc.female-6", (2, -3, 0))), + Some(("figure.hair.orc.female-7", (2, 0, 0))), + Some(("figure.hair.orc.female-8", (-1, -4, 0))), + Some(("figure.hair.orc.female-9", (3, -2, 0))), + Some(("figure.hair.orc.female-10", (2, 0, -1))), + Some(("figure.hair.orc.female-11", (2, -3, 0))), + Some(("figure.hair.orc.female-12", (0, 0, -2))), + Some(("figure.hair.orc.female-13", (2, -3, 0))), + Some(("figure.hair.orc.female-14", (3, -4, 0))), ], beard: [None], accessory: [ None, Some(("figure.accessory.orc.earring-female-0", (2, 4, 1))), - Some(("figure.accessory.orc.warpaint-female-0", (-2, -4, -7))), - Some(("figure.accessory.orc.warpaint-female-1", (-2, -4, -7))), - ], + Some(("figure.accessory.orc.earring-female-1", (1, 4, 2))), + Some(("figure.accessory.orc.earring-female-2", (1, 4, 0))), + Some(("figure.accessory.orc.earring-female-3", (1, 3, 1))), + Some(("figure.accessory.orc.warpaint-female-0", (3, 4, 1))), + Some(("figure.accessory.orc.warpaint-female-1", (0, 4, 3))), + Some(("figure.accessory.orc.warpaint-female-2", (3, 6, 0))), + Some(("figure.accessory.orc.warpaint-female-3", (3, 7, 0))), + ], ), (Elf, Male): ( offset: (-8.0, -2.5, -2.0), @@ -148,21 +182,46 @@ Some(("figure.eyes.general.male_default-0", (4, 9, 2))), Some(("figure.eyes.general.male_brow_col-0", (4, 9, 2))), Some(("figure.eyes.general.male_bushy-0", (4, 9, 2))), + Some(("figure.eyes.general.male_bushy-1", (3, 9, 2))), Some(("figure.eyes.general.male_as_hair-0", (4, 9, 2))), Some(("figure.eyes.general.male_heterochromia-0", (4, 9, 2))), Some(("figure.eyes.general.male_scar-0", (4, 9, 2))), Some(("figure.eyes.general.male_blind-0", (4, 9, 2))), - ], - hair: [ - Some(("figure.hair.elf.male-0", (2, 1, 1))), - Some(("figure.hair.elf.male-1", (1, -1, 0))), - Some(("figure.hair.elf.male-2", (-2, -4, -7))), - Some(("figure.hair.elf.male-3", (-7, -10, -8))), ], - beard: [None], + hair: [ + Some(("figure.hair.elf.male-0", (2, 0, -2))), + Some(("figure.hair.elf.male-1", (2, 0, -2))), + Some(("figure.hair.elf.male-2", (2, 0, -2))), + Some(("figure.hair.elf.male-3", (2, -3, 0))), + Some(("figure.hair.elf.male-4", (2, -4, -1))), + Some(("figure.hair.elf.male-5", (1, -1, -2))), + Some(("figure.hair.elf.male-6", (2, -1, -6))), + Some(("figure.hair.elf.male-7", (2, -3, 0))), + Some(("figure.hair.elf.male-8", (2, -1, 0))), + Some(("figure.hair.elf.male-9", (2, 0, -1))), + Some(("figure.hair.elf.male-10", (1, -3, -1))), + Some(("figure.hair.elf.male-11", (2, -4, -2))), + Some(("figure.hair.elf.male-12", (0, -3, -1))), + Some(("figure.hair.elf.male-13", (2, -4, -1))), + Some(("figure.hair.elf.male-14", (1, -2, -2))), + ], + beard: [ + None, + Some(("figure.beard.elf.elf-0", (5, 10, -1))), + Some(("figure.beard.elf.elf-1", (5, 10, -4))), + Some(("figure.beard.elf.elf-2", (5, 10, -3))), + Some(("figure.beard.elf.elf-3", (7, 9, -3))), + Some(("figure.beard.elf.elf-4", (3, 7, -3))), + Some(("figure.beard.elf.elf-5", (3, 7, -5))), + Some(("figure.beard.elf.elf-6", (5, 8, -4))), + ], accessory: [ None, - ] + Some(("figure.accessory.elf.earrings-0", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-1", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-2", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-3", (1, 5, 0))), + ], ), (Elf, Female): ( offset: (-8.0, -5.0, -2.0), @@ -174,35 +233,40 @@ Some(("figure.eyes.general.female_heterochromia-0", (3, 9, 2))), Some(("figure.eyes.general.female_scar-0", (3, 9, 2))), Some(("figure.eyes.general.female_blind-0", (3, 9, 2))), - ], + ], hair: [ - Some(("figure.hair.elf.female-0", (0, -2, 0))), - Some(("figure.hair.elf.female-1", (2, 1, -1))), - Some(("figure.hair.elf.female-2", (2, 1, 0))), - Some(("figure.hair.elf.female-3", (2, 0, -7))), - Some(("figure.hair.elf.female-4", (3, 0, -1))), - Some(("figure.hair.elf.female-5", (2, 1, 0))), - Some(("figure.hair.elf.female-6", (2, -1, -7))), - Some(("figure.hair.elf.female-7", (0, -1, -1))), - Some(("figure.hair.elf.female-8", (1, -1, 0))), - Some(("figure.hair.elf.female-9", (1, 1, -1))), + Some(("figure.hair.elf.female-0", (2, -2, 0))), + Some(("figure.hair.elf.female-1", (2, -1, 0))), + Some(("figure.hair.elf.female-2", (1, 0, 0))), + Some(("figure.hair.elf.female-3", (2, 0, -6))), + Some(("figure.hair.elf.female-4", (2, 0, -2))), + Some(("figure.hair.elf.female-5", (1, 1, -3))), + Some(("figure.hair.elf.female-6", (2, 0, -2))), + Some(("figure.hair.elf.female-7", (2, 0, -1))), + Some(("figure.hair.elf.female-8", (2, 0, -1))), + Some(("figure.hair.elf.female-9", (1, -2, -1))), Some(("figure.hair.elf.female-10", (0, -2, 0))), - Some(("figure.hair.elf.female-11", (2, 1, 0))), - Some(("figure.hair.elf.female-12", (2, -2, 0))), + Some(("figure.hair.elf.female-11", (2, -1, -2))), + Some(("figure.hair.elf.female-12", (2, -3, -1))), Some(("figure.hair.elf.female-13", (2, -3, -1))), - Some(("figure.hair.elf.female-14", (2, 1, 0))), - Some(("figure.hair.elf.female-15", (1, 0, -6))), - Some(("figure.hair.elf.female-16", (2, 0, 0))), - Some(("figure.hair.elf.female-17", (2, -3, -2))), - //Some(("figure.hair.elf.female-18", (2, -1, -7))), - Some(("figure.hair.elf.female-19", (2, 0, -2))), - Some(("figure.hair.elf.female-20", (1, -3, 0))), - Some(("figure.hair.elf.female-21", (-4, -1, -1))), + Some(("figure.hair.elf.female-14", (1, -1, 0))), + Some(("figure.hair.elf.female-15", (1, -1, -1))), + Some(("figure.hair.elf.female-16", (1, -1, -1))), + Some(("figure.hair.elf.female-17", (1, -1, -1))), + Some(("figure.hair.elf.female-18", (2, -1, -1))), + Some(("figure.hair.elf.female-19", (2, 0, -1))), + Some(("figure.hair.elf.female-20", (1, -1, -1))), + Some(("figure.hair.elf.female-21", (2, -3, -2))), ], beard: [None], accessory: [ None, - Some(("figure.accessory.elf.headband-0", (6, 9, 4))),] + Some(("figure.accessory.elf.headband-0", (6, 9, 4))), + Some(("figure.accessory.elf.earrings-0", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-1", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-2", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-3", (1, 5, 0))), + ], ), (Dwarf, Male): ( offset: (-6.0, -4.5, -2.0), @@ -217,42 +281,48 @@ Some(("figure.eyes.general.male_blind-0", (2, 10, 2))), Some(("figure.eyes.general.male_old", (1, 10, 1))), Some(("figure.eyes.general.male_old_blind", (1, 10, 1))), - ], + ], hair: [ Some(("figure.hair.dwarf.bald", (0, 3, 1))), - Some(("figure.hair.dwarf.male-0", (1, 1, -3))), + Some(("figure.hair.dwarf.male-0", (1, 1, -2))), Some(("figure.hair.dwarf.male-1", (4, 0, 1))), - //Some(("figure.hair.dwarf.male-2", (0, 2, -2))), - Some(("figure.hair.dwarf.male-3", (1, 1, -3))), - Some(("figure.hair.dwarf.male-4", (1, -4, -3))), - Some(("figure.hair.dwarf.male-5", (1, -6, -3))), - Some(("figure.hair.dwarf.male-6", (1, -4, -3))), - Some(("figure.hair.dwarf.male-7", (-2, -4, -4))), + Some(("figure.hair.dwarf.male-2", (0, 2, -1))), + Some(("figure.hair.dwarf.male-3", (1, -1, -4))), + Some(("figure.hair.dwarf.male-4", (1, -4, -1))), + Some(("figure.hair.dwarf.male-5", (1, -3, -1))), + Some(("figure.hair.dwarf.male-6", (1, -5, 0))), + Some(("figure.hair.dwarf.male-7", (1, -2, -1))), + Some(("figure.hair.dwarf.male-8", (1, 0, -2))), + Some(("figure.hair.dwarf.male-9", (1, 1, 0))), + Some(("figure.hair.dwarf.male-10", (1, -3, 0))), + Some(("figure.hair.dwarf.male-11", (0, -1, -1))), + Some(("figure.hair.dwarf.male-12", (1, -2, -1))), + Some(("figure.hair.dwarf.male-13", (1, 0, -1))), ], beard: [ Some(("figure.beard.dwarf.dwarf-0", (4, 9, -2))), Some(("figure.beard.dwarf.dwarf-1", (1, 7, -8))), - //Some(("figure.beard.dwarf.dwarf-2", (4, 10, -1))), - Some(("figure.beard.dwarf.dwarf-3", (0, 8, -1))), + Some(("figure.beard.dwarf.dwarf-2", (1, 7, -4))), + Some(("figure.beard.dwarf.dwarf-3", (0, 8, -2))), Some(("figure.beard.dwarf.dwarf-4", (4, 9, -4))), Some(("figure.beard.dwarf.dwarf-5", (0, 7, -5))), Some(("figure.beard.dwarf.dwarf-6", (0, 6, -5))), - Some(("figure.beard.dwarf.dwarf-7", (1, 10, -1))), - Some(("figure.beard.dwarf.dwarf-8", (1, 7, -1))), - Some(("figure.beard.dwarf.dwarf-9", (1, 7, -1))), - Some(("figure.beard.dwarf.dwarf-10", (1, 7, -3))), - Some(("figure.beard.dwarf.dwarf-11", (4, 11, 0))), + Some(("figure.beard.dwarf.dwarf-7", (1, 7, -2))), + Some(("figure.beard.dwarf.dwarf-8", (1, 7, -6))), + Some(("figure.beard.dwarf.dwarf-9", (1, 7, -2))), + Some(("figure.beard.dwarf.dwarf-10", (1, 8, -3))), + Some(("figure.beard.dwarf.dwarf-11", (1, 7, -4))), Some(("figure.beard.dwarf.dwarf-12", (1, 7, -2))), - Some(("figure.beard.dwarf.dwarf-13", (1, 9, -4))), + Some(("figure.beard.dwarf.dwarf-13", (1, 7, -5))), Some(("figure.beard.dwarf.dwarf-14", (1, 7, -5))), - Some(("figure.beard.dwarf.dwarf-15", (1, 8, -8))), + Some(("figure.beard.dwarf.dwarf-15", (1, 7, -8))), Some(("figure.beard.dwarf.dwarf-16", (1, 7, -10))), Some(("figure.beard.dwarf.dwarf-17", (1, 7, -5))), - Some(("figure.beard.dwarf.dwarf-18", (2, 8, -4))), + Some(("figure.beard.dwarf.dwarf-18", (1, 7, -5))), Some(("figure.beard.dwarf.dwarf-19", (1, 7, -8))), - Some(("figure.beard.dwarf.dwarf-20", (1, 7,-4))), - Some(("figure.beard.dwarf.dwarf-21", (1, 7, -8))), - Some(("figure.beard.dwarf.dwarf-22", (1, 7, -8))), + Some(("figure.beard.dwarf.dwarf-20", (0, 7,-7))), + Some(("figure.beard.dwarf.dwarf-21", (1, 7, -7))), + Some(("figure.beard.dwarf.dwarf-22", (1, 7, -6))), ], accessory: [ None, @@ -262,7 +332,7 @@ Some(("figure.accessory.dwarf.earrings-1", (0, 3, 0))), Some(("figure.accessory.dwarf.earrings-2", (0, 3, 0))), Some(("figure.accessory.dwarf.earrings-3", (0, 3, 0))), - ] + ], ), (Dwarf, Female): ( offset: (-6.0, -4.5, -2.0), @@ -274,16 +344,23 @@ Some(("figure.eyes.general.female_heterochromia-0", (1, 10, 2))), Some(("figure.eyes.general.female_scar-0", (1, 10, 2))), Some(("figure.eyes.general.female_blind-0", (1, 10, 2))), - ], + ], hair: [ - Some(("figure.hair.dwarf.female-0", (-9, -9, -7))), - Some(("figure.hair.dwarf.female-1", (-9, -9, -7))), - Some(("figure.hair.dwarf.female-2", (-9, -9, -7))), - Some(("figure.hair.dwarf.female-3", (-9, -9, -7))), - Some(("figure.hair.dwarf.female-4", (-3, -2, -5))), - Some(("figure.hair.dwarf.female-5", (-3, -2, -5))), - Some(("figure.hair.dwarf.female-6", (-3, -2, -5))), - Some(("figure.hair.dwarf.female-7", (-9, -9, -7))), + Some(("figure.hair.dwarf.female-0", (1, 0, -5))), + Some(("figure.hair.dwarf.female-1", (0, 0, 0))), + Some(("figure.hair.dwarf.female-2", (0, 2, -1))), + Some(("figure.hair.dwarf.female-3", (1, 1, -2))), + Some(("figure.hair.dwarf.female-4", (-1, -1, -3))), + Some(("figure.hair.dwarf.female-5", (1, -1, -2))), + Some(("figure.hair.dwarf.female-6", (0, -1, 0))), + Some(("figure.hair.dwarf.female-7", (0, 1, -2))), + Some(("figure.hair.dwarf.female-8", (1, 1, -3))), + Some(("figure.hair.dwarf.female-9", (1, 1, -1))), + Some(("figure.hair.dwarf.female-10", (1, 0, -6))), + Some(("figure.hair.dwarf.female-11", (1, -2, -1))), + Some(("figure.hair.dwarf.female-12", (0, 0, -3))), + Some(("figure.hair.dwarf.female-13", (1, -3, 0))), + Some(("figure.hair.dwarf.female-14", (1, -1, -1))), ], beard: [None], accessory: [ @@ -294,49 +371,81 @@ Some(("figure.accessory.dwarf.earrings-1", (0, 3, 0))), Some(("figure.accessory.dwarf.earrings-2", (0, 3, 0))), Some(("figure.accessory.dwarf.earrings-3", (0, 3, 0))), - ] + ], ), - (Undead, Male): ( + (Draugr, Male): ( offset: (-5.0, -4.0, -1.5), - head: ("figure.head.undead.male", (0, 2, 0)), + head: ("figure.head.draugr.male", (0, 2, 0)), eyes: [ - Some(("figure.eyes.undead.male-0", (2, 8, 4))), - Some(("figure.eyes.undead.male-1", (1, 7, 4))), - Some(("figure.eyes.undead.male-2", (1, 8, 4))), - Some(("figure.eyes.undead.male-3", (1, 8, 4))), - ], + Some(("figure.eyes.draugr.male-0", (2, 8, 3))), + Some(("figure.eyes.draugr.male-1", (2, 8, 3))), + Some(("figure.eyes.draugr.male-2", (2, 8, 3))), + Some(("figure.eyes.draugr.male-3", (2, 8, 3))), + Some(("figure.eyes.draugr.male-4", (2, 8, 4))), + Some(("figure.eyes.draugr.male-5", (2, 8, 4))), + Some(("figure.eyes.draugr.male-6", (2, 8, 4))), + Some(("figure.eyes.draugr.male-7", (2, 8, 4))), + ], hair: [ Some(("figure.hair.dwarf.bald", (-1, 1, 1))), - Some(("figure.hair.undead.male-0", (-1, 1, 1))), - Some(("figure.hair.undead.male-1", (3, -2, 0))), - Some(("figure.hair.undead.male-2", (-1, 1, 1))), // <- Modify! - Some(("figure.hair.undead.male-3", (-1, 1, 1))), // <- Modify! + Some(("figure.hair.draugr.male-0", (-1, 1, 1))), + Some(("figure.hair.draugr.male-1", (3, -2, 3))), + Some(("figure.hair.draugr.male-2", (2, 1, 3))), + Some(("figure.hair.draugr.male-3", (-1, 1, 2))), + Some(("figure.hair.draugr.male-4", (-2, 0, -1))), + Some(("figure.hair.draugr.male-5", (-1, 1, -1))), + Some(("figure.hair.draugr.male-6", (0, 1, 0))), + Some(("figure.hair.draugr.male-7", (-1, 1, 0))), + Some(("figure.hair.draugr.male-8", (1, -3, 1))), + Some(("figure.hair.draugr.male-9", (0, -1, 0))), + Some(("figure.hair.draugr.male-10", (-1, 1, -1))), + Some(("figure.hair.draugr.male-11", (1, -2, 3))), + Some(("figure.hair.draugr.male-12", (0, -2, 2))), + Some(("figure.hair.draugr.male-13", (3, 1, 4))), + ], + beard: [ + None, + Some(("figure.beard.draugr.male-0", (2, 9, -3))), + Some(("figure.beard.draugr.male-1", (0, 7, -3))), + Some(("figure.beard.draugr.male-2", (4, 9, -2))), + Some(("figure.beard.draugr.male-3", (0, 7, -3))), + Some(("figure.beard.draugr.male-4", (1, 8, -2))), ], - beard: [None], accessory: [ None, - Some(("figure.accessory.undead.male_eyepatch", (0, 1, 0))),] + Some(("figure.accessory.draugr.male_eyepatch", (3, 2, 4))), + ], ), - (Undead, Female): ( + (Draugr, Female): ( offset: (-5.0, -4.0, -2.0), - head: ("figure.head.undead.female", (0, 2, 0)), + head: ("figure.head.draugr.female", (0, 2, 0)), eyes: [ - Some(("figure.eyes.undead.female-0", (2, 8, 3))), - Some(("figure.eyes.undead.female-1", (0, 8, 3))), - Some(("figure.eyes.undead.female-2", (0, 8, 3))), - ], + Some(("figure.eyes.draugr.female-0", (2, 8, 3))), + Some(("figure.eyes.draugr.female-1", (2, 8, 3))), + Some(("figure.eyes.draugr.female-2", (2, 8, 3))), + ], hair: [ - Some(("figure.hair.undead.female-0", (0, 1, 0))), - Some(("figure.hair.undead.female-1", (-2, 0, -1))), - Some(("figure.hair.undead.female-2", (2, 1, 1))), - Some(("figure.hair.undead.female-3", (0, -3, -0))), - Some(("figure.hair.undead.female-4", (-1, 1, 0))), // <- Modify - Some(("figure.hair.undead.female-5", (-3, 1, 0))), // <- Modify! + None, + Some(("figure.hair.draugr.female-0", (1, 1, 0))), + Some(("figure.hair.draugr.female-1", (-2, 0, -1))), + Some(("figure.hair.draugr.female-2", (3, 1, -1))), + Some(("figure.hair.draugr.female-3", (0, -3, -0))), + Some(("figure.hair.draugr.female-4", (-1, 1, 1))), + Some(("figure.hair.draugr.female-5", (-1, 1, 0))), + Some(("figure.hair.draugr.female-6", (-1, 1, -2))), + Some(("figure.hair.draugr.female-7", (-1, -4, 1))), + Some(("figure.hair.draugr.female-8", (-1, 1, -1))), + Some(("figure.hair.draugr.female-9", (3, -2, 1))), + Some(("figure.hair.draugr.female-10", (-1, -4, 0))), + Some(("figure.hair.draugr.female-11", (-1, -4, 1))), + Some(("figure.hair.draugr.female-12", (-1, -1, 0))), + Some(("figure.hair.draugr.female-13", (-1, 0, -2))), ], beard: [None], accessory: [ None, - Some(("figure.accessory.undead.female_eyepatch", (0, 1, -1))),] + Some(("figure.accessory.draugr.female_eyepatch", (3, 2, 3))), + ], ), (Danari, Male): ( offset: (-9.0, -4.0, -2.0), @@ -350,45 +459,55 @@ Some(("figure.eyes.general.male_scar-0", (5, 9, 4))), Some(("figure.eyes.general.male_blind-0", (5, 9, 4))), Some(("figure.eyes.general.male_old", (4, 9, 3))), - ], + ], hair: [ + None, Some(("figure.hair.danari.male-0", (3, 1, 2))), Some(("figure.hair.danari.male-1", (3, 1, 2))), Some(("figure.hair.danari.male-2", (3, -2, 3))), - Some(("figure.hair.danari.male-3", (-1, -2, 3))), - None, + Some(("figure.hair.danari.male-3", (4, -2, 3))), + Some(("figure.hair.danari.male-4", (3, 0, 3))), + Some(("figure.hair.danari.male-5", (3, -4, 3))), + Some(("figure.hair.danari.male-6", (4, 1, 2))), + Some(("figure.hair.danari.male-7", (2, 0, 0))), + Some(("figure.hair.danari.male-8", (4, -2, 2))), + Some(("figure.hair.danari.male-9", (2, 0, 2))), + Some(("figure.hair.danari.male-10", (2, 0, 2))), + Some(("figure.hair.danari.male-11", (3, 1, 2))), + Some(("figure.hair.danari.male-12", (3, -2, 4))), + Some(("figure.hair.danari.male-13", (3, 0, 2))), ], beard: [ None, Some(("figure.beard.danari.danari-0", (4, 6, -1))), - Some(("figure.beard.danari.danari-1", (4, 6, -5))), - Some(("figure.beard.danari.danari-2", (7, 8, -1))), - Some(("figure.beard.danari.danari-3", (3, 6, -2))), - Some(("figure.beard.danari.danari-4", (3, 5, -2))), - Some(("figure.beard.danari.danari-5", (4, 6, 2))), + Some(("figure.beard.danari.danari-1", (4, 6, -1))), + Some(("figure.beard.danari.danari-2", (6, 8, -1))), + Some(("figure.beard.danari.danari-3", (4, 6, -1))), + Some(("figure.beard.danari.danari-4", (3, 6, -2))), + Some(("figure.beard.danari.danari-5", (3, 6, 1))), Some(("figure.beard.danari.danari-6", (4, 6, 1))), Some(("figure.beard.danari.danari-7", (4, 6, -2))), - Some(("figure.beard.danari.danari-8", (4, 6, -5))), - Some(("figure.beard.danari.danari-9", (4, 5, -7))), - Some(("figure.beard.danari.danari-10", (4, 6, -2))), - Some(("figure.beard.danari.danari-11", (4, 6, -5))), + Some(("figure.beard.danari.danari-8", (4, 6, -4))), + Some(("figure.beard.danari.danari-9", (4, 6, -4))), + Some(("figure.beard.danari.danari-10", (4, 6, -1))), + Some(("figure.beard.danari.danari-11", (4, 6, -2))), Some(("figure.beard.danari.danari-12", (6, 6, 0))), - Some(("figure.beard.danari.danari-13", (7, 10, 0))), - Some(("figure.beard.danari.danari-14", (5, 7, -1))), - ], + Some(("figure.beard.danari.danari-13", (6, 10, -2))), + Some(("figure.beard.danari.danari-14", (6, 10, 2))), + ], accessory: [ Some(("figure.accessory.danari.horns-0", (4, 8, 8))), - Some(("figure.accessory.danari.horns-1", (2, 3, 8))), - Some(("figure.accessory.danari.horns-2", (2, 1, 6))), - Some(("figure.accessory.danari.horns-3", (4, 8, 8))), - Some(("figure.accessory.danari.horns-4", (2, 4, 6))), - Some(("figure.accessory.danari.horns-5", (2, 3, 8))), - Some(("figure.accessory.danari.horns-6", (2, 3, 8))), - ] + Some(("figure.accessory.danari.horns-1", (4, 4, 8))), + Some(("figure.accessory.danari.horns-2", (4, 1, 8))), + Some(("figure.accessory.danari.horns-3", (5, 8, 8))), + Some(("figure.accessory.danari.horns-4", (3, 7, 8))), + Some(("figure.accessory.danari.horns-5", (2, 5, 8))), + Some(("figure.accessory.danari.horns-6", (3, 6, 8))), + ], ), (Danari, Female): ( offset: (-9.0, -4.0, -2.0), - head: ("figure.head.danari.female", (0, 2, 2)), + head: ("figure.head.danari.female", (1, 2, 2)), eyes: [ Some(("figure.eyes.general.female_default-0", (4, 9, 4))), Some(("figure.eyes.general.female_styled-0", (4, 9, 4))), @@ -396,23 +515,34 @@ Some(("figure.eyes.general.female_heterochromia-0", (4, 9, 4))), Some(("figure.eyes.general.female_scar-0", (4, 9, 4))), Some(("figure.eyes.general.female_blind-0", (4, 9, 4))), - ], + ], hair: [ Some(("figure.hair.danari.female-0", (3, -4, 1))), - Some(("figure.hair.danari.female-1", (1, 1, 3))), - Some(("figure.hair.danari.female-2", (3, 1, 0))), // <- Ears - Some(("figure.hair.danari.female-3", (1, -3, 0))), + Some(("figure.hair.danari.female-1", (2, -1, 2))), + Some(("figure.hair.danari.female-2", (3, 1, 1))), + Some(("figure.hair.danari.female-3", (2, 0, 0))), + Some(("figure.hair.danari.female-4", (3, -3, 2))), + Some(("figure.hair.danari.female-5", (2, -1, 3))), + Some(("figure.hair.danari.female-6", (3, 0, 0))), + Some(("figure.hair.danari.female-7", (3, -2, 2))), + Some(("figure.hair.danari.female-8", (3, 0, 0))), + Some(("figure.hair.danari.female-9", (3, 1, 1))), + Some(("figure.hair.danari.female-10", (3, 0, 2))), + Some(("figure.hair.danari.female-11", (3, 0, 2))), + Some(("figure.hair.danari.female-12", (2, 0, 1))), + Some(("figure.hair.danari.female-13", (3, 0, 2))), + Some(("figure.hair.danari.female-14", (3, -3, 3))), ], beard: [None], - accessory: [ + accessory: [ Some(("figure.accessory.danari.horns-0", (4, 8, 8))), - Some(("figure.accessory.danari.horns-1", (2, 3, 8))), - Some(("figure.accessory.danari.horns-2", (2, 1, 6))), - Some(("figure.accessory.danari.horns-3", (4, 8, 8))), - Some(("figure.accessory.danari.horns-4", (2, 4, 6))), - Some(("figure.accessory.danari.horns-5", (2, 3, 8))), - Some(("figure.accessory.danari.horns-6", (2, 3, 8))), - ] + Some(("figure.accessory.danari.horns-1", (4, 4, 8))), + Some(("figure.accessory.danari.horns-2", (4, 1, 8))), + Some(("figure.accessory.danari.horns-3", (5, 8, 8))), + Some(("figure.accessory.danari.horns-4", (3, 7, 8))), + Some(("figure.accessory.danari.horns-5", (2, 5, 8))), + Some(("figure.accessory.danari.horns-6", (3, 6, 8))), + ], ), // More here }) diff --git a/assets/world/features.ron b/assets/world/features.ron index c7d3319968..27aef3b84a 100644 --- a/assets/world/features.ron +++ b/assets/world/features.ron @@ -3,7 +3,7 @@ ( caverns: false, // TODO: Disabled by default until cave overhaul - caves: true, + caves: false, rocks: true, shrubs: true, trees: true, diff --git a/client/Cargo.toml b/client/Cargo.toml index 9c87139e73..04999fc671 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "veloren-client" -version = "0.12.0" +version = "0.13.0" authors = ["Joshua Barretto "] edition = "2021" diff --git a/client/src/addr.rs b/client/src/addr.rs index 59958d574e..01c1e0e92b 100644 --- a/client/src/addr.rs +++ b/client/src/addr.rs @@ -55,7 +55,7 @@ pub(crate) async fn try_connect( f: F, ) -> Result where - F: Fn(std::net::SocketAddr) -> network::ConnectAddr, + F: Fn(SocketAddr) -> network::ConnectAddr, { use crate::error::Error; let mut participant = None; @@ -77,7 +77,7 @@ where fn sort_ipv6(s: impl Iterator, prefer_ipv6: bool) -> Vec { let (mut first_addrs, mut second_addrs) = s.partition::, _>(|a| a.is_ipv6() == prefer_ipv6); - std::iter::Iterator::chain(first_addrs.drain(..), second_addrs.drain(..)).collect::>() + Iterator::chain(first_addrs.drain(..), second_addrs.drain(..)).collect::>() } #[cfg(test)] diff --git a/client/src/bin/bot/main.rs b/client/src/bin/bot/main.rs index d4362b9b12..d4529199f2 100644 --- a/client/src/bin/bot/main.rs +++ b/client/src/bin/bot/main.rs @@ -183,7 +183,7 @@ impl BotClient { } fn create_default_body() -> Body { - comp::body::humanoid::Body { + Body { species: comp::body::humanoid::Species::Human, body_type: comp::body::humanoid::BodyType::Male, hair_style: 0, @@ -208,14 +208,14 @@ impl BotClient { let client = match self.bot_clients.get_mut(&cred.username) { Some(c) => c, None => { - tracing::trace!(?cred.username, "skip not logged in client"); + trace!(?cred.username, "skip not logged in client"); continue; }, }; let list = client.character_list(); if list.loading || list.characters.is_empty() { - tracing::trace!(?cred.username, "skip client as it has no character"); + trace!(?cred.username, "skip client as it has no character"); continue; } diff --git a/client/src/bin/bot/settings.rs b/client/src/bin/bot/settings.rs index 1fa34730f2..54d35387ec 100644 --- a/client/src/bin/bot/settings.rs +++ b/client/src/bin/bot/settings.rs @@ -36,7 +36,7 @@ impl Settings { let mut new_path = path.to_owned(); new_path.pop(); new_path.push("settings.invalid.ron"); - if let Err(e) = std::fs::rename(&path, &new_path) { + if let Err(e) = fs::rename(&path, &new_path) { warn!(?e, ?path, ?new_path, "Failed to rename settings file."); } }, diff --git a/client/src/bin/swarm/main.rs b/client/src/bin/swarm/main.rs index 690ff39266..c776f8186f 100644 --- a/client/src/bin/swarm/main.rs +++ b/client/src/bin/swarm/main.rs @@ -217,8 +217,8 @@ fn run_client( let entity = client.entity(); // Move or stay still depending on specified options // TODO: make sure server cheat protections aren't triggering - let pos = common::comp::Pos(position(index, opt) + world_center); - let vel = common::comp::Vel(Default::default()); + let pos = comp::Pos(position(index, opt) + world_center); + let vel = comp::Vel(Default::default()); client .state_mut() .write_component_ignore_entity_dead(entity, pos); diff --git a/client/src/lib.rs b/client/src/lib.rs index 0a7dce89c0..291ef88110 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -164,7 +164,7 @@ impl WeatherLerp { self.old = mem::replace(&mut self.new, (weather, Instant::now())); } - // TODO: Make impprovements to this interpolation, it's main issue is assuming + // TODO: Make improvements to this interpolation, it's main issue is assuming // that updates come at regular intervals. fn update(&mut self, to_update: &mut WeatherGrid) { prof_span!("WeatherLerp::update"); @@ -340,7 +340,7 @@ impl Client { ping_stream.send(PingMsg::Ping)?; // Wait for initial sync - let mut ping_interval = tokio::time::interval(core::time::Duration::from_secs(1)); + let mut ping_interval = tokio::time::interval(Duration::from_secs(1)); let (terrain_tx_, terrain_rx) = mpsc::bounded(TOTAL_PENDING_CHUNKS_LIMIT); let (terrain_tx, terrain_rx_): (mpsc::Sender, _) = mpsc::bounded(TOTAL_PENDING_CHUNKS_LIMIT); // Spawn the thread that handles terrain update deserialization. @@ -644,7 +644,7 @@ impl Client { let mut raw = vec![0u8; 4 * world_map_rgba.len()]; LittleEndian::write_u32_into(rgb, &mut raw); Ok(Arc::new( - image::DynamicImage::ImageRgba8({ + DynamicImage::ImageRgba8({ // Should not fail if the dimensions are correct. let map = image::ImageBuffer::from_raw(u32::from(map_size.x), u32::from(map_size.y), raw); @@ -1036,7 +1036,7 @@ impl Client { .map_or(false, |cs| matches!(cs, CharacterState::Glide(_))) } - pub fn split_swap_slots(&mut self, a: comp::slot::Slot, b: comp::slot::Slot) { + pub fn split_swap_slots(&mut self, a: Slot, b: Slot) { match (a, b) { (Slot::Equip(equip), slot) | (slot, Slot::Equip(equip)) => self.control_action( ControlAction::InventoryAction(InventoryAction::Swap(equip, slot)), @@ -1049,7 +1049,7 @@ impl Client { } } - pub fn split_drop_slot(&mut self, slot: comp::slot::Slot) { + pub fn split_drop_slot(&mut self, slot: Slot) { match slot { Slot::Equip(equip) => { self.control_action(ControlAction::InventoryAction(InventoryAction::Drop(equip))) @@ -1283,9 +1283,7 @@ impl Client { pub fn max_group_size(&self) -> u32 { self.max_group_size } - pub fn invite(&self) -> Option<(Uid, std::time::Instant, std::time::Duration, InviteKind)> { - self.invite - } + pub fn invite(&self) -> Option<(Uid, Instant, Duration, InviteKind)> { self.invite } pub fn group_info(&self) -> Option<(String, Uid)> { self.group_leader.map(|l| ("Group".into(), l)) // TODO @@ -1543,20 +1541,22 @@ impl Client { if let Some(position) = self.current::() { player_alt = position.0.z; } - let mut contains_cave = false; + //let mut contains_cave = false; let mut terrain_alt = 0.0; let mut contains_dungeon = false; let mut contains_settlement = false; if let Some(chunk) = self.current_chunk() { terrain_alt = chunk.meta().alt(); - contains_cave = chunk.meta().contains_cave(); + //contains_cave = chunk.meta().contains_cave(); contains_dungeon = chunk.meta().contains_dungeon(); contains_settlement = chunk.meta().contains_settlement(); } - if player_alt < (terrain_alt - 25.0) && contains_cave { - SitesKind::Cave - } else if player_alt < (terrain_alt - 25.0) && contains_dungeon { - SitesKind::Dungeon + if player_alt < terrain_alt - 40.0 { + if contains_dungeon { + SitesKind::Dungeon + } else { + SitesKind::Cave + } } else if contains_settlement { SitesKind::Settlement } else { @@ -1574,7 +1574,7 @@ impl Client { pub fn send_chat(&mut self, message: String) { match validate_chat_msg(&message) { Ok(()) => self.send_msg(ClientGeneral::ChatMsg(message)), - Err(ChatMsgValidationError::TooLong) => tracing::warn!( + Err(ChatMsgValidationError::TooLong) => warn!( "Attempted to send a message that's too long (Over {} bytes)", MAX_BYTES_CHAT_MSG ), @@ -1613,7 +1613,7 @@ impl Client { .map_or((None, None), |inv| { let tool_kind = |slot| { inv.equipped(slot).and_then(|item| match &*item.kind() { - comp::item::ItemKind::Tool(tool) => Some(tool.kind), + ItemKind::Tool(tool) => Some(tool.kind), _ => None, }) }; @@ -2057,7 +2057,7 @@ impl Client { }, ServerGeneral::SetPlayerEntity(uid) => { if let Some(entity) = self.state.ecs().entity_from_uid(uid.0) { - let old_player_entity = core::mem::replace( + let old_player_entity = mem::replace( &mut *self.state.ecs_mut().write_resource(), PlayerEntity(Some(entity)), ); @@ -2205,7 +2205,7 @@ impl Client { timeout, kind, } => { - self.invite = Some((inviter, std::time::Instant::now(), timeout, kind)); + self.invite = Some((inviter, Instant::now(), timeout, kind)); }, ServerGeneral::InvitePending(uid) => { if !self.pending_invites.insert(uid) { @@ -2280,7 +2280,7 @@ impl Client { }); }, ServerGeneral::UpdatePendingTrade(id, trade, pricing) => { - tracing::trace!("UpdatePendingTrade {:?} {:?}", id, trade); + trace!("UpdatePendingTrade {:?} {:?}", id, trade); self.pending_trade = Some((id, trade, pricing)); }, ServerGeneral::FinishedTrade(result) => { @@ -2950,7 +2950,7 @@ mod tests { //tick let events_result: Result, Error> = - client.tick(comp::ControllerInputs::default(), clock.dt(), |_| {}); + client.tick(ControllerInputs::default(), clock.dt(), |_| {}); //chat functionality client.send_chat("foobar".to_string()); @@ -2965,11 +2965,11 @@ mod tests { }, Event::Disconnect => {}, Event::DisconnectionNotification(_) => { - tracing::debug!("Will be disconnected soon! :/") + debug!("Will be disconnected soon! :/") }, Event::Notification(notification) => { let notification: Notification = notification; - tracing::debug!("Notification: {:?}", notification); + debug!("Notification: {:?}", notification); }, _ => {}, } diff --git a/common/assets/src/lib.rs b/common/assets/src/lib.rs index 6da0404fd9..e6af48ca9b 100644 --- a/common/assets/src/lib.rs +++ b/common/assets/src/lib.rs @@ -179,7 +179,7 @@ pub struct DotVoxAsset(pub DotVoxData); pub struct DotVoxLoader; impl Loader for DotVoxLoader { - fn load(content: std::borrow::Cow<[u8]>, _: &str) -> Result { + fn load(content: Cow<[u8]>, _: &str) -> Result { let data = dot_vox::load_bytes(&content).map_err(|err| err.to_owned())?; Ok(DotVoxAsset(data)) } @@ -201,7 +201,7 @@ impl Asset for ObjAsset { pub struct ObjAssetLoader; impl Loader for ObjAssetLoader { - fn load(content: std::borrow::Cow<[u8]>, _: &str) -> Result { + fn load(content: Cow<[u8]>, _: &str) -> Result { let data = wavefront::Obj::from_reader(&*content)?; Ok(ObjAsset(data)) } @@ -214,7 +214,7 @@ pub fn find_root() -> Option { if path.join(".git").exists() { return Some(path); } - // Search .git directory in parent directries + // Search .git directory in parent directories for ancestor in path.ancestors().take(10) { if ancestor.join(".git").exists() { return Some(ancestor.to_path_buf()); @@ -407,7 +407,7 @@ pub mod asset_tweak { /// assert_eq!(y1, 10); /// /// // you may want to remove this file later - /// std::fs::remove_file(tweak_path); + /// fs::remove_file(tweak_path); /// ``` pub fn tweak_expect(specifier: Specifier) -> T where @@ -505,7 +505,7 @@ pub mod asset_tweak { } } - /// Convinient macro to quickly tweak value. + /// Convenient macro to quickly tweak value. /// /// Will use [Specifier]`::Tweak` specifier and call /// [tweak_expect] if passed only name @@ -556,7 +556,7 @@ pub mod asset_tweak { }}; } - /// Convinient macro to quickly tweak value from some existing path. + /// Convenient macro to quickly tweak value from some existing path. /// /// Will use [Specifier]`::Asset` specifier and call /// [tweak_expect] if passed only name diff --git a/common/build.rs b/common/build.rs index 3a1d6ed8e9..4f560e1dd3 100644 --- a/common/build.rs +++ b/common/build.rs @@ -54,7 +54,7 @@ fn main() { } // Check if git-lfs is working - if std::env::var("DISABLE_GIT_LFS_CHECK").is_err() && cfg!(not(feature = "no-assets")) { + if env::var("DISABLE_GIT_LFS_CHECK").is_err() && cfg!(not(feature = "no-assets")) { let asset_path: PathBuf = ["..", "assets", "voxygen", "background", "bg_main.jpg"] .iter() .collect(); diff --git a/common/frontend/src/lib.rs b/common/frontend/src/lib.rs index 247e3b86e2..da275fdded 100644 --- a/common/frontend/src/lib.rs +++ b/common/frontend/src/lib.rs @@ -23,7 +23,7 @@ const RUST_LOG_ENV: &str = "RUST_LOG"; /// following in your environment. /// `RUST_LOG="veloren_voxygen=trace"` /// -/// more complex tracing can be done by concatenating with a `,` as seperator: +/// more complex tracing can be done by concatenating with a `,` as separator: /// - warn for `prometheus_hyper`, `dot_vox`, `gfx_device_gl::factory, /// `gfx_device_gl::shade` trace for `veloren_voxygen`, info for everything /// else diff --git a/common/net/src/msg/client.rs b/common/net/src/msg/client.rs index 9f310dd962..05efe1f407 100644 --- a/common/net/src/msg/client.rs +++ b/common/net/src/msg/client.rs @@ -31,7 +31,7 @@ pub enum ClientMsg { pub enum ClientType { /// Regular Client like Voxygen who plays the game Game, - /// A Chatonly client, which doesn't want to connect via its character + /// A Chat-only client, which doesn't want to connect via its character ChatOnly, /// A unprivileged bot, e.g. to request world information /// Or a privileged bot, e.g. to run admin commands used by server-cli diff --git a/common/net/src/msg/compression.rs b/common/net/src/msg/compression.rs index 6c5dea9d31..6969cd46a8 100644 --- a/common/net/src/msg/compression.rs +++ b/common/net/src/msg/compression.rs @@ -116,7 +116,7 @@ pub trait PackingFormula: Copy { /// A wide, short image. Shares the advantage of not wasting space with /// TallPacking (which is strictly worse, and was moved to benchmark code in /// `world`), but faster to compress and smaller since PNG compresses each -/// row indepedently, so a wide image has fewer calls to the compressor. FLIP_X +/// row independently, so a wide image has fewer calls to the compressor. FLIP_X /// has the same spatial locality preserving behavior as with TallPacking. #[derive(Debug, Clone, Copy, Serialize, Deserialize)] pub struct WidePacking(); diff --git a/common/net/src/msg/server.rs b/common/net/src/msg/server.rs index aeb7252f21..eed4d42830 100644 --- a/common/net/src/msg/server.rs +++ b/common/net/src/msg/server.rs @@ -147,23 +147,23 @@ pub enum ServerGeneral<'a> { CharacterEdited(character::CharacterId), CharacterSuccess, //Ingame related - GroupUpdate(comp::group::ChangeNotification), + GroupUpdate(comp::group::ChangeNotification), /// Indicate to the client that they are invited to join a group Invite { - inviter: sync::Uid, - timeout: std::time::Duration, + inviter: Uid, + timeout: Duration, kind: InviteKind, }, /// Indicate to the client that their sent invite was not invalid and is /// currently pending - InvitePending(sync::Uid), + InvitePending(Uid), /// Note: this could potentially include all the failure cases such as /// inviting yourself in which case the `InvitePending` message could be /// removed and the client could consider their invite pending until /// they receive this message Indicate to the client the result of their /// invite InviteComplete { - target: sync::Uid, + target: Uid, answer: InviteAnswer, kind: InviteKind, }, diff --git a/common/net/src/sync/sync_ext.rs b/common/net/src/sync/sync_ext.rs index e6ba3dcd79..d32b4b049c 100644 --- a/common/net/src/sync/sync_ext.rs +++ b/common/net/src/sync/sync_ext.rs @@ -56,7 +56,7 @@ impl WorldSyncExt for specs::World { } fn create_entity_synced(&mut self) -> specs::EntityBuilder { - self.create_entity().marked::() + self.create_entity().marked::() } fn delete_entity_and_clear_from_uid_allocator(&mut self, uid: u64) { diff --git a/common/net/src/sync/track.rs b/common/net/src/sync/track.rs index fa18d18466..2ec672885e 100644 --- a/common/net/src/sync/track.rs +++ b/common/net/src/sync/track.rs @@ -33,7 +33,7 @@ where pub fn removed(&self) -> &BitSet { &self.removed } - pub fn record_changes<'a>(&mut self, storage: &specs::ReadStorage<'a, C>) { + pub fn record_changes<'a>(&mut self, storage: &ReadStorage<'a, C>) { self.inserted.clear(); self.modified.clear(); self.removed.clear(); @@ -86,8 +86,8 @@ impl UpdateTracker { pub fn get_updates_for<'a, P>( &self, - uids: &specs::ReadStorage<'a, Uid>, - storage: &specs::ReadStorage<'a, C>, + uids: &ReadStorage<'a, Uid>, + storage: &ReadStorage<'a, C>, entity_filter: impl Join + Copy, buf: &mut Vec<(u64, CompUpdateKind

)>, ) where @@ -127,7 +127,7 @@ impl UpdateTracker { /// entity. pub fn get_update<'a, P>( &self, - storage: &specs::ReadStorage<'a, C>, + storage: &ReadStorage<'a, C>, entity: Entity, ) -> Option> where diff --git a/common/src/bin/asset_migrate.rs b/common/src/bin/asset_migrate.rs index a2ba646cbd..a881f431c0 100644 --- a/common/src/bin/asset_migrate.rs +++ b/common/src/bin/asset_migrate.rs @@ -7,7 +7,7 @@ use std::{ // If you want to migrate assets. // 1) Copy-paste old asset type to own module -// 2) Copy-pase new asset type to own module +// 2) Copy-paste new asset type to own module // (don't forget to add serde derive-s, import if needed) // 3) impl From for new asset. // 4) Reference old and new assets in old and new modules @@ -50,7 +50,7 @@ fn walk_tree(dir: &Path, root: &Path) -> io::Result> { Ok(buff) } -fn walk_with_migrate(tree: Walk, from: &Path, to: &Path) -> std::io::Result<()> +fn walk_with_migrate(tree: Walk, from: &Path, to: &Path) -> io::Result<()> where NewV: From, OldV: DeserializeOwned, diff --git a/common/src/bin/csv_export/main.rs b/common/src/bin/csv_export/main.rs index ab90b814b3..f802d2ed2c 100644 --- a/common/src/bin/csv_export/main.rs +++ b/common/src/bin/csv_export/main.rs @@ -46,7 +46,7 @@ fn armor_stats() -> Result<(), Box> { "Description", ])?; - for item in comp::item::Item::new_from_asset_glob("common.items.armor.*") + for item in Item::new_from_asset_glob("common.items.armor.*") .expect("Failed to iterate over item folders!") { match &*item.kind() { @@ -118,8 +118,8 @@ fn weapon_stats() -> Result<(), Box> { // Does all items even outside weapon folder since we check if itemkind was a // tool anyways - let items: Vec = comp::Item::new_from_asset_glob("common.items.*") - .expect("Failed to iterate over item folders!"); + let items: Vec = + Item::new_from_asset_glob("common.items.*").expect("Failed to iterate over item folders!"); for item in items.iter() { if let comp::item::ItemKind::Tool(tool) = &*item.kind() { @@ -207,8 +207,8 @@ fn all_items() -> Result<(), Box> { let mut wtr = csv::Writer::from_path("items.csv")?; wtr.write_record(&["Path", "Name"])?; - for item in comp::item::Item::new_from_asset_glob("common.items.*") - .expect("Failed to iterate over item folders!") + for item in + Item::new_from_asset_glob("common.items.*").expect("Failed to iterate over item folders!") { wtr.write_record(&[ item.item_definition_id() @@ -305,7 +305,7 @@ fn entity_drops(entity_config: &str) -> Result<(), Box> { "Quantity", ])?; - fn write_entity_loot( + fn write_entity_loot( wtr: &mut csv::Writer, asset_path: &str, ) -> Result<(), Box> { diff --git a/common/src/bin/csv_import/main.rs b/common/src/bin/csv_import/main.rs index f19ae44b37..00eac0ad23 100644 --- a/common/src/bin/csv_import/main.rs +++ b/common/src/bin/csv_import/main.rs @@ -72,7 +72,7 @@ fn armor_stats() -> Result<(), Box> { .expect("Failed to iterate over item folders!") { match &*item.kind() { - comp::item::ItemKind::Armor(armor) => { + ItemKind::Armor(armor) => { if let ArmorKind::Bag = armor.kind { continue; } @@ -190,20 +190,20 @@ fn armor_stats() -> Result<(), Box> { let quality = if let Some(quality_raw) = record.get(headers["Quality"]) { match quality_raw { - "Low" => comp::item::Quality::Low, - "Common" => comp::item::Quality::Common, - "Moderate" => comp::item::Quality::Moderate, - "High" => comp::item::Quality::High, - "Epic" => comp::item::Quality::Epic, - "Legendary" => comp::item::Quality::Legendary, - "Artifact" => comp::item::Quality::Artifact, - "Debug" => comp::item::Quality::Debug, + "Low" => Quality::Low, + "Common" => Quality::Common, + "Moderate" => Quality::Moderate, + "High" => Quality::High, + "Epic" => Quality::Epic, + "Legendary" => Quality::Legendary, + "Artifact" => Quality::Artifact, + "Debug" => Quality::Debug, _ => { eprintln!( "Unknown quality variant for {:?}", item.item_definition_id() ); - comp::item::Quality::Debug + Quality::Debug }, } } else { @@ -211,7 +211,7 @@ fn armor_stats() -> Result<(), Box> { "Could not unwrap quality for {:?}", item.item_definition_id() ); - comp::item::Quality::Debug + Quality::Debug }; let description = record @@ -284,7 +284,7 @@ fn weapon_stats() -> Result<(), Box> { .expect("Failed to iterate over item folders!"); for item in items.iter() { - if let comp::item::ItemKind::Tool(tool) = &*item.kind() { + if let ItemKind::Tool(tool) = &*item.kind() { if let Ok(ref record) = record { if item.item_definition_id() == ItemDefinitionId::Simple( @@ -328,19 +328,19 @@ fn weapon_stats() -> Result<(), Box> { let hands = if let Some(hands_raw) = record.get(headers["Hands"]) { match hands_raw { - "One" | "1" | "1h" => comp::item::tool::Hands::One, - "Two" | "2" | "2h" => comp::item::tool::Hands::Two, + "One" | "1" | "1h" => Hands::One, + "Two" | "2" | "2h" => Hands::Two, _ => { eprintln!( "Unknown hand variant for {:?}", item.item_definition_id() ); - comp::item::tool::Hands::Two + Hands::Two }, } } else { eprintln!("Could not unwrap hand for {:?}", item.item_definition_id()); - comp::item::tool::Hands::Two + Hands::Two }; let crit_chance: f32 = record @@ -392,20 +392,20 @@ fn weapon_stats() -> Result<(), Box> { let quality = if let Some(quality_raw) = record.get(headers["Quality"]) { match quality_raw { - "Low" => comp::item::Quality::Low, - "Common" => comp::item::Quality::Common, - "Moderate" => comp::item::Quality::Moderate, - "High" => comp::item::Quality::High, - "Epic" => comp::item::Quality::Epic, - "Legendary" => comp::item::Quality::Legendary, - "Artifact" => comp::item::Quality::Artifact, - "Debug" => comp::item::Quality::Debug, + "Low" => Quality::Low, + "Common" => Quality::Common, + "Moderate" => Quality::Moderate, + "High" => Quality::High, + "Epic" => Quality::Epic, + "Legendary" => Quality::Legendary, + "Artifact" => Quality::Artifact, + "Debug" => Quality::Debug, _ => { eprintln!( "Unknown quality variant for {:?}", item.item_definition_id() ); - comp::item::Quality::Debug + Quality::Debug }, } } else { @@ -413,7 +413,7 @@ fn weapon_stats() -> Result<(), Box> { "Could not unwrap quality for {:?}", item.item_definition_id() ); - comp::item::Quality::Debug + Quality::Debug }; let description = record.get(headers["Description"]).expect(&format!( diff --git a/common/src/cmd.rs b/common/src/cmd.rs index 3d13aad316..96aea26498 100644 --- a/common/src/cmd.rs +++ b/common/src/cmd.rs @@ -135,7 +135,7 @@ lazy_static! { pub static ref BUFF_PARSER: HashMap = { let string_from_buff = |kind| match kind { BuffKind::Burning => "burning", - BuffKind::Regeneration => "regeration", + BuffKind::Regeneration => "regeneration", BuffKind::Saturation => "saturation", BuffKind::Bleeding => "bleeding", BuffKind::Cursed => "cursed", @@ -305,6 +305,7 @@ pub enum ServerChatCommand { CreateLocation, DeleteLocation, WeatherZone, + Lightning, } impl ServerChatCommand { @@ -703,6 +704,9 @@ impl ServerChatCommand { "Create a weather zone", Some(Admin), ), + ServerChatCommand::Lightning => { + cmd(vec![], "Lightning strike at current position", Some(Admin)) + }, } } @@ -781,6 +785,7 @@ impl ServerChatCommand { ServerChatCommand::CreateLocation => "create_location", ServerChatCommand::DeleteLocation => "delete_location", ServerChatCommand::WeatherZone => "weather_zone", + ServerChatCommand::Lightning => "lightning", } } @@ -799,7 +804,7 @@ impl ServerChatCommand { } /// Produce an iterator over all the available commands - pub fn iter() -> impl Iterator { ::iter() } + pub fn iter() -> impl Iterator { ::iter() } /// A message that explains what the command does pub fn help_string(&self) -> String { diff --git a/common/src/combat.rs b/common/src/combat.rs index a3df0817cb..7fd95ca688 100644 --- a/common/src/combat.rs +++ b/common/src/combat.rs @@ -352,7 +352,7 @@ impl Attack { } }, CombatEffect::Lifesteal(l) => { - // Not modified by strength_modifer as damage already is + // Not modified by strength_modifier as damage already is if let Some(attacker_entity) = attacker.map(|a| a.entity) { let change = HealthChange { amount: applied_damage * l, @@ -499,7 +499,7 @@ impl Attack { } }, CombatEffect::Lifesteal(l) => { - // Not modified by strength_modifer as damage already is + // Not modified by strength_modifier as damage already is if let Some(attacker_entity) = attacker.map(|a| a.entity) { let change = HealthChange { amount: accumulated_damage * l, @@ -1162,7 +1162,7 @@ pub fn compute_crit_mult(inventory: Option<&Inventory>, msm: &MaterialStatManife }) } -/// Computes the energy reward modifer from worn armor +/// Computes the energy reward modifier from worn armor #[cfg(not(target_arch = "wasm32"))] pub fn compute_energy_reward_mod(inventory: Option<&Inventory>, msm: &MaterialStatManifest) -> f32 { // Starts with a value of 1.0 when summing the stats from each armor piece, and diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 4653b7fb4a..b988a8b643 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -195,7 +195,7 @@ impl<'a> From<&'a Body> for Psyche { humanoid::Species::Elf => 0.4, humanoid::Species::Human => 0.4, humanoid::Species::Orc => 0.3, - humanoid::Species::Undead => 0.3, + humanoid::Species::Draugr => 0.3, }, Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { quadruped_small::Species::Pig => 0.5, @@ -217,7 +217,7 @@ impl<'a> From<&'a Body> for Psyche { quadruped_small::Species::Goat => 0.5, quadruped_small::Species::Porcupine => 0.7, quadruped_small::Species::Turtle => 0.7, - // FIXME: This is to balance for enemy rats in dunegeons + // FIXME: This is to balance for enemy rats in dungeons // Normal rats should probably always flee. quadruped_small::Species::Rat => 0.0, quadruped_small::Species::Beaver => 0.7, @@ -546,7 +546,7 @@ impl Agent { self } - /// Makes agent aggresive without warning + /// Makes agent aggressive without warning #[must_use] pub fn with_aggro_no_warn(mut self) -> Self { self.psyche.aggro_dist = None; diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index b245699f07..c46b4d3d64 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -289,7 +289,7 @@ impl Body { Body::FishSmall(_) => 1.0, Body::Golem(_) => 10_000.0, Body::Humanoid(humanoid) => { - // Understand that chaning the mass values can have effects + // Understand that changing the mass values can have effects // on multiple systems. // // If you want to change that value, consult with @@ -568,8 +568,8 @@ impl Body { } } - // How far away other entities should try to be. Will be added uppon the other - // entitys spacing_radius. So an entity with 2.0 and an entity with 3.0 will + // How far away other entities should try to be. Will be added upon the other + // entity's spacing_radius. So an entity with 2.0 and an entity with 3.0 will // lead to that both entities will try to keep 5.0 units away from each // other. pub fn spacing_radius(&self) -> f32 { diff --git a/common/src/comp/body/humanoid.rs b/common/src/comp/body/humanoid.rs index 04af7d4d8a..a2f5ea2e17 100644 --- a/common/src/comp/body/humanoid.rs +++ b/common/src/comp/body/humanoid.rs @@ -76,8 +76,8 @@ impl Body { (Species::Elf, BodyType::Female) => 0.76, (Species::Dwarf, BodyType::Male) => 0.67, (Species::Dwarf, BodyType::Female) => 0.62, - (Species::Undead, BodyType::Male) => 0.78, - (Species::Undead, BodyType::Female) => 0.72, + (Species::Draugr, BodyType::Male) => 0.78, + (Species::Draugr, BodyType::Female) => 0.72, (Species::Danari, BodyType::Male) => 0.56, (Species::Danari, BodyType::Female) => 0.56, } @@ -98,7 +98,7 @@ make_case_elim!( Elf = 2, Human = 3, Orc = 4, - Undead = 5, + Draugr = 5, } ); @@ -112,7 +112,7 @@ pub struct AllSpecies { pub elf: SpeciesMeta, pub human: SpeciesMeta, pub orc: SpeciesMeta, - pub undead: SpeciesMeta, + pub draugr: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -126,7 +126,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Elf => &self.elf, Species::Human => &self.human, Species::Orc => &self.orc, - Species::Undead => &self.undead, + Species::Draugr => &self.draugr, } } } @@ -137,7 +137,7 @@ pub const ALL_SPECIES: [Species; 6] = [ Species::Elf, Species::Human, Species::Orc, - Species::Undead, + Species::Draugr, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { @@ -148,104 +148,139 @@ impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { } // Skin colors -pub const DANARI_SKIN_COLORS: [Skin; 4] = [ +pub const DANARI_SKIN_COLORS: [Skin; 7] = [ Skin::DanariOne, Skin::DanariTwo, Skin::DanariThree, Skin::DanariFour, + Skin::DanariFive, + Skin::DanariSix, + Skin::DanariSeven, ]; pub const DWARF_SKIN_COLORS: [Skin; 14] = [ - Skin::Skin1, - Skin::Skin2, - Skin::Skin3, - Skin::Skin4, - Skin::Skin5, - Skin::Skin6, - Skin::Skin7, - Skin::Skin8, - Skin::Skin9, - Skin::Skin10, - Skin::Skin11, - Skin::Skin12, - Skin::Iron, - Skin::Steel, + Skin::DwarfOne, + Skin::DwarfTwo, + Skin::DwarfThree, + Skin::DwarfFour, + Skin::DwarfFive, + Skin::DwarfSix, + Skin::DwarfSeven, + Skin::DwarfEight, + Skin::DwarfNine, + Skin::DwarfTen, + Skin::DwarfEleven, + Skin::DwarfTwelve, + Skin::DwarfThirteen, + Skin::DwarfFourteen, ]; -pub const ELF_SKIN_COLORS: [Skin; 13] = [ - Skin::Skin1, - Skin::Skin2, - Skin::Skin3, - Skin::Skin5, - Skin::Skin6, - Skin::Skin7, - Skin::Skin8, - Skin::Skin9, - Skin::Skin10, - Skin::Skin11, - Skin::Skin12, +pub const ELF_SKIN_COLORS: [Skin; 18] = [ Skin::ElfOne, Skin::ElfTwo, - //Skin::ElfThree, + Skin::ElfThree, + Skin::ElfFour, + Skin::ElfFive, + Skin::ElfSix, + Skin::ElfSeven, + Skin::ElfEight, + Skin::ElfNine, + Skin::ElfTen, + Skin::ElfEleven, + Skin::ElfTwelve, + Skin::ElfThirteen, + Skin::ElfFourteen, + Skin::ElfFifteen, + Skin::ElfSixteen, + Skin::ElfSeventeen, + Skin::ElfEighteen, ]; pub const HUMAN_SKIN_COLORS: [Skin; 18] = [ - Skin::Skin1, - Skin::Skin2, - Skin::Skin3, - Skin::Skin4, - Skin::Skin5, - Skin::Skin6, - Skin::Skin7, - Skin::Skin8, - Skin::Skin9, - Skin::Skin10, - Skin::Skin11, - Skin::Skin12, - Skin::Skin13, - Skin::Skin14, - Skin::Skin15, - Skin::Skin16, - Skin::Skin17, - Skin::Skin18, + Skin::HumanOne, + Skin::HumanTwo, + Skin::HumanThree, + Skin::HumanFour, + Skin::HumanFive, + Skin::HumanSix, + Skin::HumanSeven, + Skin::HumanEight, + Skin::HumanNine, + Skin::HumanTen, + Skin::HumanEleven, + Skin::HumanTwelve, + Skin::HumanThirteen, + Skin::HumanFourteen, + Skin::HumanFifteen, + Skin::HumanSixteen, + Skin::HumanSeventeen, + Skin::HumanEighteen, +]; +pub const ORC_SKIN_COLORS: [Skin; 8] = [ + Skin::OrcOne, + Skin::OrcTwo, + Skin::OrcThree, + Skin::OrcFour, + Skin::OrcFive, + Skin::OrcSix, + Skin::OrcSeven, + Skin::OrcEight, +]; +pub const DRAUGR_SKIN_COLORS: [Skin; 9] = [ + Skin::DraugrOne, + Skin::DraugrTwo, + Skin::DraugrThree, + Skin::DraugrFour, + Skin::DraugrFive, + Skin::DraugrSix, + Skin::DraugrSeven, + Skin::DraugrEight, + Skin::DraugrNine, ]; -pub const ORC_SKIN_COLORS: [Skin; 4] = [Skin::OrcOne, Skin::OrcTwo, Skin::OrcThree, Skin::OrcFour]; -pub const UNDEAD_SKIN_COLORS: [Skin; 3] = [Skin::UndeadOne, Skin::UndeadTwo, Skin::UndeadThree]; // Eye colors -pub const DANARI_EYE_COLORS: [EyeColor; 3] = [ - EyeColor::CuriousGreen, +pub const DANARI_EYE_COLORS: [EyeColor; 4] = [ + EyeColor::EmeraldGreen, EyeColor::LoyalBrown, + EyeColor::RegalPurple, EyeColor::ViciousRed, ]; -pub const DWARF_EYE_COLORS: [EyeColor; 4] = [ - EyeColor::CuriousGreen, +pub const DWARF_EYE_COLORS: [EyeColor; 6] = [ + EyeColor::AmberYellow, + EyeColor::CornflowerBlue, EyeColor::LoyalBrown, EyeColor::NobleBlue, - EyeColor::CornflowerBlue, -]; -pub const ELF_EYE_COLORS: [EyeColor; 4] = [ - EyeColor::NobleBlue, - EyeColor::CornflowerBlue, - EyeColor::CuriousGreen, - EyeColor::LoyalBrown, -]; -pub const HUMAN_EYE_COLORS: [EyeColor; 4] = [ - EyeColor::NobleBlue, - EyeColor::CornflowerBlue, - EyeColor::CuriousGreen, - EyeColor::LoyalBrown, -]; -pub const ORC_EYE_COLORS: [EyeColor; 5] = [ - EyeColor::LoyalBrown, - EyeColor::ExoticPurple, - EyeColor::AmberOrange, EyeColor::PineGreen, - EyeColor::CornflowerBlue, + EyeColor::RustBrown, ]; -pub const UNDEAD_EYE_COLORS: [EyeColor; 5] = [ - EyeColor::ViciousRed, - EyeColor::PumpkinOrange, +pub const ELF_EYE_COLORS: [EyeColor; 7] = [ + EyeColor::AmberYellow, + EyeColor::BrightBrown, + EyeColor::EmeraldGreen, + EyeColor::NobleBlue, + EyeColor::SapphireBlue, + EyeColor::RegalPurple, + EyeColor::RubyRed, +]; +pub const HUMAN_EYE_COLORS: [EyeColor; 5] = [ + EyeColor::NobleBlue, + EyeColor::CornflowerBlue, + EyeColor::CuriousGreen, + EyeColor::LoyalBrown, + EyeColor::VigorousBlack, +]; +pub const ORC_EYE_COLORS: [EyeColor; 6] = [ + EyeColor::AmberYellow, + EyeColor::CornflowerBlue, + EyeColor::ExoticPurple, + EyeColor::LoyalBrown, + EyeColor::PineGreen, + EyeColor::RustBrown, +]; +pub const DRAUGR_EYE_COLORS: [EyeColor; 6] = [ + EyeColor::FrozenBlue, EyeColor::GhastlyYellow, EyeColor::MagicPurple, + EyeColor::PumpkinOrange, EyeColor::ToxicGreen, + EyeColor::ViciousRed, ]; impl Species { @@ -256,7 +291,7 @@ impl Species { Species::Elf => &ELF_SKIN_COLORS, Species::Human => &HUMAN_SKIN_COLORS, Species::Orc => &ORC_SKIN_COLORS, - Species::Undead => &UNDEAD_SKIN_COLORS, + Species::Draugr => &DRAUGR_SKIN_COLORS, } } @@ -267,7 +302,7 @@ impl Species { Species::Elf => &ELF_EYE_COLORS, Species::Human => &HUMAN_EYE_COLORS, Species::Orc => &ORC_EYE_COLORS, - Species::Undead => &UNDEAD_EYE_COLORS, + Species::Draugr => &DRAUGR_EYE_COLORS, } } @@ -278,12 +313,12 @@ impl Species { /// represent per-species stuff (or have some other solution for validity). pub fn num_hair_colors(self) -> u8 { match self { - Species::Danari => 12, + Species::Danari => 17, Species::Dwarf => 21, Species::Elf => 24, Species::Human => 22, - Species::Orc => 11, - Species::Undead => 22, + Species::Orc => 13, + Species::Draugr => 25, } } @@ -291,7 +326,7 @@ impl Species { self.skin_colors() .get(val as usize) .copied() - .unwrap_or(Skin::Skin3) + .unwrap_or(Skin::HumanThree) } pub fn num_skin_colors(self) -> u8 { self.skin_colors().len() as u8 } @@ -307,18 +342,18 @@ impl Species { pub fn num_hair_styles(self, body_type: BodyType) -> u8 { match (self, body_type) { - (Species::Danari, BodyType::Female) => 4, - (Species::Danari, BodyType::Male) => 5, - (Species::Dwarf, BodyType::Female) => 8, - (Species::Dwarf, BodyType::Male) => 8, - (Species::Elf, BodyType::Female) => 21, - (Species::Elf, BodyType::Male) => 4, - (Species::Human, BodyType::Female) => 19, - (Species::Human, BodyType::Male) => 18, - (Species::Orc, BodyType::Female) => 7, - (Species::Orc, BodyType::Male) => 8, - (Species::Undead, BodyType::Female) => 6, - (Species::Undead, BodyType::Male) => 5, + (Species::Danari, BodyType::Female) => 15, + (Species::Danari, BodyType::Male) => 15, + (Species::Dwarf, BodyType::Female) => 15, + (Species::Dwarf, BodyType::Male) => 15, + (Species::Elf, BodyType::Female) => 22, + (Species::Elf, BodyType::Male) => 15, + (Species::Human, BodyType::Female) => 20, + (Species::Human, BodyType::Male) => 21, + (Species::Orc, BodyType::Female) => 15, + (Species::Orc, BodyType::Male) => 15, + (Species::Draugr, BodyType::Female) => 15, + (Species::Draugr, BodyType::Male) => 15, } } @@ -328,14 +363,14 @@ impl Species { (Species::Danari, BodyType::Male) => 7, (Species::Dwarf, BodyType::Female) => 7, (Species::Dwarf, BodyType::Male) => 7, - (Species::Elf, BodyType::Female) => 2, - (Species::Elf, BodyType::Male) => 1, + (Species::Elf, BodyType::Female) => 6, + (Species::Elf, BodyType::Male) => 5, (Species::Human, BodyType::Female) => 1, (Species::Human, BodyType::Male) => 1, - (Species::Orc, BodyType::Female) => 4, - (Species::Orc, BodyType::Male) => 6, - (Species::Undead, BodyType::Female) => 2, - (Species::Undead, BodyType::Male) => 2, + (Species::Orc, BodyType::Female) => 9, + (Species::Orc, BodyType::Male) => 12, + (Species::Draugr, BodyType::Female) => 2, + (Species::Draugr, BodyType::Male) => 2, } } @@ -348,13 +383,13 @@ impl Species { (Species::Dwarf, BodyType::Female) => 6, (Species::Dwarf, BodyType::Male) => 9, (Species::Elf, BodyType::Female) => 6, - (Species::Elf, BodyType::Male) => 7, + (Species::Elf, BodyType::Male) => 8, (Species::Human, BodyType::Female) => 6, (Species::Human, BodyType::Male) => 7, (Species::Orc, BodyType::Female) => 6, (Species::Orc, BodyType::Male) => 2, - (Species::Undead, BodyType::Female) => 3, - (Species::Undead, BodyType::Male) => 4, + (Species::Draugr, BodyType::Female) => 3, + (Species::Draugr, BodyType::Male) => 8, } } @@ -363,15 +398,15 @@ impl Species { (Species::Danari, BodyType::Female) => 1, (Species::Danari, BodyType::Male) => 16, (Species::Dwarf, BodyType::Female) => 1, - (Species::Dwarf, BodyType::Male) => 22, + (Species::Dwarf, BodyType::Male) => 23, (Species::Elf, BodyType::Female) => 1, - (Species::Elf, BodyType::Male) => 1, + (Species::Elf, BodyType::Male) => 8, (Species::Human, BodyType::Female) => 1, - (Species::Human, BodyType::Male) => 4, + (Species::Human, BodyType::Male) => 10, (Species::Orc, BodyType::Female) => 1, - (Species::Orc, BodyType::Male) => 3, - (Species::Undead, BodyType::Female) => 1, - (Species::Undead, BodyType::Male) => 1, + (Species::Orc, BodyType::Male) => 7, + (Species::Draugr, BodyType::Female) => 1, + (Species::Draugr, BodyType::Male) => 6, } } } @@ -393,20 +428,28 @@ make_case_elim!( #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr)] #[repr(u32)] pub enum EyeColor { - VigorousBlack = 0, - NobleBlue = 1, - CuriousGreen = 2, - LoyalBrown = 3, - ViciousRed = 4, - PumpkinOrange = 5, - GhastlyYellow = 6, - MagicPurple = 7, - ToxicGreen = 8, - ExoticPurple = 9, - SulfurYellow = 10, - AmberOrange = 11, + AmberOrange = 0, + AmberYellow = 1, + BrightBrown = 2, + CornflowerBlue = 3, + CuriousGreen = 4, + EmeraldGreen = 5, + ExoticPurple = 6, + FrozenBlue = 7, + GhastlyYellow = 8, + LoyalBrown = 9, + MagicPurple = 10, + NobleBlue = 11, PineGreen = 12, - CornflowerBlue = 13, + PumpkinOrange = 13, + RubyRed = 14, + RegalPurple = 15, + RustBrown = 16, + SapphireBlue = 17, + SulfurYellow = 18, + ToxicGreen = 19, + ViciousRed = 20, + VigorousBlack = 21, } ); @@ -415,39 +458,85 @@ make_case_elim!( #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize_repr, Deserialize_repr)] #[repr(u32)] pub enum Skin { - Skin1 = 0, - Skin2 = 1, - Skin3 = 2, - Skin4 = 3, - Skin5 = 4, - Skin6 = 5, - Iron = 6, - Steel = 7, - DanariOne = 8, - DanariTwo = 9, - DanariThree = 10, - DanariFour = 11, - ElfOne = 12, - ElfTwo = 13, - //ElfThree = 14, - OrcOne = 14, - OrcTwo = 15, - OrcThree = 16, - UndeadOne = 17, - UndeadTwo = 18, - UndeadThree = 19, - Skin7 = 20, - Skin8 = 21, - Skin9 = 22, - Skin10 = 23, - Skin11 = 24, - Skin12 = 25, - Skin13 = 26, - Skin14 = 27, - Skin15 = 28, - Skin16 = 29, - Skin17 = 30, - Skin18 = 31, - OrcFour = 32, + // Humans + HumanOne = 0, + HumanTwo = 1, + HumanThree = 2, + HumanFour = 3, + HumanFive = 4, + HumanSix = 5, + HumanSeven = 6, + HumanEight = 7, + HumanNine = 8, + HumanTen = 9, + HumanEleven = 10, + HumanTwelve = 11, + HumanThirteen = 12, + HumanFourteen = 13, + HumanFifteen = 14, + HumanSixteen = 15, + HumanSeventeen = 16, + HumanEighteen = 17, + // Dwarves + DwarfOne = 18, + DwarfTwo = 19, + DwarfThree = 20, + DwarfFour = 21, + DwarfFive = 22, + DwarfSix = 23, + DwarfSeven = 24, + DwarfEight = 25, + DwarfNine = 26, + DwarfTen = 27, + DwarfEleven = 28, + DwarfTwelve = 29, + DwarfThirteen = 30, + DwarfFourteen = 31, + // Elves + ElfOne = 32, + ElfTwo = 33, + ElfThree = 34, + ElfFour = 35, + ElfFive = 36, + ElfSix = 37, + ElfSeven = 38, + ElfEight = 39, + ElfNine = 40, + ElfTen = 41, + ElfEleven = 42, + ElfTwelve = 43, + ElfThirteen = 44, + ElfFourteen = 45, + ElfFifteen = 46, + ElfSixteen = 47, + ElfSeventeen = 48, + ElfEighteen = 49, + // Orcs + OrcOne = 50, + OrcTwo = 51, + OrcThree = 52, + OrcFour = 53, + OrcFive = 54, + OrcSix = 55, + OrcSeven = 56, + OrcEight = 57, + // Danaris + DanariOne = 58, + DanariTwo = 59, + DanariThree = 60, + DanariFour = 61, + DanariFive = 62, + DanariSix = 63, + DanariSeven = 64, + // Draugrs + DraugrOne = 65, + DraugrTwo = 66, + DraugrThree = 67, + DraugrFour = 68, + DraugrFive = 69, + DraugrSix = 70, + DraugrSeven = 71, + DraugrEight = 72, + DraugrNine = 73, } ); diff --git a/common/src/comp/character_state.rs b/common/src/comp/character_state.rs index 115fea7714..6975bce212 100644 --- a/common/src/comp/character_state.rs +++ b/common/src/comp/character_state.rs @@ -300,18 +300,14 @@ impl CharacterState { pub fn behavior(&self, j: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { match &self { CharacterState::Idle(data) => data.behavior(j, output_events), - CharacterState::Talk => states::talk::Data.behavior(j, output_events), + CharacterState::Talk => talk::Data.behavior(j, output_events), CharacterState::Climb(data) => data.behavior(j, output_events), CharacterState::Wallrun(data) => data.behavior(j, output_events), CharacterState::Glide(data) => data.behavior(j, output_events), CharacterState::GlideWield(data) => data.behavior(j, output_events), CharacterState::Stunned(data) => data.behavior(j, output_events), - CharacterState::Sit => { - states::sit::Data::behavior(&states::sit::Data, j, output_events) - }, - CharacterState::Dance => { - states::dance::Data::behavior(&states::dance::Data, j, output_events) - }, + CharacterState::Sit => sit::Data::behavior(&sit::Data, j, output_events), + CharacterState::Dance => dance::Data::behavior(&dance::Data, j, output_events), CharacterState::BasicBlock(data) => data.behavior(j, output_events), CharacterState::Roll(data) => data.behavior(j, output_events), CharacterState::Wielding(data) => data.behavior(j, output_events), @@ -347,17 +343,17 @@ impl CharacterState { ) -> StateUpdate { match &self { CharacterState::Idle(data) => data.handle_event(j, output_events, action), - CharacterState::Talk => states::talk::Data.handle_event(j, output_events, action), + CharacterState::Talk => talk::Data.handle_event(j, output_events, action), CharacterState::Climb(data) => data.handle_event(j, output_events, action), CharacterState::Wallrun(data) => data.handle_event(j, output_events, action), CharacterState::Glide(data) => data.handle_event(j, output_events, action), CharacterState::GlideWield(data) => data.handle_event(j, output_events, action), CharacterState::Stunned(data) => data.handle_event(j, output_events, action), CharacterState::Sit => { - states::sit::Data::handle_event(&states::sit::Data, j, output_events, action) + states::sit::Data::handle_event(&sit::Data, j, output_events, action) }, CharacterState::Dance => { - states::dance::Data::handle_event(&states::dance::Data, j, output_events, action) + states::dance::Data::handle_event(&dance::Data, j, output_events, action) }, CharacterState::BasicBlock(data) => data.handle_event(j, output_events, action), CharacterState::Roll(data) => data.handle_event(j, output_events, action), diff --git a/common/src/comp/controller.rs b/common/src/comp/controller.rs index 90373207e2..0a564593fa 100644 --- a/common/src/comp/controller.rs +++ b/common/src/comp/controller.rs @@ -131,7 +131,7 @@ pub enum UtteranceKind { Greeting, Scream, /* Death, - * TODO: Wait for more post-death features (i.e. animiations) before implementing death + * TODO: Wait for more post-death features (i.e. animations) before implementing death * sounds */ } diff --git a/common/src/comp/fluid_dynamics.rs b/common/src/comp/fluid_dynamics.rs index 7b4f688956..5c5bdc363a 100644 --- a/common/src/comp/fluid_dynamics.rs +++ b/common/src/comp/fluid_dynamics.rs @@ -138,7 +138,7 @@ impl Body { ) -> Vec3 { let v_sq = rel_flow.0.magnitude_squared(); if v_sq < 0.25 { - // don't bother with miniscule forces + // don't bother with minuscule forces Vec3::zero() } else { let rel_flow_dir = Dir::new(rel_flow.0 / v_sq.sqrt()); diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 450d556ea9..428d5e7ce4 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -263,8 +263,8 @@ impl TagExampleInfo for ItemTag { #[derive(Clone, Debug, Serialize, Deserialize)] pub enum ItemKind { /// Something wieldable - Tool(tool::Tool), - ModularComponent(modular::ModularComponent), + Tool(Tool), + ModularComponent(ModularComponent), Lantern(Lantern), Armor(armor::Armor), Glider, @@ -373,7 +373,7 @@ pub enum ItemName { #[derive(Clone, Debug)] pub enum ItemBase { Simple(Arc), - Modular(modular::ModularBase), + Modular(ModularBase), } impl Serialize for ItemBase { @@ -742,6 +742,42 @@ impl Item { item } + pub fn new_from_item_definition_id( + item_definition_id: ItemDefinitionId<'_>, + ability_map: &AbilityMap, + msm: &MaterialStatManifest, + ) -> Result { + let (base, components) = match item_definition_id { + ItemDefinitionId::Simple(spec) => { + let base = ItemBase::Simple(Arc::::load_cloned(spec)?); + (base, Vec::new()) + }, + ItemDefinitionId::Modular { + pseudo_base, + components, + } => { + let base = ItemBase::Modular(ModularBase::load_from_pseudo_id(pseudo_base)); + let components = components + .into_iter() + .map(|id| Item::new_from_item_definition_id(id, ability_map, msm)) + .collect::, _>>()?; + (base, components) + }, + ItemDefinitionId::Compound { + simple_base, + components, + } => { + let base = ItemBase::Simple(Arc::::load_cloned(simple_base)?); + let components = components + .into_iter() + .map(|id| Item::new_from_item_definition_id(id, ability_map, msm)) + .collect::, _>>()?; + (base, components) + }, + }; + Ok(Item::new_from_item_base(base, components, ability_map, msm)) + } + /// Creates a new instance of an `Item` from the provided asset identifier /// Panics if the asset does not exist. pub fn new_from_asset_expect(asset_specifier: &str) -> Self { @@ -1198,11 +1234,11 @@ impl<'a, T: ItemDesc + ?Sized> ItemDesc for &'a T { fn item_definition_id(&self) -> ItemDefinitionId<'_> { (*self).item_definition_id() } - fn components(&self) -> &[Item] { (*self).components() } - fn tags(&self) -> Vec { (*self).tags() } fn is_modular(&self) -> bool { (*self).is_modular() } + + fn components(&self) -> &[Item] { (*self).components() } } /// Returns all item asset specifiers @@ -1226,7 +1262,7 @@ mod tests { fn test_assets_items() { let ids = all_item_defs_expect(); for item in ids.iter().map(|id| Item::new_from_asset_expect(id)) { - std::mem::drop(item) + drop(item) } } } diff --git a/common/src/comp/inventory/item/modular.rs b/common/src/comp/inventory/item/modular.rs index ea4d364cd0..c73bf03b87 100644 --- a/common/src/comp/inventory/item/modular.rs +++ b/common/src/comp/inventory/item/modular.rs @@ -41,8 +41,8 @@ impl MaterialStatManifest { /// needed for tests to load it without actual assets pub fn with_empty() -> Self { Self { - tool_stats: hashbrown::HashMap::default(), - armor_stats: hashbrown::HashMap::default(), + tool_stats: HashMap::default(), + armor_stats: HashMap::default(), } } } diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 89d31acd42..1ccb2aef47 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -84,10 +84,10 @@ impl ItemSpec { let mut rng = rand::thread_rng(); match self { ItemSpec::Item(item_asset) => Item::new_from_asset(item_asset) - .map(std::mem::drop) + .map(drop) .map_err(ValidationError::ItemAssetError), ItemSpec::Choice(choices) => { - // TODO: check for sanity of weigts? + // TODO: check for sanity of weights? for (_weight, choice) in choices { if let Some(item) = choice { item.validate()?; @@ -100,7 +100,7 @@ impl ItemSpec { material, hands, } => item::modular::random_weapon(*tool, *material, *hands, &mut rng) - .map(std::mem::drop) + .map(drop) .map_err(ValidationError::ModularWeaponCreationError), } } @@ -212,7 +212,7 @@ impl Base { /// If you want programing API of loadout creation, /// use `LoadoutBuilder` instead. /// -/// For examples of assets, see `assets/test/ladout/ok` folder. +/// For examples of assets, see `assets/test/loadout/ok` folder. #[derive(Debug, Deserialize, Clone, Default)] #[serde(deny_unknown_fields)] pub struct LoadoutSpec { @@ -1161,8 +1161,8 @@ mod tests { // Testing different species // - // Things that will be catched - invalid assets paths for - // creating default main hand tool or equipement without config + // Things that will be caught - invalid assets paths for + // creating default main hand tool or equipment without config #[test] fn test_loadout_species() { macro_rules! test_species { @@ -1219,7 +1219,7 @@ mod tests { #[test] fn test_loadout_presets() { for preset in Preset::iter() { - std::mem::drop(LoadoutBuilder::empty().with_preset(preset)); + drop(LoadoutBuilder::empty().with_preset(preset)); } } diff --git a/common/src/comp/inventory/mod.rs b/common/src/comp/inventory/mod.rs index 3dd3177521..e2454d763d 100644 --- a/common/src/comp/inventory/mod.rs +++ b/common/src/comp/inventory/mod.rs @@ -269,7 +269,7 @@ impl Inventory { /// item or the same item again if that slot was not found. pub fn insert_at(&mut self, inv_slot_id: InvSlotId, item: Item) -> Result, Item> { match self.slot_mut(inv_slot_id) { - Some(slot) => Ok(core::mem::replace(slot, Some(item))), + Some(slot) => Ok(mem::replace(slot, Some(item))), None => Err(item), } } @@ -319,7 +319,7 @@ impl Inventory { .err() .and(Some(item)) } else { - let old_item = core::mem::replace(slot_item, item); + let old_item = mem::replace(slot_item, item); // No need to recount--we know the count is the same. Some(old_item) }) @@ -808,8 +808,8 @@ impl Inventory { /// Used only when loading in persistence code. pub fn persistence_update_all_item_states( &mut self, - ability_map: &item::tool::AbilityMap, - msm: &item::MaterialStatManifest, + ability_map: &AbilityMap, + msm: &MaterialStatManifest, ) { self.slots_mut().for_each(|slot| { if let Some(item) = slot { diff --git a/common/src/comp/inventory/slot.rs b/common/src/comp/inventory/slot.rs index fb19152618..5817c80746 100644 --- a/common/src/comp/inventory/slot.rs +++ b/common/src/comp/inventory/slot.rs @@ -1,12 +1,9 @@ use serde::{Deserialize, Serialize}; use std::{cmp::Ordering, convert::TryFrom}; -use crate::comp::{ - inventory::{ - item::{armor, armor::ArmorKind, tool, ItemKind}, - loadout::LoadoutSlotId, - }, - item, +use crate::comp::inventory::{ + item::{armor, armor::ArmorKind, tool, ItemKind}, + loadout::LoadoutSlotId, }; #[derive(Debug, PartialEq)] @@ -110,7 +107,7 @@ pub enum ArmorSlot { } impl Slot { - pub fn can_hold(self, item_kind: &item::ItemKind) -> bool { + pub fn can_hold(self, item_kind: &ItemKind) -> bool { match (self, item_kind) { (Self::Inventory(_), _) => true, (Self::Equip(slot), item_kind) => slot.can_hold(item_kind), @@ -119,7 +116,7 @@ impl Slot { } impl EquipSlot { - pub fn can_hold(self, item_kind: &item::ItemKind) -> bool { + pub fn can_hold(self, item_kind: &ItemKind) -> bool { match (self, item_kind) { (Self::Armor(slot), ItemKind::Armor(armor::Armor { kind, .. })) => slot.can_hold(kind), (Self::ActiveMainhand, ItemKind::Tool(_)) => true, @@ -134,7 +131,7 @@ impl EquipSlot { } impl ArmorSlot { - fn can_hold(self, armor: &item::armor::ArmorKind) -> bool { + fn can_hold(self, armor: &ArmorKind) -> bool { matches!( (self, armor), (Self::Head, ArmorKind::Head) diff --git a/common/src/comp/inventory/trade_pricing.rs b/common/src/comp/inventory/trade_pricing.rs index e1f73c0ce6..5a07f0858b 100644 --- a/common/src/comp/inventory/trade_pricing.rs +++ b/common/src/comp/inventory/trade_pricing.rs @@ -1,8 +1,15 @@ use crate::{ assets::{self, AssetExt}, - comp::item::Item, + comp::{ + inventory, + item::{ + Item, ItemDefinitionId, ItemDefinitionIdOwned, ItemKind, MaterialStatManifest, + ModularBase, + }, + tool::AbilityMap, + }, lottery::LootSpec, - recipe::{default_recipe_book, RecipeInput}, + recipe::{default_component_recipe_book, default_recipe_book, RecipeInput}, trade::Good, }; use assets::AssetGuard; @@ -12,6 +19,8 @@ use serde::Deserialize; use std::cmp::Ordering; use tracing::{error, info, warn}; +use super::item::{Material, ToolKind}; + const PRICING_DEBUG: bool = false; #[derive(Default, Debug)] @@ -61,6 +70,23 @@ impl std::ops::Add for MaterialUse { } } +impl std::ops::AddAssign for MaterialUse { + fn add_assign(&mut self, rhs: Self) { vector_add_eq(&mut self.0, &rhs.0); } +} + +impl std::iter::Sum for MaterialUse { + fn sum(iter: I) -> Self + where + I: Iterator, + { + let mut ret = Self::default(); + for i in iter { + ret += i; + } + ret + } +} + impl std::ops::Deref for MaterialUse { type Target = [(f32, Good)]; @@ -120,18 +146,17 @@ impl std::ops::AddAssign for MaterialFrequency { fn add_assign(&mut self, rhs: Self) { vector_add_eq(&mut self.0, &rhs.0); } } -#[derive(Default, Debug)] +#[derive(Debug)] struct PriceEntry { - // item asset specifier - name: String, + name: ItemDefinitionIdOwned, price: MaterialUse, // sellable by merchants sell: bool, stackable: bool, } -#[derive(Default, Debug)] +#[derive(Debug)] struct FreqEntry { - name: String, + name: ItemDefinitionIdOwned, freq: MaterialFrequency, sell: bool, stackable: bool, @@ -161,7 +186,7 @@ impl FreqEntries { fn add( &mut self, eqset: &EqualitySet, - item_name: &str, + item_name: &ItemDefinitionIdOwned, good: Good, probability: f32, can_sell: bool, @@ -181,15 +206,19 @@ impl FreqEntries { }) = old { if PRICING_DEBUG { - info!("Update {} {:?}+{:?}", asset, old_probability, probability); + info!("Update {:?} {:?}+{:?}", asset, old_probability, probability); } if !can_sell && *old_can_sell { *old_can_sell = false; } *old_probability += new_freq; } else { - let item = Item::new_from_asset_expect(canonical_itemname); - let stackable = item.is_stackable(); + let stackable = Item::new_from_item_definition_id( + canonical_itemname.as_ref(), + &AbilityMap::load().read(), + &MaterialStatManifest::load().read(), + ) + .map_or(false, |i| i.is_stackable()); let new_mat_prob: FreqEntry = FreqEntry { name: canonical_itemname.to_owned(), freq: new_freq, @@ -225,7 +254,7 @@ lazy_static! { /// hierarchically from `LootSpec`s /// (probability, item id, average amount) pub struct ProbabilityFile { - pub content: Vec<(f32, String, f32)>, + pub content: Vec<(f32, ItemDefinitionIdOwned, f32)>, } impl assets::Asset for ProbabilityFile { @@ -234,8 +263,99 @@ impl assets::Asset for ProbabilityFile { const EXTENSION: &'static str = "ron"; } +type ComponentPool = + HashMap<(ToolKind, String), Vec<(ItemDefinitionIdOwned, Option)>>; + +lazy_static! { + static ref PRIMARY_COMPONENT_POOL: ComponentPool = { + let mut component_pool = HashMap::new(); + + // Load recipe book (done to check that material is valid for a particular component) + use crate::recipe::ComponentKey; + let recipes = default_component_recipe_book().read(); + + recipes + .iter() + .for_each(|(ComponentKey { toolkind, material, .. }, recipe)| { + let component = recipe.itemdef_output(); + let hand_restriction = None; // once there exists a hand restriction add the logic here - for a slight price correction + let entry = component_pool.entry((*toolkind, String::from(material))).or_insert(Vec::new()); + entry.push((component, hand_restriction)); + }); + + component_pool + }; + + static ref SECONDARY_COMPONENT_POOL: ComponentPool = { + let mut component_pool = HashMap::new(); + + // Load recipe book (done to check that material is valid for a particular component) + //use crate::recipe::ComponentKey; + let recipes = default_recipe_book().read(); + + recipes + .iter() + .for_each(|(_, recipe)| { + let (ref asset_path, _) = recipe.output; + if let ItemKind::ModularComponent( + crate::comp::inventory::item::modular::ModularComponent::ToolSecondaryComponent { + toolkind, + stats: _, + hand_restriction, + }, + ) = asset_path.kind + { + let component = ItemDefinitionIdOwned::Simple(asset_path.id().into()); + let entry = component_pool.entry((toolkind, String::new())).or_insert(Vec::new()); + entry.push((component, hand_restriction)); + }}); + + component_pool + }; +} + +// expand this loot specification towards individual item descriptions +// partial duplicate of random_weapon_primary_component +// returning an Iterator is difficult due to the branch and it is always used as +// a vec afterwards +pub fn expand_primary_component( + tool: ToolKind, + material: Material, + hand_restriction: Option, +) -> Vec { + if let Some(material_id) = material.asset_identifier() { + PRIMARY_COMPONENT_POOL + .get(&(tool, material_id.to_owned())) + .into_iter() + .flatten() + .filter(move |(_comp, hand)| match (hand_restriction, *hand) { + (Some(restriction), Some(hand)) => restriction == hand, + (None, _) | (_, None) => true, + }) + .map(|e| e.0.clone()) + .collect() + } else { + Vec::new() + } +} + +pub fn expand_secondary_component( + tool: ToolKind, + _material: Material, + hand_restriction: Option, +) -> impl Iterator { + SECONDARY_COMPONENT_POOL + .get(&(tool, String::new())) + .into_iter() + .flatten() + .filter(move |(_comp, hand)| match (hand_restriction, *hand) { + (Some(restriction), Some(hand)) => restriction == hand, + (None, _) | (_, None) => true, + }) + .map(|e| e.0.clone()) +} + impl From)>> for ProbabilityFile { - #[allow(clippy::cast_precision_loss)] fn from(content: Vec<(f32, LootSpec)>) -> Self { let rescale = if content.is_empty() { 1.0 @@ -246,10 +366,14 @@ impl From)>> for ProbabilityFile { content: content .into_iter() .flat_map(|(p0, loot)| match loot { - LootSpec::Item(asset) => vec![(p0 * rescale, asset, 1.0)].into_iter(), - LootSpec::ItemQuantity(asset, a, b) => { - vec![(p0 * rescale, asset, (a + b) as f32 * 0.5)].into_iter() + LootSpec::Item(asset) => { + vec![(p0 * rescale, ItemDefinitionIdOwned::Simple(asset), 1.0)] }, + LootSpec::ItemQuantity(asset, a, b) => vec![( + p0 * rescale, + ItemDefinitionIdOwned::Simple(asset), + (a + b) as f32 * 0.5, + )], LootSpec::LootTable(table_asset) => { let unscaled = &Self::load_expect(&table_asset).read().content; let scale = p0 * rescale; @@ -257,11 +381,54 @@ impl From)>> for ProbabilityFile { .iter() .map(|(p1, asset, amount)| (*p1 * scale, asset.clone(), *amount)) .collect::>() - .into_iter() }, - LootSpec::Nothing - // TODO: Let someone else wrangle modular weapons into the economy - | LootSpec::ModularWeapon { .. } | LootSpec::ModularWeaponPrimaryComponent { .. } => Vec::new().into_iter(), + LootSpec::ModularWeapon { + tool, + material, + hands, + } => { + let mut primary = expand_primary_component(tool, material, hands); + let secondary: Vec = + expand_secondary_component(tool, material, hands).collect(); + let freq = if primary.is_empty() || secondary.is_empty() { + 0.0 + } else { + p0 * rescale / ((primary.len() * secondary.len()) as f32) + }; + let res: Vec<(f32, ItemDefinitionIdOwned, f32)> = primary + .drain(0..) + .flat_map(|p| { + secondary.iter().map(move |s| { + let components = vec![p.clone(), s.clone()]; + ( + freq, + ItemDefinitionIdOwned::Modular { + pseudo_base: ModularBase::Tool.pseudo_item_id().into(), + components, + }, + 1.0f32, + ) + }) + }) + .collect(); + res + }, + LootSpec::ModularWeaponPrimaryComponent { + tool, + material, + hands, + } => { + let mut res = expand_primary_component(tool, material, hands); + let freq = if res.is_empty() { + 0.0 + } else { + p0 * rescale / (res.len() as f32) + }; + let res: Vec<(f32, ItemDefinitionIdOwned, f32)> = + res.drain(0..).map(|e| (freq, e, 1.0f32)).collect(); + res + }, + LootSpec::Nothing => Vec::new(), }) .collect(), } @@ -284,15 +451,15 @@ impl assets::Asset for TradingPriceFile { #[derive(Clone, Debug, Default)] struct EqualitySet { // which item should this item's occurrences be counted towards - equivalence_class: HashMap, + equivalence_class: HashMap, } impl EqualitySet { - fn canonical<'a>(&'a self, item_name: &'a str) -> &'a str { + fn canonical<'a>(&'a self, item_name: &'a ItemDefinitionIdOwned) -> &'a ItemDefinitionIdOwned { let canonical_itemname = self .equivalence_class .get(item_name) - .map_or(item_name, |i| &**i); + .map_or(item_name, |i| &*i); canonical_itemname } @@ -312,22 +479,22 @@ impl assets::Compound for EqualitySet { let manifest = &cache.load::>>(id)?.read().0; for set in manifest { - let items = match set { + let items: Vec = match set { EqualitySpec::LootTable(table) => { let acc = &ProbabilityFile::load_expect(table).read().content; acc.iter().map(|(_p, item, _)| item).cloned().collect() }, - EqualitySpec::Set(xs) => xs.clone(), + EqualitySpec::Set(xs) => xs + .iter() + .map(|s| ItemDefinitionIdOwned::Simple(s.clone())) + .collect(), }; let mut iter = items.iter(); if let Some(first) = iter.next() { - let first = first.to_string(); eqset.equivalence_class.insert(first.clone(), first.clone()); for item in iter { - eqset - .equivalence_class - .insert(item.to_string(), first.clone()); + eqset.equivalence_class.insert(item.clone(), first.clone()); } } } @@ -337,10 +504,10 @@ impl assets::Compound for EqualitySet { #[derive(Debug)] struct RememberedRecipe { - output: String, + output: ItemDefinitionIdOwned, amount: u32, material_cost: Option, - input: Vec<(String, u32)>, + input: Vec<(ItemDefinitionIdOwned, u32)>, } fn get_scaling(contents: &AssetGuard, good: Good) -> f32 { @@ -351,49 +518,136 @@ fn get_scaling(contents: &AssetGuard, good: Good) -> f32 { .map_or(1.0, |(_, scaling)| *scaling) } +#[cfg(test)] +impl PartialOrd for ItemDefinitionIdOwned { + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } +} + +#[cfg(test)] +impl Ord for ItemDefinitionIdOwned { + fn cmp(&self, other: &Self) -> Ordering { + match self { + ItemDefinitionIdOwned::Simple(na) => match other { + ItemDefinitionIdOwned::Simple(nb) => na.cmp(nb), + _ => Ordering::Less, + }, + ItemDefinitionIdOwned::Modular { + pseudo_base, + components, + } => match other { + ItemDefinitionIdOwned::Simple(_) => Ordering::Greater, + ItemDefinitionIdOwned::Modular { + pseudo_base: pseudo_base2, + components: components2, + } => pseudo_base + .cmp(pseudo_base2) + .then_with(|| components.cmp(components2)), + _ => Ordering::Less, + }, + ItemDefinitionIdOwned::Compound { + simple_base, + components, + } => match other { + ItemDefinitionIdOwned::Compound { + simple_base: simple_base2, + components: components2, + } => simple_base + .cmp(simple_base2) + .then_with(|| components.cmp(components2)), + _ => Ordering::Greater, + }, + } + } +} + impl TradePricing { const COIN_ITEM: &'static str = "common.items.utility.coins"; const CRAFTING_FACTOR: f32 = 0.95; // increase price a bit compared to sum of ingredients const INVEST_FACTOR: f32 = 0.33; - fn good_from_item(name: &str) -> Good { + fn good_from_item(name: &ItemDefinitionIdOwned) -> Good { match name { - _ if name.starts_with("common.items.armor.") => Good::Armor, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.armor.") => { + Good::Armor + }, - _ if name.starts_with("common.items.weapons.") => Good::Tools, - _ if name.starts_with("common.items.tool.") => Good::Tools, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.weapons.") => { + Good::Tools + }, + ItemDefinitionIdOwned::Simple(name) + if name.starts_with("common.items.modular.weapon.") => + { + Good::Tools + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.tool.") => { + Good::Tools + }, - _ if name.starts_with("common.items.crafting_ing.") => Good::Ingredients, - _ if name.starts_with("common.items.mineral.") => Good::Ingredients, - _ if name.starts_with("common.items.log.") => Good::Ingredients, - _ if name.starts_with("common.items.flowers.") => Good::Ingredients, + ItemDefinitionIdOwned::Simple(name) + if name.starts_with("common.items.crafting_ing.") => + { + Good::Ingredients + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.mineral.") => { + Good::Ingredients + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.log.") => { + Good::Wood + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.flowers.") => { + Good::Ingredients + }, - _ if name.starts_with("common.items.consumable.") => Good::Potions, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.consumable.") => { + Good::Potions + }, - _ if name.starts_with("common.items.food.") => Good::Food, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.food.") => { + Good::Food + }, - Self::COIN_ITEM => Good::Coin, + ItemDefinitionIdOwned::Simple(name) if name.as_str() == Self::COIN_ITEM => Good::Coin, - _ if name.starts_with("common.items.glider.") => Good::default(), - _ if name.starts_with("common.items.utility.") => Good::default(), - _ if name.starts_with("common.items.boss_drops.") => Good::default(), - _ if name.starts_with("common.items.crafting_tools.") => Good::default(), - _ if name.starts_with("common.items.lantern.") => Good::default(), + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.glider.") => { + Good::default() + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.utility.") => { + Good::default() + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.boss_drops.") => { + Good::default() + }, + ItemDefinitionIdOwned::Simple(name) + if name.starts_with("common.items.crafting_tools.") => + { + Good::default() + }, + ItemDefinitionIdOwned::Simple(name) if name.starts_with("common.items.lantern.") => { + Good::default() + }, + ItemDefinitionIdOwned::Modular { + pseudo_base: _, + components: _, + } => Good::Tools, + ItemDefinitionIdOwned::Compound { + simple_base: _, + components: _, + } => Good::Ingredients, _ => { - warn!("unknown loot item {}", name); + warn!("unknown loot item {:?}", name); Good::default() }, } } // look up price (inverse frequency) of an item - fn price_lookup(&self, requested_name: &str) -> Option<&MaterialUse> { + fn price_lookup(&self, requested_name: &ItemDefinitionIdOwned) -> Option<&MaterialUse> { let canonical_name = self.equality_set.canonical(requested_name); self.items .0 .iter() - .find(|e| e.name == canonical_name) + .find(|e| &e.name == canonical_name) .map(|e| &e.price) } @@ -453,7 +707,6 @@ impl TradePricing { .is_some() } - // #[allow(clippy::cast_precision_loss)] fn read() -> Self { let mut result = Self::default(); let mut freq = FreqEntries::default(); @@ -482,7 +735,7 @@ impl TradePricing { } freq.add( &result.equality_set, - Self::COIN_ITEM, + &ItemDefinitionIdOwned::Simple(Self::COIN_ITEM.into()), Good::Coin, get_scaling(&price_config, Good::Coin), true, @@ -492,7 +745,7 @@ impl TradePricing { if elem.freq.0.is_empty() { // likely equality let canonical_name = result.equality_set.canonical(&elem.name); - let can_freq = freq.0.iter().find(|i| i.name == canonical_name); + let can_freq = freq.0.iter().find(|i| &i.name == canonical_name); can_freq .map(|e| PriceEntry { name: elem.name.clone(), @@ -522,12 +775,26 @@ impl TradePricing { } // Apply recipe book + let mut secondaries: HashMap> = HashMap::new(); let book = default_recipe_book().read(); let mut ordered_recipes: Vec = Vec::new(); for (_, recipe) in book.iter() { let (ref asset_path, amount) = recipe.output; + if let ItemKind::ModularComponent( + inventory::item::modular::ModularComponent::ToolSecondaryComponent { + toolkind, + stats: _, + hand_restriction: _, + }, + ) = asset_path.kind + { + secondaries + .entry(toolkind) + .or_insert(Vec::new()) + .push(ItemDefinitionIdOwned::Simple(asset_path.id().into())); + } ordered_recipes.push(RememberedRecipe { - output: asset_path.id().into(), + output: ItemDefinitionIdOwned::Simple(asset_path.id().into()), amount, material_cost: None, input: recipe @@ -539,7 +806,7 @@ impl TradePricing { if count == 0 { None } else { - Some((it.id().into(), count)) + Some((ItemDefinitionIdOwned::Simple(it.id().into()), count)) } } else { None @@ -549,8 +816,63 @@ impl TradePricing { }); } + // modular weapon recipes + let mut primaries: HashMap> = HashMap::new(); + let comp_book = default_component_recipe_book().read(); + for (key, recipe) in comp_book.iter() { + primaries + .entry(key.toolkind) + .or_insert(Vec::new()) + .push(recipe.itemdef_output()); + ordered_recipes.push(RememberedRecipe { + output: recipe.itemdef_output(), + amount: 1, + material_cost: None, + input: recipe + .inputs() + .filter_map(|(ref recipe_input, count)| { + if count == 0 { + None + } else { + match recipe_input { + RecipeInput::Item(it) => { + Some((ItemDefinitionIdOwned::Simple(it.id().into()), count)) + }, + RecipeInput::Tag(_) => todo!(), + RecipeInput::TagSameItem(_) => todo!(), + RecipeInput::ListSameItem(_) => todo!(), + } + } + }) + .collect(), + }); + } + + // drain the larger map while iterating the shorter + for (kind, mut primary_vec) in primaries.drain() { + for primary in primary_vec.drain(0..) { + for secondary in secondaries[&kind].iter() { + let input = vec![(primary.clone(), 1), (secondary.clone(), 1)]; + let components = vec![primary.clone(), secondary.clone()]; + let output = ItemDefinitionIdOwned::Modular { + pseudo_base: ModularBase::Tool.pseudo_item_id().into(), + components, + }; + ordered_recipes.push(RememberedRecipe { + output, + amount: 1, + material_cost: None, + input, + }); + } + } + } + drop(secondaries); + // re-evaluate prices based on crafting tables // (start with cheap ones to avoid changing material prices after evaluation) + let ability_map = &AbilityMap::load().read(); + let msm = &MaterialStatManifest::load().read(); while result.sort_by_price(&mut ordered_recipes) { ordered_recipes.retain(|recipe| { if recipe.material_cost.map_or(false, |p| p < 1e-5) || recipe.amount == 0 { @@ -567,8 +889,12 @@ impl TradePricing { .find(|item| item.name == *input) .map_or(false, |item| item.sell) }); - let item = Item::new_from_asset_expect(&recipe.output); - let stackable = item.is_stackable(); + let stackable = Item::new_from_item_definition_id( + recipe.output.as_ref(), + ability_map, + msm, + ) + .map_or(false, |i| i.is_stackable()); let new_entry = PriceEntry { name: recipe.output.clone(), price: usage * (1.0 / (recipe.amount as f32 * Self::CRAFTING_FACTOR)), @@ -601,7 +927,7 @@ impl TradePricing { selling: bool, always_coin: bool, limit: u32, - ) -> Vec<(String, u32)> { + ) -> Vec<(ItemDefinitionIdOwned, u32)> { let mut candidates: Vec<&PriceEntry> = self .items .0 @@ -613,14 +939,18 @@ impl TradePricing { .find(|j| j.0 >= stockmap.get(&j.1).cloned().unwrap_or_default()); excess.is_none() && (!selling || i.sell) - && (!always_coin || i.name != Self::COIN_ITEM) + && (!always_coin + || i.name != ItemDefinitionIdOwned::Simple(Self::COIN_ITEM.into())) }) .collect(); let mut result = Vec::new(); if always_coin && number > 0 { let amount = stockmap.get(&Good::Coin).copied().unwrap_or_default() as u32; if amount > 0 { - result.push((Self::COIN_ITEM.into(), amount)); + result.push(( + ItemDefinitionIdOwned::Simple(Self::COIN_ITEM.into()), + amount, + )); number -= 1; } } @@ -663,7 +993,9 @@ impl TradePricing { result } - fn get_materials_impl(&self, item: &str) -> Option<&MaterialUse> { self.price_lookup(item) } + fn get_materials_impl(&self, item: &ItemDefinitionId) -> Option { + self.price_lookup(&item.to_owned()).cloned() + } #[must_use] pub fn random_items( @@ -672,12 +1004,12 @@ impl TradePricing { selling: bool, always_coin: bool, limit: u32, - ) -> Vec<(String, u32)> { + ) -> Vec<(ItemDefinitionIdOwned, u32)> { TRADE_PRICING.random_items_impl(stock, number, selling, always_coin, limit) } #[must_use] - pub fn get_materials(item: &str) -> Option<&MaterialUse> { + pub fn get_materials(item: &ItemDefinitionId) -> Option { TRADE_PRICING.get_materials_impl(item) } @@ -686,7 +1018,7 @@ impl TradePricing { #[cfg(test)] fn print_sorted(&self) { - use crate::comp::item::{armor, ItemKind, MaterialStatManifest}; + use crate::comp::item::armor; //, ItemKind, MaterialStatManifest}; println!("Item, ForSale, Amount, Good, Quality, Deal, Unit,"); @@ -748,30 +1080,37 @@ impl TradePricing { }, ) in sorted.iter() { - let it = Item::new_from_asset_expect(item_id); - //let price = mat_use.iter().map(|(amount, _good)| *amount).sum::(); - let prob = 1.0 / pricesum; - let (info, unit) = more_information(&it, prob); - let materials = mat_use - .iter() - .fold(String::new(), |agg, i| agg + &format!("{:?}.", i.1)); - println!( - "{}, {}, {:>4.2}, {}, {:?}, {}, {},", - &item_id, - if *can_sell { "yes" } else { "no" }, - pricesum, - materials, - it.quality(), - info, - unit, - ); + Item::new_from_item_definition_id( + item_id.as_ref(), + &AbilityMap::load().read(), + &MaterialStatManifest::load().read(), + ) + .ok() + .map(|it| { + //let price = mat_use.iter().map(|(amount, _good)| *amount).sum::(); + let prob = 1.0 / pricesum; + let (info, unit) = more_information(&it, prob); + let materials = mat_use + .iter() + .fold(String::new(), |agg, i| agg + &format!("{:?}.", i.1)); + println!( + "{:?}, {}, {:>4.2}, {}, {:?}, {}, {},", + &item_id, + if *can_sell { "yes" } else { "no" }, + pricesum, + materials, + it.quality(), + info, + unit, + ); + }); } } } /// hierarchically combine and scale this loot table #[must_use] -pub fn expand_loot_table(loot_table: &str) -> Vec<(f32, String, f32)> { +pub fn expand_loot_table(loot_table: &str) -> Vec<(f32, ItemDefinitionIdOwned, f32)> { ProbabilityFile::from(vec![(1.0, LootSpec::LootTable(loot_table.into()))]).content } @@ -800,9 +1139,6 @@ mod tests { init(); info!("init"); - // Note: This test breaks when the loot table contains `Nothing` as a potential - // drop. - let loot = expand_loot_table("common.loot_tables.creature.quad_medium.gentle"); let lootsum = loot.iter().fold(0.0, |s, i| s + i.0); assert!((lootsum - 1.0).abs() < 1e-3); @@ -812,13 +1148,16 @@ mod tests { assert!((lootsum2 - 1.0).abs() < 1e-4); // highly nested - // TODO: Re-enable this. See note at top of test (though this specific - // table can also be fixed by properly integrating modular weapons into - // probability files) - // let loot3 = - // expand_loot_table("common.loot_tables.creature.biped_large.wendigo"); - // let lootsum3 = loot3.iter().fold(0.0, |s, i| s + i.0); - // assert!((lootsum3 - 1.0).abs() < 1e-5); + let loot3 = expand_loot_table("common.loot_tables.creature.biped_large.wendigo"); + let lootsum3 = loot3.iter().fold(0.0, |s, i| s + i.0); + //tracing::trace!("{:?} {}", loot3, lootsum3); + assert!((lootsum3 - 1.0).abs() < 1e-5); + + // includes tier-5 modular weapons + let loot4 = expand_loot_table("common.loot_tables.dungeon.tier-4.boss"); + let lootsum4 = loot4.iter().fold(0.0, |s, i| s + i.0); + //tracing::trace!("{:?} {}", loot4, lootsum4); + assert!((lootsum4 - 1.0).abs() < 1e-5); } #[test] @@ -846,7 +1185,7 @@ mod tests { let loadout = TradePricing::random_items(&mut stock, 20, false, false, 999); for i in loadout.iter() { - info!("Random item {}*{}", i.0, i.1); + info!("Random item {:?}*{}", i.0, i.1); } } diff --git a/common/src/comp/melee.rs b/common/src/comp/melee.rs index 6fd5acdb01..7c78a9df31 100644 --- a/common/src/comp/melee.rs +++ b/common/src/comp/melee.rs @@ -1,6 +1,6 @@ use crate::{ combat::{ - self, Attack, AttackDamage, AttackEffect, CombatBuff, CombatBuffStrength, CombatEffect, + Attack, AttackDamage, AttackEffect, CombatBuff, CombatBuffStrength, CombatEffect, CombatRequirement, Damage, DamageKind, DamageSource, GroupTarget, Knockback, KnockbackDir, }, comp::{ @@ -405,9 +405,7 @@ impl MeleeConstructor { if let Some(ref mut scaled) = &mut self.scaled { *scaled = scaled.adjusted_by_stats(stats, regen); } - if let Some(CombatEffect::Buff(combat::CombatBuff { strength, .. })) = - &mut self.damage_effect - { + if let Some(CombatEffect::Buff(CombatBuff { strength, .. })) = &mut self.damage_effect { *strength *= stats.buff_strength; } self diff --git a/common/src/event.rs b/common/src/event.rs index 274a5f8853..46b5a15787 100644 --- a/common/src/event.rs +++ b/common/src/event.rs @@ -126,7 +126,7 @@ pub enum ServerEvent { }, // TODO: to avoid breakage when adding new fields, perhaps have an `NpcBuilder` type? CreateNpc { - pos: comp::Pos, + pos: Pos, stats: comp::Stats, skill_set: comp::SkillSet, health: Option, @@ -142,7 +142,7 @@ pub enum ServerEvent { projectile: Option, }, CreateShip { - pos: comp::Pos, + pos: Pos, ship: comp::ship::Body, mountable: bool, agent: Option, diff --git a/common/src/generation.rs b/common/src/generation.rs index 46051ea406..92609bb3f0 100644 --- a/common/src/generation.rs +++ b/common/src/generation.rs @@ -7,7 +7,6 @@ use crate::{ }, lottery::LootSpec, npc::{self, NPC_NAMES}, - trade, trade::SiteInformation, }; use serde::Deserialize; @@ -62,7 +61,7 @@ pub enum Meta { // that this field should be either Default or Unchanged // depending on how it is used. // -// When we will use exension manifests more, it would be nicer to +// When we will use extension manifests more, it would be nicer to // split EntityBase and EntityExtension to different structs. // // Fields which have Uninit enum kind @@ -70,7 +69,7 @@ pub enum Meta { // and required (or renamed to Default) in EntityBase /// Struct for EntityInfo manifest. /// -/// Intended to use with .ron files as base definion or +/// Intended to use with .ron files as base definition or /// in rare cases as extension manifest. /// Pure data struct, doesn't do anything until evaluated with EntityInfo. /// @@ -167,7 +166,7 @@ pub struct EntityInfo { // Loadout pub inventory: Vec<(u32, Item)>, pub loadout: LoadoutBuilder, - pub make_loadout: Option) -> LoadoutBuilder>, + pub make_loadout: Option) -> LoadoutBuilder>, // Skills pub skillset_asset: Option, @@ -176,7 +175,7 @@ pub struct EntityInfo { // Economy // we can't use DHashMap, do we want to move that into common? - pub trading_information: Option, + pub trading_information: Option, //Option>, /* price and available amount */ } @@ -394,7 +393,7 @@ impl EntityInfo { #[must_use] pub fn with_lazy_loadout( mut self, - creator: fn(LoadoutBuilder, Option<&trade::SiteInformation>) -> LoadoutBuilder, + creator: fn(LoadoutBuilder, Option<&SiteInformation>) -> LoadoutBuilder, ) -> Self { self.make_loadout = Some(creator); self @@ -576,7 +575,7 @@ mod tests { match field { Meta::SkillSetAsset(asset) => { - std::mem::drop(SkillSetBuilder::from_asset_expect(&asset)); + drop(SkillSetBuilder::from_asset_expect(&asset)); }, } } diff --git a/common/src/link.rs b/common/src/link.rs index 9cdee123c0..6ef53aa4a0 100644 --- a/common/src/link.rs +++ b/common/src/link.rs @@ -28,9 +28,7 @@ pub struct Is { } impl Is { - pub fn delete(&self, data: ::DeleteData<'_>) { - R::Link::delete(&self.link, data) - } + pub fn delete(&self, data: ::DeleteData<'_>) { Link::delete(&self.link, data) } } impl Clone for Is { diff --git a/common/src/lottery.rs b/common/src/lottery.rs index c3f52018fe..38ca914e72 100644 --- a/common/src/lottery.rs +++ b/common/src/lottery.rs @@ -108,7 +108,7 @@ impl> LootSpec { warn!(?e, "error while loading item: {}", item.as_ref()); None }, - Option::Some, + Some, ), Self::ItemQuantity(item, lower, upper) => { let range = *lower..=*upper; @@ -148,7 +148,7 @@ impl> LootSpec { ); None }, - Option::Some, + Some, ), Self::ModularWeaponPrimaryComponent { tool, diff --git a/common/src/outcome.rs b/common/src/outcome.rs index 69ef8fb3da..b0a2ebc963 100644 --- a/common/src/outcome.rs +++ b/common/src/outcome.rs @@ -1,4 +1,4 @@ -use crate::{combat::DamageContributor, comp, uid::Uid}; +use crate::{combat::DamageContributor, comp, uid::Uid, DamageSource}; use comp::{beam, item::Reagent, poise::PoiseState, skillset::SkillGroupKind, UtteranceKind}; use hashbrown::HashSet; use serde::{Deserialize, Serialize}; @@ -10,6 +10,7 @@ pub struct HealthChangeInfo { pub crit: bool, pub target: Uid, pub by: Option, + pub cause: Option, pub instance: u64, } @@ -27,6 +28,9 @@ pub enum Outcome { is_attack: bool, reagent: Option, // How can we better define this? }, + Lightning { + pos: Vec3, + }, ProjectileShot { pos: Vec3, body: comp::Body, @@ -50,7 +54,7 @@ pub enum Outcome { }, SkillPointGain { uid: Uid, - skill_tree: comp::skillset::SkillGroupKind, + skill_tree: SkillGroupKind, total_points: u16, }, ComboChange { @@ -99,6 +103,8 @@ impl Outcome { pub fn get_pos(&self) -> Option> { match self { Outcome::Explosion { pos, .. } + // TODO: Include this, but allow it to be sent to clients when outside of the VD + // | Outcome::Lightning { pos } | Outcome::ProjectileShot { pos, .. } | Outcome::ProjectileHit { pos, .. } | Outcome::Beam { pos, .. } @@ -113,6 +119,7 @@ impl Outcome { Outcome::BreakBlock { pos, .. } => Some(pos.map(|e| e as f32 + 0.5)), Outcome::ExpChange { .. } | Outcome::ComboChange { .. } + | Outcome::Lightning { .. } | Outcome::SkillPointGain { .. } => None, } } diff --git a/common/src/recipe.rs b/common/src/recipe.rs index 6f2da5a81d..079f00ff1b 100644 --- a/common/src/recipe.rs +++ b/common/src/recipe.rs @@ -5,7 +5,7 @@ use crate::{ item::{ modular, tool::{AbilityMap, ToolKind}, - ItemBase, ItemDef, ItemKind, ItemTag, MaterialStatManifest, + ItemBase, ItemDef, ItemDefinitionIdOwned, ItemKind, ItemTag, MaterialStatManifest, }, Inventory, Item, }, @@ -472,6 +472,11 @@ pub struct ComponentRecipeBook { recipes: HashMap, } +#[derive(Clone, Debug)] +pub struct ReverseComponentRecipeBook { + recipes: HashMap, +} + impl ComponentRecipeBook { pub fn get(&self, key: &ComponentKey) -> Option<&ComponentRecipe> { self.recipes.get(key) } @@ -480,6 +485,12 @@ impl ComponentRecipeBook { } } +impl ReverseComponentRecipeBook { + pub fn get(&self, key: &ItemDefinitionIdOwned) -> Option<&ComponentRecipe> { + self.recipes.get(key) + } +} + #[derive(Clone, Deserialize)] #[serde(transparent)] struct RawComponentRecipeBook(Vec); @@ -634,9 +645,9 @@ impl ComponentRecipe { /// a component recipe. If it does, return a vec of inventory slots that /// contain the ingredients needed, whose positions correspond to particular /// recipe are missing. - pub fn inventory_contains_additional_ingredients<'a>( + pub fn inventory_contains_additional_ingredients( &self, - inv: &'a Inventory, + inv: &Inventory, ) -> Result, Vec<(&RecipeInput, u32)>> { inventory_contains_ingredients( self.additional_inputs @@ -646,6 +657,24 @@ impl ComponentRecipe { ) } + pub fn itemdef_output(&self) -> ItemDefinitionIdOwned { + match &self.output { + ComponentOutput::ItemComponents { + item: item_def, + components, + } => { + let components = components + .iter() + .map(|item_def| ItemDefinitionIdOwned::Simple(item_def.id().to_owned())) + .collect::>(); + ItemDefinitionIdOwned::Compound { + simple_base: item_def.id().to_owned(), + components, + } + }, + } + } + pub fn item_output(&self, ability_map: &AbilityMap, msm: &MaterialStatManifest) -> Item { match &self.output { ComponentOutput::ItemComponents { @@ -818,3 +847,14 @@ pub fn default_recipe_book() -> AssetHandle { pub fn default_component_recipe_book() -> AssetHandle { ComponentRecipeBook::load_expect("common.component_recipe_book") } + +impl assets::Compound for ReverseComponentRecipeBook { + fn load(cache: assets::AnyCache, specifier: &str) -> Result { + let forward = cache.load::(specifier)?.cloned(); + let mut recipes = HashMap::new(); + for (_, recipe) in forward.iter() { + recipes.insert(recipe.itemdef_output(), recipe.clone()); + } + Ok(ReverseComponentRecipeBook { recipes }) + } +} diff --git a/common/src/skillset_builder.rs b/common/src/skillset_builder.rs index 643571f638..900b4237c7 100644 --- a/common/src/skillset_builder.rs +++ b/common/src/skillset_builder.rs @@ -167,7 +167,7 @@ mod tests { fn test_all_skillset_assets() { let skillsets = assets::read_expect_dir::("common.skillset", true); for skillset in skillsets { - std::mem::drop({ + drop({ let mut skillset_builder = SkillSetBuilder::default(); let nodes = &*skillset.0; let tree = skills_from_nodes(nodes); diff --git a/common/src/states/basic_summon.rs b/common/src/states/basic_summon.rs index ba77b32bd7..77a2553f9c 100644 --- a/common/src/states/basic_summon.rs +++ b/common/src/states/basic_summon.rs @@ -33,7 +33,7 @@ pub struct StaticData { pub recover_duration: Duration, /// How many creatures the state should summon pub summon_amount: u32, - /// Range of the summons relative to the summonner + /// Range of the summons relative to the summoner pub summon_distance: (f32, f32), /// Information about the summoned creature pub summon_info: SummonInfo, @@ -161,7 +161,7 @@ impl CharacterBehavior for Data { .cast() .0; - // If a duration is specified, create a projectile componenent for the npc + // If a duration is specified, create a projectile component for the npc let projectile = self.static_data.duration.map(|duration| Projectile { hit_solid: Vec::new(), hit_entity: Vec::new(), diff --git a/common/src/states/combo_melee.rs b/common/src/states/combo_melee.rs index ee6560fe24..1671b49690 100644 --- a/common/src/states/combo_melee.rs +++ b/common/src/states/combo_melee.rs @@ -173,7 +173,7 @@ impl CharacterBehavior for Data { .get(self.stage as usize - 1) .map_or(0, |_| self.stage as usize - 1); - let speed_modifer = 1.0 + let speed_modifier = 1.0 + self.static_data.max_speed_increase * (1.0 - self.static_data.speed_increase.powi(combo_counter as i32)); @@ -190,7 +190,7 @@ impl CharacterBehavior for Data { // Build up update.character = CharacterState::ComboMelee(Data { static_data: self.static_data.clone(), - timer: tick_attack_or_default(data, self.timer, Some(speed_modifer)), + timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)), ..*self }); } else { @@ -315,7 +315,7 @@ impl CharacterBehavior for Data { // Swings update.character = CharacterState::ComboMelee(Data { static_data: self.static_data.clone(), - timer: tick_attack_or_default(data, self.timer, Some(speed_modifer)), + timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)), ..*self }); } else { @@ -339,7 +339,7 @@ impl CharacterBehavior for Data { // Recovers update.character = CharacterState::ComboMelee(Data { static_data: self.static_data.clone(), - timer: tick_attack_or_default(data, self.timer, Some(speed_modifer)), + timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)), ..*self }); } else { diff --git a/common/src/states/dash_melee.rs b/common/src/states/dash_melee.rs index 4e60de0de3..af9c8e0718 100644 --- a/common/src/states/dash_melee.rs +++ b/common/src/states/dash_melee.rs @@ -22,7 +22,7 @@ pub struct StaticData { pub buildup_duration: Duration, /// How long the state charges for until it reaches max damage pub charge_duration: Duration, - /// Suration of state spent in swing + /// Duration of state spent in swing pub swing_duration: Duration, /// How long the state has until exiting pub recover_duration: Duration, diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 136913815c..5d1cde28ba 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -303,7 +303,7 @@ impl Body { /// set footwear in idle data and potential state change to Skate pub fn handle_skating(data: &JoinData, update: &mut StateUpdate) { - if let Idle(crate::states::idle::Data { + if let Idle(idle::Data { is_sneaking, mut footwear, }) = data.character @@ -313,19 +313,17 @@ pub fn handle_skating(data: &JoinData, update: &mut StateUpdate) { inv.equipped(EquipSlot::Armor(ArmorSlot::Feet)) .map(|armor| match armor.kind().as_ref() { ItemKind::Armor(a) => a.stats(data.msm).ground_contact, - _ => crate::comp::inventory::item::armor::Friction::Normal, + _ => Friction::Normal, }) }); - update.character = Idle(crate::states::idle::Data { + update.character = Idle(idle::Data { is_sneaking: *is_sneaking, footwear, }); } if data.physics.skating_active { - update.character = CharacterState::Skate(crate::states::skate::Data::new( - data, - footwear.unwrap_or(Friction::Normal), - )); + update.character = + CharacterState::Skate(skate::Data::new(data, footwear.unwrap_or(Friction::Normal))); } } } @@ -687,7 +685,7 @@ pub fn attempt_talk(data: &JoinData<'_>, update: &mut StateUpdate) { pub fn attempt_sneak(data: &JoinData<'_>, update: &mut StateUpdate) { if data.physics.on_ground.is_some() && data.body.is_humanoid() { - update.character = CharacterState::Idle(idle::Data { + update.character = Idle(idle::Data { is_sneaking: true, footwear: data.character.footwear(), }); diff --git a/common/src/terrain/block.rs b/common/src/terrain/block.rs index 62ad01b809..abed7cc3e3 100644 --- a/common/src/terrain/block.rs +++ b/common/src/terrain/block.rs @@ -96,7 +96,7 @@ impl BlockKind { #[inline] pub const fn is_filled(&self) -> bool { !self.is_fluid() } - /// Determine whether the block has an RGB color storaged in the attribute + /// Determine whether the block has an RGB color stored in the attribute /// fields. #[inline] pub const fn has_color(&self) -> bool { self.is_filled() } diff --git a/common/src/trade.rs b/common/src/trade.rs index 535f062786..6d03dfae73 100644 --- a/common/src/trade.rs +++ b/common/src/trade.rs @@ -341,7 +341,7 @@ pub enum Good { impl Default for Good { fn default() -> Self { - Good::Terrain(crate::terrain::BiomeKind::Void) // Arbitrary + Good::Terrain(BiomeKind::Void) // Arbitrary } } @@ -389,13 +389,7 @@ impl SitePrices { .as_ref() .and_then(|ri| { ri.inventory.get(slot).map(|item| { - if let Some(vec) = item - .name - .as_ref() - // TODO: This won't handle compound items with components well, or pure modular items at all - .itemdef_id() - .and_then(TradePricing::get_materials) - { + if let Some(vec) = TradePricing::get_materials(&item.name.as_ref()) { vec.iter() .map(|(amount2, material)| { self.values.get(material).copied().unwrap_or_default() diff --git a/common/src/util/dir.rs b/common/src/util/dir.rs index 90742b4b1e..0cec04489b 100644 --- a/common/src/util/dir.rs +++ b/common/src/util/dir.rs @@ -165,7 +165,7 @@ impl std::ops::Neg for Dir { /// Additionally, it avoids unnecessary calculations if they are near identical /// Assumes `from` and `to` are normalized and returns a normalized vector #[inline(always)] -fn slerp_normalized(from: vek::Vec3, to: vek::Vec3, factor: f32) -> vek::Vec3 { +fn slerp_normalized(from: Vec3, to: Vec3, factor: f32) -> Vec3 { debug_assert!(!to.map(f32::is_nan).reduce_or()); debug_assert!(!from.map(f32::is_nan).reduce_or()); // Ensure from is normalized diff --git a/common/src/volumes/chunk.rs b/common/src/volumes/chunk.rs index 57446cdc6e..3c8e45f4c7 100644 --- a/common/src/volumes/chunk.rs +++ b/common/src/volumes/chunk.rs @@ -374,9 +374,9 @@ impl> + VolSize, M> Chunk { { if vox != self.default { let idx = self.force_idx_unchecked(pos); - core::mem::replace(&mut self.vox[idx], vox) + mem::replace(&mut self.vox[idx], vox) } else if let Some(idx) = self.idx_unchecked(pos) { - core::mem::replace(&mut self.vox[idx], vox) + mem::replace(&mut self.vox[idx], vox) } else { self.default.clone() } diff --git a/common/src/weather.rs b/common/src/weather.rs index b2e163be3a..15008774bf 100644 --- a/common/src/weather.rs +++ b/common/src/weather.rs @@ -42,7 +42,7 @@ impl Weather { // Get the rain velocity for this weather pub fn rain_vel(&self) -> Vec3 { - const FALL_RATE: f32 = 50.0; + const FALL_RATE: f32 = 30.0; Vec3::new(self.wind.x, self.wind.y, -FALL_RATE) } } diff --git a/common/state/src/build_areas.rs b/common/state/src/build_areas.rs index 8d1e273e77..7e520f7ac0 100644 --- a/common/state/src/build_areas.rs +++ b/common/state/src/build_areas.rs @@ -22,7 +22,7 @@ pub enum BuildAreaError { const RESERVED_BUILD_AREA_NAMES: &[&str] = &["world"]; impl BuildAreas { - pub fn areas(&self) -> &Depot> { &self.areas } + pub fn areas(&self) -> &Depot> { &self.areas } pub fn area_names(&self) -> &HashMap>> { &self.area_names } diff --git a/common/systems/src/beam.rs b/common/systems/src/beam.rs index 70ab1962b5..1642ca7ee5 100644 --- a/common/systems/src/beam.rs +++ b/common/systems/src/beam.rs @@ -116,7 +116,7 @@ impl<'a> System<'a> for Sys { if frame_time <= 0.0 { return (server_events, add_hit_entities, outcomes); } - // Note: min() probably uneeded + // Note: min() probably unneeded let time_since_creation = (time - creation_time) as f32; let frame_start_dist = (beam_segment.speed * (time_since_creation - frame_time)).max(0.0); diff --git a/common/systems/src/buff.rs b/common/systems/src/buff.rs index 228c96f89b..4bfb9c6810 100644 --- a/common/systems/src/buff.rs +++ b/common/systems/src/buff.rs @@ -66,18 +66,24 @@ impl<'a> System<'a> for Sys { // Set to false to avoid spamming server buffs.set_event_emission(false); stats.set_event_emission(false); + // Put out underwater campfires. Logically belongs here since this system also // removes burning, but campfires don't have healths/stats/energies/buffs, so // this needs a separate loop. job.cpu_stats.measure(ParMode::Rayon); - let to_put_out_campfires = (&read_data.entities, &bodies, &read_data.physics_states) + let to_put_out_campfires = ( + &read_data.entities, + &bodies, + &read_data.physics_states, + &light_emitters, //to improve iteration speed + ) .par_join() .map_init( || { prof_span!(guard, "buff campfire deactivate"); guard }, - |_guard, (entity, body, physics_state)| { + |_guard, (entity, body, physics_state, _)| { if matches!(*body, Body::Object(object::Body::CampfireLit)) && matches!( physics_state.in_fluid, diff --git a/common/systems/tests/character_state.rs b/common/systems/tests/character_state.rs index d2f00609c1..77db306723 100644 --- a/common/systems/tests/character_state.rs +++ b/common/systems/tests/character_state.rs @@ -27,7 +27,7 @@ mod tests { state } - fn create_entity(state: &mut State, ori: Ori) -> specs::Entity { + fn create_entity(state: &mut State, ori: Ori) -> Entity { let body = common::comp::Body::Humanoid(common::comp::humanoid::Body::random_with( &mut thread_rng(), &common::comp::humanoid::Species::Human, diff --git a/common/systems/tests/phys/basic.rs b/common/systems/tests/phys/basic.rs index d61f6de6b8..f4f6d963f3 100644 --- a/common/systems/tests/phys/basic.rs +++ b/common/systems/tests/phys/basic.rs @@ -36,14 +36,14 @@ fn dont_fall_outside_world() -> Result<(), Box> { assert_relative_eq!(pos.0.x, 1000.0); assert_relative_eq!(pos.0.y, 1000.0); assert_relative_eq!(pos.0.z, 265.0); - assert_eq!(vel.0, vek::Vec3::zero()); + assert_eq!(vel.0, Vec3::zero()); utils::tick(&mut state, DT); let (pos, vel, _) = utils::get_transform(&state, p1)?; assert_relative_eq!(pos.0.x, 1000.0); assert_relative_eq!(pos.0.y, 1000.0); assert_relative_eq!(pos.0.z, 265.0); - assert_eq!(vel.0, vek::Vec3::zero()); + assert_eq!(vel.0, Vec3::zero()); Ok(()) } @@ -56,7 +56,7 @@ fn fall_simple() -> Result<(), Box> { assert_relative_eq!(pos.0.x, 16.0); assert_relative_eq!(pos.0.y, 16.0); assert_relative_eq!(pos.0.z, 265.0); - assert_eq!(vel.0, vek::Vec3::zero()); + assert_eq!(vel.0, Vec3::zero()); utils::tick(&mut state, DT); let (pos, vel, _) = utils::get_transform(&state, p1)?; @@ -86,7 +86,7 @@ fn fall_simple() -> Result<(), Box> { #[test] /// will fall in 20 x DT and 2 x 10*DT steps. compare the end result and make -/// log the "error" between both caluclation +/// log the "error" between both calculations fn fall_dt_speed_diff() -> Result<(), Box> { let mut sstate = utils::setup(); let mut fstate = utils::setup(); @@ -145,7 +145,7 @@ fn walk_simple() -> Result<(), Box> { } let (pos, vel, _) = utils::get_transform(&state, p1)?; assert_relative_eq!(pos.0.z, 257.0); // make sure it landed on ground - assert_eq!(vel.0, vek::Vec3::zero()); + assert_eq!(vel.0, Vec3::zero()); let mut actions = Controller::default(); actions.inputs.move_dir = Vec2::new(1.0, 0.0); @@ -213,7 +213,7 @@ fn walk_max() -> Result<(), Box> { #[test] /// will run in 20 x DT and 2 x 10*DT steps. compare the end result and make -/// log the "error" between both caluclation +/// log the "error" between both calculations fn walk_dt_speed_diff() -> Result<(), Box> { let mut sstate = utils::setup(); let mut fstate = utils::setup(); diff --git a/network/examples/fileshare/main.rs b/network/examples/fileshare/main.rs index 4ec8c1324d..f821a211af 100644 --- a/network/examples/fileshare/main.rs +++ b/network/examples/fileshare/main.rs @@ -62,7 +62,7 @@ fn main() { } fn file_exists(file: &str) -> Result<(), String> { - let file: std::path::PathBuf = shellexpand::tilde(file).parse().unwrap(); + let file: PathBuf = shellexpand::tilde(file).parse().unwrap(); if file.exists() { Ok(()) } else { diff --git a/network/examples/network-speed/main.rs b/network/examples/network-speed/main.rs index 894bd7f14e..931989c2ac 100644 --- a/network/examples/network-speed/main.rs +++ b/network/examples/network-speed/main.rs @@ -192,16 +192,16 @@ fn client(address: ConnectAddr, runtime: Arc) { } if id > 2000000 { println!("Stop"); - std::thread::sleep(std::time::Duration::from_millis(2000)); + thread::sleep(Duration::from_millis(2000)); break; } } drop(s1); - std::thread::sleep(std::time::Duration::from_millis(2000)); + thread::sleep(Duration::from_millis(2000)); info!("Closing participant"); runtime.block_on(p1.disconnect()).unwrap(); - std::thread::sleep(std::time::Duration::from_millis(2000)); + thread::sleep(Duration::from_millis(2000)); info!("DROPPING! client"); drop(client); - std::thread::sleep(std::time::Duration::from_millis(2000)); + thread::sleep(Duration::from_millis(2000)); } diff --git a/network/protocol/benches/protocols.rs b/network/protocol/benches/protocols.rs index 6cd709efe4..ef807392bb 100644 --- a/network/protocol/benches/protocols.rs +++ b/network/protocol/benches/protocols.rs @@ -192,8 +192,8 @@ mod utils { cap: usize, metrics: Option, ) -> [(MpscSendProtocol, MpscRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("mpsc", Arc::new(ProtocolMetrics::new().unwrap())) }); @@ -222,8 +222,8 @@ mod utils { cap: usize, metrics: Option, ) -> [(TcpSendProtocol, TcpRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("tcp", Arc::new(ProtocolMetrics::new().unwrap())) }); @@ -252,8 +252,8 @@ mod utils { cap: usize, metrics: Option, ) -> [(QuicSendProtocol, QuicRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("quic", Arc::new(ProtocolMetrics::new().unwrap())) }); diff --git a/network/protocol/src/frame.rs b/network/protocol/src/frame.rs index aa44af14ed..bcf548ca7f 100644 --- a/network/protocol/src/frame.rs +++ b/network/protocol/src/frame.rs @@ -461,7 +461,7 @@ mod tests { } #[test] - fn initframe_rubish() { + fn initframe_rubbish() { let mut buffer = BytesMut::from(&b"dtrgwcser"[..]); assert_eq!( InitFrame::read_frame(&mut buffer), diff --git a/network/protocol/src/mpsc.rs b/network/protocol/src/mpsc.rs index a9afd297c4..fb9cf8112d 100644 --- a/network/protocol/src/mpsc.rs +++ b/network/protocol/src/mpsc.rs @@ -202,8 +202,8 @@ pub mod test_utils { cap: usize, metrics: Option, ) -> [(MpscSendProtocol, MpscRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("mpsc", Arc::new(ProtocolMetrics::new().unwrap())) }); diff --git a/network/protocol/src/quic.rs b/network/protocol/src/quic.rs index c261a342f2..566364e017 100644 --- a/network/protocol/src/quic.rs +++ b/network/protocol/src/quic.rs @@ -543,8 +543,8 @@ mod test_utils { drop_ratio: f32, metrics: Option, ) -> [(QuicSendProtocol, QuicRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("quic", Arc::new(ProtocolMetrics::new().unwrap())) }); @@ -804,8 +804,7 @@ mod tests { let sid = Sid::new(1); let (s, r) = async_channel::bounded(10); let m = ProtocolMetricCache::new("quic", Arc::new(ProtocolMetrics::new().unwrap())); - let mut r = - super::QuicRecvProtocol::new(super::test_utils::QuicSink { receiver: r }, m.clone()); + let mut r = super::QuicRecvProtocol::new(QuicSink { receiver: r }, m.clone()); const DATA1: &[u8; 69] = b"We need to make sure that its okay to send OPEN_STREAM and DATA_HEAD "; @@ -861,8 +860,7 @@ mod tests { let sid = Sid::new(1); let (s, r) = async_channel::bounded(10); let m = ProtocolMetricCache::new("quic", Arc::new(ProtocolMetrics::new().unwrap())); - let mut r = - super::QuicRecvProtocol::new(super::test_utils::QuicSink { receiver: r }, m.clone()); + let mut r = super::QuicRecvProtocol::new(QuicSink { receiver: r }, m.clone()); let mut bytes = BytesMut::with_capacity(1500); OTFrame::OpenStream { diff --git a/network/protocol/src/tcp.rs b/network/protocol/src/tcp.rs index 5529490e05..4fae046683 100644 --- a/network/protocol/src/tcp.rs +++ b/network/protocol/src/tcp.rs @@ -360,8 +360,8 @@ mod test_utils { cap: usize, metrics: Option, ) -> [(TcpSendProtocol, TcpRecvProtocol); 2] { - let (s1, r1) = async_channel::bounded(cap); - let (s2, r2) = async_channel::bounded(cap); + let (s1, r1) = bounded(cap); + let (s2, r2) = bounded(cap); let m = metrics.unwrap_or_else(|| { ProtocolMetricCache::new("tcp", Arc::new(ProtocolMetrics::new().unwrap())) }); @@ -603,8 +603,7 @@ mod tests { let sid = Sid::new(1); let (s, r) = async_channel::bounded(10); let m = ProtocolMetricCache::new("tcp", Arc::new(ProtocolMetrics::new().unwrap())); - let mut r = - super::TcpRecvProtocol::new(super::test_utils::TcpSink { receiver: r }, m.clone()); + let mut r = super::TcpRecvProtocol::new(TcpSink { receiver: r }, m.clone()); const DATA1: &[u8; 69] = b"We need to make sure that its okay to send OPEN_STREAM and DATA_HEAD "; @@ -653,8 +652,7 @@ mod tests { let sid = Sid::new(1); let (s, r) = async_channel::bounded(10); let m = ProtocolMetricCache::new("tcp", Arc::new(ProtocolMetrics::new().unwrap())); - let mut r = - super::TcpRecvProtocol::new(super::test_utils::TcpSink { receiver: r }, m.clone()); + let mut r = super::TcpRecvProtocol::new(TcpSink { receiver: r }, m.clone()); let mut bytes = BytesMut::with_capacity(1500); OTFrame::OpenStream { diff --git a/network/src/api.rs b/network/src/api.rs index 4dd3014232..46e5a8259e 100644 --- a/network/src/api.rs +++ b/network/src/api.rs @@ -107,7 +107,7 @@ pub struct Stream { #[derive(Debug)] pub enum NetworkError { NetworkClosed, - ListenFailed(std::io::Error), + ListenFailed(io::Error), ConnectFailed(NetworkConnectError), } @@ -117,7 +117,7 @@ pub enum NetworkConnectError { /// Either a Pid UUID clash or you are trying to hijack a connection InvalidSecret, Handshake(InitProtocolError), - Io(std::io::Error), + Io(io::Error), } /// Error type thrown by [`Participants`](Participant) methods @@ -160,7 +160,7 @@ pub struct StreamParams { /// via their [`ConnectAddr`], or [`listen`] passively for [`connected`] /// [`Participants`] via [`ListenAddr`]. /// -/// Too guarantee a clean shutdown, the [`Runtime`] MUST NOT be droped before +/// Too guarantee a clean shutdown, the [`Runtime`] MUST NOT be dropped before /// the Network. /// /// # Examples @@ -168,7 +168,7 @@ pub struct StreamParams { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, ConnectAddr, ListenAddr, Pid}; /// -/// # fn main() -> std::result::Result<(), Box> { +/// # fn main() -> Result<(), Box> { /// // Create a Network, listen on port `2999` to accept connections and connect to port `8080` to connect to a (pseudo) database Application /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -272,7 +272,7 @@ impl Network { #[cfg(feature = "metrics")] registry: Option<&Registry>, ) -> Self { let p = participant_id; - let span = tracing::info_span!("network", ?p); + let span = info_span!("network", ?p); span.in_scope(|| trace!("Starting Network")); let (scheduler, listen_sender, connect_sender, connected_receiver, shutdown_sender) = Scheduler::new( @@ -295,7 +295,7 @@ impl Network { scheduler.run().await; trace!("Stopping scheduler and his own thread"); } - .instrument(tracing::info_span!("network", ?p)), + .instrument(info_span!("network", ?p)), ); Self { local_pid: participant_id, @@ -340,7 +340,7 @@ impl Network { /// [`ListenAddr`]: crate::api::ListenAddr #[instrument(name="network", skip(self, address), fields(p = %self.local_pid))] pub async fn listen(&self, address: ListenAddr) -> Result<(), NetworkError> { - let (s2a_result_s, s2a_result_r) = oneshot::channel::>(); + let (s2a_result_s, s2a_result_r) = oneshot::channel::>(); debug!(?address, "listening on address"); self.listen_sender .lock() @@ -428,7 +428,7 @@ impl Network { /// use tokio::runtime::Runtime; /// use veloren_network::{ConnectAddr, ListenAddr, Network, Pid}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on port `2020` TCP and opens returns their Pid /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -516,7 +516,7 @@ impl Network { }; if let Ok(return_s) = return_s { if return_s.send(()).is_err() { - warn!("Network::drop stoped after a timeout and didn't wait for our shutdown"); + warn!("Network::drop stopped after a timeout and didn't wait for our shutdown"); }; } debug!("Network has shut down"); @@ -550,7 +550,7 @@ impl Participant { /// # Arguments /// * `prio` - defines which stream is processed first when limited on /// bandwidth. See [`Prio`] for documentation. - /// * `promises` - use a combination of you prefered [`Promises`], see the + /// * `promises` - use a combination of you preferred [`Promises`], see the /// link for further documentation. You can combine them, e.g. /// `Promises::ORDERED | Promises::CONSISTENCY` The Stream will then /// guarantee that those promises are met. @@ -567,7 +567,7 @@ impl Participant { /// use tokio::runtime::Runtime; /// use veloren_network::{ConnectAddr, ListenAddr, Network, Pid, Promises}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, connect on port 2100 and open a stream /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -634,7 +634,7 @@ impl Participant { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, Pid, ListenAddr, ConnectAddr, Promises}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, connect on port 2110 and wait for the other side to open a stream /// // Note: It's quite unusual to actively connect, but then wait on a stream to be connected, usually the Application taking initiative want's to also create the first Stream. /// let runtime = Runtime::new().unwrap(); @@ -691,7 +691,7 @@ impl Participant { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, Pid, ListenAddr, ConnectAddr}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on port `2030` TCP and opens returns their Pid and close connection. /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -775,7 +775,7 @@ impl Participant { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, Pid, ListenAddr, ConnectAddr, Promises, ParticipantEvent}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, connect on port 2040 and wait for the other side to open a stream /// // Note: It's quite unusual to actively connect, but then wait on a stream to be connected, usually the Application taking initiative want's to also create the first Stream. /// let runtime = Runtime::new().unwrap(); @@ -889,7 +889,7 @@ impl Stream { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, ListenAddr, ConnectAddr, Pid}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on Port `2200` and wait for a Stream to be opened, then answer `Hello World` /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -931,7 +931,7 @@ impl Stream { /// use bincode; /// use veloren_network::{Network, ListenAddr, ConnectAddr, Pid, Message}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); /// # let remote1 = Network::new(Pid::new(), &runtime); @@ -999,7 +999,7 @@ impl Stream { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, ListenAddr, ConnectAddr, Pid}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on Port `2220` and wait for a Stream to be opened, then listen on it /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -1033,7 +1033,7 @@ impl Stream { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, ListenAddr, ConnectAddr, Pid}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on Port `2230` and wait for a Stream to be opened, then listen on it /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -1110,7 +1110,7 @@ impl Stream { /// use tokio::runtime::Runtime; /// use veloren_network::{Network, ListenAddr, ConnectAddr, Pid}; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on Port `2240` and wait for a Stream to be opened, then listen on it /// let runtime = Runtime::new().unwrap(); /// let network = Network::new(Pid::new(), &runtime); @@ -1145,7 +1145,7 @@ impl Stream { } } -impl core::cmp::PartialEq for Participant { +impl PartialEq for Participant { fn eq(&self, other: &Self) -> bool { //don't check local_pid, 2 Participant from different network should match if // they are the "same" @@ -1181,7 +1181,7 @@ where }, Err(TryRecvError::Closed) => panic!("{}{}", name, CHANNEL_ERR), Err(TryRecvError::Empty) => { - trace!("activly sleeping"); + trace!("actively sleeping"); cnt += 1; if cnt > 10 { error!("Timeout waiting for shutdown, dropping"); @@ -1226,7 +1226,7 @@ impl Drop for Participant { debug!("Shutting down Participant"); match self.a2s_disconnect_s.try_lock() { - Err(e) => debug!(?e, "Participant is beeing dropped by Network right now"), + Err(e) => debug!(?e, "Participant is being dropped by Network right now"), Ok(mut s) => match s.take() { None => info!("Participant already has been shutdown gracefully"), Some(a2s_disconnect_s) => { @@ -1297,8 +1297,8 @@ impl From for NetworkError { fn from(_err: oneshot::error::RecvError) -> Self { NetworkError::NetworkClosed } } -impl From for NetworkError { - fn from(_err: std::io::Error) -> Self { NetworkError::NetworkClosed } +impl From for NetworkError { + fn from(_err: io::Error) -> Self { NetworkError::NetworkClosed } } impl From> for StreamError { @@ -1350,7 +1350,7 @@ impl core::fmt::Display for NetworkConnectError { } /// implementing PartialEq as it's super convenient in tests -impl core::cmp::PartialEq for StreamError { +impl PartialEq for StreamError { fn eq(&self, other: &Self) -> bool { match self { StreamError::StreamClosed => match other { diff --git a/network/src/channel.rs b/network/src/channel.rs index 4fd31f1c21..e366432e87 100644 --- a/network/src/channel.rs +++ b/network/src/channel.rs @@ -94,7 +94,7 @@ impl Protocols { metrics: Arc, s2s_stop_listening_r: oneshot::Receiver<()>, c2s_protocol_s: mpsc::UnboundedSender, - ) -> std::io::Result<()> { + ) -> io::Result<()> { use socket2::{Domain, Socket, Type}; let domain = Domain::for_address(addr); let socket2_socket = Socket::new(domain, Type::STREAM, None)?; @@ -109,7 +109,7 @@ impl Protocols { socket2_socket.bind(&socket2_addr)?; socket2_socket.listen(1024)?; let std_listener: std::net::TcpListener = socket2_socket.into(); - let listener = tokio::net::TcpListener::from_std(std_listener)?; + let listener = net::TcpListener::from_std(std_listener)?; trace!(?addr, "Tcp Listener bound"); let mut end_receiver = s2s_stop_listening_r.fuse(); tokio::spawn(async move { @@ -143,7 +143,7 @@ impl Protocols { Ok(()) } - pub(crate) fn new_tcp(stream: tokio::net::TcpStream, metrics: ProtocolMetricCache) -> Self { + pub(crate) fn new_tcp(stream: net::TcpStream, metrics: ProtocolMetricCache) -> Self { let (r, w) = stream.into_split(); let sp = TcpSendProtocol::new(TcpDrain { half: w }, metrics.clone()); let rp = TcpRecvProtocol::new( @@ -453,14 +453,14 @@ impl network_protocol::RecvProtocol for RecvProtocols { #[derive(Debug)] pub enum MpscError { - Send(tokio::sync::mpsc::error::SendError), + Send(mpsc::error::SendError), Recv, } #[cfg(feature = "quic")] #[derive(Debug)] pub enum QuicError { - Send(std::io::Error), + Send(io::Error), Connection(quinn::ConnectionError), Write(quinn::WriteError), Read(quinn::ReadError), @@ -470,8 +470,8 @@ pub enum QuicError { /// Error types for Protocols #[derive(Debug)] pub enum ProtocolsError { - Tcp(std::io::Error), - Udp(std::io::Error), + Tcp(io::Error), + Udp(io::Error), #[cfg(feature = "quic")] Quic(QuicError), Mpsc(MpscError), @@ -527,12 +527,12 @@ impl UnreliableSink for TcpSink { //// MPSC #[derive(Debug)] pub struct MpscDrain { - sender: tokio::sync::mpsc::Sender, + sender: mpsc::Sender, } #[derive(Debug)] pub struct MpscSink { - receiver: tokio::sync::mpsc::Receiver, + receiver: mpsc::Receiver, } #[async_trait] @@ -623,7 +623,7 @@ impl UnreliableDrain for QuicDrain { match self.reliables.entry(sid) { Entry::Occupied(mut occupied) => occupied.get_mut().write_all(&data.data).await, Entry::Vacant(vacant) => { - // IF the buffer is empty this was created localy and WE are allowed to + // IF the buffer is empty this was created locally and WE are allowed to // open_bi(), if not, we NEED to block on sendstreams_r if data.data.is_empty() { let (mut sendstream, recvstream) = @@ -666,7 +666,7 @@ impl UnreliableSink for QuicSink { let (mut buffer, result, mut recvstream, id) = loop { use futures_util::FutureExt; // first handle all bi streams! - let (a, b) = tokio::select! { + let (a, b) = select! { biased; Some(n) = self.bi.next().fuse() => (Some(n), None), Some(n) = self.recvstreams_r.recv().fuse() => (None, Some(n)), diff --git a/network/src/lib.rs b/network/src/lib.rs index a7da1cf5fc..858d15da20 100644 --- a/network/src/lib.rs +++ b/network/src/lib.rs @@ -44,7 +44,7 @@ //! use veloren_network::{ConnectAddr, ListenAddr, Network, Pid, Promises}; //! //! // Client -//! async fn client(runtime: &Runtime) -> std::result::Result<(), Box> { +//! async fn client(runtime: &Runtime) -> Result<(), Box> { //! sleep(std::time::Duration::from_secs(1)).await; // `connect` MUST be after `listen` //! let client_network = Network::new(Pid::new(), runtime); //! let server = client_network @@ -58,7 +58,7 @@ //! } //! //! // Server -//! async fn server(runtime: &Runtime) -> std::result::Result<(), Box> { +//! async fn server(runtime: &Runtime) -> Result<(), Box> { //! let server_network = Network::new(Pid::new(), runtime); //! server_network //! .listen(ListenAddr::Tcp("127.0.0.1:12345".parse().unwrap())) @@ -71,7 +71,7 @@ //! Ok(()) //! } //! -//! fn main() -> std::result::Result<(), Box> { +//! fn main() -> Result<(), Box> { //! let runtime = Runtime::new().unwrap(); //! runtime.block_on(async { //! let (result_c, result_s) = join!(client(&runtime), server(&runtime),); diff --git a/network/src/message.rs b/network/src/message.rs index b88ecff88c..1074bd489d 100644 --- a/network/src/message.rs +++ b/network/src/message.rs @@ -75,7 +75,7 @@ impl Message { /// # use tokio::runtime::Runtime; /// # use std::sync::Arc; /// - /// # fn main() -> std::result::Result<(), Box> { + /// # fn main() -> Result<(), Box> { /// // Create a Network, listen on Port `2300` and wait for a Stream to be opened, then listen on it /// # let runtime = Runtime::new().unwrap(); /// # let network = Network::new(Pid::new(), &runtime); diff --git a/network/src/metrics.rs b/network/src/metrics.rs index 3e160667fd..9e97b4efa8 100644 --- a/network/src/metrics.rs +++ b/network/src/metrics.rs @@ -175,7 +175,7 @@ impl NetworkMetrics { Ok(()) } - pub(crate) fn connect_requests_cache(&self, protocol: &ListenAddr) -> prometheus::IntCounter { + pub(crate) fn connect_requests_cache(&self, protocol: &ListenAddr) -> IntCounter { self.incoming_connections_total .with_label_values(&[protocollisten_name(protocol)]) } diff --git a/network/src/participant.rs b/network/src/participant.rs index 2836b81e65..06f7310582 100644 --- a/network/src/participant.rs +++ b/network/src/participant.rs @@ -474,7 +474,7 @@ impl BParticipant { recv_protocols.is_empty() }; - let mut defered_orphan = DeferredTracer::new(tracing::Level::WARN); + let mut defered_orphan = DeferredTracer::new(Level::WARN); loop { let (event, addp, remp) = select!( @@ -705,7 +705,7 @@ impl BParticipant { .map(|(timeout_time, _)| *timeout_time) .unwrap_or_default(), ); - let timeout = tokio::select! { + let timeout = select! { _ = wait_for_manager() => false, _ = timeout => true, }; @@ -825,7 +825,7 @@ mod tests { watch::Receiver, JoinHandle<()>, ) { - let runtime = Arc::new(tokio::runtime::Runtime::new().unwrap()); + let runtime = Arc::new(Runtime::new().unwrap()); let runtime_clone = Arc::clone(&runtime); let (b2s_prio_statistic_s, b2s_prio_statistic_r) = diff --git a/network/src/scheduler.rs b/network/src/scheduler.rs index 89bb14a580..cc46bf320b 100644 --- a/network/src/scheduler.rs +++ b/network/src/scheduler.rs @@ -402,7 +402,7 @@ impl Scheduler { use network_protocol::InitProtocol; let init_result = protocol .initialize(send_handshake, local_pid, local_secret) - .instrument(tracing::info_span!("handshake", ?cid)) + .instrument(info_span!("handshake", ?cid)) .await; match init_result { Ok((pid, sid, secret)) => { @@ -447,7 +447,7 @@ impl Scheduler { tokio::spawn( bparticipant .run(participant_channels.b2s_prio_statistic_s) - .instrument(tracing::info_span!("remote", ?p)), + .instrument(info_span!("remote", ?p)), ); //create a new channel within BParticipant and wait for it to run let (b2s_create_channel_done_s, b2s_create_channel_done_r) = @@ -516,7 +516,7 @@ impl Scheduler { }, } } - .instrument(tracing::info_span!("")), + .instrument(info_span!("")), ); /*WORKAROUND FOR SPAN NOT TO GET LOST*/ } } diff --git a/network/tests/helper.rs b/network/tests/helper.rs index 517e8ea3a9..acea2434a5 100644 --- a/network/tests/helper.rs +++ b/network/tests/helper.rs @@ -15,11 +15,11 @@ use veloren_network::{ConnectAddr, ListenAddr, Network, Participant, Pid, Promis // sleep time when only internal rust calculations are done #[allow(dead_code)] -pub const SLEEP_INTERNAL: std::time::Duration = std::time::Duration::from_millis(3000); +pub const SLEEP_INTERNAL: Duration = Duration::from_millis(3000); // sleep time when we interact with the system, e.g. actually send TCP/UDP // package #[allow(dead_code)] -pub const SLEEP_EXTERNAL: std::time::Duration = std::time::Duration::from_millis(5000); +pub const SLEEP_EXTERNAL: Duration = Duration::from_millis(5000); #[allow(dead_code)] pub fn setup(tracing: bool, sleep: u64) -> (u64, u64) { diff --git a/network/tests/integration.rs b/network/tests/integration.rs index 473844b31a..7571ff483e 100644 --- a/network/tests/integration.rs +++ b/network/tests/integration.rs @@ -118,7 +118,7 @@ fn stream_simple_udp_3msg() { #[test] #[ignore] -fn tcp_and_udp_2_connections() -> std::result::Result<(), Box> { +fn tcp_and_udp_2_connections() -> Result<(), Box> { let (_, _) = helper::setup(false, 0); let r = Arc::new(Runtime::new().unwrap()); let network = Network::new(Pid::new(), &r); @@ -145,7 +145,7 @@ fn tcp_and_udp_2_connections() -> std::result::Result<(), Box std::result::Result<(), Box> { +fn failed_listen_on_used_ports() -> Result<(), Box> { let (_, _) = helper::setup(false, 0); let r = Arc::new(Runtime::new().unwrap()); let network = Network::new(Pid::new(), &r); @@ -176,7 +176,7 @@ fn failed_listen_on_used_ports() -> std::result::Result<(), Box std::result::Result<(), Box> { +fn api_stream_send_main() -> Result<(), Box> { let (_, _) = helper::setup(false, 0); // Create a Network, listen on Port `1200` and wait for a Stream to be opened, // then answer `Hello World` @@ -205,7 +205,7 @@ fn api_stream_send_main() -> std::result::Result<(), Box> } #[test] -fn api_stream_recv_main() -> std::result::Result<(), Box> { +fn api_stream_recv_main() -> Result<(), Box> { let (_, _) = helper::setup(false, 0); // Create a Network, listen on Port `1220` and wait for a Stream to be opened, // then listen on it diff --git a/nix/README.md b/nix/README.md index 5ee218f80b..e4482b3e8d 100644 --- a/nix/README.md +++ b/nix/README.md @@ -8,7 +8,7 @@ We include instructions for Nix without flakes enabled, but using flakes is the See the [NixOS wiki](https://nixos.wiki/wiki/Flakes) for information on how to enable and use flakes. -It is recommended to first setup the [Cachix](https://cachix.org) cache to save time with builds: +It is recommended to first set up the [Cachix](https://cachix.org) cache to save time with builds: ```shell nix shell nixpkgs#cachix -c cachix use veloren-nix # or if you don't have flakes: @@ -16,7 +16,7 @@ nix-shell -p cachix --run "cachix use veloren-nix" ``` As this repository uses `git-lfs`, please make sure `git-lfs` is in your path. -If you have a locally cloned repo, you can make sure it is setup with: +If you have a locally cloned repo, you can make sure it is set up with: ```shell git lfs install --local && git lfs fetch && git lfs checkout ``` diff --git a/plugin/api/src/lib.rs b/plugin/api/src/lib.rs index b9562d0465..d859afa8c9 100644 --- a/plugin/api/src/lib.rs +++ b/plugin/api/src/lib.rs @@ -121,7 +121,7 @@ pub mod event { /// #[event_handler] /// pub fn on_command_testplugin(command: ChatCommandEvent) -> Result, String> { /// Ok(vec![format!( - /// "Player of id {:?} named {} with {:?} sended command with args {:?}", + /// "Player of id {:?} named {} with {:?} sent command with args {:?}", /// command.player.id, /// command /// .player diff --git a/plugin/rt/src/lib.rs b/plugin/rt/src/lib.rs index 30d37635e3..3d2aa29443 100644 --- a/plugin/rt/src/lib.rs +++ b/plugin/rt/src/lib.rs @@ -55,7 +55,7 @@ pub fn read_input(ptr: i64, len: i64) -> Result where T: DeserializeOwned, { - let slice = unsafe { ::std::slice::from_raw_parts(from_i64(ptr) as _, from_i64(len) as _) }; + let slice = unsafe { std::slice::from_raw_parts(from_i64(ptr) as _, from_i64(len) as _) }; bincode::deserialize(slice).map_err(|_| "Failed to deserialize function input") } @@ -100,7 +100,7 @@ static mut BUFFERS: Vec = Vec::new(); /// Allocate buffer from wasm linear memory /// # Safety -/// This function should never be used only intented to by used by the host +/// This function should never be used only intended to by used by the host #[no_mangle] pub unsafe fn wasm_prepare_buffer(size: i32) -> i64 { BUFFERS = vec![0u8; size as usize]; diff --git a/server-cli/Cargo.toml b/server-cli/Cargo.toml index 84cea7e4d3..f3e23b5841 100644 --- a/server-cli/Cargo.toml +++ b/server-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "veloren-server-cli" -version = "0.12.0" +version = "0.13.0" authors = ["Joshua Barretto "] edition = "2021" @@ -43,7 +43,7 @@ tracing = { version = "0.1", default-features = false } ron = {version = "0.7", default-features = false} serde = {version = "1.0", features = [ "rc", "derive" ]} -[target.'cfg(all(windows, target_env="msvc"))'.dependencies] +[target.'cfg(windows)'.dependencies] mimalloc = "0.1.29" [dependencies.tui] diff --git a/server-cli/src/main.rs b/server-cli/src/main.rs index 1e0875e340..e88c6d7572 100644 --- a/server-cli/src/main.rs +++ b/server-cli/src/main.rs @@ -2,7 +2,7 @@ #![deny(clippy::clone_on_ref_ptr)] #![feature(bool_to_option)] -#[cfg(all(target_os = "windows", target_env = "msvc"))] +#[cfg(target_os = "windows")] #[global_allocator] static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; diff --git a/server-cli/src/settings.rs b/server-cli/src/settings.rs index 0ca35bde70..b771a49299 100644 --- a/server-cli/src/settings.rs +++ b/server-cli/src/settings.rs @@ -31,7 +31,7 @@ impl Settings { let mut new_path = path.to_owned(); new_path.pop(); new_path.push("settings.invalid.ron"); - if let Err(e) = std::fs::rename(&path, &new_path) { + if let Err(e) = fs::rename(&path, &new_path) { warn!(?e, ?path, ?new_path, "Failed to rename settings file."); } }, diff --git a/server-cli/src/tui_runner.rs b/server-cli/src/tui_runner.rs index 495164b192..5284dd1891 100644 --- a/server-cli/src/tui_runner.rs +++ b/server-cli/src/tui_runner.rs @@ -100,7 +100,7 @@ impl Tui { }, Ok(_) => { debug!(?line, "basic mode: command entered"); - crate::cli::parse_command(line.trim(), &mut msg_s); + cli::parse_command(line.trim(), &mut msg_s); }, } } diff --git a/server/Cargo.toml b/server/Cargo.toml index 3339d21792..03bf506937 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "veloren-server" -version = "0.12.0" +version = "0.13.0" authors = ["Joshua Barretto "] edition = "2021" diff --git a/server/src/client.rs b/server/src/client.rs index 5bf7533f0a..fc679ac010 100644 --- a/server/src/client.rs +++ b/server/src/client.rs @@ -101,7 +101,7 @@ impl Client { | ServerGeneral::CharacterSuccess => { self.character_screen_stream.lock().unwrap().send(g) }, - //Ingame related + //In-game related ServerGeneral::GroupUpdate(_) | ServerGeneral::Invite { .. } | ServerGeneral::InvitePending(_) @@ -175,7 +175,7 @@ impl Client { | ServerGeneral::CharacterSuccess => { PreparedMsg::new(1, &g, &self.character_screen_stream_params) }, - //Ingame related + //In-game related ServerGeneral::GroupUpdate(_) | ServerGeneral::Invite { .. } | ServerGeneral::InvitePending(_) @@ -192,7 +192,7 @@ impl Client { | ServerGeneral::WeatherUpdate(_) => { PreparedMsg::new(2, &g, &self.in_game_stream_params) }, - //Ingame related, terrain + //In-game related, terrain ServerGeneral::TerrainChunkUpdate { .. } | ServerGeneral::LodZoneUpdate { .. } | ServerGeneral::TerrainBlockUpdates(_) => { diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 58be0cd7f7..71797ca55d 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -40,6 +40,7 @@ use common::{ link::Is, mounting::Rider, npc::{self, get_npc_name}, + outcome::Outcome, parse_cmd_args, resources::{BattleMode, PlayerPhysicsSettings, Time, TimeOfDay}, terrain::{Block, BlockKind, SpriteKind, TerrainChunkSize}, @@ -192,6 +193,7 @@ fn do_command( ServerChatCommand::CreateLocation => handle_create_location, ServerChatCommand::DeleteLocation => handle_delete_location, ServerChatCommand::WeatherZone => handle_weather_zone, + ServerChatCommand::Lightning => handle_lightning, }; handler(server, client, target, args, cmd) @@ -271,7 +273,7 @@ fn uuid(server: &Server, entity: EcsEntity, descriptor: &str) -> CmdResult .ok_or_else(|| format!("Cannot get player information for {:?}", descriptor)) } -fn real_role(server: &Server, uuid: Uuid, descriptor: &str) -> CmdResult { +fn real_role(server: &Server, uuid: Uuid, descriptor: &str) -> CmdResult { server .editable_settings() .admins @@ -292,7 +294,7 @@ fn uid(server: &Server, target: EcsEntity, descriptor: &str) -> CmdResult { .ok_or_else(|| format!("Cannot get uid for {:?}", descriptor)) } -fn area(server: &mut Server, area_name: &str) -> CmdResult>> { +fn area(server: &mut Server, area_name: &str) -> CmdResult>> { server .state .mut_resource::() @@ -456,13 +458,13 @@ fn handle_drop_all( if let Some(mut inventory) = server .state .ecs() - .write_storage::() + .write_storage::() .get_mut(target) { items = inventory.drain().collect(); } - let mut rng = rand::thread_rng(); + let mut rng = thread_rng(); let item_to_place = items .into_iter() @@ -510,7 +512,7 @@ fn handle_give_item( server .state .ecs() - .write_storage::() + .write_storage::() .get_mut(target) .map(|mut inv| { // NOTE: Deliberately ignores items that couldn't be pushed. @@ -528,7 +530,7 @@ fn handle_give_item( server .state .ecs() - .write_storage::() + .write_storage::() .get_mut(target) .map(|mut inv| { for i in 0..give_amount { @@ -616,7 +618,7 @@ fn handle_make_npc( Err(_err) => return Err(format!("Failed to load entity config: {}", entity_config)), }; - let mut loadout_rng = rand::thread_rng(); + let mut loadout_rng = thread_rng(); for _ in 0..number { let comp::Pos(pos) = position(server, target, "target")?; let entity_info = EntityInfo::at(pos).with_entity_config( @@ -859,7 +861,7 @@ fn handle_home( _action: &ServerChatCommand, ) -> CmdResult<()> { let home_pos = server.state.mut_resource::().0; - let time = *server.state.mut_resource::(); + let time = *server.state.mut_resource::