Fix override of Building.block in PayloadSource (#8551)
* Would break(without crash) mods that read the block config of PayloadSource
This commit is contained in:
@@ -40,8 +40,8 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
commandable = true;
|
commandable = true;
|
||||||
|
|
||||||
config(Block.class, (PayloadSourceBuild build, Block block) -> {
|
config(Block.class, (PayloadSourceBuild build, Block block) -> {
|
||||||
if(canProduce(block) && build.block != block){
|
if(canProduce(block) && build.configBlock != block){
|
||||||
build.block = block;
|
build.configBlock = block;
|
||||||
build.unit = null;
|
build.unit = null;
|
||||||
build.payload = null;
|
build.payload = null;
|
||||||
build.scl = 0f;
|
build.scl = 0f;
|
||||||
@@ -51,14 +51,14 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
config(UnitType.class, (PayloadSourceBuild build, UnitType unit) -> {
|
config(UnitType.class, (PayloadSourceBuild build, UnitType unit) -> {
|
||||||
if(canProduce(unit) && build.unit != unit){
|
if(canProduce(unit) && build.unit != unit){
|
||||||
build.unit = unit;
|
build.unit = unit;
|
||||||
build.block = null;
|
build.configBlock = null;
|
||||||
build.payload = null;
|
build.payload = null;
|
||||||
build.scl = 0f;
|
build.scl = 0f;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
configClear((PayloadSourceBuild build) -> {
|
configClear((PayloadSourceBuild build) -> {
|
||||||
build.block = null;
|
build.configBlock = null;
|
||||||
build.unit = null;
|
build.unit = null;
|
||||||
build.payload = null;
|
build.payload = null;
|
||||||
build.scl = 0f;
|
build.scl = 0f;
|
||||||
@@ -87,7 +87,7 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
|
|
||||||
public class PayloadSourceBuild extends PayloadBlockBuild<Payload>{
|
public class PayloadSourceBuild extends PayloadBlockBuild<Payload>{
|
||||||
public UnitType unit;
|
public UnitType unit;
|
||||||
public Block block;
|
public Block configBlock;
|
||||||
public @Nullable Vec2 commandPos;
|
public @Nullable Vec2 commandPos;
|
||||||
public float scl;
|
public float scl;
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object config(){
|
public Object config(){
|
||||||
return unit == null ? block : unit;
|
return unit == null ? configBlock : unit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -133,8 +133,8 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
}
|
}
|
||||||
|
|
||||||
Events.fire(new UnitCreateEvent(p, this));
|
Events.fire(new UnitCreateEvent(p, this));
|
||||||
}else if(block != null){
|
}else if(configBlock != null){
|
||||||
payload = new BuildPayload(block, team);
|
payload = new BuildPayload(configBlock, team);
|
||||||
}
|
}
|
||||||
payVector.setZero();
|
payVector.setZero();
|
||||||
payRotation = rotdeg();
|
payRotation = rotdeg();
|
||||||
@@ -159,14 +159,14 @@ public class PayloadSource extends PayloadBlock{
|
|||||||
public void write(Writes write){
|
public void write(Writes write){
|
||||||
super.write(write);
|
super.write(write);
|
||||||
write.s(unit == null ? -1 : unit.id);
|
write.s(unit == null ? -1 : unit.id);
|
||||||
write.s(block == null ? -1 : block.id);
|
write.s(configBlock == null ? -1 : configBlock.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(Reads read, byte revision){
|
public void read(Reads read, byte revision){
|
||||||
super.read(read, revision);
|
super.read(read, revision);
|
||||||
unit = Vars.content.unit(read.s());
|
unit = Vars.content.unit(read.s());
|
||||||
block = Vars.content.block(read.s());
|
configBlock = Vars.content.block(read.s());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user