예제 #1
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            explosionRadius = (int)((this.entity.Properties.Client.Size + 0.5f) * explosionRadiusModifier);

            if (sidedAPI.Side == EnumAppSide.Server)
            {
                injuryRadius         = explosionRadius * 2;
                injuryDamageModifier = this.entity.Properties.Client.Size * injuryDamageModifier;
            }
            if (despawn != null)
            {
                switch (despawn.reason)
                {
                case EnumDespawnReason.Combusted:
                    ExplodeInAir();
                    break;

                case EnumDespawnReason.Death:
                    ExplodeOnLand();
                    break;

                default:
                    break;
                }
            }
        }
예제 #2
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            buzzSound?.Stop();
            buzzSound?.Dispose();

            base.OnEntityDespawn(despawn);
        }
예제 #3
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            explosionRadius = (int)((this.entity.Properties.Client.Size + 0.5f) * explosionRadiusModifier);

            if (sidedAPI.Side == EnumAppSide.Server)
            {
                injuryRadius         = explosionRadius * 2;
                injuryDamageModifier = this.entity.Properties.Client.Size * injuryDamageModifier;
            }
            if (despawn != null)
            {
                if (despawn.reason != EnumDespawnReason.OutOfRange)
                {
                    SpawnExplosionParticles();

                    switch (despawn.damageSourceForDeath.Type)
                    {
                    case EnumDamageType.Fire:
                        ExplodeInAir();
                        break;

                    case EnumDamageType.Gravity:
                        ExplodeOnLand();
                        break;

                    default:
                        break;
                    }
                }
            }
        }
예제 #4
0
 internal void OnEntityDespawn(EntityDespawnReason reason)
 {
     foreach (IAiTask task in Tasks)
     {
         task.OnEntityDespawn(reason);
     }
 }
예제 #5
0
 public override void OnEntityDespawn(EntityDespawnReason despawn)
 {
     base.OnEntityDespawn(despawn);
     if (id != 0)
     {
         entity.World.UnregisterGameTickListener(id);
     }
 }
예제 #6
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            if (Api.World.Side == EnumAppSide.Client)
            {
                fallingNow.Remove(EntityId);
            }
        }
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            if (Api.Side == EnumAppSide.Client)
            {
                _ringRenderer.CircleVisible = false;
            }
        }
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            if (Api.World.Side == EnumAppSide.Client)
            {
                fallingNow.Remove(EntityId);
                particleSys.Unregister(this);
            }
        }
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            var essr = entity.Properties.Client.Renderer as EntitySkinnableShapeRenderer;

            if (essr != null)
            {
                essr.OnReloadSkin  -= Essr_OnReloadSkin;
                essr.OnTesselation -= Essr_OnTesselation;
            }
        }
예제 #10
0
        private void Event_OnEntityDespawn(Entity entity, EntityDespawnReason reason)
        {
            GridAndChunkIndex indexes;

            if (GridIndexByEntityId.TryGetValue(entity.EntityId, out indexes))
            {
                GridIndexByEntityId.Remove(entity.EntityId);
            }
            else
            {
                return;
            }

            EntityPartitionChunk partition = null;

            if (Partitions.TryGetValue(indexes.ChunkIndex, out partition))
            {
                partition.Entities[indexes.GridIndex].Remove(entity);
            }
        }
예제 #11
0
 public override void OnEntityDespawn(EntityDespawnReason despawn)
 {
     (entity.World.Api as ICoreClientAPI)?.Event.UnregisterRenderer(this, EnumRenderStage.Before);
     Dispose();
 }
예제 #12
0
 public override void OnEntityDespawn(EntityDespawnReason despawn)
 {
     entity.World.UnregisterCallback(callbackId);
 }
예제 #13
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            entity.World.UnregisterGameTickListener(listenerId);
        }
예제 #14
0
        public override void OnEntityDespawn(EntityDespawnReason reason)
        {
            base.OnEntityDespawn(reason);

            taskManager.OnEntityDespawn(reason);
        }
예제 #15
0
 public override void OnEntityDespawn(EntityDespawnReason reason)
 {
     (entity.Api as ICoreServerAPI).Event.DidBreakBlock -= Event_DidBreakBlock;
 }
 public override void OnEntityDespawn(EntityDespawnReason despawn)
 {
     base.OnEntityDespawn(despawn);
 }
예제 #17
0
 public virtual void OnEntityDespawn(EntityDespawnReason reason)
 {
 }
예제 #18
0
        public override void OnEntityDespawn(EntityDespawnReason despawn)
        {
            base.OnEntityDespawn(despawn);

            alarmSound?.FadeOutAndStop(0.25f);
        }