Уменьшение количества редактирований файлов оффов (#3365)
This commit is contained in:
parent
4ead93709c
commit
3d383e5377
268 changed files with 1844802 additions and 1778 deletions
10
.github/ISSUE_TEMPLATE/config.yml
vendored
10
.github/ISSUE_TEMPLATE/config.yml
vendored
|
|
@ -1,5 +1,5 @@
|
|||
#blank_issues_enabled: true
|
||||
#contact_links:
|
||||
# - name: Request a Feature
|
||||
# url: https://discord.gg/rGvu9hKffJ
|
||||
# about: Submit feature requests on our Discord server (https://discord.gg/rGvu9hKffJ).
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Request a Feature
|
||||
url: https://discord.gg/rGvu9hKffJ
|
||||
about: Submit feature requests on our Discord server (https://discord.gg/rGvu9hKffJ).
|
||||
|
|
|
|||
17
.github/ISSUE_TEMPLATE/issue_request.md
vendored
17
.github/ISSUE_TEMPLATE/issue_request.md
vendored
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
name: Предложить новое
|
||||
about: Запросить у разработчиков добавить что-то новое.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: VigersRay
|
||||
|
||||
---
|
||||
|
||||
**Ваш запрос функции связан с проблемой/ошибкой? Опишите, пожалуйста.**
|
||||
<!-- Четкое и краткое описание проблемы. Например: Меня всегда раздражает, когда [...] -->
|
||||
|
||||
**Опишите желаемое**
|
||||
<!-- Четкое и краткое описание того, что вы хотите, и что оно должно делать. -->
|
||||
|
||||
**Дополнительный контекст**
|
||||
<!-- Добавьте сюда любой другой контекст или скриншоты, связанные с запросом функции. -->
|
||||
11
.github/ISSUE_TEMPLATE/issue_task.md
vendored
11
.github/ISSUE_TEMPLATE/issue_task.md
vendored
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
name: Поставить задачу
|
||||
about: Создать задачу для себя чтобы о ней знали другие, а так же запросить у спрайтеров
|
||||
спрайты.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: VigersRay
|
||||
|
||||
---
|
||||
|
||||
|
||||
4
.github/config.yml
vendored
4
.github/config.yml
vendored
|
|
@ -3,7 +3,7 @@ Project-Condor:
|
|||
project: 2
|
||||
inbox: Inbox
|
||||
labels:
|
||||
"W: In Progress": "В Прогрессе"
|
||||
"W: In Progress": "In Progress"
|
||||
"W: Discussion": "Design and Discussion"
|
||||
"W: Backlog": "Backlog"
|
||||
"W: Next": "Следующее"
|
||||
"W: Next": "Next"
|
||||
|
|
|
|||
20
.github/labeler.yml
vendored
20
.github/labeler.yml
vendored
|
|
@ -1,30 +1,30 @@
|
|||
"Изменения: Спрайты":
|
||||
"Changes: Sprites":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.rsi/*.png'
|
||||
|
||||
"Изменения: Карты":
|
||||
"Changes: Map":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'Resources/Maps/**/*.yml'
|
||||
- 'Resources/Prototypes/Maps/**/*.yml'
|
||||
|
||||
"Изменения: Интерфейс":
|
||||
"Changes: UI":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.xaml*'
|
||||
|
||||
"Изменения: Шейдеры":
|
||||
"Changes: Shaders":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.swsl'
|
||||
|
||||
"Изменения: Локализация":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.ftl'
|
||||
|
||||
"Изменения: Аудио":
|
||||
"Changes: Audio":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.ogg'
|
||||
|
||||
"Нет C#":
|
||||
"Changes: No C#":
|
||||
- changed-files:
|
||||
# Equiv to any-glob-to-all as long as this has one matcher. If ALL changed files are not C# files, then apply label.
|
||||
- all-globs-to-all-files: "!**/*.cs"
|
||||
|
||||
"Changes: Localisation":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.ftl'
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -306,4 +306,3 @@ Resources/MapImages
|
|||
|
||||
# Direnv stuff
|
||||
.direnv/
|
||||
.idea/
|
||||
|
|
@ -4,4 +4,4 @@
|
|||
<toRun name="Content.Server" type="DotNetProject" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@ internal sealed class BuckleSystem : SharedBuckleSystem
|
|||
!buckled ||
|
||||
args.Sprite == null)
|
||||
{
|
||||
// Sunrise-Edit
|
||||
//_rotationVisualizerSystem.SetHorizontalAngle((uid, rotVisuals), rotVisuals.DefaultRotation);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -121,16 +121,15 @@ namespace Content.Client.Changelog
|
|||
});
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
public Changelog MergeChangelogs(List<Changelog> changelogs)
|
||||
{
|
||||
var combinedChangelog = new Changelog();
|
||||
|
||||
foreach (var changelog in changelogs)
|
||||
{
|
||||
// Объединение списков записей
|
||||
combinedChangelog.Entries.AddRange(changelog.Entries);
|
||||
|
||||
// Объединение свойств
|
||||
if (!string.IsNullOrEmpty(changelog.Name))
|
||||
{
|
||||
combinedChangelog.Name = changelog.Name;
|
||||
|
|
@ -147,11 +146,11 @@ namespace Content.Client.Changelog
|
|||
}
|
||||
}
|
||||
|
||||
// Упорядочивание по времени
|
||||
combinedChangelog.Entries = combinedChangelog.Entries.OrderBy(entry => entry.Time).ToList();
|
||||
|
||||
return combinedChangelog;
|
||||
}
|
||||
// Sunrise-End
|
||||
|
||||
public void PostInject()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
VerticalAlignment="Bottom"
|
||||
HorizontalAlignment="Center">
|
||||
<SplitContainer Name="ScreenContainer" HorizontalExpand="True" VerticalExpand="True" SplitWidth="0" StretchDirection="TopLeft">
|
||||
<LayoutContainer Name="ViewportContainer" SizeFlagsStretchRatio="6" HorizontalExpand="True" VerticalExpand="True">
|
||||
<LayoutContainer Name="ViewportContainer" SizeFlagsStretchRatio="6" HorizontalExpand="True" VerticalExpand="True"> <!-- Sunrise-Edit -->
|
||||
<controls:MainViewport Name="MainViewport"/>
|
||||
<widgets:GhostGui Name="Ghost" Access="Protected" />
|
||||
<inventory:InventoryGui Name="Inventory" Access="Protected"/>
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SeparationOverride="10" Margin="10">
|
||||
<menuBar:GameTopMenuBar Name="TopBar" HorizontalExpand="True" Access="Protected" />
|
||||
<us:UserActionsPanel></us:UserActionsPanel>
|
||||
<us:UserActionsPanel></us:UserActionsPanel> <!-- Sunrise-Edit -->
|
||||
<chat:ChatBox VerticalExpand="True" HorizontalExpand="True" Name="Chat" Access="Protected" MinSize="0 0"/>
|
||||
</BoxContainer>
|
||||
</PanelContainer>
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged<BwoinkSyst
|
|||
{
|
||||
_bwoinkSystem = system;
|
||||
_bwoinkSystem.OnBwoinkTextMessageRecieved += ReceivedBwoink;
|
||||
_bwoinkSystem.OnBwoinkCooldownReceived += ReceivedCooldown;
|
||||
_bwoinkSystem.OnBwoinkCooldownReceived += ReceivedCooldown; // Sunrise-Edit
|
||||
|
||||
_input.SetInputCommand(ContentKeyFunctions.OpenAHelp,
|
||||
InputCmdHandler.FromDelegate(_ => ToggleWindow()));
|
||||
|
|
@ -115,7 +115,7 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged<BwoinkSyst
|
|||
|
||||
DebugTools.Assert(_bwoinkSystem != null);
|
||||
_bwoinkSystem!.OnBwoinkTextMessageRecieved -= ReceivedBwoink;
|
||||
_bwoinkSystem!.OnBwoinkCooldownReceived -= ReceivedCooldown;
|
||||
_bwoinkSystem!.OnBwoinkCooldownReceived -= ReceivedCooldown; // Sunrise-Edit
|
||||
_bwoinkSystem = null;
|
||||
}
|
||||
|
||||
|
|
@ -160,11 +160,13 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged<BwoinkSyst
|
|||
UIHelper!.Receive(message);
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
private void ReceivedCooldown(object? sender, BwoinkCooldownMessage message)
|
||||
{
|
||||
EnsureUIHelper();
|
||||
UIHelper?.OnCooldownReceived(message);
|
||||
}
|
||||
// Sunrise-End
|
||||
|
||||
private void DiscordRelayUpdated(BwoinkDiscordRelayUpdated args, EntitySessionEventArgs session)
|
||||
{
|
||||
|
|
@ -350,7 +352,7 @@ public interface IAHelpUIHandler : IDisposable
|
|||
public void ToggleWindow();
|
||||
public void DiscordRelayChanged(bool active);
|
||||
public void PeopleTypingUpdated(BwoinkPlayerTypingUpdated args);
|
||||
public void OnCooldownReceived(BwoinkCooldownMessage message);
|
||||
public void OnCooldownReceived(BwoinkCooldownMessage message); // Sunrise-Edit
|
||||
public event Action OnClose;
|
||||
public event Action OnOpen;
|
||||
public Action<NetUserId, string, bool, bool>? SendMessageAction { get; set; }
|
||||
|
|
@ -441,6 +443,7 @@ public sealed class AdminAHelpUIHandler : IAHelpUIHandler
|
|||
panel.UpdatePlayerTyping(args.PlayerName, args.Typing);
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
public void OnCooldownReceived(BwoinkCooldownMessage message)
|
||||
{
|
||||
// For admins, we might want to show a message in the currently active panel
|
||||
|
|
@ -451,7 +454,6 @@ public sealed class AdminAHelpUIHandler : IAHelpUIHandler
|
|||
}
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
public void SetLoadDb(NetUserId userId)
|
||||
{
|
||||
if (_activePanelMap.TryGetValue(userId, out var panel))
|
||||
|
|
@ -640,10 +642,12 @@ public sealed class UserAHelpUIHandler : IAHelpUIHandler
|
|||
{
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
public void OnCooldownReceived(BwoinkCooldownMessage message)
|
||||
{
|
||||
_chatPanel?.OnCooldownReceived(message);
|
||||
}
|
||||
// Sunrise-End
|
||||
|
||||
public event Action? OnClose;
|
||||
public event Action? OnOpen;
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@ public sealed partial class ChatUIController : UIController
|
|||
SetChatWindowOpacity(opacity);
|
||||
}
|
||||
|
||||
public void SetChatWindowOpacity(float opacity)
|
||||
public void SetChatWindowOpacity(float opacity) // Sunrise-Edit
|
||||
{
|
||||
var chatBox = UIManager.ActiveScreen?.GetWidget<ChatBox>() ?? UIManager.ActiveScreen?.GetWidget<ResizableChatBox>();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<widgets:ChatBox
|
||||
xmlns="https://spacestation14.io"
|
||||
xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
||||
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Chat.Widgets"
|
||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Systems.Chat.Controls"
|
||||
MouseFilter="Stop"
|
||||
|
|
|
|||
|
|
@ -54,10 +54,12 @@ public partial class ChatBox : UIWidget
|
|||
_controller.RegisterChat(this);
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
public void SetChatOpacity()
|
||||
{
|
||||
_controller.SetChatWindowOpacity(_configurationManager.GetCVar(CCVars.ChatWindowOpacity));
|
||||
}
|
||||
// Sunrise-End
|
||||
|
||||
private void OnTextEntered(LineEditEventArgs args)
|
||||
{
|
||||
|
|
@ -94,7 +96,7 @@ public partial class ChatBox : UIWidget
|
|||
|
||||
public void Repopulate()
|
||||
{
|
||||
ClearChatContents(); // Sunrise
|
||||
ClearChatContents(); // Sunrise-Edit
|
||||
|
||||
foreach (var message in _controller.History)
|
||||
{
|
||||
|
|
@ -104,7 +106,7 @@ public partial class ChatBox : UIWidget
|
|||
|
||||
private void OnChannelFilter(ChatChannel channel, bool active)
|
||||
{
|
||||
ClearChatContents(); // Sunrise
|
||||
ClearChatContents(); // Sunrise-Edit
|
||||
|
||||
foreach (var message in _controller.History)
|
||||
{
|
||||
|
|
@ -122,7 +124,7 @@ public partial class ChatBox : UIWidget
|
|||
_controller.UpdateHighlights(highlighs);
|
||||
}
|
||||
|
||||
// Sunrise start
|
||||
// Sunrise-Start
|
||||
private void ClearChatContents()
|
||||
{
|
||||
Contents.Clear();
|
||||
|
|
@ -135,7 +137,7 @@ public partial class ChatBox : UIWidget
|
|||
}
|
||||
}
|
||||
}
|
||||
// Sunrise end
|
||||
// Sunrise-End
|
||||
|
||||
public void AddLine(string message, Color color)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -71,11 +71,13 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
_changelog.ToggleWindow();
|
||||
};
|
||||
|
||||
// Sunrise-Start
|
||||
_escapeWindow.RoadmapButton.OnPressed += _ =>
|
||||
{
|
||||
CloseEscapeWindow();
|
||||
UIManager.GetUIController<RoadmapUIController>().ToggleRoadmap();
|
||||
};
|
||||
// Sunrise-End
|
||||
|
||||
_escapeWindow.RulesButton.OnPressed += _ =>
|
||||
{
|
||||
|
|
@ -101,7 +103,7 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
_console.ExecuteCommand("quit");
|
||||
};
|
||||
|
||||
// Sunrise-start
|
||||
// Sunrise-Start
|
||||
_escapeWindow.DonateButton.OnPressed += _ =>
|
||||
{
|
||||
_uri.OpenUri(_cfg.GetCVar(SunriseCCVars.InfoLinksDonate));
|
||||
|
|
@ -111,7 +113,7 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
{
|
||||
_uri.OpenUri(_cfg.GetCVar(SunriseCCVars.InfoLinksReplays));
|
||||
};
|
||||
// Sunrise-end
|
||||
// Sunrise-End
|
||||
|
||||
_escapeWindow.WikiButton.OnPressed += _ =>
|
||||
{
|
||||
|
|
@ -126,9 +128,11 @@ public sealed class EscapeUIController : UIController, IOnStateEntered<GameplayS
|
|||
// Hide wiki button if we don't have a link for it.
|
||||
_escapeWindow.WikiButton.Visible = _cfg.GetCVar(CCVars.InfoLinksWiki) != "";
|
||||
|
||||
_escapeWindow.DonateButton.Visible = _cfg.GetCVar(SunriseCCVars.InfoLinksDonate) != ""; // Sunrise-Sponsors
|
||||
|
||||
_escapeWindow.ReplaysButton.Visible = _cfg.GetCVar(SunriseCCVars.InfoLinksReplays) != ""; // Sunrise-Replays
|
||||
// Sunrise-Start
|
||||
_escapeWindow.DonateButton.Visible = _cfg.GetCVar(SunriseCCVars.InfoLinksDonate) != "";
|
||||
_escapeWindow.ReplaysButton.Visible = _cfg.GetCVar(SunriseCCVars.InfoLinksReplays) != "";
|
||||
// Sunrise-End
|
||||
|
||||
CommandBinds.Builder
|
||||
.Bind(EngineKeyFunctions.EscapeMenu,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
|
|||
{
|
||||
private SpriteSystem _spriteSystem;
|
||||
public event Action<GhostRoleInfo>? OnRoleSelected;
|
||||
public event Action<GhostRoleInfo>? OnRoleRules;
|
||||
public event Action<GhostRoleInfo>? OnRoleRules; // Sunrise-Edit
|
||||
public event Action<GhostRoleInfo>? OnRoleFollow;
|
||||
|
||||
public GhostRoleButtonsBox(bool hasAccess, FormattedMessage? reason, IEnumerable<GhostRoleInfo> roles, SpriteSystem spriteSystem)
|
||||
|
|
@ -26,7 +26,7 @@ namespace Content.Client.UserInterface.Systems.Ghost.Controls.Roles
|
|||
{
|
||||
var button = new GhostRoleEntryButtons(role);
|
||||
button.RequestButton.OnPressed += _ => OnRoleSelected?.Invoke(role);
|
||||
button.RulesButton.OnPressed += _ => OnRoleRules?.Invoke(role);
|
||||
button.RulesButton.OnPressed += _ => OnRoleRules?.Invoke(role); // Sunrise-Edit
|
||||
button.FollowButton.OnPressed += _ => OnRoleFollow?.Invoke(role);
|
||||
|
||||
if (!hasAccess)
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ namespace Content.Client.VendingMachines.UI
|
|||
|
||||
public VendingMachineMenu()
|
||||
{
|
||||
MinSize = new Vector2(250, 150); // Sunrise-Resize
|
||||
SetSize = new Vector2(450, 150); // Sunrise-Resize
|
||||
MinSize = new Vector2(250, 150); // Sunrise-Edit
|
||||
SetSize = new Vector2(450, 150); // Sunrise-Edit
|
||||
RobustXamlLoader.Load(this);
|
||||
IoCManager.InjectDependencies(this);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,16 +24,16 @@ public sealed class VoiceMaskBoundUserInterface : BoundUserInterface
|
|||
_window = this.CreateWindow<VoiceMaskNameChangeWindow>();
|
||||
_window.ReloadVerbs(_protomanager);
|
||||
_window.AddVerbs();
|
||||
// Sunrise-TTS-Start
|
||||
// Sunrise-Start
|
||||
if (IoCManager.Resolve<IConfigurationManager>().GetCVar(SunriseCCVars.TTSEnabled))
|
||||
{
|
||||
_window.ReloadVoices(IoCManager.Resolve<IPrototypeManager>());
|
||||
}
|
||||
// Sunrise-TTS-End
|
||||
// Sunrise-End
|
||||
|
||||
_window.OnNameChange += OnNameSelected;
|
||||
_window.OnVerbChange += verb => SendMessage(new VoiceMaskChangeVerbMessage(verb));
|
||||
_window.OnVoiceChange += voice => SendMessage(new VoiceMaskChangeVoiceMessage(voice)); // Sunrise-TTS
|
||||
_window.OnVoiceChange += voice => SendMessage(new VoiceMaskChangeVoiceMessage(voice)); // Sunrise-Edit
|
||||
}
|
||||
|
||||
private void OnNameSelected(string name)
|
||||
|
|
@ -48,7 +48,7 @@ public sealed class VoiceMaskBoundUserInterface : BoundUserInterface
|
|||
return;
|
||||
}
|
||||
|
||||
_window.UpdateState(cast.Name, cast.Voice, cast.Verb); // Sunrise-TTS
|
||||
_window.UpdateState(cast.Name, cast.Voice, cast.Verb); // Sunrise-Edit
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
<Label Text="{Loc 'voice-mask-name-change-speech-style'}" />
|
||||
<OptionButton Name="SpeechVerbSelector" /> <!-- Populated in LoadVerbs -->
|
||||
</BoxContainer>
|
||||
<!-- Sunrise-TTS-Start -->
|
||||
<!-- Sunrise-Start -->
|
||||
<BoxContainer Orientation="Horizontal" Margin="5" Visible="False" Name="TTSContainer">
|
||||
<Label Text="{Loc 'voice-mask-voice-change-info'}" />
|
||||
<OptionButton Name="VoiceSelector" /> <!-- Populated in LoadVerbs -->
|
||||
</BoxContainer>
|
||||
<!-- Sunrise-TTS-End -->
|
||||
<!-- Sunrise-End -->
|
||||
</BoxContainer>
|
||||
</controls:FancyWindow>
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ public sealed partial class VoiceMaskNameChangeWindow : FancyWindow
|
|||
{
|
||||
public Action<string>? OnNameChange;
|
||||
public Action<string?>? OnVerbChange;
|
||||
public Action<string>? OnVoiceChange; // Sunrise-TTS
|
||||
public Action<string>? OnVoiceChange; // Sunrise-Edit
|
||||
|
||||
private List<(string, string)> _verbs = new();
|
||||
private List<TTSVoicePrototype> _voices = new(); // Sunrise-TTS
|
||||
private List<TTSVoicePrototype> _voices = new(); // Sunrise-Edit
|
||||
|
||||
private string? _verb;
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ public sealed partial class VoiceMaskNameChangeWindow : FancyWindow
|
|||
SpeechVerbSelector.SelectId(id);
|
||||
}
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
// Sunrise-Start
|
||||
public void ReloadVoices(IPrototypeManager proto)
|
||||
{
|
||||
VoiceSelector.OnItemSelected += args =>
|
||||
|
|
@ -91,7 +91,7 @@ public sealed partial class VoiceMaskNameChangeWindow : FancyWindow
|
|||
if (_voices.Count > 0)
|
||||
TTSContainer.Visible = true;
|
||||
}
|
||||
// Sunrise-TTS-End
|
||||
// Sunrise-End
|
||||
|
||||
public void UpdateState(string name, string voice, string? verb) // Sunrise-TTS
|
||||
{
|
||||
|
|
@ -107,10 +107,10 @@ public sealed partial class VoiceMaskNameChangeWindow : FancyWindow
|
|||
}
|
||||
}
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
// Sunrise-Start
|
||||
var voiceIdx = _voices.FindIndex(v => v.ID == voice);
|
||||
if (voiceIdx != -1)
|
||||
VoiceSelector.Select(voiceIdx);
|
||||
// Sunrise-TTS-End
|
||||
// Sunrise-End
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ namespace Content.Client.Voting.UI
|
|||
{
|
||||
{ VotekickReasonType.Raiding.ToString(), Loc.GetString("ui-vote-votekick-type-raiding") },
|
||||
{ VotekickReasonType.Cheating.ToString(), Loc.GetString("ui-vote-votekick-type-cheating") },
|
||||
{ VotekickReasonType.Spam.ToString(), Loc.GetString("ui-vote-votekick-type-spam") }
|
||||
{ VotekickReasonType.Spam.ToString(), Loc.GetString("ui-vote-votekick-type-spamming") }
|
||||
};
|
||||
|
||||
public Dictionary<NetUserId, (NetEntity, string)> PlayerList = new();
|
||||
|
|
@ -88,8 +88,10 @@ namespace Content.Client.Voting.UI
|
|||
VoteTypeButton.AddItem(Loc.GetString(option.Name), (int)voteType);
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
var loc = IoCManager.Resolve<ILocalizationManager>();
|
||||
DetailsEdit.Placeholder = new Rope.Leaf(loc.GetString("ui-vote-votekick-details-placeholder"));
|
||||
// Sunrise-End
|
||||
|
||||
_state.OnStateChanged += OnStateChanged;
|
||||
VoteTypeButton.OnItemSelected += VoteTypeSelected;
|
||||
|
|
@ -181,7 +183,7 @@ namespace Content.Client.Voting.UI
|
|||
}
|
||||
}
|
||||
|
||||
commandArgs += $"\"{Rope.Collapse(DetailsEdit.TextRope)}\"";
|
||||
commandArgs += $"\"{Rope.Collapse(DetailsEdit.TextRope)}\""; // Sunrise-Edit
|
||||
_consoleHost.LocalShell.RemoteExecuteCommand($"createvote {((StandardVoteType)typeId).ToString()} {commandArgs}");
|
||||
}
|
||||
|
||||
|
|
@ -240,7 +242,6 @@ namespace Content.Client.Voting.UI
|
|||
VoteTypeButton.SelectId(obj.Id);
|
||||
|
||||
VoteNotTrustedLabel.Visible = false;
|
||||
DetailsEdit.Visible = false;
|
||||
if ((StandardVoteType)obj.Id == StandardVoteType.Votekick)
|
||||
{
|
||||
if (!IsAllowedVotekick)
|
||||
|
|
@ -254,8 +255,6 @@ namespace Content.Client.Voting.UI
|
|||
{
|
||||
_votingSystem.RequestVotePlayerList();
|
||||
}
|
||||
|
||||
DetailsEdit.Visible = true;
|
||||
}
|
||||
|
||||
VoteWarningLabel.Visible = AvailableVoteOptions[(StandardVoteType)obj.Id].EnableVoteWarning;
|
||||
|
|
|
|||
|
|
@ -70,13 +70,16 @@ namespace Content.Client.Voting
|
|||
|
||||
_netManager.RegisterNetMessage<MsgVoteData>(ReceiveVoteData);
|
||||
_netManager.RegisterNetMessage<MsgVoteCanCall>(ReceiveVoteCanCall);
|
||||
// Sunrise-Start
|
||||
_netManager.RegisterNetMessage<RequestVoteMusicDisableOptionMessage>(OnRequestVoteMusicDisableOption);
|
||||
_netManager.RegisterNetMessage<VoteMusicDisableOptionMessage>();
|
||||
_cfg.OnValueChanged(SunriseCCVars.VoteMusicDisable, OnVoteMusicDisableOptionChanged);
|
||||
// Sunrise-End
|
||||
|
||||
_client.RunLevelChanged += ClientOnRunLevelChanged;
|
||||
}
|
||||
|
||||
// Sunrise-Start
|
||||
private void OnRequestVoteMusicDisableOption(RequestVoteMusicDisableOptionMessage _)
|
||||
{
|
||||
var message = new VoteMusicDisableOptionMessage
|
||||
|
|
@ -94,6 +97,7 @@ namespace Content.Client.Voting
|
|||
};
|
||||
_netManager.ClientSendMessage(message);
|
||||
}
|
||||
// Sunrise-End
|
||||
|
||||
private void ClientOnRunLevelChanged(object? sender, RunLevelChangedEventArgs e)
|
||||
{
|
||||
|
|
@ -180,7 +184,7 @@ namespace Content.Client.Voting
|
|||
{
|
||||
Entries = message.Options
|
||||
.Select(c => new VoteEntry(c.name))
|
||||
.ToArray(),
|
||||
.ToArray()
|
||||
};
|
||||
|
||||
existingVote = vote;
|
||||
|
|
|
|||
|
|
@ -3,39 +3,33 @@ using Robust.Client.Graphics;
|
|||
using Robust.Client.Input;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Client.Weapons.Melee;
|
||||
|
||||
|
||||
public sealed class MeleeSpreadCommand : IConsoleCommand
|
||||
public sealed class MeleeSpreadCommand : LocalizedEntityCommands
|
||||
{
|
||||
public string Command => "showmeleespread";
|
||||
public string Description => "Shows the current weapon's range and arc for debugging";
|
||||
public string Help => $"{Command}";
|
||||
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
[Dependency] private readonly IEyeManager _eyeManager = default!;
|
||||
[Dependency] private readonly IInputManager _inputManager = default!;
|
||||
[Dependency] private readonly IOverlayManager _overlay = default!;
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
[Dependency] private readonly MeleeWeaponSystem _meleeSystem = default!;
|
||||
[Dependency] private readonly SharedCombatModeSystem _combatSystem = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||
|
||||
public override string Command => "showmeleespread";
|
||||
|
||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
||||
{
|
||||
var collection = IoCManager.Instance;
|
||||
|
||||
if (collection == null)
|
||||
if (_overlay.RemoveOverlay<MeleeArcOverlay>())
|
||||
return;
|
||||
|
||||
var overlayManager = collection.Resolve<IOverlayManager>();
|
||||
|
||||
if (overlayManager.RemoveOverlay<MeleeArcOverlay>())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var sysManager = collection.Resolve<IEntitySystemManager>();
|
||||
|
||||
overlayManager.AddOverlay(new MeleeArcOverlay(
|
||||
collection.Resolve<IEntityManager>(),
|
||||
collection.Resolve<IEyeManager>(),
|
||||
collection.Resolve<IInputManager>(),
|
||||
collection.Resolve<IPlayerManager>(),
|
||||
sysManager.GetEntitySystem<MeleeWeaponSystem>(),
|
||||
sysManager.GetEntitySystem<SharedCombatModeSystem>(),
|
||||
sysManager.GetEntitySystem<SharedTransformSystem>()));
|
||||
_overlay.AddOverlay(new MeleeArcOverlay(
|
||||
EntityManager,
|
||||
_eyeManager,
|
||||
_inputManager,
|
||||
_playerManager,
|
||||
_meleeSystem,
|
||||
_combatSystem,
|
||||
_transformSystem));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
namespace Content.Client.Weapons.Ranged.Systems;
|
||||
|
||||
public enum FireModesLayers : byte
|
||||
{
|
||||
FireMode,
|
||||
}
|
||||
|
|
@ -201,29 +201,10 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
|
|||
("max", node.Value.Comp.MaxDurability)));
|
||||
|
||||
var hasInfo = _xenoArtifact.HasUnlockedPredecessor(artifact.Value, node.Value);
|
||||
string effectDescription;
|
||||
if (!node.Value.Comp.Locked)
|
||||
{
|
||||
// Show the real effect description if the node has been activated at least once
|
||||
var rawDescription = _ent.GetComponentOrNull<MetaDataComponent>(node.Value)?.EntityDescription;
|
||||
if (!string.IsNullOrEmpty(rawDescription))
|
||||
{
|
||||
// Try to localize the description, fall back to raw description if it fails
|
||||
effectDescription = Loc.TryGetString(rawDescription, out var localized) ? localized : rawDescription;
|
||||
}
|
||||
else
|
||||
{
|
||||
effectDescription = Loc.GetString("artifact-effect-hint-data-deleted");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Otherwise, show the censored string
|
||||
effectDescription = Loc.GetString("artifact-effect-hint-data-deleted");
|
||||
}
|
||||
|
||||
EffectValueLabel.SetMarkup(Loc.GetString("analysis-console-info-effect-value",
|
||||
("state", hasInfo),
|
||||
("info", effectDescription)));
|
||||
("info", _ent.GetComponentOrNull<MetaDataComponent>(node.Value)?.EntityDescription ?? string.Empty)));
|
||||
|
||||
var predecessorNodes = _xenoArtifact.GetPredecessorNodes(artifact.Value.Owner, node.Value);
|
||||
if (!hasInfo)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
using Content.Client.CartridgeLoader.Cartridges;
|
||||
using Content.Client.UserInterface.Fragments;
|
||||
using Content.Shared.CartridgeLoader.Cartridges;
|
||||
using Robust.Client.UserInterface;
|
||||
|
||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||
namespace Content.Client._Sunrise.CartridgeLoader.Cartridges;
|
||||
|
||||
public sealed partial class NavigatorUi : UIFragment
|
||||
{
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<cartridges:NavigatorUiFragment xmlns:cartridges="clr-namespace:Content.Client.CartridgeLoader.Cartridges"
|
||||
<cartridges:NavigatorUiFragment xmlns:cartridges="clr-namespace:Content.Client._Sunrise.CartridgeLoader.Cartridges"
|
||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||
xmlns="https://spacestation14.io" Margin="1 0 2 0"
|
||||
Orientation="Vertical">
|
||||
|
|
@ -7,7 +7,7 @@ using Robust.Shared.Map;
|
|||
using Robust.Shared.Timing;
|
||||
using System.Numerics;
|
||||
|
||||
namespace Content.Client.CartridgeLoader.Cartridges;
|
||||
namespace Content.Client._Sunrise.CartridgeLoader.Cartridges;
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class NavigatorUiFragment : BoxContainer
|
||||
|
|
@ -1,31 +1,32 @@
|
|||
using Content.Shared.Weapons.Ranged.Components;
|
||||
using Content.Client.Weapons.Ranged.Components;
|
||||
using Content.Client.Weapons.Ranged.Systems;
|
||||
using Content.Shared.Weapons.Ranged.Components;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Weapons.Ranged.Systems;
|
||||
namespace Content.Client._Sunrise.Weapons.Ranged.Systems;
|
||||
|
||||
public sealed class BatteryWeaponFireModesVisualSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly GunSystem _gun = default!;
|
||||
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<BatteryWeaponFireModesComponent, AfterAutoHandleStateEvent>(OnFireModeChanged);
|
||||
}
|
||||
|
||||
|
||||
private void OnFireModeChanged(EntityUid uid, BatteryWeaponFireModesComponent component, ref AfterAutoHandleStateEvent args)
|
||||
{
|
||||
if (!TryComp<SpriteComponent>(uid, out var sprite))
|
||||
return;
|
||||
|
||||
|
||||
var fireMode = component.FireModes[component.CurrentFireMode];
|
||||
|
||||
|
||||
if (fireMode.VisualState != null && sprite.LayerMapTryGet(FireModesLayers.FireMode, out _))
|
||||
sprite.LayerSetState(FireModesLayers.FireMode, fireMode.VisualState);
|
||||
|
||||
|
||||
if (TryComp<MagazineVisualsComponent>(uid, out var magVisualsComp) && fireMode.MagState != null)
|
||||
_gun.SetMagState(uid, fireMode.MagState, false, magVisualsComp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
namespace Content.Client._Sunrise.Weapons.Ranged.Systems;
|
||||
|
||||
public enum FireModesLayers : byte
|
||||
{
|
||||
FireMode,
|
||||
}
|
||||
|
|
@ -33,19 +33,12 @@ public sealed class ActionsAddedTest
|
|||
Assert.That(serverSession.AttachedEntity, Is.Not.Null);
|
||||
var serverEnt = serverSession.AttachedEntity!.Value;
|
||||
var clientEnt = clientSession!.AttachedEntity!.Value;
|
||||
try
|
||||
{
|
||||
Assert.That(sEntMan.EntityExists(serverEnt));
|
||||
Assert.That(cEntMan.EntityExists(clientEnt));
|
||||
Assert.That(sEntMan.HasComponent<ActionsComponent>(serverEnt));
|
||||
Assert.That(cEntMan.HasComponent<ActionsComponent>(clientEnt));
|
||||
Assert.That(sEntMan.HasComponent<CombatModeComponent>(serverEnt));
|
||||
Assert.That(cEntMan.HasComponent<CombatModeComponent>(clientEnt));
|
||||
}
|
||||
catch (AssertionException)
|
||||
{
|
||||
Console.WriteLine("Assert Failed.");
|
||||
}
|
||||
Assert.That(sEntMan.EntityExists(serverEnt));
|
||||
Assert.That(cEntMan.EntityExists(clientEnt));
|
||||
Assert.That(sEntMan.HasComponent<ActionsComponent>(serverEnt));
|
||||
Assert.That(cEntMan.HasComponent<ActionsComponent>(clientEnt));
|
||||
Assert.That(sEntMan.HasComponent<CombatModeComponent>(serverEnt));
|
||||
Assert.That(cEntMan.HasComponent<CombatModeComponent>(clientEnt));
|
||||
|
||||
var sComp = sEntMan.GetComponent<ActionsComponent>(serverEnt);
|
||||
var cComp = cEntMan.GetComponent<ActionsComponent>(clientEnt);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,10 @@ namespace Content.IntegrationTests.Tests.Buckle
|
|||
- type: Body
|
||||
prototype: Human
|
||||
- type: StandingState
|
||||
# Sunrise-Start
|
||||
- type: Appearance
|
||||
- type: DoAfter
|
||||
# Sunrise-End
|
||||
|
||||
- type: entity
|
||||
name: {StrapDummyId}
|
||||
|
|
|
|||
|
|
@ -38,12 +38,8 @@ namespace Content.IntegrationTests.Tests.Chemistry
|
|||
|
||||
foreach (var reactionPrototype in prototypeManager.EnumeratePrototypes<ReactionPrototype>())
|
||||
{
|
||||
Console.WriteLine($"\n=== Testing reaction: {reactionPrototype.ID} ===");
|
||||
Console.WriteLine($"Reactants:");
|
||||
foreach (var (id, reactant) in reactionPrototype.Reactants)
|
||||
{
|
||||
Console.WriteLine($" {id}: {reactant.Amount} (catalyst: {reactant.Catalyst})");
|
||||
}
|
||||
//since i have no clue how to isolate each loop assert-wise im just gonna throw this one in for good measure
|
||||
Console.WriteLine($"Testing {reactionPrototype.ID}");
|
||||
|
||||
EntityUid beaker = default;
|
||||
Entity<SolutionComponent>? solutionEnt = default!;
|
||||
|
|
@ -102,60 +98,23 @@ namespace Content.IntegrationTests.Tests.Chemistry
|
|||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
//you just got linq'd fool
|
||||
//(i'm sorry)
|
||||
var foundProductsMap = reactionPrototype.Products
|
||||
.Concat(reactionPrototype.Reactants.Where(x => x.Value.Catalyst).ToDictionary(x => x.Key, x => x.Value.Amount))
|
||||
.ToDictionary(x => x, _ => false);
|
||||
|
||||
Console.WriteLine($"\nExpected products for {reactionPrototype.ID}:");
|
||||
foreach (var (reagent, quantity) in foundProductsMap)
|
||||
{
|
||||
Console.WriteLine($" {reagent.Key}: {reagent.Value}");
|
||||
}
|
||||
|
||||
Console.WriteLine($"\nActual solution contents for {reactionPrototype.ID}:");
|
||||
foreach (var (reagent, quantity) in solution.Contents)
|
||||
{
|
||||
Console.WriteLine($" {reagent.Prototype}: {quantity}");
|
||||
}
|
||||
|
||||
foreach (var (reagent, quantity) in solution.Contents)
|
||||
{
|
||||
var found = foundProductsMap.TryFirstOrNull(x => x.Key.Key == reagent.Prototype && x.Key.Value == quantity, out var foundProduct);
|
||||
if (!found)
|
||||
{
|
||||
Console.WriteLine($"\nERROR: Failed to find match for {reagent.Prototype} x{quantity}");
|
||||
var possibleMatches = foundProductsMap.Where(x => x.Key.Key == reagent.Prototype).ToList();
|
||||
if (possibleMatches.Any())
|
||||
{
|
||||
Console.WriteLine("Possible matches with different quantities:");
|
||||
foreach (var match in possibleMatches)
|
||||
{
|
||||
Console.WriteLine($" {match.Key.Key} x{match.Key.Value}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("No matches found for this reagent type");
|
||||
}
|
||||
}
|
||||
Assert.That(found, Is.True, $"Failed to find match for {reagent.Prototype} x{quantity} in reaction {reactionPrototype.ID}");
|
||||
Assert.That(foundProductsMap.TryFirstOrNull(x => x.Key.Key == reagent.Prototype && x.Key.Value == quantity, out var foundProduct));
|
||||
foundProductsMap[foundProduct.Value.Key] = true;
|
||||
}
|
||||
|
||||
var missingProducts = foundProductsMap.Where(x => !x.Value).ToList();
|
||||
if (missingProducts.Any())
|
||||
{
|
||||
Console.WriteLine($"\nERROR: Missing expected products in {reactionPrototype.ID}:");
|
||||
foreach (var (reagent, _) in missingProducts)
|
||||
{
|
||||
Console.WriteLine($" {reagent.Key}: {reagent.Value}");
|
||||
}
|
||||
}
|
||||
|
||||
Assert.That(foundProductsMap.All(x => x.Value), $"Not all expected products were found in reaction {reactionPrototype.ID}");
|
||||
Assert.That(foundProductsMap.All(x => x.Value));
|
||||
});
|
||||
|
||||
}
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,11 +109,6 @@ namespace Content.IntegrationTests.Tests
|
|||
.ToList();
|
||||
foreach (var protoId in protoIds)
|
||||
{
|
||||
// Sunrise-Start
|
||||
if (protoId == "Envelope")
|
||||
continue;
|
||||
// Sunrise-End
|
||||
|
||||
entityMan.SpawnEntity(protoId, map.GridCoords);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.Mobs
|
|||
alertsSystem.ShowAlert(playerUid, "Debug1");
|
||||
alertsSystem.ShowAlert(playerUid, "Debug2");
|
||||
|
||||
alerts = alertsSystem.GetActiveAlerts(playerUid);
|
||||
Assert.That(alerts, Has.Count.EqualTo(alertCount + 2));
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ public sealed partial class MindTests
|
|||
{
|
||||
Console.WriteLine(pair.Client.EntMan.ToPrettyString(ent));
|
||||
}
|
||||
|
||||
Console.WriteLine($"Client entity count: {pair.Client.EntMan.EntityCount}");
|
||||
|
||||
Assert.That(pair.Client.EntMan.EntityCount, Is.EqualTo(0));
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,11 @@ public sealed class SlippingTest : MovementTest
|
|||
await SpawnTarget("TrashBananaPeel");
|
||||
|
||||
var modifier = Comp<MovementSpeedModifierComponent>(Player).SprintSpeedModifier;
|
||||
// Sunrise: Ввиду бхоп системы, скорость не ровно 1, а может быть чуть больше.
|
||||
// Sunrise-Start
|
||||
// Ввиду бхоп системы, скорость не ровно 1, а может быть чуть больше.
|
||||
// Assert.That(modifier, Is.EqualTo(1), "Player is not moving at full speed.");
|
||||
Assert.That(Math.Abs(modifier - 1), Is.LessThan(0.1f)); // Sunrise-add
|
||||
Assert.That(Math.Abs(modifier - 1), Is.LessThan(0.1f));
|
||||
// Sunrise-End
|
||||
|
||||
// Player is to the left of the banana peel.
|
||||
Assert.That(Delta(), Is.GreaterThan(0.5f));
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace Content.IntegrationTests.Tests.Preferences
|
|||
FlavorText = "The biggest boy around.",
|
||||
Species = "Human",
|
||||
Age = 21,
|
||||
BodyType = "Normal",
|
||||
BodyType = "Normal", // Sunrise-Edit
|
||||
Appearance = new(
|
||||
"Afro",
|
||||
Color.Aqua,
|
||||
|
|
@ -54,8 +54,8 @@ namespace Content.IntegrationTests.Tests.Preferences
|
|||
Color.Azure,
|
||||
Color.Beige,
|
||||
new (),
|
||||
1.0f,
|
||||
1.0f)
|
||||
1.0f, // Sunrise-Edit
|
||||
1.0f) // Sunrise-Edit
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,84 +0,0 @@
|
|||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.FixedPoint;
|
||||
|
||||
namespace Content.IntegrationTests.Tests._Sunrise.Chemistry;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(CryostasisBeakerSystem))]
|
||||
public sealed class CryostasisBeakerTests
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
- type: entity
|
||||
id: TestCryostasisBeaker
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
beaker:
|
||||
maxVol: 50
|
||||
canReact: false
|
||||
- type: CryostasisBeaker
|
||||
maxTemperature: 293.15
|
||||
|
||||
- type: reagent
|
||||
id: TestReagent
|
||||
name: reagent-name-nothing
|
||||
desc: reagent-desc-nothing
|
||||
physicalDesc: reagent-physical-desc-nothing
|
||||
";
|
||||
|
||||
[Test]
|
||||
public async Task CryostasisBeakerPreventsHeating()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var solutionSystem = server.System<SharedSolutionContainerSystem>();
|
||||
|
||||
var beaker = server.EntMan.SpawnEntity("TestCryostasisBeaker", testMap.GridCoords);
|
||||
|
||||
Assert.That(solutionSystem.TryGetSolution(beaker, "beaker", out var solutionEntity, out var solution));
|
||||
|
||||
solutionSystem.TryAddReagent(solutionEntity.Value, "TestReagent", FixedPoint2.New(10));
|
||||
|
||||
solutionSystem.SetTemperature(solutionEntity.Value, 500.0f);
|
||||
|
||||
Assert.That(solution!.Temperature, Is.LessThanOrEqualTo(293.15f));
|
||||
|
||||
solutionSystem.AddThermalEnergy(solutionEntity.Value, 10000.0f);
|
||||
|
||||
Assert.That(solution.Temperature, Is.LessThanOrEqualTo(293.15f));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task NormalBeakerAllowsHeating()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var solutionSystem = server.System<SharedSolutionContainerSystem>();
|
||||
|
||||
var beaker = server.EntMan.SpawnEntity("TestCryostasisBeaker", testMap.GridCoords);
|
||||
if (server.EntMan.HasComponent<CryostasisBeakerComponent>(beaker))
|
||||
server.EntMan.RemoveComponent<CryostasisBeakerComponent>(beaker);
|
||||
|
||||
Assert.That(solutionSystem.TryGetSolution(beaker, "beaker", out var solutionEntity, out var solution));
|
||||
|
||||
solutionSystem.TryAddReagent(solutionEntity.Value, "TestReagent", FixedPoint2.New(10));
|
||||
|
||||
solutionSystem.SetTemperature(solutionEntity.Value, 500.0f);
|
||||
|
||||
Assert.That(solution!.Temperature, Is.EqualTo(500.0f));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -71,15 +71,15 @@ public static class ClientPackaging
|
|||
|
||||
var inputPass = graph.Input;
|
||||
|
||||
// Sunrise-Sponsors-Start
|
||||
// Sunrise-Start
|
||||
var assemblies = new List<string> { "Content.Client", "Content.Shared", "Content.Shared.Database", "Content.Sunrise.Interfaces.Client", "Content.Sunrise.Interfaces.Shared" };
|
||||
// Sunrise-Sponsors-End
|
||||
// Sunrise-End
|
||||
|
||||
await RobustSharedPackaging.WriteContentAssemblies(
|
||||
inputPass,
|
||||
contentDir,
|
||||
"Content.Client",
|
||||
assemblies, // Sunrise-Sponsors
|
||||
assemblies, // Sunrise-Edit
|
||||
cancel: cancel);
|
||||
|
||||
await RobustClientPackaging.WriteClientResources(
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public static class ServerPackaging
|
|||
"Npgsql",
|
||||
"Microsoft",
|
||||
"NetCord",
|
||||
"0Harmony",
|
||||
"0Harmony", // Sunrise-Edit
|
||||
};
|
||||
|
||||
private static readonly List<string> ServerNotExtraAssemblies = new()
|
||||
|
|
|
|||
|
|
@ -479,5 +479,7 @@ public enum LogType
|
|||
/// </summary>
|
||||
Instrument = 103,
|
||||
|
||||
// Sunrise-Start
|
||||
Interactions = 104,
|
||||
// Sunrise-End
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@
|
|||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Taken from TG station"
|
||||
source: "https://github.com/tgstation/tgstation/commit/827967c9650c23af64280ad1491405fed8f644c5#diff-6cc910b7cad9ac4333c8d0885fc844746066120b465d8d4ba8f7019169316574"
|
||||
- files: ["traitor_wawa.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Taken from TG station, edited by FairlySadPanda (Github)"
|
||||
source: "https://github.com/tgstation/tgstation/commit/827967c9650c23af64280ad1491405fed8f644c5#diff-6cc910b7cad9ac4333c8d0885fc844746066120b465d8d4ba8f7019169316574"
|
||||
- files: ["pirate_start.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Made by @MIXnikita#1474 (Discord) for SS14"
|
||||
|
|
@ -24,5 +28,6 @@
|
|||
source: "https://www.youtube.com/watch?v=jf1sYGYVLsw"
|
||||
- files: ["changeling_start.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Taken from TG station"
|
||||
source: "https://github.com/tgstation/tgstation/blob/master/sound/ambience/antag/ling_alert.ogg"
|
||||
copyright: "Taken from TG station at commit https://github.com/tgstation/tgstation/commit/436ba869ebcd0b60b63973fb7562f447ee655205"
|
||||
source: "https://github.com/tgstation/tgstation/blob/master/sound/music/antag/ling_alert.ogg"
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,9 +1,9 @@
|
|||
- files:
|
||||
- hyperspace_begin.ogg
|
||||
- hyperspace_end.ogg
|
||||
copyright: 'taken from TauCetiStation and trimmed by Morb0'
|
||||
copyright: '"hyperspace_begin.ogg", and "hyperspace_end.ogg" by /tg/station'
|
||||
license: CC-BY-SA-3.0
|
||||
source: https://github.com/TauCetiStation/TauCetiClassic/commit/92d2767dbb39f28540f78d5055e7be1eb7acee98
|
||||
source: https://github.com/tgstation/tgstation/tree/71a79f1f75902d2ccab27cbffb971b12b7ab042d/sound/runtime/hyperspace
|
||||
|
||||
- files: [hyperspace_progress.ogg]
|
||||
copyright: '"hyperspace_progress.ogg" by /tg/station. Modified for looping by metalgearsloth.'
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -247,12 +247,17 @@
|
|||
copyright: "Created by mattroks101 for Bee Station. cig_snuff converted to mono"
|
||||
source: "https://github.com/BeeStation/BeeStation-Hornet/pull/29"
|
||||
|
||||
- files: [changeling_shriek.ogg]
|
||||
copyright: whateverusername0
|
||||
license: CC-BY-SA-3.0
|
||||
source: https://github.com/whateverusername0/space-station-14-wizden/blob/ling/Resources/Audio/Effects/changeling_shriek.ogg
|
||||
- files: [stealthoff.ogg]
|
||||
copyright: 'TGStation at d4f678a1772007ff8d7eddd21cf7218c8e07bfc0'
|
||||
license: "CC-BY-SA-3.0"
|
||||
source: https://github.com/tgstation/tgstation/commit/d4f678a1772007ff8d7eddd21cf7218c8e07bfc0
|
||||
|
||||
- files: [beeps.ogg, electrical_short_circuit.ogg, electrical_short_circuit2.ogg, ]
|
||||
copyright: '"taken from zvukipro.com'
|
||||
license: "CC-BY-NC-3.0"
|
||||
source: https://zvukipro.com/predmet/158-zvuk-elektrichestva.html
|
||||
- files: ["soft_thump.ogg"]
|
||||
license: "CC-BY-4.0"
|
||||
copyright: "Clipped by FairlySadPanda (Github) from a sound created by CheChoDj (Freesound)"
|
||||
source: "https://freesound.org/people/CheChoDj/sounds/609353/"
|
||||
|
||||
- files: [card_drag.ogg]
|
||||
copyright: 'created by Tao7891; perryprog (GitHub) downmixed to mono'
|
||||
license: CC0-1.0
|
||||
source: https://github.com/space-wizards/space-station-14/pull/37363
|
||||
|
|
|
|||
Binary file not shown.
27
Resources/Audio/Jukebox/attributions.yml
Normal file
27
Resources/Audio/Jukebox/attributions.yml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
- files: ["sector11.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "-Sector11 by MashedByMachines. Converted to mono OGG."
|
||||
source: "https://www.newgrounds.com/audio/listen/312622"
|
||||
|
||||
- files: ["mod.flip-flap.ogg"]
|
||||
license: "Custom"
|
||||
copyright: "Flip Flap by X-ceed is licensed under a short but clear license (see flip-flap.txt in Audio/Lobby) and is free for non-commercial use. Converted to mono OGG."
|
||||
source: "http://aminet.net/package/mods/xceed/Flipflap"
|
||||
|
||||
- files: ["title3.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Title3 by Cuboos. It is a remix of the song 'Tintin on the Moon'. Converted to mono OGG."
|
||||
source: "https://www.youtube.com/watch?v=YKVmXn-Gv0M"
|
||||
|
||||
- files:
|
||||
- "constellations.ogg"
|
||||
- "drifting.ogg"
|
||||
- "starlight.ogg"
|
||||
license: "CC-BY-3.0"
|
||||
copyright: "Constellations by Qwertyquerty. Converted to mono OGG."
|
||||
source: "https://www.youtube.com/channel/UCPYbhBUGhH7n_G4HLK2YipQ"
|
||||
|
||||
- files: ["sunset.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Sunset by PigeonBeans. Exported in Mono OGG."
|
||||
source: "https://soundcloud.com/pigeonbeans/sunset"
|
||||
BIN
Resources/Audio/Jukebox/constellations.ogg
Normal file
BIN
Resources/Audio/Jukebox/constellations.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/drifting.ogg
Normal file
BIN
Resources/Audio/Jukebox/drifting.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/flip-flap.ogg
Normal file
BIN
Resources/Audio/Jukebox/flip-flap.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/sector11.ogg
Normal file
BIN
Resources/Audio/Jukebox/sector11.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/starlight.ogg
Normal file
BIN
Resources/Audio/Jukebox/starlight.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/sunset.ogg
Normal file
BIN
Resources/Audio/Jukebox/sunset.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Jukebox/title3.ogg
Normal file
BIN
Resources/Audio/Jukebox/title3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/Spac_Stac.ogg
Normal file
BIN
Resources/Audio/Lobby/Spac_Stac.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/atomicamnesiammx.ogg
Normal file
BIN
Resources/Audio/Lobby/atomicamnesiammx.ogg
Normal file
Binary file not shown.
|
|
@ -1,4 +1,9 @@
|
|||
- files: ["endless_space.ogg"]
|
||||
- files: ["thunderdome.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "-Sector11 by MashedByMachines. Converted from MP3 to OGG."
|
||||
source: "https://www.newgrounds.com/audio/listen/312622"
|
||||
|
||||
- files: ["endless_space.ogg"]
|
||||
license: "CC-BY-3.0"
|
||||
copyright: "Endless Space by SolusLunes. Converted from MP3 to OGG."
|
||||
source: "https://www.newgrounds.com/audio/listen/67583"
|
||||
|
|
@ -20,3 +25,53 @@
|
|||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Absconditus by ZhayTee. Converted from MP3 to OGG."
|
||||
source: "https://bandcamp.zhaytee.net/track/absconditus"
|
||||
|
||||
- files: ["atomicamnesiammx.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Atomic Amnesia MMX by Philip Dyer. Converted from MP3 to OGG."
|
||||
source: "https://soundcloud.com/3kliksphilip/atomic-amnesia-mmx-1"
|
||||
|
||||
- files: ["singuloose.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Singuloose by Janis Schiedková. Converted from MP3 to OGG."
|
||||
source: "https://soundcloud.com/js_m/singuloose"
|
||||
|
||||
- files: ["title2.ogg"]
|
||||
license: "Custom"
|
||||
copyright: "Originally composed by Jonathan Dunn for RoboCop (Game Boy) published by Ocean Software. Remixed by Eric Shumaker for his video Dilbert 3. As of October 9th, 2008 nobody owns the rights to this song and copyright action has never been taken against anyone using this song in their projects."
|
||||
source: "https://www.youtube.com/watch?v=4o6_8Unj2mQ"
|
||||
|
||||
- files: ["title3.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Title3 by Cuboos. It is a remix of the song 'Tintin on the Moon'. Converted from MP3 to OGG."
|
||||
source: "https://www.youtube.com/watch?v=YKVmXn-Gv0M"
|
||||
|
||||
- files: ["comet_haley.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Comet Haley by Stellardrone. Converted from MP3 to OGG."
|
||||
source: "https://stellardrone.bandcamp.com/track/comet-halley"
|
||||
|
||||
- files: ["mod.flip-flap.ogg"]
|
||||
license: "Custom"
|
||||
copyright: "Flip Flap by X-ceed is licensed under a short but clear license (see flip-flap.txt in this directory) and is free for non-commercial use. It was converted from MOD to WAV using Schism Tracker, in 16 Bit, Non-Interpolated mode, no output equalizer settings, Ramp volume at start of sample enabled. From there it was converted to OGG Vorbis with `ffmpeg -i flip-flap.wav -q 2.9 flip-flap-renc.ogg` (quality scale chosen to match size of the OGG file being replaced). Non-interpolated mode was chosen as the module has a high enough sample rate to balance it out, but seems muffled in other interpolation modes. If 'Ramp volume at start of sample' is not enabled, a clicking phenomenon results."
|
||||
source: "http://aminet.net/package/mods/xceed/Flipflap"
|
||||
|
||||
- files: ["Spac_Stac.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Spac Stac by Hayabusa. Converted from MP3 to OGG."
|
||||
source: "https://www.youtube.com/watch?v=grUBe-SZgr0"
|
||||
|
||||
- files: ["pwmur.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "phoron will make us rich by Sunbeamstress/Lauren Loveless."
|
||||
source: "https://soundcloud.com/sunbeamstress/phoron-will-make-us-rich"
|
||||
|
||||
- files: ["lasers_rip_apart_the_bulkhead.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "lasers rip apart the bulkhead by Sunbeamstress/Lauren Loveless."
|
||||
source: "https://soundcloud.com/sunbeamstress/lasers-rip-apart-the-bulkhead"
|
||||
|
||||
- files: ["every_light_is_blinking_at_once.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "every light is blinking at once by Sunbeamstress/Lauren Loveless."
|
||||
source: "https://soundcloud.com/sunbeamstress/every-light-is-blinking-at-once"
|
||||
|
|
|
|||
BIN
Resources/Audio/Lobby/comet_haley.ogg
Normal file
BIN
Resources/Audio/Lobby/comet_haley.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/every_light_is_blinking_at_once.ogg
Normal file
BIN
Resources/Audio/Lobby/every_light_is_blinking_at_once.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/lasers_rip_apart_the_bulkhead.ogg
Normal file
BIN
Resources/Audio/Lobby/lasers_rip_apart_the_bulkhead.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/mod.flip-flap.ogg
Normal file
BIN
Resources/Audio/Lobby/mod.flip-flap.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/pwmur.ogg
Normal file
BIN
Resources/Audio/Lobby/pwmur.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/singuloose.ogg
Normal file
BIN
Resources/Audio/Lobby/singuloose.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/thunderdome.ogg
Normal file
BIN
Resources/Audio/Lobby/thunderdome.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/title2.ogg
Normal file
BIN
Resources/Audio/Lobby/title2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/title3.ogg
Normal file
BIN
Resources/Audio/Lobby/title3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Machines/airlock_deny – копія.ogg
Normal file
BIN
Resources/Audio/Machines/airlock_deny – копія.ogg
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -58,6 +58,11 @@
|
|||
copyright: "Taken from TG station."
|
||||
source: "https://github.com/tgstation/tgstation/blob/d4f678a1772007ff8d7eddd21cf7218c8e07bfc0/sound/machines/warning-buzzer.ogg"
|
||||
|
||||
- files: ["warning_buzzer_xenoborg.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Made by Toast (Discord)"
|
||||
source: "https://github.com/space-wizards/space-station-14/pull/36935"
|
||||
|
||||
- files: ["anomaly_sync_connect.ogg"]
|
||||
license: "CC0-1.0"
|
||||
copyright: "Created by newagesoup, convert to ogg mono by TheShuEd"
|
||||
|
|
@ -108,7 +113,7 @@
|
|||
copyright: "cmorris035"
|
||||
source: "https://freesound.org/people/cmorris035/sounds/319152/"
|
||||
|
||||
- files: ["airlock_open.ogg", "airlock_close.ogg"]
|
||||
- files: ["airlock_open.ogg", "airlock_close.ogg", "airlock_deny.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "/tg/station"
|
||||
source: "https://github.com/tgstation/tgstation/tree/5f5002b21253354c20ea224be3f604d79299b37e/sound/machines"
|
||||
|
|
@ -158,11 +163,6 @@
|
|||
copyright: "dakamakat on freesound.org"
|
||||
source: "https://freesound.org/people/Dakamakat/sounds/717370/"
|
||||
|
||||
- files: ["airlock_deny.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "/vgstation-coders/vgstation13"
|
||||
source: "https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/sound/machines/denied.ogg"
|
||||
|
||||
- files:
|
||||
- twobeep.ogg
|
||||
- chime.ogg
|
||||
|
|
@ -196,12 +196,6 @@
|
|||
license: "CC0-1.0"
|
||||
copyright: "Created by fspera, converted to OGG and modified by chromiumboy."
|
||||
source: "https://freesound.org/people/fspera/sounds/528111/"
|
||||
|
||||
- files: ["energyshield_up.ogg"]
|
||||
license: "CC0-1.0"
|
||||
copyright: "unfa on freesound.org"
|
||||
source: "https://freesound.org/people/unfa/sounds/584173/"
|
||||
|
||||
- files:
|
||||
- airlock_emergencyoff.ogg
|
||||
- airlock_emergencyon.ogg
|
||||
|
|
@ -220,17 +214,3 @@
|
|||
license: "CC-BY-3.0"
|
||||
copyright: "Created by Tomlija, converted to OGG and modified by themias."
|
||||
source: "https://freesound.org/people/Tomlija/sounds/99565/"
|
||||
- files: ["energyshield_down.ogg"]
|
||||
license: "CC-BY-4.0"
|
||||
copyright: "SilverIllusionist on freesound.org"
|
||||
source: "https://freesound.org/people/SilverIllusionist/sounds/673556/"
|
||||
|
||||
- files: ["energyshield_ambient.ogg"]
|
||||
license: "CC0-1.0"
|
||||
copyright: "julianmateo_ on freesound.org"
|
||||
source: "https://freesound.org/people/julianmateo_/sounds/524165/"
|
||||
|
||||
- files: ["energyshield_parry.ogg"]
|
||||
license: "CC-BY-4.0"
|
||||
copyright: "Robinhood76 on freesound.org"
|
||||
source: "https://freesound.org/people/Robinhood76/sounds/107613/"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,3 @@
|
|||
- files: ["emergency_meeting.ogg"]
|
||||
license: "CC-BY-NC-SA-3.0"
|
||||
copyright: "Taken from TG station."
|
||||
source: "https://github.com/tgstation/tgstation/commit/97945e7d08d1457ffc27e46526a48c0453cc95e4"
|
||||
|
||||
- files: ["tension_session.ogg"]
|
||||
license: "CC-BY-3.0"
|
||||
copyright: "Created by qwertyquerty"
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
copyright: "Taken from vgstation"
|
||||
source: "https://github.com/vgstation-coders/vgstation13/commit/23303188abe6fe31b114a218a1950d7325a23730"
|
||||
|
||||
- files: ["shotgun.ogg"]
|
||||
- files: ["estocshot.ogg"]
|
||||
license: "CC-BY-SA-3.0"
|
||||
copyright: "Taken from tgstation"
|
||||
source: "https://github.com/tgstation/tgstation/blob/5736656139713c802033b9457a2a9d058211bd85/sound/weapons/gun/shotgun/shot.ogg"
|
||||
copyright: "machinegun-one-shot.wav by DeltaCode. Converted to .OGG and MONO by august-sun"
|
||||
source: "https://freesound.org/people/DeltaCode/sounds/668347/"
|
||||
|
|
|
|||
Binary file not shown.
BIN
Resources/Audio/_Sunrise/Ambience/Antag/traitor_start.ogg
Normal file
BIN
Resources/Audio/_Sunrise/Ambience/Antag/traitor_start.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_Sunrise/Effects/Shuttle/hyperspace_begin.ogg
Normal file
BIN
Resources/Audio/_Sunrise/Effects/Shuttle/hyperspace_begin.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_Sunrise/Effects/Shuttle/hyperspace_end.ogg
Normal file
BIN
Resources/Audio/_Sunrise/Effects/Shuttle/hyperspace_end.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
Resources/Audio/_Sunrise/Machines/airlock_deny.ogg
Normal file
BIN
Resources/Audio/_Sunrise/Machines/airlock_deny.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_Sunrise/Weapons/Guns/Gunshots/shotgun.ogg
Normal file
BIN
Resources/Audio/_Sunrise/Weapons/Guns/Gunshots/shotgun.ogg
Normal file
Binary file not shown.
|
|
@ -1,5 +0,0 @@
|
|||
# disease
|
||||
shop-disease-category-infect = Infectie
|
||||
shop-disease-category-symptoms = Symptomen
|
||||
shop-disease-category-evolution = Evolutie
|
||||
shop-disease-category-infection = Infectie
|
||||
|
|
@ -2379,7 +2379,7 @@ entities:
|
|||
- type: Transform
|
||||
pos: -0.17729092,2.357732
|
||||
parent: 1
|
||||
- proto: GrenadeFragTimer
|
||||
- proto: GrenadeFrag
|
||||
entities:
|
||||
- uid: 58
|
||||
components:
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue