add ied (#20966)
* MinSolution and SolutionEmpty construction conditions * make ied sprites * add ied * ied crafting stuff * deconstruct give cable yes * fix * tags * tag * 3x3 * sharing is caring * buff damage --------- Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
52
Content.Server/Construction/Conditions/SolutionEmpty.cs
Normal file
52
Content.Server/Construction/Conditions/SolutionEmpty.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Examine;
|
||||
|
||||
namespace Content.Server.Construction.Conditions;
|
||||
|
||||
/// <summary>
|
||||
/// Requires that a certain solution be empty to proceed.
|
||||
/// </summary>
|
||||
[DataDefinition]
|
||||
public sealed partial class SolutionEmpty : IGraphCondition
|
||||
{
|
||||
/// <summary>
|
||||
/// The solution that needs to be empty.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string Solution;
|
||||
|
||||
public bool Condition(EntityUid uid, IEntityManager entMan)
|
||||
{
|
||||
var containerSys = entMan.System<SolutionContainerSystem>();
|
||||
if (!containerSys.TryGetSolution(uid, Solution, out var solution))
|
||||
return false;
|
||||
|
||||
return solution.Volume == 0;
|
||||
}
|
||||
|
||||
public bool DoExamine(ExaminedEvent args)
|
||||
{
|
||||
var entMan = IoCManager.Resolve<IEntityManager>();
|
||||
var uid = args.Examined;
|
||||
|
||||
var containerSys = entMan.System<SolutionContainerSystem>();
|
||||
if (!containerSys.TryGetSolution(uid, Solution, out var solution))
|
||||
return false;
|
||||
|
||||
// already empty so dont show examine
|
||||
if (solution.Volume == 0)
|
||||
return false;
|
||||
|
||||
args.PushMarkup(Loc.GetString("construction-examine-condition-solution-empty"));
|
||||
return true;
|
||||
}
|
||||
|
||||
public IEnumerable<ConstructionGuideEntry> GenerateGuideEntry()
|
||||
{
|
||||
yield return new ConstructionGuideEntry()
|
||||
{
|
||||
Localization = "construction-guide-condition-solution-empty"
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user