фиксы-кокащек

This commit is contained in:
Vigers Ray 2025-09-27 02:50:48 +03:00
parent 8ab62ec644
commit a5a791ac95
18 changed files with 7171 additions and 233 deletions

View file

@ -1,5 +1,6 @@
using System.Linq;
using Content.Shared.Construction.Prototypes;
using Content.Shared.Humanoid;
using Content.Shared.Preferences;
using Robust.Client;
using Robust.Client.Player;
@ -67,6 +68,15 @@ namespace Content.Client.Lobby
var collection = IoCManager.Instance!;
// Sunrise-Sponsors-Start
var sponsorPrototypes = _sponsorsManager?.GetClientPrototypes().ToArray() ?? [];
// Log initial profile state
var initialAppearance = (HumanoidCharacterAppearance) profile.CharacterAppearance;
Logger.Debug("Initial profile state:");
Logger.Debug($"Profile type: {profile.GetType().Name}");
Logger.Debug($"Initial Hair gradient: enabled={initialAppearance.HairGradientEnabled}, color={initialAppearance.HairGradientSecondaryColor}, dir={initialAppearance.HairGradientDirection}");
Logger.Debug($"Initial FacialHair gradient: enabled={initialAppearance.FacialHairGradientEnabled}, color={initialAppearance.FacialHairGradientSecondaryColor}, dir={initialAppearance.FacialHairGradientDirection}");
Logger.Debug($"Initial AllMarkings gradient: enabled={initialAppearance.AllMarkingsGradientEnabled}, color={initialAppearance.AllMarkingsGradientSecondaryColor}, dir={initialAppearance.AllMarkingsGradientDirection}");
profile.EnsureValid(_playerManager.LocalSession!, collection, sponsorPrototypes);
// Sunrise-Sponsors-End
var characters = new Dictionary<int, ICharacterProfile>(Preferences.Characters) {[slot] = profile};

View file

@ -2159,8 +2159,6 @@ namespace Content.Client.Lobby.UI
{
AllMarkingsGradientDirectionSelector.SelectId(Profile.Appearance.AllMarkingsGradientDirection);
}
Logger.Debug($"Sunrise: Градиентные контролы обновлены - Hair: {Profile.Appearance.HairGradientEnabled}, FacialHair: {Profile.Appearance.FacialHairGradientEnabled}, AllMarkings: {Profile.Appearance.AllMarkingsGradientEnabled}");
}
catch (Exception ex)
{

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Content.Server.Database.Migrations.Postgres
{
/// <inheritdoc />
public partial class Gradient : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "facial_hair_color_type",
table: "profile",
type: "integer",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "facial_hair_extended_color",
table: "profile",
type: "text",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "hair_color_type",
table: "profile",
type: "integer",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "hair_extended_color",
table: "profile",
type: "text",
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "facial_hair_color_type",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_extended_color",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_color_type",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_extended_color",
table: "profile");
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,52 +1,37 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Content.Server.Database.Migrations.Postgres
{
/// <inheritdoc />
public partial class GradientFields : Migration
public partial class GradientUpdate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "hair_gradient_enabled",
migrationBuilder.RenameColumn(
name: "hair_extended_color",
table: "profile",
type: "boolean",
nullable: false,
defaultValue: false);
newName: "hair_gradient_secondary_color");
migrationBuilder.AddColumn<string>(
name: "hair_gradient_secondary_color",
migrationBuilder.RenameColumn(
name: "hair_color_type",
table: "profile",
type: "text",
nullable: false,
defaultValue: "#FFFFFF");
newName: "hair_gradient_direction");
migrationBuilder.RenameColumn(
name: "facial_hair_extended_color",
table: "profile",
newName: "facial_hair_gradient_secondary_color");
migrationBuilder.RenameColumn(
name: "facial_hair_color_type",
table: "profile",
newName: "facial_hair_gradient_direction");
migrationBuilder.AddColumn<int>(
name: "hair_gradient_direction",
table: "profile",
type: "integer",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<bool>(
name: "facial_hair_gradient_enabled",
table: "profile",
type: "boolean",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<string>(
name: "facial_hair_gradient_secondary_color",
table: "profile",
type: "text",
nullable: false,
defaultValue: "#FFFFFF");
migrationBuilder.AddColumn<int>(
name: "facial_hair_gradient_direction",
name: "all_markings_gradient_direction",
table: "profile",
type: "integer",
nullable: false,
@ -64,41 +49,28 @@ namespace Content.Server.Database.Migrations.Postgres
table: "profile",
type: "text",
nullable: false,
defaultValue: "#FFFFFF");
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "all_markings_gradient_direction",
migrationBuilder.AddColumn<bool>(
name: "facial_hair_gradient_enabled",
table: "profile",
type: "integer",
type: "boolean",
nullable: false,
defaultValue: 0);
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "hair_gradient_enabled",
table: "profile",
type: "boolean",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "hair_gradient_enabled",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_gradient_secondary_color",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_gradient_direction",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_gradient_enabled",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_gradient_secondary_color",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_gradient_direction",
name: "all_markings_gradient_direction",
table: "profile");
migrationBuilder.DropColumn(
@ -110,8 +82,32 @@ namespace Content.Server.Database.Migrations.Postgres
table: "profile");
migrationBuilder.DropColumn(
name: "all_markings_gradient_direction",
name: "facial_hair_gradient_enabled",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_gradient_enabled",
table: "profile");
migrationBuilder.RenameColumn(
name: "hair_gradient_secondary_color",
table: "profile",
newName: "hair_extended_color");
migrationBuilder.RenameColumn(
name: "hair_gradient_direction",
table: "profile",
newName: "hair_color_type");
migrationBuilder.RenameColumn(
name: "facial_hair_gradient_secondary_color",
table: "profile",
newName: "facial_hair_extended_color");
migrationBuilder.RenameColumn(
name: "facial_hair_gradient_direction",
table: "profile",
newName: "facial_hair_color_type");
}
}
}

