Commit Graph

2200 Commits

Author SHA1 Message Date
Marcel Märtens
ccb01e1898 adjust fmt and clippy after toolchain upgrade 2020-12-10 14:53:01 +01:00
Snowram
6713ac935f Addressed comments 2020-12-08 23:04:21 +01:00
Snowram
f94a4ec90d Improves fish_small, new npc 2020-12-08 23:03:39 +01:00
Snowram
72d73ecd38 Initial fish work 2020-12-08 23:03:38 +01:00
Marcel
ed9413e96a Merge branch 'HiggsTardigradeTau/deltatime-lowest-delta-usage' into 'master'
Resolve #867 - Make deltatime use the lowest delta of several frames to avoid 'teleport' effect after single-frame lag spike

Closes #867

See merge request veloren/veloren!1592
2020-12-08 21:07:15 +00:00
HiggsTardigradeTau
57d3a595ce Resolve #867 - Make deltatime use the lowest delta of several frames to avoid 'teleport' effect after single-frame lag spike 2020-12-08 21:07:14 +00:00
Sam
490915d384 Modified how most abilites that could scale were scaled. 2020-12-07 22:00:24 -06:00
Joshua Barretto
52f2bccf2f Fixed incorrect grid check 2020-12-05 18:30:07 +00:00
Joshua Barretto
b37be14b86 Added cave mushrooms 2020-12-05 18:00:29 +00:00
Joshua Barretto
e5ebbd31fa Began using Grid<T> for LoD data 2020-12-05 11:20:25 +00:00
James Melkonian
71303fecfd Aura System and Campfire Health Regen 2020-12-04 22:24:56 +00:00
ubruntu
c975f811e7 Chat commands for group manipulation 2020-12-04 02:18:42 +00:00
Marcel Märtens
add7922653 Move Systems out of common into common_sys
This requires to move `State` into a own crate called `common_state` which depends on `common` and `common_sys`
2020-12-01 13:44:07 +01:00
Marcel
a431fe3fad Merge branch 'sam/dehardcode-energy' into 'master'
Graying out skills with insufficient energy no longer dependent on hard-coded values

Closes #824

See merge request veloren/veloren!1560
2020-11-27 16:27:09 +00:00
Samuel Keiffer
352917d9cb Graying out skills with insufficient energy no longer dependent on hard-coded values 2020-11-27 16:27:09 +00:00
Sam
332a636647 You can now leap in directions other than forward with repeater ranged again. 2020-11-26 18:23:15 -06:00
Sam
6a6260daa1 Weapon combat fixes:
- Modified energy and speed scaling of sword, axe, and hammer combo melees.
 - Nerfed bow basic attack knockback. Buffed bow damage and energy regen.
 - Corrected xp values for theropods. Removed unnecessary function for xp increase per level.
 - Guards no longer flee at low health.
 - Buffed sword spin.
 - Nerfed axe spin and sword dash moderately.
 - Dash now takes a little time to reach full speed. Sword M2 and hammer M1 damage values tweaked.
2020-11-26 09:15:45 +01:00
Joshua Barretto
867ca911e5 Parallelised agent code for some sweet performance gains 2020-11-25 22:47:16 +00:00
Monty Marz
e7d27a2c21 fmt
cleanup
2020-11-25 16:53:48 +00:00
Sam
33e4448542 Replaced every unnecssary powf in the entire codebase with either powi or sqrt. 2020-11-24 18:28:24 -06:00
Sam
5461f002fe Correct beam offsets used. Fix scaling damage on hammer M1. Add can_strafe function to body. 2020-11-24 17:56:39 -06:00
Sam
8ab2d2524a Changed default main and secondary tool from Some(empty) to None.
weapon fixes
2020-11-24 17:49:04 -06:00
jiminycrick
aad9734055 Agent tactic refactoring
Lower theropods spawns

clippy, changelog

review response
2020-11-24 17:49:00 -06:00
jiminycrick
1cf0aff5ef More ai work
balance

Lavadrake AI tweaks

feedback tweaks
2020-11-24 17:48:54 -06:00
jshipsey
d10dd83e5f theropods in world, small tweaks 2020-11-24 17:48:51 -06:00
jshipsey
f411ff7e04 bunch of animations and more attacks 2020-11-24 17:48:51 -06:00
jshipsey
6f72e68ad6 hoof attack, tweaks 2020-11-24 17:48:50 -06:00
jiminycrick
1337fdaa57 Generalize rotation time 2020-11-24 17:48:49 -06:00
jshipsey
a27b086401 placeholder for charge animal, animated leapmelee, small fixes 2020-11-24 17:48:49 -06:00
jiminycrick
a1aa3efd29 Moved hit timer to charged melee and adjusted for tail slap 2020-11-24 17:48:48 -06:00
jshipsey
1f59ef92d8 species specific speeds, more animation 2020-11-24 17:48:48 -06:00
jiminycrick
ee03304a3a Fix charged melee swing 2020-11-24 17:48:47 -06:00
jiminycrick
6b534729be Initial AI for quad low 2020-11-24 17:48:47 -06:00
jshipsey
c07d8df58b assigning weapons, building animations
ability mapping
2020-11-24 17:48:43 -06:00
jiminycrick
793d6095b3 Maneater AI
Rebase fixes and maneater AI
2020-11-24 17:48:38 -06:00
jshipsey
e3e513cc11 initial quadlow ranged work 2020-11-24 17:48:27 -06:00
jshipsey
ae06016e9a Wolf attacks and ai.
initial wolf dash testing

tool.rs

Wolf attack AI
2020-11-24 17:48:20 -06:00
Samuel Keiffer
7774599a19 Merge branch 'sam/rt-loadout-fix' into 'master'
Fixes loadout for RT NPCs

See merge request veloren/veloren!1545
2020-11-24 01:34:18 +00:00
Sam
0abe02ca13 Restructures loadout builder function to better support weapons being passed in. 2020-11-23 18:22:24 -06:00
Christof Petig
a3db20c9d6 Show caves in map 2020-11-23 19:05:17 +01:00
Joshua Barretto
26fd40c0e3 Fmt, make clippy happy 2020-11-23 15:39:03 +00:00
Joshua Barretto
765a1ca17b Switched light map iteration order, fire bowls in dungeons 2020-11-23 10:58:21 +00:00
Snowram
b7a33c56cc Add basic guards to towns 2020-11-23 10:58:21 +00:00
Monty Marz
d069eb9a57 street lamp particles, ground fire bowl, misc fixes 2020-11-23 10:58:21 +00:00
Snowram
8885efd702 Adds (mini)bosses spawns 2020-11-23 10:58:21 +00:00
Joshua Barretto
e461fbd951 Make chimneys glow 2020-11-23 10:58:21 +00:00
Joshua Barretto
b539ecf438 More lights, minimised light and glow map data 2020-11-23 10:58:21 +00:00
Joshua Barretto
54989cf4a6 Switched to pure iterator space search 2020-11-23 10:57:57 +00:00
Snowram
0737c71749 Adds new cultist armors, defines loadouts for dungeons 2020-11-23 10:57:57 +00:00
Joshua Barretto
8fd2e4537d Addressed review comments 2020-11-23 10:57:57 +00:00
Joshua Barretto
51d1a2ecff Added glow 2020-11-23 10:57:56 +00:00
Snowram
3bcffe1bf7 Assigns spawned npcs loadout with new method 2020-11-23 10:57:56 +00:00
Sam
0b86943e66 Added LoadoutConfig to better specify loadouts. 2020-11-23 10:57:56 +00:00
Joshua Barretto
7850b0bcaf Added site names, dungeon difficulty, better explosions 2020-11-23 10:57:55 +00:00
Joshua Barretto
de685b00b2 Improved water pathfinding 2020-11-23 10:45:01 +00:00
Joshua Barretto
71b7e1ef90 Better non-climbing NPC pathfinding in rivers 2020-11-23 10:45:01 +00:00
Joshua Barretto
b352ef5d55 Terrain pop-in, fixed agent pathfinding in water 2020-11-23 10:45:01 +00:00
Joshua Barretto
d4d4f17d3c Added world map size icons 2020-11-23 10:45:01 +00:00
Joshua Barretto
450bc6c4ae Prevented rtsim entities always climbing 2020-11-23 10:45:01 +00:00
Joshua Barretto
22fb71905b Added rtsim entities moving when unloaded, better generation 2020-11-23 10:45:01 +00:00
Joshua Barretto
99a881f349 Added entity simulation to rtsim, reification, assimilation 2020-11-23 10:44:59 +00:00
Joshua Barretto
808d1873bd Began implementing rtsim 2020-11-23 10:37:59 +00:00
Joshua Barretto
3ee4245652 Added test poles, minor improvements 2020-11-23 10:37:59 +00:00
Joshua Barretto
da9b23d4f6 Merge branch 'knarkzel/fix-npc-spawn' into 'master'
Fix bug that caused campfires and other stuff to duplicate

See merge request veloren/veloren!1543
2020-11-22 21:03:06 +00:00
Odd-Harald Lillestø Myhren
56e37a4846 Fix bug that caused campfires and other stuff to duplicate 2020-11-22 21:03:06 +00:00
Imbris
1355c1e8f5 Move tracy frame markers to proper locations, add a few spans 2020-11-22 14:22:39 -05:00
Joshua Barretto
2ae51de7f0 Added more creature spawns 2020-11-21 14:33:32 +01:00
Imbris
e72c69ca41 Merge branch 'imbris/fix-apple-bug' into 'master'
Fix issues with not being able to grab highlighted apples by unifying distance checking

Closes #820

See merge request veloren/veloren!1532
2020-11-21 02:55:09 +00:00
Imbris
ea275e320f Rename pos fields of Cube and Cylinder for enhanced clarity and added a few tests to the find_dist module 2020-11-20 20:51:44 -05:00
Sam
c00720fb44 Swapped bool values, only_roll changed to attack_interrupts. 2020-11-20 11:54:56 -06:00
Sam
e62960e75d Rolling can now interrupt any attack. 2020-11-20 11:30:48 -06:00
Snowram
d98bfa72ad Improves bipedlarge and theropod anims, balance tweaks 2020-11-19 00:56:50 +01:00
Snowram
b48de84f8c Adds 3 new npcs 2020-11-19 00:53:17 +01:00
Snowram
44fe398ba3 Adds 2 new npcs, some models tweaks 2020-11-19 00:53:13 +01:00
Snowram
42d2108c39 Adds mindflayer npc 2020-11-19 00:53:09 +01:00
Snowram
9bfccd42d3 Adds new animals 2020-11-19 00:53:02 +01:00
jiminycrick
3b47add55a Fully move sfx away from ECS event bus 2020-11-18 13:31:13 -08:00
jiminycrick
b3aa454f8e Initial work to move combat sfx to outcomes 2020-11-18 13:31:12 -08:00
jiminycrick
77d624f640 Made level up sounds use outcomes instead of emitting an event 2020-11-18 13:31:12 -08:00
jiminycrick
a9711eea01 Beginning to address comments 2020-11-18 13:31:12 -08:00
jiminycrick
a684bc90fd Quadraped footsteps and songs in biomes 2020-11-18 13:31:12 -08:00
jiminycrick
bc1059610b More clippy fixes 2020-11-18 13:31:12 -08:00
jiminycrick
c2a2361c22 Fix rebase 2020-11-18 13:31:12 -08:00
jiminycrick
ea1bc2941b Clippy fixes 2020-11-18 13:31:12 -08:00
jiminycrick
695cc7f5cb Broken wind implementation 2020-11-18 13:31:12 -08:00
jiminycrick
9b759efe41 Snow footsteps 2020-11-18 13:31:12 -08:00
jiminycrick
09a1974974 River water sfx 2020-11-18 13:31:12 -08:00
jiminycrick
c8d79b0b0e Dungeon and cave specific music 2020-11-18 13:31:12 -08:00
jiminycrick
46d3f6f6d2 Initial biome specific music and ambient sound channel 2020-11-18 13:31:11 -08:00
Imbris
7427367d96 Fix issues with not being able to grab highlighted apples by unifying distance checking 2020-11-17 23:06:02 -05:00
Snowram
950eb1976d Addressed more comments 2020-11-17 23:54:01 +01:00
Snowram
83b2640e02 Makes basic beam Y offset depend on body scale 2020-11-17 23:27:13 +01:00
Snowram
7af561263d Addressed comments 2020-11-17 23:27:13 +01:00
Snowram
93642428f2 Move eye sight and scale in body.rs, mounts tweaks 2020-11-17 23:27:13 +01:00
Imbris
cbb701f30d Temp fix for the home command 2020-11-15 20:40:12 -05:00
Knarkzel
917ae5a0b5 added persist combo counter on roll when mid-combo 2020-11-15 23:08:14 +01:00
Imbris
891e81cf58 Merge branch 'imbris/save-selected-char' into 'master'
Save the selected character, deselect character when deleting, auto select newly created character

See merge request veloren/veloren!1516
2020-11-15 01:40:44 +00:00
Imbris
4f2512f126 Save the selected character, deselect character when deleting, auto select newly created character 2020-11-14 19:17:42 -05:00
Imbris
2072929a5a Send ability map from the server to the client on connection instead of loading from the assets 2020-11-14 16:07:07 -05:00
Samuel Keiffer
0c7cd3d8fb Merge branch 'jasonkjl72/axe-spin-adjustment' into 'master'
Make Axe Spin More Realistic

Closes #827

