diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 92014d9829..26dc1284e1 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1035,7 +1035,12 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, /** Called *after* the tile has been removed. */ public void afterDestroyed(){ - + if(block.destroyBullet != null){ + //I really do not like that the bullet will not destroy derelict + //but I can't do anything about it without using a random team + //which may or may not cause issues with servers and js + block.destroyBullet.create(this, Team.derelict, x, y, 0); + } } /** @return the cap for item amount calculations, used when this block explodes. */ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index f75d256bef..1f1dce4ddd 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -29,6 +29,7 @@ import mindustry.world.blocks.*; import mindustry.world.blocks.environment.*; import mindustry.world.blocks.power.*; import mindustry.world.consumers.*; +import mindustry.entities.bullet.*; import mindustry.world.meta.*; import java.lang.reflect.*; @@ -132,6 +133,8 @@ public class Block extends UnlockableContent{ public int health = -1; /** base block explosiveness */ public float baseExplosiveness = 0f; + /** bullet that this block spawns when destroyed */ + public @Nullable BulletType destroyBullet = null; /** whether this block can be placed on edges of liquids. */ public boolean floating = false; /** multiblock size */