Commit Graph

981 Commits

Author SHA1 Message Date
timokoesters
d0439fdd84 Merge remote-tracking branch 'origin/master' into clientstates 2020-02-24 21:34:17 +01:00
timokoesters
ac611f4618 fix: sync characterstates, better energy management 2020-02-24 20:57:33 +01:00
timokoesters
31f3aae75c fix: make climbing cost stamina 2020-02-24 19:18:06 +01:00
timokoesters
2fa902270e fix: block 2020-02-24 18:10:42 +01:00
timokoesters
1f4065ae32 fix: attacking 2020-02-24 14:32:12 +01:00
Joshua Barretto
be775c9484 Applied good ideas from experimental branch 2020-02-23 15:30:45 +00:00
S Handley
d87061fe14 Add a volume option to SfxEvents, and use this to dispatch movement sfx for quadripeds at a volume proportionate to their size. 2020-02-23 01:26:51 +00:00
S Handley
9ab2833056 Add weapon wield/unwield sfx support 2020-02-21 02:56:54 +00:00
Monty Marz
2180040f70 Orc hairstyles, several tiny UI fixes, fixed beard warnings 2020-02-20 10:32:03 +00:00
Joshua Yanovski
8a9d4012fa Allow spawning individual species with /spawn.
To get the old behavior, you now need to refer to the internal keywords
(like "bird_medium" or "quadruped_small") rather than the old friendly
names (like "duck" or "pig"), as the latter generate single species now.
2020-02-14 03:12:37 +01:00
Ben Simpson
636bf7d343 Merge branch 'expandedreality/energy-regen' into 'master'
Energy now does not regen when climbing,gliding,and swimming

Closes #483

See merge request veloren/veloren!800
2020-02-14 01:15:47 +00:00
Ben Simpson
c427f2298e Energy now does not regen when climbing,gliding,and swimming 2020-02-13 18:46:01 -06:00
Ben Simpson
3343f8e5c0 Update common/src/sys/controller.rs, common/src/sys/movement.rs, common/src/comp/energy.rs files 2020-02-13 08:36:29 +00:00
Ben Simpson
bfd2f345b1 Update common/src/sys/movement.rs 2020-02-13 08:19:36 +00:00
Ben Simpson
0cd8150e98 Update common/src/sys/movement.rs 2020-02-13 08:13:36 +00:00
Ben Simpson
a49482503d Update common/src/sys/controller.rs, common/src/sys/movement.rs files
Deleted energy.rs, movement.rs files
2020-02-13 07:59:54 +00:00
Ben Simpson
1aa98dbb62 Update common/src/comp/energy.rs, energy.rs, common/src/sys/controller.rs, common/src/sys/movement.rs, movement.rs files 2020-02-13 07:30:32 +00:00
Adam Whitehurst
d383abf950 Re add combat 2020-02-11 07:42:17 -08:00
Marcel Märtens
8f5e409ac4 update toolchain to 2020-02-09 22:58:01 +01:00
Marcel
9f0307b926 Merge branch 'reactivate-ci' into 'master'
Reactivate Failure is allowed for benchmark and coverity

