Commit Graph

760 Commits

Author SHA1 Message Date
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
haslersn
963c5a7785 common: Calculate magic number in Chonk 2019-09-06 15:33:36 +02:00
haslersn
8451a06804 common: Set TerrainChunk::SIZE.z = std::i32::MAX 2019-09-06 15:33:36 +02:00
haslersn
57354fb062 common: For trait ReadVol remove get_unchecked() 2019-09-06 15:33:36 +02:00
Joshua Barretto
66c58840ef Merge branch 'scott-c/first-person-model' into 'master'
Add first person models

See merge request veloren/veloren!443
2019-09-06 13:02:03 +00:00
scott-c
bc1ccfc99b Fix first person weapon visible while not wielding 2019-09-06 18:22:26 +08:00
Andrew Pritchard
05dff792fc Deref instead of clone vel 2019-09-06 14:22:58 +08:00
Andrew Pritchard
b4c74279b7 Vec3 is apprently *not* Copy, Set near plane to 0.1 to prevent tirangle flickering 2019-09-06 13:24:42 +08:00
Andrew Pritchard
b4d5663fed Vec3 is copy 2019-09-06 12:04:20 +08:00
Andrew Pritchard
5b82808df0 Merge branch 'master' into 'fix-jump-height'
# Conflicts:
#   common/src/sys/phys.rs
2019-09-05 13:07:46 +00:00
Andrew Pritchard
d0b2f7565a Revert "Revert "Exponential interpolation for linear damping""
This reverts commit 8b9a3ae1df.
2019-09-05 18:24:38 +08:00
Andrew Pritchard
8b9a3ae1df Revert "Exponential interpolation for linear damping"
This reverts commit 94b9f50efa.
2019-09-05 18:24:22 +08:00
Andrew Pritchard
94b9f50efa Exponential interpolation for linear damping
With an additional approximation to allow for the same size jumps given different framerates.
2019-09-05 17:07:15 +08:00
Imbris
52d84248ec Remove all warnings 2019-09-04 19:03:49 -04:00
Imbris
fc9c87878e Fix some warnings, cleanup comment 2019-09-03 23:09:29 -04:00
Imbris
8a994ada8e Remove derpy eyes :( , fix undead eye indices, fmt 2019-09-03 23:06:15 -04:00
jshipsey
ca4da22c7d fixing eyes, cleanup on offsets 2019-09-03 23:06:13 -04:00
jshipsey
178657c871 tweaked hair colors, head offsets, skin colors 2019-09-03 23:06:11 -04:00
Imbris
cc331c10b6 Remove use of empty.vox 2019-09-03 23:06:09 -04:00
Imbris
074eee06e6 Add pants coloring, chest and pants sliders 2019-09-03 23:06:06 -04:00
Imbris
0ffc534df2 Add separate eye color lists for each race 2019-09-03 23:06:02 -04:00
Pfauenauge90
bdb95be5cc hair and skin colours 2019-09-03 23:05:59 -04:00