See merge request veloren/veloren!1510
2020-11-14 04:15:50 +00:00
Jason Lee
1d2ccd5762 Make Axe Spin More Realistic 2020-11-13 21:49:12 -05:00
Imbris
1373b752ff Merge branch 'imbris/fix-5' into 'master'
Remove randomization of species and body_type with the randomize button in char creation

See merge request veloren/veloren!1512
2020-11-14 01:56:28 +00:00
Imbris
51dd5110d0 Merge branch 'imbris/fix-3' into 'master'
Tweak clock related things and fix voxygen tracy feature

See merge request veloren/veloren!1506
2020-11-14 01:39:33 +00:00
Imbris
1952785af2 Remove randomization of species and body_type with the randomize button in char creation 2020-11-13 19:43:32 -05:00
Sam
b5f59f9cf3 Fixed tests. Addressed comments. 2020-11-13 10:41:34 -06:00
Sam
e2fe2fd532 Speed and power on weapons are now able to modify abilities after they are loaded from ron files. 2020-11-12 21:24:36 -06:00
Imbris
37e4ea4669 Remove ability map from top level functions 2020-11-12 21:24:35 -06:00
Sam
9b4fa4e961 Started moving loading of ability manifest to an ecs variable. 2020-11-12 21:24:34 -06:00
Sam
050ad82e55 Abilities are now loaded from .ron files. 2020-11-12 21:24:34 -06:00
Sam
770aaf6b93 Added projectile constructor. Removed a bunch of cloning. 2020-11-12 21:24:32 -06:00
Sam
abf7301a89 Changed how buffs were constructed on projectiles. 2020-11-12 21:24:32 -06:00
Sam
f4244ecbaf Added ron files for unique and WIP tools. 2020-11-12 21:24:31 -06:00
Imbris
27d4310498 Add more catagories to common deps, store average busy dt as a duration, store frame delta times as seconds instead of milliseconds 2020-11-12 19:18:54 -05:00
Imbris
c0e8298ac3 Display averaged busy dt 2020-11-11 23:26:13 -05:00
Imbris
a97b188bea Make fps display and specification more precise 2020-11-11 21:47:22 -05:00
Imbris
ba042c76c8 Only limit negative z velocity by gravity instead of total negative z velocity 2020-11-11 20:09:07 -05:00
Snowram
bed3a5c70a Adds a speed variable to charged states 2020-11-11 22:06:05 +01:00
Snowram
af346806de Addressed comments 2020-11-11 22:03:54 +01:00
Snowram
fe977f0a6c Adds a speed stat to weapons 2020-11-11 22:03:53 +01:00
Imbris
cd1a134c26 Fix bug in body.validate(), add sliders to iced char creation screen, make char selection screen more closely resemble the master version in style 2020-11-11 03:02:22 -05:00
James Melkonian
6085edaa34 Improve NPC aiming and humanoid hitboxes 2020-11-11 04:36:40 +00:00
Marcel
696f607a70 Merge branch 'xMAC94x/clock' into 'master'
massivly switch clock algorithm.

See merge request veloren/veloren!1499
2020-11-10 22:12:12 +00:00
Monty Marz
0e072f72cc frost cleaver
velorite mage set

offsets
armor stats
2020-11-10 21:43:45 +00:00
Marcel Märtens
72afd7af6c switch to spin_sleep 2020-11-10 22:39:10 +01:00
Marcel Märtens
e4e5c6e55b massivly switch clock algorithm.
- before we had a Clock that tried to average multiple ticks and predict the next sleep.
   This system is massivly bugged.
   a) We know exactly how long the busy time took, so we dont need to predict anything in the first place
   b) Preduction was totally unrealistic after a single lag spike
   c) When a very slow tick happens, we dont benefit from 10 fast ticks.
 - Instead we just try to keep the tick time exact what we expect.
   If we can't manage a constant tick time because we are to slow, the systems have to "catch" this via the `dt` anyway.
2020-11-10 18:31:42 +01:00
Justin Shipsey
a8ac051f33 Merge branch 'james/axe-hammer-keyframes' into 'master'
James/axe hammer keyframes

See merge request veloren/veloren!1497
2020-11-10 01:03:11 +00:00
jshipsey
cd188fd32b tweaks 2020-11-09 18:32:23 -05:00
Joshua Barretto
71718d9c98 Better humidity, better snow trees 2020-11-09 15:06:37 +00:00
Sam
9b0e1c8dfc Slight balance tweaks. 2020-11-08 19:33:24 -06:00
Sam
8fa7e246e9 Minor tweaks. 2020-11-08 18:11:53 -06:00
jshipsey
0618de138e rebase 2020-11-08 19:02:48 -05:00
jshipsey
20efc692fd ranged 2020-11-08 18:52:22 -05:00
Sam
edff3a75c3 Made bow stay in BasicRanged state while autofiring. 2020-11-08 18:51:36 -05:00
jshipsey
92aa6a1b12 axe basic 2020-11-08 18:51:35 -05:00
jiminycrick
33e87de17e Initial combo melee for axe M1 2020-11-08 18:48:48 -05:00
Christof Petig
b56919b123 Make waypoints persistent
Closes #549
2020-11-08 22:15:47 +01:00
AlKabir
6535deae9c added two meat assets for mobs to drop 2020-11-07 23:34:20 -06:00
Sam
158fb36420 Other stupid fix. 2020-11-07 21:07:53 -06:00
Imbris
133ba82a9b Use item_definition_id for weapon asset mapping 2020-11-07 16:44:11 -06:00
Sam
a4046872b2 Yeeted from code files. 2020-11-07 15:53:10 -06:00
AlKabir
77f3c7e3c5 Minor combat fixes (see issue 785) 2020-11-07 18:00:07 +00:00
TheBoredProgrammer64
b2ec207979 Revert "Removed toolCategory"
This reverts commit 5b0ff408176ff00408cc90f2516a90d5cd303e56.
2020-11-06 15:33:20 +00:00
Samuel Keiffer
44f676d90c Merge branch 'sam/make-roll-great-again' into 'master'
Roll overhaul

See merge request veloren/veloren!1484
2020-11-06 03:25:18 +00:00
Sam
37ecb165ef Addressed comments. Roll now only provides i-frames to melee attacks. It also reduces height of hitbox. 2020-11-05 20:40:20 -06:00
Snowram
262ceac060 fmt 2020-11-06 01:08:35 +01:00
Monty Marz
642ad805a1 potion buff 2020-11-06 01:08:34 +01:00
Snowram
4b439e9b58 Adresses comment 2020-11-06 01:08:34 +01:00
Snowram
0d92f02deb Buff stonegolem, nerf giants, add missing sfxs 2020-11-06 01:08:33 +01:00
Monty Marz
ca932f6c15 easier to get minor potions
increase cost of a minor potion to 4 apples
2020-11-06 01:08:32 +01:00
Snowram
a52f83e92c Addresses some comments 2020-11-06 01:08:31 +01:00
Snowram
ce96af4363 Allow for an arbitrary array of effects and buffs for consumables 2020-11-06 01:08:30 +01:00
Sam
4a1a3f3ecc Roll now gives i-frames. 2020-11-05 16:48:04 -06:00
Sam
860c766d62 Changed roll movement. 2020-11-05 14:22:30 -06:00
Sam
55e75adec0 Created new fields in roll. Centralized generation of abilities. Added builder function for rolls since they are not yet tied to equipment. 2020-11-05 12:28:18 -06:00
Marcel
121364821a Merge branch 'xMAC94x/FeuerzeugBierflasche' into 'master'
xMAC94x/feuerzeugBierflasche

See merge request veloren/veloren!1478
2020-11-05 09:22:50 +00:00
Marcel Märtens
a7ce3e5a2e switch back to cylindric entity <-> entity collision check.
I still doubt why we do cylindric vs cylindric in entity <-> entity check,  but box vs box in entity <-> terrain check.
Though i did a spheric calculation here.
The cylindric one is alot slower though, 500 entities take 1.9s instead of 1.3s
2020-11-05 08:54:10 +01:00
Sam
a0af315930 Addressed comments. 2020-11-04 19:22:08 -06:00
Sam
bda7fefdc0 Removed Damages struct. Added GroupTarget enum. Changed RadiusEffect to use Effect instead of Daamges. Added Damage variant to Effect Eenum. 2020-11-04 19:22:07 -06:00
Sam
d38f1d319c Energy and health change server events now reference EcsEntity instead of Uid. Added TargetGroup to use to determine targets of effects/damage. Added Entity(TargetGroup, Effect) to RadiusEffect enum. 2020-11-04 19:22:06 -06:00
Sam
87bff41a66 Addressed comments. 2020-11-04 19:22:05 -06:00
Sam
c48c022f7e Separated out health from stats component. 2020-11-04 19:22:04 -06:00
Sam
b8f722af8d Removed most hardcoded ability keys. 2020-11-04 19:22:02 -06:00
Sam
f1f5c2b21b Added energy change server event. 2020-11-04 19:22:01 -06:00
Sam
e0cbbf52ed Changed explosions to take a vec of RadiusEffects. Changed Damage to a struct of DamageSource and value. Added interpolation function to damage. 2020-11-04 19:22:00 -06:00
Joshua Barretto
87ac4bd998 Merge branch 'christof/home_town' into 'master'
implement /home to return to home town

See merge request veloren/veloren!1481
2020-11-04 15:58:35 +00:00
Marcel Märtens
a7123c6e14 put cache in ECS to get rid of allocations 2020-11-04 14:19:28 +01:00
Marcel Märtens
ce3173ecdf add metrics for physics sys and implement concurrent physics 2020-11-04 11:53:13 +01:00
Marcel Märtens
bbe6e8be7c Improve Phyiscs speed of entity handling.
Before we had accessed velocities in a nested loop O(n²).
Now we copy it only once out of the ECS system and store it in a tmp Vec.
As we no longer need to hold a mut and imutable reference, we can iter of `&mut velocities` again in the outer loop.
Also improved many calculations called in the loop to make the check if 2 entities are to far apart as easy as possible
2020-11-04 11:53:09 +01:00
jshipsey
28cde31bbb setup for staff, more anim conversions 2020-11-04 01:48:05 +01:00
Christof Petig
ac92c8a6af implement /home to return to home town 2020-11-04 00:55:15 +01:00
Joshua Barretto
6331ad9455 Implemented Flight 2020-11-03 22:46:07 +00:00
Marcel Märtens
00456c8373 extract a Presence Component, which is server only and has state of Player and Client. Presence is only valid for Clients that are in game 2020-11-03 08:56:02 +01:00
Marcel Märtens
6bb74c9c6f Fix clients are disconnecting GRACEFULLY by removing the Disconnect Request from a client, a client now sends a TERMINATE message directly 2020-11-03 08:55:54 +01:00
ubruntu
8c1e1fdc5c Fixed sneak toggle, sneaking no longer has sound, rolling can return to sneaking state, sneaking reduces aggro distance 2020-11-03 04:09:38 +00:00
ubruntu
b11041dfa4 10% of bow hits cause bleed debuff 2020-11-01 18:38:57 +00:00
Sam
4d8a635843 Sceptre fix. 2020-10-31 12:57:51 -05:00
Imbris
64def3cde4 Allow interacting with nearby blocks without pointing at them, unify selection of block/entity interactors so that only one is select at once, rearrange pickup and mount range consts 2020-10-29 18:40:11 -04:00
Imbris
74ef766051 Rename running_tps_average -> running_average_delta 2020-10-29 18:30:19 -04:00
Sam
52c93f613e Addressed comments. 2020-10-28 22:04:15 -05:00
Sam
1a8cf33a60 Transitioned forced movement to an enum. 2020-10-28 18:15:27 -05:00
Sam
981eee5936 Transitioned knockback to an enum. 2020-10-28 18:15:27 -05:00
Sam
1ccbdec35c Tweaked dash melee some more. 2020-10-28 18:15:26 -05:00
Sam
a7e3e55a12 Transitioned damage and healing from u32/i32s to enums. 2020-10-28 18:15:25 -05:00
Sam
844e6f2b60 Slightly nerfed sword dash. Reduced particle count on fire aoe by factor of 3. 2020-10-28 18:15:25 -05:00
Sam
15286a094a Leaps now require a non-negative vertical velocity to use. 2020-10-28 18:15:24 -05:00
Sam
555bc559f5 Axe no longer sets vertical velocity to 0, but instead preserves vertical velocity. 2020-10-28 18:15:24 -05:00
Sam
63011241ea Added keyframes to all states that were lacking them. 2020-10-28 18:15:23 -05:00
Sam
6559df459e Addressed comments. 2020-10-26 21:32:01 -05:00
Sam
e8f6338eb0 Admin armor now provides immunity to debuffs. 2020-10-26 19:49:40 -05:00
Sam
5d0fd3d9bc Addressed more comments. Changed how buffs were sorted so that duration was also taken into account. 2020-10-26 19:30:18 -05:00
Adam Whitehurst
f759895d63 add maxhealthmodifier
oops variable
2020-10-26 19:30:18 -05:00
Adam Whitehurst
8aad7adab8 add comments 2020-10-26 19:30:17 -05:00
Sam
f60985d733 Transitioned buff storage from a vec to a hashmap. Addressed other comments. Only continuous buff effects are handled right now. 2020-10-26 19:30:17 -05:00
Sam
337cf6e137 Cleaned up UI code. Removed stuff added for testing. Added 10% for melee attacks to inflict a bleeding debuff. Renamed BuffId to BuffKind. Fixed memory leak. Set event emission to false when timer is decremented. 2020-10-26 19:30:10 -05:00
Sam
fdf8decb18 Handled health change over time buff effect better. 2020-10-26 19:28:27 -05:00
Monty Marz
8fa398954d Initial implementation of buffs UI
player buffs animation

