Commit Graph

1284 Commits

Author SHA1 Message Date
Joshua Yanovski
56da06f7a3 Merge remote-tracking branch 'origin/master' into sharp/small-fixes 2020-07-29 18:56:52 +02:00
Joshua Yanovski
cf74d55f2e 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.
2020-07-29 18:29:52 +02:00
Marcel Märtens
96cde882ef update auth to the newest version and remove useless dep 2020-07-29 00:05:23 +02:00
Joshua Yanovski
13b6d4d534 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).
2020-07-28 10:55:48 +02:00
Joshua Yanovski
7d56ba31b4 Merge remote-tracking branch 'origin/master' into sharp/small-fixes 2020-07-27 13:16:27 +02:00
Samuel Keiffer
827b91d691 Bow charged shot attack 2020-07-26 03:06:53 +00:00
Samuel Keiffer
527e7a329e Armor fixes 2020-07-25 23:57:04 +00:00
Monty Marz
31cfc05123 lots of things
animation fixes by slipped
new cultist item
settings option for loading screen tips
loot table adjustments
2020-07-23 12:10:13 +00:00
jshipsey
5b76ed23f4 small fixes 2020-07-20 21:37:13 -04:00
Imbris
3c954534ed Merge branch 'treeco/fix-spawn-damage' into 'master'
Reset rather than accumulate velocity when stuck or in unloaded chunks

See merge request veloren/veloren!1185
2020-07-18 19:08:40 +00:00
Joshua Yanovski
2101113b46 Higher detail LOD. 2020-07-18 18:55:25 +02:00
Imbris
c7e8a6bfae Remove gravity rather than reset velocity in unloaded chunks 2020-07-18 07:13:30 -04:00
Imbris
23e1378c78 Merge branch 'zesterer/winit-20' into 'master'
Upgrade winit to 0.22.2

See merge request veloren/veloren!788
2020-07-18 03:26:59 +00:00
Imbris
db36578f83 Merge branch 'Menko/utility_items_fix_issue_612' into 'master'
#612 Fixed utility items not being removed from inventory/hotbar

See merge request veloren/veloren!1123
2020-07-18 02:41:45 +00:00
Nemanja
5caa6a07b0 #612 Fixed utility items not being removed from inventory/hotbar 2020-07-18 02:41:45 +00:00
Imbris
db91ebe9b5 fix a few minor bugs 2020-07-17 21:24:28 -04:00
Imbris
d1b635efa4 Rearrange PlayState system to work without loop control 2020-07-17 21:24:28 -04:00
Samuel Keiffer
6cce09be85 Added protection stat to admin armor hidden in debug folder. Removed blue cultist armor set from drop table as it is an admin set. 2020-07-18 00:05:28 +00:00
lausek
a3326b5744 fix #611; add distance check when mounting pet 2020-07-15 14:54:53 +02:00
Joshua Barretto
8d6b442193 Crafting 2020-07-14 20:11:39 +00:00
Joshua Barretto
446923f7d8 Merge branch 'zesterer/small-fixes' into 'master'
Zesterer/small fixes

See merge request veloren/veloren!1190
2020-07-14 09:54:17 +00:00
Joshua Barretto
3e5c3de2ac Neater compass 2020-07-13 23:23:44 +01:00
Joshua Yanovski
6332cbe006 Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes 2020-07-12 18:47:00 +02:00
Joshua Barretto
cf69d0c5d8 Added minimap compass 2020-07-10 15:00:20 +01:00
Joshua Barretto
951a977b2f Improved hill path following 2020-07-10 00:43:11 +01:00
Songtronix
5b57072064 fix: use correct specs(-idvs) versions
related to torvus
2020-07-09 19:46:30 +02:00
Joshua Barretto
ac30fcbd0e Commented unused but potentially useful code 2020-07-09 16:54:10 +01:00
Joshua Barretto
47e413c530 Improved pathfinding tolerance and reliability 2020-07-09 16:54:10 +01:00
Treeco
1f1d9c5625 Reset rather than accumulate velocity when stuck or in unloaded chunks 2020-07-09 15:58:07 +01:00
Samuel Keiffer
25c28f26d6 Different body types now have different health values and gain different amounts of healths on leveling. 2020-07-09 00:04:25 +00:00
Samuel Keiffer
fe47a14ba5 Spin attack for axe 2020-07-08 19:58:41 +00:00
Joshua Yanovski
db1401a691 Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes 2020-07-07 19:34:17 +02:00
Ben Frankel
823141f825 Maintain character state when inventory is modified
If the mainhand slot is swapped out or dropped while the character is
wielding, the character will be set to idle (same behavior). However, if
an item is picked up or used; or a non-mainhand item is dropped; or two
non-mainhand items are swapped; the character state will not be set to
idle (new behavior).

