Make printing from ore procecssors slightly more bearable (#31074)

* Make printing from ore procecssors slightly more bearable

* Update sheet.yml
This commit is contained in:
Nemanja
2024-08-17 01:12:55 -04:00
committed by GitHub
parent 7562b8fd47
commit ada6455b17
6 changed files with 118 additions and 42 deletions

View File

@@ -73,6 +73,16 @@ public sealed partial class LatheMenu : DefaultWindow
MaterialsList.SetOwner(Entity); MaterialsList.SetOwner(Entity);
} }
protected override void Opened()
{
base.Opened();
if (_entityManager.TryGetComponent<LatheComponent>(Entity, out var latheComp))
{
AmountLineEdit.SetText(latheComp.DefaultProductionAmount.ToString());
}
}
/// <summary> /// <summary>
/// Populates the list of all the recipes /// Populates the list of all the recipes
/// </summary> /// </summary>

View File

@@ -197,11 +197,11 @@ namespace Content.Server.Lathe
var recipe = component.Queue.First(); var recipe = component.Queue.First();
component.Queue.RemoveAt(0); component.Queue.RemoveAt(0);
var time = _reagentSpeed.ApplySpeed(uid, recipe.CompleteTime); var time = _reagentSpeed.ApplySpeed(uid, recipe.CompleteTime) * component.TimeMultiplier;
var lathe = EnsureComp<LatheProducingComponent>(uid); var lathe = EnsureComp<LatheProducingComponent>(uid);
lathe.StartTime = _timing.CurTime; lathe.StartTime = _timing.CurTime;
lathe.ProductionLength = time * component.TimeMultiplier; lathe.ProductionLength = time;
component.CurrentRecipe = recipe; component.CurrentRecipe = recipe;
var ev = new LatheStartPrintingEvent(recipe); var ev = new LatheStartPrintingEvent(recipe);
@@ -210,6 +210,11 @@ namespace Content.Server.Lathe
_audio.PlayPvs(component.ProducingSound, uid); _audio.PlayPvs(component.ProducingSound, uid);
UpdateRunningAppearance(uid, true); UpdateRunningAppearance(uid, true);
UpdateUserInterfaceState(uid, component); UpdateUserInterfaceState(uid, component);
if (time == TimeSpan.Zero)
{
FinishProducing(uid, component, lathe);
}
return true; return true;
} }

View File

@@ -36,6 +36,12 @@ namespace Content.Shared.Lathe
[DataField] [DataField]
public string? ReagentOutputSlotId; public string? ReagentOutputSlotId;
/// <summary>
/// The default amount that's displayed in the UI for selecting the print amount.
/// </summary>
[DataField, AutoNetworkedField]
public int DefaultProductionAmount = 1;
#region Visualizer info #region Visualizer info
[DataField] [DataField]
public string? IdleState; public string? IdleState;

View File

