-
Notifications
You must be signed in to change notification settings - Fork 288
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'DeltaV-Station:master' into Elegance
- Loading branch information
Showing
258 changed files
with
9,729 additions
and
4,536 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# Delta-V Contributing Guidelines | ||
|
||
Generally we follow [upstream's PR guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html) for code quality and such. | ||
|
||
Importantly do not make webedits, copied verbatim from above: | ||
> Do not use GitHub's web editor to create PRs. PRs submitted through the web editor may be closed without review. | ||
Upstream is the [space-wizards/space-station-14](https://github.com/space-wizards/space-station-14) repository that wizden runs on. | ||
|
||
# Content specific to Delta-V | ||
|
||
In general anything you create from scratch (not modifying something that exists from upstream) should go in a DeltaV subfolder. | ||
|
||
Examples: | ||
- `Content.Server/DeltaV/Chapel/SacrificialAltarSystem.cs` | ||
- `Resources/Prototypes/DeltaV/ai_factions.yml` | ||
- `Resources/Audio/DeltaV/Items/gavel.ogg` | ||
- `Resources/Textures/DeltaV/Icons/cri.rsi` | ||
- `Resources/Locale/en-US/deltav/shipyard/shipyard-console.ftl` | ||
The locale subfolder is lowercase `deltav` instead of `DeltaV`. | ||
- `Resources/ServerInfo/Guidebook/DeltaV/AlertProcedure.xml` | ||
Note that guidebooks go in `ServerInfo/Guidebook/DeltaV` and not `ServerInfo/DeltaV`! | ||
|
||
# Changes to upstream files | ||
|
||
If you make a change to an upstream C# or YAML file **you must add comments on or around the changed lines**. | ||
The comments should clarify what changed, to make conflict resolution simpler when a file is changed upstream. | ||
|
||
For YAML specifically, if you add a new component to a prototype add the comment to the `type: ...` line. | ||
If you just modify some fields of a component, comment the fields instead. | ||
|
||
For C# files, if you are adding a lot of code try to put it in a partial class when it makes sense. | ||
|
||
The exception to this is early merging commits that are going to be cherry picked in the future regardless, there's no harm in leaving them as-is. | ||
|
||
As an aside, fluent (.ftl) files **do not support comments on the same line** as a locale value, so be careful when changing them. | ||
|
||
## Examples of comments in upstream files | ||
|
||
A single line comment on a changed yml field: | ||
```yml | ||
- type: entity | ||
parent: BasePDA | ||
id: SciencePDA | ||
name: epistemics PDA # DeltaV - Epistemics Department replacing Science | ||
``` | ||
A pair of comments enclosing a list of added items to starting gear: | ||
```yml | ||
storage: | ||
back: | ||
- EmergencyRollerBedSpawnFolded | ||
# Begin DeltaV additions | ||
- BodyBagFolded | ||
- Portafib | ||
# End DeltaV additions | ||
``` | ||
|
||
A comment on a new imported namespace: | ||
```cs | ||
using Content.Server.Psionics.Glimmer; // DeltaV | ||
``` | ||
|
||
A pair of comments enclosing a block of added code: | ||
```cs | ||
private EntityUid Slice(...) | ||
{ | ||
... | ||
|
||
_transform.SetLocalRotation(sliceUid, 0); | ||
|
||
// DeltaV - start of deep frier stuff | ||
var slicedEv = new FoodSlicedEvent(user, uid, sliceUid); | ||
RaiseLocalEvent(uid, ref slicedEv); | ||
// DeltaV - end of deep frier stuff | ||
... | ||
} | ||
``` | ||
|
||
# Mapping | ||
|
||
If you want to make changes to a map, get in touch with its maintainer to make sure you don't both make changes at the same time. | ||
|
||
Conflicts with maps make PRs mutually exclusive so either your work on the maintainer's work will be lost, communicate to avoid this! | ||
|
||
# Before you submit | ||
|
||
Double-check your diff on GitHub before submitting: look for unintended commits or changes and remove accidental whitespace or line-ending changes. | ||
|
||
Additionally for long-lasting PRs, if you see `RobustToolbox` in the changed files you have to revert it, use `git checkout upstream/master RobustToolbox` (replacing `upstream` with the name of your DeltaV-Station/Delta-V remote) | ||
|
||
# Changelogs | ||
|
||
By default any changelogs goes in the DeltaV changelog, you can use the DeltaV admin changelog by putting `DELTAVADMIN:` in a line after `:cl:`. | ||
|
||
Do not use `ADMIN:` as **it will mangle** the upstream admin changelog! | ||
|
||
# Additional resources | ||
|
||
If you are new to contributing to SS14 in general, have a look at the [SS14 docs](https://docs.spacestation14.io/) or ask for help in `#contribution-help` on [Discord](https://go.delta-v.org/AtDxv)! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
Content.Client/DeltaV/CartridgeLoader/Cartridges/PriceHistoryTable.xaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<cartridges:PriceHistoryTable | ||
xmlns="https://spacestation14.io" | ||
xmlns:cartridges="clr-namespace:Content.Client.DeltaV.CartridgeLoader.Cartridges" | ||
Orientation="Vertical" | ||
HorizontalExpand="True" | ||
Margin="0,5,0,0"> | ||
|
||
<!-- Header --> | ||
<BoxContainer Orientation="Horizontal" HorizontalExpand="True"> | ||
<Label Text="{Loc stock-trading-price-history}" | ||
HorizontalExpand="True" | ||
StyleClasses="LabelSubText" /> | ||
</BoxContainer> | ||
|
||
<!-- Price history panel --> | ||
<PanelContainer Name="HistoryPanel" | ||
HorizontalExpand="True" | ||
Margin="0,2,0,0"> | ||
<BoxContainer Orientation="Horizontal" | ||
HorizontalExpand="True" | ||
HorizontalAlignment="Center"> | ||
<GridContainer Name="PriceGrid" Columns="5" /> | ||
</BoxContainer> | ||
</PanelContainer> | ||
</cartridges:PriceHistoryTable> |
75 changes: 75 additions & 0 deletions
75
Content.Client/DeltaV/CartridgeLoader/Cartridges/PriceHistoryTable.xaml.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
using System.Linq; | ||
using Robust.Client.AutoGenerated; | ||
using Robust.Client.Graphics; | ||
using Robust.Client.UserInterface.Controls; | ||
using Robust.Client.UserInterface.XAML; | ||
|
||
namespace Content.Client.DeltaV.CartridgeLoader.Cartridges; | ||
|
||
[GenerateTypedNameReferences] | ||
public sealed partial class PriceHistoryTable : BoxContainer | ||
{ | ||
public PriceHistoryTable() | ||
{ | ||
RobustXamlLoader.Load(this); | ||
|
||
// Create the stylebox here so we can use the colors from StockTradingUi | ||
var styleBox = new StyleBoxFlat | ||
{ | ||
BackgroundColor = StockTradingUiFragment.PriceBackgroundColor, | ||
ContentMarginLeftOverride = 6, | ||
ContentMarginRightOverride = 6, | ||
ContentMarginTopOverride = 4, | ||
ContentMarginBottomOverride = 4, | ||
BorderColor = StockTradingUiFragment.BorderColor, | ||
BorderThickness = new Thickness(1), | ||
}; | ||
|
||
HistoryPanel.PanelOverride = styleBox; | ||
} | ||
|
||
public void Update(List<float> priceHistory) | ||
{ | ||
PriceGrid.RemoveAllChildren(); | ||
|
||
// Take last 5 prices | ||
var lastFivePrices = priceHistory.TakeLast(5).ToList(); | ||
|
||
for (var i = 0; i < lastFivePrices.Count; i++) | ||
{ | ||
var price = lastFivePrices[i]; | ||
var previousPrice = i > 0 ? lastFivePrices[i - 1] : price; | ||
var priceChange = ((price - previousPrice) / previousPrice) * 100; | ||
|
||
var entryContainer = new BoxContainer | ||
{ | ||
Orientation = LayoutOrientation.Vertical, | ||
MinWidth = 80, | ||
HorizontalAlignment = HAlignment.Center, | ||
}; | ||
|
||
var priceLabel = new Label | ||
{ | ||
Text = $"${price:F2}", | ||
HorizontalAlignment = HAlignment.Center, | ||
}; | ||
|
||
var changeLabel = new Label | ||
{ | ||
Text = $"{(priceChange >= 0 ? "+" : "")}{priceChange:F2}%", | ||
HorizontalAlignment = HAlignment.Center, | ||
StyleClasses = { "LabelSubText" }, | ||
Modulate = priceChange switch | ||
{ | ||
> 0 => StockTradingUiFragment.PositiveColor, | ||
< 0 => StockTradingUiFragment.NegativeColor, | ||
_ => StockTradingUiFragment.NeutralColor, | ||
} | ||
}; | ||
|
||
entryContainer.AddChild(priceLabel); | ||
entryContainer.AddChild(changeLabel); | ||
PriceGrid.AddChild(entryContainer); | ||
} | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
Content.Client/DeltaV/CartridgeLoader/Cartridges/StockTradingUi.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
using Robust.Client.UserInterface; | ||
using Content.Client.UserInterface.Fragments; | ||
using Content.Shared.CartridgeLoader; | ||
using Content.Shared.CartridgeLoader.Cartridges; | ||
|
||
namespace Content.Client.DeltaV.CartridgeLoader.Cartridges; | ||
|
||
public sealed partial class StockTradingUi : UIFragment | ||
{ | ||
private StockTradingUiFragment? _fragment; | ||
|
||
public override Control GetUIFragmentRoot() | ||
{ | ||
return _fragment!; | ||
} | ||
|
||
public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner) | ||
{ | ||
_fragment = new StockTradingUiFragment(); | ||
|
||
_fragment.OnBuyButtonPressed += (company, amount) => | ||
{ | ||
SendStockTradingUiMessage(StockTradingUiAction.Buy, company, amount, userInterface); | ||
}; | ||
_fragment.OnSellButtonPressed += (company, amount) => | ||
{ | ||
SendStockTradingUiMessage(StockTradingUiAction.Sell, company, amount, userInterface); | ||
}; | ||
} | ||
|
||
public override void UpdateState(BoundUserInterfaceState state) | ||
{ | ||
if (state is StockTradingUiState cast) | ||
{ | ||
_fragment?.UpdateState(cast); | ||
} | ||
} | ||
|
||
private static void SendStockTradingUiMessage(StockTradingUiAction action, int company, float amount, BoundUserInterface userInterface) | ||
{ | ||
var newsMessage = new StockTradingUiMessageEvent(action, company, amount); | ||
var message = new CartridgeUiMessage(newsMessage); | ||
userInterface.SendMessage(message); | ||
} | ||
} |
Oops, something went wrong.