Add a lantern and a radiating light component (#1571)

* added a lantern

* Add A Lantern with radiating light

* Update meta.json

Added copyright information for lantern.rsi
This commit is contained in:
SoulSloth
2020-08-09 15:57:42 -04:00
committed by GitHub
parent 81e2dde7f5
commit 52a01fff32
9 changed files with 174 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
using System;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Client.GameObjects.Components.Animations;
using Robust.Shared.Animations;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
namespace Content.Client.GameObjects.Components
{
[RegisterComponent]
public class RadiatingLightComponent : Component
{
public override string Name => "RadiatingLight";
protected override void Startup()
{
base.Startup();
var animation = new Animation
{
Length = TimeSpan.FromSeconds(4),
AnimationTracks =
{
new AnimationTrackComponentProperty
{
ComponentType = typeof(PointLightComponent),
InterpolationMode = AnimationInterpolationMode.Linear,
Property = nameof(PointLightComponent.Radius),
KeyFrames =
{
new AnimationTrackProperty.KeyFrame(3.0f, 0),
new AnimationTrackProperty.KeyFrame(2.0f, 1),
new AnimationTrackProperty.KeyFrame(3.0f, 2)
}
}
}
};
var playerComponent = Owner.EnsureComponent<AnimationPlayerComponent>();
playerComponent.Play(animation, "emergency");
playerComponent.AnimationCompleted += s => playerComponent.Play(animation, s);
}
}
}

View File

@@ -0,0 +1,27 @@
- type: entity
name: lantern
parent: BaseItem
id: lantern
description: The holy light guides the way
components:
- type: HandheldLight
- type: Sprite
sprite: Objects/Tools/lantern.rsi
layers:
- state: lantern
- state: lantern-on
shader: unshaded
visible: false
- type: Icon
sprite: Objects/Tools/lantern.rsi
state: lantern
- type: Item
sprite: Objects/Tools/lantern.rsi
HeldPrefix: off
- type: PointLight
enabled: false
radius: 3
energy: 2.5
color: "#FFC458"
- type: RadiatingLight
- type: LoopingSound

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

View File

@@ -0,0 +1,101 @@
{
"version": 1,
"license": "CC BY-SA 3.0",
"copyright": "Taken from https://github.com/tgstation/tgstation at commit 9bebd81ae0b0a7f952b59886a765c681205de31f",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "lantern",
"directions": 1,
"delays": [
[
1.0
]
]
},
{
"name": "lantern-on",
"directions": 1,
"delays": [
[
1.0
]
]
},
{
"name": "off-inhand-left",
"directions": 4,
"delays": [
[
1
],
[
1
],
[
1
],
[
1
]
]
},
{
"name": "off-inhand-right",
"directions": 4,
"delays": [
[
1
],
[
1
],
[
1
],
[
1
]
]
},
{
"name": "on-inhand-left",
"directions": 4,
"delays": [
[
1
],
[
1
],
[
1
],
[
1
]
]
},
{
"name": "on-inhand-right",
"directions": 4,
"delays": [
[
1
],
[
1
],
[
1
],
[
1
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B