diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 7361c0f298..9ee4287fa5 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -250,7 +250,7 @@ public class Control implements ApplicationListener, Loadable{ }else{ //when already hosting, instantly build everything. this looks bad but it's better than a desync Fx.coreBuildBlock.at(build.x, build.y, 0f, build.block); - Fx.placeBlock.at(build.x, build.y, build.block.size); + build.block.placeEffect.at(build.x, build.y, build.block.size); } } } @@ -288,7 +288,7 @@ public class Control implements ApplicationListener, Loadable{ build.dropped(); Fx.coreBuildBlock.at(build.x, build.y, 0f, build.block); - Fx.placeBlock.at(build.x, build.y, build.block.size); + build.block.placeEffect.at(build.x, build.y, build.block.size); } @Override diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index a2ed50109f..d1f7518e65 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -179,7 +179,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ } Fx.unitDrop.at(tile); - Fx.placeBlock.at(on.drawx(), on.drawy(), on.block().size); + on.block().placeEffect.at(on.drawx(), on.drawy(), on.block().size); return true; } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index c960dd3f63..5c49709220 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -312,6 +312,8 @@ public class Block extends UnlockableContent implements Senseable{ public float deconstructThreshold = 0f; /** If true, this block deconstructs immediately. Instant deconstruction implies no resource refund. */ public boolean instantDeconstruct = false; + /** Effect for placing the block. Passes size as rotation. */ + public Effect placeEffect = Fx.placeBlock; /** Effect for breaking the block. Passes size as rotation. */ public Effect breakEffect = Fx.breakBlock; /** Effect for destroying the block. */ diff --git a/core/src/mindustry/world/blocks/ConstructBlock.java b/core/src/mindustry/world/blocks/ConstructBlock.java index 26f921660c..0d79403238 100644 --- a/core/src/mindustry/world/blocks/ConstructBlock.java +++ b/core/src/mindustry/world/blocks/ConstructBlock.java @@ -99,7 +99,7 @@ public class ConstructBlock extends Block{ } if(fogControl.isVisibleTile(team, tile.x, tile.y)){ - Fx.placeBlock.at(tile.drawx(), tile.drawy(), block.size); + block.placeEffect.at(tile.drawx(), tile.drawy(), block.size); if(shouldPlay()) block.placeSound.at(tile, block.placePitchChange ? calcPitch(true) : 1f); } diff --git a/core/src/mindustry/world/blocks/payloads/BlockProducer.java b/core/src/mindustry/world/blocks/payloads/BlockProducer.java index d1964a8053..299a4b51bd 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockProducer.java +++ b/core/src/mindustry/world/blocks/payloads/BlockProducer.java @@ -96,7 +96,7 @@ public abstract class BlockProducer extends PayloadBlock{ if(progress >= recipe.buildCost){ consume(); payload = new BuildPayload(recipe, team); - Fx.placeBlock.at(x, y, payload.size() / tilesize); + payload.block().placeEffect.at(x, y, payload.size() / tilesize); payVector.setZero(); progress %= 1f; } diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index fae3d74c4d..ce8c135e5a 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -150,7 +150,7 @@ public class CoreBlock extends StorageBlock{ //finish placement immediately when a block is replaced. if(previous instanceof CoreBlock){ tile.setBlock(this, tile.team()); - Fx.placeBlock.at(tile, tile.block().size); + tile.block().placeEffect.at(tile, tile.block().size); Fx.upgradeCore.at(tile.drawx(), tile.drawy(), 0f, tile.block()); Fx.upgradeCoreBloom.at(tile, tile.block().size);