Defer even firing until after unit is added

This commit is contained in:
Anuken
2026-02-16 13:22:32 -05:00
parent 9d759d03eb
commit 3c239e8af0

View File

@@ -10,7 +10,7 @@ import arc.scene.ui.layout.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.Vars; import mindustry.*;
import mindustry.ai.types.*; import mindustry.ai.types.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.content.*; import mindustry.content.*;
@@ -534,7 +534,6 @@ public class UnitAssembler extends PayloadBlock{
unit.set(spawn.x + Mathf.range(0.001f), spawn.y + Mathf.range(0.001f)); unit.set(spawn.x + Mathf.range(0.001f), spawn.y + Mathf.range(0.001f));
unit.rotation = rotdeg(); unit.rotation = rotdeg();
var targetBuild = unit.buildOn(); var targetBuild = unit.buildOn();
Events.fire(new UnitCreateEvent(unit, this));
//'source' is the target build instead of this building; this is because some blocks only accept things from certain angles, and this is a non-standard payload //'source' is the target build instead of this building; this is because some blocks only accept things from certain angles, and this is a non-standard payload
var payload = new UnitPayload(unit); var payload = new UnitPayload(unit);
if(targetBuild != null && targetBuild.team == team && targetBuild.acceptPayload(targetBuild, payload)){ if(targetBuild != null && targetBuild.team == team && targetBuild.acceptPayload(targetBuild, payload)){
@@ -549,6 +548,8 @@ public class UnitAssembler extends PayloadBlock{
progress = 0f; progress = 0f;
Fx.unitAssemble.at(spawn.x, spawn.y, rotdeg() - 90f, plan.unit); Fx.unitAssemble.at(spawn.x, spawn.y, rotdeg() - 90f, plan.unit);
blocks.clear(); blocks.clear();
Events.fire(new UnitCreateEvent(unit, this));
} }
@Override @Override