diff --git a/Content.Client/Paint/PaintVisualizerSystem.cs b/Content.Client/Paint/PaintVisualizerSystem.cs deleted file mode 100644 index 8d037811fa..0000000000 --- a/Content.Client/Paint/PaintVisualizerSystem.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System.Linq; -using Robust.Client.GameObjects; -using static Robust.Client.GameObjects.SpriteComponent; -using Content.Shared.Clothing; -using Content.Shared.Hands; -using Content.Shared.Paint; -using Robust.Client.Graphics; -using Robust.Shared.Prototypes; - -namespace Content.Client.Paint; - -public sealed class PaintedVisualizerSystem : VisualizerSystem -{ - /// - /// Visualizer for Paint which applies a shader and colors the entity. - /// - - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly IPrototypeManager _protoMan = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnHeldVisualsUpdated); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnEquipmentVisualsUpdated); - } - - protected override void OnAppearanceChange(EntityUid uid, PaintedComponent component, ref AppearanceChangeEvent args) - { - var shader = _protoMan.Index(component.ShaderName).Instance(); - - if (args.Sprite == null) - return; - - // What is this even doing? It's not even checking what the value is. - if (!_appearance.TryGetData(uid, PaintVisuals.Painted, out bool isPainted)) - return; - - var sprite = args.Sprite; - - foreach (var spriteLayer in sprite.AllLayers) - { - if (spriteLayer is not Layer layer) - continue; - - if (layer.Shader == null) // If shader isn't null we dont want to replace the original shader. - { - layer.Shader = shader; - layer.Color = component.Color; - } - } - } - - private void OnHeldVisualsUpdated(EntityUid uid, PaintedComponent component, HeldVisualsUpdatedEvent args) - { - if (args.RevealedLayers.Count == 0) - return; - - if (!TryComp(args.User, out SpriteComponent? sprite)) - return; - - foreach (var revealed in args.RevealedLayers) - { - if (!sprite.LayerMapTryGet(revealed, out var layer)) - continue; - - sprite.LayerSetShader(layer, component.ShaderName); - sprite.LayerSetColor(layer, component.Color); - } - } - - private void OnEquipmentVisualsUpdated(EntityUid uid, PaintedComponent component, EquipmentVisualsUpdatedEvent args) - { - if (args.RevealedLayers.Count == 0) - return; - - if (!TryComp(args.Equipee, out SpriteComponent? sprite)) - return; - - foreach (var revealed in args.RevealedLayers) - { - if (!sprite.LayerMapTryGet(revealed, out var layer)) - continue; - - sprite.LayerSetShader(layer, component.ShaderName); - sprite.LayerSetColor(layer, component.Color); - } - } - - private void OnShutdown(EntityUid uid, PaintedComponent component, ref ComponentShutdown args) - { - if (!TryComp(uid, out SpriteComponent? sprite)) - return; - - component.BeforeColor = sprite.Color; - var shader = _protoMan.Index(component.ShaderName).Instance(); - - if (!Terminating(uid)) - { - foreach (var spriteLayer in sprite.AllLayers) - { - if (spriteLayer is not Layer layer) - continue; - - if (layer.Shader == shader) // If shader isn't same as one in component we need to ignore it. - { - layer.Shader = null; - if (layer.Color == component.Color) // If color isn't the same as one in component we don't want to change it. - layer.Color = component.BeforeColor; - } - } - } - } -} diff --git a/Content.Server/Paint/PaintSystem.cs b/Content.Server/Paint/PaintSystem.cs deleted file mode 100644 index 892f961d63..0000000000 --- a/Content.Server/Paint/PaintSystem.cs +++ /dev/null @@ -1,178 +0,0 @@ -using Content.Shared.Popups; -using Content.Shared.Paint; -using Content.Shared.Sprite; -using Content.Shared.DoAfter; -using Content.Shared.Interaction; -using Content.Server.Chemistry.Containers.EntitySystems; -using Robust.Shared.Audio.Systems; -using Content.Shared.Humanoid; -using Robust.Shared.Utility; -using Content.Shared.Verbs; -using Content.Shared.SubFloor; -using Content.Server.Nutrition.Components; -using Content.Shared.Inventory; -using Content.Server.Nutrition.EntitySystems; - -namespace Content.Server.Paint; - -/// -/// Colors target and consumes reagent on each color success. -/// -public sealed class PaintSystem : SharedPaintSystem -{ - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; - [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; - [Dependency] private readonly InventorySystem _inventory = default!; - [Dependency] private readonly OpenableSystem _openable = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnInteract); - SubscribeLocalEvent(OnPaint); - SubscribeLocalEvent>(OnPaintVerb); - } - - private void OnInteract(EntityUid uid, PaintComponent component, AfterInteractEvent args) - { - if (!args.CanReach) - return; - - if (args.Target is not { Valid: true } target) - return; - - PrepPaint(uid, component, target, args.User); - } - - private void OnPaintVerb(EntityUid uid, PaintComponent component, GetVerbsEvent args) - { - if (!args.CanInteract || !args.CanAccess) - return; - - var paintText = Loc.GetString("paint-verb"); - - var verb = new UtilityVerb() - { - Act = () => - { - PrepPaint(uid, component, args.Target, args.User); - }, - - Text = paintText, - Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/paint.svg.192dpi.png")) - }; - args.Verbs.Add(verb); - } - private void PrepPaint(EntityUid uid, PaintComponent component, EntityUid target, EntityUid user) - { - - var doAfterEventArgs = new DoAfterArgs(EntityManager, user, component.Delay, new PaintDoAfterEvent(), uid, target: target, used: uid) - { - BreakOnMove = true, - NeedHand = true, - BreakOnHandChange = true - }; - - _doAfterSystem.TryStartDoAfter(doAfterEventArgs); - } - - private void OnPaint(Entity entity, ref PaintDoAfterEvent args) - { - if (args.Target == null || args.Used == null) - return; - - if (args.Handled || args.Cancelled) - return; - - if (args.Target is not { Valid: true } target) - return; - - if (!_openable.IsOpen(entity)) - { - _popup.PopupEntity(Loc.GetString("paint-closed", ("used", args.Used)), args.User, args.User, PopupType.Medium); - return; - } - - if (HasComp(target) || HasComp(target)) - { - _popup.PopupEntity(Loc.GetString("paint-failure-painted", ("target", args.Target)), args.User, args.User, PopupType.Medium); - return; - } - - if (!entity.Comp.Blacklist?.IsValid(target, EntityManager) != true || HasComp(target) || HasComp(target)) - { - _popup.PopupEntity(Loc.GetString("paint-failure", ("target", args.Target)), args.User, args.User, PopupType.Medium); - return; - } - - if (TryPaint(entity, target)) - { - EnsureComp(target, out PaintedComponent? paint); - EnsureComp(target); - - paint.Color = entity.Comp.Color; // set the target color to the color specified in the spray paint yml. - _audio.PlayPvs(entity.Comp.Spray, entity); - paint.Enabled = true; - - if (HasComp(target)) // Paint any clothing the target is wearing. - { - if (_inventory.TryGetSlots(target, out var slotDefinitions)) - { - foreach (var slot in slotDefinitions) - { - if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt)) - continue; - - if (HasComp(slotEnt.Value) || !entity.Comp.Blacklist?.IsValid(slotEnt.Value, - EntityManager) != true - || HasComp(slotEnt.Value) || - HasComp( - slotEnt.Value)) - { - continue; - } - - EnsureComp(slotEnt.Value, out PaintedComponent? slotpaint); - EnsureComp(slotEnt.Value); - slotpaint.Color = entity.Comp.Color; - _appearanceSystem.SetData(slotEnt.Value, PaintVisuals.Painted, true); - Dirty(slotEnt.Value, slotpaint); - } - } - } - - _popup.PopupEntity(Loc.GetString("paint-success", ("target", args.Target)), args.User, args.User, PopupType.Medium); - _appearanceSystem.SetData(target, PaintVisuals.Painted, true); - Dirty(target, paint); - args.Handled = true; - return; - } - - if (!TryPaint(entity, target)) - { - _popup.PopupEntity(Loc.GetString("paint-empty", ("used", args.Used)), args.User, args.User, PopupType.Medium); - return; - } - } - - private bool TryPaint(Entity reagent, EntityUid target) - { - if (HasComp(target) || HasComp(target)) - return false; - - if (_solutionContainer.TryGetSolution(reagent.Owner, reagent.Comp.Solution, out _, out var solution)) - { - var quantity = solution.RemoveReagent(reagent.Comp.Reagent, reagent.Comp.ConsumptionUnit); - if (quantity > 0)// checks quantity of solution is more than 0. - return true; - - if (quantity < 1) - return false; - } - return false; - } -} diff --git a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs index 0b4b13d6e4..c49bfdec93 100644 --- a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs +++ b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs @@ -80,6 +80,11 @@ namespace Content.Server.Storage.EntitySystems _adminLogger.Add(LogType.EntitySpawn, LogImpact.Low, $"{ToPrettyString(args.User)} used {ToPrettyString(uid)} which spawned {ToPrettyString(entityToPlaceInHands.Value)}"); } + if (component.Sound != null) + { + _audio.PlayPvs(component.Sound, uid); + } + component.Uses--; // Delete entity only if component was successfully used @@ -92,7 +97,6 @@ namespace Content.Server.Storage.EntitySystems if (entityToPlaceInHands != null) { _hands.PickupOrDrop(args.User, entityToPlaceInHands.Value); - _audio.PlayPvs(component.Sound, entityToPlaceInHands.Value); } } } diff --git a/Content.Shared/Paint/PaintComponent.cs b/Content.Shared/Paint/PaintComponent.cs deleted file mode 100644 index ad09f4ca73..0000000000 --- a/Content.Shared/Paint/PaintComponent.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Content.Shared.Chemistry.Reagent; -using Content.Shared.FixedPoint; -using Robust.Shared.Audio; -using Content.Shared.Whitelist; -using Robust.Shared.Prototypes; -using Robust.Shared.GameStates; - -namespace Content.Shared.Paint; - -/// -/// Entity when used on another entity will paint target entity. -/// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -[Access(typeof(SharedPaintSystem))] -public sealed partial class PaintComponent : Component -{ - /// - /// Noise made when paint applied. - /// - [DataField] - public SoundSpecifier Spray = new SoundPathSpecifier("/Audio/Effects/spray2.ogg"); - - /// - /// Solution on the entity that contains the paint. - /// - [DataField] - public string Solution = "drink"; - - /// - /// How long the doafter will take. - /// - [DataField] - public int Delay = 2; - - /// - /// Reagent that will be used as paint. - /// - [DataField, AutoNetworkedField] - public ProtoId Reagent = "SpaceGlue"; - - /// - /// Color that the painting entity will instruct the painted entity to be. - /// - [DataField, AutoNetworkedField] - public Color Color = Color.FromHex("#c62121"); - - [DataField, ViewVariables(VVAccess.ReadWrite)] - public EntityWhitelist? Blacklist; - /// - /// Reagent consumption per use. - /// - [DataField] - public FixedPoint2 ConsumptionUnit = FixedPoint2.New(5); - - /// - /// Duration per unit - /// - [DataField] - public TimeSpan DurationPerUnit = TimeSpan.FromSeconds(6); -} diff --git a/Content.Shared/Paint/PaintDoAfterEvent.cs b/Content.Shared/Paint/PaintDoAfterEvent.cs deleted file mode 100644 index 0851f1541b..0000000000 --- a/Content.Shared/Paint/PaintDoAfterEvent.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Content.Shared.DoAfter; -using Robust.Shared.Serialization; - -namespace Content.Shared.Paint; - -[Serializable, NetSerializable] -public sealed partial class PaintDoAfterEvent : SimpleDoAfterEvent -{ -} diff --git a/Content.Shared/Paint/PaintRemoverComponent.cs b/Content.Shared/Paint/PaintRemoverComponent.cs deleted file mode 100644 index 54d0ed7a71..0000000000 --- a/Content.Shared/Paint/PaintRemoverComponent.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Audio; - -namespace Content.Shared.Paint; - -/// -/// Removes paint from an entity that was painted with spray paint. -/// -[RegisterComponent, NetworkedComponent] -[Access(typeof(PaintRemoverSystem))] -public sealed partial class PaintRemoverComponent : Component -{ - /// - /// Sound when target is cleaned. - /// - [DataField] - public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/Fluids/watersplash.ogg"); - - /// - /// DoAfter wait time. - /// - [DataField] - public float CleanDelay = 2f; -} diff --git a/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs b/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs deleted file mode 100644 index 940b1aa513..0000000000 --- a/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Content.Shared.DoAfter; -using Robust.Shared.Serialization; - -namespace Content.Shared.Paint; - -[Serializable, NetSerializable] -public sealed partial class PaintRemoverDoAfterEvent : SimpleDoAfterEvent -{ -} diff --git a/Content.Shared/Paint/PaintRemoverSystem.cs b/Content.Shared/Paint/PaintRemoverSystem.cs deleted file mode 100644 index efc1ded067..0000000000 --- a/Content.Shared/Paint/PaintRemoverSystem.cs +++ /dev/null @@ -1,94 +0,0 @@ -using Content.Shared.Popups; -using Content.Shared.Interaction; -using Content.Shared.DoAfter; -using Content.Shared.Verbs; -using Content.Shared.Sprite; -using Robust.Shared.Audio.Systems; -using Robust.Shared.Timing; - -namespace Content.Shared.Paint; - -/// -/// Removes paint from an entity. -/// -public sealed class PaintRemoverSystem : SharedPaintSystem -{ - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnInteract); - SubscribeLocalEvent(OnDoAfter); - SubscribeLocalEvent>(OnPaintRemoveVerb); - } - - // When entity is painted, remove paint from that entity. - private void OnInteract(EntityUid uid, PaintRemoverComponent component, AfterInteractEvent args) - { - if (args.Handled) - return; - - if (!args.CanReach || args.Target is not { Valid: true } target || !HasComp(target)) - return; - - _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid) - { - BreakOnMove = true, - BreakOnDamage = true, - MovementThreshold = 1.0f, - }); - args.Handled = true; - } - - private void OnDoAfter(EntityUid uid, PaintRemoverComponent component, DoAfterEvent args) - { - if (args.Cancelled || args.Handled || args.Args.Target == null) - return; - - if (args.Target is not { Valid: true } target) - return; - - if (!TryComp(target, out PaintedComponent? paint)) - return; - - paint.Enabled = false; - _audio.PlayPredicted(component.Sound, target, args.User); - _popup.PopupClient(Loc.GetString("paint-removed", ("target", target)), args.User, args.User, PopupType.Medium); - _appearanceSystem.SetData(target, PaintVisuals.Painted, false); - RemComp(target); - Dirty(target, paint); - - args.Handled = true; - } - - private void OnPaintRemoveVerb(EntityUid uid, PaintRemoverComponent component, GetVerbsEvent args) - { - if (!args.CanInteract || !args.CanAccess) - return; - - var paintremovalText = Loc.GetString("paint-remove-verb"); - - var verb = new UtilityVerb() - { - Act = () => - { - - _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid) - { - BreakOnMove = true, - BreakOnDamage = true, - MovementThreshold = 1.0f, - }); - }, - - Text = paintremovalText - }; - - args.Verbs.Add(verb); - } -} diff --git a/Content.Shared/Paint/PaintedComponent.cs b/Content.Shared/Paint/PaintedComponent.cs deleted file mode 100644 index a6ee7377e1..0000000000 --- a/Content.Shared/Paint/PaintedComponent.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization; - -namespace Content.Shared.Paint; - -/// -/// Component applied to target entity when painted. -/// -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -public sealed partial class PaintedComponent : Component -{ - /// - /// Color of the paint. - /// - [DataField, AutoNetworkedField] - public Color Color = Color.FromHex("#2cdbd5"); - - /// - /// Used to remove the color when component removed. - /// - [DataField, AutoNetworkedField] - public Color BeforeColor; - - /// - /// If paint is enabled. - /// - [DataField, AutoNetworkedField] - public bool Enabled; - - /// - /// Name of the shader. - /// - [DataField, AutoNetworkedField] - public string ShaderName = "Greyscale"; -} - -[Serializable, NetSerializable] -public enum PaintVisuals : byte -{ - Painted, -} diff --git a/Content.Shared/Paint/SharedPaintSystem.cs b/Content.Shared/Paint/SharedPaintSystem.cs deleted file mode 100644 index 10185817b8..0000000000 --- a/Content.Shared/Paint/SharedPaintSystem.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Shared.Paint; - -/// -/// Colors target and consumes reagent on each color success. -/// -public abstract class SharedPaintSystem : EntitySystem -{ - public virtual void UpdateAppearance(EntityUid uid, PaintedComponent? component = null) - { - } -} diff --git a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs index feb1cebb8e..b238c6fc72 100644 --- a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs +++ b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs @@ -4,7 +4,6 @@ using Content.Shared.DoAfter; using Content.Shared.Doors.Components; using Content.Shared.Interaction; using Content.Shared.Popups; -using Content.Shared.Paint; using Content.Shared.SprayPainter.Components; using Content.Shared.SprayPainter.Prototypes; using Robust.Shared.Audio.Systems; @@ -130,8 +129,6 @@ public abstract class SharedSprayPainterSystem : EntitySystem return; } - RemComp(ent); - var doAfterEventArgs = new DoAfterArgs(EntityManager, args.User, painter.AirlockSprayTime, new SprayPainterDoorDoAfterEvent(sprite, style.Department), args.Used, target: ent, used: args.Used) { BreakOnMove = true, diff --git a/Resources/Locale/en-US/paint/paint.ftl b/Resources/Locale/en-US/paint/paint.ftl deleted file mode 100644 index 200b1f6e3f..0000000000 --- a/Resources/Locale/en-US/paint/paint.ftl +++ /dev/null @@ -1,8 +0,0 @@ -paint-success = {THE($target)} has been covered in paint! -paint-failure = Can't cover {THE($target)} in paint! -paint-failure-painted = {THE($target)} is already covered in paint! -paint-empty = {THE($used)} is empty! -paint-removed = You clean off the paint! -paint-closed = You must open {THE($used)} first! -paint-verb = Paint -paint-remove-verb = Remove Paint diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml index c29458a1ee..61085f13b9 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml @@ -68,16 +68,6 @@ category: cargoproduct-category-name-fun group: market -- type: cargoProduct - id: FunSprayPaints - icon: - sprite: Objects/Fun/spraycans.rsi - state: death2_cap - product: CrateFunSprayPaints - cost: 2000 - category: Fun - group: market - - type: cargoProduct id: FunParty icon: diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index 17018cb9e6..72cf6c447c 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -290,21 +290,14 @@ contents: - id: SnapPopBox - id: CrazyGlue + amount: 2 - id: PlasticBanana - - id: FunnyPaint - orGroup: Paint - prob: 0.5 - - id: FunnyPaintYellow - orGroup: Paint - prob: 0.5 - id: WhoopieCushion - id: ToyHammer - id: MrChips - prob: 0.5 - orGroup: Dummy + orGroup: GiftPool - id: MrDips - prob: 0.5 - orGroup: Dummy + orGroup: Giftpool - id: RevolverCapGun - id: BalloonNT - id: ClothingShoesClownLarge @@ -337,41 +330,6 @@ amount: 15 prob: 0.05 -- type: entity - id: CrateFunSprayPaints - name: spray paint crate - description: a crate filled with spray paint. - parent: CratePlastic - suffix: Spray Paint - components: - - type: StorageFill - contents: - - id: SprayPaintBlue - amount: 2 - prob: 0.33 - - id: SprayPaintRed - amount: 2 - prob: 0.33 - - id: SprayPaintOrange - amount: 2 - prob: 0.33 - - id: SprayPaintBlack - amount: 2 - prob: 0.33 - - id: SprayPaintGreen - amount: 2 - prob: 0.33 - - id: SprayPaintPurple - amount: 2 - prob: 0.33 - - id: SprayPaintWhite - amount: 2 - prob: 0.33 - - id: DeathPaint - amount: 2 - - id: DeathPaintTwo - amount: 2 - - type: entity name: dartboard box set description: A box with everything you need for a fun game of darts. diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml index 850fb91273..25078dbe57 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml @@ -145,10 +145,6 @@ prob: 0.25 - id: StrangePill prob: 0.20 - - id: DeathPaint - prob: 0.05 - - id: DeathPaintTwo - prob: 0.05 - id: DrinkMopwataBottleRandom prob: 0.20 - id: ModularReceiver diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml index 883182aae8..ae7e5bcf76 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml @@ -44,7 +44,6 @@ - CrateMaterialPlastic - CrateMaterialWood - CrateMaterialPlasteel - - CrateFunSprayPaints - CrateFunArtSupplies - CrateEngineeringCableLV - CrateEngineeringCableMV diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 450b501d1a..6419c1aaa1 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -173,12 +173,7 @@ - MaterialCloth10 - MaterialWoodPlank10 - ResearchDisk - - DeathPaint - Plunger - - SprayPaintBlue - - SprayPaintRed - - SprayPaintGreen - - SprayPaintOrange - TechnologyDisk - PowerCellMedium - PowerCellSmall diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index 3e6c603626..7308267473 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -70,7 +70,6 @@ tags: - Carp - DoorBumpOpener - - NoPaint - type: ReplacementAccent accent: genericAggressive - type: Speech diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index 4a35f71ac0..68ebf52dc0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -93,6 +93,3 @@ - RevenantTheme - type: Speech speechVerb: Ghost - - type: Tag - tags: - - NoPaint diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 9f0d54ee64..c7cd40988d 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -104,7 +104,6 @@ - type: Tag tags: - CannotSuicide - - NoPaint # From the uplink injector - type: entity @@ -213,7 +212,6 @@ tags: - CannotSuicide - FootstepSound - - NoPaint - type: Inventory templateId: holoclown - type: Hands diff --git a/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml b/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml deleted file mode 100644 index 1b417f6cde..0000000000 --- a/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml +++ /dev/null @@ -1,292 +0,0 @@ -# Base Paints -- type: entity - parent: BaseItem - id: PaintBase - name: spray paint - description: A tin of spray paint. - noSpawn: true - components: - - type: Appearance - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - state: clown_cap - layers: - - state: clown_cap - map: ["enum.OpenableVisuals.Layer"] - - type: Paint - consumptionUnit: 10 - blacklist: - tags: - - NoPaint - - type: Item - sprite: Objects/Fun/spraycans.rsi - heldPrefix: spray - - type: SolutionContainerManager - solutions: - drink: - maxVol: 50 - reagents: - - ReagentId: SpaceGlue - Quantity: 50 - - type: TrashOnSolutionEmpty - solution: drink - - type: Sealable - - type: Openable - sound: - path: /Audio/Effects/pop_high.ogg - closeable: true - closeSound: - path: /Audio/Effects/pop_high.ogg - -# Paints - -# funnypaint -- type: entity - parent: PaintBase - id: FunnyPaint - name: funny paint - description: A tin of funny paint, manufactured by Honk! Co. - components: - - type: Paint - color: "#fa74df" - - type: Item - sprite: Objects/Fun/spraycans.rsi - heldPrefix: clown - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "clown"} - False: {state: "clown_cap"} - -- type: entity - parent: PaintBase - id: FunnyPaintYellow - name: funny paint - description: A tin of funny paint, manufactured by Honk! Co. - components: - - type: Paint - color: "#d5e028" - - type: Item - sprite: Objects/Fun/spraycans.rsi - heldPrefix: clown - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - state: clown2_cap - layers: - - state: clown2_cap - map: ["enum.OpenableVisuals.Layer"] - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "clown2"} - False: {state: "clown2_cap"} - -#death paint -- type: entity - parent: PaintBase - id: DeathPaint - components: - - type: Paint - color: "#ff20c8" - - type: Item - sprite: Objects/Fun/spraycans.rsi - heldPrefix: spray - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - state: death_cap - layers: - - state: death_cap - map: ["enum.OpenableVisuals.Layer"] - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "death"} - False: {state: "death_cap"} - -- type: entity - parent: PaintBase - id: DeathPaintTwo - components: - - type: Paint - color: "#ff2020" - - type: Item - sprite: Objects/Fun/spraycans.rsi - heldPrefix: spray - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - state: death2_cap - layers: - - state: death2_cap - map: ["enum.OpenableVisuals.Layer"] - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "death2"} - False: {state: "death2_cap"} - -#Sprays - -#Blue -- type: entity - parent: PaintBase - id: SprayPaintBlue - suffix: Blue - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#5890f7" - - type: Paint - color: "#5890f7" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#5890f7"} - False: {state: "spray_cap_colors" , color: "#5890f7"} - -#Red -- type: entity - parent: PaintBase - id: SprayPaintRed - suffix: Red - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#ff3b3b" - - type: Paint - color: "#ff3b3b" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#ff3b3b"} - False: {state: "spray_cap_colors" , color: "#ff3b3b"} - -#Green -- type: entity - parent: PaintBase - id: SprayPaintGreen - suffix: Green - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#73f170" - - type: Paint - color: "#73f170" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#73f170"} - False: {state: "spray_cap_colors" , color: "#73f170"} - -#Black -- type: entity - parent: PaintBase - id: SprayPaintBlack - suffix: Black - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#3a3a3a" - - type: Paint - color: "#3a3a3a" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#3a3a3a"} - False: {state: "spray_cap_colors" , color: "#3a3a3a"} - -#Orange -- type: entity - parent: PaintBase - id: SprayPaintOrange - suffix: Orange - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#f6a44b" - - type: Paint - color: "#f6a44b" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#f6a44b"} - False: {state: "spray_cap_colors" , color: "#f6a44b"} - -#Purple -- type: entity - parent: PaintBase - id: SprayPaintPurple - suffix: Purple - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#c063f5" - - type: Paint - color: "#c063f5" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#c063f5"} - False: {state: "spray_cap_colors" , color: "#c063f5"} - -#White -- type: entity - parent: PaintBase - id: SprayPaintWhite - suffix: White - components: - - type: Sprite - sprite: Objects/Fun/spraycans.rsi - layers: - - state: spray - map: ["Base"] - - state: spray_cap_colors - map: ["enum.OpenableVisuals.Layer"] - color: "#f2f2f2" - - type: Paint - color: "#f2f2f2" - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "spray_colors" , color: "#f2f2f2"} - False: {state: "spray_cap_colors" , color: "#f2f2f2"} diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml index 2e0eec7a65..59d8ed1922 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml @@ -15,7 +15,6 @@ - type: Tag tags: - Sheet - - NoPaint - type: Material - type: Damageable damageContainer: Inorganic diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml index 3a887848bf..82b9f62837 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml @@ -15,7 +15,6 @@ tags: - Sheet - Metal - - NoPaint - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml index 9dc87a9117..dfb5133628 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -12,7 +12,6 @@ - type: Tag tags: - Sheet - - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible @@ -111,7 +110,6 @@ - type: Tag tags: - Sheet - - NoPaint - type: entity parent: SheetPlasma @@ -134,7 +132,6 @@ tags: - Plastic - Sheet - - NoPaint - type: Material - type: PhysicalComposition materialComposition: diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml index 2bfd409c30..d11df5d94e 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml @@ -12,7 +12,6 @@ - type: Tag tags: - RawMaterial - - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible diff --git a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml index 6f351ee9db..3b2e4cd8f1 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml @@ -15,9 +15,6 @@ Blunt: 5 - type: Stack count: 1 - - type: Tag - tags: - - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml index 56786057d5..5678de6baf 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml @@ -62,7 +62,6 @@ solution: soap - type: DeleteOnSolutionEmpty solution: soap - - type: PaintRemover - type: FlavorProfile flavors: - clean diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index c5ea359540..13c8b9cb25 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -78,9 +78,6 @@ malus: 0 - type: Reflect enabled: false - - type: Tag - tags: - - NoPaint - type: IgnitionSource temperature: 700 @@ -159,7 +156,6 @@ - type: Tag tags: - Write - - NoPaint - type: DisarmMalus malus: 0 diff --git a/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml b/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml index f82fe8b51b..7777153bba 100644 --- a/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml +++ b/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml @@ -31,9 +31,6 @@ sound: path: /Audio/Ambience/Objects/fireplace.ogg - type: AlwaysHot - - type: Tag - tags: - - NoPaint - type: entity id: LegionnaireBonfire diff --git a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml index a62af015f7..aaa0ed716d 100644 --- a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml +++ b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml @@ -25,9 +25,6 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - - type: Tag - tags: - - NoPaint - type: entity id: HoloFan diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml index 43b8bd197a..1ab1fd5b2f 100644 --- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml +++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml @@ -92,9 +92,6 @@ - type: GuideHelp guides: - Botany - - type: Tag - tags: - - NoPaint - type: entity parent: hydroponicsTray diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 8f0038915d..303a9b7c87 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -911,9 +911,6 @@ - type: Tag id: NoBlockAnchoring -- type: Tag - id: NoPaint - - type: Tag id: NozzleBackTank diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg b/Resources/Textures/Interface/VerbIcons/paint.svg deleted file mode 100644 index 78a56e3570..0000000000 --- a/Resources/Textures/Interface/VerbIcons/paint.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png deleted file mode 100644 index b7bd88245f..0000000000 Binary files a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png and /dev/null differ diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml deleted file mode 100644 index 5c43e23305..0000000000 --- a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml +++ /dev/null @@ -1,2 +0,0 @@ -sample: - filter: true diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png deleted file mode 100644 index d90d5b21b7..0000000000 Binary files a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png deleted file mode 100644 index 27b68e2cfe..0000000000 Binary files a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json b/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json index f34820cec4..0f883ee280 100644 --- a/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json @@ -58,6 +58,9 @@ { "name": "spray" }, + { + "name": "spray_cap" + }, { "name": "spray_cap_colors" }, @@ -67,22 +70,6 @@ { "name": "equipped-BELT", "directions": 4 - }, - { - "name": "clown-inhand-right", - "directions": 4 - }, - { - "name": "clown-inhand-left", - "directions": 4 - }, - { - "name": "spray-inhand-right", - "directions": 4 - }, - { - "name": "spray-inhand-left", - "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png deleted file mode 100644 index ad3ad959de..0000000000 Binary files a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png deleted file mode 100644 index 353e47c56f..0000000000 Binary files a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png new file mode 100644 index 0000000000..01d2d49bc0 Binary files /dev/null and b/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png differ