Add lathe material ejection (#19218)

This completes PilgrimViis' (now closed) PR 16398. It addresses issue 10896, by allowing materials to be ejected from most lathes (except the ore processor and sheet-meister 2000)

* - Refinements to the material ejection UI
- Made the lathe UI default to a slightly larger size
- Fixed an offset issue with the label of the item currently being printed in the build queue UI

* Allow the materiel reclamation UI to pop if there is material left in the lathe, but not enough to print any sheets

---------

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
This commit is contained in:
chromiumboy
2023-08-17 12:22:01 -05:00
committed by GitHub
parent 89b3231de0
commit a39fa80d58
13 changed files with 288 additions and 10 deletions

View File

@@ -47,6 +47,12 @@ namespace Content.Shared.Lathe
[ViewVariables]
public LatheRecipePrototype? CurrentRecipe;
/// <summary>
/// Whether the lathe can eject the materials stored within it
/// </summary>
[DataField("canEjectStoredMaterials")]
public bool CanEjectStoredMaterials = true;
#region MachineUpgrading
/// <summary>
/// A modifier that changes how long it takes to print a recipe

View File

@@ -0,0 +1,16 @@
using Robust.Shared.Serialization;
namespace Content.Shared.Lathe;
[Serializable, NetSerializable]
public sealed class LatheEjectMaterialMessage : BoundUserInterfaceMessage
{
public string Material;
public int SheetsToExtract;
public LatheEjectMaterialMessage(string material, int sheetsToExtract)
{
Material = material;
SheetsToExtract = sheetsToExtract;
}
}