diff --git a/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs b/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs
index 5c5cbf987b1..45fe748272b 100644
--- a/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs
+++ b/Content.Server/Kitchen/Components/ReagentGrinderComponent.cs
@@ -51,6 +51,12 @@ public sealed partial class ReagentGrinderComponent : Component {
public GrinderAutoMode AutoMode = GrinderAutoMode.Off;
public EntityUid? AudioStream;
+
+ ///
+ /// Frontier - Tier 2 reagent grinder
+ ///
+ [DataField("advanced")]
+ public bool Advanced;
}
[Access(typeof(ReagentGrinderSystem)), RegisterComponent]
diff --git a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs
index aad33fea678..9b492d70e08 100644
--- a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs
+++ b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs
@@ -89,6 +89,15 @@ public override void Update(float frameTime)
foreach (var item in inputContainer.ContainedEntities.ToList())
{
+ // Frontier code for regent grinder tier 2 - Start
+ TryComp(item, out var extractable);
+ if (!reagentGrinder.Advanced && extractable!.Advanced)
+ {
+ _popupSystem.PopupEntity(Loc.GetString("advanced-reagent-grinder-component-cannot-grind-entity-message"), uid, PopupType.MediumCaution);
+ continue;
+ }
+ // Frontier code for regent grinder tier 2 - End
+
var solution = active.Program switch
{
GrinderProgram.Grind => GetGrindSolution(item),
diff --git a/Content.Shared/Kitchen/Components/ExtractableComponent.cs b/Content.Shared/Kitchen/Components/ExtractableComponent.cs
index bff21662801..1f91633958d 100644
--- a/Content.Shared/Kitchen/Components/ExtractableComponent.cs
+++ b/Content.Shared/Kitchen/Components/ExtractableComponent.cs
@@ -1,4 +1,4 @@
-using Content.Shared.Chemistry.Components;
+using Content.Shared.Chemistry.Components;
using Robust.Shared.GameStates;
namespace Content.Shared.Kitchen.Components;
@@ -14,4 +14,10 @@ public sealed partial class ExtractableComponent : Component
[DataField("grindableSolutionName")]
public string? GrindableSolution;
+
+ ///
+ /// Frontier - Tier 2 reagent grinder required
+ ///
+ [DataField("advanced")]
+ public bool Advanced;
};
diff --git a/Resources/Locale/en-US/_NF/research/technologies.ftl b/Resources/Locale/en-US/_NF/research/technologies.ftl
index 450e9a9d736..790fe6e24f9 100644
--- a/Resources/Locale/en-US/_NF/research/technologies.ftl
+++ b/Resources/Locale/en-US/_NF/research/technologies.ftl
@@ -6,4 +6,4 @@ research-technology-hardsuits-advanced = Advanced Hardsuits
research-technology-hardsuits-experimental-industrial = Experimental Salvager Hardsuit
research-technology-hardsuits-armored = Armored Hardsuits
research-technology-hardsuits-armored-advanced = Advanced Armored Hardsuits
-research-technology-hardsuits-experimental-rd = Experimental Research Hardsuit
\ No newline at end of file
+research-technology-hardsuits-experimental-rd = Experimental Research Hardsuit
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml
index ad03fda0011..93c8c315246 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml
@@ -158,6 +158,7 @@
reagents:
- ReagentId: RawArtifexium # Frontier
Quantity: 1 # Frontier
+ advanced: true # Frontier
- type: StaticPrice
price: 0
- type: Stack
diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml
index a9efdb10a2d..93b317e3605 100644
--- a/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml
+++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml
@@ -167,4 +167,4 @@
materialRequirements:
Glass: 2
- type: StaticPrice
- price: 12.5
+ price: 12.5
\ No newline at end of file
diff --git a/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer0.png b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer0.png
new file mode 100644
index 00000000000..70723dee888
Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer0.png differ
diff --git a/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer1.png b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer1.png
new file mode 100644
index 00000000000..0edf996832f
Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/juicer1.png differ
diff --git a/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/meta.json b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/meta.json
new file mode 100644
index 00000000000..d865bf97494
--- /dev/null
+++ b/Resources/Textures/_NF/Structures/Machines/advancedjuicer.rsi/meta.json
@@ -0,0 +1 @@
+{"license": "CC-BY-SA-3.0", "copyright": "https://github.com/tgstation/tgstation/commit/59f2a4e10e5ba36033c9734ddebfbbdc6157472d, edited by GhostPrince on Frontier Discord","version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "juicer0", "delays": [[1.0]]}, {"name": "juicer1", "delays": [[1.0]]}]}