From aa713ea7e6428a515bc69a8d40acde1105b78f39 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sat, 4 Nov 2023 08:53:51 +0300 Subject: [PATCH] Candles (#21087) Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: ElectroJr --- .../ToggleableLightVisualsComponent.cs | 2 +- .../ToggleableLightVisualsSystem.cs | 2 +- .../Atmos/Components/FlammableComponent.cs | 6 + .../Atmos/EntitySystems/FlammableSystem.cs | 49 +- .../ExtinguishOnInteractComponent.cs | 29 ++ Resources/Audio/Items/attributions.yml | 7 +- Resources/Audio/Items/candle_blowing.ogg | Bin 0 -> 6762 bytes .../extinguish-on-interact-component.ftl | 1 + .../components/expendable-light-component.ftl | 2 +- .../Catalog/Fills/Boxes/general.yml | 52 ++ .../VendingMachines/Inventories/chapel.yml | 2 + .../Entities/Objects/Misc/candles.yml | 487 ++++++++++++++++++ .../Entities/Objects/Misc/torch.yml | 2 +- .../Objects/Misc/candles.rsi/candle-big.png | Bin 0 -> 217 bytes .../Objects/Misc/candles.rsi/candle-small.png | Bin 0 -> 184 bytes .../Objects/Misc/candles.rsi/fire-big.png | Bin 0 -> 292 bytes .../Objects/Misc/candles.rsi/fire-small.png | Bin 0 -> 299 bytes .../Misc/candles.rsi/inhand-left-flame.png | Bin 0 -> 212 bytes .../Objects/Misc/candles.rsi/inhand-left.png | Bin 0 -> 288 bytes .../Misc/candles.rsi/inhand-right-flame.png | Bin 0 -> 215 bytes .../Objects/Misc/candles.rsi/inhand-right.png | Bin 0 -> 287 bytes .../Objects/Misc/candles.rsi/meta.json | 97 ++++ .../Objects/Misc/candles.rsi/stand-big.png | Bin 0 -> 308 bytes .../Objects/Misc/candles.rsi/stand-small.png | Bin 0 -> 267 bytes .../Objects/Storage/boxes.rsi/candle.png | Bin 0 -> 2785 bytes .../Objects/Storage/boxes.rsi/meta.json | 5 +- 26 files changed, 736 insertions(+), 7 deletions(-) create mode 100644 Content.Shared/Atmos/Components/ExtinguishOnInteractComponent.cs create mode 100644 Resources/Audio/Items/candle_blowing.ogg create mode 100644 Resources/Locale/en-US/candle/extinguish-on-interact-component.ftl create mode 100644 Resources/Prototypes/Entities/Objects/Misc/candles.yml create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/candle-big.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/candle-small.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/fire-big.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/fire-small.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/inhand-left-flame.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/inhand-right-flame.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/meta.json create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/stand-big.png create mode 100644 Resources/Textures/Objects/Misc/candles.rsi/stand-small.png create mode 100644 Resources/Textures/Objects/Storage/boxes.rsi/candle.png diff --git a/Content.Client/Toggleable/ToggleableLightVisualsComponent.cs b/Content.Client/Toggleable/ToggleableLightVisualsComponent.cs index 8acdef1e05..c42d5a7faa 100644 --- a/Content.Client/Toggleable/ToggleableLightVisualsComponent.cs +++ b/Content.Client/Toggleable/ToggleableLightVisualsComponent.cs @@ -16,7 +16,7 @@ public sealed partial class ToggleableLightVisualsComponent : Component /// Sprite layer that will have its visibility toggled when this item is toggled. /// [DataField("spriteLayer")] - public string SpriteLayer = "light"; + public string? SpriteLayer = "light"; /// /// Layers to add to the sprite of the player that is holding this entity (while the component is toggled on). diff --git a/Content.Client/Toggleable/ToggleableLightVisualsSystem.cs b/Content.Client/Toggleable/ToggleableLightVisualsSystem.cs index e3c17a4fd5..3507c786b9 100644 --- a/Content.Client/Toggleable/ToggleableLightVisualsSystem.cs +++ b/Content.Client/Toggleable/ToggleableLightVisualsSystem.cs @@ -30,7 +30,7 @@ public sealed class ToggleableLightVisualsSystem : VisualizerSystem(uid, ToggleableLightVisuals.Color, out var color, args.Component); // Update the item's sprite - if (args.Sprite != null && args.Sprite.LayerMapTryGet(component.SpriteLayer, out var layer)) + if (args.Sprite != null && component.SpriteLayer != null && args.Sprite.LayerMapTryGet(component.SpriteLayer, out var layer)) { args.Sprite.LayerSetVisible(layer, enabled); if (modulate) diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index 9891c55d4a..94bc78318c 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -56,5 +56,11 @@ namespace Content.Server.Atmos.Components [ViewVariables(VVAccess.ReadWrite)] [DataField("firestacksOnIgnite")] public float FirestacksOnIgnite = 2.0f; + + /// + /// Determines how quickly the object will fade out. With positive values, the object will flare up instead of going out. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float FirestackFade = -0.1f; } } diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index be3e5cd934..716c5b88e5 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -1,24 +1,30 @@ using Content.Server.Administration.Logs; using Content.Server.Atmos.Components; +using Content.Server.Explosion.EntitySystems; using Content.Server.Stunnable; using Content.Server.Temperature.Components; using Content.Server.Temperature.Systems; using Content.Shared.ActionBlocker; using Content.Shared.Alert; using Content.Shared.Atmos; +using Content.Shared.Atmos.Components; using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; using Content.Shared.Physics; using Content.Shared.Popups; using Content.Shared.Rejuvenate; using Content.Shared.Temperature; using Content.Shared.Throwing; +using Content.Shared.Timing; +using Content.Shared.Toggleable; using Content.Shared.Weapons.Melee.Events; using Robust.Server.GameObjects; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; +using Robust.Shared.Random; namespace Content.Server.Atmos.EntitySystems { @@ -36,6 +42,9 @@ namespace Content.Server.Atmos.EntitySystems [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly UseDelaySystem _useDelay = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly IRobustRandom _random = default!; public const float MinimumFireStacks = -10f; public const float MaximumFireStacks = 20f; @@ -63,6 +72,9 @@ namespace Content.Server.Atmos.EntitySystems SubscribeLocalEvent(OnIgniteLand); SubscribeLocalEvent(OnMeleeHit); + + SubscribeLocalEvent(OnExtinguishUsingInHand); + SubscribeLocalEvent(OnExtinguishActivateInWorld); } private void OnMeleeHit(EntityUid uid, IgniteOnMeleeHitComponent component, MeleeHitEvent args) @@ -128,6 +140,35 @@ namespace Content.Server.Atmos.EntitySystems args.Handled = true; } + private void OnExtinguishActivateInWorld(EntityUid uid, ExtinguishOnInteractComponent component, ActivateInWorldEvent args) + { + TryHandExtinguish(uid, component); + } + + private void OnExtinguishUsingInHand(EntityUid uid, ExtinguishOnInteractComponent component, UseInHandEvent args) + { + TryHandExtinguish(uid, component); + } + + private void TryHandExtinguish(EntityUid uid, ExtinguishOnInteractComponent component) + { + if (!TryComp(uid, out FlammableComponent? flammable)) + return; + if (!flammable.OnFire) + return; + if (TryComp(uid, out UseDelayComponent? useDelay) && _useDelay.ActiveDelay(uid, useDelay)) + return; + + _useDelay.BeginDelay(uid); + _audio.PlayPvs(component.ExtinguishAttemptSound, uid); + if (_random.Prob(component.Probability)) + { + AdjustFireStacks(uid, component.StackDelta, flammable); + } else + { + _popup.PopupEntity(Loc.GetString(component.ExtinguishFailed), uid); + } + } private void OnCollide(EntityUid uid, FlammableComponent flammable, ref StartCollideEvent args) { var otherUid = args.OtherEntity; @@ -208,6 +249,12 @@ namespace Content.Server.Atmos.EntitySystems _appearance.SetData(uid, FireVisuals.OnFire, flammable.OnFire, appearance); _appearance.SetData(uid, FireVisuals.FireStacks, flammable.FireStacks, appearance); + + // Also enable toggleable-light visuals + // This is intended so that matches & candles can re-use code for un-shaded layers on in-hand sprites. + // However, this could cause conflicts if something is ACTUALLY both a toggleable light and flammable. + // if that ever happens, then fire visuals will need to implement their own in-hand sprite management. + _appearance.SetData(uid, ToggleableLightVisuals.Enabled, true, appearance); } public void AdjustFireStacks(EntityUid uid, float relativeFireStacks, FlammableComponent? flammable = null) @@ -338,7 +385,7 @@ namespace Content.Server.Atmos.EntitySystems _damageableSystem.TryChangeDamage(uid, flammable.Damage * damageScale); - AdjustFireStacks(uid, -0.1f * (flammable.Resisting ? 10f : 1f), flammable); + AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable); } else { diff --git a/Content.Shared/Atmos/Components/ExtinguishOnInteractComponent.cs b/Content.Shared/Atmos/Components/ExtinguishOnInteractComponent.cs new file mode 100644 index 0000000000..02c1e3eb26 --- /dev/null +++ b/Content.Shared/Atmos/Components/ExtinguishOnInteractComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Audio; + +namespace Content.Shared.Atmos.Components; +/// +/// Allows you to extinguish an object by interacting with it +/// +[RegisterComponent] +public sealed partial class ExtinguishOnInteractComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public SoundSpecifier? ExtinguishAttemptSound = new SoundPathSpecifier("/Audio/Items/candle_blowing.ogg"); + + /// + /// Extinguishing chance + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float Probability = 0.9f; + + /// + /// Number of fire stacks to be changed on successful interaction. + /// + // With positive values, the interaction will conversely fan the fire, + // which is useful for any blacksmithing mechs + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float StackDelta = -5.0f; + + [DataField] + public LocId ExtinguishFailed = "candle-extinguish-failed"; +} diff --git a/Resources/Audio/Items/attributions.yml b/Resources/Audio/Items/attributions.yml index b69704ce69..cb945bd5ca 100644 --- a/Resources/Audio/Items/attributions.yml +++ b/Resources/Audio/Items/attributions.yml @@ -66,4 +66,9 @@ - files: ["bow_pull.ogg"] license: "CC-BY-3.0" copyright: "User jzdnvdoosj on freesound.org. Converted to ogg by mirrorcult" - source: "https://freesound.org/people/jzdnvdoosj/sounds/626262/" \ No newline at end of file + source: "https://freesound.org/people/jzdnvdoosj/sounds/626262/" + +- files: ["candle_blowing.ogg"] + license: "CC-BY-NC-3.0" + copyright: "Created by Bee09, converted to OGG, cropped and converted to mono by TheShuEd" + source: "https://freesound.org/people/Bee09/sounds/326561/" \ No newline at end of file diff --git a/Resources/Audio/Items/candle_blowing.ogg b/Resources/Audio/Items/candle_blowing.ogg new file mode 100644 index 0000000000000000000000000000000000000000..18d23323aa370a9e0f62df5e5023b4dbad9be15e GIT binary patch literal 6762 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 E0ej7@9{>OV literal 0 HcmV?d00001 diff --git a/Resources/Locale/en-US/candle/extinguish-on-interact-component.ftl b/Resources/Locale/en-US/candle/extinguish-on-interact-component.ftl new file mode 100644 index 0000000000..7db519c870 --- /dev/null +++ b/Resources/Locale/en-US/candle/extinguish-on-interact-component.ftl @@ -0,0 +1 @@ +candle-extinguish-failed = The flame flickers, but it doesn't go out \ No newline at end of file diff --git a/Resources/Locale/en-US/light/components/expendable-light-component.ftl b/Resources/Locale/en-US/light/components/expendable-light-component.ftl index 7b68f5dc90..4cd07599b9 100644 --- a/Resources/Locale/en-US/light/components/expendable-light-component.ftl +++ b/Resources/Locale/en-US/light/components/expendable-light-component.ftl @@ -11,4 +11,4 @@ expendable-light-spent-red-glowstick-name = spent red glowstick expendable-light-spent-purple-glowstick-name = spent purple glowstick expendable-light-spent-yellow-glowstick-name = spent purple glowstick expendable-light-spent-blue-glowstick-name = spent blue glowstick -expendable-light-spent-glowstick-desc = It looks like this glowstick has stopped glowing. How tragic. +expendable-light-spent-glowstick-desc = It looks like this glowstick has stopped glowing. How tragic. \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index f86ba191e6..5daaf8d748 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -409,6 +409,58 @@ - type: RadiationBlockingContainer resistance: 2 +- type: entity + name: candle box + parent: BoxCardboard + id: BoxCandle + components: + - type: Item + size: 30 + - type: Sprite + layers: + - state: box + - state: candle + - type: Storage + maxTotalWeight: 30 + - type: StorageFill + contents: + - id: Candle + amount: 3 + - id: CandleBlue + amount: 3 + - id: CandleRed + amount: 3 + - id: CandleGreen + amount: 3 + - id: CandlePurple + amount: 3 + +- type: entity + name: small candle box + parent: BoxCardboard + id: BoxCandleSmall + components: + - type: Item + size: 30 + - type: Sprite + layers: + - state: box + - state: candle + - type: Storage + maxTotalWeight: 30 + - type: StorageFill + contents: + - id: CandleSmall + amount: 5 + - id: CandleBlueSmall + amount: 5 + - id: CandleRedSmall + amount: 5 + - id: CandleGreenSmall + amount: 5 + - id: CandlePurpleSmall + amount: 5 + - type: entity name: darts box parent: BoxCardboard diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml index c90a5bce14..aee153910d 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chapel.yml @@ -16,6 +16,8 @@ ClothingOuterPlagueSuit: 1 ClothingMaskPlague: 1 ClothingHeadsetService: 2 + BoxCandle: 2 + BoxCandleSmall: 2 emaggedInventory: ClothingOuterArmorCult: 1 ClothingHeadHelmetCult: 1 diff --git a/Resources/Prototypes/Entities/Objects/Misc/candles.yml b/Resources/Prototypes/Entities/Objects/Misc/candles.yml new file mode 100644 index 0000000000..d86b20caf6 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/candles.yml @@ -0,0 +1,487 @@ +- type: entity + name: candle + parent: BaseItem + id: Candle + description: A thin wick threaded through fat. + components: + - type: Sprite + noRot: true + sprite: Objects/Misc/candles.rsi + layers: + - state: candle-big + color: "#decb8e" + - type: Item + size: 2 + - type: Appearance + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + - type: ExtinguishOnInteract + extinguishAttemptSound: + path: /Audio/Items/candle_blowing.ogg + params: + variation: 0.05 + volume: 10 + - type: UseDelay + - type: Flammable + fireSpread: false + canResistFire: false + alwaysCombustible: true + canExtinguish: true + firestacksOnIgnite: 3.0 + firestackFade: -0.01 + damage: + types: + Heat: 0.1 + - type: FireVisuals + sprite: Objects/Misc/candles.rsi + normalState: fire-big + - type: ToggleableLightVisuals + spriteLayer: null + inhandVisuals: + left: + - state: inhand-left-flame + shader: unshaded + right: + - state: inhand-right-flame + shader: unshaded + - type: Damageable + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + name: red candle + parent: Candle + id: CandleRed + components: + - type: Sprite + layers: + - state: candle-big + color: "#a12349" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a12349" + - state: inhand-left-flame + right: + - state: inhand-right + color: "#a12349" + +- type: entity + name: blue candle + parent: Candle + id: CandleBlue + components: + - type: Sprite + layers: + - state: candle-big + color: "#425d7d" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#425d7d" + right: + - state: inhand-right + color: "#425d7d" + +- type: entity + name: black candle + parent: Candle + id: CandleBlack + components: + - type: Sprite + layers: + - state: candle-big + color: "#1b1724" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#1b1724" + right: + - state: inhand-right + color: "#1b1724" + +- type: entity + name: green candle + parent: Candle + id: CandleGreen + components: + - type: Sprite + layers: + - state: candle-big + color: "#5d997e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#5d997e" + right: + - state: inhand-right + color: "#5d997e" + +- type: entity + name: purple candle + parent: Candle + id: CandlePurple + components: + - type: Sprite + layers: + - state: candle-big + color: "#984aa1" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#984aa1" + right: + - state: inhand-right + color: "#984aa1" + + +- type: entity + name: small candle + parent: Candle + id: CandleSmall + components: + - type: Item + size: 1 + - type: Sprite + layers: + - state: candle-small + color: "#e2ca90" + - type: FireVisuals + normalState: fire-small + - type: Flammable + firestacksOnIgnite: 2.0 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:SpawnEntitiesBehavior + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + name: small red candle + parent: CandleSmall + id: CandleRedSmall + components: + - type: Sprite + layers: + - state: candle-small + color: "#a12349" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a12349" + right: + - state: inhand-right + color: "#a12349" + +- type: entity + name: small blue candle + parent: CandleSmall + id: CandleBlueSmall + components: + - type: Sprite + layers: + - state: candle-small + color: "#425d7d" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#425d7d" + right: + - state: inhand-right + color: "#425d7d" + +- type: entity + name: small black candle + parent: CandleSmall + id: CandleBlackSmall + components: + - type: Sprite + layers: + - state: candle-small + color: "#1b1724" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#1b1724" + right: + - state: inhand-right + color: "#1b1724" + +- type: entity + name: small green candle + parent: CandleSmall + id: CandleGreenSmall + components: + - type: Sprite + layers: + - state: candle-small + color: "#5d997e" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#5d997e" + right: + - state: inhand-right + color: "#5d997e" + +- type: entity + name: small purple candle + parent: CandleSmall + id: CandlePurpleSmall + components: + - type: Sprite + layers: + - state: candle-small + color: "#984aa1" + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#984aa1" + right: + - state: inhand-right + color: "#984aa1" + +#Purely decorative candles for mappers. Do not have any functionality. + +- type: entity + name: magic candle + description: It's either magic or high tech, but this candle never goes out. On the other hand, its flame is quite cold. + parent: BaseItem + suffix: Decorative + id: CandleInfinite + components: + - type: Sprite + noRot: true + sprite: Objects/Misc/candles.rsi + layers: + - state: candle-big + color: "#decb8e" + - state: fire-big + shader: unshaded + - type: PointLight + color: "#e39c40" + radius: 2.5 + power: 10 + +- type: entity + name: magic red candle + parent: CandleInfinite + id: CandleRedInfinite + components: + - type: Sprite + layers: + - state: candle-big + color: "#a12349" + - state: fire-big + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a12349" + right: + - state: inhand-right + color: "#a12349" + +- type: entity + name: magic blue candle + parent: CandleInfinite + id: CandleBlueInfinite + components: + - type: Sprite + layers: + - state: candle-big + color: "#425d7d" + - state: fire-big + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#425d7d" + right: + - state: inhand-right + color: "#425d7d" + +- type: entity + name: magic black candle + parent: CandleInfinite + id: CandleBlackInfinite + components: + - type: Sprite + layers: + - state: candle-big + color: "#1b1724" + - state: fire-big + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#1b1724" + right: + - state: inhand-right + color: "#1b1724" + +- type: entity + name: magic green candle + parent: CandleInfinite + id: CandleGreenInfinite + components: + - type: Sprite + layers: + - state: candle-big + color: "#5d997e" + - state: fire-big + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#5d997e" + right: + - state: inhand-right + color: "#5d997e" + +- type: entity + name: magic purple candle + parent: CandleInfinite + id: CandlePurpleInfinite + components: + - type: Sprite + layers: + - state: candle-big + color: "#984aa1" + - state: fire-big + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#984aa1" + right: + - state: inhand-right + color: "#984aa1" + +- type: entity + name: small magic red candle + parent: CandleInfinite + id: CandleRedSmallInfinite + components: + - type: Sprite + layers: + - state: candle-small + color: "#a12349" + - state: fire-small + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#a12349" + right: + - state: inhand-right + color: "#a12349" + +- type: entity + name: small magic blue candle + parent: CandleInfinite + id: CandleBlueSmallInfinite + components: + - type: Sprite + layers: + - state: candle-small + color: "#425d7d" + - state: fire-small + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#425d7d" + right: + - state: inhand-right + color: "#425d7d" + +- type: entity + name: small magic black candle + parent: CandleInfinite + id: CandleBlackSmallInfinite + components: + - type: Sprite + layers: + - state: candle-small + color: "#1b1724" + - state: fire-small + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#1b1724" + right: + - state: inhand-right + color: "#1b1724" + +- type: entity + name: small magic green candle + parent: CandleInfinite + id: CandleGreenSmallInfinite + components: + - type: Sprite + layers: + - state: candle-small + color: "#5d997e" + - state: fire-small + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#5d997e" + right: + - state: inhand-right + color: "#5d997e" + +- type: entity + name: small magic purple candle + parent: CandleInfinite + id: CandlePurpleSmallInfinite + components: + - type: Sprite + layers: + - state: candle-small + color: "#984aa1" + - state: fire-small + shader: unshaded + - type: Item + inhandVisuals: + left: + - state: inhand-left + color: "#984aa1" + right: + - state: inhand-right + color: "#984aa1" diff --git a/Resources/Prototypes/Entities/Objects/Misc/torch.yml b/Resources/Prototypes/Entities/Objects/Misc/torch.yml index f408d0d289..3ee1a7a4cd 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/torch.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/torch.yml @@ -76,4 +76,4 @@ endValue: 1.0 - type: Tag tags: - - Torch \ No newline at end of file + - Torch diff --git a/Resources/Textures/Objects/Misc/candles.rsi/candle-big.png b/Resources/Textures/Objects/Misc/candles.rsi/candle-big.png new file mode 100644 index 0000000000000000000000000000000000000000..56fbd861e686b742694b70b1850542d099a852c8 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}lRaG=Ln2z= zUa{nAFc4t9pdqKKzDd+yecQYfZh_q$OAk7IdaGjQm=+`O+%&N(#qQ=5A*UFJ?B4Tc z{g#vOWbP0l+XkKBhgf1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/candle-small.png b/Resources/Textures/Objects/Misc/candles.rsi/candle-small.png new file mode 100644 index 0000000000000000000000000000000000000000..441bac1f0dc31fcfe6c4207d6d453f288a535b68 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}MV>B>ArY-_ zFK^^(P!KrwQMpRwzD-oMlDM-hkNaW8J#8FWUzIfX-7mUaSTE4Y!0_Pplpvj(?^RBx zM*p;m7jI5YdnS=n>Y&f*u~R_z-HfR&{tJ4SPvOpde4AyCpwJ=)^WV2?Y#plp2p+cB g`m>3F;e)jG+gKwzjVn*nfVMMuy85}Sb4q9e0Q?a__y7O^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/fire-big.png b/Resources/Textures/Objects/Misc/candles.rsi/fire-big.png new file mode 100644 index 0000000000000000000000000000000000000000..ead6179f9a3c5e9264770089df4ff0c94c3b13cc GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|?s>X6hE&XX zdut* znqSorjNfw3m2K;1<&S&3M1A>4M-5EykF*ozLHjoVoOc+3qjPQ6M4KOVEWeBYb3|KhJPoPYLCVCkV>)+=7FnV+ERFeyl8$+F_pA}6QU z`V~&d+qmP{AxVWTwLffgHk(+ab}cQu^tWbf)(!m!_7Q*QIK7nwx(EUq{KJjq4ZfG3 z`>b!-ckLAWnOf)D;_~iq8(hxTG|W18ip}F0)3e_-U8SEGceySt+!VK9Ys1sL$2ED} nx$^IxufAjvI+q!0)V*WO3ywy-4w7e{1`_df^>bP0l+XkK$yhsUHx3vIVCg!0E7-mp#T5? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/candles.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9bacc5090827a01cf1effdfc845b336411ea6d GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Zh5*mhE&XX zdrOh;kb^+$L-u7WUn^EE-OGA%-qLOC2fi>^=rt;FxbQo~25;36Vquy!b3)_)&vS3? zTXS2T5vZTx&6eEgeYI`nIks)nZYv%+@9oFfGktU4@43e_iuD*>9tj=zYEsox`ml_7 zQOkynGSiCnKHFqRig^ZwhOT-Y6??sQ%X7o!@2f9=-kY>fVQI*+%t*1zGJYpEg`2Gcum0X$)$ma#gke%F eBQsF>|95GpK>b6Mw<&;$U(>~5j} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/inhand-right-flame.png b/Resources/Textures/Objects/Misc/candles.rsi/inhand-right-flame.png new file mode 100644 index 0000000000000000000000000000000000000000..3703ab0fc5e4409a0efde9a8e9a7278c7092b45c GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dIz4awdAZIEGZr zd3(o^x5Yq!^#U8?iAODhE{O@MYnrZZ^k}fQP?*dl$?<;f>@)tKtKUpv0_tI4Si0ta z;@NWtOlMtKxox+_F+0{Z!aKJIFiv}4VRM%8biUWzc>XNUnfgnj7~crMq!>FVdQ&MBb@01(GYD*ylh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/candles.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..4260bb48969c8ddc61202db3c8a3ffafb7c1eb88 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|ZhE>nhE&XX zdut+bU=WAn=`_7)R zVw~o@VwG0K`^En^I=^ZBZug~jeWHYlXXG@^^Tk(7W&b`Cw|wq&+2rC(ck{<{xMQz- zPU>28;f52~8W2%`IICUZQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/candles.rsi/meta.json b/Resources/Textures/Objects/Misc/candles.rsi/meta.json new file mode 100644 index 0000000000..9432ffae8b --- /dev/null +++ b/Resources/Textures/Objects/Misc/candles.rsi/meta.json @@ -0,0 +1,97 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "stand-small" + }, + { + "name": "stand-big" + }, + { + "name": "candle-small" + }, + { + "name": "candle-big" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "fire-small", + "delays": [ + [ + 0.15, + 0.15, + 0.15, + 0.15 + ] + ] + }, + { + "name": "fire-big", + "delays": [ + [ + 0.15, + 0.15, + 0.15, + 0.15 + ] + ] + }, + { + "name": "inhand-left-flame", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ] + ] + }, + { + "name": "inhand-right-flame", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ], + [ + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Misc/candles.rsi/stand-big.png b/Resources/Textures/Objects/Misc/candles.rsi/stand-big.png new file mode 100644 index 0000000000000000000000000000000000000000..486a18086c80912915dda415be2fdfe2c58ffe5d GIT binary patch literal 308 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json index 1af32510df..07c91cafb5 100644 --- a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json +++ b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/cc65477c04f7403ca8a457bd5bae69a01abadbf0, encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, darts made by TheShuEd (github) for ss14", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/cc65477c04f7403ca8a457bd5bae69a01abadbf0, encryptokey was taken from Baystation12 at https://github.com/infinitystation/Baystation12/blob/073f678cdce92edb8fcd55f9ffc9f0523bf31506/icons/obj/radio.dmi and modified by lapatison. boxwidetoy, shelltoy, swab, flare, inflatable, trashbag, magazine, holo and forensic created by potato1234x (github) for ss14 based on toys.rsi, mouth_swab.rsi, flare.rsi, inflatable_wall.rsi, trashbag.rsi, caseless_pistol_mag.rsi, guardians.rsi and bureaucracy.rsi respectively, candle and darts created by TheShuEd for ss14", "size": { "x": 32, "y": 32 @@ -197,6 +197,9 @@ { "name": "ziptie" }, + { + "name": "candle" + }, { "name": "darts" }