more testing debuffs

sorting and display limit fix

overhead buffs

fix

WIP buff removal function

fmt

Update buffs.rs

Now with compiling: WIP group UI buffs

positioning

Update group.rs

Update group.rs

Small optimizations.

Fixed positioning of buffs in group panel. Broke buff tooltips in group panel.

buff frame visuals

added setting for displaying buffs at minimap
2020-10-26 19:28:24 -05:00
Sam
007d3c09ac Buffs now get removed on death by default. Buffs are now required to have either the 'Buff' or 'Debuff' tag. RemoveByCategory function now has support for blacklisting certain categories. Support for UI stuffs. 2020-10-26 19:28:23 -05:00
Samuel Keiffer
60a5346a0b Addressed comments. 2020-10-26 19:28:22 -05:00
Sam
0df061a38e Moved duration to inside BuffId enum to future-proof for when buffs are persisted. 2020-10-26 19:28:20 -05:00
Sam
1a1ceb54bc Server event used to deal damage/heal with buffs. Buff kills now award xp. 2020-10-26 19:28:20 -05:00
Sam
de7191b985 Added functionality to remove buffs by category. 2020-10-26 19:28:19 -05:00
Sam
ccad1fa0b8 Separated buffs into active and inactive buffs. There can only be 1 active buff at a time of a particular buff id. If a new buff is stronger than an active buff, it moves the active buff to inactive buffs. When active buffs are removed, it checks inactive buffs for any buffs of the same id and moves the strongest one to active buffs. 2020-10-26 19:28:18 -05:00
Sam
19c7ed7885 Added builder function for buffs 2020-10-26 19:28:18 -05:00
Sam
b8690473e4 When buffs expire from duration, now only they expire rather than ending all buffs of the same type. 2020-10-26 19:28:17 -05:00
Sam
125de0b46e Creatures and playrs now have buffs component, buffs that expire now only end their particular buff instead of every buff with the same type. 2020-10-26 19:28:16 -05:00
Sam
c50063ad0c Move addition/removal of buffs to server event. 2020-10-26 19:28:15 -05:00
BottledByte
7ab99a3bbf Initial WIP implementation of the Buff system 2020-10-26 19:28:14 -05:00
Marcel Märtens
1b47913835 fix clippy after toolchain update 2020-10-26 22:30:51 +01:00
Adam Whitehurst
4dcac28f8a Ensure leap melee swing animation and hit are sync 2020-10-24 20:15:19 +00:00
jiminycrick
b98e2a924d Fixed hammer AI and added axe AI 2020-10-19 16:20:59 +02:00
Snowram
34ce8bb042 Addressed comments 2020-10-19 16:20:59 +02:00
jiminycrick
64ef7f39d6 Addressed comments on agent code 2020-10-19 16:20:59 +02:00
jshipsey
64d73abdec roshwalr fix 2020-10-19 16:20:59 +02:00
jshipsey
caa048b1d5 small fixes 2020-10-19 16:20:59 +02:00
Snowram
7a62ddfd3f Add BeastClaw npc weapontype 2020-10-19 16:20:59 +02:00
Snowram
f9383e4dd8 Add roshwalr npc 2020-10-19 16:20:59 +02:00
jiminycrick
be1596a703 fixed agent code for staff rework 2020-10-19 16:20:59 +02:00
jshipsey
66b1fe67dc rebase 2020-10-19 16:20:58 +02:00
Snowram
c9985e14cb Rename Saurok, various anim fixes 2020-10-19 16:20:58 +02:00
jshipsey
6a86567301 fix agent bug 2020-10-19 16:20:58 +02:00
jshipsey
65df398672 werewolf work 2020-10-19 16:20:58 +02:00
jiminycrick
50aac17d94 Added secondary skills to agent code (except bow) 2020-10-19 16:20:58 +02:00
Snowram
6c54e6d8fe Add sand, snow and wood raptor npcs 2020-10-19 16:20:58 +02:00
Snowram
588f66a1ee Add treant npc 2020-10-19 16:20:58 +02:00
unknown
d2f91bc3a0 Assigns a ToolKind to bipedlarge weapons 2020-10-19 16:20:58 +02:00
Snowram
0a9ec848a7 add lizardman npcs 2020-10-19 16:20:58 +02:00
Snowram
204fa50de9 Add werewolf npc 2020-10-19 16:20:57 +02:00
Sam
e6684009c2 Made ability key not hardcoded in tool.rs. 2020-10-15 20:05:58 -05:00
Sam
d869f7e430 Moved explsion struct from within comp to common. 2020-10-14 21:06:55 -05:00
Sam
14e4af7ab6 Addressed playtesting feedback. 2020-10-14 21:06:52 -05:00
jshipsey
6a744eed82 anims 2020-10-14 21:06:32 -05:00
Sam
1ba8a6cfb3 Balance tweaks to staff abilities. 2020-10-14 20:57:01 -05:00
Sam
b5091a5891 Ai for staff-wielding enemies. Keyframes for shockwave state. 2020-10-14 20:56:24 -05:00
Sam
1c21362bc3 Fixed shockwaves hitting entities multiple times. Explosions can now regen energy. Staff M1 now has particles instead of using bomb particles. 2020-10-14 20:56:23 -05:00
Sam
7ef73f5981 Added particles for fire shockwave. Added ability key enum so held abilities could differentiate what button they should check. Modified energy fields on basic beam so it could drain energy every second. 2020-10-14 20:56:22 -05:00
Sam
cbb72363af Reworked explosions. Tweaked staff fireball. 2020-10-14 20:56:21 -05:00
Sam
04dcd012da Flamethrower particles. 2020-10-14 20:56:21 -05:00
Sam
c80f16ae74 Started to add particles. 2020-10-14 20:56:20 -05:00
Sam
256846a669 Initial implementation of new staff abilities. 2020-10-14 20:56:16 -05:00
jiminycrick
4de42e36fd Consolidated recover code in repeater_ranged 2020-10-14 17:10:27 -07:00
jiminycrick
512d881cd2 Fixed clippy errors and added SFX 2020-10-14 15:30:58 -07:00
jiminycrick
95c36cc3fb Skill icons with proper rotation 2020-10-14 12:50:33 -07:00
jiminycrick
1f3bd0e1d2 Responded to testing feedback 2020-10-14 12:50:33 -07:00
jshipsey
3bb59b36cd energy values, remove hotload 2020-10-14 12:50:33 -07:00
jshipsey
64f72a73f9 axeleap tweaks 2020-10-14 12:50:33 -07:00
jiminycrick
691acd730d Smoother leap and recovery leap handling 2020-10-14 12:50:33 -07:00
jshipsey
22d8792c4b adjustments to chargedmelee, repeater 2020-10-14 12:50:33 -07:00
jshipsey
521ffd64ba cleanup 2020-10-14 12:50:33 -07:00
jshipsey
28eb58ddfa anims 2020-10-14 12:50:33 -07:00
Sam
fadba23dde Slight tweaks to leap 2020-10-14 12:50:33 -07:00
jshipsey
281155186f hammer leap melee anim 2020-10-14 12:50:33 -07:00
Sam
e1634fa83a Fixed errors from transitioning some states to keyframes. 2020-10-14 12:50:33 -07:00
Sam
21cf1e2168 Added keyframes to leap melee. 2020-10-14 12:50:33 -07:00
Sam
7e0cc2d8e5 Added keyframes to repeater ranged. 2020-10-14 12:50:33 -07:00
Sam
97f580be2b Added keyframes to charged melee. 2020-10-14 12:50:32 -07:00
jiminycrick
9ebda3c353 Made bow leap more graceful and set energy costs and removed jitter for no leap 2020-10-14 12:50:32 -07:00
jiminycrick
431f99a791 Reducing the amount of data in character state 2020-10-14 12:50:32 -07:00
jiminycrick
05623eb8bd Addressed comments 2020-10-14 12:50:32 -07:00
jiminycrick
04175bab09 Add skillbar stuff for 3rd skills 2020-10-14 12:50:32 -07:00
jiminycrick
951acfca21 Add 3rd skill for hammer, bow, and axe minus skillbar UI stuff 2020-10-14 12:50:32 -07:00
Imbris
9e7f521489 Fix system data folder name, panic when outside the project dir and there is no env var set 2020-10-13 02:29:32 -04:00
Marcel Märtens
f1c9b959f4 rename a file, fix error msg, dont spam persistence by default 2020-10-13 00:06:24 +02:00
Marcel Märtens
2a7378b4ae pack together InGame, CharacterScreen and General variant in a single enum, as requested by zesterer.
His reason to reqeust that is, that there might not be a perfect disctinction in the future.
Now we need to send ServerGeneral over streams and do additional checking at various places to verify that not the wrong variant is send.
2020-10-12 11:27:21 +02:00
Marcel Märtens
ff374eab59 create a ServerMsg and ClientMsg enum and verify the state when in debug mode to benefit from the transition 2020-10-11 22:59:53 +02:00
Marcel Märtens
e8452fafc6 fix naming, replace NotInGame with CharacterScreen 2020-10-11 22:55:38 +02:00
Marcel Märtens
8b40f81ee2 No longer block the main thread for client connections, new clients will be handled by server without waiting.
- Instread we have a dedicated thread that will async wait for new participants to connect and then notify the main thread
- registry no longer sends a view distance with it.
- remove ClientMsg::Command again as it's unused
2020-10-11 22:55:02 +02:00
Marcel Märtens
017e004309 Rename enums to allow a super enum in the future, but i am not yet sure if we want to introduce this yet
```
//This is a helper structure, containing all possible data send over
pub enum ClientMsg {
    Initial(ClientType),
    General(ClientGeneralMsg),
    InGame(ClientInGameMsg),
    NotInGame(ClientNotInGameMsg),
    Register(ClientRegisterMsg),
    Ping(PingMsg)
}
```
2020-10-11 22:49:25 +02:00
Marcel Märtens
b1db5ef488 Redo Network Frontend.
Rather than having a single Stream to handle ALL data, seperate into multiple streams:
 - Ping Stream, for seperate PINGS
 - Register Stream, only used till the client is registered, then no longer used!
 - General Stream, used for msg that can occur always
 - NotInGame Stream, used for everything NOT ingame, e.g. Character Screen
 - InGame Stream, used for all GAME data, players, terrain, entities, etc...

This version does compile, and gets the client registered (with auth too) but doesnt get to the char screen yet.