Rationale for keeping the same behavior:

Swapping a weapon out while in a wielding state can put the player in a
barehanded wielding state, which would be inconsistent with the fact
that that state can't be entered by toggling wield while barehanded.

Rationale for setting the new behavior:

Setting character state to idle was originally added because "Interact"
was mapped to right mouse button, so picking up an item with RMB would
also activate secondary attack if the player was wielding during the
interaction. Now the default keybinding for "Interact" is E, so this
isn't a problem unless the player changes their keybinding to RMB.

In addition, setting character state to idle for any inventory
manipulation may cause players to fall out of glider unexpectedly.
2020-07-07 09:43:48 -07:00
Marcel Märtens
85a3f8637d fix specs 2020-07-07 14:28:00 +02:00
Marcel Märtens
c212de00c2 updated dependencies and fixed stuff
- replace serde_derive by feature of serde
   incl. source code modifications to compile
 - reduce futures-timer to "2.0" to be same as async_std
 - update notify
 - removed mio, bincode and lz4 compress in common as networking is now in own crate
   btw there is a better lz4 compress crate, which is newer than 2017
 - update prometheus to 0.9
 - can't update uvth yet due to usues
 - hashbrown to 7.2 to only need a single version
 - libsqlite3 update
 - image didn't change as there is a problem with `image 0.23`
 - switch old directories with newer directories-next
 - no num upgrade as we still depend on num 0.2 anyways
 - rodio and cpal upgrade
 - const-tewaker update
 - dispatch (untested) update
 - git2 update
 - iterations update
2020-07-07 09:43:49 +02:00
Joshua Barretto
3cfd8bdd3c Fixed animal loadouts and /spawn 2020-07-07 02:21:14 +01:00
Joshua Barretto
d1cdb6ea55 Updated changelog 2020-07-07 01:11:37 +01:00
Joshua Barretto
e626f6255f Prevented pet damage 2020-07-07 01:01:39 +01:00
Joshua Barretto
f77d2f06c6 Fixed staff RMB, bug in ranged weapon code 2020-07-06 23:37:44 +01:00
Joshua Barretto
99a526f702 Made pets healable 2020-07-06 21:18:30 +01:00
Joshua Barretto
55852f9bc7 Made fireballs brighter, animals slightly more effective at combat 2020-07-06 21:02:16 +01:00
Joshua Barretto
64dc339f13 Reduced acceleration in air 2020-07-06 20:51:57 +01:00
Joshua Barretto
d943bb4537 Made pets regulate their speed 2020-07-06 20:51:23 +01:00
Imbris
8d39f27458 Upgrade hashbrown 2020-07-06 03:15:06 -04:00
Imbris
c2d6d00b00 point to github specs to access PairedStorage type, fix Loadout sync spam 2020-07-06 01:56:02 -04:00
Piotr Korgól
713d0c5e8a Add a test for the loot table's validity 2020-07-05 18:52:36 +02:00
Joshua Barretto
43f75f2f54 Removed bomb timeout 2020-07-05 16:15:51 +01:00
Joshua Barretto
fd39ee97bc Added training dummies 2020-07-05 16:15:51 +01:00
Joshua Barretto
2f6a618d5a Added bombs, throwable items, more block kinds, weaker explosions 2020-07-05 16:15:48 +01:00
jshipsey
50fcd6c6a3 remove slowmo test mode 2020-07-05 10:00:44 -04:00