using Content.IntegrationTests.Tests.Interaction; namespace Content.IntegrationTests.Tests.Construction.Interaction; public sealed class MachineConstruction : InteractionTest { private const string MachineFrame = "MachineFrame"; private const string Unfinished = "UnfinishedMachineFrame"; private const string ProtolatheBoard = "ProtolatheMachineCircuitboard"; private const string Protolathe = "Protolathe"; private const string Beaker = "Beaker"; [Test] public async Task ConstructProtolathe() { await StartConstruction(MachineFrame); await InteractUsing(Steel, 5); ClientAssertPrototype(Unfinished, Target); await Interact(Wrench, Cable); AssertPrototype(MachineFrame); await Interact(ProtolatheBoard, Bin1, Bin1, Manipulator1, Manipulator1, Beaker, Beaker, Screw); AssertPrototype(Protolathe); } [Test] public async Task DeconstructProtolathe() { await StartDeconstruction(Protolathe); await Interact(Screw, Pry); AssertPrototype(MachineFrame); await Interact(Pry, Cut); AssertPrototype(Unfinished); await Interact(Wrench, Screw); AssertDeleted(); await AssertEntityLookup( (Steel, 5), (Cable, 1), (Beaker, 2), (Manipulator1, 2), (Bin1, 2), (ProtolatheBoard, 1)); } [Test] public async Task ChangeMachine() { // Partially deconstruct a protolathe. await SpawnTarget(Protolathe); await Interact(Screw, Pry, Pry); AssertPrototype(MachineFrame); // Change it into an autolathe await InteractUsing("AutolatheMachineCircuitboard"); AssertPrototype(MachineFrame); await Interact(Bin1, Bin1, Bin1, Manipulator1, Glass, Screw); AssertPrototype("Autolathe"); } }