Skip to content

Commit b828d30

Browse files
authored
Revert "Recyclers No Longer Gib (funky-station#2216)" (funky-station#2312)
1 parent ecc7852 commit b828d30

4 files changed

Lines changed: 22 additions & 35 deletions

File tree

Content.Server/Materials/MaterialReclaimerSystem.cs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// SPDX-FileCopyrightText: 2023 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
66
// SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
77
// SPDX-FileCopyrightText: 2023 eoineoineoin <github@eoinrul.es>
8-
// SPDX-FileCopyrightText: 2024 Jajsha <101492056+Zap527@users.noreply.github.com>
98
// SPDX-FileCopyrightText: 2024 LucasTheDrgn <kirbyfan.95@gmail.com>
109
// SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
1110
// SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
@@ -19,7 +18,6 @@
1918
// SPDX-FileCopyrightText: 2025 Tay <td12233a@gmail.com>
2019
// SPDX-FileCopyrightText: 2025 ThatOneMoon <91613003+ThatOneMoon@users.noreply.github.com>
2120
// SPDX-FileCopyrightText: 2025 ThatOneMoon <juozas.dringelis@gmail.com>
22-
// SPDX-FileCopyrightText: 2025 Tyranex <bobthezombie4@gmail.com>
2321
// SPDX-FileCopyrightText: 2025 pa.pecherskij <pa.pecherskij@interfax.ru>
2422
// SPDX-FileCopyrightText: 2025 taydeo <td12233a@gmail.com>
2523
// SPDX-FileCopyrightText: 2025 willow <willowzeta632146@proton.me>
@@ -38,7 +36,6 @@
3836
using Content.Shared.Chemistry.Components;
3937
using Content.Shared.Chemistry.Components.SolutionManager;
4038
using Content.Shared.Chemistry.EntitySystems;
41-
using Content.Shared.Damage;
4239
using Content.Shared.Database;
4340
using Content.Shared.Destructible;
4441
using Content.Shared.Emag.Components;
@@ -70,7 +67,6 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem
7067
[Dependency] private readonly PopupSystem _popup = default!;
7168
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!;
7269
[Dependency] private readonly SharedBodySystem _body = default!; //bobby
73-
[Dependency] private readonly DamageableSystem _damageable = default!; //Harmony
7470
[Dependency] private readonly PuddleSystem _puddle = default!;
7571
[Dependency] private readonly StackSystem _stack = default!;
7672
[Dependency] private readonly SharedMindSystem _mind = default!;
@@ -209,28 +205,34 @@ public override void Reclaim(EntityUid uid,
209205
if (!Resolve(uid, ref component))
210206
return;
211207

208+
// Allow systems to intercept processing (e.g., robotics factory conversion).
209+
var processEvent = new MaterialReclaimerProcessEntityEvent(item);
210+
RaiseLocalEvent(uid, processEvent);
211+
if (processEvent.Handled)
212+
{
213+
return;
214+
}
215+
212216
base.Reclaim(uid, item, completion, component);
213217

214218
var xform = Transform(uid);
215219

216220
SpawnMaterialsFromComposition(uid, item, completion * component.Efficiency, xform: xform);
217221

218-
if (CanRecycleMob(uid, item, component))
222+
if (CanGib(uid, item, component))
219223
{
220-
// Harmony - Recycler now deals damage instead of gibbing.
221-
if (component.Damage == null)
222-
return;
223-
224-
_damageable.TryChangeDamage(item, component.Damage, true);
225-
_adminLogger.Add(LogType.Damaged, LogImpact.Medium, $"{ToPrettyString(item):victim} was recycled by {ToPrettyString(uid):entity}, dealing {component.Damage.GetTotal()} damage.");
224+
var logImpact = HasComp<HumanoidAppearanceComponent>(item) ? LogImpact.Extreme : LogImpact.Medium;
225+
_adminLogger.Add(LogType.Gib, logImpact, $"{ToPrettyString(item):victim} was gibbed by {ToPrettyString(uid):entity} ");
226+
SpawnChemicalsFromComposition(uid, item, completion, false, component, xform);
227+
_body.GibBody(item, true);
226228
_appearance.SetData(uid, RecyclerVisuals.Bloody, true);
227229
}
228230
else
229231
{
230232
SpawnChemicalsFromComposition(uid, item, completion, true, component, xform);
231-
QueueDel(item);
232233
}
233234

235+
QueueDel(item);
234236
}
235237

236238
private void SpawnMaterialsFromComposition(EntityUid reclaimer,
@@ -246,9 +248,12 @@ private void SpawnMaterialsFromComposition(EntityUid reclaimer,
246248
if (!Resolve(item, ref composition, false))
247249
return;
248250

251+
// If more of these checks are needed, use an event instead
252+
var modifier = CompOrNull<StackComponent>(item)?.Count ?? 1.0f;
253+
249254
foreach (var (material, amount) in composition.MaterialComposition)
250255
{
251-
var outputAmount = (int) (amount * efficiency);
256+
var outputAmount = (int) (amount * efficiency* modifier);
252257
_materialStorage.TryChangeMaterialAmount(reclaimer, material, outputAmount, storage);
253258
}
254259

Content.Shared/Materials/MaterialReclaimerComponent.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// SPDX-FileCopyrightText: 2023 Pieter-Jan Briers <pieterjan.briers@gmail.com>
44
// SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
55
// SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
6-
// SPDX-FileCopyrightText: 2024 Jajsha <101492056+Zap527@users.noreply.github.com>
76
// SPDX-FileCopyrightText: 2024 LucasTheDrgn <kirbyfan.95@gmail.com>
87
// SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
98
// SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
@@ -12,7 +11,6 @@
1211
//
1312
// SPDX-License-Identifier: MIT
1413

15-
using Content.Shared.Damage;
1614
using Content.Shared.Whitelist;
1715
using JetBrains.Annotations;
1816
using Robust.Shared.Audio;
@@ -138,13 +136,6 @@ public sealed partial class MaterialReclaimerComponent : Component
138136
/// </remarks>
139137
[DataField, AutoNetworkedField]
140138
public int ItemsProcessed;
141-
142-
[DataField]
143-
144-
/// <summary>
145-
/// The damage the recycler will deal to creatures.
146-
/// </summary>
147-
public DamageSpecifier? Damage = default!;
148139
}
149140

150141
[NetSerializable, Serializable]

Content.Shared/Materials/SharedMaterialReclaimerSystem.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
// SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
77
// SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
88
// SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
9-
// SPDX-FileCopyrightText: 2024 Jajsha <101492056+Zap527@users.noreply.github.com>
109
// SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
1110
// SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
1211
// SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
@@ -15,7 +14,6 @@
1514
// SPDX-FileCopyrightText: 2025 Tay <td12233a@gmail.com>
1615
// SPDX-FileCopyrightText: 2025 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
1716
// SPDX-FileCopyrightText: 2025 taydeo <td12233a@gmail.com>
18-
// SPDX-FileCopyrightText: 2025 willow <willowzeta632146@proton.me>
1917
// SPDX-FileCopyrightText: 2025 wilowzeta <willowzeta632146@proton.me>
2018
//
2119
// SPDX-License-Identifier: MIT
@@ -117,7 +115,7 @@ public bool TryStartProcessItem(EntityUid uid, EntityUid item, MaterialReclaimer
117115
if (!CanStart(uid, component))
118116
return false;
119117

120-
if (HasComp<MobStateComponent>(item) && !CanRecycleMob(uid, item, component)) // whitelist? We be gibbing, boy!
118+
if (HasComp<MobStateComponent>(item) && !CanGib(uid, item, component)) // whitelist? We be gibbing, boy!
121119
return false;
122120

123121
if (_whitelistSystem.IsWhitelistFail(component.Whitelist, item) ||
@@ -178,7 +176,7 @@ public virtual bool TryFinishProcessItem(EntityUid uid, MaterialReclaimerCompone
178176

179177
/// <summary>
180178
/// Spawns the materials and chemicals associated
181-
/// with an entity. Also deletes the item if it is not a mob.
179+
/// with an entity. Also deletes the item.
182180
/// </summary>
183181
public virtual void Reclaim(EntityUid uid,
184182
EntityUid item,
@@ -229,10 +227,9 @@ public bool CanStart(EntityUid uid, MaterialReclaimerComponent component)
229227

230228
/// <summary>
231229
/// Whether or not the reclaimer satisfies the conditions
232-
/// allowing it to reclaim a living creature.
233-
/// Harmony - The recycler can no longer gib living creatures, instead dealing significant brute damage.
230+
/// allowing it to gib/reclaim a living creature.
234231
/// </summary>
235-
public bool CanRecycleMob(EntityUid uid, EntityUid victim, MaterialReclaimerComponent component)
232+
public bool CanGib(EntityUid uid, EntityUid victim, MaterialReclaimerComponent component)
236233
{
237234
return component.Powered &&
238235
component.Enabled &&

Resources/Prototypes/Entities/Structures/Machines/recycler.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@
1919
# SPDX-FileCopyrightText: 2023 lzk <124214523+lzk228@users.noreply.github.com>
2020
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2121
# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
22-
# SPDX-FileCopyrightText: 2024 Jajsha <101492056+Zap527@users.noreply.github.com>
2322
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2423
# SPDX-FileCopyrightText: 2024 Tadeo <td12233a@gmail.com>
2524
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
2625
# SPDX-FileCopyrightText: 2025 Tay <td12233a@gmail.com>
27-
# SPDX-FileCopyrightText: 2025 Xcybitt <197952719+Xcybitt@users.noreply.github.com>
2826
# SPDX-FileCopyrightText: 2025 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2927
# SPDX-FileCopyrightText: 2025 taydeo <td12233a@gmail.com>
3028
#
@@ -116,10 +114,6 @@
116114
params:
117115
volume: -3
118116
cutOffSound: false
119-
damage: # Harmony
120-
types:
121-
Slash: 50
122-
Piercing: 50
123117
- type: MaterialStorage
124118
insertOnInteract: false
125119
- type: Conveyor

0 commit comments

Comments
 (0)