Switch to TG hair sprites.

This removes the need for a separate shader because they're multiply-based instead of additive like /vg/ or Bay.
This commit is contained in:
Pieter-Jan Briers
2020-01-12 02:04:13 +01:00
parent 9c0a670525
commit e0a4735fe2
271 changed files with 162 additions and 167 deletions

View File

@@ -1,48 +1,18 @@
using Content.Shared.GameObjects.Components.Mobs;
using Content.Shared.Preferences.Appearance;
using Robust.Client.GameObjects;
using Robust.Client.Graphics.Shaders;
using Robust.Client.Interfaces.GameObjects.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
namespace Content.Client.GameObjects.Components.Mobs
{
[RegisterComponent]
public sealed class HairComponent : SharedHairComponent
{
private const string HairShaderName = "hair";
private const string HairColorParameter = "hairColor";
#pragma warning disable 649
[Dependency] private readonly IPrototypeManager _prototypeManager;
#pragma warning restore 649
private ShaderInstance _facialHairShader;
private ShaderInstance _hairShader;
public override void Initialize()
{
base.Initialize();
var shaderProto = _prototypeManager.Index<ShaderPrototype>(HairShaderName);
_facialHairShader = shaderProto.InstanceUnique();
_hairShader = shaderProto.InstanceUnique();
}
protected override void Startup()
{
base.Startup();
if (Owner.TryGetComponent(out ISpriteComponent sprite))
{
sprite.LayerSetShader(HumanoidVisualLayers.Hair, _hairShader);
sprite.LayerSetShader(HumanoidVisualLayers.FacialHair, _facialHairShader);
}
UpdateHairStyle();
}
@@ -90,8 +60,8 @@ namespace Content.Client.GameObjects.Components.Mobs
{
var sprite = Owner.GetComponent<SpriteComponent>();
_hairShader?.SetParameter(HairColorParameter, HairColor);
_facialHairShader?.SetParameter(HairColorParameter, FacialHairColor);
sprite.LayerSetColor(HumanoidVisualLayers.Hair, HairColor);
sprite.LayerSetColor(HumanoidVisualLayers.FacialHair, FacialHairColor);
sprite.LayerSetState(HumanoidVisualLayers.Hair,
HairStyles.HairStylesMap[HairStyleName ?? HairStyles.DefaultHairStyle]);

View File

@@ -1,8 +1,9 @@
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
namespace Content.Shared.Preferences.Appearance
{
[SuppressMessage("ReSharper", "StringLiteralTypo")]
public static class HairStyles
{
public const string DefaultHairStyle = "Bald";
@@ -10,183 +11,221 @@ namespace Content.Shared.Preferences.Appearance
public static readonly Dictionary<string, string> HairStylesMap = new Dictionary<string, string>
{
{"Bald", "bald"},
{"Afro", "afro"},
{"Big Afro", "bigafro"},
{"Afro 2", "afro2"},
{"Asymmetrical Bob", "asymmbob"},
{"Balding Hair", "balding"},
{"Afro (Large)", "bigafro"},
{"Ahoge", "antenna"},
{"Bald", "bald"},
{"Balding Hair", "e"},
{"Bedhead", "bedhead"},
{"Bedhead 2", "bedheadv2"},
{"Bedhead 3", "bedheadv3"},
{"Long Bedhead", "long_bedhead"},
{"Floorlength Bedhead", "floorlength_bedhead"},
{"Beehive", "beehive"},
{"Beehive 2", "beehive2"},
{"Birdnest", "birdnest"},
{"Birdnest 2", "birdnest2"},
{"Mercenary", "blackswordsman"},
{"Bob", "bobcut"},
{"Beehive 2", "beehivev2"},
{"Bob Hair", "bob"},
{"Bob Hair 2", "bob2"},
{"Bob Hair 3", "bobcut"},
{"Bob Hair 4", "bob4"},
{"Bobcurl", "bobcurl"},
{"Bowl 1", "bowlcut1"},
{"Bowl 2", "bowlcut2"},
{"Floorlength Braid", "braid"},
{"Long Braid", "hbraid"},
{"Boddicker", "boddicker"},
{"Bowlcut", "bowlcut"},
{"Bowlcut 2", "bowlcut2"},
{"Braid (Floorlength)", "braid"},
{"Braided", "braided"},
{"Braided Front", "braidfront"},
{"Braid (High)", "braid2"},
{"Braid (Low)", "hbraid"},
{"Braid (Short)", "shortbraid"},
{"Braided Tail", "braidtail"},
{"Bun Head", "bun"},
{"Bun Head 2", "bunhead2"},
{"Bun Head 3", "bun3"},
{"Bun (Large)", "largebun"},
{"Bun (Manbun)", "manbun"},
{"Bun (Tight)", "tightbun"},
{"Business Hair", "business"},
{"Business Hair 2", "business2"},
{"Business Hair 3", "business3"},
{"Business Hair 4", "business4"},
{"Bun", "bun"},
{"Casual Bun", "bunalt"},
{"Bun 2", "bun2"},
{"Bun 3", "bun3"},
{"Buzzcut", "buzzcut"},
{"Chop", "chop"},
{"CIA", "cia"},
{"Combover", "combover"},
{"Coffee House", "coffeehouse"},
{"Combover", "combover"},
{"Cornrows", "cornrows"},
{"Cornrows 2", "cornrows2"},
{"Cornrow Bun", "cornrowbun"},
{"Cornrow Braid", "cornrowbraid"},
{"Cornrow Tail", "cornrowtail"},
{"Crewcut", "crewcut"},
{"Chrono", "toriyama"},
{"Curls", "curls"},
{"Cut Hair", "cuthair"},
{"Cut Hair", "c"},
{"Dandy Pompadour", "dandypompadour"},
{"Devil Lock", "devilock"},
{"Double-Bun", "doublebun"},
{"Double Bun", "doublebun"},
{"Dreadlocks", "dreads"},
{"80's", "80s"},
{"Drillruru", "drillruru"},
{"Drill Hair (Extended)", "drillhairextended"},
{"Emo", "emo"},
{"Flow Hair", "flowhair"},
{"The Family Man", "thefamilyman"},
{"Father", "father"},
{"Feather", "feather"},
{"Cut Hair Alt", "femc"},
{"Flaired Hair", "flair"},
{"Emo Fringe", "emofringe"},
{"Fringetail", "fringetail"},
{"Fade (None)", "nofade"},
{"Fade (High)", "highfade"},
{"Fade (Medium)", "medfade"},
{"Fade (Low)", "lowfade"},
{"Fade (Bald)", "baldfade"},
{"Feather", "feather"},
{"Father", "father"},
{"Flat Top", "sargeant"},
{"Flair", "flair"},
{"Flat Top (Big)", "bigflattop"},
{"Flow Hair", "f"},
{"Gelled Back", "gelled"},
{"Gentle", "gentle"},
{"Half-banged Hair", "halfbang"},
{"Half-banged Hair Alt", "halfbang_alt"},
{"Half-Shaved", "halfshaved"},
{"Half-Shaved Emo", "halfshaved_emo"},
{"Hamaski Hair", "hamasaki"},
{"Combed Hair", "hbangs"},
{"Combed Hair Alt", "hbangs_alt"},
{"High Ponytail", "highponytail"},
{"Half-banged Hair 2", "halfbang2"},
{"Half-shaved", "halfshaved"},
{"Hedgehog Hair", "hedgehog"},
{"Hime Cut", "himecut"},
{"Hime Cut Alt", "himecut_alt"},
{"Hime Cut 2", "himecut2"},
{"Hime Cut (Short)", "shorthime"},
{"Hime Updo", "himeup"},
{"Hitop", "hitop"},
{"Adam Jensen Hair", "jensen"},
{"Jade", "jade"},
{"Jensen Hair", "jensen"},
{"Joestar", "joestar"},
{"Pigtails", "kagami"},
{"Kare", "kare"},
{"Keanu Hair", "keanu"},
{"Kusanagi Hair", "kusanagi"},
{"Ladylike", "ladylike"},
{"Ladylike alt", "ladylike2"},
{"Long Emo", "emolong"},
{"Long Hair", "vlong"},
{"Long Hair Alt", "longeralt2"},
{"Very Long Hair", "longest"},
{"Longer Fringe", "vlongfringe"},
{"Long Hair 1", "long"},
{"Long Hair 2", "long2"},
{"Long Hair 3", "long3"},
{"Long Over Eye", "longovereye"},
{"Long Bangs", "lbangs"},
{"Long Emo", "longemo"},
{"Long Fringe", "longfringe"},
{"Overeye Long", "longovereye"},
{"Man Bun", "manbun"},
{"Drillruru", "drillruru"},
{"Medium Braid", "shortbraid"},
{"Medium Braid Alt", "mediumbraid"},
{"Messy Bun", "messybun"},
{"Long Side Part", "longsidepart"},
{"Mega Eyebrows", "megaeyebrows"},
{"Messy", "messy"},
{"Modern", "modern"},
{"Mohawk", "mohawk"},
{"Mulder", "mulder"},
{"Nia", "nia"},
{"Mohawk", "d"},
{"Nitori", "nitori"},
{"Mohawk (Reverse)", "reversemohawk"},
{"Mohawk (Unshaven)", "unshaven_mohawk"},
{"Mulder", "mulder"},
{"Odango", "odango"},
{"Ombre", "ombre"},
{"One Shoulder", "oneshoulder"},
{"Over Eye", "shortovereye"},
{"Oxton", "oxton"},
{"Parted", "parted"},
{"Pixie", "pixie"},
{"Parted (Side)", "part"},
{"Pigtails", "kagami"},
{"Pigtails 2", "pigtails"},
{"Pigtails 3", "pigtails2"},
{"Pixie Cut", "pixie"},
{"Pompadour", "pompadour"},
{"Ponytail 1", "ponytail"},
{"Pompadour (Big)", "bigpompadour"},
{"Ponytail", "ponytail"},
{"Ponytail 2", "ponytail2"},
{"Ponytail 3", "ponytail3"},
{"Ponytail 4", "ponytail4"},
{"Ponytail 5", "ponytail5"},
{"Ponytail 6", "ponytail6"},
{"Ponytail 7", "ponytail7"},
{"Ponytail (High)", "highponytail"},
{"Ponytail (Short)", "stail"},
{"Ponytail (Long)", "longstraightponytail"},
{"Ponytail (Country)", "country"},
{"Ponytail (Fringe)", "fringetail"},
{"Ponytail (Side)", "sidetail"},
{"Ponytail (Side) 2", "sidetail2"},
{"Ponytail (Side) 3", "sidetail3"},
{"Ponytail (Side) 4", "sidetail4"},
{"Ponytail (Spiky)", "spikyponytail"},
{"Poofy", "poofy"},
{"Poofy Alt", "poofy2"},
{"Quiff", "quiff"},
{"Ramona", "ramona"},
{"Reverse Mohawk", "reversemohawk"},
{"Ronin", "ronin"},
{"Rows", "rows1"},
{"Rows Alt", "rows2"},
{"Rows Bun", "rows3"},
{"Flat Top", "sargeant"},
{"Scully", "scully"},
{"Shaved Mohawk", "shavedmohawk"},
{"Shaved", "shaved"},
{"Shaved Part", "shavedpart"},
{"Short Hair", "short"},
{"Short Hair 2", "short2"},
{"Short Hair 3", "short3"},
{"Short Bangs", "shortbangs"},
{"Overeye Short", "shortovereye"},
{"Shoulder-length Hair", "shoulderlen"},
{"Sidepart Hair", "sidepart"},
{"Side Ponytail", "stail"},
{"One Shoulder", "oneshoulder"},
{"Tress Shoulder", "tressshoulder"},
{"Side Ponytail 2", "ponytailf"},
{"Side Swipe", "sideswipe"},
{"Short Hair", "a"},
{"Short Hair 2", "shorthair2"},
{"Short Hair 3", "shorthair3"},
{"Short Hair 4", "d"},
{"Short Hair 5", "e"},
{"Short Hair 6", "f"},
{"Short Hair 7", "shorthairg"},
{"Short Hair 80s", "80s"},
{"Short Hair Rosa", "rosa"},
{"Shoulder-length Hair", "b"},
{"Sidecut", "sidecut"},
{"Skinhead", "skinhead"},
{"Messy Hair", "smessy"},
{"Sleeze", "sleeze"},
{"Slightly Long Hair", "protagonist"},
{"Spiky", "spikey"},
{"Stylo", "stylo"},
{"Spiky Ponytail", "spikyponytail"},
{"Top Knot", "topknot"},
{"Spiky 2", "spiky"},
{"Spiky 3", "spiky2"},
{"Swept Back Hair", "swept"},
{"Swept Back Hair 2", "swept2"},
{"Thinning", "thinning"},
{"Thinning Rear", "thinningrear"},
{"Thinning Front", "thinningfront"},
{"Thinning (Front)", "thinningfront"},
{"Thinning (Rear)", "thinningrear"},
{"Topknot", "topknot"},
{"Tress Shoulder", "tressshoulder"},
{"Trimmed", "trimmed"},
{"Trim Flat", "trimflat"},
{"Twintails", "twintail"},
{"Undercut", "undercut"},
{"Undercut Left", "undercutleft"},
{"Undercut Right", "undercutright"},
{"Unkept", "unkept"},
{"Updo", "updo"},
{"Vegeta", "toriyama2"},
{"Overeye Very Short", "veryshortovereye"},
{"Overeye Very Short, Alternate", "veryshortovereyealternate"},
{"Very Long Hair", "vlong"},
{"Very Long Hair 2", "longest"},
{"Very Long Over Eye", "longest2"},
{"Very Short Over Eye", "veryshortovereyealternate"},
{"Very Long with Fringe", "vlongfringe"},
{"Volaju", "volaju"},
{"Wisp", "wisp"},
{"Zieglertail", "ziegler"},
{"Zone Braid", "zone"},
};
public static readonly Dictionary<string, string> FacialHairStylesMap = new Dictionary<string, string>()
{
{"Shaved", "shaved"},
{"Watson Mustache", "watson"},
{"Hulk Hogan Mustache", "hogan"},
{"Van Dyke Mustache", "vandyke"},
{"Square Mustache", "chaplin"},
{"Selleck Mustache", "selleck"},
{"Neckbeard", "neckbeard"},
{"Full Beard", "fullbeard"},
{"Long Beard", "longbeard"},
{"Very Long Beard", "wise"},
{"Elvis Sideburns", "elvis"},
{"Abraham Lincoln Beard", "abe"},
{"Chinstrap", "chin"},
{"Hipster Beard", "hip"},
{"Goatee", "gt"},
{"Adam Jensen Beard", "jensen"},
{"Volaju", "volaju"},
{"Dwarf Beard", "dwarf"},
{"3 O'clock Shadow", "3oclock"},
{"3 O'clock Shadow and Moustache", "3oclockmoustache"},
{"5 O'clock Shadow", "5oclock"},
{"5 O'clock Shadow and Moustache", "5oclockmoustache"},
{"7 O'clock Shadow", "7oclock"},
{"7 O'clock Shadow and Moustache", "7oclockmoustache"},
{"Mutton Chops", "mutton"},
{"Mutton Chops and Moustache", "muttonmu"},
{"Walrus Moustache", "walrus"},
{"Beard (Abraham Lincoln)", "abe"},
{"Beard (Broken Man)", "brokenman"},
{"Beard (Chinstrap)", "chin"},
{"Beard (Dwarf)", "dwarf"},
{"Beard (Full)", "fullbeard"},
{"Beard (Cropped Fullbeard)", "croppedfullbeard"},
{"Beard (Goatee)", "gt"},
{"Beard (Hipster)", "hip"},
{"Beard (Jensen)", "jensen"},
{"Beard (Neckbeard)", "neckbeard"},
{"Beard (Very Long)", "wise"},
{"Beard (Muttonmus)", "muttonmus"},
{"Beard (Martial Artist)", "martialartist"},
{"Beard (Chinless Beard)", "chinlessbeard"},
{"Beard (Moonshiner)", "moonshiner"},
{"Beard (Long)", "longbeard"},
{"Beard (Volaju)", "volaju"},
{"Beard (Three o Clock Shadow)", "3oclock"},
{"Beard (Five o Clock Shadow)", "fiveoclock"},
{"Beard (Five o Clock Moustache)", "5oclockmoustache"},
{"Beard (Seven o Clock Shadow)", "7oclock"},
{"Beard (Seven o Clock Moustache)", "7oclockmoustache"},
{"Moustache", "moustache"},
{"Moustache (Pencilstache)", "pencilstache"},
{"Moustache (Smallstache)", "smallstache"},
{"Moustache (Walrus)", "walrus"},
{"Moustache (Fu Manchu)", "fumanchu"},
{"Moustache (Hulk Hogan)", "hogan"},
{"Moustache (Selleck)", "selleck"},
{"Moustache (Square)", "chaplin"},
{"Moustache (Van Dyke)", "vandyke"},
{"Moustache (Watson)", "watson"},
{"Sideburns (Elvis)", "elvis"},
{"Sideburns (Mutton Chops)", "mutton"},
{"Sideburns", "sideburn"},
{"Shaved", "shaved"}
};
}
}

View File

@@ -1,6 +0,0 @@
- type: shader
id: hair
kind: source
path: "/Shaders/hair.swsl"
params:
hairColor: "#000000"

View File

@@ -1,8 +0,0 @@
// Additively blends the hair color onto the hair sprite.
uniform vec4 hairColor;
void fragment() {
COLOR = texture(TEXTURE, UV);
COLOR.rgb += hairColor.rgb;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

View File

@@ -1 +1 @@
{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "3oclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "3oclockmoustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "5oclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "5oclockmoustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "7oclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "7oclockmoustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "abe", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "chaplin", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "chin", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "dwarf", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "elvis", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fullbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "gt", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "hip", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "hogan", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "jensen", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "longbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mutton", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "muttonmu", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "neckbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "selleck", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "shaved", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "vandyke", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "volaju", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "walrus", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "watson", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "wise", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]}
{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "3oclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "5oclockmoustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "7oclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "7oclockmoustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "abe", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "brokenman", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "chaplin", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "chin", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "chinlessbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "croppedfullbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "dorsalfnil", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "dwarf", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "elvis", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fiveoclock", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fullbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fumanchu", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "gt", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "hip", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "hogan", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "jensen", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "longbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "longbeard_l", "directions": 1, "delays": [[1.0]]}, {"name": "martialartist", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "moonshiner", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "moustache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "mutton", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "muttonmus", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "neckbeard", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pencilstache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "selleck", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "sideburn", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "smallstache", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "vandyke", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "volaju", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "walrus", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "watson", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "wise", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "shaved", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]}

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 832 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 995 B

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Some files were not shown because too many files have changed in this diff Show More