From 476c7751c4989645fb735c9533bb67bbf85c0091 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sun, 18 Aug 2024 23:39:00 -0400 Subject: [PATCH] Recycler Overhaul (#30802) * Recycler overhaul * remove --- .../Materials/RecyclerVisualizerSystem.cs | 27 +++++ .../Materials/RecyclerVisualsComponent.cs | 17 +++ .../Materials/MaterialReclaimerSystem.cs | 65 +++++++---- .../Physics/Controllers/ConveyorController.cs | 13 ++- Content.Server/Repairable/RepairableSystem.cs | 12 ++ .../Materials/MaterialReclaimerComponent.cs | 18 ++- .../SharedMaterialReclaimerSystem.cs | 18 ++- .../Circuitboards/Machine/production.yml | 14 --- .../Entities/Structures/Machines/lathe.yml | 1 - .../Machines/material_reclaimer.yml | 103 ------------------ .../Entities/Structures/Machines/recycler.yml | 44 +++----- .../Prototypes/Recipes/Lathes/electronics.yml | 11 +- .../material_reclaimer.rsi/fill-1.png | Bin 112 -> 0 bytes .../material_reclaimer.rsi/fill-2.png | Bin 117 -> 0 bytes .../material_reclaimer.rsi/fill-3.png | Bin 121 -> 0 bytes .../material_reclaimer.rsi/fill-4.png | Bin 119 -> 0 bytes .../material_reclaimer.rsi/fill-5.png | Bin 122 -> 0 bytes .../material_reclaimer.rsi/fill-6.png | Bin 120 -> 0 bytes .../material_reclaimer.rsi/gear-active.png | Bin 379 -> 0 bytes .../material_reclaimer.rsi/gear-idle.png | Bin 202 -> 0 bytes .../Machines/material_reclaimer.rsi/icon.png | Bin 709 -> 0 bytes .../Machines/material_reclaimer.rsi/meta.json | 57 ---------- .../Machines/material_reclaimer.rsi/panel.png | Bin 204 -> 0 bytes .../Machines/material_reclaimer.rsi/unlit.png | Bin 223 -> 0 bytes .../Machines/recycling.rsi/grinder-o0.png | Bin 1074 -> 3481 bytes .../Machines/recycling.rsi/grinder-o0bld.png | Bin 1195 -> 3857 bytes .../Machines/recycling.rsi/grinder-o1.png | Bin 14200 -> 5670 bytes .../Machines/recycling.rsi/grinder-o1bld.png | Bin 16585 -> 6705 bytes .../Machines/recycling.rsi/grinder-o2.png | Bin 0 -> 6915 bytes .../Machines/recycling.rsi/grinder-o2bld.png | Bin 0 -> 7158 bytes .../Machines/recycling.rsi/meta.json | 54 ++++++++- Resources/migration.yml | 6 +- 32 files changed, 207 insertions(+), 253 deletions(-) create mode 100644 Content.Client/Materials/RecyclerVisualizerSystem.cs create mode 100644 Content.Client/Materials/RecyclerVisualsComponent.cs delete mode 100644 Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-1.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-2.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-3.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-4.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-5.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-6.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/gear-active.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/gear-idle.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/icon.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/meta.json delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/panel.png delete mode 100644 Resources/Textures/Structures/Machines/material_reclaimer.rsi/unlit.png create mode 100644 Resources/Textures/Structures/Machines/recycling.rsi/grinder-o2.png create mode 100644 Resources/Textures/Structures/Machines/recycling.rsi/grinder-o2bld.png diff --git a/Content.Client/Materials/RecyclerVisualizerSystem.cs b/Content.Client/Materials/RecyclerVisualizerSystem.cs new file mode 100644 index 0000000000..646ae406aa --- /dev/null +++ b/Content.Client/Materials/RecyclerVisualizerSystem.cs @@ -0,0 +1,27 @@ +using Content.Shared.Conveyor; +using Content.Shared.Materials; +using Robust.Client.GameObjects; + +namespace Content.Client.Materials; + +public sealed class RecyclerVisualizerSystem : VisualizerSystem +{ + protected override void OnAppearanceChange(EntityUid uid, RecyclerVisualsComponent component, ref AppearanceChangeEvent args) + { + if (args.Sprite == null || !args.Sprite.LayerMapTryGet(RecyclerVisualLayers.Main, out var layer)) + return; + + AppearanceSystem.TryGetData(uid, ConveyorVisuals.State, out var running); + AppearanceSystem.TryGetData(uid, RecyclerVisuals.Bloody, out var bloody); + AppearanceSystem.TryGetData(uid, RecyclerVisuals.Broken, out var broken); + + var activityState = running == ConveyorState.Off ? 0 : 1; + if (broken) //breakage overrides activity + activityState = 2; + + var bloodyKey = bloody ? component.BloodyKey : string.Empty; + + var state = $"{component.BaseKey}{activityState}{bloodyKey}"; + args.Sprite.LayerSetState(layer, state); + } +} diff --git a/Content.Client/Materials/RecyclerVisualsComponent.cs b/Content.Client/Materials/RecyclerVisualsComponent.cs new file mode 100644 index 0000000000..4db26326d6 --- /dev/null +++ b/Content.Client/Materials/RecyclerVisualsComponent.cs @@ -0,0 +1,17 @@ +namespace Content.Client.Materials; + +[RegisterComponent] +public sealed partial class RecyclerVisualsComponent : Component +{ + /// + /// Key appended to state string if bloody. + /// + [DataField] + public string BloodyKey = "bld"; + + /// + /// Base key for the visual state. + /// + [DataField] + public string BaseKey = "grinder-o"; +} diff --git a/Content.Server/Materials/MaterialReclaimerSystem.cs b/Content.Server/Materials/MaterialReclaimerSystem.cs index b962af2b41..e66c27343c 100644 --- a/Content.Server/Materials/MaterialReclaimerSystem.cs +++ b/Content.Server/Materials/MaterialReclaimerSystem.cs @@ -20,19 +20,24 @@ using Robust.Shared.Player; using Robust.Shared.Utility; using System.Linq; using Content.Server.Administration.Logs; +using Content.Server.Repairable; using Content.Shared.Database; +using Content.Shared.Destructible; +using Content.Shared.Emag.Components; +using Robust.Shared.Prototypes; namespace Content.Server.Materials; /// public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem { + [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly GameTicker _ticker = default!; [Dependency] private readonly MaterialStorageSystem _materialStorage = default!; [Dependency] private readonly OpenableSystem _openable = default!; [Dependency] private readonly PopupSystem _popup = default!; - [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; [Dependency] private readonly SharedBodySystem _body = default!; //bobby [Dependency] private readonly PuddleSystem _puddle = default!; [Dependency] private readonly StackSystem _stack = default!; @@ -44,16 +49,14 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem { base.Initialize(); - SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnInteractUsing, - before: new []{typeof(WiresSystem), typeof(SolutionTransferSystem)}); + before: [typeof(WiresSystem), typeof(SolutionTransferSystem)]); SubscribeLocalEvent(OnSuicideByEnvironment); SubscribeLocalEvent(OnActivePowerChanged); - } - private void OnStartup(Entity entity, ref ComponentStartup args) - { - _solutionContainer.EnsureSolution(entity.Owner, entity.Comp.SolutionContainerId); + + SubscribeLocalEvent(OnBreakage); + SubscribeLocalEvent(OnRepaired); } private void OnPowerChanged(Entity entity, ref PowerChangedEvent args) @@ -119,6 +122,30 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem TryFinishProcessItem(entity, null, entity.Comp); } + private void OnBreakage(Entity ent, ref BreakageEventArgs args) + { + //un-emags itself when it breaks + RemComp(ent); + SetBroken(ent, true); + } + + private void OnRepaired(Entity ent, ref RepairedEvent args) + { + SetBroken(ent, false); + } + + public void SetBroken(Entity ent, bool val) + { + if (ent.Comp.Broken == val) + return; + + _appearance.SetData(ent, RecyclerVisuals.Broken, val); + SetReclaimerEnabled(ent, false); + + ent.Comp.Broken = val; + Dirty(ent); + } + /// public override bool TryFinishProcessItem(EntityUid uid, MaterialReclaimerComponent? component = null, ActiveMaterialReclaimerComponent? active = null) { @@ -136,7 +163,8 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem // scales the output if the process was interrupted. var completion = 1f - Math.Clamp((float) Math.Round((active.EndTime - Timing.CurTime) / active.Duration), - 0f, 1f); + 0f, + 1f); Reclaim(uid, item, completion, component); return true; @@ -193,7 +221,8 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem foreach (var (storedMaterial, storedAmount) in storage.Storage) { - var stacks = _materialStorage.SpawnMultipleFromMaterial(storedAmount, storedMaterial, + var stacks = _materialStorage.SpawnMultipleFromMaterial(storedAmount, + storedMaterial, xform.Coordinates, out var materialOverflow); var amountConsumed = storedAmount - materialOverflow; @@ -215,8 +244,6 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem { if (!Resolve(reclaimer, ref reclaimerComponent, ref xform)) return; - if (!_solutionContainer.TryGetSolution(reclaimer, reclaimerComponent.SolutionContainerId, out var outputSolution)) - return; efficiency *= reclaimerComponent.Efficiency; @@ -232,20 +259,14 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem } // if the item we inserted has reagents, add it in. - if (TryComp(item, out var solutionContainer)) + if (_solutionContainer.TryGetDrainableSolution(item, out _, out var drainableSolution)) { - foreach (var (_, soln) in _solutionContainer.EnumerateSolutions((item, solutionContainer))) - { - var solution = soln.Comp.Solution; - foreach (var quantity in solution.Contents) - { - totalChemicals.AddReagent(quantity.Reagent.Prototype, quantity.Quantity * efficiency, false); - } - } + totalChemicals.AddSolution(drainableSolution, _prototype); } - _solutionContainer.TryTransferSolution(outputSolution.Value, totalChemicals, totalChemicals.Volume); - if (totalChemicals.Volume > 0) + if (!_solutionContainer.TryGetSolution(reclaimer, reclaimerComponent.SolutionContainerId, out var outputSolution) || + !_solutionContainer.TryTransferSolution(outputSolution.Value, totalChemicals, totalChemicals.Volume) || + totalChemicals.Volume > 0) { _puddle.TrySpillAt(reclaimer, totalChemicals, out _, sound, transformComponent: xform); } diff --git a/Content.Server/Physics/Controllers/ConveyorController.cs b/Content.Server/Physics/Controllers/ConveyorController.cs index db4307f6de..e2788fa54c 100644 --- a/Content.Server/Physics/Controllers/ConveyorController.cs +++ b/Content.Server/Physics/Controllers/ConveyorController.cs @@ -3,6 +3,7 @@ using Content.Server.DeviceLinking.Systems; using Content.Server.Materials; using Content.Server.Power.Components; using Content.Shared.Conveyor; +using Content.Shared.Destructible; using Content.Shared.Maps; using Content.Shared.Physics; using Content.Shared.Physics.Controllers; @@ -26,7 +27,7 @@ public sealed class ConveyorController : SharedConveyorController UpdatesAfter.Add(typeof(MoverController)); SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnConveyorShutdown); - + SubscribeLocalEvent(OnBreakage); SubscribeLocalEvent(OnSignalReceived); SubscribeLocalEvent(OnPowerChanged); @@ -61,6 +62,11 @@ public sealed class ConveyorController : SharedConveyorController _fixtures.DestroyFixture(uid, ConveyorFixture, body: physics); } + private void OnBreakage(Entity ent, ref BreakageEventArgs args) + { + SetState(ent, ConveyorState.Off, ent); + } + private void OnPowerChanged(EntityUid uid, ConveyorComponent component, ref PowerChangedEvent args) { component.Powered = args.Powered; @@ -96,13 +102,14 @@ public sealed class ConveyorController : SharedConveyorController if (!Resolve(uid, ref component)) return; + if (!_materialReclaimer.SetReclaimerEnabled(uid, state != ConveyorState.Off)) + return; + component.State = state; if (TryComp(uid, out var physics)) _broadphase.RegenerateContacts(uid, physics); - _materialReclaimer.SetReclaimerEnabled(uid, component.State != ConveyorState.Off); - UpdateAppearance(uid, component); Dirty(uid, component); } diff --git a/Content.Server/Repairable/RepairableSystem.cs b/Content.Server/Repairable/RepairableSystem.cs index ec24cd8197..68dcfd6743 100644 --- a/Content.Server/Repairable/RepairableSystem.cs +++ b/Content.Server/Repairable/RepairableSystem.cs @@ -46,6 +46,9 @@ namespace Content.Server.Repairable ("target", uid), ("tool", args.Used!)); _popup.PopupEntity(str, uid, args.User); + + var ev = new RepairedEvent((uid, component), args.User); + RaiseLocalEvent(uid, ref ev); } public async void Repair(EntityUid uid, RepairableComponent component, InteractUsingEvent args) @@ -72,4 +75,13 @@ namespace Content.Server.Repairable args.Handled = _toolSystem.UseTool(args.Used, args.User, uid, delay, component.QualityNeeded, new RepairFinishedEvent(), component.FuelCost); } } + + /// + /// Event raised on an entity when its successfully repaired. + /// + /// + /// + [ByRefEvent] + public readonly record struct RepairedEvent(Entity Ent, EntityUid User); + } diff --git a/Content.Shared/Materials/MaterialReclaimerComponent.cs b/Content.Shared/Materials/MaterialReclaimerComponent.cs index 3e72baf604..372cd114ab 100644 --- a/Content.Shared/Materials/MaterialReclaimerComponent.cs +++ b/Content.Shared/Materials/MaterialReclaimerComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Whitelist; +using JetBrains.Annotations; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Serialization; @@ -27,6 +28,12 @@ public sealed partial class MaterialReclaimerComponent : Component [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] public bool Enabled = true; + /// + /// A master control for whether or not the recycler is broken and can function. + /// + [DataField, AutoNetworkedField] + public bool Broken; + /// /// How efficiently the materials are reclaimed. /// In practice, a multiplier per material when calculating the output of the reclaimer. @@ -59,8 +66,8 @@ public sealed partial class MaterialReclaimerComponent : Component /// /// The id of our output solution /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public string SolutionContainerId = "output"; + [DataField] + public string? SolutionContainerId; /// /// a whitelist for what entities can be inserted into this reclaimer @@ -114,11 +121,12 @@ public sealed partial class MaterialReclaimerComponent : Component [NetSerializable, Serializable] public enum RecyclerVisuals { - Bloody + Bloody, + Broken } +[UsedImplicitly] public enum RecyclerVisualLayers : byte { - Main, - Bloody + Main } diff --git a/Content.Shared/Materials/SharedMaterialReclaimerSystem.cs b/Content.Shared/Materials/SharedMaterialReclaimerSystem.cs index 866148b113..d143f50948 100644 --- a/Content.Shared/Materials/SharedMaterialReclaimerSystem.cs +++ b/Content.Shared/Materials/SharedMaterialReclaimerSystem.cs @@ -2,7 +2,6 @@ using System.Linq; using Content.Shared.Administration.Logs; using Content.Shared.Audio; using Content.Shared.Body.Components; -using Content.Shared.Coordinates; using Content.Shared.Database; using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; @@ -10,7 +9,6 @@ using Content.Shared.Examine; using Content.Shared.Mobs.Components; using Content.Shared.Stacks; using Content.Shared.Whitelist; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Map; @@ -102,7 +100,8 @@ public abstract class SharedMaterialReclaimerSystem : EntitySystem if (user != null) { - _adminLog.Add(LogType.Action, LogImpact.High, + _adminLog.Add(LogType.Action, + LogImpact.High, $"{ToPrettyString(user.Value):player} destroyed {ToPrettyString(item)} in the material reclaimer, {ToPrettyString(uid)}"); } @@ -171,13 +170,19 @@ public abstract class SharedMaterialReclaimerSystem : EntitySystem /// /// Sets the Enabled field on the reclaimer. /// - public void SetReclaimerEnabled(EntityUid uid, bool enabled, MaterialReclaimerComponent? component = null) + public bool SetReclaimerEnabled(EntityUid uid, bool enabled, MaterialReclaimerComponent? component = null) { if (!Resolve(uid, ref component, false)) - return; + return true; + + if (component.Broken && enabled) + return false; + component.Enabled = enabled; AmbientSound.SetAmbience(uid, enabled && component.Powered); Dirty(uid, component); + + return true; } /// @@ -189,7 +194,7 @@ public abstract class SharedMaterialReclaimerSystem : EntitySystem if (HasComp(uid)) return false; - return component.Powered && component.Enabled; + return component.Powered && component.Enabled && !component.Broken; } /// @@ -200,6 +205,7 @@ public abstract class SharedMaterialReclaimerSystem : EntitySystem { return component.Powered && component.Enabled && + !component.Broken && HasComp(victim) && HasComp(uid); } diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index e48fb0a263..040a7daffc 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -951,20 +951,6 @@ Manipulator: 1 Steel: 1 -- type: entity - id: MaterialReclaimerMachineCircuitboard - parent: BaseMachineCircuitboard - name: material reclaimer machine board - components: - - type: Sprite - state: supply - - type: MachineBoard - prototype: MaterialReclaimer - stackRequirements: - Manipulator: 2 - Steel: 5 - Plastic: 5 - - type: entity id: OreProcessorMachineCircuitboard parent: BaseMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index da1d9aa6a2..6c97f9fd5f 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -419,7 +419,6 @@ - AutolatheMachineCircuitboard - CircuitImprinterMachineCircuitboard - OreProcessorMachineCircuitboard - - MaterialReclaimerMachineCircuitboard - ElectrolysisUnitMachineCircuitboard - CentrifugeMachineCircuitboard - ChemDispenserMachineCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml deleted file mode 100644 index 9a9c5283c0..0000000000 --- a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml +++ /dev/null @@ -1,103 +0,0 @@ -- type: entity - parent: [ BaseMachinePowered, ConstructibleMachine ] - id: MaterialReclaimer - name: material reclaimer - description: Cannot reclaim immaterial things, like motivation. - components: - - type: Sprite - sprite: Structures/Machines/material_reclaimer.rsi - snapCardinals: true - layers: - - state: icon - map: ["enum.LatheVisualLayers.IsRunning"] - - state: gear-active - map: ["enum.DamageStateVisualLayers.Base"] - - state: unlit - shader: unshaded - map: ["enum.PowerDeviceVisualLayers.Powered"] - - state: fill-6 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - state: panel - map: ["enum.WiresVisualLayers.MaintenancePanel"] - - type: Appearance - - type: SolutionContainerVisuals - maxFillLevels: 6 - fillBaseName: fill- - - type: WiresVisuals - - type: GenericVisualizer - visuals: - enum.PowerDeviceVisuals.Powered: - enum.DamageStateVisualLayers.Base: - True: { state: gear-active} - False: { state: gear-idle } - enum.PowerDeviceVisualLayers.Powered: - True: { visible: true } - False: { visible: false } - - type: LitOnPowered - - type: PointLight - radius: 1.5 - energy: 1.6 - enabled: false - color: "#da824d" - mask: /Textures/Effects/LightMasks/cone.png - autoRot: true - offset: "0, 0.4" - castShadows: false - - type: PowerSwitch - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 100 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: MetalGlassBreak - - !type:ChangeConstructionNodeBehavior - node: machineFrame - - !type:DoActsBehavior - acts: ["Destruction"] - - type: Machine - board: MaterialReclaimerMachineCircuitboard - - type: WiresPanel - - type: MaterialReclaimer - whitelist: - components: - - PhysicalComposition - - SpaceGarbage - tags: - - Trash - - Recyclable - blacklist: - components: - - Material - - Pda - - IdCard - - Brain - tags: - - HighRiskItem - soundCooldown: 0 - sound: - path: /Audio/Ambience/Objects/crushing.ogg - params: - volume: 5 - maxDistance: 5 - loop: true - - type: MaterialStorage - insertOnInteract: false - - type: ContainerContainer - containers: - active-material-reclaimer-container: !type:Container - machine_board: !type:Container - machine_parts: !type:Container - - type: SolutionContainerManager - solutions: - output: - maxVol: 100 - - type: DrainableSolution - solution: output - - type: ExaminableSolution - solution: output - - type: StaticPrice - price: 500 diff --git a/Resources/Prototypes/Entities/Structures/Machines/recycler.yml b/Resources/Prototypes/Entities/Structures/Machines/recycler.yml index 138795cbf1..8bbbad6c0d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/recycler.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/recycler.yml @@ -56,32 +56,12 @@ layers: - state: grinder-o0 map: ["enum.RecyclerVisualLayers.Main"] - - state: grinder-o0bld - map: ["enum.RecyclerVisualLayers.Bloody"] - visible: false - type: Appearance - - type: GenericVisualizer - visuals: - enum.RecyclerVisuals.Bloody: - enum.RecyclerVisualLayers.Main: - True: { visible: false } - False: { visible: true } - enum.RecyclerVisualLayers.Bloody: - True: { visible: true } - False: { visible: false } - enum.ConveyorVisuals.State: - enum.RecyclerVisualLayers.Main: - Forward: { state: grinder-o1 } - Reverse: { state: grinder-o1 } - Off: { state: grinder-o0 } - enum.RecyclerVisualLayers.Bloody: - Forward: { state: grinder-o1bld } - Reverse: { state: grinder-o1bld } - Off: { state: grinder-o0bld } + - type: RecyclerVisuals + - type: CollideMaterialReclaimer - type: MaterialReclaimer enabled: false - efficiency: 0.25 scaleProcessSpeed: false #instant! minimumProcessDuration: 0 whitelist: @@ -104,16 +84,26 @@ params: volume: -3 cutOffSound: false - - type: SolutionContainerManager - solutions: - output: - maxVol: 0 #exists only for the overflow stuff on material reclaimer - type: MaterialStorage - type: Conveyor - type: Rotatable + - type: Repairable + doAfterDelay: 5 + fuelCost: 25 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:DoActsBehavior + acts: ["Breakage"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: InteractionPopup successChance: 1.0 interactSuccessString: petting-success-recycler interactFailureString: petting-failure-generic interactSuccessSound: - path: /Audio/Items/drill_hit.ogg \ No newline at end of file + path: /Audio/Items/drill_hit.ogg diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 4690055a9f..1bbd60e3af 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -481,15 +481,6 @@ Steel: 100 Glass: 500 -- type: latheRecipe - id: MaterialReclaimerMachineCircuitboard - result: MaterialReclaimerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - - type: latheRecipe id: OreProcessorMachineCircuitboard result: OreProcessorMachineCircuitboard @@ -967,7 +958,7 @@ Steel: 100 Glass: 500 Gold: 100 - + - type: latheRecipe id: JukeboxCircuitBoard result: JukeboxCircuitBoard diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-1.png b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-1.png deleted file mode 100644 index 32efd405d81a8dafb12bdc332a469218c516d712..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}TAnVBArY-_ z&u$cCP~c(SSn+?MukYEVPErr**%%t`r)uBXc3mT~n(@OEhP!4gOlK#2nhMm#;OXk; Jvd$@?2>?}*BG~`{ diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-2.png b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-2.png deleted file mode 100644 index 71883d8117d1f5c96a249be1b7c7494e2b2d6bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}`kpS1ArY-_ z&pC22DDW^Jy!QXUm9Z Q12r>vy85}Sb4q9e019CukpKVy diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-5.png b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/fill-5.png deleted file mode 100644 index 1ed097f5e2b3cf599b408c9e19676d613e2bd2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}CY~;iArY-_ z&u!#oP~c%c*z&iW&s2!jcS_T4#y9;840Y3E4~K>x4}A7DyOed0kbxY-fgQYRx-494 TB}3K$^)q<7`njxgN@xNAW)&FPsrc+cV0qua{5We7Y0R489O+lc`M)iGUz^W z?8*OZj?WyQ@3E|szBE$s#zR%jS*=#G=e;%``aN&qn+q3pLPD?YdUCxicjKJx zg`U5D{E?b-|2ON7_MWtb+fFXi?K*nr`LVK->vQ>bM=iX&BYKA79@Y)w^ZU|0gF>%) zZC2W_D*Dew-XA%WebxK#{(b~;8HkiCUv2v@zFIQ+eT_rB{J*gK|3vrx7JKvHTKDuT zH)XI?yEf?9e>uvk_iEkO^C^BrWIJ)U84+xaMw@JED r_e19KUF-gUBZ;p-)`0Asz|G((q2V;c>d_^jdl)=j{an^LB{Ts5>rP10 diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/icon.png b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/icon.png deleted file mode 100644 index 7ba2ef785e9f02313b7c566c7d8ce1d0a2666a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)Px%e@R3^R9J<@md|U`U>L{06>rjRwwn$GNjpOiLXmYD9u$l>A&0^2z+VT8h~Pat`d6_~}oy$ntX*eg6| zfbe&(5@9qNvIUU9>gP|132$OQ%;xZ-^9(ERR{;RRLK(Bik72OBv1?;)s53yG zTJGzR`#Lpox5o%}K{$VA&LXOlgkovL#$bB8cLK%bgjYI{ISOhx*N2d=aR(k#T zy7?^g{p9OmI#`JXyaKbD^ZqkPj{QEZ9^K?b?1R?lkCsHXEc@+R~@Ae7mzaJz6#BC0LY7W7me03b>{dhCZE3n~K>*+ZxZCYtRQL|%>cT@eBfMgY_`JU4&J zTDo=>je0%yLe*Lgjd~p%UxJ~^_P!IibjG#?Uc)0ZQvl#uAP6p rZKt>^ER})W^wfWOFZ{8&Wyk#kql-2-j=cjs00000NkvXXu0mjfp!q#5 diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/meta.json b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/meta.json deleted file mode 100644 index 3e27312a6c..0000000000 --- a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/meta.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "version": 1, - "license": "CC0-1.0", - "copyright": "Created by EmoGarbage404 (github) for Space Station 14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "fill-1" - }, - { - "name": "fill-2" - }, - { - "name": "fill-3" - }, - { - "name": "fill-4" - }, - { - "name": "fill-5" - }, - { - "name": "fill-6" - }, - { - "name": "gear-active", - "delays": [ - [ - 0.25, - 0.25, - 0.25 - ] - ] - }, - { - "name": "gear-idle" - }, - { - "name": "icon" - }, - { - "name": "panel" - }, - { - "name": "unlit", - "delays": [ - [ - 0.1, - 1.0 - ] - ] - } - ] -} diff --git a/Resources/Textures/Structures/Machines/material_reclaimer.rsi/panel.png b/Resources/Textures/Structures/Machines/material_reclaimer.rsi/panel.png deleted file mode 100644 index b3de5c1be18ec59d3208675020b060f9bc6d879e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 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 Hu0mjfN*$sn literal 1074 zcmV-21kL-2P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1II~3K~z{r#g|J+ zlu;DNk2Xz8kfS5jNVHIEkq-!`j3^C*T1nY*78d138VG9_)uM1&tG3x|D_PjWiiGTe z)JWii@YyDq3eCsH$0+9ieD{2FzsG#eq|guU+{gLmo^#JR_k1(--#K$Oy87rz$Euoc z3fL1(O+CrFcgv?UpuWDIIy*bn%zGY*L@fIX z*~`nzgcb~L;{|v_JObr`K!8G_5TWnx?k2zAZ?=|}mbB;X?d`4}VGqCn9iPufHMPgo zjHu(;TdJ(cr+7ThrwWI|6pO`_l+vEJJ$%ClZF_Ln^oGx_T!2ymp&9J|$YZ!Pkx1|u zbai!QG)JhBA7V&W{<`;nY(bpr8& z3pe5cNksD+%1sc3v$HF%NqC^_0L{$Iu>oH`4=Je?B;o5v)>g9;j!z^j)mDGf z{XgS#W;kGgxDd#7(vci-L;oH^m<^@6Vo5wM>!Q(QwJ;L73NKYsd>o8$zr zXT5&fiSaQta-z$0qa6lF7+}QM=!n^L#FeQ|kM;FD1NrfqgH8j6M!$LXeX&07k#K0C z&@R3iIAL)~Da$13(7a^u=K7UKLvqBe%<5&^E*BXR7?o7V{9k~pHazm17rm%HQq2lb zj09x5%yBaL!2)y{JcgSha3NA-2Js*MK5F(rpG$t|l`s<|f$?3>Ti}IT9e_cIGg>_U z%T$1-%XH5OmUjU{Ag2Tpb0F(@9m9=s0(-X0I!JXB@C;-KftdrMOcd#_VjWx^dm?QF s%l`rZ1LTdj8Q_#_zYSdfm=Y2F1qsPczrCc4Q2+n{07*qoM6N<$f}pkSZU6uP diff --git a/Resources/Textures/Structures/Machines/recycling.rsi/grinder-o0bld.png b/Resources/Textures/Structures/Machines/recycling.rsi/grinder-o0bld.png index b4a1f08b06a6d003ae6996203774e2de5ac0ad58..b226f9e1c7ca34b346ff46b96a18244c98bb89cf 100644 GIT binary patch literal 3857 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 T1Zqk)00000NkvXXu0mjfC`BsO literal 1195 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 A1poj5 literal 16585 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 Z3%Cm61*CDJzy4;0l95mlFBLTk{9gmar11a% diff --git a/Resources/Textures/Structures/Machines/recycling.rsi/grinder-o2.png b/Resources/Textures/Structures/Machines/recycling.rsi/grinder-o2.png new file mode 100644 index 0000000000000000000000000000000000000000..f07cc6fb43bb82652c426a6d6eb9513856f10638 GIT binary patch literal 6915 zcmW+*by$;M8y+DcC5WK3v@jY$VWf13fHb4K8-6rMBP}2yDWD)Zx;vcYBu94*7~OoY z-yhp~uWi@+ocEmjJa;Vm!+Uw6$5f9&AP|wFf{X?*O8$G{;Q;TYwyul7fZ?toFAb^~ zq1gd}sM-`|q(1s&_hlJ4&`f9KNoX6F9xm)}$}*}dwJM~s>!+#c)yt(}QKhBEn%g=l z@S=NELLvBiU@MB7nos*qCVvnjJRwyiQjoy0cdN8)$!pNaWUl^#*EOE$D(aM)f5Qv7 zKf(_8OLt2T79)4vn`0L=XiP%xLgaM5X?l)aJ)Gn|7&$K8PAzF+;NbYG2VktCx!Z}e z#RS$G>5)R+vjPI29jRZY=p~~{b^6#}T>49a{Ka$qJ2YNl9Nmxv&Yst?-evOg@u>%# zZmYxFg_ry_N9w$n?(LAm9cSK?9|qs$n-s9qL2?q;!oTr2uJl?{X5vsGg+eR#j_;38 zvkQZ48V!tY{JV++6G|lWO;*v^>f}6;B(yfj7U!U6%SZWG#<2{zBy_(pJ-oaoqK=Z7 zQE*J62Y|$WBV3P*(c8+@Jw3 zvZv;5eM=aaj^9OF_sY8gkPA_z-)6^uZQK+T^iPg{GOyCDqNE;Q$+Ig3kBqzrmwiT} z(y$h?Tclp*veCrn?ZI`^@Yx#|oSa4$7*gH~)a=-GKL&@P6QloW^g#w6){NujL18Za2X+Cw72Ohc^6ojzm* zJ3T!$(WBr_CxA{@gJUx?UU)#+(&6KilYO_h5G4cBo)5ECror|)&X~*E7AKna(ar%AVc4L$@-Eo7W z*M(UTwRoWzzrBYwHb%iWq_wmNdrW#Fh_;(Yj*t1%xuIq!o5Nr(uJNU%(H%rdbf4Le zQjP&p_f5j^jVD1@I({1?1U5GZ)DjgD(vQflLqV-*++&N2B02MkXr@QEJK(sa4 zF?Uon5xdc2hperwO%?n6=I;1mzbR7nE)*5M94FVdelk}74~virH_wB|_SzQ{Nk_m6 zvEYLe;i*4AD!El-eR}5uahz`oNSU3bZZs4p@9Tk$#=G3#%4$~{^>r>kDN&p4hH3Ea z?8dlz9#Fjtuy5j%82GTnF#Ai4RT5&f#3%JxuGv*VGuY`uG*ee>UzvB^6X?wu9s-foABjD2Pp!8aEN z@DR6Ih+|BdEoLQEK{=NiJ5A3PY;?JMAzLQU#3f3_D*Eb5^t4h>nZX44TucmF_l=Kt z7_%5(o>jd2FacC$xyR1-aK}7d85CZ6eRcJ4X{(GKxa{yurF{5qXf#yvKsHD z!1Dv-p`_A$r9-3@r&jRu4)rq*(8U4Q@!cWH)Xgo~ta@-+(hmU_H?A7G#1ChzIaFLm z{~#o;)dW*yWM{A6EFpW^{9?)e>o9(q@@h&joaJ?La8D$$%jH-|aee=Tc0hP27aY55 z&Gi|)CaUlDi;D1M%p^PZN;svF4V6O?EpNSJ7;s=Ri<914NB5B>^A?aWe5<$Y0s1vD z{*qmM>IZIvvn#BZ1Kb4bz+6WMdJVB?F{4y!nDLOfX>?|B z2olx5MF8-~f3^DG9@=is;S0`_&d)PjDdm5oyp-4B8_5V_US-c`?1`gR%BPh(oj=ab zYO6XK=91Yj4kauAlmW2cHJ|Dqug$J~Ysk&Rt&^(IE6btPsR{cnD$;%FFYW=gc0l4q zl1vT+&L0rWTuo5WK^hZGZOGGN!8}N}yz#lu1MfVQd1)&4EUITL_|+b$kiA-35@p)u zn-UKt^uns=%v#LxeZx)EZf*$hljs>;Zk~pGcB5`nB-S&#D$+0^y|(6-pNFn4C&egV z>WKbtNW}v6%33L^m#O?NIvgw-Kgkvr@Mo*{HonnhTw>*$1b4fU_KankVa7SIRZx4s zyCiC^NKx6`*~Xj31O5CMV)7y1up*EBd=;}xq}0S~VdXdCjNQ#$gQ2 zO&=`Lz*#8Ub;oo1*sBNn-h#jEHSJkcdTmge5A4%2+s%@HLFUAnCC4+^rjUUfTi82n zUcpvkn8nyMbzY_L*aVMm^rccNSaJpo3aWN5lM$!W*|@YCN|c^)%>2)=BJ7=PaCwXK zQaeBi)O>_6+jJc&Mo#3TkDQj6AwuA?Fr?$2De_4DI|lXR*I}i<=1FXkiC0 z(aW7(9pOr=w)kI;VFcDZ45!&C+)~v=z&Ci`>UUEb`>!-Qdz2w|z&jpOrW=<0%C!yh z<7XP0^nZIy)iU4NYR>zJQDl6MK%!Vv`Duzv^UOF?PFy!_I1!Vm^Hr~wp^e|YW*CCy z8ZZoprRC|43=@C?e<#u>FMcA zm$5A512?j{27UWlx=dko?T>mFhTKq|MVd>~JftJw4_~_^-EQ&j4$M7UTy$VJXEM00 zM>;l`OE)s2Wym6J%rkDi@CM@hYTB`WWXqwW!$OeSdQvGvp_Y#DwdyC)2Irw0YS@{o7iSEv&M@N6 z!7k>*;11rSPl2IQL7I8_q*R~C<3b4XMP&b4?_T1+I6b;yvdL5@Q2)>J%Xa@QSH$&H z!L|Pv&NRW|sdAVj8Fc#S>Q=WnuD8w}25B>e`5*9jIkBYFpO7(9$DQr+BxjZUX1 z(XnU|+XupttNJZ@KnC0NU@53`s(jQ9y-JuGquBII00LQ0#LCTWH6&OPOQb3%5*@Rb z|4fv}nCs0MlWy}@S;(N9SE;V?Y9uWxL2R0f#hw$trK+lPb2v+pnT$X21tAW8WKSc+ zb>M3px_x5*dugY;^9JJw>tL8Z%6q6aX?R-W_*XfGTAS@jo>bRvhyy+JU^|=5I zX`?X`1o8U%`i>L_M~GKcloL5!ZV-t?$!Tff;5x2ZOjkgEl>P=39woP-i-k3)VEo6Q zIY>)W)>F*~+~9SM1%EAa5=(fPT@eND4<-9r(lFL1n{^*NuUfNiE+}Xe2yE6hNVlJv z=&`28ME^;8-9PNz`i6o2&(_H=XbVLT?{|HSubG*vXVb>Gc^^6IRG@XC4`;|py^bq!86s1|w|32JqY@ZnkCAF8>gf0Z9I63( zPxbT{XF0@_kzn1R55v2?wn%EGIfTDhFHeJy^lGdg;29liST*BXGZ~;3W?|N&4+z2Y ze{~pF7`+ag7bocP>uQ7OPpwz~6fx#6gC(|Cce@9)6FqjH5AXIwCA_O#*77*@S|+~- zaWf`R+iy_auS7oRKKf3%b8=zk+>bOSvWS^E+WghP zL1pb42PYE5j3Fm?O*^ntws&%S|H-)i^(E%{f0}LYtrad;eARd^4!M>|W^h!PT&V>5 z-K%ayCx8mZy$pDk(l{8GRFyLnwiSCnx zDU|SkwMz96;UuMhPO~~c>kcTsCU*4FB3&9;g7G%kS2J-&EC1ANx6Oom;(ZD z_v8CL={JAnI8x2-uFuHEwFj|&8F%D-HwIaB%}Ehgf~rnK%s5-hD;0!=scA@GpRChTJJAf8p~C4u zAdcoXJms~Y`eh1yXTr-q`jDIXE;v!R;IRb&005qsx9b~o`q^&|78*Ks=>UVR4dxXS zi&f`;PD_ikuaRz6Em@>tWz&e;!2=qrF>^R;^dc(5^iHi-QGRt^w%Vk}(Jq(;djhH%X}ojJPX++F-8Oa)1yB7~X4k zJoTSnEW|rLawH8~@+!$GQ@3ioS~&{P&tk>iB&hLQJi3+^7&v+Um9wh{`*Hr}qT@;{t)JkV5`9|5!gxYd8_tm943 z{B2}noOH{ye5!lHZ3XS~oSxqMlH^~~AnJ2uqJ*aV;T*BQ<8{ ztGg?jZlgxoDMA%5uD!h(TF7o>R*k(kHH{`;rcfZ*-rr{+k5PF2JfZAYknh(xYGI7C z##U|c6THX_k^69!Ul3uTZg+F0<3IQ}c_k&0qY@9sn2qO_6>DJU+k#5Y8KCC>{?&~RBrsJ*2zTOzj?TL?Y#mbSt^W?M+s>*ZH?)<@OY6Pc=ARe7etwpymGyPz zr%#_A->Rvod}L!|L%jxbPau)-3<2x)8#6H9{h`DqOU&v9a2MBKeOo8LJ&ihqkl%6K zXCbj9jw2LrgkMPCOKw-&J=qV%mkLWAz_nRHl{=*avDTr{R#_Mxl$cRjZY^hCpAP4T3CtO+XWv6^Y^Zw61@beacu?c zOt2XFqh&X@wu&4u3`YKpj>4^hnQw?DP{YvTlUf8X72j zcomq*eAoh2(U^AdhqTr{Gfpcvfj=0XLhx`#`X3aY-FR<_`OD-=h} z&pRV!92AKanUoaxbG6P)s-JwmAU~C9U1J`&l~R!gDxH~P58%q6^Qn;H}MNYndlNC8x&6F^1>@|182_A*@H9@2 zkMI+sL`@k>u9ayX)$iKpZx$$vCX0@+O&EAZu5k>@{lMN0U?@tpP9gW|ahSg2-#8siXxZhRH->YjpN9hHi3n?fMF+Q+=-`=B6jG*cK z$@3my<@xpioeEnAqym(ve~rTuPQlP^#9{Cx;r|S|?{71_;|=l*VznF2&IOO4uD zIU|iz`h_LuPUk>i`@0Ioek?G&00v7@U}g+rWMlZTI62uf*<^ow)t|{23{>d)i++0C z0Qk_a#ltTSTWtnALeZf^Ev zjs$VJ+8M&$$peng*VlJFK;&CQE%Z&(*QUO7V>utIPj?#;Ki2K$&wvSHp5syg8H2cU zWT^@QNP5kQ=sB;V`gUzORS^o@R|?!k8v?5aY|R5TwHx}qK!lPqIB5* zYQvI3pdq-fcg@Z|`^Plv-A*^H37>oHVe7ewuvJI$My=IQ=bDzKqN;h4)*71kGh-=L z;sq_ffq@0TNXPYLZ!wWlW~c;w{<$V3ubU=SWR@!v z;=v?XkD5P2*%fJY*OY!NdsZAD6l3}~AVK%nYzhsHjdLmJsl8Kp3YX|_5IZ0Y7-;He z1yd_(Tq*}qqHie0Rcgj_hP_9 zwbVE;bog4VGKF?=z~P=Ek3MP5S6F_mV~%aoms*>%cqvDat%3jw(2B7<|5dQ}2n=7| zoqzUfyTGCRXY3&+%lf- z?L;!(KPa4SCovs2nN-D?`rt=C)lC~3ELJ_ekm%bSwpV05`K}>EW~Jz?hcU(e{M#F7 zR}G;@o5|BD-hBZ*?sPp^Gi8TFsHI+Vc&}t!s$rj5$oV;5?CVbphr)v!DizQcqr&z` z=b$a3;`rReYz9U#wNgrtrumO$mIEVL{x_n|F2Hl@LG`&~#h)R-K$JUFqL~gzgZRf) zauARZp?F;JhE4A*m-u_1QsMa0(#tz>?oq+%4Qah85{ST@VqJmh^FIB%+!**|#6V%< z@UDmVw7nbLk~-h6E)T zo0!!mv;W%__#5q6G&bpiQ|iIN^_D=vjQZb$bhxF6NHY+kz7M>-2tq~Sx1Su`O#WPB z8?>O<@G0H(CRg$DX0xOD`L>+{qfsE&(ubWH6?@fEPu&^_E%Dzx{!Cl`7^k$6{1M_; z>fjd@+9Pv4R;PwYxIlyDYgy|^TH7W8XZLWZ<)h`k4Yx_VV3c&3VFlp~y&m1o`tt~N z4|3U9*#?eIGR41gz5Cv=G&k#C*O=fowe2^nHhO7YceprC4Jgy|i`m>W!5fP?YYL?hfe*G68`B(lTU#ATa6fk{I179n#2mzdyG7 z`|Z8=K5snFdCoaY(A8EY!l%Xufj~s+YD)UR^~L`mTx{SQ?&P@)T+qDrRTV&pQQAEa zh^AUy>7`)+tTHFu#{iYPDxZ;e!TKu0?(M%w2-80_y!tNUg*8>&ELIFAt>3eUpPe|^ zBJ%|Q?`){bBxfO+ zj}@eSk+p2HK)ok9q3UA7(y_`nhnP32YmDt$LvLU6=wB(*_vEFJZfcSukR$y)h8ui& zpuW-^2vw%B0Ie<}-n^|l#Tq>fN{7%$XqX<-nf%5|2{{_5TX18covAT)oppUbXz~He+~SkixU(lEM%c?#WgK~E zgM))7RpIy%kt_F~|{4Csi%Ueh*S^ zZf?cmp-H4!fu$A?^oS7wuiO3bp5JXZ&p-^JHY{xBkb%^t7z1FVITHh!=u_fqYJ@;A zZH^ja)60b5CziG3soHEHwK9^@)~v6b__`6(@E4ICXysq{?-r!#)5hBFGQ*3uOY(o% z_oZZA4?W_xS2Bd<_#2TQZfm`MoLuN_9})Q7VnvtqTwr_Ve5~5>PJ8*GVr;F&CxJ}r zzDwTo=tgU?(KGtQ2qF+tW0uz(5j7@X!*%FqqQ*+d+|q+DCMI@qbp`DmIwK#NYdelt z???OmnM_2`1CNiQV}Ha;!(zo~l3j_#>h>0~erl}FDoT<7PKbFKz`WLNU9)jsj)|V_ zB$5^sL7J0?!&tqhM4$@xkmj-oQ zmVbWf;8~Mf&c*3?JeziTV>n8jXY&u{d|&cpaA;@?8x*6U&Q%jCmp=b1$h96FVUE-c ze+0d*z)0%pO=E+=r2aB_ZyV~Hycs*Si9OLQ@fjQng)ub02pyp#BqY+eFzDMX7UGB) zD;w-d9O+-8%;D4A%W+3r4GAL!rqj55s!3nafRV4GjDjGoYXm>x8dqL^Cj=2B7TV)J zL5p&;+JZOXYA<%0=nwV~Jb)UP=x^_EzE$QDMD!VSPEGM;=R60+!WtcJ^nF6JI~61x zg2%$v*Fhu+n2CjIomi(pO(m`zNB8AfhR8&$9NXL<=NPYDZHs|=m72Mb`_-@vKuk|Y1 zc03=QjjacEAc@zWefP$}L;LI~@_`kKxBe?_D?;q5%HGyC8Ayrt-TrSdPEkqa$e!%D zcEm3(&M%#2n>}kD=z<}9tO-?>6&#e!J>%m>+aqn!oeEvO-{9P1u;f@o+=TCJ(+(X> zn;7&eQ_OpFCB@@(oy~B1pd$RSGu0B&r>)7SU!fhRs@4aFTb>~8w z^lILW)IZk|YZXPX3Kuu{^f^_z92Pr(pfh@!zPX3K8kti`Y-V$$07?% zD;ngC+YRq(;p6Cn!ot08TATBtafnG0l)hE)4cygqtqqEVExu1VxMQuJGyLQHDqe}1 zRwf{|DkM;rg~cWkaEB=F=k2)-Ou0mM^lAJ72j2GeXGZ8s-1NgkgrP2k*IxE z1W&O6o(%@(cjFpncj2;0ryzGXm*V1L%DAr4?(SllwZ+!7H0wF>b5Z*)A=0z~C5rHZ zoXd}VuDw0>KWLVgYd$>OeLR7Vnz8fGCMN*{Knd0vCp-FRT(XhiDHO1R#B-7ir9P#j zwcY-u4?K&`ps<^Re4je8 zaMh!++Sv8Xd8Bz~{d4$lWD>BbFJQ%FRNc3b=WjIh$kaoGsU#NAf@CVtu}+~-&+U<` zBD-5SyuyL0Eg(ajlCI^Yn_0^RQHY$;dc2C_@9pY$hsKpoGW0x=FDOlVxv%b$JixTw z)XBuGTuX#gR2Ss6jK@c|h*75z8eXe49Z08ElR zFtj0hD3b_fGFfQaBCPFMV>Zu-e2VL6tX~cWCX}y}o)6Sg?-qJPg|4=!2s`8K(^LiS z=Rg_{kkT^b4`!`saTY^0+11&JX6oh)WqRyp54gpf<^&pLz>Ic7!(+R--=pa$7Y^<$*sMM!wrM^DdgTeoNdyL9qaRpQwHqO-PO+hduo_ z(A?BnNzPbf6ft#IszI^{Jp(f}E#I~8VK4asxRy!heKE@mxEqVf8ceTP^hGg?YL&Iv5Tu()vlWOCJ$qTbin;c!*gzehfIy9Poini@ zj;O1TnTRps|GN03#(F-(Bc^BIO&4KU3FKW`ZOp1K_y7QVc6N4=Lw?#PadigV+_F=K z&wnp261JaheV{!SLL~I)fBm|Tt%u}BZ{Oop@CAEN{5sbT^nb&#viQUEwb%vqBJ`kGc^?MK7 zN5w1Qx#&c6&`kzz;0WmG8XNaV6U+5ig|)=Nxmm7x_+B!ldL3Kv4^!+Rb0xVo-|!)x zp*D;w@vnH@#YXaJo{-XnH9Mqk$VLyBXJb%uz-a9E0nQexhy`#q>l)4t2~}jEHw>tH z0Jg{HXE<%1PN*5bs|hl-(VnJV-k0k-&3g&;X1&q>xzB4hqp7D?V>+ezWzR0MBfIuz zw5Np8^x!|94Vc`ti&wnXPrF8Fi#Q_k{(=*X{*mA!-b?vI} zXUGO`uEshSf7r#>skN4k_fBP)4gT-QAfLp2395_61r1$iCuY!}jF%}PR@nzq5G0vm&r&Sk-pMZ`WN z7rsr<*8`L?Z6Mt7-0}v&28u}6}npYGOmJJZSxu2wWV-_2yeHp)(Pg56h zYpBpm%Q(s}(hHrQ9evBrStEHqGD5Ui8^UF29K#$}ZL7{Ql)+a}P(VMe$BE?&fYhR3 z#1>CR&P}ax0zcj`e+iL^;=W=W_-te-zrhH2u2&HSBvcwJTJhBME%h{S&6P@NXm-$6|K6UGJy$0dm2l>3C0BkK zfP%x(@eoUtR$)d&1I5~TUSU`5@3+U!J+5?CFjp^7`SyGA_ac)76stj2G@zvVW2L+N z1>;(KqVHw|ITo8IlRDL<-;*=6R?-ua(^l@?SzKy2`goCEAG($vaUxDl-i}RJ*L>34 zP1Uwr2RS)GwmXMol5~9y4DgFsy4VY`Hs{fp$9Wh(jjNaV*nZ@dc;D)5S4nGpD*3IO&(+Tk@O|pA5LA2CL^&3rlV!F7F%tJD{ z^1;wX9gPt@geUj_wlAIOl#@a4DC+E?35Io{g+B~ikk$FSs+;io!Qt@nyudv1gNR%x z1;OLSo@&7LTHODt2%zB>4}adAR)urtc$&54$;>uRT)=Yf$;Qz2_ek*Z8A;Gy^-2wB zRgc!4#U${?=kq;j1R9HE=WDdI-Jmaq8mgO$1OT%r_O7jA-jF)K0Cb9RTiC-RO4Kj7 zFQZPaF`jf(pt6=RHSE=;!K; zxa&5!CJuk-bYS0w_SV;nX@rQN7-u+^y-B$%-5^sEhH6q+oR&}9EUh4}FseImFzs~+ z_o#x+*~BL+r&Uog)D|93M=uePe|6LT3-hz{$rrPDkr67veTo-X;k+oJ+M^ek=Blc( zTel&bC?4Ew%-l@=CuowRso4o>-~4JtSUVU0S5+#a$aa9H0&Un6Oj}nk_IrM&A6VL^ zLWf|SH`av18oChs({ba_6@90uBuNy)gzXe>k*|`EL{+pCPjBHn8)69)*rH20)zZTc#4a ztTKgqU#w2{OW^91tY1IGiU2zEX6=>977Se#;D9qg%neLro4b=(UEe?+6c8>lUp&Cw zBRRb)c-d??V1gx0%&6Ud} zPG_=F1eIZupGuRLkC&(`(U+22ibO_k^l97F%;I6*8YAHeITC$aN)$=C(^q^gZoh); zEy)NaE$2?L?<8af=c_^>NhbMQQ!{0b4DsrBMSy<4g#_WiqVHFhcJSNkWWzNg9w| zYd(}rXLH=W-48IL`!EKKh@q|Z?oy(V!*mN!b)`+TI!Zpv>CqxbeD$~Q&4LRGv7;kJ zpj{9cQ$z+)Rx3#pUJ{u9U^P7pCUz)TXhd&mdC-@Qhp3gT3+FSW^korZO{~v<7r*W& z)mird&n7>Ej6iTcrr>zEKTucr`AyV!c~pm89_*lXJ$+`%I6v>#JOIx%YitP9as~;m zCnLd_qo(ma){dT#0o~Mq#nmW4s+Akk@*yS`Tnrm{jg49IO9U7%)}ua%0m{OdSEWEt z`2&+)Tx_guo5K4BjkEw&l?0>-uwDt3HC8FUSuk<~ zN2Xz~$#s9$^4-06)ngu1It-N4+N18XXe+tOk=ukDr`Q~R!@>%E z9Z1=$qEuc!FfT@tL|4`D8H=FS2cL8HQr|(Uq3-ARVF3(61tR|D+L!fs>7WTWlXCrNp+uofh;x(x!tU?VX?zHOg*syb<6a#Og z^F#A31^del%8Zd-Y-}a|9*6V3PWQa#!VD3UW&C=7FKGy6FWF`m+oHxdKYu<@;ECyC z;y2&TS0?)S3TEzJ?upfnNM34u>FC9+LuB4OF7UUq%W7B0NUXUWBm7|} zoG=C9ooPj;09MCqnXAzMPiL;yA*K28e{1UTU~a5-9eFGwF5WvYapmdhQqQY0 z%(ngbupq73*z-iecgao3p<*Qz@J~e!9U|;|(!-hZv!5z%^ zE^EA^5)x|ZOonPBGV(ut!?LsYaj_MAAA|JrH1 zf@na2+VAA#=HuIntQ0UXGaCVhp#{uPil>YoxUlyP0Oix*rQo0>oR~6Ib<54q4h$nD zfJOpigm-+X!e0Gw}0Uc$Mpgs`8h?ptAUSTf&gF zeHPThJKqYmka;BZEqDs7udsZD0{=8=C*OABGFQ`mzI}GYbp?>>RR084w#7=>o=ng~ zRPeBCPg^Yoc{UIHq+h=Z(-xNKFWkKCEmU+>DyYEKnw+qH2Dp|Pnj@pC4x_Isp7sYg z64ec8h!^he@^G{C{MOcr2&NO69_1gD z^ZR^kxf!Oga$mI9AhI*kLq!-1;0|zbfG20ml!==~&@qehpH{K~q5-HEOP8u)@4r1&js~=n zo*Lqh1)TUm2TLX--r)5ieS&jx$D_{f%Vo^SLrL5g{w~N);W4pp{)4w_mVCHe*Gg~} zg=?eV!xWh}Z26iv44xn zeP1F(O+#~Y(nVZj$6b&Y{BZSRhH%C=m+e)?I10t#jnk0h&3*)^ej#!3s8XtHXJ_Xv zYVW-PGXobB8$S%dN3gYqWmy{Cd!foo*&D@uWZlt_3CTDNw<0&Z!ovVTP;7~|6pTmh z_w4!D$GmyUST(Z$_qY60DA>!u7l*i+Bi}novO9Zw#!%nTkQsRjb#!)f8ScdZ{4qN_ zy8s#b8!jFmXqm_L!z3_q&#;py+I$lO*7##NALB3php5dYC}w=FT9Q}1R(+(X=;*|# z_>gWJ4YZ<5p;f%oq{xudfu+?f7qEOlS$`V$LN72 zDek|d$enpynI)k$ddjlSz2en?X>)$=-Z22ovU_YZlSOmu4cl=NtvWsx;fR9)e3MddAPx!YY{n~s!7>EstjuA-kRwQesu=`4A# zg;Hei!GJ|#D_Kd8vQ^LNze{4SSllmgdS>`jxApE7k=rxE-hhX{C<0Jk=;d5p+h>{a zy7&-^96Ee9wzUG?v_y^Patu?3G+=B2os-$Fl=G_K$A~fiowDET5-;>VHy1LWE(?yO z!bEtGfCp203e3z>P+IkhDVl`@4`Mjz@egwXnYvIPG*Yw&utnxi?77-NuaFhx+Yb(C z8O@R}L)5cYp=*8*6wfA{vm(48CfP9!j?ll4{c7e?tx2 z3h%WOLb;|kiF2Jg6sV)b5)%nk$JV_{5_&oTX|{tirq1LK9Jc!E$h!gZ6g@-R#j(>< zE((Fx=)m*s-?LLn%moI9hKZ$fp2*)>gX64smq)q2r2mK93k|*+^aP@4)dF{DFc(bD zPIWg2dcSSH{-_zh#Hf(cXI}{#B2Tu@9{r@|*llfPVpJ402k|&qPt{q#1uvK*85`+8Tc;S-`tbTDQh|?Sijd1J$H{vZbA=r?F;{R6-m4UE{YmX0S4k(2 zpsSe9E=Q|3Fm)Zfr|Y?fZbiz|znEk$Ep)8e%}RGzU)nLyilJ(Qc&w)2Xommb