This fixes also the ignoring messages problem we had, as we are not sending data to the register stream!
This fixes also the problem that the server had to sleep for the Stream Creation, as the Server is now creating the streams and client has to sleep.
2020-10-11 22:49:14 +02:00
Monty Marz
e1a77d040d loot table adjustments
- decrease blue glider drop rate
- decrease cloth scaprs drop rate from villagers
- add crafting mats to crates instead
2020-10-11 16:25:35 +00:00
Imbris
71251ca6a6 Change admins from Vec<String> into Hashset<Uuid>, add commands to server-cli-bin for adding and removing admins 2020-10-10 02:10:32 -04:00
Imbris
fb2cf1a292 Fix clippy warnings 2020-10-10 02:10:32 -04:00
Imbris
7c14a3f4a4 New userdata folder that holds voxygen settings and logs and server saves and settings, split up server settings file into parts that are persisted back to their files and parts that are read-only, misc fixes 2020-10-10 02:10:32 -04:00
Imbris
6c43a7cdc5 Change projectiles to not be pushed back by collisions, moved group check into projectile system from physics system 2020-10-10 02:10:31 -04:00
Monty Marz
2b800a2b63 make clippy happy
Delete glider.ron
2020-10-07 02:23:20 +00:00
Sam
47abf49751 Addressed comments 2020-09-29 20:48:23 -05:00
Sam
5f889773b5 Addressed comments 2020-09-29 19:48:17 -05:00
Sam
51141b2c1a Changelog line, final balance tweaks. 2020-09-29 19:48:16 -05:00
Sam
0b80257aa3 Add migration 2020-09-29 19:48:15 -05:00
Sam
56d2afc0dc Added keyframe support to basic beam state. Addressed some comments. 2020-09-29 19:48:15 -05:00
Sam
a8f31cbe6f Beam tick rate now more responsive when aiming. 2020-09-29 19:48:14 -05:00
Sam
506ad1e80e Improvements to beam collision. 2020-09-29 19:48:14 -05:00
Sam
ffe456c703 Fixed what broke after rebasing. 2020-09-29 19:48:13 -05:00
Sam
37fcfb8b6f Created manifest for database to filepath for items. 2020-09-29 19:48:12 -05:00
Sam
3d6c26a3c7 Fully separated sceptres from staves. 2020-09-29 19:48:12 -05:00
Sam
3e2e06f2f8 Projectile effects are now drained, so that the same projectile can't trigger it's effects on multiple enemies. 2020-09-29 19:48:11 -05:00
Sam
67eafdabd0 Separated out energy cost for healing so it's not based off of the energy regen from dealing damage. 2020-09-29 19:48:11 -05:00
Monty Marz
3734fafcd8 doubled energy consumption for M1 healing 2020-09-29 19:48:10 -05:00
Sam
5bd6f0e26f Addressed feedback in sceptre branch 2020-09-29 19:48:09 -05:00
Sam
de45784596 Addressed round of testing feedback. 2020-09-29 19:48:09 -05:00
Sam
18c2b850d3 Added healing healthsource logic to beam system. 2020-09-29 19:48:08 -05:00
Monty Marz
13d9b814ab separate sceptres from staffs, show values below 1.0 as decimals in the SCT, add starting sceptre
remove firebolt from starting sceptre
2020-09-29 19:48:07 -05:00
Sam
7e95a93434 Energy no longer regens when heal target is at full health. 2020-09-29 19:48:07 -05:00
Sam
07fd9ac023 Re-added necessary functionality to beam (heal, lifesteal, energy regen). 2020-09-29 19:48:06 -05:00
Sam
095433abcc Addressed comments. 2020-09-29 19:48:06 -05:00
Sam
799a6c1d1e Tweaked beam collision logic to be more accurate. 2020-09-29 19:48:05 -05:00
Sam
a679a34a7b Reverted changes to melee system that were added to when beam was initially in melee system. 2020-09-29 19:48:04 -05:00
Sam
46563e7008 Added beam system. Added collision code for spherical wedge/cylinder detection. 2020-09-29 19:48:04 -05:00
Sam
03b5cac2f9 Beams now have spherical hit detection. 2020-09-29 19:48:02 -05:00
Sam
6bb680f372 M1 now only regens stamina when healing allies if they are not at full health. 2020-09-29 19:48:02 -05:00
Sam
8f7d45100d Tick rate now exposed as a variable. 2020-09-29 19:48:01 -05:00
Monty Marz
a2d74b71c4 change tick rate 2020-09-29 19:48:01 -05:00
Monty Marz
2b8d1e6fb9 test values 2020-09-29 19:48:00 -05:00
Sam
bcda944af9 Fixed energy cost for playtesting purposes. 2020-09-29 19:48:00 -05:00
Sam
6b23af6e0b Tweaked particles. Added skill icons. 2020-09-29 19:47:58 -05:00
Sam
8b9202710f New sceptre M2 is functional. 2020-09-29 19:47:57 -05:00
Sam
921d224ef6 Lifesteal now works. Added particles to healing beam. 2020-09-29 19:47:57 -05:00
Sam
f20134d7ea Initial implementation for beam attack. 2020-09-29 19:47:56 -05:00
Joshua Yanovski
69f68ddf29 Reduce chunks / chonk by trimming the ends.
This improves the defragment operation for chonks by letting them remove
chunks at the top that match above, and bottom that match below.  This
reduces the chunks / chonk from around 5.9 to around 3.4 at origin. From
my investigations, adding something for water would probably get us a
full 50% reduction, if we could collapse intermediate chunks; block
types other than rock / air / water never appear to have full chunks of
the same block, so any additional optimization will require changes to
the subchunk compression format or changes to the actual chunks we
generate.
2020-09-29 19:08:45 +02:00
Forest Anderson
25ab132d73 Merge branch 'xvar/add-clone-on-ref-ptr-clippy-lint' into 'master'
Added #![deny(clippy::clone_on_ref_ptr)] to all crates and fixed resulting lint errors

See merge request veloren/veloren!1411
2020-09-28 19:32:03 +00:00
Joshua Yanovski
7d6aebb316 Fix hacky solution with proper defragmentation.
After generating a chonk, we now find the highest frequency block (in
terms of the number of groups that uniformly consist of that block) and
replace the chunk's default with that one.  We also resort the data in
the process to be in the same order as the original array index.  This
improves our memory savings from 3x to almost 7x, and brings us within a
factor of 3 or so of what I hope a true average will be.

The defragmentation is not totally optimal and can probably be improved
from a performance perspective, but given how much of a hard bottleneck
RAM is this seems worthwhile.  Also, this doesn't suffer from the issues
the previous solution did.
2020-09-28 16:56:26 +02:00
Joshua Yanovski
b9528da8f6 Improve chunk space consumption by a lot.
3x - 5x depending on terrain.  We can do a lot better but this is a good
start.

Also, added chunk group count to metrics.  This correlates with memory
usage specifically by chunk voxel data in a much more direct way than
chonk or chunk count do, so this should provide extra useful information
(especially for our average overhead per chonk / chunk).
2020-09-28 13:35:49 +02:00
Joshua Yanovski
443f3287e4 Merge branch 'sharp/remove-spurious-vox' into 'master'
Remove spurious uses of Vox.

See merge request veloren/veloren!1406
2020-09-27 16:41:29 +00:00
Ben Wallis
b3dd8e8a02 Added #![deny(clippy::clone_on_ref_ptr)] to all crates and fixed resulting lint errors 2020-09-27 17:25:33 +01:00
Joshua Yanovski
5af5ceb1f9 Address review comments. 2020-09-27 17:06:46 +02:00
Ben Wallis
11fc74642e Refactored crafting to use ItemDef instead of Item 2020-09-27 14:55:31 +01:00
Joshua Yanovski
529533466c Fix collision detection in liquid. 2020-09-26 16:53:49 +02:00
Joshua Yanovski
938039a56e Remove spurious uses of Vox.
In the process, also try to address a few edge cases related to block
detection, such as adding back previously solid sprites and removing
filters that may be vestiges of earlier logic.
2020-09-26 16:30:40 +02:00
Marcel Märtens
b7dc17c11f switch version to pre-alpha-2020-09-22 vs pre-alpha-v0.7.0 2020-09-22 12:04:07 +02:00
Marcel Märtens
8eec46424f switching veloren naming scheme, to either one of the following:
`stable-0.7.0 (<hash>-<datetime>)` for release versions.
And
`nightly-<date> (<hash>)` for nightly and master versions

Reason is, many players only give information that they are running `0.x.0` but are not giving us the information which day, or commit they are running. So we should make master builds less confusing.
2020-09-22 11:47:18 +02:00
Snowram
fa2dd28587 Fixed various issues from better-things branch 2020-09-21 23:57:10 -04:00
Joshua Barretto
2f2e766ebb Merge branch 'zesterer/better-block-format' into 'master'
Stopped all blocks being explodable

See merge request veloren/veloren!1402
2020-09-22 00:26:06 +00:00
Sam
2ff59c9f60 Addressed comments 2020-09-21 17:55:29 -05:00
Joshua Barretto
becb58e305 Stopped all blocks being explodable 2020-09-21 23:47:33 +01:00
Sam
b4018e7d42 Made 3rd ability interruptible. Final balance tweaks. 2020-09-21 17:40:16 -05:00
jshipsey
8070a38a89 spin anim 2020-09-21 17:38:57 -05:00
Sam
133e79ffd5 Modified how spin melee functions. 2020-09-21 17:38:56 -05:00
jshipsey
e79cef4824 dash animation 2020-09-21 17:38:55 -05:00
Sam
a8e834e754 Initial implementation of spin attack for sword. 2020-09-21 17:38:54 -05:00
Sam
fe70b7fbce Addressed second round of feedback. 2020-09-21 17:38:53 -05:00
Sam
b06ab250cc Addressed first round of feedback on sword overhaul. 2020-09-21 17:38:52 -05:00
Sam
c99e4c3c18 Added swing duration to dash melee. Added framework for animation to be added. 2020-09-21 17:38:51 -05:00
Sam
6dede05a0e Combo now only increases when landing a hit. 2020-09-21 17:38:51 -05:00
Sam
2aac008b90 Attack speed now scales with combo in combo melee. 2020-09-21 17:38:50 -05:00
Sam
e54483d789 Shifted hit attempt to before swing duration, instead of after. 2020-09-21 17:38:49 -05:00
Sam
b79235b890 Dash melee now works as desired. 2020-09-21 17:38:49 -05:00
Sam
744843d03f Dash now stops when colliding with entity 2020-09-21 17:38:48 -05:00
Sam
04af75bf8d Initial implementation of new dash melee. 2020-09-21 17:38:48 -05:00
Sam
abcd0af1e3 Removed combo duration of combo melee (combo now activated from recover duration). Allowed for forced forward movement in combo melee, and added it to stages 1 and 3). 2020-09-21 17:38:47 -05:00
jshipsey
a18c23025e stage 2 and 3 anim 2020-09-21 17:38:46 -05:00
Sam
847bddbd89 Removed swing_frac, added a swing duration instead to allow for more utility in character state. Moved location of stage_section enum to wielding so it could more easily be used by other character states. 2020-09-21 17:38:46 -05:00
Sam
2ba9d1e54f Added support for different swings in the combo melee having differnt fractions of time buildup duration is split. 2020-09-21 17:38:45 -05:00
jshipsey
2451a64b97 stage 2 animation 2020-09-21 17:38:44 -05:00
Sam
0ba5740265 Added enum for stage section instead of using 4 bools. 2020-09-21 17:38:43 -05:00
Sam
440e45f2bc Did stuff to support addition of keyframes for combo melee animation. 2020-09-21 17:38:43 -05:00
Sam
aab56ea636 Animation time for combo melee now resets between stages. 2020-09-21 17:38:42 -05:00
Sam
cf573a42bd Initial implementation of combo melee attack. 2020-09-21 17:38:41 -05:00
Joshua Barretto
0ca42857fa Addressed review issues 2020-09-21 21:10:32 +01:00
Joshua Barretto
388a899a7f Added make_sprite command 2020-09-21 16:39:20 +01:00
Joshua Barretto
112b11c951 Fixed broken arrow physics 2020-09-20 11:56:57 +01:00
Joshua Barretto
49d1b3df6d Improved docs 2020-09-20 11:46:12 +01:00
Joshua Barretto
ece4a01867 Improved representation of Block for better performance, more features, and better backwards-compatibility 2020-09-20 11:46:12 +01:00
Sam
45fef87f32 Addressed comments 2020-09-19 14:40:21 -05:00
Sam
e39770d1d9 Golem now spawns in dungeon. 2020-09-19 14:40:20 -05:00
Sam
99aba78422 Added healing healthsource logic to shockwave system. 2020-09-19 14:40:19 -05:00
Sam
6a1acd47a1 Added maximum vertical angle for shockwave. 2020-09-19 14:40:19 -05:00
Sam
d0f068ba63 Fixed shockwave and melee crit damage bypassing infinite armor. Made knockback not be applied if infinite armor. 2020-09-19 14:40:18 -05:00
Sam
6327dd18b6 Moved knockback to a server event so that it would actually be applied to the player. 2020-09-19 14:40:17 -05:00
Sam
819fb8ee77 Changed boss from cyclops to stone golem. Added ai specific for boss.
Tweaked shockwave.

Fix rebasing errors.
2020-09-19 14:40:16 -05:00
Sam
3e4615daea Loadouts are now generated with loadout_builder.rs. Creatures spawned naturally and via command are now spawned with the same mechanics. 2020-09-19 14:40:14 -05:00
Sam
f5dad20899 Tweaked shockwave values. Added shockwave damage type. Changed how knockback was handled in shockwaves to make negative knockback work better. 2020-09-19 14:40:13 -05:00
Imbris
829d8a20d1 Add shockwave system to handle shockwaves colliding with other entities 2020-09-19 14:40:10 -05:00
Sam
717142d5ea Started to implement shockwave system. 2020-09-19 14:29:06 -05:00
Sam
68ecfba291 Projectile speed is no longer hard-coded. 2020-09-19 14:29:05 -05:00
Sam
66b0fee3c7 Separated knockback out from basicmelee. Added weapon for cyclops boss to use, and added 1 ability to it. 2020-09-19 14:29:04 -05:00
Imbris
6cd6a96b64 Fix projectile/water interaction 2020-09-19 13:54:05 -04:00
Imbris
017d4a3c16 Increase entity vs entity repulsion factor, add check to ensure entities don't collide with themselves, fix possession projectiles not working on entities in the same group 2020-09-19 13:54:05 -04:00
scott-c
2686598f1f Improve first-person projectile aiming 2020-09-19 19:14:23 +08:00
Monty Marz
5fe79e1c6a new loading screen bgs (part 1)
Add a basic random feature to char creation

loading screen bg (part 2)

loading screen changes, random button graphics
Random appearance also pick a random npc name
2020-09-18 23:17:47 +00:00
Snowram
f9fada87cf Addresses comments 2020-09-18 18:45:03 +02:00
jshipsey
8330d087e6 clippy 2020-09-17 22:58:02 -04:00
jshipsey
90e5bbaac0 rebase 2020-09-17 22:41:40 -04:00
jshipsey
5bb45a4861 spawn tweaks, improved odonto 2020-09-17 22:32:11 -04:00
Snowram
fecc40ad8e Better quadmed legs/feet ratio 2020-09-17 22:32:11 -04:00
Snowram
62f6a5799a Initial quadmed feed animation 2020-09-17 22:32:10 -04:00
jshipsey
06b39b9072 species specific improvement 2020-09-17 22:32:10 -04:00
jshipsey
b781a1765b theropod run 2020-09-17 22:32:10 -04:00
Snowram
9308cabeb8 add deer, beaver and porcupine npcs 2020-09-17 22:32:10 -04:00
jshipsey
cd6e1ad45f haul out the critter skele, add theropod 2020-09-17 22:32:10 -04:00
jshipsey
ecae71c016 gliders as items. anim improvements 2020-09-17 22:32:09 -04:00
jshipsey
412495e5fc assets/manifests 2020-09-17 22:18:49 -04:00
jshipsey
bd1984bf28 golem addition, fix for axe attack 2020-09-17 22:18:49 -04:00
Ben Wallis
712f2e9c97 * Moved migrations to beginning of server initialisation
* Added migrations for entity ID changes to existing tables
2020-09-17 23:02:14 +00:00
Marcel Märtens
3c58b64689 add detailed information on state tick timings 2020-09-16 18:24:18 +02:00
Joshua Yanovski
19485b6a00 Add a DisconnectReason enum. 2020-09-14 08:16:09 +02:00
tylerlowrey
2b0c1e89f3 Refactored kicking the player into its own function + ran fmt on project 2020-09-14 07:54:05 +02:00
tylerlowrey
30c3146682 Added main menu kick message with kick reason after player is kicked 2020-09-14 07:52:31 +02:00
tylerlowrey
fee79720ee Added ban message with reason when banned user attempts to login to server 2020-09-14 07:52:31 +02:00
tylerlowrey
07e33286ad Changed reason field for kick & ban from Any to Message 2020-09-14 07:52:31 +02:00
tylerlowrey
c55a66d5ba Added ban, unban, kick usage information and invocation aliases 2020-09-14 07:52:31 +02:00
Imbris
3fbf8d7ca0 Remove chunk from mesh todo if neighbour is deleted, be more careful with z_start and z_end in terrain meshing 2020-09-12 21:02:00 -04:00
Imbris
c3ae641fbb Merge branch 'imbris/tracy' into 'master'
Add more tracing instrumentation and tracy support

