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 0000000000..18d23323aa Binary files /dev/null and b/Resources/Audio/Items/candle_blowing.ogg differ 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 0000000000..56fbd861e6 Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/candle-big.png differ 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 0000000000..441bac1f0d Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/candle-small.png differ 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 0000000000..ead6179f9a Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/fire-big.png differ diff --git a/Resources/Textures/Objects/Misc/candles.rsi/fire-small.png b/Resources/Textures/Objects/Misc/candles.rsi/fire-small.png new file mode 100644 index 0000000000..8d6e26189a Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/fire-small.png differ diff --git a/Resources/Textures/Objects/Misc/candles.rsi/inhand-left-flame.png b/Resources/Textures/Objects/Misc/candles.rsi/inhand-left-flame.png new file mode 100644 index 0000000000..b11db57c7d Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/inhand-left-flame.png differ 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 0000000000..4c9bacc509 Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/inhand-left.png differ 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 0000000000..3703ab0fc5 Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/inhand-right-flame.png differ 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 0000000000..4260bb4896 Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/inhand-right.png differ 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 0000000000..486a18086c Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/stand-big.png differ diff --git a/Resources/Textures/Objects/Misc/candles.rsi/stand-small.png b/Resources/Textures/Objects/Misc/candles.rsi/stand-small.png new file mode 100644 index 0000000000..28629a09b6 Binary files /dev/null and b/Resources/Textures/Objects/Misc/candles.rsi/stand-small.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/candle.png b/Resources/Textures/Objects/Storage/boxes.rsi/candle.png new file mode 100644 index 0000000000..05bb8437c0 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/candle.png differ 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" }