From 08af9aaa021e4fcf4d4bbd2bcb2cb2a5b74ec7d2 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 25 May 2020 15:41:07 -0400 Subject: [PATCH] Replacement method bugfixes --- .../mindustry/annotations/entity/EntityProcess.java | 6 ++++-- core/src/mindustry/entities/comp/BlockUnitComp.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java index bbdf73c19f..4cf17621ef 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java @@ -572,6 +572,8 @@ public class EntityProcess extends BaseProcessor{ //implement each definition for(EntityDefinition def : definitions){ + ObjectSet methodNames = def.components.flatMap(type -> type.methods().map(Smethod::simpleString)).as().asSet(); + //get interface for each component for(Stype comp : def.components){ @@ -588,8 +590,8 @@ public class EntityProcess extends BaseProcessor{ for(Smethod method : inter.methods()){ String var = method.name(); FieldSpec field = Array.with(def.builder.fieldSpecs).find(f -> f.name.equals(var)); - //make sure it's a real variable AND that the component doesn't already implement it with custom logic - if(field == null || comp.methods().contains(m -> m.simpleString().equals(method.simpleString()))) continue; + //make sure it's a real variable AND that the component doesn't already implement it somewhere with custom logic + if(field == null || methodNames.contains(method.simpleString())) continue; //getter if(!method.isVoid()){ diff --git a/core/src/mindustry/entities/comp/BlockUnitComp.java b/core/src/mindustry/entities/comp/BlockUnitComp.java index 7a66cc83ea..77e9fc17b4 100644 --- a/core/src/mindustry/entities/comp/BlockUnitComp.java +++ b/core/src/mindustry/entities/comp/BlockUnitComp.java @@ -2,6 +2,7 @@ package mindustry.entities.comp; import arc.util.ArcAnnotate.*; import mindustry.annotations.Annotations.*; +import mindustry.game.*; import mindustry.gen.*; import static mindustry.Vars.tilesize; @@ -29,4 +30,14 @@ abstract class BlockUnitComp implements Unitc{ public void damage(float v, boolean b){ tile.damage(v, b); } + + @Replace + public boolean dead(){ + return tile.dead(); + } + + @Replace + public void team(Team team){ + tile.team(team); + } }