See merge request veloren/veloren!790
2020-02-09 19:31:37 +00:00
Marcel Märtens
90bcd87007 Reactivate Failure is allowed for benchmark and coverity 2020-02-09 20:01:44 +01:00
Songtronix
b8e12811bf fix(version): more robust version detection
Fixes #350
2020-02-09 18:11:40 +01:00
Imbris
fb7edd2404 Make nametag positioning slightly better 2020-02-06 17:10:52 -05:00
timokoesters
0bc07a0835 Merge remote-tracking branch 'origin/master' into clientstates 2020-02-03 22:02:32 +01:00
timokoesters
aeb37a1f33 improvement: char speed 2020-02-03 20:43:36 +01:00
timokoesters
aa52c6fd4f fix: jumping and attacking 2020-02-03 17:03:52 +01:00
Marcel Märtens
dae31ae5b6 apply new rustfmt - touching alot of files 2020-02-01 21:39:39 +01:00
Marcel Märtens
dd21235ff8 Apply prefixes to veloren source, espacially comments, so that reformating wont make it unreadable,
especially enumerations and other source code in errosions file
2020-02-01 21:37:36 +01:00
Marcel Märtens
e960c2233b Change the version number to 0.5 2020-01-31 17:26:45 +01:00
Joshua Barretto
faa86226c7 Collars 2020-01-29 12:01:28 +00:00
Joshua Yanovski
3fa21b3dc7 Per-speces NPC names!
Is also able to refactor some of the uglier code and introduces a
framework that (suitably extended) could be useful in removing
boilerplate elsewhere.
2020-01-29 04:41:32 +01:00
Joshua Barretto
116bc0d0b2 Fixed logic derp 2020-01-28 01:12:17 +00:00
Joshua Barretto
d87fc37aa2 Fixed watch compilation issue 2020-01-27 23:59:59 +00:00
Joshua Barretto
e391d6e4fd Added no-assets feature to common 2020-01-27 22:41:30 +00:00
Joshua Barretto
344eb9d45d Added intermittent rolling to NPCs during a chase 2020-01-27 16:18:36 +00:00
Joshua Barretto
de96551f65 Resolved pet alignment issues, added ranged aggro 2020-01-27 15:51:07 +00:00
Joshua Barretto
09f0a5744f Improved NPC spawning and names, made idle NPCs stop before hitting things 2020-01-27 10:58:33 +00:00
Monty Marz
981b55837a fix typo in en.ron, fixed unfinished weapons dropping from chests 2020-01-26 22:57:06 +00:00
Joshua Barretto
631124f3fc Switched to _squared(), added comments, parallelised waypoint gen 2020-01-26 12:52:32 +00:00
Joshua Barretto
7404800999 Added neutral NPC spawning 2020-01-26 12:52:32 +00:00
Joshua Barretto
723b578378 Improved pet aggression system, made waypoints rarer 2020-01-26 12:52:32 +00:00
Joshua Barretto
c9138d913c Fixed pathfinding limit bug, improvements to idle AI 2020-01-26 12:52:32 +00:00
Joshua Barretto
7437c18b99 Various bug fixes 2020-01-26 12:52:32 +00:00
Joshua Barretto
8c7e96e313 Improved waypoint spawn locations, scaled down pathfinding cost 2020-01-26 12:52:32 +00:00
Joshua Barretto
b22ee24362 Cleanup 2020-01-26 12:52:32 +00:00
Joshua Barretto
feeccc2ff3 Improved patrol idling 2020-01-26 12:52:32 +00:00
Joshua Barretto
d04a595b3f Made waypoints work, added waypoint spawning 2020-01-26 12:52:28 +00:00
Joshua Barretto
11193a692a Better neutral AI, initial waypoint objects 2020-01-26 12:52:28 +00:00
Joshua Barretto
290cb52d0d I don't know how much I put in this commit, but it's some stuff 2020-01-26 12:52:28 +00:00
Joshua Barretto
353a0f67be Better pathfinding iteration cap 2020-01-26 12:52:28 +00:00
Joshua Barretto
7167320c92 Fixed shadows, better pathfinding cap 2020-01-26 12:52:28 +00:00
Joshua Barretto
f92371101c Added pauseable pathfinding, improved Chaser heuristics, etc. 2020-01-26 12:52:07 +00:00
Joshua Barretto
f14037e4a3 Occasional path recalculate, stopped pathfinder thrashing 2020-01-26 12:52:07 +00:00
Joshua Barretto
2d9aa21eef Added test world, friendly NPC pathfinding 2020-01-26 12:52:07 +00:00
Justin Shipsey
64690279af new mobs
alligators
2020-01-26 00:22:48 +00:00
Monty Marz
b583f60326 35 new ground sprites, UI fixes 2020-01-25 11:14:02 +00:00
timokoesters
6515daddce fixes 2020-01-24 16:57:24 +01:00
Imbris
b6235d51cf fix: overflow in VolGrid3d 2020-01-24 00:11:22 -05:00
Joshua Yanovski
3383e991e7 Erosion cleanup, part 1.
Covers all files touched by MR that are not in world/src/sim.
2020-01-23 18:18:17 +01:00
Joshua Yanovski
ccd85e8907 Fixes to enable loading (relatively) large maps.
With these changes, we can successfully open, map, and play maps thare
are 16x the size of a standard (1024 x 1024 chunk) map, 4x larger in
each direction.
2020-01-23 18:18:16 +01:00
Joshua Yanovski
1358f1dffa Changes to worldgen, adding more sedmient etc. 2020-01-23 18:18:14 +01:00
Joshua Yanovski
e91578ffdb Cargo fmt most things (except erosion.rs). 2020-01-23 18:18:12 +01:00
Joshua Yanovski
2b38927345 Fixes for nonstandard chunk and map sizes.
Also fixes a longstanding map rendering issue.
2020-01-23 18:18:11 +01:00
Joshua Yanovski
9520ef4f6d Implement sending world map across the network. 2020-01-23 18:18:11 +01:00
timokoesters
7b558b4542 refactor: combine actionstate and movestate 2020-01-21 23:54:59 +01:00
timokoesters
28fe73825d feat: fitness stat effects movement speed 2020-01-21 19:24:09 +01:00
Gilbert Röhrbein
4f90e6325e feat: add endurance fitness willpower to stats 2020-01-21 18:49:17 +01:00
timokoesters
2e8bf9d212 improvement: enemy balance 2020-01-20 19:15:12 +01:00
Joshua Barretto
8f86e45a72 Enumerated Body type 2020-01-20 14:21:06 +00:00
Pfauenauge90
8a0efd3654 added TODO for energy numbers 2020-01-19 22:39:20 +01:00
Joseph Gerardot
454aa82669 Fixup energy regen math to properly account for acceleration at any
framerate.
2020-01-19 22:39:20 +01:00
timokoesters
6e651eb659 fix: make fall damage behave correctly again after changing gravity 2020-01-19 22:39:20 +01:00
timokoesters
65d0a1c4f4 refactor: use restrict_mut 2020-01-19 22:39:20 +01:00
timokoesters
8afe5fd1dd improvement: reset character state and energy on death 2020-01-19 22:39:19 +01:00
timokoesters
8064b51ee2 improvement: better movement 2020-01-19 22:39:18 +01:00
Joseph Gerardot
c10c31043c Make charging take a discrete amount of energy and change energy
regeneration to use floats so it is smoother and tickrate-independent.
2020-01-19 22:39:17 +01:00
Joseph Gerardot
b4337e57aa Add energy comsumption on rolling and charging, and accelerating
regeneration when idle.
2020-01-19 22:39:17 +01:00
Imbris
4b01c1b082 add: capability to disable blending for particular BlockKinds 2020-01-19 16:03:27 -05:00
Adam Whitehurst
7353ab3432 Undo sfx changes 2020-01-18 05:13:25 -08:00
AdamWhitehurst
976eface66 Update from MR comments 2020-01-17 08:39:21 -08:00
Adam Whitehurst
5959d2a5c7 Fix SFX and Assets 2020-01-16 05:28:45 -08:00
Adam Whitehurst
d82e93b39f Merge master and build 2020-01-16 05:27:30 -08:00
Imbris
d36b263627 Branch on lower color values for more accurate speedy color conversion, add simple color conversion benchmarks 2020-01-13 23:39:22 -05:00
Acrimon
71bd7f15ee
Even better conversion impl. 2020-01-13 20:54:56 +01:00
Acrimon
af8468315d
Made color conversion way more accurate. 2020-01-13 16:38:10 +01:00
AdamWhitehurst
71a39c3677 Update update return statements 2020-01-12 15:14:08 -08:00
AdamWhitehurst
1816d4b805 Move states/ to common/src/ 2020-01-12 15:06:52 -08:00
Gilbert Röhrbein
28060e7b6e fixing #405 - Energy as its own component 2020-01-12 22:25:04 +01:00
Piotr Korgól
e1adf40856 Improvement: Replace all '..=b' with '..b + 1' 2020-01-12 15:46:53 +01:00
Shane Handley
c6f64564a8 Remove emission of an audio event from stats sys
This was accidentally left in by me during some testing of server
emission of SFX events to all clients. There was no effect on gameplay since we dont
emit a sound for this event yet, but it should not be here.