View file

@ -988,6 +988,19 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("integer")
.HasColumnName("age");
b.Property<int>("AllMarkingsGradientDirection")
.HasColumnType("integer")
.HasColumnName("all_markings_gradient_direction");
b.Property<bool>("AllMarkingsGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("all_markings_gradient_enabled");
b.Property<string>("AllMarkingsGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("all_markings_gradient_secondary_color");
b.Property<string>("BodyType")
.IsRequired()
.HasColumnType("text")
@ -1008,6 +1021,19 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("text")
.HasColumnName("facial_hair_color");
b.Property<int>("FacialHairGradientDirection")
.HasColumnType("integer")
.HasColumnName("facial_hair_gradient_direction");
b.Property<bool>("FacialHairGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("facial_hair_gradient_enabled");
b.Property<string>("FacialHairGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("facial_hair_gradient_secondary_color");
b.Property<string>("FacialHairName")
.IsRequired()
.HasColumnType("text")
@ -1028,6 +1054,19 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("text")
.HasColumnName("hair_color");
b.Property<int>("HairGradientDirection")
.HasColumnType("integer")
.HasColumnName("hair_gradient_direction");
b.Property<bool>("HairGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("hair_gradient_enabled");
b.Property<string>("HairGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("hair_gradient_secondary_color");
b.Property<string>("HairName")
.IsRequired()
.HasColumnType("text")
@ -1081,45 +1120,6 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("real")
.HasColumnName("width");
b.Property<bool>("AllMarkingsGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("all_markings_gradient_enabled");
b.Property<string>("AllMarkingsGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("all_markings_gradient_secondary_color");
b.Property<int>("AllMarkingsGradientDirection")
.HasColumnType("integer")
.HasColumnName("all_markings_gradient_direction");
b.Property<bool>("FacialHairGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("facial_hair_gradient_enabled");
b.Property<string>("FacialHairGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("facial_hair_gradient_secondary_color");
b.Property<int>("FacialHairGradientDirection")
.HasColumnType("integer")
.HasColumnName("facial_hair_gradient_direction");
b.Property<bool>("HairGradientEnabled")
.HasColumnType("boolean")
.HasColumnName("hair_gradient_enabled");
b.Property<string>("HairGradientSecondaryColor")
.IsRequired()
.HasColumnType("text")
.HasColumnName("hair_gradient_secondary_color");
b.Property<int>("HairGradientDirection")
.HasColumnType("integer")
.HasColumnName("hair_gradient_direction");
b.HasKey("Id")
.HasName("PK_profile");

View file

@ -11,8 +11,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace Content.Server.Database.Migrations.Sqlite
{
[DbContext(typeof(SqliteServerDbContext))]
[Migration("20250910035429_GradientFields")]
partial class GradientFields
[Migration("20250724212307_Gradient")]
partial class Gradient
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -136,10 +136,6 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("INTEGER")
.HasColumnName("admin_log_id");
b.Property<long>("CurTime")
.HasColumnType("INTEGER")
.HasColumnName("cur_time");
b.Property<DateTime>("Date")
.HasColumnType("TEXT")
.HasColumnName("date");
@ -831,19 +827,6 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("INTEGER")
.HasColumnName("age");
b.Property<int>("AllMarkingsGradientDirection")
.HasColumnType("INTEGER")
.HasColumnName("all_markings_gradient_direction");
b.Property<bool>("AllMarkingsGradientEnabled")
.HasColumnType("INTEGER")
.HasColumnName("all_markings_gradient_enabled");
b.Property<string>("AllMarkingsGradientSecondaryColor")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("all_markings_gradient_secondary_color");
b.Property<string>("BodyType")
.IsRequired()
.HasColumnType("TEXT")
@ -864,18 +847,14 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("facial_hair_color");
b.Property<int>("FacialHairGradientDirection")
b.Property<int>("FacialHairColorType")
.HasColumnType("INTEGER")
.HasColumnName("facial_hair_gradient_direction");
.HasColumnName("facial_hair_color_type");
b.Property<bool>("FacialHairGradientEnabled")
.HasColumnType("INTEGER")
.HasColumnName("facial_hair_gradient_enabled");
b.Property<string>("FacialHairGradientSecondaryColor")
b.Property<string>("FacialHairExtendedColor")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("facial_hair_gradient_secondary_color");
.HasColumnName("facial_hair_extended_color");
b.Property<string>("FacialHairName")
.IsRequired()
@ -897,28 +876,20 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("hair_color");
b.Property<int>("HairGradientDirection")
b.Property<int>("HairColorType")
.HasColumnType("INTEGER")
.HasColumnName("hair_gradient_direction");
.HasColumnName("hair_color_type");
b.Property<bool>("HairGradientEnabled")
.HasColumnType("INTEGER")
.HasColumnName("hair_gradient_enabled");
b.Property<string>("HairGradientSecondaryColor")
b.Property<string>("HairExtendedColor")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("hair_gradient_secondary_color");
.HasColumnName("hair_extended_color");
b.Property<string>("HairName")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("hair_name");
b.Property<float>("Height")
.HasColumnType("REAL")
.HasColumnName("height");
b.Property<byte[]>("Markings")
.HasColumnType("jsonb")
.HasColumnName("markings");
@ -959,10 +930,6 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("voice");
b.Property<float>("Width")
.HasColumnType("REAL")
.HasColumnName("width");
b.HasKey("Id")
.HasName("PK_profile");

View file

@ -0,0 +1,62 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Content.Server.Database.Migrations.Sqlite
{
/// <inheritdoc />
public partial class Gradient : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "facial_hair_color_type",
table: "profile",
type: "INTEGER",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "facial_hair_extended_color",
table: "profile",
type: "TEXT",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "hair_color_type",
table: "profile",
type: "INTEGER",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "hair_extended_color",
table: "profile",
type: "TEXT",
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "facial_hair_color_type",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_extended_color",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_color_type",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_extended_color",
table: "profile");
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,31 @@
namespace Content.Server.Database.Migrations.Sqlite
{
/// <inheritdoc />
public partial class GradientFields : Migration
public partial class GradientUpdate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "hair_extended_color",
table: "profile",
newName: "hair_gradient_secondary_color");
migrationBuilder.RenameColumn(
name: "hair_color_type",
table: "profile",
newName: "hair_gradient_enabled");
migrationBuilder.RenameColumn(
name: "facial_hair_extended_color",
table: "profile",
newName: "facial_hair_gradient_secondary_color");
migrationBuilder.RenameColumn(
name: "facial_hair_color_type",
table: "profile",
newName: "hair_gradient_direction");
migrationBuilder.AddColumn<int>(
name: "all_markings_gradient_direction",
table: "profile",
@ -29,7 +49,7 @@ namespace Content.Server.Database.Migrations.Sqlite
table: "profile",
type: "TEXT",
nullable: false,
defaultValue: "#FFFFFF");
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "facial_hair_gradient_direction",
@ -44,34 +64,6 @@ namespace Content.Server.Database.Migrations.Sqlite
type: "INTEGER",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<string>(
name: "facial_hair_gradient_secondary_color",
table: "profile",
type: "TEXT",
nullable: false,
defaultValue: "#FFFFFF");
migrationBuilder.AddColumn<int>(
name: "hair_gradient_direction",
table: "profile",
type: "INTEGER",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<bool>(
name: "hair_gradient_enabled",
table: "profile",
type: "INTEGER",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<string>(
name: "hair_gradient_secondary_color",
table: "profile",
type: "TEXT",
nullable: false,
defaultValue: "#FFFFFF");
}
/// <inheritdoc />
@ -97,21 +89,25 @@ namespace Content.Server.Database.Migrations.Sqlite
name: "facial_hair_gradient_enabled",
table: "profile");
migrationBuilder.DropColumn(
name: "facial_hair_gradient_secondary_color",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_gradient_direction",
table: "profile");
migrationBuilder.DropColumn(
name: "hair_gradient_enabled",
table: "profile");
migrationBuilder.DropColumn(
migrationBuilder.RenameColumn(
name: "hair_gradient_secondary_color",
table: "profile");
table: "profile",
newName: "hair_extended_color");
migrationBuilder.RenameColumn(
name: "hair_gradient_enabled",
table: "profile",
newName: "hair_color_type");
migrationBuilder.RenameColumn(
name: "hair_gradient_direction",
table: "profile",
newName: "facial_hair_color_type");
migrationBuilder.RenameColumn(
name: "facial_hair_gradient_secondary_color",
table: "profile",
newName: "facial_hair_extended_color");
}
}
}

View file

@ -207,9 +207,6 @@ namespace Content.Server.Database
private static HumanoidCharacterProfile ConvertProfiles(Profile profile)
{
// Debug logging for gradient load
Console.WriteLine($"Sunrise: Loading gradient settings from DB - Hair: {profile.HairGradientEnabled}, FacialHair: {profile.FacialHairGradientEnabled}, AllMarkings: {profile.AllMarkingsGradientEnabled}");
var jobs = profile.Jobs.ToDictionary(j => new ProtoId<JobPrototype>(j.JobName), j => (JobPriority) j.Priority);
var antags = profile.Antags.Select(a => new ProtoId<AntagPrototype>(a.AntagName));
var traits = profile.Traits.Select(t => new ProtoId<TraitPrototype>(t.TraitName));
@ -316,6 +313,8 @@ namespace Content.Server.Database
{
profile ??= new Profile();
var appearance = (HumanoidCharacterAppearance) humanoid.CharacterAppearance;
// Debug logging for incoming appearance values
List<string> markingStrings = new();
foreach (var marking in appearance.Markings)
{
@ -352,7 +351,6 @@ namespace Content.Server.Database
profile.AllMarkingsGradientDirection = appearance.AllMarkingsGradientDirection;
// Debug logging for gradient save
Console.WriteLine($"Sunrise: Saving gradient settings - Hair: {appearance.HairGradientEnabled}, FacialHair: {appearance.FacialHairGradientEnabled}, AllMarkings: {appearance.AllMarkingsGradientEnabled}");
profile.SpawnPriority = (int) humanoid.SpawnPriority;
profile.Markings = markings;
profile.Slot = slot;

View file

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Content.Server.Database;
using Content.Shared.CCVar;
using Content.Shared.Construction.Prototypes;
using Content.Shared.Humanoid;
using Content.Shared.Preferences;
using Robust.Server.Player;
using Robust.Shared.Configuration;

View file

@ -99,18 +99,65 @@ public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance,
Height = height; //Sunrise
}
public HumanoidCharacterAppearance(HumanoidCharacterAppearance other) :
this(other.HairStyleId, other.HairColor, other.FacialHairStyleId, other.FacialHairColor, other.EyeColor, other.SkinColor, new(other.Markings), other.Width, other.Height)
public HumanoidCharacterAppearance(string hairStyleId,
Color hairColor,
string facialHairStyleId,
Color facialHairColor,
Color eyeColor,
Color skinColor,
List<Marking> markings,
float width,
float height,
bool hairGradientEnabled = false,
Color hairGradientSecondaryColor = default,
int hairGradientDirection = 0,
bool facialHairGradientEnabled = false,
Color facialHairGradientSecondaryColor = default,
int facialHairGradientDirection = 0,
bool allMarkingsGradientEnabled = false,
Color allMarkingsGradientSecondaryColor = default,
int allMarkingsGradientDirection = 0)
{
HairStyleId = hairStyleId;
HairColor = ClampColor(hairColor);
FacialHairStyleId = facialHairStyleId;
FacialHairColor = ClampColor(facialHairColor);
EyeColor = ClampColor(eyeColor);
SkinColor = ClampColor(skinColor);
Markings = markings;
Width = width;
Height = height;
HairGradientEnabled = hairGradientEnabled;
HairGradientSecondaryColor = hairGradientSecondaryColor == default ? Color.White : ClampColor(hairGradientSecondaryColor);
HairGradientDirection = hairGradientDirection;
FacialHairGradientEnabled = facialHairGradientEnabled;
FacialHairGradientSecondaryColor = facialHairGradientSecondaryColor == default ? Color.White : ClampColor(facialHairGradientSecondaryColor);
FacialHairGradientDirection = facialHairGradientDirection;
AllMarkingsGradientEnabled = allMarkingsGradientEnabled;
AllMarkingsGradientSecondaryColor = allMarkingsGradientSecondaryColor == default ? Color.White : ClampColor(allMarkingsGradientSecondaryColor);
AllMarkingsGradientDirection = allMarkingsGradientDirection;
}
public HumanoidCharacterAppearance(HumanoidCharacterAppearance other) :
this(other.HairStyleId,
other.HairColor,
other.FacialHairStyleId,
other.FacialHairColor,
other.EyeColor,
other.SkinColor,
new(other.Markings),
other.Width,
other.Height,
other.HairGradientEnabled,
other.HairGradientSecondaryColor,
other.HairGradientDirection,
other.FacialHairGradientEnabled,
other.FacialHairGradientSecondaryColor,
other.FacialHairGradientDirection,
other.AllMarkingsGradientEnabled,
other.AllMarkingsGradientSecondaryColor,
other.AllMarkingsGradientDirection)
{
HairGradientEnabled = other.HairGradientEnabled; //Sunrise start
HairGradientSecondaryColor = ClampColor(other.HairGradientSecondaryColor);
HairGradientDirection = other.HairGradientDirection;
FacialHairGradientEnabled = other.FacialHairGradientEnabled;
FacialHairGradientSecondaryColor = ClampColor(other.FacialHairGradientSecondaryColor);
FacialHairGradientDirection = other.FacialHairGradientDirection;
AllMarkingsGradientEnabled = other.AllMarkingsGradientEnabled;
AllMarkingsGradientSecondaryColor = ClampColor(other.AllMarkingsGradientSecondaryColor);
AllMarkingsGradientDirection = other.AllMarkingsGradientDirection; //Sunrise end
}
public HumanoidCharacterAppearance WithHairStyleName(string newName)
@ -363,7 +410,7 @@ public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance,
HairGradientDirection = HairGradientDirection,
FacialHairGradientEnabled = FacialHairGradientEnabled,
FacialHairGradientSecondaryColor = FacialHairGradientSecondaryColor,
FacialHairGradientDirection = FacialHairGradientDirection,
FacialHairGradientDirection = direction,
AllMarkingsGradientEnabled = AllMarkingsGradientEnabled,
AllMarkingsGradientSecondaryColor = AllMarkingsGradientSecondaryColor,
AllMarkingsGradientDirection = direction
@ -682,8 +729,20 @@ public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance,
var facialHairColor = ClampColor(appearance.FacialHairColor);
var eyeColor = ClampColor(appearance.EyeColor);
var width = appearance.Width; //Sunrise
var height = appearance.Height; //Sunrise
var hairGradientEnabled = appearance.HairGradientEnabled;
var hairGradientSecondaryColor = ClampColor(appearance.HairGradientSecondaryColor);
var hairGradientDirection = appearance.HairGradientDirection;
var facialHairGradientEnabled = appearance.FacialHairGradientEnabled;
var facialHairGradientSecondaryColor = ClampColor(appearance.FacialHairGradientSecondaryColor);
var facialHairGradientDirection = appearance.FacialHairGradientDirection;
var allMarkingsGradientEnabled = appearance.AllMarkingsGradientEnabled;
var allMarkingsGradientSecondaryColor = ClampColor(appearance.AllMarkingsGradientSecondaryColor);
var allMarkingsGradientDirection = appearance.AllMarkingsGradientDirection;
var width = appearance.Width;
var height = appearance.Height;
var proto = IoCManager.Resolve<IPrototypeManager>();
var markingManager = IoCManager.Resolve<MarkingManager>();
@ -745,7 +804,16 @@ public sealed partial class HumanoidCharacterAppearance : ICharacterAppearance,
skinColor,
markingSet.GetForwardEnumerator().ToList(),
width,
height);
height,
hairGradientEnabled,
hairGradientSecondaryColor,
hairGradientDirection,
facialHairGradientEnabled,
facialHairGradientSecondaryColor,
facialHairGradientDirection,
allMarkingsGradientEnabled,
allMarkingsGradientSecondaryColor,
allMarkingsGradientDirection);
}
public bool MemberwiseEquals(ICharacterAppearance maybeOther)

View file

@ -27,8 +27,6 @@ ent-ClothingOuterVestWebElite = элитный сетчатый жилет
ent-ClothingOuterVestWebEliteBiocode = { ent-ClothingOuterVestWebElite }
.suffix = БИОКОД
.desc = { ent-ClothingOuterVestWebElite.desc }
ent-ClothingOuterVestWebElite = элитный тактический жилет
.desc = Синтетический бронежилет. У этого есть дополнительные ремни и теплостойкие волокна.
ent-ClothingOuterVestWebMerc = тактический жилет наёмника
.desc = Высококачественный бронежилет из прочного синтетического материала. Он удивительно гибкий и лёгкий, несмотря на внушительную броню.
ent-ClothingOuterArmorRaid = мародерский бронированный костюм

View file

@ -57,9 +57,7 @@
parent: [BaseSyndicateContraband, FireAxe]
description: Why fight fire with an axe when you can fight with fire and axe? Now featuring rugged rubberized handle!
components:
- type: MeleeWeapon
wideAnimationRotation: 90
#Sunrise-start
#Sunrise-start
- type: IgniteOnMeleeHit
fireStacks: 3
- type: MeleeWeapon

View file

@ -71,16 +71,3 @@
- type: Biocode
factions:
- Syndicate
- type: entity
parent: WeaponPistolDeagle
id: WeaponPistolDeagleBiocode
suffix: BIOCODE
components:
- type: FactionWeaponBlocker
factions:
- Syndicate
alertText: Данное оружие биокодировано. Вы не можете его использовать.
- type: Biocode
factions:
- Syndicate

View file

@ -1,7 +0,0 @@
set PDIR=%~dp0
cd %PDIR%Bin\Content.Server
start Content.Server.exe
cd %PDIR%Bin\Content.Client
start Content.Client.exe
cd %PDIR%
set PDIR=