public void OnBreak(BreakageEventArgs eventArgs)
        {
            var privileged = _privilegedIdContainer.ContainedEntity;

            if (privileged != null)
            {
                _privilegedIdContainer.Remove(privileged);
            }

            var target = _targetIdContainer.ContainedEntity;

            if (target != null)
            {
                _targetIdContainer.Remove(target);
            }
        }
Exemplo n.º 2
0
        public async Task WeightlessStatusTest()
        {
            var server = StartServer();

            await server.WaitIdleAsync();

            var mapManager            = server.ResolveDependency <IMapManager>();
            var entityManager         = server.ResolveDependency <IEntityManager>();
            var pauseManager          = server.ResolveDependency <IPauseManager>();
            var tileDefinitionManager = server.ResolveDependency <ITileDefinitionManager>();

            IEntity human = null;
            SharedStatusEffectsComponent statusEffects = null;

            await server.WaitAssertion(() =>
            {
                var mapId = mapManager.CreateMap();

                pauseManager.AddUninitializedMap(mapId);

                var gridId = new GridId(1);

                if (!mapManager.TryGetGrid(gridId, out var grid))
                {
                    grid = mapManager.CreateGrid(mapId, gridId);
                }

                var tileDefinition = tileDefinitionManager["underplating"];
                var tile           = new Tile(tileDefinition.TileId);
                var coordinates    = grid.ToCoordinates();

                grid.SetTile(coordinates, tile);

                pauseManager.DoMapInitialize(mapId);

                human = entityManager.SpawnEntity("HumanMob_Content", coordinates);

                Assert.True(human.TryGetComponent(out statusEffects));
            });

            // Let WeightlessSystem and GravitySystem tick
            await server.WaitRunTicks(1);

            GravityGeneratorComponent gravityGenerator = null;

            await server.WaitAssertion(() =>
            {
                // No gravity without a gravity generator
                Assert.True(statusEffects.Statuses.ContainsKey(StatusEffect.Weightless));

                gravityGenerator = human.EnsureComponent <GravityGeneratorComponent>();
            });

            // Let WeightlessSystem and GravitySystem tick
            await server.WaitRunTicks(1);

            await server.WaitAssertion(() =>
            {
                Assert.False(statusEffects.Statuses.ContainsKey(StatusEffect.Weightless));

                // Disable the gravity generator
                var args = new BreakageEventArgs {
                    Owner = human
                };
                gravityGenerator.OnBreak(args);
            });

            await server.WaitRunTicks(1);

            await server.WaitAssertion(() =>
            {
                Assert.False(statusEffects.Statuses.ContainsKey(StatusEffect.Weightless));
            });
        }
 private void OnBreak(EntityUid uid, VendingMachineComponent vendComponent, BreakageEventArgs eventArgs)
 {
     vendComponent.Broken = true;
     TryUpdateVisualState(uid, VendingMachineVisualState.Broken, vendComponent);
 }
 public void OnBreak(BreakageEventArgs eventArgs)
 {
     _broken = true;
     TrySetVisualState(VendingMachineVisualState.Broken);
 }
Exemplo n.º 5
0
 public void OnBreak(BreakageEventArgs eventArgs)
 {
     _broken = true;
     SetAppearance(MicrowaveVisualState.Broken);
 }
Exemplo n.º 6
0
 // TODO: move me to ECS
 public void OnBreak(BreakageEventArgs eventArgs)
 {
     EntitySystem.Get <LightBulbSystem>()
     .SetState(Owner.Uid, LightBulbState.Broken, this);
 }
        public async Task WeightlessStatusTest()
        {
            var options = new ServerContentIntegrationOption {
                ExtraPrototypes = Prototypes
            };
            var server = StartServer(options);

            await server.WaitIdleAsync();

            var mapManager    = server.ResolveDependency <IMapManager>();
            var entityManager = server.ResolveDependency <IEntityManager>();

            IEntity human = null;
            SharedAlertsComponent alerts = null;

            await server.WaitAssertion(() =>
            {
                var mapId  = new MapId(1);
                var gridId = new GridId(1);

                if (!mapManager.TryGetGrid(gridId, out var grid))
                {
                    grid = mapManager.CreateGrid(mapId, gridId);
                }

                var coordinates = grid.ToCoordinates();
                human           = entityManager.SpawnEntity("HumanDummy", coordinates);

                Assert.True(human.TryGetComponent(out alerts));
            });

            // Let WeightlessSystem and GravitySystem tick
            await server.WaitRunTicks(1);

            GravityGeneratorComponent gravityGenerator = null;

            await server.WaitAssertion(() =>
            {
                // No gravity without a gravity generator
                Assert.True(alerts.IsShowingAlert(AlertType.Weightless));

                gravityGenerator = human.EnsureComponent <GravityGeneratorComponent>();
            });

            // Let WeightlessSystem and GravitySystem tick
            await server.WaitRunTicks(1);

            await server.WaitAssertion(() =>
            {
                Assert.False(alerts.IsShowingAlert(AlertType.Weightless));

                // Disable the gravity generator
                var args = new BreakageEventArgs {
                    Owner = human
                };
                gravityGenerator.OnBreak(args);
            });

            await server.WaitRunTicks(1);

            await server.WaitAssertion(() =>
            {
                Assert.True(alerts.IsShowingAlert(AlertType.Weightless));
            });
        }
 private void OnBreak(EntityUid uid, MicrowaveComponent component, BreakageEventArgs args)
 {
     component.Broken = true;
     component.SetAppearance(MicrowaveVisualState.Broken);
 }
 public void OnBreak(BreakageEventArgs eventArgs)
 {
     State = LightBulbState.Broken;
 }
 private void OnBreak(EntityUid uid, DisposalTubeComponent component, BreakageEventArgs args)
 {
     component.Disconnect();
 }
Exemplo n.º 11
0
 public void OnBreak(BreakageEventArgs eventArgs)
 {
     _intact     = false;
     _switchedOn = false;
 }
Exemplo n.º 12
0
    /// <summary>
    ///     Force entity to broke.
    /// </summary>
    public void BreakEntity(EntityUid owner)
    {
        var eventArgs = new BreakageEventArgs();

        RaiseLocalEvent(owner, eventArgs, false);
    }
Exemplo n.º 13
0
 void IBreakAct.OnBreak(BreakageEventArgs eventArgs)
 {
     _broken = true; // TODO: Repair
     Disconnect();
     UpdateVisualState();
 }
Exemplo n.º 14
0
 private void OnBreak(EntityUid uid, LightBulbComponent component, BreakageEventArgs args)
 {
     SetState(uid, LightBulbState.Broken, component);
 }
Exemplo n.º 15
0
 void IBreakAct.OnBreak(BreakageEventArgs eventArgs)
 {
     Disconnect();
 }