See merge request veloren/veloren!1359
2020-09-10 05:07:51 +00:00
Matthew Martin
57c6160b72 * Set the KillType to Other for HealthSource::Healing
* Extend logic to projectiles and explosions
2020-09-09 23:34:10 +02:00
Matthew Martin
a9086b27a0 Do not make healing items deal damage 2020-09-09 23:22:49 +02:00
TheThirdSpartan
7fd673ecb2 Added localization config options for new death messages 2020-09-09 20:26:20 +00:00
Imbris
f39d1e9bb5 Use less verbose span names when the tracy feature is off 2020-09-07 00:59:16 -04:00
Imbris
7efbc74551 remove duplicate tracing filter code, fix compiling voxygen with the
tracy feature
2020-09-06 22:28:14 -04:00
Imbris
0683a40741 Use finish_continuous_frame directly 2020-09-06 22:28:14 -04:00
Imbris
63d60c212c Add spans to server systems 2020-09-06 22:28:14 -04:00
Imbris
4f68a6df27 Update tracy crates, reduce overhead of timing, add more misc instrumentation 2020-09-06 22:28:14 -04:00
Imbris
e37a01be9d Sprinkle instrumentation in common crate,in particular in the ecs systems 2020-09-06 22:28:14 -04:00
Imbris
50ceb1c93e Add workaround for spans with winit loop, configure filtering when the tracy feature is on, spinkle some spans in the codebase 2020-09-06 22:28:14 -04:00
Imbris
d95e539495 Intial setup of tracy 2020-09-06 22:28:14 -04:00
Marcel Märtens
961b8a4d7c Implement the Player Timeout as config 2020-09-06 23:34:57 +02:00
TheThirdSpartan
6dbd1bc132 adding feature requested in issue #153 - displaying your alias in game as 'you' 2020-09-06 19:42:32 +00:00
Joshua Barretto
49c713a071 Merge branch 'zesterer/rtsim' into 'master'
Beehives, Fireflies, and minor worldsim/lighting adjustments

See merge request veloren/veloren!1357
2020-09-05 17:16:08 +00:00
Monty Marz
a70567b644 make dummy cmd an admin cmd to avoid exp cheesing and entity spamming 2020-09-05 16:12:35 +02:00
Imbris
fb33a5e519 Merge branch 'termac/inventory_collect_when_full_fix' into 'master'
Fix bug collecting items into full inventory

See merge request veloren/veloren!1333
2020-09-05 06:51:22 +00:00
Joshua Yanovski
66f49d5386 Merge branch 'sharp/default-shadows' into 'master'
Create (segment, offset) just once per figure.

See merge request veloren/veloren!1360
2020-09-04 15:54:55 +00:00
Joshua Barretto
0c0f150140 fmt 2020-09-04 11:48:57 +01:00
Joshua Barretto
afe42e0b86 Fixed projectiles reorienting once stickied 2020-09-04 11:48:56 +01:00
Joshua Barretto
032ec9ef41 Added bee hives 2020-09-04 11:48:56 +01:00
Joshua Barretto
88add8456f Added fireflies, reeds near rivers 2020-09-04 11:48:56 +01:00
Joshua Barretto
4405227ffb Made light attenuation nicer, fixed campfire light offset 2020-09-04 11:48:54 +01:00
Monty Marz
821c7e5881 made npcs decline invites until we have a better recruitment system 2020-09-04 00:46:32 +02:00
termac
f05c120fab Fix bug collecting items into full inventory
When the inventory is full and a player tries to reclaim an item from a
block, collecting always failed. If the item is stackable and already
present inside the inventory it should be collected though.
The collect case now behaves more like the pickup case, using
inventory's 'push' method to add the item and implicitly check for
available space.
2020-09-02 12:47:56 +02:00
Joshua Yanovski
4eeb131f4b Create (segment, offset) just once per figure. 2020-09-01 11:23:19 +02:00
Joshua Yanovski
7e6975d881 Merge branch 'sharp/typed-body' into 'master'
Further generalize the typed module.

See merge request veloren/veloren!1346
2020-09-01 06:29:35 +00:00
Songtronix
11730f2136 change(common): remove find_folder 2020-08-31 16:43:16 +02:00
Songtronix
abaf6ee53e fix: locate assets in almost all cases 2020-08-31 10:25:45 +02:00
Joshua Yanovski
6f3d5da6f3 Further generalize the typed module.
This enables us to automatically create configuration formats from enums
or structs.  For enums, we create a structure with a field for each
case, representing a pattern match; the configuration format can then
enter a different expression for each case.  For structs, we create an
enum with a variant for each field, representing projecting by that
field; the configuration format selects the field to project from, and
then can write a further expression on that field (for instance, it can
perform another pattern match).

So far we don't actually have anything that *uses* this functionality;
I decided to finish it for the purpose of specifying a default
lantern offset, only to discover that we already return a lantern offset
from the animation crate.  So I fixed it there instead.
2020-08-31 05:59:44 +02:00
Joshua Yanovski
8be3648a4d Move sprite data to a config file. 2020-08-28 09:23:43 +02:00
Joshua Yanovski
3a96b73b2c Move figure meshing to a background thread. 2020-08-28 05:25:31 +02:00
Imbris
4790373ab3 Add State::read_component_copied 2020-08-26 20:47:41 -04:00
Monty Marz
6946de2682 fixed nametag height
fmt

fmt
2020-08-25 21:54:47 +02:00
Joshua Barretto
bf7afcf5c9 Merge branch 'zesterer/small-fixes' into 'master'
Better world colours, better projectiles, better aiming, many other small improvements

See merge request veloren/veloren!1332
2020-08-25 15:59:05 +00:00
notoria
2be4202d01 Corrected some spelling errors 2020-08-25 12:21:25 +00:00
Joshua Barretto
24780e4f58 Handled 3d/2d sanity check bug 2020-08-25 12:54:30 +01:00
Joshua Barretto
37b45ba5f4 Addressed review issues 2020-08-25 11:01:17 +01:00
Joshua Barretto
12ea028a3d Improved single-tick projectile wall/entity collision bug 2020-08-25 00:04:04 +01:00
Joshua Barretto
9b812b0d8b Allowed small animals to block-hop again 2020-08-24 21:53:17 +01:00
Joshua Barretto
e4de32ac25 Fixed quadruped hitboxes 2020-08-24 21:46:08 +01:00
Joshua Barretto
2b9d5ee4a2 Fixed bad hitbox radii and adjusted field colour 2020-08-24 20:52:18 +01:00
Joshua Barretto
7e571c10cf Corrected hitbox mistake 2020-08-24 18:29:59 +01:00
Joshua Barretto
6a4c5a05d0 Fixed projectile collisions, hitboxes, better aiming 2020-08-24 18:24:44 +01:00
Joshua Barretto
7af1b45d5f Better pet pathfinding 2020-08-24 12:36:27 +01:00
Monty Marz
abeba460be fix filepath 2020-08-23 13:36:11 +02:00
Monty Marz
c9438c0947 Fixes
Fix Cave NPCs only spawning very deep inside caves

Increase twig density

Adjust armour values and ingredients for starter sword

fix healing rod using the wrong model

Hung up the lianas again
2020-08-22 23:37:45 +00:00
Monty Marz
ce929d2924 Address comments, clippy and minor adjustments
first bunch of comments addressed

change order or scatter, paths and caves being applied in worldgen to avoid floating scatter objects

campfire adjustments, reduced grass density due to FPS issues

readded item descriptions to the crafting window, item desc for craftable armour

address comments
happy clippy, happy life
clippy

clippy

more clippy
fmt

revert cargo.toml formatting
remove "allow unreachable pattern"
fmt
2020-08-21 22:37:08 +02:00
Monty Marz
e3eb34085f craftable starting set
velorite staff update

ore_nature_longbow

model fix
humanoid colours

Update agent.rs

improve rng (according to zesterer)

slower fleeing

More adjustments

fix cult leader name

more loot tables

all kinds of adjustments

smöl adjustments
2020-08-21 19:36:21 +02:00
Sam
9d2fe79a78 Changes to how critical hits function for melee attacks. Removed ability for explosions to crit. Velorite sceptre now functions as healing staff. 2020-08-21 19:36:20 +02:00
Monty Marz
55d126861f fix tooltips in char selection, more balancing
fix talking animals

fix critter exp, stronger villagers

biped large balancing

more villager balancing, mushroom spawning rate

more balancing

fix rebase

multiple loottables

Add tarasque and bonerattler armour

Added loot tables for different groups of weapons and armor based off relative strength. Added loot table for cultist boss.

Added loot tables for consumables and food. Trimmed down default loot table.

remove male and female sign from char creation

chest loot tables

fix loot tables

lootable crates

lantern keybinding display

more loot tables

loot table changes

fixed loot tables

fix typo
more grass

rebase fix, better lantern

re-add sprite rotation for grass

crafting window alignment fix, new streetlamps, new shopsigns, new healing staff

height change
2020-08-21 19:36:19 +02:00
Sam
924d09e46c balancing
more specific stats

Update body.rs

more balancing

non hostile catoblepas and mouflons

quad low
more adjustments
Animals with enemy alignment now deal correct damage. Made health scaling species-specific.
2020-08-21 19:36:17 +02:00
Monty Marz
7ab80ef367 sprite spawning rules 2020-08-21 19:36:16 +02:00
Monty Marz
b930c34d89 agent changes, sprite spawning changes, alignment changes 2020-08-21 19:36:16 +02:00
Forest Anderson
a68fc077ce Merge branch 'songtronix/fixes' into 'master'
Fix: Various fixes

Closes #726

See merge request veloren/veloren!1306
2020-08-20 23:25:13 +00:00
Forest Anderson
69463ab912 Merge branch 'T-Dark-invuln-armor-makes-you-invuln' into 'master'
Fixed debug armor letting some damage through

Closes #703

See merge request veloren/veloren!1309
2020-08-20 23:22:50 +00:00
Joshua Yanovski
2dfd3b13d1 (See sharp/lod-history) LOD, shadows, greedy meshing, new lighting, perf
---

Pretty much a Veloren fork at this point.  Here's a high level overview of the changes (will be added to CHANGELOG just before merge).

At a high level this MR incorporates roughly two groups of changes.

The first group consists of new game features: more flexible map sizes, level of detail terrain, shadow maps, and a new lighting
engine.  This is "feature work" that (mostly)  only adds new things to Veloren, and mostly shouldn't affect old stuff.

