Solution refactor (#4407)
* Rename SolutionContainerCaps -> Capability * Move IExamine event to Chemistry System. * ECS the ISolutionChange into SolutionChangeEvent * Unify SolutionContainer into a single shared component * Replace ISolutionInteraction with SolutionContainerComponent * Move all methods from SolutionContainer to ChemistrySystem * Refactor EntitySystem calls to Dependencies * Refactor SolutionContainer to SolutionManager * Fix yamls * Fix test fails * Fix post merge issues * Fix various issues with SolutionManager * More fixes * Fix more components * Fix events not being directed * Fixes for Hypospray * Separate removal and iteration on Metabolism * Fix creampie problems * Address some of sloth's issues * Refactors for Systems * Refactored solution location * Fix tests * Address more sloth issues * Fix dependency * Fix merge conflicts * Add xmldocs for Capabilities components * Remove HasSolution/TryGetDefaultSolution and Add/Remove Drainable/Refillable * Replace Grindable/Juiceable with Extractable * Refactor field names * Fix Drainable * Fix some issues with spillable and injector * Fix issues with Grinder * Fix Beaker having duplicate solutions * Fix foaming * Address some MGS issues * Fix Uid issues * Fix errors in solution Tranfer * Fixed some extra values constant values * Cola is drinkable now
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Server.Tools.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Examine;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Localization;
|
||||
|
||||
namespace Content.Server.Tools
|
||||
{
|
||||
@@ -12,6 +16,39 @@ namespace Content.Server.Tools
|
||||
{
|
||||
private readonly HashSet<WelderComponent> _activeWelders = new();
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<WelderComponent, SolutionChangedEvent>(OnSolutionChange);
|
||||
SubscribeLocalEvent<WelderComponent, ExaminedEvent>(OnExamine);
|
||||
}
|
||||
|
||||
private void OnExamine(EntityUid uid, WelderComponent component, ExaminedEvent args)
|
||||
{
|
||||
if (component.WelderLit)
|
||||
{
|
||||
args.Message.AddMarkup(Loc.GetString("welder-component-on-examine-welder-lit-message") + "\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Message.AddText(Loc.GetString("welder-component-on-examine-welder-not-lit-message") + "\n");
|
||||
}
|
||||
|
||||
if (args.IsInDetailsRange)
|
||||
{
|
||||
args.Message.AddMarkup(Loc.GetString("welder-component-on-examine-detailed-message",
|
||||
("colorName", component.Fuel < component.FuelCapacity / 4f ? "darkorange" : "orange"),
|
||||
("fuelLeft", Math.Round(component.Fuel)),
|
||||
("fuelCapacity", component.FuelCapacity)));
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSolutionChange(EntityUid uid, WelderComponent component, SolutionChangedEvent args)
|
||||
{
|
||||
component.Dirty();
|
||||
}
|
||||
|
||||
public bool Subscribe(WelderComponent welder)
|
||||
{
|
||||
return _activeWelders.Add(welder);
|
||||
|
||||
Reference in New Issue
Block a user