var xform = Transform(uid);
- SpawnMaterialsFromComposition(uid, item, completion * component.Efficiency, xform: xform);
+ if (component.ReclaimMaterials)
+ SpawnMaterialsFromComposition(uid, item, completion * component.Efficiency, xform: xform);
if (CanGib(uid, item, component))
{
var logImpact = HasComp<HumanoidAppearanceComponent>(item) ? LogImpact.Extreme : LogImpact.Medium;
_adminLogger.Add(LogType.Gib, logImpact, $"{ToPrettyString(item):victim} was gibbed by {ToPrettyString(uid):entity} ");
- SpawnChemicalsFromComposition(uid, item, completion, false, component, xform);
+ if (component.ReclaimSolutions)
+ SpawnChemicalsFromComposition(uid, item, completion, false, component, xform);
_body.GibBody(item, true);
_appearance.SetData(uid, RecyclerVisuals.Bloody, true);
}
else
{
- SpawnChemicalsFromComposition(uid, item, completion, true, component, xform);
+ if (component.ReclaimSolutions)
+ SpawnChemicalsFromComposition(uid, item, completion, true, component, xform);
}
QueueDel(item);
[DataField]
public string? SolutionContainerId;
+ /// <summary>
+ /// Can this reclaimer reclaim materials?
+ /// They will be spawned as material stacks.
+ /// </summary>
+ [DataField]
+ public bool ReclaimMaterials = true;
+
+ /// <summary>
+ /// Can this reclaimer reclaim solutions?
+ /// The reclaimed reagents will be stored in a buffer or spilled on the ground if that is full.
+ /// </summary>
+ [DataField]
+ public bool ReclaimSolutions = true;
+
/// <summary>
/// If the reclaimer should attempt to reclaim all solutions or just drainable ones
/// Difference between Recycler and Industrial Reagent Grinder