add an arabian lamp. (#27270)

* add an arabian lamp

* yoink solutionitemstatus since it already displays fuel remaining.

* add comments

* fix containerception?

* Yeah sure, pray- I mean rubable.

* fix one flame frame

* Fixed emag behavior

* me when lexidysia.

* limit capacity of entitystorage and add some more comments about why it be the way it do.

* test fake?

* Holy fuck its a bug fix now? Based.
This commit is contained in:
IProduceWidgets 2024-07-21 03:24:28 -04:00 committed by deltanedas
parent 286adf11b8
commit 708e1a9f36
11 changed files with 260 additions and 1 deletions

View File

@ -1,16 +1,19 @@
prayer-verbs-subtle-message = Subtle Message
prayer-verbs-pray = Pray
prayer-verbs-call = Call
prayer-verbs-rub = Rub
prayer-chat-notify-pray = PRAYER
prayer-chat-notify-honkmother = HONKMOTHER
prayer-chat-notify-centcom = CENTCOM
prayer-chat-notify-syndicate = SYNDICATE
prayer-chat-notify-lamp = LAMP
prayer-popup-subtle-default = You hear a voice in your head...
prayer-popup-notify-honkmother-sent = You left a voicemail message for the Honkmother...
prayer-popup-notify-centcom-sent = You left a voicemail message for Central Command...
prayer-popup-notify-syndicate-sent = You left a voicemail message for Syndicate High Command...
prayer-popup-notify-lamp-sent = Your thoughts seem to echo...
prayer-popup-notify-pray-sent = Your message has been sent to the gods...
prayer-popup-notify-pray-locked = You don't feel worthy enough...
prayer-popup-notify-pray-ui-message = Message

View File

@ -10731,7 +10731,7 @@ entities:
rot: -1.5707963267948966 rad
pos: 52.5,14.5
parent: 1653
- proto: MagicalLamp
- proto: ArabianLamp
entities:
- uid: 1204
components:

View File

@ -0,0 +1,139 @@
- type: entity
name: lamp
parent: BaseItem
id: ArabianLamp
description: Why the heck won't this piece of junk open!?
components:
- type: Appearance
- type: AccessReader
access: [ [ "CentralCommand" ] ]
breakOnEmag: false
- type: Lock
lockOnClick: false
breakOnEmag: false
- type: EntityStorage
capacity: 1 # Its smol.
itemCanStoreMobs: false # just leaving this here explicitly since I know at some point someone will want to use this to hold a mob. This also prevents it from becoming His Grace.
# - type: StorageFill
# contents:
# - id: PuddleSparkle # Ha! Cute. Unfortunately it despawns before the container is likely to open.
- type: ContainerContainer
containers:
entity_storage: !type:Container
- type: Item
size: Normal
heldPrefix: lamp
sprite: Objects/Misc/arabianlamp.rsi
inhandVisuals:
left:
- state: inhand-left
right:
- state: inhand-right
- type: MeleeWeapon
wideAnimationRotation: 180
damage:
types:
Blunt: 6
- type: ItemToggleMeleeWeapon
activatedDamage:
types:
Blunt: 6
Heat: 3
activatedSoundOnHit:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -10
activatedSoundOnHitNoDamage:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -12
deactivatedSoundOnHitNoDamage:
collection: MetalThud
- type: ItemToggle
predictable: false
soundActivate:
collection: lighterOnSounds
soundDeactivate:
path: /Audio/Items/candle_blowing.ogg
params:
variation: 0.05
volume: 10
- type: ItemToggleHot
- type: Sprite
sprite: Objects/Misc/arabianlamp.rsi
layers:
- state: lamp
map: [ "enum.StorageVisualLayers.Base" ]
- state: lamptop
map: ["enum.StorageVisualLayers.Door"]
- state: flame
visible: false
shader: unshaded
map: ["enum.ToggleVisuals.Layer"]
- type: GenericVisualizer
visuals:
enum.ToggleVisuals.Toggled:
enum.ToggleVisuals.Layer:
True: { visible: true }
False: { visible: false }
- type: EntityStorageVisuals
stateBaseClosed: lamp
stateDoorOpen: lamp
stateDoorClosed: lamptop
- type: ToggleableLightVisuals
spriteLayer: flame
inhandVisuals:
left:
- state: inhand-left-flame
shader: unshaded
right:
- state: inhand-right-flame
shader: unshaded
- type: SolutionContainerManager
solutions:
Welder:
reagents:
- ReagentId: WeldingFuel
Quantity: 25
maxVol: 25
- type: SolutionTransfer
transferAmount: 5
canChangeTransferAmount: false
- type: Spillable
solution: Welder
- type: DrawableSolution
solution: Welder
- type: RefillableSolution
solution: Welder
- type: DrainableSolution
solution: Welder
- type: ExaminableSolution
solution: Welder
- type: SolutionRegeneration
solution: Welder
generated:
reagents:
- ReagentId: WeldingFuel
Quantity: 0.1
duration: 5
- type: EmitSoundOnLand
sound:
path: /Audio/Items/welder_drop.ogg
- type: Welder
fuelConsumption: 0.05
fuelLitCost: 0.05
tankSafe: true
- type: PointLight
enabled: false
netsync: false
radius: 5
color: orange
- type: StaticPrice
price: 1500
- type: Prayable
sentMessage: prayer-popup-notify-lamp-sent
notificationPrefix: prayer-chat-notify-lamp
verb: prayer-verbs-rub
verbImage: null

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

View File

@ -0,0 +1,117 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "made by IProduceWidgets, flame sprite by TheShuEd",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "lamp",
"directions": 4
},
{
"name": "lamptop",
"directions": 4
},
{
"name": "flame",
"directions": 4,
"delays": [
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "inhand-left-flame",
"directions": 4,
"delays": [
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "inhand-right-flame",
"directions": 4,
"delays": [
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
],
[
0.1,
0.1,
0.1,
0.1
]
]
}
]
}