The audio event is correctly handled elsewhere by each client.
2020-01-11 13:08:33 +09:00
Monty Marz
851d7858e6 Scrolling Combat Text (SCT) 2020-01-10 00:33:38 +00:00
AdamWhitehurst
563e50b67d Move utils file 2020-01-09 08:23:20 -08:00
AdamWhitehurst
de36e75264 Fix imports, update matches 2020-01-08 11:31:42 -08:00
AdamWhitehurst
5527d83a0e Update mod imports 2020-01-08 08:56:36 -08:00
Adam Whitehurst
8cdf06e3e2 Swim pulsing 2020-01-08 05:17:36 -08:00
Adam Whitehurst
8648641362 Grooming 2020-01-07 07:49:08 -08:00
Adam Whitehurst
dc33f6ad6a Ruin them again (the comments) 2020-01-05 15:28:20 -08:00
Adam Whitehurst
4e18ffe6c2 RUIN the comments 2020-01-05 15:26:04 -08:00
Adam Whitehurst
5bba0a96fc Fix refs 2020-01-05 15:21:37 -08:00
Adam Whitehurst
542f06eef4 Add new() to states 2020-01-05 15:17:22 -08:00
Adam Whitehurst
4e5cf63452 Clean Up Systems 2020-01-05 14:55:27 -08:00
Adam Whitehurst
8bf35a197b Update weapon .ron 2020-01-05 11:26:22 -08:00
Adam Whitehurst
8fe5cec947 Clean up, make state handlers options 2020-01-05 10:19:09 -08:00
Adam Whitehurst
2f3ccbc5d6 Update Comments 2020-01-03 12:46:41 -08:00
Imbris
4fa05150a2 Merge branch 'imbris/char-screen-transition' into 'master'
Fix issues regarding going back to the character selection screen

Closes #386

See merge request veloren/veloren!700
2020-01-02 19:40:21 +00:00
Joshua Barretto
423e741cb6 Merge branch 'zesterer/better-rollin' into 'master'
Made rolling less slippy, added tilt

See merge request veloren/veloren!699
2020-01-02 18:35:27 +00:00
Imbris
f52aef224e Fix typos, don't insert Controller if it doesn't already exist in the
mount system so that Controller components are not added to entities
client side
2020-01-02 05:34:27 -05:00
Adam Whitehurst
2635c405fe Ability comps and sys 2020-01-01 09:16:29 -08:00
S Handley
2644e29484 Refactor and Rename for clarity
Implements a potential structure for splitting the SFX event mapping
into smaller individual files for maintainability.