@@ -223,6 +223,9 @@ namespace Content.Shared.Stacks
foreach (var otherStack in intersecting) foreach (var otherStack in intersecting)
{ {
var otherEnt = otherStack.Owner; var otherEnt = otherStack.Owner;
// if you merge a ton of stacks together, you will end up deleting a few by accident.
if (TerminatingOrDeleted(otherEnt) || EntityManager.IsQueuedForDeletion(otherEnt))
continue;
if (!TryMergeStacks(uid, otherEnt, out _, stack, otherStack)) if (!TryMergeStacks(uid, otherEnt, out _, stack, otherStack))
continue; continue;

View File

@@ -1168,17 +1168,18 @@
- type: Lathe - type: Lathe
idleState: icon idleState: icon
runningState: building runningState: building
defaultProductionAmount: 10
staticRecipes: staticRecipes:
- SheetSteel30 - SheetSteel
- SheetGlass30 - SheetGlass1
- SheetRGlass30 - SheetRGlass
- SheetPlasma30 - SheetPlasma1
- SheetPGlass30 - SheetPGlass1
- SheetRPGlass30 - SheetRPGlass1
- SheetUranium30 - SheetUranium1
- IngotGold30 - IngotGold1
- IngotSilver30 - IngotSilver1
- MaterialBananium10 - MaterialBananium1
- MaterialDiamond - MaterialDiamond
- type: entity - type: entity
@@ -1195,19 +1196,19 @@
materialUseMultiplier: 0.75 materialUseMultiplier: 0.75
timeMultiplier: 0.5 timeMultiplier: 0.5
staticRecipes: staticRecipes:
- SheetSteel30 - SheetSteel
- SheetGlass30 - SheetGlass1
- SheetRGlass30 - SheetRGlass
- SheetPlasma30 - SheetPlasma1
- SheetPGlass30 - SheetPGlass1
- SheetRPGlass30 - SheetRPGlass1
- SheetPlasteel30 - SheetPlasteel1
- SheetUranium30 - SheetUranium1
- SheetUGlass30 - SheetUGlass1
- SheetRUGlass30 - SheetRUGlass1
- IngotGold30 - IngotGold1
- IngotSilver30 - IngotSilver1
- MaterialBananium10 - MaterialBananium1
- MaterialDiamond - MaterialDiamond
- type: entity - type: entity

View File

@@ -1,10 +1,10 @@
- type: latheRecipe - type: latheRecipe
id: SheetSteel id: SheetSteel
result: SheetSteel1 result: SheetSteel1
applyMaterialDiscount: false completetime: 0
completetime: 2
materials: materials:
RawIron: 100 RawIron: 100
Coal: 30
- type: latheRecipe - type: latheRecipe
id: SheetSteel30 id: SheetSteel30
@@ -17,8 +17,7 @@
- type: latheRecipe - type: latheRecipe
id: SheetGlass1 id: SheetGlass1
result: SheetGlass1 result: SheetGlass1
applyMaterialDiscount: false completetime: 0
completetime: 2
materials: materials:
RawQuartz: 100 RawQuartz: 100
@@ -32,11 +31,11 @@
- type: latheRecipe - type: latheRecipe
id: SheetRGlass id: SheetRGlass
result: SheetRGlass1 result: SheetRGlass1
applyMaterialDiscount: false completetime: 0
completetime: 2
materials: materials:
Glass: 100 Glass: 100
Steel: 50 Steel: 50
Coal: 15
- type: latheRecipe - type: latheRecipe
id: SheetRGlass30 id: SheetRGlass30
@@ -47,6 +46,14 @@
RawIron: 1500 RawIron: 1500
Coal: 500 Coal: 500
- type: latheRecipe
id: SheetPGlass1
result: SheetPGlass1
completetime: 0
materials:
RawQuartz: 100
RawPlasma: 100
- type: latheRecipe - type: latheRecipe
id: SheetPGlass30 id: SheetPGlass30
result: SheetPGlass result: SheetPGlass
@@ -55,6 +62,16 @@
RawQuartz: 3000 RawQuartz: 3000
RawPlasma: 3000 RawPlasma: 3000
- type: latheRecipe
id: SheetRPGlass1
result: SheetRPGlass1
completetime: 0
materials:
RawQuartz: 100
RawPlasma: 100
RawIron: 50
Coal: 15
- type: latheRecipe - type: latheRecipe
id: SheetRPGlass30 id: SheetRPGlass30
result: SheetRPGlass result: SheetRPGlass
@@ -65,6 +82,13 @@
RawIron: 1500 RawIron: 1500
Coal: 500 Coal: 500
- type: latheRecipe
id: SheetPlasma1
result: SheetPlasma1
completetime: 0
materials:
RawPlasma: 100
- type: latheRecipe - type: latheRecipe
id: SheetPlasma30 id: SheetPlasma30
result: SheetPlasma result: SheetPlasma
@@ -72,6 +96,15 @@
materials: materials:
RawPlasma: 3000 RawPlasma: 3000
- type: latheRecipe
id: SheetPlasteel1
result: SheetPlasteel1
completetime: 0
materials:
RawPlasma: 100
RawIron: 200 #Twice as durable as steel, Twice the material cost
Coal: 30
- type: latheRecipe - type: latheRecipe
id: SheetPlasteel30 id: SheetPlasteel30
result: SheetPlasteel result: SheetPlasteel
@@ -88,6 +121,14 @@
materials: materials:
RawUranium: 3000 RawUranium: 3000
- type: latheRecipe
id: SheetUGlass1
result: SheetUGlass1
completetime: 0
materials:
RawUranium: 100
RawQuartz: 100
- type: latheRecipe - type: latheRecipe
id: SheetUGlass30 id: SheetUGlass30
result: SheetUGlass result: SheetUGlass
@@ -96,6 +137,16 @@
RawUranium: 3000 RawUranium: 3000
RawQuartz: 3000 RawQuartz: 3000
- type: latheRecipe
id: SheetRUGlass1
result: SheetRUGlass1
completetime: 0
materials:
RawUranium: 100
RawQuartz: 100
RawIron: 50
Coal: 15
- type: latheRecipe - type: latheRecipe
id: SheetRUGlass30 id: SheetRUGlass30
result: SheetRUGlass result: SheetRUGlass
@@ -130,45 +181,45 @@
- type: latheRecipe - type: latheRecipe
id: MaterialDiamond id: MaterialDiamond
result: MaterialDiamond1 result: MaterialDiamond1
completetime: 3 completetime: 0
materials: materials:
RawDiamond: 1000 RawDiamond: 100
- type: latheRecipe - type: latheRecipe
id: SheetUranium1 id: SheetUranium1
result: SheetUranium1 result: SheetUranium1
completetime: 2 completetime: 0
materials: materials:
RawUranium: 500 RawUranium: 100
- type: latheRecipe - type: latheRecipe
id: IngotGold1 id: IngotGold1
result: IngotGold1 result: IngotGold1
completetime: 2 completetime: 0
materials: materials:
RawGold: 500 RawGold: 100
- type: latheRecipe - type: latheRecipe
id: IngotSilver1 id: IngotSilver1
result: IngotSilver1 result: IngotSilver1
completetime: 2 completetime: 0
materials: materials:
RawSilver: 500 RawSilver: 100
- type: latheRecipe - type: latheRecipe
id: SheetPlastic id: SheetPlastic
result: SheetPlastic1 result: SheetPlastic1
applyMaterialDiscount: false applyMaterialDiscount: false
completetime: 2 completetime: 0
materials: materials:
Plastic: 100 Plastic: 100
- type: latheRecipe - type: latheRecipe
id: MaterialBananium1 id: MaterialBananium1
result: MaterialBananium1 result: MaterialBananium1
completetime: 2 completetime: 0
materials: materials:
RawBananium: 500 RawBananium: 100
- type: latheRecipe - type: latheRecipe
id: MaterialSheetMeat id: MaterialSheetMeat