Merge remote-tracking branch 'origin/master'
|
|
@ -47,13 +47,13 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls
|
|||
//Sunrise-Start
|
||||
private string GetLocalizedName(string displayName)
|
||||
{
|
||||
var locationKey = $"location-{Regex.Replace(displayName, @"[^\s]", string.Empty).Replace(" ", "-").ToLower()}";
|
||||
var locationKey = $"location-{Regex.Replace(displayName, @"[^a-zA-Zа-яА-Я0-9\s]", string.Empty).Replace(" ", "-").ToLower()}";
|
||||
var localizedName = Loc.GetString(locationKey);
|
||||
if (localizedName == locationKey)
|
||||
{
|
||||
if (locationKey != "location--" || locationKey != "location-")
|
||||
{
|
||||
Logger.Warning($"Failed to find localization with ID: {locationKey}");
|
||||
Logger.Warning($"Failed to find localization with ID: {locationKey} and name: {displayName}");
|
||||
}
|
||||
localizedName = displayName;
|
||||
}
|
||||
|
|
|
|||
17
Content.Client/_Sunrise/Chat/LocTag.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using Robust.Shared.Utility;
|
||||
using Robust.Client.UserInterface.RichText;
|
||||
namespace Content.Client.UserInterface.RichText;
|
||||
|
||||
public sealed class LocTag : IMarkupTag
|
||||
{
|
||||
public string Name => "loc";
|
||||
|
||||
public string TextBefore(MarkupNode node)
|
||||
{
|
||||
if(node.Value.TryGetString(out string? text))
|
||||
{
|
||||
return Loc.GetString(text);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Content.Server._Sunrise.Chat; //sunrise-edit
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Administration.Managers;
|
||||
using Content.Server.Chat.Managers;
|
||||
|
|
@ -150,9 +151,10 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
IConsoleShell? shell = null,
|
||||
ICommonSession? player = null, string? nameOverride = null,
|
||||
bool checkRadioPrefix = true,
|
||||
bool ignoreActionBlocker = false)
|
||||
bool ignoreActionBlocker = false,
|
||||
bool isFormatted = false) // sunrise-edit
|
||||
{
|
||||
TrySendInGameICMessage(source, message, desiredType, hideChat ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal, hideLog, shell, player, nameOverride, checkRadioPrefix, ignoreActionBlocker);
|
||||
TrySendInGameICMessage(source, message, desiredType, hideChat ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal, hideLog, shell, player, nameOverride, checkRadioPrefix, ignoreActionBlocker, isFormatted); //sunrise-edit
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -176,7 +178,8 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
ICommonSession? player = null,
|
||||
string? nameOverride = null,
|
||||
bool checkRadioPrefix = true,
|
||||
bool ignoreActionBlocker = false
|
||||
bool ignoreActionBlocker = false,
|
||||
bool isFormatted = false //sunrise-edit
|
||||
)
|
||||
{
|
||||
if (HasComp<GhostComponent>(source))
|
||||
|
|
@ -231,7 +234,7 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
// Was there an emote in the message? If so, send it.
|
||||
if (player != null && emoteStr != message && emoteStr != null)
|
||||
{
|
||||
SendEntityEmote(source, emoteStr, range, nameOverride, ignoreActionBlocker);
|
||||
SendEntityEmote(source, emoteStr, range, nameOverride, ignoreActionBlocker, isFormatted); //sunrise-edit
|
||||
}
|
||||
|
||||
// This can happen if the entire string is sanitized out.
|
||||
|
|
@ -243,7 +246,7 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
{
|
||||
if (TryProccessRadioMessage(source, message, out var modMessage, out var channel))
|
||||
{
|
||||
SendEntityWhisper(source, modMessage, range, channel, nameOverride, hideLog, ignoreActionBlocker);
|
||||
SendEntityWhisper(source, modMessage, range, channel, nameOverride, hideLog, ignoreActionBlocker, isFormatted); //sunrise-edit
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -263,13 +266,13 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
switch (desiredType)
|
||||
{
|
||||
case InGameICChatType.Speak:
|
||||
SendEntitySpeak(source, message, range, nameOverride, hideLog, ignoreActionBlocker);
|
||||
SendEntitySpeak(source, message, range, nameOverride, hideLog, ignoreActionBlocker, isFormatted); //sunrise-edit-hg
|
||||
break;
|
||||
case InGameICChatType.Whisper:
|
||||
SendEntityWhisper(source, message, range, null, nameOverride, hideLog, ignoreActionBlocker);
|
||||
SendEntityWhisper(source, message, range, null, nameOverride, hideLog, ignoreActionBlocker, isFormatted); // sunrise-edit
|
||||
break;
|
||||
case InGameICChatType.Emote:
|
||||
SendEntityEmote(source, message, range, nameOverride, hideLog: hideLog, ignoreActionBlocker: ignoreActionBlocker);
|
||||
SendEntityEmote(source, message, range, nameOverride, hideLog: hideLog, ignoreActionBlocker: ignoreActionBlocker, isFormatted: isFormatted); //sunrise-edit
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -523,7 +526,8 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
ChatTransmitRange range,
|
||||
string? nameOverride,
|
||||
bool hideLog = false,
|
||||
bool ignoreActionBlocker = false
|
||||
bool ignoreActionBlocker = false,
|
||||
bool isFormatted = false //sunrise-edit
|
||||
)
|
||||
{
|
||||
if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker)
|
||||
|
|
@ -553,13 +557,13 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
}
|
||||
|
||||
name = FormattedMessage.EscapeText(name);
|
||||
|
||||
if (HasComp<CanFormatMessagesComponent>(source)) isFormatted = true; //sunrise-edit
|
||||
var wrappedMessage = Loc.GetString(speech.Bold ? "chat-manager-entity-say-bold-wrap-message" : "chat-manager-entity-say-wrap-message",
|
||||
("entityName", name),
|
||||
("verb", Loc.GetString(_random.Pick(speech.SpeechVerbStrings))),
|
||||
("fontType", speech.FontId),
|
||||
("fontSize", speech.FontSize),
|
||||
("message", FormattedMessage.EscapeText(message)));
|
||||
("message", isFormatted ? message : FormattedMessage.EscapeText(message))); //sunrise-edit
|
||||
|
||||
SendInVoiceRange(ChatChannel.Local, message, wrappedMessage, source, range);
|
||||
|
||||
|
|
@ -596,7 +600,8 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
RadioChannelPrototype? channel,
|
||||
string? nameOverride,
|
||||
bool hideLog = false,
|
||||
bool ignoreActionBlocker = false
|
||||
bool ignoreActionBlocker = false,
|
||||
bool isFormatted = false //sunrise-edit
|
||||
)
|
||||
{
|
||||
if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker)
|
||||
|
|
@ -623,15 +628,15 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
name = nameEv.Name;
|
||||
}
|
||||
name = FormattedMessage.EscapeText(name);
|
||||
|
||||
if (HasComp<CanFormatMessagesComponent>(source)) isFormatted = true; //sunrise-edit
|
||||
var wrappedMessage = Loc.GetString("chat-manager-entity-whisper-wrap-message",
|
||||
("entityName", name), ("message", FormattedMessage.EscapeText(message)));
|
||||
("entityName", name), ("message", isFormatted ? message : FormattedMessage.EscapeText(message))); //sunrise-edit
|
||||
|
||||
var wrappedobfuscatedMessage = Loc.GetString("chat-manager-entity-whisper-wrap-message",
|
||||
("entityName", nameIdentity), ("message", FormattedMessage.EscapeText(obfuscatedMessage)));
|
||||
("entityName", nameIdentity), ("message", isFormatted ? obfuscatedMessage : FormattedMessage.EscapeText(obfuscatedMessage))); //sunrise-edit
|
||||
|
||||
var wrappedUnknownMessage = Loc.GetString("chat-manager-entity-whisper-unknown-wrap-message",
|
||||
("message", FormattedMessage.EscapeText(obfuscatedMessage)));
|
||||
("message", isFormatted ? obfuscatedMessage : FormattedMessage.EscapeText(obfuscatedMessage))); //sunrise-edit
|
||||
|
||||
|
||||
foreach (var (session, data) in GetRecipients(source, WhisperMuffledRange))
|
||||
|
|
@ -686,7 +691,8 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
bool hideLog = false,
|
||||
bool checkEmote = true,
|
||||
bool ignoreActionBlocker = false,
|
||||
NetUserId? author = null
|
||||
NetUserId? author = null,
|
||||
bool isFormatted = false //sunrise-edit
|
||||
)
|
||||
{
|
||||
if (!_actionBlocker.CanEmote(source) && !ignoreActionBlocker)
|
||||
|
|
@ -695,16 +701,16 @@ public sealed partial class ChatSystem : SharedChatSystem
|
|||
// get the entity's apparent name (if no override provided).
|
||||
var ent = Identity.Entity(source, EntityManager);
|
||||
string name = FormattedMessage.EscapeText(nameOverride ?? Name(ent));
|
||||
|
||||
if (HasComp<CanFormatMessagesComponent>(source)) isFormatted = true; //sunrise-edit
|
||||
// Emotes use Identity.Name, since it doesn't actually involve your voice at all.
|
||||
var wrappedMessage = Loc.GetString("chat-manager-entity-me-wrap-message",
|
||||
("entityName", name),
|
||||
("entityName", isFormatted ? "" : name), //sunrise-edit
|
||||
("entity", ent),
|
||||
("message", FormattedMessage.RemoveMarkup(action)));
|
||||
("message", isFormatted ? action : FormattedMessage.RemoveMarkup(action))); //sunrise-edit
|
||||
|
||||
if (checkEmote)
|
||||
TryEmoteChatInput(source, action);
|
||||
SendInVoiceRange(ChatChannel.Emotes, action, wrappedMessage, source, range, author);
|
||||
SendInVoiceRange(ChatChannel.Emotes, action, wrappedMessage, source, isFormatted ? ChatTransmitRange.HideChat : range, author); //sunrise-edit
|
||||
if (!hideLog)
|
||||
if (name != Name(source))
|
||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Emote from {ToPrettyString(source):user} as {name}: {action}");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Linq;
|
||||
using Content.Server.Administration;
|
||||
using Content.Server.Chat.Managers;
|
||||
using Content.Server.Chat.Systems;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.Radio.Components;
|
||||
using Content.Server.Roles;
|
||||
|
|
@ -38,7 +39,9 @@ public sealed class SiliconLawSystem : SharedSiliconLawSystem
|
|||
[Dependency] private readonly SharedStunSystem _stunSystem = default!;
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly SharedRoleSystem _roles = default!;
|
||||
|
||||
//sunrise-edit-start
|
||||
[Dependency] private readonly ChatSystem _chatSystem = default!;
|
||||
//sunrise-edit-end
|
||||
/// <inheritdoc/>
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -165,6 +168,9 @@ public sealed class SiliconLawSystem : SharedSiliconLawSystem
|
|||
EnsureEmaggedRole(uid, component);
|
||||
|
||||
_stunSystem.TryParalyze(uid, component.StunTime, true);
|
||||
//sunrise-edit-start
|
||||
_chatSystem.TrySendInGameICMessage(uid, Loc.GetString("borg-emagged-message"), InGameICChatType.Emote, false, isFormatted: true);
|
||||
//sunrise-edit-end
|
||||
|
||||
if (!_mind.TryGetMind(uid, out var mindId, out _))
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
namespace Content.Server._Sunrise.Chat;
|
||||
[RegisterComponent] public sealed partial class CanFormatMessagesComponent : Component {}
|
||||
41
Content.Server/_Sunrise/Chat/SayWithIntervalComponent.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
using Content.Server.Chat.Systems;
|
||||
using Robust.Shared.Enums;
|
||||
|
||||
namespace Content.Server._Sunrise.Chat;
|
||||
|
||||
/// <summary>
|
||||
/// Makes this entity periodically advertise by speaking a randomly selected
|
||||
/// message from a specified dataset into local chat.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SayWithIntervalSystem))]
|
||||
public sealed partial class SayWithIntervalComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public int MinimumWait { get; private set; } = 20;
|
||||
|
||||
/// <summary>
|
||||
/// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal
|
||||
/// to <see cref="MinimumWait"/>
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public int MaximumWait { get; private set; } = 40;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The identifier for the advertisements dataset prototype.
|
||||
/// </summary>
|
||||
[DataField] public string Message = "123";
|
||||
|
||||
[DataField] public string chatType = "speak";
|
||||
[DataField] public bool Format = false;
|
||||
|
||||
/// <summary>
|
||||
/// The next time an advertisement will be said.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public TimeSpan NextMessageTime { get; set; } = TimeSpan.Zero;
|
||||
|
||||
}
|
||||
90
Content.Server/_Sunrise/Chat/SayWithIntervalSystem.cs
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
using Content.Server.Advertise.Components;
|
||||
using Content.Server.Chat.Systems;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.VendingMachines;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._Sunrise.Chat;
|
||||
|
||||
public sealed class SayWithIntervalSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||
[Dependency] private readonly ChatSystem _chat = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The maximum amount of time between checking if advertisements should be displayed
|
||||
/// </summary>
|
||||
private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromMilliseconds(20);
|
||||
|
||||
/// <summary>
|
||||
/// The next time the game will check if advertisements should be displayed
|
||||
/// </summary>
|
||||
private TimeSpan _nextCheckTime = TimeSpan.MinValue;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<SayWithIntervalComponent, MapInitEvent>(OnMapInit);
|
||||
|
||||
|
||||
_nextCheckTime = TimeSpan.MinValue;
|
||||
}
|
||||
|
||||
private void OnMapInit(EntityUid uid, SayWithIntervalComponent advert, MapInitEvent args)
|
||||
{
|
||||
RandomizeNextAdvertTime(advert);
|
||||
_nextCheckTime = MathHelper.Min(advert.NextMessageTime, _nextCheckTime);
|
||||
}
|
||||
|
||||
private void RandomizeNextAdvertTime(SayWithIntervalComponent advert)
|
||||
{
|
||||
var minDuration = Math.Max(1, advert.MinimumWait);
|
||||
var maxDuration = Math.Max(minDuration, advert.MaximumWait);
|
||||
var waitDuration = TimeSpan.FromSeconds(_random.Next(minDuration, maxDuration));
|
||||
|
||||
advert.NextMessageTime = _gameTiming.CurTime + waitDuration;
|
||||
}
|
||||
|
||||
public void SayAdvertisement(EntityUid uid, SayWithIntervalComponent? advert = null)
|
||||
{
|
||||
if (!Resolve(uid, ref advert))
|
||||
return;
|
||||
|
||||
InGameICChatType type = InGameICChatType.Speak;
|
||||
switch(advert.chatType)
|
||||
{
|
||||
case "whisper": type = InGameICChatType.Whisper; break;
|
||||
case "emote": type = InGameICChatType.Emote; break;
|
||||
case "collectiveMind": type = InGameICChatType.CollectiveMind; break;
|
||||
default: type = InGameICChatType.Speak; break;
|
||||
} // Костыль, но InGameICChatType не указывается ингейм
|
||||
_chat.TrySendInGameICMessage(uid, advert.Message, type, false, isFormatted: advert.Format);
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
var currentGameTime = _gameTiming.CurTime;
|
||||
if (_nextCheckTime > currentGameTime)
|
||||
return;
|
||||
|
||||
// _nextCheckTime starts at TimeSpan.MinValue, so this has to SET the value, not just increment it.
|
||||
_nextCheckTime = currentGameTime + _maximumNextCheckDuration;
|
||||
|
||||
var query = EntityQueryEnumerator<SayWithIntervalComponent>();
|
||||
while (query.MoveNext(out var uid, out var advert))
|
||||
{
|
||||
if (currentGameTime > advert.NextMessageTime)
|
||||
{
|
||||
SayAdvertisement(uid, advert);
|
||||
// The timer is always refreshed when it expires, to prevent mass advertising (ex: all the vending machines have no power, and get it back at the same time).
|
||||
RandomizeNextAdvertTime(advert);
|
||||
}
|
||||
_nextCheckTime = MathHelper.Min(advert.NextMessageTime, _nextCheckTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -2627,3 +2627,30 @@
|
|||
type: Fix
|
||||
id: 192
|
||||
time: '2024-08-15T23:36:10.639849+00:00'
|
||||
- author: Rinary
|
||||
changes:
|
||||
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u043F\u0435\u0440\
|
||||
\u0435\u0432\u043E\u0434 \u0432\u0430\u0440\u043F \u0442\u043E\u0447\u0435\u043A"
|
||||
type: Fix
|
||||
id: 193
|
||||
time: '2024-08-17T13:44:01.0000000+00:00'
|
||||
url: https://github.com/space-sunrise/space-station-14/pull/291
|
||||
- author: Focstor
|
||||
changes:
|
||||
- message: "\u0411\u043E\u0440\u0433\u0438 \u0442\u0435\u043F\u0435\u0440\u044C\
|
||||
\ \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0432\u0438\u0434\u0435\u0442\
|
||||
\u044C \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043C\u0430\u0439\u043D\u0448\
|
||||
\u0438\u043B\u0434\u0430."
|
||||
type: Fix
|
||||
id: 194
|
||||
time: '2024-08-17T13:43:08.0000000+00:00'
|
||||
url: https://github.com/space-sunrise/space-station-14/pull/293
|
||||
- author: Rinary
|
||||
changes:
|
||||
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0431\u043E\u043B\
|
||||
\u044C\u0448\u044B\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043B\u0438\
|
||||
."
|
||||
type: Add
|
||||
id: 195
|
||||
time: '2024-08-17T13:42:48.0000000+00:00'
|
||||
url: https://github.com/space-sunrise/space-station-14/pull/294
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
ent-BigThruster = большой ракетный двигатель
|
||||
.desc = { ent-Thruster }
|
||||
1
Resources/Locale/ru-RU/_sunrise/borg/emag.ftl
Normal file
|
|
@ -0,0 +1 @@
|
|||
borg-emagged-message = [font="Monospace"][color=green][scramble rate=35 length=15 chars="10 "][/color][/font]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ent-DrinkFourteenLokoPlusCan = банка Фоуртин Локо плюс
|
||||
.desc = Ремейк от Мэйсона Миллера популярного напитка Фоуртин Локо, но также как и в оригинале, пожалуйста пейте ответственно.
|
||||
ent-DrinkLukin = банка напитка Лукина
|
||||
.desc = Не очень известный алкогольный напиток Лукина. Он обладает лечебными свойствами в деле телесных повреждений, но не стоит пить слишком много...
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ent-FoodSnackMaysonEnergy = энергетический батончик Мэйсона
|
||||
.desc = Энергетический батончик состоящий из натуральных химикатов!
|
||||
ent-FoodSnackMaysonEnergyBar = энергетический батончик Мэйсона
|
||||
.desc = Энергетический батончик состоящий из натуральных химикатов!
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
reagent-name-fourteen-loko-plus = фоуртин локо плюс
|
||||
reagent-desc-fourteen-loko-plus = Сильно переработанная жидкая субстанция с элиментами стимулирующих веществ, едва ли соответствующая межгалактическим стандартам безопасности для безалкогольного напитка.
|
||||
|
|
@ -28,6 +28,7 @@ fax-label-captainoffice = Кабинет капитана
|
|||
fax-label-captainsoffice = Кабинет капитана
|
||||
fax-label-captainsquarters = Кабинет капитана
|
||||
fax-label-centralcommand = Центральное коммандование
|
||||
fax-label-centcomm = Центральное коммандование
|
||||
fax-label-hop = Глава персонала
|
||||
fax-label-hopoffice = Глава персонала
|
||||
fax-label-hopfax = Глава персонала
|
||||
|
|
|
|||
|
|
@ -191584,6 +191584,28 @@ entities:
|
|||
- type: Transform
|
||||
pos: 41.438423,17.514713
|
||||
parent: 2
|
||||
- proto: MagazineM16A4
|
||||
entities:
|
||||
- uid: 27364
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27365
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27366
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27367
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- proto: MagazinePistol
|
||||
entities:
|
||||
- uid: 27352
|
||||
|
|
@ -191646,28 +191668,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 59.5,9.5
|
||||
parent: 2
|
||||
- proto: MagazinePistolSubMachineGunTopMounted
|
||||
entities:
|
||||
- uid: 27364
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27365
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27366
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- uid: 27367
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.38411,8.32258
|
||||
parent: 2
|
||||
- proto: MagicDiceBag
|
||||
entities:
|
||||
- uid: 27368
|
||||
|
|
@ -234353,6 +234353,13 @@ entities:
|
|||
- type: Transform
|
||||
pos: 37.5,2.5
|
||||
parent: 2
|
||||
- proto: VendingMachineMayson
|
||||
entities:
|
||||
- uid: 452
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 41.5,-12.5
|
||||
parent: 2
|
||||
- proto: VendingMachineMedical
|
||||
entities:
|
||||
- uid: 34227
|
||||
|
|
@ -260782,6 +260789,13 @@ entities:
|
|||
- type: Transform
|
||||
pos: -27.5,-50.5
|
||||
parent: 2
|
||||
- proto: WeaponAKMSRifle
|
||||
entities:
|
||||
- uid: 39292
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 40.57007,17.532423
|
||||
parent: 2
|
||||
- proto: WeaponCapacitorRecharger
|
||||
entities:
|
||||
- uid: 39244
|
||||
|
|
@ -261103,7 +261117,44 @@ entities:
|
|||
rot: 3.141592653589793 rad
|
||||
pos: -45.5,8.5
|
||||
parent: 2
|
||||
- proto: WeaponDisabler
|
||||
- proto: WeaponDisablerPractice
|
||||
entities:
|
||||
- uid: 39269
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 58.486435,16.114597
|
||||
parent: 2
|
||||
- uid: 39270
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 58.59685,15.98753
|
||||
parent: 2
|
||||
- proto: WeaponEarthGovLaserCarbine
|
||||
entities:
|
||||
- uid: 39272
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- uid: 39273
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- uid: 39274
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- proto: WeaponEarthGovLaserSniper
|
||||
entities:
|
||||
- uid: 39271
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- proto: WeaponEnergyGunMini
|
||||
entities:
|
||||
- uid: 39266
|
||||
components:
|
||||
|
|
@ -261121,43 +261172,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: -45.51563,8.636579
|
||||
parent: 2
|
||||
- proto: WeaponDisablerPractice
|
||||
entities:
|
||||
- uid: 39269
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 58.486435,16.114597
|
||||
parent: 2
|
||||
- uid: 39270
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 58.59685,15.98753
|
||||
parent: 2
|
||||
- proto: WeaponLaserCannon
|
||||
entities:
|
||||
- uid: 39271
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- proto: WeaponLaserCarbine
|
||||
entities:
|
||||
- uid: 39272
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- uid: 39273
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- uid: 39274
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.5,9.5
|
||||
parent: 2
|
||||
- proto: WeaponLaserCarbinePractice
|
||||
entities:
|
||||
- uid: 39275
|
||||
|
|
@ -261175,14 +261189,7 @@ entities:
|
|||
- type: Transform
|
||||
pos: 58.470814,18.520847
|
||||
parent: 2
|
||||
- proto: WeaponPistolFlintlock
|
||||
entities:
|
||||
- uid: 39278
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 23.562122,59.322018
|
||||
parent: 2
|
||||
- proto: WeaponPistolMk58
|
||||
- proto: WeaponPistolACP14
|
||||
entities:
|
||||
- uid: 39279
|
||||
components:
|
||||
|
|
@ -261244,21 +261251,28 @@ entities:
|
|||
- type: Transform
|
||||
pos: 58.475845,17.747644
|
||||
parent: 2
|
||||
- proto: WeaponRevolverMateba
|
||||
- proto: WeaponPistolFlintlock
|
||||
entities:
|
||||
- uid: 39278
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 23.562122,59.322018
|
||||
parent: 2
|
||||
- proto: WeaponRevolverMatebaNew
|
||||
entities:
|
||||
- uid: 39291
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 36.47151,18.549223
|
||||
parent: 2
|
||||
- proto: WeaponRifleAk
|
||||
- proto: WeaponRifleBR64
|
||||
entities:
|
||||
- uid: 39292
|
||||
- uid: 39304
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 40.57007,17.532423
|
||||
pos: 70.4,10.5
|
||||
parent: 2
|
||||
- proto: WeaponRifleLecter
|
||||
- proto: WeaponRifleFamas
|
||||
entities:
|
||||
- uid: 39293
|
||||
components:
|
||||
|
|
@ -261275,7 +261289,29 @@ entities:
|
|||
- type: Transform
|
||||
pos: 65.497795,9.494064
|
||||
parent: 2
|
||||
- proto: WeaponRifleM90GrenadeLauncher
|
||||
- proto: WeaponRifleM16A4
|
||||
entities:
|
||||
- uid: 39306
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.530876,8.579602
|
||||
parent: 2
|
||||
- uid: 39307
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.483315,7.629155
|
||||
parent: 2
|
||||
- uid: 39308
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.46212,7.55103
|
||||
parent: 2
|
||||
- uid: 39309
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.530876,8.579602
|
||||
parent: 2
|
||||
- proto: WeaponRifleM28
|
||||
entities:
|
||||
- uid: 39296
|
||||
components:
|
||||
|
|
@ -261313,7 +261349,7 @@ entities:
|
|||
- type: Transform
|
||||
pos: -1.6446036,36.6353
|
||||
parent: 2
|
||||
- proto: WeaponShotgunEnforcer
|
||||
- proto: WeaponShotgunSPAS12
|
||||
entities:
|
||||
- uid: 14920
|
||||
components:
|
||||
|
|
@ -261322,7 +261358,7 @@ entities:
|
|||
- type: Physics
|
||||
canCollide: False
|
||||
- type: InsideEntityStorage
|
||||
- proto: WeaponShotgunKammerer
|
||||
- proto: WeaponShotgunTrenchgun4034
|
||||
entities:
|
||||
- uid: 39301
|
||||
components:
|
||||
|
|
@ -261339,42 +261375,13 @@ entities:
|
|||
- type: Transform
|
||||
pos: 65.5,8.5
|
||||
parent: 2
|
||||
- proto: WeaponSniperHristov
|
||||
entities:
|
||||
- uid: 39304
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.4,10.5
|
||||
parent: 2
|
||||
- proto: WeaponSubMachineGunDrozd
|
||||
- proto: WeaponSubMachineGunMP7
|
||||
entities:
|
||||
- uid: 39305
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 65.5,7.5
|
||||
parent: 2
|
||||
- proto: WeaponSubMachineGunWt550
|
||||
entities:
|
||||
- uid: 39306
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.530876,8.579602
|
||||
parent: 2
|
||||
- uid: 39307
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.483315,7.629155
|
||||
parent: 2
|
||||
- uid: 39308
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 67.46212,7.55103
|
||||
parent: 2
|
||||
- uid: 39309
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 70.530876,8.579602
|
||||
parent: 2
|
||||
- proto: WeaponTurretHostile
|
||||
entities:
|
||||
- uid: 39310
|
||||
|
|
|
|||
|
|
@ -98426,7 +98426,7 @@ entities:
|
|||
- type: Transform
|
||||
pos: 99.5,21.5
|
||||
parent: 13329
|
||||
- proto: CryogenicSleepUnitSpawner
|
||||
- proto: CryogenicSleepUnitSpawnerLateJoin
|
||||
entities:
|
||||
- uid: 27927
|
||||
components:
|
||||
|
|
@ -98434,8 +98434,6 @@ entities:
|
|||
rot: 3.141592653589793 rad
|
||||
pos: 97.5,21.5
|
||||
parent: 13329
|
||||
- proto: CryogenicSleepUnitSpawnerLateJoin
|
||||
entities:
|
||||
- uid: 27929
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -196423,6 +196421,20 @@ entities:
|
|||
- type: Transform
|
||||
pos: 33.5,42.5
|
||||
parent: 13329
|
||||
- type: ContainerContainer
|
||||
containers:
|
||||
machine_board: !type:Container
|
||||
showEnts: False
|
||||
occludes: True
|
||||
ents: []
|
||||
machine_parts: !type:Container
|
||||
showEnts: False
|
||||
occludes: True
|
||||
ents: []
|
||||
mixer: !type:ContainerSlot
|
||||
showEnts: False
|
||||
occludes: True
|
||||
ent: null
|
||||
- proto: VendingBarDrobe
|
||||
entities:
|
||||
- uid: 1186
|
||||
|
|
@ -196853,6 +196865,13 @@ entities:
|
|||
- type: Transform
|
||||
pos: 72.5,36.5
|
||||
parent: 13329
|
||||
- proto: VendingMachineMayson
|
||||
entities:
|
||||
- uid: 33992
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 63.5,5.5
|
||||
parent: 13329
|
||||
- proto: VendingMachineMedical
|
||||
entities:
|
||||
- uid: 10261
|
||||
|
|
@ -220701,6 +220720,14 @@ entities:
|
|||
- type: Transform
|
||||
pos: 93.5,-38.5
|
||||
parent: 13329
|
||||
- proto: WeaponAKMSRifle
|
||||
entities:
|
||||
- uid: 10496
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 35.367424,20.732126
|
||||
parent: 13329
|
||||
- proto: WeaponCapacitorRecharger
|
||||
entities:
|
||||
- uid: 2216
|
||||
|
|
@ -220905,14 +220932,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 17.56414,13.463523
|
||||
parent: 13329
|
||||
- proto: WeaponAKMSRifle
|
||||
entities:
|
||||
- uid: 10496
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 35.367424,20.732126
|
||||
parent: 13329
|
||||
- proto: WeaponRifleFamas
|
||||
entities:
|
||||
- uid: 10666
|
||||
|
|
@ -220930,6 +220949,14 @@ entities:
|
|||
- type: Transform
|
||||
pos: 19.43914,12.321453
|
||||
parent: 13329
|
||||
- proto: WeaponShotgunHandmade
|
||||
entities:
|
||||
- uid: 5418
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -39.140755,78.51152
|
||||
parent: 13329
|
||||
- proto: WeaponShotgunSPAS12
|
||||
entities:
|
||||
- uid: 10632
|
||||
|
|
@ -220947,14 +220974,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 16.616808,11.387669
|
||||
parent: 13329
|
||||
- proto: WeaponShotgunHandmade
|
||||
entities:
|
||||
- uid: 5418
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: -39.140755,78.51152
|
||||
parent: 13329
|
||||
- proto: WeaponSubMachineGunMP7
|
||||
entities:
|
||||
- uid: 1348
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
visible: false
|
||||
- type: FlashImmunity
|
||||
- type: ShowJobIcons
|
||||
- type: ShowMindShieldIcons
|
||||
# - type: ShowMindShieldIcons Sunrise-Edit
|
||||
- type: ShowCriminalRecordIcons
|
||||
- type: BorgCuffed
|
||||
- type: BorgTransponder
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
- type: BorgCuffed
|
||||
- type: FlashImmunity
|
||||
- type: ShowJobIcons
|
||||
- type: ShowMindShieldIcons
|
||||
# - type: ShowMindShieldIcons Sunrise-Edit
|
||||
- type: ShowCriminalRecordIcons
|
||||
- type: BorgTransponder
|
||||
sprite:
|
||||
|
|
@ -205,7 +205,7 @@
|
|||
map: [ "light" ]
|
||||
visible: false
|
||||
- type: ShowJobIcons
|
||||
- type: ShowMindShieldIcons
|
||||
# - type: ShowMindShieldIcons Sunrise-Edit
|
||||
- type: ShowCriminalRecordIcons
|
||||
- type: SiliconLawProvider
|
||||
laws: PeaceStatic
|
||||
|
|
@ -461,7 +461,7 @@
|
|||
volume: -15
|
||||
- type: FlashImmunity
|
||||
- type: ShowJobIcons
|
||||
- type: ShowMindShieldIcons
|
||||
# - type: ShowMindShieldIcons Sunrise-Edit
|
||||
- type: ShowCriminalRecordIcons
|
||||
- type: GhostRole
|
||||
makeSentient: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
- type: entity
|
||||
parent: DrinkCanBaseFull
|
||||
id: DrinkFourteenLokoPlusCan
|
||||
name: Fourteen Loko Plus can
|
||||
description: A remake of the popular drink Fourteen Loko. But just like the original, drink responsibly.
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: FourteenLokoPlus
|
||||
Quantity: 30
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi
|
||||
- type: Item
|
||||
sprite: _Sunrise/Objects/Consumable/Drinks/fourteen_loko_plus.rsi
|
||||
|
||||
- type: entity
|
||||
parent: DrinkCanBaseFull
|
||||
id: DrinkLukin
|
||||
name: Lukin's drink
|
||||
description: Brother Lukin's not very famous alcoholic drink. It has medicinal properties to heal bodily harm, but don't drink too much.
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
drink:
|
||||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: Aloe
|
||||
Quantity: 16
|
||||
- ReagentId: Bicaridine
|
||||
Quantity: 14
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi
|
||||
- type: Item
|
||||
sprite: _Sunrise/Objects/Consumable/Drinks/lukins_drink.rsi
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
- type: entity
|
||||
name: menergy bar
|
||||
parent: FoodSnackBase
|
||||
id: FoodSnackMaysonEnergy
|
||||
description: Mayson's energy bar
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi
|
||||
state: menergybar
|
||||
- type: Item
|
||||
- type: SpawnItemsOnUse
|
||||
items:
|
||||
- id: FoodPacketMaysonEnergyTrash
|
||||
- id: FoodSnackMaysonEnergyBar
|
||||
sound:
|
||||
path: /Audio/Effects/unwrap.ogg
|
||||
|
||||
- type: entity
|
||||
name: menergy bar
|
||||
parent: FoodSnackBase
|
||||
id: FoodSnackMaysonEnergyBar
|
||||
description: Mayson's energy bar
|
||||
components:
|
||||
- type: FlavorProfile
|
||||
flavors:
|
||||
- chocolate
|
||||
- nutty
|
||||
- sweet
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi
|
||||
state: menergybar-open
|
||||
- type: Item
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
food:
|
||||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 10
|
||||
- ReagentId: Epinephrine
|
||||
Quantity: 10
|
||||
|
||||
- type: entity
|
||||
categories: [ HideSpawnMenu ]
|
||||
parent: FoodPacketTrash
|
||||
id: FoodPacketMaysonEnergyTrash
|
||||
name: energybar wrapper
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Food/snacks.rsi
|
||||
state: menergybar-trash
|
||||
|
|
@ -27,3 +27,38 @@
|
|||
shader: unshaded
|
||||
- state: panel
|
||||
map: ["enum.WiresVisualLayers.MaintenancePanel"]
|
||||
|
||||
- type: entity
|
||||
parent: VendingMachine
|
||||
id: VendingMachineMayson
|
||||
name: MaysonMil & YanLu corp
|
||||
description: A vending machine containing products of the company "MaysonMil & YanLu".
|
||||
components:
|
||||
- type: VendingMachine
|
||||
pack: MaysonYanInventory
|
||||
dispenseOnHitChance: 0.25
|
||||
dispenseOnHitThreshold: 2
|
||||
offState: off
|
||||
brokenState: broken
|
||||
normalState: normal-unshaded
|
||||
initialStockQuality: 0.33
|
||||
- type: Advertise
|
||||
pack: DiscountDansAds
|
||||
- type: SpeakOnUIClosed
|
||||
pack: DiscountDansGoodbyes
|
||||
- type: Speech
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Structures/Machines/VendingMachines/mayson.rsi
|
||||
layers:
|
||||
- state: "off"
|
||||
map: ["enum.VendingMachineVisualLayers.Base"]
|
||||
- state: "off"
|
||||
map: ["enum.VendingMachineVisualLayers.BaseUnshaded"]
|
||||
shader: unshaded
|
||||
- texture: _Sunrise/Structures/Machines/VendingMachines/maintenance_panel.png
|
||||
map: ["enum.WiresVisualLayers.MaintenancePanel"]
|
||||
- type: PointLight
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#6148c7"
|
||||
- type: PlayerCountDependentStock # Sunrise-vend
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
- type: entity
|
||||
id: BigThruster
|
||||
name: big thruster
|
||||
parent: [ BaseThruster ]
|
||||
components:
|
||||
- type: Anchorable
|
||||
flags:
|
||||
- Unanchorable
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Structures/Shuttles/big_thruster.rsi
|
||||
layers:
|
||||
- state: base
|
||||
map: ["enum.ThrusterVisualLayers.Base"]
|
||||
offset: 0.5,0.5
|
||||
- state: thrust
|
||||
map: ["enum.ThrusterVisualLayers.ThrustOn"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
offset: 0.5,0.5
|
||||
- state: thrust_burn_unshaded
|
||||
map: ["enum.ThrusterVisualLayers.ThrustingUnshaded"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
offset: 0.5, 2.5
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.9,-0.9,0.9,0.9"
|
||||
density: 60
|
||||
mask:
|
||||
- MachineMask
|
||||
layer:
|
||||
- MachineLayer
|
||||
- type: Thruster
|
||||
thrust: 400
|
||||
requireSpace: false
|
||||
damage:
|
||||
types:
|
||||
Heat: 80
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
- type: reagent
|
||||
id: FourteenLokoPlus
|
||||
name: reagent-name-fourteen-loko-plus
|
||||
parent: BaseSoda
|
||||
desc: reagent-desc-fourteen-loko-plus
|
||||
physicalDesc: reagent-physical-desc-fizzy
|
||||
flavor: fourteenlokosodaplus
|
||||
color: "#fcf6de"
|
||||
metabolisms:
|
||||
Drink:
|
||||
effects:
|
||||
- !type:SatiateThirst
|
||||
factor: 2
|
||||
Narcotic:
|
||||
effects:
|
||||
- !type:MovespeedModifier
|
||||
walkSpeedModifier: 1.2
|
||||
sprintSpeedModifier: 1.2
|
||||
Poison:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
damage:
|
||||
types:
|
||||
Poison: 1.5
|
||||
|
After Width: | Height: | Size: 646 B |
|
After Width: | Height: | Size: 639 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 249 B |
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Sprite made by discord:asr_aa",
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "icon_open"
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 528 B |
|
After Width: | Height: | Size: 538 B |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Modified from https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi, by asr_aa",
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "icon_open"
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4,
|
||||
"delays": [
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
],
|
||||
[
|
||||
1
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 587 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 429 B |
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24,",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "menergybar"
|
||||
},
|
||||
{
|
||||
"name": "menergybar-open"
|
||||
},
|
||||
{
|
||||
"name": "menergybar-trash"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 940 B |
|
After Width: | Height: | Size: 779 B |
|
After Width: | Height: | Size: 855 B |
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-4.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/1516a728931b4985c1e86f0c5995a5aa1554a1ad and modified by potato1234x",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "broken"
|
||||
},
|
||||
{
|
||||
"name": "deny-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eject-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.8,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "normal-unshaded",
|
||||
"delays": [
|
||||
[
|
||||
4,
|
||||
0.1,
|
||||
0.6
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "off"
|
||||
},
|
||||
{
|
||||
"name": "panel"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1 KiB |
|
After Width: | Height: | Size: 920 B |
|
After Width: | Height: | Size: 244 B |
|
After Width: | Height: | Size: 11 KiB |
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"version": 1,
|
||||
"size": {
|
||||
"x": 64,
|
||||
"y": 64
|
||||
},
|
||||
"copyright": "SUNRISE",
|
||||
"license": "CLA",
|
||||
"states": [
|
||||
{
|
||||
"name": "base",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "thrust",
|
||||
"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,
|
||||
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,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "thrust_burn_unshaded",
|
||||
"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,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.5 KiB |