- Remove inventory events for now: For a later commit.
- No longer panic when there is a failure parsing the sfx file: log the error and not play sfx.
2020-01-01 02:55:48 +00:00
Imbris
1acf08390a Fix issue where controller events aren't processed while mounted. Fix non humanoids being able to climb and glide. 2019-12-31 16:41:45 -05:00
Imbris
ede05c47b0 fix(char screen induced ghosts):
Adds removing extra components and deleting entities clientside when
going back to the character screen. Also, simplifies ClientState by
removing the Dead variant and removing ClientMsg::StateRequest in favor
of more specific ClientMsg variants.
2019-12-31 16:38:13 -05:00
AdamWhitehurst
b67a4835f4 Update disabled state flags 2019-12-31 05:19:23 -08:00
Joshua Barretto
cfbf69ae89 Made rolling less slippy, added tilt 2019-12-30 15:16:21 +00:00
AdamWhitehurst
ba7ca785f6 Successful build 2019-12-30 05:56:42 -08:00
Monty Marz
8aff5faa83 assets update
acacia trees
updated help.png
bigger map zone name
npc levels from 0-10
boss levels from 20-50
2019-12-30 12:16:35 +00:00
Imbris
ec3e075020 fix(player list): Show players not in range on the player list
fix(overflow): Stops including block updates that fail (since chunks
don't exist on the client) in `TerrainUpdates` (which would trigger
meshing of those nonexistent chunks). Furthermore, removes
remeshing of chunks with block updates if those chunks don't have all their
neighbours (since those wouldn't be meshed in the first place).
2019-12-29 20:51:05 -05:00
AdamWhitehurst
9c6ce9babd Begin implementing combat actions 2019-12-29 15:47:42 -08:00
Dylan Kile
badd3113d5 hierarchical pathfinding 2019-12-29 20:58:21 +00:00
AdamWhitehurst
7a4cdfb7a4 Documentation comments 2019-12-29 08:36:59 -08:00
AdamWhitehurst
ca44497258 Add movement_utils 2019-12-28 08:10:39 -08:00
AdamWhitehurst
06053faed0 Add state disables, cleanup imports 2019-12-26 10:01:19 -08:00
AdamWhitehurst
8e0317e03d refactor states to handle update logic 2019-12-26 06:43:59 -08:00
AdamWhitehurst
c2ceabea0e finish movment states handle() fn logic 2019-12-22 08:08:48 -08:00
AdamWhitehurst
1ab09220b0 Rudimentary Stand State handle() move 2019-12-21 07:57:15 -08:00
Imbris
6524ea31d1 Fix flight turning 2019-12-20 22:51:35 -05:00
Imbris
934c5d6846 Various tweaks: moved radius determination to function on , comments, simplified server Destroy event code, debug assert modified components aren't removed in change tracking, etc 2019-12-20 22:51:35 -05:00
Imbris
b2752d2419 Cutout unnecessary Resource syncing machinery and Tracker trait 2019-12-20 22:51:35 -05:00
Imbris
5813f626d1 cleanup 2019-12-20 22:48:14 -05:00
Imbris
bfaa18e010 Fix NaN in agent sys, stop pushback from turning player around, account for Scale in melee attack hit detection 2019-12-20 22:48:14 -05:00
Imbris
8f7323f41b Stop syncing health change timer updates 2019-12-20 22:48:14 -05:00
Imbris
d341073a44 Upgrade to specs 0.15.1 2019-12-20 22:48:14 -05:00
Imbris
c3ac251fa8 Stop syncing Projectile component to the client 2019-12-20 22:48:14 -05:00
Imbris
e49cafafbf Actually send deletion messages 2019-12-20 22:48:14 -05:00
Imbris
71cce03f29 Move sync code into common submodule 2019-12-20 22:37:12 -05:00
Imbris
609e0f23bf Stop global syncing of entity creation 2019-12-20 22:37:12 -05:00
Adam Whitehurst
e40eb2ba20 Finish Stand handle() (untested) 2019-12-20 08:50:54 -08:00
Adam Whitehurst
e074c7ce1d begin impl state handle traits 2019-12-20 05:30:37 -08:00
Adam Whitehurst
4ead941c82 Fix fall->climb, tweak jump and glide 2019-12-15 17:44:19 +00:00
Monty Marz
1e1990758b Fix bow-shot frequency 2019-12-12 20:13:45 +00:00
Forest Anderson
d8fc7cb667 Add advanced path finding to new 'Traveler' enemy using A* algorithm 2019-12-11 05:28:45 +00:00
Adam Whitehurst
20575e0aab Update controller 2019-12-09 14:45:10 +00:00
S Handley
11dd6b8090 Update footsteps SFX 2019-12-08 10:03:40 +00:00
Adam Whitehurst
92d99af53c feat: weapon-type dependent wield and attack durations
also some controller.rs cleanup
2019-12-03 06:30:08 +00:00
Adam Whitehurst
4e574cb29a Inputs enhancements 2019-11-29 15:20:35 +00:00
Monty Marz
040e1a7535 Fix map being inverted and indicator positioning 2019-11-26 22:39:07 +00:00
S Handley
ea2e0d17de SFX system
This is an event based approach to SFX sounds. There is a specific
character sound event mapper which determines sfx to play based on
character or NPC state, as well as emitting sfx events for
non-character-triggers such as levelling up.
2019-11-23 08:26:39 +00:00
Monty Marz
370e94b1ad Loading Screen with pulsating text, 2 new hairstyles 2019-11-23 00:51:18 +00:00
Songtronix
e885a78deb change(deps): enforce crossbeam version 2019-11-22 19:12:58 +01:00
Songtronix
bdcea57201 feat(log): add date to log file 2019-11-22 19:12:58 +01:00
telastrus
10d6f3e8b3 jump while underwater 2019-11-21 23:56:07 -05:00
Forest Anderson
5a73554aa1 Merge branch 'qwertycrackers' into 'master'
Add a `debug_items` chat command that gives all debug items.

See merge request veloren/veloren!641
2019-11-11 17:36:31 +00:00
Monty Marz
c38447a264 assets update
map image
human male hairstyles
elf male hairstyle
potion item
cheese item
removed admin items from inventory
2019-11-09 13:42:42 +00:00
Joseph Gerardot
0a44e714b4
Cargo fmt 2019-11-06 20:57:05 -05:00
Joseph Gerardot
52020e4902
Don't use the actual multiline doc comment syntax. 2019-11-06 18:02:58 -05:00
Joseph Gerardot
e73884a1d4
Respond to MR feedback.
Mainly clean up code with better use of iterators, and rename the debug
    command to be just `debug`.
2019-11-06 17:57:54 -05:00
Joseph Gerardot
7325757066 cargo fmt the previous changes. 2019-11-05 15:57:08 -05:00
Joseph Gerardot
fab5377eed Add interface to add stuff in bulk to inventory
Also includes inventory tests.
inventory API.
2019-11-05 15:57:08 -05:00
soruh
6dfa146484 Mitgated RUSTSEC-2019-0014 by updating noise and
disabling its default features, specifically `image`,
which had the vulnerability.
2019-11-05 11:14:39 +00:00
soruh
e3bd152d24 update toolchain to nightly-2019-11-04 2019-11-04 18:26:32 +01:00
Justin Shipsey
a6d268e8ee Merge branch 'slipped/skeletons' into 'master'
new skeletons

See merge request veloren/veloren!620
2019-10-27 14:06:54 +00:00
Marcel Märtens
242a0d35bd fixing character movement to no longer fail normalization then get a zero vec and then normalize again
may this can be further simplyfied
2019-10-26 22:14:11 +02:00
jshipsey
2b5fd372c5 streamlined body part naming scheme, swapped quadruped to quadruped_small, rewrote mesh names to reflect body type instead of npckind. finally. 2019-10-25 21:50:14 -04:00
jshipsey
25448ae2a1 body tweak 2019-10-25 21:34:29 -04:00
jshipsey
644939810f added dragon skeleton 2019-10-25 21:33:59 -04:00
jshipsey
54fc712076 fish_medium and bird_medium skelingtons 2019-10-25 21:33:02 -04:00
timokoesters
3ceb3a9d6d
refactor: small adjustments 2019-10-25 09:47:28 +02:00
timokoesters
a6faffca4e
feat: asset glob loading, random weapons in chests 2019-10-24 23:55:25 +02:00
timokoesters
f1b728b89b
improvement: load_cloned returns a result 2019-10-24 23:55:24 +02:00
timokoesters
0a1e12c9ad
improvement: make debug items of type ItemKind::Tool
This way all items that can be held in a hand are tools
2019-10-24 23:55:24 +02:00
timokoesters
20248a4818
feat: store items as RON files
When a new item is created, a ron file will be used as a template
2019-10-24 23:47:26 +02:00
Imbris
a200dafd45 Fix possess bug, remove commented code, drain controller events 2019-10-24 00:00:00 -04:00
Imbris
8f81b69a25 Move terrain management and syncing into server side ecs systems 2019-10-23 23:50:06 -04:00
Imbris
2703c8afe1 Move serverside client to a component and communications into server ecs systems 2019-10-23 23:50:06 -04:00
Imbris
53ddbec527 Actually fix region removal panic, update fuzzy chunk location, sync entity removal when unloading chunks, region size constant tweak 2019-10-23 22:43:02 -04:00
Imbris
10f9f10cb3 Fix some panics when removing regions 2019-10-23 22:43:02 -04:00
Imbris
b09bddda79 Make clients subscribed to nearby regions and only send physics updates from those regions. 2019-10-23 22:43:02 -04:00
Imbris
24d1f6d970 Add initial region system implementation 2019-10-23 22:39:42 -04:00
Monty Marz
3e0ac48bd8 Multiple Assets and UI fixes and additions 2019-10-23 19:40:45 +00:00
Songtronix
3e1bf295b5 fix(crash): singleplayer 2019-10-18 17:39:57 +02:00
Songtronix
fffffff536 fix(crash): overflowing the stack 2019-10-18 14:19:02 +02:00
Songtronix
5b716515bb change(githash): provide date and hash 2019-10-18 15:32:55 +02:00
Imbris
39656e92be Merge branch '276-hotloading-armor' into 'master'
Resolve "Enable hotloading of different offsets for armors/weapons"

Closes #276

See merge request veloren/veloren!545
2019-10-18 00:29:09 +00:00
Monty Marz
fdfab6a807 refactor: create_projectile doesn't take a light
It returns a builder so the caller can just do it
2019-10-17 20:59:36 +00:00
Joshua Barretto
013afafba8 Made rolling less violent when changing directions 2019-10-17 12:21:22 +01:00
Joshua Yanovski
8ae2692b6e Allow canceling chunk generation.
Currently we only do this when no players are in range of the chunk.  We
also send the first client who posted the chunk a message indicating
that it's canceled, the hope being that this will be a performance win
in single player mode since you don't have to wait three seconds to
realize that the server won't generate the chunk for you.

We now check an atomic flag for every column sample in a chunk.  We
could probably do this less frequently, but since it's a relaxed load it
has essentially no performance impact on Intel architectures.
2019-10-16 11:39:41 +00:00
Adam Fogle
3a4c307d38 Code cleanup, formatting changes, and fixed the cloth belt's offset. 2019-10-16 00:42:57 -04:00
Joshua Barretto
707b79f2c8 Smoother movement, Space for climbing 2019-10-14 11:22:48 +01:00
heydabop
522ab2cd98 fixes #324 - changes possible modulo range from 0-29 to 1-29 to prevent mod by 0 2019-10-13 21:39:37 -05:00
Adam Fogle
a5db28113f Redid the mainfest files to remove race/gender.
Now based on armor slot enum.
Added color to the manifest files.
Manifest files aren't yet being used, but will load.
2019-10-12 08:31:42 -04:00
Imbris
028d010624 Make bows give experience via giving projectiles an owner field 2019-10-11 19:33:01 -04:00
Imbris
2f9d8ee2e6 Add new debug item 2019-10-11 19:32:46 -04:00
Marcel Märtens
20c520a044 Change the version number to 0.4 2019-10-10 15:48:01 +02:00
Monty Marz
d82ec6715a Item icons, chests and more 2019-10-09 19:28:05 +00:00
timokoesters
45f756343d
fix: blocking now ends in wielded
This makes blocking more viable because while blocking you can wait for
the enemy to attack and then quickly exit the block and attack yourself.
2019-10-08 21:19:48 +02:00
timokoesters
095e66fc01
fix: tweek hp 2019-10-08 20:36:46 +02:00
timokoesters
051a964798
fix: server side fall damage
This avoids flickering health
2019-10-08 18:55:30 +02:00
timokoesters
b20cf6c62b
fix: set minimum speed for fall damage and balance it 2019-10-08 18:55:30 +02:00
timokoesters
4e87f125a2
fix: fix level and health distribution 2019-10-08 18:12:08 +02:00
Joshua Barretto
2171e77fe5 Fixed block snapping ground clip 2019-10-08 12:21:05 +01:00
Monty Marz
b3862278af Help window, UI fixes, asset fixes 2019-10-06 19:19:08 +00:00
timokoesters
182b98081b
feat(bow): arrows despawn after some time 2019-10-06 19:32:46 +02:00
Songtronix
aa556ba4b3 feat(env): added DISABLE_GIT_LFS_CHECK 2019-10-06 07:33:24 +02:00
Timo Koesters
f3787879d3 fix(bow): adds bow icon art 2019-10-05 21:51:08 +00:00
timokoesters
2fc4a8d9aa fix(exp): crash when gaining many levels at once 2019-10-05 17:37:10 +02:00
Piotr Korgól
09429b45d1 Make /adminify admin-only and /waypoint free 2019-10-05 17:37:10 +02:00
Piotr Korgól
9e10c8b700 Make enemies spawn with different levels 2019-10-05 17:37:09 +02:00
timokoesters
460a494e77
fix(bow): Don't remove vel and use sticky component instead 2019-10-04 21:30:13 +02:00
Pfauenauge90
f1c4e7040a
rebase fix 2019-10-04 21:02:45 +02:00
timokoesters
d876215012
feat(combat): melee combat damage depends on power of the weapon
Normal NPCs have a weapon of power 5 so they do 5 damage if the attack
is not blocked. Bosses and players have power 10.
2019-10-04 21:02:44 +02:00
timokoesters
ba3db852f7
feat(bow): make arrows stick to walls 2019-10-04 21:02:44 +02:00
timokoesters
fc97c27b65
feat(bow): sticky arrows 2019-10-04 21:02:43 +02:00
timokoesters
575f7da64d
feat(bow): Client side prediction 2019-10-04 21:02:43 +02:00
timokoesters
fe17b4952c
Remove warnings 2019-10-04 21:02:42 +02:00
timokoesters
ab634f1d21
Reuse combat code 2019-10-04 21:02:41 +02:00
timokoesters
2ba143a514
Make arrows deal damage 2019-10-04 21:02:41 +02:00
timokoesters
e3c02f8ac1
Allow projectiles to react to triggers 2019-10-04 21:02:40 +02:00
timokoesters
d46f1e1859
Initial bow & arrow implementation 2019-10-04 21:02:39 +02:00
Monty Marz
4c1eba1f3e Assets update, aesthetics, minor fixes 2019-10-04 18:27:12 +00:00
Nick12
e8340d88af Increase max bytes per chat message 2019-10-04 16:14:54 +02:00
Nicolas
6e4d556073 Add max chat message length
Fixes #115
Credit to @scorpion9979 for the previous implementation (https://gitlab.com/veloren/veloren/merge_requests/215)
2019-10-04 16:14:54 +02:00
Forest
35b9040a6f Removed now stable feature 2019-10-03 17:28:17 -04:00
Acrimon
03bf74f414 Updated toolchain version and a bunch of deps. 2019-10-03 17:19:22 -04:00
Justin Shipsey
27f3bebe40 Char overhaul and asset update 2019-10-02 10:05:17 +00:00
Imbris
83b5ca3335 Higher level cache abstraction 2019-10-01 02:10:28 -04:00
Imbris
89a1c45ac7 Cache most recent chunk access in terrain meshing 2019-10-01 02:10:28 -04:00
Monty Marz
11a022abb3 Better stepping sounds (and minor voxel model fixes) 2019-09-27 16:04:22 +00:00
Joshua Barretto
bdf74cf151 Fixed typo 2019-09-26 14:03:41 +01:00
Joshua Barretto
a6d5b82ef5 Prevented pickups with full inventory 2019-09-26 00:15:07 +01:00
Joshua Barretto
a2758b091c Added flower and grass items 2019-09-26 00:15:07 +01:00
Joshua Barretto
dff67e1c41 Added block collection, improved controls for it 2019-09-26 00:15:07 +01:00
Joshua Barretto
e22fe81a2f Added velorite 2019-09-26 00:15:07 +01:00
Joshua Barretto
f57c2ec453 Made consumable items have an effect, better damage animation 2019-09-26 00:15:07 +01:00
Joshua Barretto
a961a267f1 Added apple and mushroom collection 2019-09-26 00:15:07 +01:00
Joshua Barretto
d745acc948 Floodfill shadows, smooth shadow lighting 2019-09-26 00:15:07 +01:00
Acrimon
9ce9251a17 Formatted code. 2019-09-24 11:56:19 +02:00
Acrimon
3db0b2946d Added some tests. 2019-09-24 11:36:35 +02:00
Acrimon
7e768b84e4 Fast powf for sgrb. 2019-09-24 11:05:01 +02:00
Monty Marz
3a0131306f Character assets Part 1 2019-09-18 16:46:12 +00:00
Joshua Yanovski
b4ad76372b Allow canceling chunk generation.
Currently we only do this when no players are in range of the chunk.  We
also send the first client who posted the chunk a message indicating
that it's canceled, the hope being that this will be a performance win
in single player mode since you don't have to wait three seconds to
realize that the server won't generate the chunk for you.

We now check an atomic flag for every column sample in a chunk.  We
could probably do this less frequently, but since it's a relaxed load it
has essentially no performance impact on Intel architectures.
2019-09-16 03:41:33 +02:00
haslersn
51718c32a6 Bugfix: DefaultPosIterator now starts at lower_bound
Previosly the first iteration was skipped.
2019-09-11 01:48:28 +02:00
Joshua Barretto
3f2e22f039 Exponential interpolation for linear damping
With an additional approximation to allow for the same size jumps given different framerates.
2019-09-09 19:11:40 +00:00
Marcel Märtens
58b0b49dfe adjust metrics to rebased Chunks 2019-09-09 10:47:40 +02:00
Marcel Märtens
b05e51152f update version, revert from static prometheus back to normal because static doesnt supprot registries, and implement most of the metrics except for entity count 2019-09-09 09:54:30 +02:00
Joshua Barretto
933e48ac3b Merge branch 'fix-jump-height' into 'master'
Fix jump height

See merge request veloren/veloren!485
2019-09-08 15:50:08 +00:00
Timo Koesters
92c0edcb98 Merge branch 'timo-attack' into 'master'
Fix wolfs not attacking and adjust movement while attacking

See merge request veloren/veloren!484
2019-09-07 10:25:57 +00:00
timokoesters
f3593371ea
Make npcs attack in a smarter way 2019-09-07 12:16:55 +02:00
haslersn
b26043b0e6 common: Rework Chunk and Chonk implementation
Previously, voxels in sparsely populated chunks were stored in a `HashMap`.
However, during usage oftentimes block accesses are followed by subsequent
nearby voxel accesses. Therefore it's possible to provide cache friendliness,
but not with `HashMap`.

The previous merge request [!469](https://gitlab.com/veloren/veloren/merge_requests/469)
proposed to order voxels by their morton order (see https://en.wikipedia.org/wiki/Z-order_curve ).
This provided excellent cache friendliness. However, benchmarks showed that
the required indexing calculations are quite expensive. Particular results
on my _Intel(R) Core(TM) i7-7500U CPU @ 2.70 GHz_ were:

| Benchmark                                | Before this commit @ d322384bec | Morton Order @ ec8a7caf42 | This commit          |
| ---------------------------------------- | --------------------------------- | --------------------------- | -------------------- |
| `full read` (81920 voxels)               | 17.7ns per voxel                  | 8.9ns per voxel             | **3.6ns** per voxel  |
| `constrained read` (4913 voxels)         | 67.0ns per voxel                  | 40.1ns per voxel            | **14.1ns** per voxel |
| `local read` (125 voxels)                | 17.5ns per voxel                  | 14.7ns per voxel            | **3.8ns** per voxel  |
| `X-direction read` (17 voxels)           | 17.8ns per voxel                  | 25.9ns per voxel            | **4.2ns** per voxel  |
| `Y-direction read` (17 voxels)           | 18.4ns per voxel                  | 33.3ns per voxel            | **4.5ns** per voxel  |
| `Z-direction read` (17 voxels)           | 18.6ns per voxel                  | 38.2ns per voxel            | **5.4ns** per voxel  |
| `long Z-direction read` (65 voxels)      | 18.0ns per voxel                  | 37.7ns per voxel            | **5.1ns** per voxel  |
| `full write (dense)` (81920 voxels)      | 17.9ns per voxel                  | **10.3ns** per voxel        | 12.4ns per voxel     |

This commit (instead of utilizing morton order) replaces `HashMap` in the
`Chunk` implementation by the following data structure:

The volume is spatially subdivided into groups of `4*4*4` blocks. Since a
`Chunk` is of total size `32*32*16`, this implies that there are `8*8*4`
groups. (These numbers are generic in the actual code such that there are
always `256` groups. I.e. the group size is chosen depending on the desired
total size of the `Chunk`.)

There's a single vector `self.vox` which consecutively stores these groups.
Each group might or might not be contained in `self.vox`. A group that is
not contained represents that the full group consists only of `self.default`
voxels. This saves a lot of memory because oftentimes a `Chunk` consists of
either a lot of air or a lot of stone.

To track whether a group is contained in `self.vox`, there's an index buffer
`self.indices : [u8; 256]`. It contains for each group

* (a) the order in which it has been inserted into `self.vox`, if the group
    is contained in `self.vox` or
* (b) 255, otherwise. That case represents that the whole group consists
    only of `self.default` voxels.

(Note that 255 is a valid insertion order for case (a) only if `self.vox` is
full and then no other group has the index 255. Therefore there's no
ambiguity.)

Rationale:

The index buffer should be small because:

* Small size increases the probability that it will always be in cache.
* The index buffer is allocated for every `Chunk` and an almost empty `Chunk`
    shall not consume too much memory.

The number of 256 groups is particularly nice because it means that the index
buffer can consist of `u8`s. This keeps the space requirement for the index
buffer as low as 4 cache lines.
2019-09-06 18:20:15 +02:00
haslersn
d322384bec common: Add benchmark for Chonk 2019-09-06 15:44:36 +02:00
haslersn
1796c09ca1 common: Rework volume API
See the doc comments in `common/src/vol.rs` for more information on
the API itself.

The changes include:

* Consistent `Err`/`Error` naming.
  * Types are named `...Error`.
  * `enum` variants are named `...Err`.
* Rename `VolMap{2d, 3d}` -> `VolGrid{2d, 3d}`. This is in preparation
  to an upcoming change where a “map” in the game related sense will
  be added.
* Add volume iterators. There are two types of them:
  * _Position_ iterators obtained from the trait `IntoPosIterator`
    using the method
    `fn pos_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `Vec3<i32>`.
  * _Volume_ iterators obtained from the trait `IntoVolIterator`
    using the method
    `fn vol_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `(Vec3<i32>, &Self::Vox)`.
  Those traits will usually be implemented by references to volume
  types (i.e. `impl IntoVolIterator<'a> for &'a T` where `T` is some
  type which usually implements several volume traits, such as `Chunk`).
  * _Position_ iterators iterate over the positions valid for that
    volume.
  * _Volume_ iterators do the same but return not only the position
    but also the voxel at that position, in each iteration.
* Introduce trait `RectSizedVol` for the use case which we have with
  `Chonk`: A `Chonk` is sized only in x and y direction.
* Introduce traits `RasterableVol`, `RectRasterableVol`
  * `RasterableVol` represents a volume that is compile-time sized and has
    its lower bound at `(0, 0, 0)`. The name `RasterableVol` was chosen
    because such a volume can be used with `VolGrid3d`.
  * `RectRasterableVol` represents a volume that is compile-time sized at
    least in x and y direction and has its lower bound at `(0, 0, z)`.
    There's no requirement on he lower bound or size in z direction.
    The name `RectRasterableVol` was chosen because such a volume can be
    used with `VolGrid2d`.
2019-09-06 15:43:31 +02:00
haslersn
886d554f52 common: prepend/append multiple SubChunks in a batch 2019-09-06 15:33:36 +02:00