The second big group of changes are those addressing the fallout from all the new features.  These include performance fixes of
various sorts: the addition of multiple graphics options and optimization of the cheap ones to avoid work, switching all voxel
models to use some variant of greedy meshing, switching over much of our CPU-side vector math to exploit SIMD instructions
(coinciding with a fork of `vek`), and a rewrite of how the UI handles text rendering (coinciding with updates to our fork
of `conrod`).  Making Veloren's hardcoded colors appear correct under the new lighting engine also required considerably
changes (TODO: Fill in this section when it's complete).

The second category of changes often heavily touches code owned by other people, including frequently modified code "owned" by a
handful of people, so I recommend that this code be reviewed particularly carefully.

---

At a high level (each will be described in more detail below):
- The world map has been refactored.
  - The world size is no longer hardcoded (@zesterer).
  - The map generation code was made generic to allow using it outside of the `world` crate (@zesterer).
  - On world creation, we now compute *horizon maps* (@zesterer).
  - The way we pass the world from the server to the client has been updated (@xMAC94x).
  - Artifacts related to image rotation were fixed (@imbris).
  - Multiflow rivers were enabled (@zesterer).
  - In the process of making changes related to the world map, various incidental fixes and optimizations were required.
- The new *level of detail* feature was added (@zesterer wrote part of this and has checked out the rest).
  - A new LOD terrain rendering step was added to the pipeline.
  - The LOD terrain quality was made configurable via a graphics setting.
  - Horizon maps were used to cast shadows from LOD chunks on both LOD and non-LOD terrain.
  - A "voxelization" effect was incorporated into rendered LOD terrain to make it blend better into the world.
  - In the process of making changes related to LOD, various incidental fixes and optimizations were required.
- Veloren's lighting has been completely overhauled (@zesterer has already checked most of this out).
  - A semi-accurate index of refraction was assigned to our materials.
  - A new, more realistic, physically based approach to lighting was used using the *Ashikhmin Shirley* BRDF.
  - We emulate *atmospheric scattering* using equations designed for measuring solar panel light exposure.
  - We attempt to compute *realistic light attenuation* in water using its real material properties.
  - In the process of making changes related to LOD, various incidental fixes and optimizations were required.
- Point and directional lights now cast realistic shadows, using *shadow mapping.* (@imbris, @zesterer, @Treeco, @YuriMomo)
  - Point light shadow maps were added to the rendering pipeline, using geometry shaders and *seamless cube maps*.
  - Directional light shadows were added to the rendering pipeline, using LISPSM together with disabling *depth clamping*.
  - "Shadow-only" chunks and NPCs were added to prevent shadows from models behind you from disappearing.
  - In the process of making changes related to shadow maps, various incidental fixes and optimizations were required.

The addition of shadow maps, LOD terrain, and the new lighting all led to significant performance degradation, on top of other
changes happening in master.  Therefore, a large number of performance improvements were also needed:

- The graphics options were made much more flexible and configurable, and shaders were optimize.
  - New options were provided for how to render lights and shadows  (@Pfauenauge, @zesterer).
  - Graphic setting storage and configuration were overhauled to make adding new features easier (@Pfauenauge, @imbris).
  - Shaders were rewritten to utilize GLSL's preprocessor to avoid overhead (@zesterer, @YuriMomo).
  - In the process of making changes related to providing additional rendering options, various incidental fixes and optimizations were required.
- Voxel model creation was switched to use *greedy meshing.*
  - A new voxel meshing method, greedy meshing, was added (@imbris).
  - Uses of the older meshing methods were migrated to use greedy meshing (@imbris, @jshipsey, @Pfauenauge).
  - New restrictions were added to terrain, figure, and sprites to future proof them for further optimizations (@jshipsey, @Pfauenauge, @zesterer).
  - Most positions are now relative to either chunk or player position for better precision (@imbris, @zesterer, @scottc).
  - In the process of making changes related to greedy meshing, various incidental fixes and optimizations were required.
- Animation and terrain math were switched to use SIMD where possible.
  - Fixes were made to vek to make its SIMD feature usable for us (@zesterer, @imbris).
  - The interface and types used in bone animation were changed in various ways (@jshipsey, @Snowram, @Pfauenauge).
  - Redundant code generation for body animation is now partly taken care of by a macro (@jshipsey, @Snowram, @Pfauenauge).
  - Animation code was modified to to use vek's SIMD representation where possible (@jshipsey, @Snowram, @Pfauenauge).
  - Terrain meshing code and shadow map math were also modified to use vek's SIMD representation (@imbris).
  - SIMD instruction generation was enabled (@YuriMomo, @jshipsey, @Snowram, @imbris, @Angelonfira, @xMAC94x).
  - In the process of making changes related to greedy meshing, various incidental fixes and optimizations were required.
- The way we cache glyphs was completely refactored, fixed, and optimized.
  - Our fork of `conrod` was optimized in various ways (@imbris).
  - Our fork of `conrod` now exposes whether a widget was updated during the current frame (@imbris).
  - Our use of the glyph cache was rewritten for correctness (@imbris).
  - A *text cache* was introduced that lets us skip remeshing glyphs that have not changed (@imbris).
  - Various changes were made to reduce pressure on the glyph cache, with more planned (@imbris, @Pfauenauge).
  - In the process of making changes related to the glyph cache, various incidental fixes and optimizations were required.
- Colors were changed to keep Veloren's look consistent with master.
  - Some older tree models were brought back (@Pfauenauge).
  - TODO(@Sharp): All hardcoded colors were extracted and made hotloadable.
  - TODO(@Treeco, @Pfauenauge, @imbris, @jshipsey): Hardcoded colors were fixed to conform to Veloren's style.
  - TODO(@Treeco, @Pfauenauge, @imbris, @jshipsey): Color models were fixed to conform to Veloren's style.

A detailed description of the involved changes follows.

---

- The world size is no longer hardcoded.  All functions dependent on world size now take a `WorldSizeLg`, which holds the base 2 logarithm of each actual world dimension and is guaranteed to maintain certain properties (outlined in `common/src/terrain/map.rs`).  Additionally, many utility functions that utilize the world size were moved into `common` as well (mostly `common/src/terrain/mod.rs`).  Finally, the world map format was updated in order to store its size explicitly, with a migration path from the old format that should work whenever the old formatted map was a square (practically always).  See `world/src/sim/mod.rs` for these changes.
- The map generation code was made generic to allow using it outside of the `world` crate.  The parts of the map generating code that do not need to query the world were moved over to `common/src/terrain/map.rs`, allowing them to be used from the client without creating a dependency on `world`.  The rest of it was turned into helper functions in `world/src/sim/map.rs`, which can be passed as closures to the generic map generation code to complete its construction.  This also means that colors are now passed in separately to the map generation function.  See <https://veloren.net/devblog-78/> for more details.
- On world creation, we now compute *horizon maps*.  See the function in `world/src/sim/util.rs`.

  Given a height map and a plane intersecting that height map, our horizon maps allow us to encode enough information to reconstruct shadows for each point on the height map using only the *horizon angle* (the angle at which the sun starts to become visible).  As Veloren's sun only covers one plane, this is sufficient for encoding sun shadows for LOD terrain, by encoding two angles per chunk (one for each 90 degrees the sun covers).  We can also use this for the moon, if we want, since the moon follows the same path.  Additionally, we store the *height* of the furthest occluder, to try to make the shadows volumetric; so this means 4 bytes in total for each chunk.

  Support for horizon maps has been merged into the map functionality in common as well.
- The way we pass the world from the server to the client has been updated.  Rather than passing the prerendered map, we instead pass three maps with values for each chunk; one with the color information, a second with altitude information, and a third with horizon map information.  We then reconstruct the map on the client, together with some additional information we send from the server (like the sea level and maximum height).  See `common/src/msg/server.rs` for a detailed description of the format of `WorldMapMsg`, and `server/src/libr.rs` and `client/src/lib.rs` for details of the map construction and parsing.
- Artifacts related to image rotation were fixed.  See the commit message for commit SHA `cf74d55f2e3d2ae7d25fd68d5c73b01a6afde86e` for a detailed explanation.  This involved changes to shaders, the addition of a new type of graphic (also reflected in the graphic cache) that allows specifying a border color (which automatically makes the associated texture immutable), and some related fixes.  I reproduce the first two paragraphs of the MR description as well:

 ```
 Fix map image artifacts and remove unneeded allocations.

 Specifically, we address three concerns (the image stretching during
 rotation, artifacts around the image due to clamping to the nearest
 border color when the image is drawn to a larger space than the image
 itself takes up, and potential artifacts around a rotated image which
 accidentally ended up in an atlas and didn't have enough extra space to
 guarantee the rotation would work).
 ```
- Multiflow rivers were enabled.
  This does not really need to be part of this MR, and would be easy to revert, but since it seemed to provide a nice improvement it's currently packaged with it.
  We already computed multiple outflows from each chunk for erosion purposes long before this MR.
  However, we never modified river rendering to be able to handle this case (just a single downhill river flow is complex enough!) so this was not exposed when deciding which chunks were rivers.
  Now that
- In the process of making changes related to the world map, various incidental fixes and optimizations were required.  Some examples of fixes include making sure terrain is never lowered to below sea level (to make the shadow maps report correct values), fixing map altitudes and colors to understand things like cliffs and "block level" coloring (that doesn'te xist on the column level), and fixing a crashbug when rendering images for the UI where source pixels are strongly rectangular.  Some examples of related performance fixes include avoiding allocating a fresh vector for all the maps (i.e. copying it over to change the format from `[u32; n]` to `DynamicImage` and then copying again to convert to `RgbaImage`), and instead using the `gfx::memory::slice` function to accomplish the same thing.  These sorts of changes are spread all arond the code.

This includes the additon of a new scene, `voxygen/src/scene/lod.rs`, a new pipeline `voxygen/src/render/pipeline/lod_terrain.rs`, and new shaders `assets/vxygen/shaders/lod-terrain-vert.glsl` and `assets/vxygen/shaders/lod-terrain-frag.glsl`, as well as associated changes to the renderer in `voxygen/src/render/renderer.rs`.

The main idea behind our initial approach to LOD was to take the world data we now get from the server (altitude, color, and horizon mapping).

  - Some previously computed values were turned into shader uniforms for better prediction on weak processors. (@zesterer)
  - Calls to power or trig functions were removed or replaced with multiplications, where possible.
  - After some deliberation
  - To properly handle sprite "waving" for nearby sprites,

We explicitly designed the greedy meshing system with figures and sprites in mind.
In both cases, we want to be able to *efficiently* pack many different models into the same texture, especially in cases where we know
we will either not be removing any of the grouped-together from the models from the texture, or will remove all of them at once (so
they can be packed into some specific subtexture).
For sprites, since we know every model in advance and never intend to deallocate them, we currently pack them all as efficiently as
possible into one giant tetxure atlas.  However, in the future we might opt to pack them slightly less efficiently in exchange for
shrinking the sprite vertex size.
For figures, we pack all the textures for each *model* into the same atlas.
is a global texture atlas used for every sprite, and for figures which is why we have the ability to mesh multiple
models to the same texture area (using the simple texture atlas allocator) without requiring intermediate vector allocations.
This is accomplished by delaying the time when we actually write the color and light data to the texture until *after* all the
model vertices have been meshed; then, we can just allocate the whole color/light array at once, making the atlas we use an
exact fit.  In computer science-y terms, we accomplish this delay by, after we perform the initial greedy meshing (without
texture information), not continuing to create the texture data, but instead constructing a *continuation*--that is, a function
that, when called, will execute the rest of the computation.  We push this continuation (which in Rust terms is a `FnOnce` closure
that takes the `ColLightsInfo` that it is supposed to write to as context) onto a

onto a vector

resizing.  To allow for suspended writes to texture data, Rust pointed out to me that the continuation that would eventually write the color and light data to the texture atlas (the one that is shared by all models sharing the same greedy mesher) would have to *own* whatever data it mshed.  Because we often generate the model data to mesh as a temporary in `voxygen/src/load.rs`, the

  - Matrix multiplications in the shader were reduced for figure data (@zesterer).
  - Vertex "waves" for fluid data were removed.
  - Terrain "bending" near edges was removed.
  - Scaling was fixed to make sure empty space was not introduced in a space previously occupied by a block.  It was also changed to take ownership of its voxel data,
    rather than sharing it, to let it be used with meshing.
  - Rust's nightly version was bumped in order to use the `array_map` function, which lets us reuse more code between the simple map and `FigureModelCache`.

- PositionedGlyph::standalone.

---

I tried to cite sources in many cases[^realtime],[^lloyd],[^lispsm],[^pbrt],[^greedy],[^tjunctions]
where I needed features from elsewhere but I am particularly grateful for the following resources,
esepcially where they have accompanying source code.  I linked all of them that are accessible to the public (those that are not were
obtained through legal means).

[^realtime]: Eisemann, Elmar, Michael Schwarz, Ulf Assarsson, Michael Wimmer. Real-Time Shadows. A K Peters/CRC Press (T&F), 20160419.
[^lloyd]: Lloyd,B. 2007. [Logarithmic perspective shadow maps](http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf). PhD thesis, University of North Carolina.
[^lispsm]: Wimmer, M., Scherzer, D., and Purgathofer, W. 2004. [Light space perspective shadow maps](http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf). In Proceedings of Eurographics Symposium on Rendering 2004, pp. 143– 152.

[^pbrt]: Pharr, Matt, et al. [http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf](Physically Based Rendering: From Theory to Implementation). Third edition, Morgan Kaufmann Publishers/Elsevier, 2017.
[^greedy]: mikolalysenko. “Meshing in a Minecraft Game.” 0 FPS, 30 June 2012, <https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/>.
[^tjunctions]: blackflux. “Meshing in Voxel Engines – Part 1.” Blackflux.Com, 23 Feb. 2014, <https://blackflux.wordpress.com/2014/02/23/meshing-in-voxel-engines-part-1/>.

I am also especially grateful to Khronos, Wikiepdia, and stackoverflow for answering many of my specific questions while writing the MR.

---

Squashed commit of the following:

commit 300505e730
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 18:46:25 2020 +0200

    Fixing cargo doc and typo in CHANGELOG.

commit ec0aeb18e8
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 15:38:50 2020 +0200

    Hopefully final commit for the LOD branch.

commit 5e8ea0b1ea
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 10:14:26 2020 +0200

    Falling back to power as stopgap.

commit e44a1cbf46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 09:25:41 2020 +0200

    Address imbris feedback.

    Temporarily disables shiny water, lowers max VD.

    These restrictions will be lifted soon after merging.

commit 561e25778a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 08:31:13 2020 +0200

    Tweaking shaders a bit.

commit 7d19259078
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 07:59:43 2020 +0200

    Fix view example as well.

commit 051cd4934e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 07:29:06 2020 +0200

    Fix meshing benchmark.

commit c95e07db3b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 05:46:22 2020 +0200

    Address MR feedback, fix scene clouds.

commit 1bfb816cab
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:39:36 2020 +0200

    Incorporating Pfau's figure color changes.

    New eyes and new humanoid colors.

commit 3f9b89a3ac
Merge: e2f5162e4 62c53963a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:29:41 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit e2f5162e4f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:28:38 2020 +0200

    World colors are all hotloadable.

    They live in assets/world/style/colors.ron.

    Only a small handful of hardcoed colors remain in World; they are either
    part of the map, or difficult to disentangle from the rest of the
    computation.  Comments are made where appropriate.

commit 62c53963ab
Author: Marcel Märtens <marcel.cochem@googlemail.com>
Date:   Wed Aug 19 15:59:00 2020 +0200

    replace pretty_env_logger with tracing

commit 5b1625f99d
Merge: d71003acd 4942b5b39
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 19 05:15:56 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit d71003acda
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 19 05:14:34 2020 +0200

    Hotloading colors, part 1: colors in common.

    Currently, this just entails humanoid colors.  There are only three
    colors not handled; the light emitter colors in
    common/src/comp/inventory/item/tool.rs.  These don't seem important
    enough to me to warrant making hotloadable, at least not right now, but
    if it's needed later we can always add them to the file.

commit 63b5e0e553
Merge: c32b337a4 6d2c4b9c1
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 13:05:37 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit c32b337a46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 05:52:04 2020 +0200

    Fixing LOD grid, for real.

commit a166ae0360
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 05:28:05 2020 +0200

    Addressing imbris's initial feedback.

    Fixes two minor bugs: explosion particles were no longer spawning
    randomly, and LOD grids were not perfectly even.

commit 4cbad004f4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 16 19:27:58 2020 +0200

    Bumping nightly per request.

commit 548680276a
Merge: acc098604 8f8b20c91
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 16 19:26:06 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit acc0986040
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 22:28:32 2020 +0200

    Lower resolution due to lying drivers.

commit d3b878de2a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 22:15:38 2020 +0200

    Fix issues msh encountered with Intel 4600.

commit 10245e0c1b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 21:15:02 2020 +0200

    Merge more models into one mesh than we did previously.

commit 3155c31e66
Merge: 7204cc8a7 3c199280e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 22:35:22 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 7204cc8a7a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 22:34:43 2020 +0200

    Fix not yet done NPC animations.

    This forces them all to be the idle animation if not specified.

    This fixes issues where you'd have giant NPCs in water.

commit bc83360f2a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 19:36:37 2020 +0200

    Try to fix some bugs:

    - Z fighting with LOD terrain and water.
    - Audio SFX not playing.

commit 1fd104aa60
Merge: 862df3c99 7c2c392a3
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 12:02:31 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 862df3c997
Merge: 0a4218ed9 75c1d4401
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 05:52:56 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 0a4218ed9d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 22:27:14 2020 +0200

    Fix particle depth.

commit f51dfdeb44
Merge: c6251a956 5e6dc0471
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 20:19:04 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit c6251a956a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 20:15:46 2020 +0200

    Cache figures more intelligently.

    Cache figures for longer, and don't cache character states for the
    player except where they actually affect the rendered model.

commit 0ed801d540
Merge: c11b9bdf0 eea64f78f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 16:32:24 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit c11b9bdf0a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 11:47:15 2020 +0200

    Remove unneeded Clippy annotation.

commit 16aa9ef40a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 8 00:53:02 2020 +0200

    Fix hotloading and Clippy.

commit 3dc973e0be
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 23:50:27 2020 +0200

    Major speedups with SIMD.

commit fba64a7d93
Merge: 76429d00e d1e10b178
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 13:23:19 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 76429d00ee
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 13:23:10 2020 +0200

    Add clippy.toml.

commit c79f512f84
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 11:55:20 2020 +0200

    Fix all clippy issues, clean up Rust code.

commit 6f90e010b3
Merge: 77a8c7c26 5929cfa5c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 06:47:30 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 77a8c7c267
Merge: b44e44232 44febaabd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 06:47:10 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 5929cfa5c7
Author: jshipsey <jshipsey18@gmail.com>
Date:   Thu Aug 6 20:47:27 2020 -0400

    fixed in-hand arrow bug

commit b44e442325
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 6 13:40:35 2020 +0200

    Miscellaneous performance improvements.

commit be37acf287
Merge: 125d7fc6c c11876547
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 3 05:49:27 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 125d7fc6c4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 3 04:55:31 2020 +0200

    Abstract over simd vs. repr_c vectors.

    Also some minor improvements to Event size.

commit d4d4956e92
Merge: 5f3b7294a aced5f979
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:56:54 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 5f3b7294af
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:43:52 2020 +0200

    Fix formatting issues I missed before.

commit a428a3ebba
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:41:51 2020 +0200

    Fix clippy warnings, part 1.

    There aer still a bunch of type too complex and
    function takes too many arguments warnings that I'll fix later
    (or ignore, since in the one case I did fix a function takes too
    many arguments warning I think it made the code *less* readable).

commit ba54307540
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 30 13:22:42 2020 +0200

    Fix light animations so they are removed when the light turns off.

commit 7e0f4bcbf0
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 21:10:20 2020 +0200

    Fix crash in edge case for pixel art.

commit 56da06f7a3
Merge: cf74d55f2 9f53a4a19
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 18:56:52 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit cf74d55f2e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 18:29:52 2020 +0200

    Fix map image artifacts and remove unneeded allocations.

    Specifically, we address three concerns (the image stretching during
    rotation, artifacts around the image due to clamping to the nearest
    border color when the image is drawn to a larger space than the image
    itself takes up, and potential artifacts around a rotated image which
    accidentally ended up in an atlas and didn't have enough extra space to
    guarantee the rotation would work).

    The first concern was addressed by fixing the dimensions of the map
    images drawn from the UI (so that we always use a square source
    rectangle, rather than a rectangular one according to the dimensions of
    the map).  We also fixed the way rotation was done in the fragment
    shader for north-facing sources to make it properly handle aspect ratio
    (this was already done for north-facing targets).  Together, these fix
    rendering issues peculiar to rectangular maps.

    The second and third concerns were jointly addressed by adding an
    optional border color to every 2D image drawn by the UI.  This turns
    out not to waste extra space even though we hold a full f32 color
    (to avoid an extra dependency on gfx's PackedColor), since voxel
    images already take up more space than Optiion<[f32; 4]> requires.
    This is then implemented automatically using the "border color"
    wrapping method in the attached sampler.

    Since this is implemented in graphics hardware, it only works (at
    least naively) if the actual image bounds match the texture bounds.
    Therefore, we altered the way the graphics cache stores images
    with a border color to guarantee that they are always in their own
    texture, whose size exactly matches their extent.  Since the easiest
    currently exposed way to set a border color is to do so for an
    immutable texture, we went a bit further and added a new "immutable"
    texture storage type used for these cases; currently, it is always
    and automatically used only when there is a specified border color,
    but in theory there's no reason we couldn't provide immutable-only
    images that use the default wrapping mdoe (though clamp to border
    is admittedly not a great default).

    To fix the maps case specifically, we set the border color to a
    translucent version of the ocean border color.  This may need
    tweaking going forward, which shouldn't be hard.

    As part of this process, we had to modify graphics replacement to
    make sure immutable images are *removed* when invalidated, rather
    than just having a validity flag unset (this is normally done by
    the UI to try to reuse allocations in place if images are updated
    in benign ways, since the texture atlases used for Ui do not
    support deallocation; currently this is only used for item images,
    so there should be no overlap with immutable image replacement,
    so this was purely precautionary).

    Since we were already touching the relevant code, we also updated
    the image dependency to a newer version that provides more ways
    to avoid allocations, and made a few other changes that should
    hopefully eliminate redundant most of the intermediate buffer
    allocations we were performing for what should be zero-cost
    conversions.  This may slightly improve performance in some
    cases.

commit ad18ce9399
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 13:21:09 2020 +0200

    Fix continent scale hack.

commit 36b1cb074f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 12:11:40 2020 +0200

    Enable loading different sized maps without a recompile.

    We may want to tweak the effects of the continent_scale_hack.

commit 13b6d4d534
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 10:55:48 2020 +0200

    Removing WORLD_SIZE, part 1.

    Erased almost every instance of WORLD_SIZE and replaced it with a local
    power of two, map_size_lg (which respects certain invariants; see
    common/src/terrain/map.rs for more details about MapSizeLg).  This also
    means we can avoid a dependency on the world crate from client, as
    desired.

    Now that the rest of the code is not expecting a fixed WORLD_SIZE, the
    next step is to arrange for maps to store their world size, and to use
    that world size as a basis prior to loading the map (as well, probably,
    as prior to configuring some of the noise functions).

commit 30b1d2c642
Merge: 7d56ba31b 1377b369f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Jul 27 13:16:58 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 7d56ba31b4
Merge: 2101113b4 598f14b25
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Jul 27 13:16:27 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 1377b369f6
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Sun Jul 19 23:25:38 2020 +0200

    more saturated pumpkins

commit ae8d50527f
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Sat Jul 18 20:29:56 2020 +0200

    acacia models

commit 2101113b46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 18 18:55:25 2020 +0200

    Higher detail LOD.

commit add2cfae04
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 16 01:57:39 2020 +0200

    Revert some irrelevant stuff.

commit 2e2ab3dc1e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 15 13:30:49 2020 +0200

    Fixing various things about shadows.

    * Correcting optimal LISPSM parameter.
    * Figure shadows are cast when they're not visible.
    * Chunk shadows stay cast until you look away.
    * Seamless cubemaps for point lights.
    * Etc.

commit 6c31e6b562
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 19:50:26 2020 +0200

    Fix shadow creation.

commit 6332cbe006
Merge: be438657c 930e0028b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 18:47:00 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit be438657c3
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 18:28:08 2020 +0200

    Tweaks to shadows.

    Added shadow map resolution configuration, added seamless cubemaps,
    documented all existing rendering options, and fixed a few Clippy
    errors.

commit 23b4058906
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 10:11:19 2020 +0200

    Fix moon, use nonlinear noise for terrain.

    Note that the latter has a bit of performance cost.

commit 7fbe5cbfbb
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:23:02 2020 +0200

    Address lies about max texture size.

commit bcfc62b5e1
Merge: 75e3626a7 18a08e8fe
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:22:08 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 75e3626a78
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:21:52 2020 +0200

    OpenGL 3.3 minimum.

commit 18a08e8fe2
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Tue Jul 7 23:57:52 2020 +0200

    settings localization

commit 90c5d1ca36
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 21:11:48 2020 +0200

    Lower near distance.

commit 0e66f02b25
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 20:09:01 2020 +0200

    All sprites sway in the wind now.

commit db1401a691
Merge: 69e508d8c e8b4b29d7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 19:34:17 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 69e508d8c9
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 18:41:37 2020 +0200

    Make it easy to switch to SIMD for math.

commit ffe0f5928c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 21:21:12 2020 +0200

    Fix some issues with underwater rendering.

commit bfda6da42f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 19:17:59 2020 +0200

    Fix some minor display issues.

commit 0ed752e087
Merge: ccc6a06a8 518edcb85
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 18:14:21 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit ccc6a06a8d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 18:04:34 2020 +0200

    Some minor changes.

commit 4e02024670
Merge: 50a64d927 e05c9267a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 16:17:40 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 50a64d927e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 13:07:03 2020 +0200

    Fix far plane.

commit 7dd06da34c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 2 22:25:35 2020 +0200

    Add shadows.glsl.

commit 618a18c998
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 2 22:10:22 2020 +0200

    Adding shadows, greedy meshing, and more.

commit eaea83fe6a
Merge: 267018495 2f89b863e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 22:47:07 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 2670184954
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 21:20:01 2020 +0200

    Make civsim and sites deterministic.

    For anything in worldgen where you use a HashMap, *please* think
    carefully about which hasher you are going to use!  This is
    especially true if (for some reason) you are depending on hashmap
    iteration order remaining stable for some aspect of worldgen.

commit f8376fd5dc
Merge: 654f7e049 cdee191dd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 17:53:57 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 654f7e0492
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed May 20 21:22:30 2020 +0200

    Correct backface culling.

commit 560501df05
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue May 19 17:22:06 2020 +0200

    Greedy messhing for shadows.

commit a4d87e1875
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun May 17 05:59:00 2020 +0200

    Shadow maps work for lantern.

commit 243d0837b8
Merge: 04382dc28 71dd520cd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 15 14:53:13 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 04382dc286
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 15 14:22:17 2020 +0200

    WIP: better graphics config, better LOD, shadow maps.

commit 22ddbad3eb
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat May 2 18:54:09 2020 +0200

    Minor shader fixes.

commit 746a10e8d0
Merge: 0f4a0e763 40ab94673
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat May 2 04:02:09 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 0f4a0e763d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 1 23:03:24 2020 +0200

    Switch back to pop-in terrain.

commit dd74fa7e4a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 1 22:58:55 2020 +0200

    LOD shading closer to voxel shading.

commit ef67bd58ba
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Apr 28 20:49:03 2020 +0200

    Experimental underwater lighting.

commit 2c5ad9d076
Merge: 748279835 303967a6f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 22:35:24 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 7482798354
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 21:59:55 2020 +0200

    Replace discard in figure-frag.

commit d83b4ae69b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 18:45:57 2020 +0200

    Fix sprite lighting, HDR from focus_pos.

commit 0594238004
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 18:14:10 2020 +0200

    Proper HDR from point lights.

commit 48c93d2b41
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 14:01:43 2020 +0200

    Brighter ambiance, darker LOD shadows.

commit e0452e895c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 13:13:23 2020 +0200

    More proper HDR.

commit 4c6da3ed16
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 00:13:10 2020 +0200

    Trying LOD noise.

commit 682a3d74c8
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Apr 26 23:11:08 2020 +0200

    Fix LOD heights in towns.

commit cc39e5734e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Apr 26 21:01:23 2020 +0200

    More LOD fixes.

commit 8116b21c2e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 23:54:43 2020 +0200

    I like this coloring.

commit bc2560ea90
Merge: 14effdd5d e690efe71
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 23:48:33 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 14effdd5db
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 22:24:35 2020 +0200

    Re-saturate.

commit 48a643955d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 22:23:57 2020 +0200

    Various fixes.

commit f7b497a0c2
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 03:22:49 2020 +0200

    Render figures again.

commit 44e4aad48d
Merge: e6f0a5a98 9ec319a18
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 02:01:04 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit e6f0a5a981
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 24 16:12:20 2020 +0200

    Add atmospheric scattering.

commit f2953087f6
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 23 00:01:20 2020 +0200

    Fix shadowing for specular reflections.

commit ddd4a67a97
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Apr 22 22:56:12 2020 +0200

    HDR fixes.

commit 1015e60dee
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Apr 21 18:25:19 2020 +0200

    More lighting changes.

commit 80c264abd1
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 13 00:29:59 2020 +0200

    Lighting experiments.

commit 8414987e58
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 9 02:38:40 2020 +0200

    WIP -- lighting changes and soft shadows.

commit 9cd2b3fb0d
Merge: c7ea687eb 8b149ad11
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:33:29 2020 +0200

    Merge branch 'sharp/new-lighting' into sharp/small-fixes

commit c7ea687ebb
Merge: 476441531 22f3319b4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:33:02 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 8b149ad11a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:32:39 2020 +0200

    Trying out a new lighting model.

commit b0ac9f36f7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 07:56:11 2020 +0200

    Use bicubic interpolation for terrain.

commit f6fc9307a1
Merge: 33140a295 22f3319b4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 05:01:41 2020 +0200

    Merge remote-tracking branch 'origin/master' into zesterer/lod

commit 4764415312
Merge: ed2d0111d 13388ee6a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 04:54:48 2020 +0200

    Merge branch 'sharp/map-colors' into sharp/small-fixes

commit 13388ee6a4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 20:30:08 2020 +0200

    Various fixes (to coloring and to soft shadows).

commit fbd084a94a
Merge: 5a089863b 4fdf6896a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 18:50:38 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/map-colors

commit ed2d0111d9
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 06:49:27 2020 +0200

    Combining colors and LOD.

commit 88342640c6
Merge: 33140a295 5a089863b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 04:49:20 2020 +0200

    Merge branch 'sharp/map-colors' into sharp/small-fixes

commit 33140a2951
Merge: 4c65a5aed f34d4b379
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 04:36:21 2020 +0200

    Merge remote-tracking branch 'origin/master' into zesterer/lod

commit 5a089863be
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 03:17:49 2020 +0200

    Making maps brighter.

    This is probably not the right way to do it, but oh well!

commit 32b2c99109
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 02:46:36 2020 +0200

    Horizon mapping and "layered" map generation.

    Horizon mapping is a method of shadow mapping specific to height maps.
    It can handle any angle between 0 and 90 degrees from the ground, as
    long as know the horizontal direction in advance, by remembering only a
    single angle (the "horizon angle" of the shadow map).  More is explained
    in common/src/msg/server.rs.  We also remember the approximate height of
    the largest occluder, to try to be able to generate soft shadows and
    create a vertical position where the shadows can't go higher.

    Additionally, map generation has been reworked.  Instead of computing
    everything from explicit samples, we pass in sampling functions that
    return exactly what the map generator needs.  This allows us to cleanly
    separate the way we sample things like altitudes and colors from the map
    generation process.  We exploit this to generate maps *partially* on the
    server (with colors and rivers, but not shading).  We can then send the
    partially completed map to the client, which can combine it with shadow
    information to generate the final map.  This is useful for two reasons:
    first, it makes sure the client can apply shadow information by itself,
    and second, it lets us pass the unshaded map for use with level of
    detail functionality.

    For similar reasons, river generation is split
    out into its own layer, but for now we opt to still generate rivers on
    the server (since the river wire format is more complicated to compress
    and may require some extra work to make sure we have enough precision to
    draw rivers well enough for LoD).

    Finally, the mostly ad-hoc lighting we were performing has been (mostly)
    replaced with explicit Phong reflection shading (including specular
    highlights).  Regularizing this seems useful and helps clarify the
    "meaning" of the various light intensities, and helps us keep a more
    physically plausible basis.  However, its interaction with soft shadows
    is still imperfect, and it's not yet clear to me what we need to do to
    turn this into something useful for LoD.

commit f8926a5737
Merge: a1aee931e 875ae6ced
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Mar 13 13:32:42 2020 +0100

    Merge remote-tracking branch 'origin/master' into sharp/map-colors

commit 4c65a5aed3
Author: Treeco <5021038-Treeco@users.noreply.gitlab.com>
Date:   Mon Feb 24 16:48:05 2020 +0000

    Made LOD setting slider exponential

commit 2fa7b2d20d
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 17:49:53 2020 +0000

    Added mist to LoD

commit aab059a450
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 15:14:06 2020 +0000

    Added LoD slider

commit 779c36b538
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 12:54:55 2020 +0000

    Reduced cost of vertex pushing

commit 9fea150473
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 12:38:53 2020 +0000

    Fixed maths, improved LoD resolution

commit 5481df38fe
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 11:22:50 2020 +0000

    Dynamically relocate LoD vertices to enhance details

commit a3e36a50ab
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 18:13:51 2020 +0000

    Simpler terrain spiral rendering

commit 255f450ae9
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 16:53:17 2020 +0000

    Better LoD precision

commit 3d027aebe8
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 16:04:03 2020 +0000

    Better falloff

commit be775c9484
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 15:30:45 2020 +0000

    Applied good ideas from experimental branch

commit 58587b6854
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 16:15:13 2020 +0000

    Minor fixes to LoD merging

commit 7b42aebd70
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 15:04:44 2020 +0000

    Capped LoD dragging

commit 8aafc559f8
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:54:37 2020 +0000

    Better blending between LoD and terrain border

commit edd3455d51
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:40:19 2020 +0000

    Fixed LoD z depth, added sea level offset

commit b9b0674462
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:27:43 2020 +0000

    Better LoD smoothing

commit a1aee931e7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Feb 21 14:52:17 2020 +0100

    Adding shadows.

commit 2400786c13
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 13:48:40 2020 +0000

    Use world map as LoD source

commit dbf650f504
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Jan 20 00:48:14 2020 +0000

    Better clouds at distance

commit 5e6f81b86c
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Jan 19 23:59:02 2020 +0000

    sync

commit 745e7540dd
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Nov 22 12:40:48 2019 +0000

    Improved cloud falloff mist, faster noise sampling

commit f6a200d0cb
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Nov 22 10:09:00 2019 +0000

    Improved long-range depth precision, removed unnecessary LoD polygons

commit 63d1b2bb22
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Thu Nov 21 20:57:46 2019 +0000

    Working LoD shader

commit f13d98ee3e
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Thu Nov 21 11:03:40 2019 +0000

    LoD first attempt (stack overflow issue)
2020-08-20 20:34:59 +02:00
Songtronix
74557bd79d fix: match alias validation to auth 2020-08-19 14:00:18 +02:00
Songtronix
1067e679ee fix: locate assets more reliably 2020-08-19 14:00:10 +02:00
Songtronix
e09c1a87aa change: log where we locate assets for debugging 2020-08-19 13:59:25 +02:00
T-Dark
0a1e715fa4 Fixed debug armor letting some damage through 2020-08-18 17:31:28 +02:00
Marcel Märtens
8687740265 fix clippy warnings in new version 2020-08-17 11:10:18 +02:00
Imbris
a763bbe73c Improve the perf of the physics system using par_join as well as removing the trait object closure to allow for the compiler to perform more optimizations 2020-08-13 04:32:05 -04:00
Joshua Barretto
75c1d44010 Merge branch 'zesterer/worldsim' into 'master'
World simulation, generation, and pathfinding improvements (including castles and caves)

See merge request veloren/veloren!1282
2020-08-12 21:40:56 +00:00
Joshua Barretto
e3cab272c3 Fixed floating sprites in towns, clippy fixes 2020-08-12 21:16:14 +01:00
Joshua Barretto
50a85853e3 Fmt and clippy lints fixes 2020-08-12 21:16:14 +01:00
Joshua Barretto
85ed5ad356 Updated changelog, cleaned up warnings, minor fixes 2020-08-12 21:16:11 +01:00
Joshua Barretto
15b1717295 Added decals to towns 2020-08-12 21:15:53 +01:00
Joshua Barretto
6992194ad4 Better surface swimming, no underwater sprites 2020-08-12 21:15:53 +01:00
Monty Marz
c1b07465cf added grass sprites 2020-08-12 21:15:53 +01:00
Joshua Barretto
9329b4ce55 Added monsters to caves 2020-08-12 21:15:53 +01:00
Joshua Barretto
d7ccb28ea7 Pathfinding improvements 2020-08-12 21:15:53 +01:00
Joshua Barretto
d48ed42fda Prevented NPCs running gleefully off cliffs without a second thought 2020-08-12 21:15:53 +01:00
Pfauenauge
ee83479748 drop gate parts 2020-08-12 21:15:53 +01:00
Joshua Barretto
dfecf0dad6 Massively improved pathfinding reliability 2020-08-12 21:15:53 +01:00
Joshua Barretto
9bb10a6d00 Various improvements to castles, dungeons and more 2020-08-12 21:15:53 +01:00
Joshua Barretto
0bad704719 Made agents flee 2020-08-12 21:15:53 +01:00
Joshua Barretto
41229b4665 Added large caves, cave scatter, removed old caves 2020-08-12 21:15:53 +01:00
Joshua Barretto
a9126f7e25 Simulation improvements, removed block glows 2020-08-12 21:15:52 +01:00
Joshua Barretto
bdb39b8e7f Better castle variation, improved paths, multi-storey houses 2020-08-12 21:15:52 +01:00
Joshua Barretto
41916d4594 Better castles, initial light prop for lit objects 2020-08-12 21:15:52 +01:00
WelshPixie
568a3e375e fixed sprite rotations 2020-08-12 21:15:52 +01:00
Joshua Barretto
d6cdb0c433 Began adding castles 2020-08-12 21:15:52 +01:00
Joshua Barretto
1f4cec773b Added make_block command 2020-08-12 21:15:52 +01:00
Joshua Barretto
f21a50e393 Added forts to towns, began better economy sim 2020-08-12 21:15:52 +01:00
Monty Marz
fcdd875bff UI fixes, assets update 2020-08-12 18:10:18 +00:00
Monty Marz
6789b7ae27 Add firework hues 2020-08-12 22:29:06 +08:00
scott-c
9aab296264 Add firework item 2020-08-12 22:25:28 +08:00
Imbris
893da3622a Merge branch 'scott-c/particles' into 'master'
Particles

See merge request veloren/veloren!1156
2020-08-09 17:09:43 +00:00
jshipsey
45971fa403 state corrections 2020-08-08 17:05:48 -04:00
jshipsey
9ff5c23cf0 readd sneak 2020-08-08 13:47:32 -04:00
scott-c
a0107d5cda fix rebase 2020-08-08 19:26:52 +08:00
scott-c
cc36e9c300 fix rebase 2020-08-08 19:26:52 +08:00
scott-c
bb8ba75287 cleanup redundant function 2020-08-08 19:26:52 +08:00
Joshua Barretto
7c31baef6f Added outcome system, sound effects 2020-08-08 19:26:48 +08:00
scott-c
1a263834e7 Add campfire command 2020-08-08 19:25:33 +08:00
scott-c
bb2a5c885b Add fireball and bomb particle effects 2020-08-08 19:25:00 +08:00
scott-c
4bc373a832 remove particle emitter component 2020-08-08 19:25:00 +08:00
scott-c
3139e85dff allow for col particles 2020-08-08 19:25:00 +08:00
scott-c
803677f0fb Add particle velocity and ability particle emitter 2020-08-08 19:25:00 +08:00
scott-c
da5f4828a5 Add particle lifespan 2020-08-08 19:25:00 +08:00
scott-c
39b676cd8f Add ParticleMgr 2020-08-08 19:24:55 +08:00
scott-c
42a10a6059 Add ParticleEmitter Component 2020-08-08 19:24:22 +08:00
Monty Marz
142b386628 address comments 2020-08-08 00:13:00 -04:00
Imbris
a7df000a6f Fireballs no longer damage group members 2020-08-08 01:16:35 +02:00
Imbris
af8560ea36 Remove pets from the group exp division calculation but still give them exp, fix bug with group code when pets are deleted 2020-08-08 01:16:35 +02:00
Imbris
390d289d35 Add timeout's to group invites, and configurable limit to group size
Fix a few group bugs, enable invite timeout and group limits in ui
2020-08-08 01:16:35 +02:00
Monty Marz
28a8f847cc timeout visuals, various small fixes and two new items 2020-08-08 01:15:58 +02:00
Imbris
543d971a19 Projectiles ignore entities in the same group, pets no longer follow group leader 2020-08-08 01:15:58 +02:00
Monty Marz
1eb671e1a6 Update CHANGELOG.md, german locale 2020-08-08 01:15:58 +02:00