Removed multi-class call generation

This commit is contained in:
Anuken
2018-07-26 15:24:48 -04:00
parent ea6f88b7f6
commit c1c82b451d
32 changed files with 128 additions and 153 deletions

View File

@@ -80,9 +80,6 @@ public class Annotations{
*/ */
boolean unreliable() default false; boolean unreliable() default false;
/** The simple class name where this method is placed. */
String in() default "Call";
/** Priority of this event. */ /** Priority of this event. */
PacketPriority priority() default PacketPriority.normal; PacketPriority priority() default PacketPriority.normal;
} }

View File

@@ -35,6 +35,8 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
private static final String readServerName = "RemoteReadServer"; private static final String readServerName = "RemoteReadServer";
/** Name of class that handles reading and invoking packets on the client. */ /** Name of class that handles reading and invoking packets on the client. */
private static final String readClientName = "RemoteReadClient"; private static final String readClientName = "RemoteReadClient";
/**Simple class name of generated class name.*/
private static final String callLocation = "Call";
/** Processing round number. */ /** Processing round number. */
private int round; private int round;
@@ -102,15 +104,15 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
} }
//get and create class entry if needed //get and create class entry if needed
if(!classMap.containsKey(annotation.in())){ if(!classMap.containsKey(callLocation)){
ClassEntry clas = new ClassEntry(annotation.in()); ClassEntry clas = new ClassEntry(callLocation);
classMap.put(annotation.in(), clas); classMap.put(callLocation, clas);
classes.add(clas); classes.add(clas);
Utils.messager.printMessage(Kind.NOTE, "Generating class '" + clas.name + "'."); Utils.messager.printMessage(Kind.NOTE, "Generating class '" + clas.name + "'.");
} }
ClassEntry entry = classMap.get(annotation.in()); ClassEntry entry = classMap.get(callLocation);
//create and add entry //create and add entry
MethodEntry method = new MethodEntry(entry.name, Utils.getMethodName(element), annotation.targets(), annotation.variants(), MethodEntry method = new MethodEntry(entry.name, Utils.getMethodName(element), annotation.targets(), annotation.variants(),

View File

@@ -6,8 +6,7 @@ import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.Liquids; import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.type.ContentList; import io.anuke.mindustry.type.ContentList;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
@@ -28,7 +27,7 @@ import java.io.IOException;
public class DebugBlocks extends BlockList implements ContentList{ public class DebugBlocks extends BlockList implements ContentList{
public static Block powerVoid, powerInfinite, itemSource, liquidSource, itemVoid; public static Block powerVoid, powerInfinite, itemSource, liquidSource, itemVoid;
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){ public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){
LiquidSourceEntity entity = tile.entity(); LiquidSourceEntity entity = tile.entity();
entity.source = liquid; entity.source = liquid;
@@ -114,7 +113,7 @@ public class DebugBlocks extends BlockList implements ContentList{
if(i == 0) continue; if(i == 0) continue;
final int f = i; final int f = i;
ImageButton button = cont.addImageButton("white", "toggle", 24, () -> { ImageButton button = cont.addImageButton("white", "toggle", 24, () -> {
CallBlocks.setLiquidSourceLiquid(null, tile, items.get(f)); Call.setLiquidSourceLiquid(null, tile, items.get(f));
}).size(38, 42).padBottom(-5.1f).group(group).get(); }).size(38, 42).padBottom(-5.1f).group(group).get();
button.getStyle().imageUpColor = items.get(i).color; button.getStyle().imageUpColor = items.get(i).color;
button.setChecked(entity.source.id == f); button.setChecked(entity.source.id == f);

View File

@@ -9,7 +9,7 @@ import io.anuke.mindustry.content.fx.Fx;
import io.anuke.mindustry.entities.effect.Fire; import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Lightning; import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
@@ -43,7 +43,7 @@ public class Damage{
} }
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){ for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){
Timers.run(i / 2, () -> CallEntity.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f))); Timers.run(i / 2, () -> Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)));
} }
int waves = Mathf.clamp((int) (explosiveness / 4), 0, 30); int waves = Mathf.clamp((int) (explosiveness / 4), 0, 30);

View File

@@ -14,10 +14,9 @@ import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.entities.effect.ScorchDecal; import io.anuke.mindustry.entities.effect.ScorchDecal;
import io.anuke.mindustry.entities.traits.*; import io.anuke.mindustry.entities.traits.*;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Trail; import io.anuke.mindustry.graphics.Trail;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetConnection; import io.anuke.mindustry.net.NetConnection;
import io.anuke.mindustry.type.*; import io.anuke.mindustry.type.*;
@@ -83,7 +82,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
//region unit and event overrides, utility methods //region unit and event overrides, utility methods
@Remote(in = In.entities, targets = Loc.server, called = Loc.server) @Remote(targets = Loc.server, called = Loc.server)
public static void onPlayerDamage(Player player, float amount){ public static void onPlayerDamage(Player player, float amount){
if(player == null) return; if(player == null) return;
@@ -91,7 +90,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
player.health -= amount; player.health -= amount;
} }
@Remote(in = In.entities, targets = Loc.server, called = Loc.server) @Remote(targets = Loc.server, called = Loc.server)
public static void onPlayerDeath(Player player){ public static void onPlayerDeath(Player player){
if(player == null) return; if(player == null) return;
@@ -228,10 +227,10 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
@Override @Override
public void damage(float amount){ public void damage(float amount){
CallEntity.onPlayerDamage(this, calculateDamage(amount)); Call.onPlayerDamage(this, calculateDamage(amount));
if(health <= 0 && !dead){ if(health <= 0 && !dead){
CallEntity.onPlayerDeath(this); Call.onPlayerDeath(this);
} }
} }
@@ -511,7 +510,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
if(!ui.chatfrag.chatOpen() && Inputs.keyTap("drop_unit")){ if(!ui.chatfrag.chatOpen() && Inputs.keyTap("drop_unit")){
if(!mech.flying){ if(!mech.flying){
if(getCarrier() != null){ if(getCarrier() != null){
CallEntity.dropSelf(this); Call.dropSelf(this);
} }
}else if(getCarry() != null){ }else if(getCarry() != null){
dropCarry(); dropCarry();

View File

@@ -10,8 +10,7 @@ import io.anuke.mindustry.content.fx.Fx;
import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Edges; import io.anuke.mindustry.world.Edges;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -55,14 +54,14 @@ public class TileEntity extends BaseEntity implements TargetTrait{
private boolean sleeping; private boolean sleeping;
private float sleepTime; private float sleepTime;
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onTileDamage(Tile tile, float health){ public static void onTileDamage(Tile tile, float health){
if(tile.entity != null){ if(tile.entity != null){
tile.entity.health = health; tile.entity.health = health;
} }
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onTileDestroyed(Tile tile){ public static void onTileDestroyed(Tile tile){
if(tile.entity == null) return; if(tile.entity == null) return;
tile.entity.onDeath(); tile.entity.onDeath();
@@ -159,10 +158,10 @@ public class TileEntity extends BaseEntity implements TargetTrait{
public void damage(float damage){ public void damage(float damage){
if(dead) return; if(dead) return;
CallBlocks.onTileDamage(tile, health - tile.block().handleDamage(tile, damage)); Call.onTileDamage(tile, health - tile.block().handleDamage(tile, damage));
if(health <= 0){ if(health <= 0){
CallBlocks.onTileDestroyed(tile); Call.onTileDestroyed(tile);
} }
} }

View File

@@ -85,7 +85,7 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
create(type, parent.owner, parent.team, x, y, angle, velocityScl); create(type, parent.owner, parent.team, x, y, angle, velocityScl);
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void createBullet(BulletType type, float x, float y, float angle){ public static void createBullet(BulletType type, float x, float y, float angle){
create(type, null, Team.none, x, y, angle); create(type, null, Team.none, x, y, angle);
} }

View File

@@ -12,8 +12,7 @@ import io.anuke.mindustry.entities.Damage;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.traits.SaveTrait; import io.anuke.mindustry.entities.traits.SaveTrait;
import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -77,7 +76,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
} }
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void onFireRemoved(int fireid){ public static void onFireRemoved(int fireid){
fireGroup.removeByID(fireid); fireGroup.removeByID(fireid);
} }
@@ -104,7 +103,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
time = Mathf.clamp(time + Timers.delta(), 0, lifetime()); time = Mathf.clamp(time + Timers.delta(), 0, lifetime());
if(time >= lifetime() || tile == null){ if(time >= lifetime() || tile == null){
CallEntity.onFireRemoved(getID()); Call.onFireRemoved(getID());
remove(); remove();
return; return;
} }
@@ -133,7 +132,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
create(other); create(other);
if(Mathf.chance(0.05 * Timers.delta() * Mathf.clamp(flammability / 10.0))){ if(Mathf.chance(0.05 * Timers.delta() * Mathf.clamp(flammability / 10.0))){
CallEntity.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)); Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f));
} }
} }

View File

@@ -12,8 +12,7 @@ import io.anuke.mindustry.entities.traits.SaveTrait;
import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Interpolator; import io.anuke.mindustry.net.Interpolator;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
@@ -69,7 +68,7 @@ public class ItemDrop extends SolidEntity implements SaveTrait, SyncTrait, DrawT
create(item, amount, x, y, 0).getVelocity().set(velocityX, velocityY); create(item, amount, x, y, 0).getVelocity().set(velocityX, velocityY);
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void onPickup(int itemid){ public static void onPickup(int itemid){
ItemDrop drop = itemGroup.getByID(itemid); ItemDrop drop = itemGroup.getByID(itemid);
if(drop != null){ if(drop != null){
@@ -133,7 +132,7 @@ public class ItemDrop extends SolidEntity implements SaveTrait, SyncTrait, DrawT
amount -= used; amount -= used;
if(amount <= 0){ if(amount <= 0){
CallEntity.onPickup(getID()); Call.onPickup(getID());
} }
} }
} }
@@ -166,14 +165,14 @@ public class ItemDrop extends SolidEntity implements SaveTrait, SyncTrait, DrawT
updateVelocity(0.2f); updateVelocity(0.2f);
updateTime(); updateTime();
if(time >= lifetime()){ if(time >= lifetime()){
CallEntity.onPickup(getID()); Call.onPickup(getID());
} }
} }
Tile tile = world.tileWorld(x, y); Tile tile = world.tileWorld(x, y);
if(tile != null && tile.solid()){ if(tile != null && tile.solid()){
CallEntity.onPickup(getID()); Call.onPickup(getID());
} }
if(tile != null && tile.floor().isLiquid){ if(tile != null && tile.floor().isLiquid){

View File

@@ -35,7 +35,7 @@ public class ItemTransfer extends TimedEntity implements DrawTrait{
public ItemTransfer(){ public ItemTransfer(){
} }
@Remote(in = In.entities, called = Loc.server, unreliable = true) @Remote(called = Loc.server, unreliable = true)
public static void transferAmmo(Item item, float x, float y, Unit to){ public static void transferAmmo(Item item, float x, float y, Unit to){
if(to == null) return; if(to == null) return;
to.addAmmo(item); to.addAmmo(item);
@@ -43,20 +43,20 @@ public class ItemTransfer extends TimedEntity implements DrawTrait{
}); });
} }
@Remote(in = In.entities, called = Loc.server, unreliable = true) @Remote(called = Loc.server, unreliable = true)
public static void transferItemEffect(Item item, float x, float y, Unit to){ public static void transferItemEffect(Item item, float x, float y, Unit to){
if(to == null) return; if(to == null) return;
create(item, x, y, to, () -> { create(item, x, y, to, () -> {
}); });
} }
@Remote(in = In.entities, called = Loc.server, unreliable = true) @Remote(called = Loc.server, unreliable = true)
public static void transferItemToUnit(Item item, float x, float y, Unit to){ public static void transferItemToUnit(Item item, float x, float y, Unit to){
if(to == null) return; if(to == null) return;
create(item, x, y, to, () -> to.inventory.addItem(item, 1)); create(item, x, y, to, () -> to.inventory.addItem(item, 1));
} }
@Remote(in = In.entities, called = Loc.server) @Remote(called = Loc.server)
public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){ public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){
if(tile == null) return; if(tile == null) return;
for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){ for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){

View File

@@ -11,9 +11,8 @@ import io.anuke.mindustry.content.StatusEffects;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.In;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.ucore.entities.EntityGroup;
@@ -56,10 +55,10 @@ public class Lightning extends TimedEntity implements Poolable, DrawTrait, SyncT
* Create a lighting branch at a location. Use Team.none to damage everyone. * Create a lighting branch at a location. Use Team.none to damage everyone.
*/ */
public static void create(Team team, Effect effect, Color color, float damage, float x, float y, float targetAngle, int length){ public static void create(Team team, Effect effect, Color color, float damage, float x, float y, float targetAngle, int length){
CallEntity.createLighting(lastSeed++, team, effect, color, damage, x, y, targetAngle, length); Call.createLighting(lastSeed++, team, effect, color, damage, x, y, targetAngle, length);
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void createLighting(int seed, Team team, Effect effect, Color color, float damage, float x, float y, float targetAngle, int length){ public static void createLighting(int seed, Team team, Effect effect, Color color, float damage, float x, float y, float targetAngle, int length){
Lightning l = Pooling.obtain(Lightning.class); Lightning l = Pooling.obtain(Lightning.class);

View File

@@ -15,7 +15,7 @@ import io.anuke.mindustry.content.fx.EnvironmentFx;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.SaveTrait; import io.anuke.mindustry.entities.traits.SaveTrait;
import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
@@ -136,7 +136,7 @@ public class Puddle extends BaseEntity implements SaveTrait, Poolable, DrawTrait
(liquid.flammability > 0.3f && dest.temperature > 0.7f)){ //flammable liquid + hot liquid (liquid.flammability > 0.3f && dest.temperature > 0.7f)){ //flammable liquid + hot liquid
Fire.create(tile); Fire.create(tile);
if(Mathf.chance(0.006 * amount)){ if(Mathf.chance(0.006 * amount)){
CallEntity.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)); Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f));
} }
}else if(dest.temperature > 0.7f && liquid.temperature < 0.55f){ //cold liquid poured onto hot puddle }else if(dest.temperature > 0.7f && liquid.temperature < 0.55f){ //cold liquid poured onto hot puddle
if(Mathf.chance(0.5f * amount)){ if(Mathf.chance(0.5f * amount)){
@@ -152,7 +152,7 @@ public class Puddle extends BaseEntity implements SaveTrait, Poolable, DrawTrait
return 0f; return 0f;
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void onPuddleRemoved(int puddleid){ public static void onPuddleRemoved(int puddleid){
puddleGroup.removeByID(puddleid); puddleGroup.removeByID(puddleid);
} }
@@ -190,7 +190,7 @@ public class Puddle extends BaseEntity implements SaveTrait, Poolable, DrawTrait
amount = Mathf.clamp(amount, 0, maxLiquid); amount = Mathf.clamp(amount, 0, maxLiquid);
if(amount <= 0f){ if(amount <= 0f){
CallEntity.onPuddleRemoved(getID()); Call.onPuddleRemoved(getID());
} }
} }

View File

@@ -8,7 +8,7 @@ import io.anuke.mindustry.content.fx.BlockFx;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.type.Recipe;
@@ -243,7 +243,7 @@ public interface BuilderTrait extends Entity{
if(unit.inventory.canAcceptItem(item) && if(unit.inventory.canAcceptItem(item) &&
Mathf.chance(Timers.delta() * (0.06 - item.hardness * 0.01) * getMinePower())){ Mathf.chance(Timers.delta() * (0.06 - item.hardness * 0.01) * getMinePower())){
CallEntity.transferItemToUnit(item, Call.transferItemToUnit(item,
tile.worldx() + Mathf.range(tilesize / 2f), tile.worldx() + Mathf.range(tilesize / 2f),
tile.worldy() + Mathf.range(tilesize / 2f), tile.worldy() + Mathf.range(tilesize / 2f),
unit); unit);

View File

@@ -4,20 +4,19 @@ import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote; import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.fx.UnitFx; import io.anuke.mindustry.content.fx.UnitFx;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.ucore.entities.trait.SolidTrait;
public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{ public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{
@Remote(called = Loc.both, targets = Loc.both, forward = true, in = In.entities) @Remote(called = Loc.both, targets = Loc.both, forward = true)
static void dropSelf(Player player){ static void dropSelf(Player player){
if(player.getCarrier() != null){ if(player.getCarrier() != null){
player.getCarrier().dropCarry(); player.getCarrier().dropCarry();
} }
} }
@Remote(called = Loc.both, targets = Loc.both, forward = true, in = In.entities) @Remote(called = Loc.both, targets = Loc.both, forward = true)
static void setCarryOf(Player player, CarryTrait trait, CarriableTrait unit){ static void setCarryOf(Player player, CarryTrait trait, CarriableTrait unit){
if(trait == null) return; if(trait == null) return;
if(player != null){ //when a server recieves this called from a player, set the carrier to the player. if(player != null){ //when a server recieves this called from a player, set the carrier to the player.
@@ -72,6 +71,6 @@ public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{
* Carries a unit. To drop a unit, call with {@code null}. * Carries a unit. To drop a unit, call with {@code null}.
*/ */
default void carry(CarriableTrait unit){ default void carry(CarriableTrait unit){
CallEntity.setCarryOf(this instanceof Player ? (Player) this : null, this, unit); Call.setCarryOf(this instanceof Player ? (Player) this : null, this, unit);
} }
} }

View File

@@ -16,7 +16,7 @@ import io.anuke.mindustry.entities.traits.SpawnerTrait;
import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.game.TeamInfo.TeamData; import io.anuke.mindustry.game.TeamInfo.TeamData;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
@@ -62,7 +62,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
public BaseUnit(){ public BaseUnit(){
} }
@Remote(called = Loc.server, in = In.entities) @Remote(called = Loc.server)
public static void onUnitDeath(BaseUnit unit){ public static void onUnitDeath(BaseUnit unit){
if(unit == null) return; if(unit == null) return;
@@ -370,7 +370,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override @Override
public void onDeath(){ public void onDeath(){
CallEntity.onUnitDeath(this); Call.onUnitDeath(this);
} }
@Override @Override

View File

@@ -12,7 +12,7 @@ import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.FlyingUnit; import io.anuke.mindustry.entities.units.FlyingUnit;
import io.anuke.mindustry.entities.units.UnitState; import io.anuke.mindustry.entities.units.UnitState;
import io.anuke.mindustry.game.EventType.BlockBuildEvent; import io.anuke.mindustry.game.EventType.BlockBuildEvent;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
@@ -227,7 +227,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
if(distanceTo(target) < type.range){ if(distanceTo(target) < type.range){
if(tile.tile.block().acceptStack(inventory.getItem().item, inventory.getItem().amount, tile.tile, Drone.this) == inventory.getItem().amount){ if(tile.tile.block().acceptStack(inventory.getItem().item, inventory.getItem().amount, tile.tile, Drone.this) == inventory.getItem().amount){
CallEntity.transferItemTo(inventory.getItem().item, inventory.getItem().amount, x, y, tile.tile); Call.transferItemTo(inventory.getItem().item, inventory.getItem().amount, x, y, tile.tile);
inventory.clearItem(); inventory.clearItem();
} }
@@ -288,7 +288,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
float dist = Math.min(entity.distanceTo(x, y) - placeDistance, 0); float dist = Math.min(entity.distanceTo(x, y) - placeDistance, 0);
if(dist / type.maxVelocity < timeToBuild * 0.9f){ if(dist / type.maxVelocity < timeToBuild * 0.9f){
//CallEntity.onDroneBeginBuild(this, entity.tile, entity.recipe); //Call.onDroneBeginBuild(this, entity.tile, entity.recipe);
target = entity; target = entity;
setState(build); setState(build);
} }

View File

@@ -10,9 +10,7 @@ import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.effect.ItemDrop; import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.entities.effect.ItemTransfer; import io.anuke.mindustry.entities.effect.ItemTransfer;
import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.gen.CallEntity;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.ValidateException; import io.anuke.mindustry.net.ValidateException;
import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.ItemStack;
@@ -57,7 +55,7 @@ public abstract class InputHandler extends InputAdapter{
//methods to override //methods to override
@Remote(targets = Loc.client, called = Loc.server, in = In.entities) @Remote(targets = Loc.client, called = Loc.server)
public static void dropItem(Player player, float angle){ public static void dropItem(Player player, float angle){
if(Net.server() && !player.inventory.hasItem()){ if(Net.server() && !player.inventory.hasItem()){
throw new ValidateException(player, "Player cannot drop an item."); throw new ValidateException(player, "Player cannot drop an item.");
@@ -67,7 +65,7 @@ public abstract class InputHandler extends InputAdapter{
player.inventory.clearItem(); player.inventory.clearItem();
} }
@Remote(targets = Loc.both, forward = true, called = Loc.server, in = In.blocks) @Remote(targets = Loc.both, forward = true, called = Loc.server)
public static void transferInventory(Player player, Tile tile){ public static void transferInventory(Player player, Tile tile){
if(Net.server() && (!player.inventory.hasItem() || player.isTransferring)){ if(Net.server() && (!player.inventory.hasItem() || player.isTransferring)){
throw new ValidateException(player, "Player cannot transfer an item."); throw new ValidateException(player, "Player cannot transfer an item.");
@@ -118,7 +116,7 @@ public abstract class InputHandler extends InputAdapter{
}); });
} }
@Remote(targets = Loc.both, called = Loc.server, forward = true, in = In.blocks) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void onTileTapped(Player player, Tile tile){ public static void onTileTapped(Player player, Tile tile){
if(tile == null || player == null) return; if(tile == null || player == null) return;
tile.block().tapped(tile, player); tile.block().tapped(tile, player);
@@ -189,7 +187,7 @@ public abstract class InputHandler extends InputAdapter{
//call tapped event //call tapped event
if(tile.getTeam() == player.getTeam()){ if(tile.getTeam() == player.getTeam()){
CallBlocks.onTileTapped(player, tile); Call.onTileTapped(player, tile);
} }
//consume tap event if necessary //consume tap event if necessary
@@ -303,9 +301,9 @@ public abstract class InputHandler extends InputAdapter{
ItemStack stack = player.inventory.getItem(); ItemStack stack = player.inventory.getItem();
if(tile.block().acceptStack(stack.item, stack.amount, tile, player) > 0 && tile.block().hasItems){ if(tile.block().acceptStack(stack.item, stack.amount, tile, player) > 0 && tile.block().hasItems){
CallBlocks.transferInventory(player, tile); Call.transferInventory(player, tile);
}else{ }else{
CallEntity.dropItem(player.angleTo(x, y)); Call.dropItem(player.angleTo(x, y));
} }
} }

View File

@@ -4,7 +4,4 @@ package io.anuke.mindustry.net;
* Stores class nameas for remote method invocation for consistency's sake. * Stores class nameas for remote method invocation for consistency's sake.
*/ */
public class In{ public class In{
public static final String normal = "Call";
public static final String entities = "CallEntity";
public static final String blocks = "CallBlocks";
} }

View File

@@ -9,8 +9,7 @@ import io.anuke.mindustry.content.fx.Fx;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.traits.ShooterTrait; import io.anuke.mindustry.entities.traits.ShooterTrait;
import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Effects.Effect;
@@ -82,7 +81,7 @@ public class Weapon extends Upgrade{
super(name); super(name);
} }
@Remote(targets = Loc.server, called = Loc.both, in = In.entities, unreliable = true) @Remote(targets = Loc.server, called = Loc.both, unreliable = true)
public static void onPlayerShootWeapon(Player player, float x, float y, float rotation, boolean left){ public static void onPlayerShootWeapon(Player player, float x, float y, float rotation, boolean left){
if(player == null) return; if(player == null) return;
//clients do not see their own shoot events: they are simulated completely clientside to prevent laggy visuals //clients do not see their own shoot events: they are simulated completely clientside to prevent laggy visuals
@@ -94,7 +93,7 @@ public class Weapon extends Upgrade{
shootDirect(player, x, y, rotation, left); shootDirect(player, x, y, rotation, left);
} }
@Remote(targets = Loc.server, called = Loc.both, in = In.entities, unreliable = true) @Remote(targets = Loc.server, called = Loc.both, unreliable = true)
public static void onGenericShootWeapon(ShooterTrait shooter, float x, float y, float rotation, boolean left){ public static void onGenericShootWeapon(ShooterTrait shooter, float x, float y, float rotation, boolean left){
if(shooter == null) return; if(shooter == null) return;
shootDirect(shooter, x, y, rotation, left); shootDirect(shooter, x, y, rotation, left);
@@ -176,9 +175,9 @@ public class Weapon extends Upgrade{
shootDirect(p, x, y, angle, left); shootDirect(p, x, y, angle, left);
}else{ }else{
if(p instanceof Player){ //players need special weapon handling logic if(p instanceof Player){ //players need special weapon handling logic
CallEntity.onPlayerShootWeapon((Player) p, x, y, angle, left); Call.onPlayerShootWeapon((Player) p, x, y, angle, left);
}else{ }else{
CallEntity.onGenericShootWeapon(p, x, y, angle, left); Call.onGenericShootWeapon(p, x, y, angle, left);
} }
} }

View File

@@ -8,10 +8,8 @@ import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote; import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.gen.CallEntity;
import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.ui.ItemImage; import io.anuke.mindustry.ui.ItemImage;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -44,7 +42,7 @@ public class BlockInventoryFragment extends Fragment{
this.input = input; this.input = input;
} }
@Remote(called = Loc.server, targets = Loc.both, in = In.blocks, forward = true) @Remote(called = Loc.server, targets = Loc.both, forward = true)
public static void requestItem(Player player, Tile tile, Item item, int amount){ public static void requestItem(Player player, Tile tile, Item item, int amount){
if(player == null) return; if(player == null) return;
@@ -52,7 +50,7 @@ public class BlockInventoryFragment extends Fragment{
player.inventory.addItem(item, removed); player.inventory.addItem(item, removed);
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){ for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
Timers.run(j * 3f, () -> CallEntity.transferItemEffect(item, tile.drawx(), tile.drawy(), player)); Timers.run(j * 3f, () -> Call.transferItemEffect(item, tile.drawx(), tile.drawy(), player));
} }
} }
@@ -99,7 +97,7 @@ public class BlockInventoryFragment extends Fragment{
if(holdTime >= holdWithdraw){ if(holdTime >= holdWithdraw){
int amount = Math.min(tile.entity.items.get(lastItem), player.inventory.itemCapacityUsed(lastItem)); int amount = Math.min(tile.entity.items.get(lastItem), player.inventory.itemCapacityUsed(lastItem));
CallBlocks.requestItem(player, tile, lastItem, amount); Call.requestItem(player, tile, lastItem, amount);
holding = false; holding = false;
holdTime = 0f; holdTime = 0f;
} }
@@ -149,7 +147,7 @@ public class BlockInventoryFragment extends Fragment{
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){ public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
if(!canPick.get() || !tile.entity.items.has(item)) return false; if(!canPick.get() || !tile.entity.items.has(item)) return false;
int amount = Math.min(1, player.inventory.itemCapacityUsed(item)); int amount = Math.min(1, player.inventory.itemCapacityUsed(item));
CallBlocks.requestItem(player, tile, item, amount); Call.requestItem(player, tile, item, amount);
lastItem = item; lastItem = item;
holding = true; holding = true;
holdTime = 0f; holdTime = 0f;

View File

@@ -11,7 +11,7 @@ import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.entities.effect.RubbleDecal; import io.anuke.mindustry.entities.effect.RubbleDecal;
import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Layer;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
@@ -46,13 +46,13 @@ public class BuildBlock extends Block{
solidifes = true; solidifes = true;
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onDeconstructFinish(Tile tile, Block block){ public static void onDeconstructFinish(Tile tile, Block block){
Effects.effect(Fx.breakBlock, tile.drawx(), tile.drawy(), block.size); Effects.effect(Fx.breakBlock, tile.drawx(), tile.drawy(), block.size);
world.removeBlock(tile); world.removeBlock(tile);
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onConstructFinish(Tile tile, Block block, int builderID, byte rotation, Team team){ public static void onConstructFinish(Tile tile, Block block, int builderID, byte rotation, Team team){
world.setBlock(tile, block, team); world.setBlock(tile, block, team);
tile.setRotation(rotation); tile.setRotation(rotation);
@@ -210,7 +210,7 @@ public class BuildBlock extends Block{
} }
if(progress >= 1f || debug){ if(progress >= 1f || debug){
CallBlocks.onConstructFinish(tile, recipe.result, builderID, tile.getRotation(), builder.getTeam()); Call.onConstructFinish(tile, recipe.result, builderID, tile.getRotation(), builder.getTeam());
} }
} }
@@ -238,7 +238,7 @@ public class BuildBlock extends Block{
progress = Mathf.clamp(progress - amount); progress = Mathf.clamp(progress - amount);
if(progress <= 0 || debug){ if(progress <= 0 || debug){
CallBlocks.onDeconstructFinish(tile, this.recipe == null ? previous : this.recipe.result); Call.onDeconstructFinish(tile, this.recipe == null ? previous : this.recipe.result);
} }
} }

View File

@@ -9,7 +9,7 @@ import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote; import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Layer;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.In;
@@ -52,7 +52,7 @@ public class ItemBridge extends Block{
hasItems = true; hasItems = true;
} }
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void linkItemBridge(Player player, Tile tile, Tile other){ public static void linkItemBridge(Player player, Tile tile, Tile other){
ItemBridgeEntity entity = tile.entity(); ItemBridgeEntity entity = tile.entity();
ItemBridgeEntity oe = other.entity(); ItemBridgeEntity oe = other.entity();
@@ -60,7 +60,7 @@ public class ItemBridge extends Block{
oe.incoming.add(tile.packedPosition()); oe.incoming.add(tile.packedPosition());
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void unlinkItemBridge(Player player, Tile tile, Tile other){ public static void unlinkItemBridge(Player player, Tile tile, Tile other){
ItemBridgeEntity entity = tile.entity(); ItemBridgeEntity entity = tile.entity();
entity.link = -1; entity.link = -1;
@@ -85,7 +85,7 @@ public class ItemBridge extends Block{
if(linkValid(tile, last)){ if(linkValid(tile, last)){
ItemBridgeEntity entity = last.entity(); ItemBridgeEntity entity = last.entity();
if(!linkValid(last, world.tile(entity.link))){ if(!linkValid(last, world.tile(entity.link))){
CallBlocks.linkItemBridge(null, last, tile); Call.linkItemBridge(null, last, tile);
} }
} }
lastPlaced = tile.packedPosition(); lastPlaced = tile.packedPosition();
@@ -138,9 +138,9 @@ public class ItemBridge extends Block{
if(linkValid(tile, other)){ if(linkValid(tile, other)){
if(entity.link == other.packedPosition()){ if(entity.link == other.packedPosition()){
CallBlocks.unlinkItemBridge(null, tile, other); Call.unlinkItemBridge(null, tile, other);
}else{ }else{
CallBlocks.linkItemBridge(null, tile, other); Call.linkItemBridge(null, tile, other);
} }
return false; return false;
} }

View File

@@ -11,7 +11,7 @@ import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.effect.ItemDrop; import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Layer;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.In;
@@ -56,7 +56,7 @@ public class MassDriver extends Block{
hasPower = true; hasPower = true;
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void linkMassDriver(Player player, Tile tile, int position){ public static void linkMassDriver(Player player, Tile tile, int position){
MassDriverEntity entity = tile.entity(); MassDriverEntity entity = tile.entity();
@@ -64,7 +64,7 @@ public class MassDriver extends Block{
threads.run(() -> entity.link = position); threads.run(() -> entity.link = position);
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onMassDriverFire(Tile tile, Tile target){ public static void onMassDriverFire(Tile tile, Tile target){
//just in case the client has invalid data //just in case the client has invalid data
if(!(tile.entity instanceof MassDriverEntity) || !(target.entity instanceof MassDriverEntity)) return; if(!(tile.entity instanceof MassDriverEntity) || !(target.entity instanceof MassDriverEntity)) return;
@@ -137,7 +137,7 @@ public class MassDriver extends Block{
if(Mathf.angNear(entity.rotation, target, 1f) && if(Mathf.angNear(entity.rotation, target, 1f) &&
Mathf.angNear(other.rotation, target + 180f, 1f)){ Mathf.angNear(other.rotation, target + 180f, 1f)){
CallBlocks.onMassDriverFire(tile, link); Call.onMassDriverFire(tile, link);
} }
} }
} }
@@ -182,10 +182,10 @@ public class MassDriver extends Block{
MassDriverEntity entity = tile.entity(); MassDriverEntity entity = tile.entity();
if(entity.link == other.packedPosition()){ if(entity.link == other.packedPosition()){
CallBlocks.linkMassDriver(null, tile, -1); Call.linkMassDriver(null, tile, -1);
return false; return false;
}else if(other.block() instanceof MassDriver && other.distanceTo(tile) <= range){ }else if(other.block() instanceof MassDriver && other.distanceTo(tile) <= range){
CallBlocks.linkMassDriver(null, tile, other.packedPosition()); Call.linkMassDriver(null, tile, other.packedPosition());
return false; return false;
} }

View File

@@ -5,8 +5,7 @@ import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.Items; import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -32,7 +31,7 @@ public class Sorter extends Block implements SelectionTrait{
configurable = true; configurable = true;
} }
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void setSorterItem(Player player, Tile tile, Item item){ public static void setSorterItem(Player player, Tile tile, Item item){
SorterEntity entity = tile.entity(); SorterEntity entity = tile.entity();
entity.sortItem = item; entity.sortItem = item;
@@ -107,7 +106,7 @@ public class Sorter extends Block implements SelectionTrait{
@Override @Override
public void buildTable(Tile tile, Table table){ public void buildTable(Tile tile, Table table){
SorterEntity entity = tile.entity(); SorterEntity entity = tile.entity();
buildItemTable(table, () -> entity.sortItem, item -> CallBlocks.setSorterItem(null, tile, item)); buildItemTable(table, () -> entity.sortItem, item -> Call.setSorterItem(null, tile, item));
} }
@Override @Override

View File

@@ -9,8 +9,7 @@ import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.content.fx.BlockFx;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -75,7 +74,7 @@ public class WarpGate extends PowerBlock{
configurable = true; configurable = true;
} }
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void setTeleporterColor(Player player, Tile tile, byte color){ public static void setTeleporterColor(Player player, Tile tile, byte color){
TeleporterEntity entity = tile.entity(); TeleporterEntity entity = tile.entity();
entity.color = color; entity.color = color;
@@ -88,7 +87,7 @@ public class WarpGate extends PowerBlock{
@Override @Override
public void placed(Tile tile){ public void placed(Tile tile){
CallBlocks.setTeleporterColor(null, tile, lastColor); Call.setTeleporterColor(null, tile, lastColor);
} }
@Override @Override
@@ -254,7 +253,7 @@ public class WarpGate extends PowerBlock{
final int f = i; final int f = i;
ImageButton button = cont.addImageButton("white", "toggle", 24, () -> { ImageButton button = cont.addImageButton("white", "toggle", 24, () -> {
lastColor = (byte) f; lastColor = (byte) f;
CallBlocks.setTeleporterColor(null, tile, (byte) f); Call.setTeleporterColor(null, tile, (byte) f);
}).size(34, 38).padBottom(-5.1f).group(group).get(); }).size(34, 38).padBottom(-5.1f).group(group).get();
button.getStyle().imageUpColor = colorArray[f]; button.getStyle().imageUpColor = colorArray[f];
button.setChecked(entity.color == f); button.setChecked(entity.color == f);

View File

@@ -6,10 +6,9 @@ import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote; import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Layer;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.world.Edges; import io.anuke.mindustry.world.Edges;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.PowerBlock; import io.anuke.mindustry.world.blocks.PowerBlock;
@@ -52,7 +51,7 @@ public class PowerNode extends PowerBlock{
configurable = true; configurable = true;
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void linkPowerDistributors(Player player, Tile tile, Tile other){ public static void linkPowerDistributors(Player player, Tile tile, Tile other){
DistributorEntity entity = tile.entity(); DistributorEntity entity = tile.entity();
@@ -70,7 +69,7 @@ public class PowerNode extends PowerBlock{
} }
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void unlinkPowerDistributors(Player player, Tile tile, Tile other){ public static void unlinkPowerDistributors(Player player, Tile tile, Tile other){
DistributorEntity entity = tile.entity(); DistributorEntity entity = tile.entity();
@@ -91,7 +90,7 @@ public class PowerNode extends PowerBlock{
public void placed(Tile tile){ public void placed(Tile tile){
Tile before = world.tile(lastPlaced); Tile before = world.tile(lastPlaced);
if(linkValid(tile, before) && before.block() instanceof PowerNode){ if(linkValid(tile, before) && before.block() instanceof PowerNode){
CallBlocks.linkPowerDistributors(null, tile, before); Call.linkPowerDistributors(null, tile, before);
} }
lastPlaced = tile.packedPosition(); lastPlaced = tile.packedPosition();
@@ -119,9 +118,9 @@ public class PowerNode extends PowerBlock{
if(linkValid(tile, other)){ if(linkValid(tile, other)){
if(linked(tile, other)){ if(linked(tile, other)){
threads.run(() -> CallBlocks.unlinkPowerDistributors(null, tile, result)); threads.run(() -> Call.unlinkPowerDistributors(null, tile, result));
}else if(entity.links.size < maxNodes){ }else if(entity.links.size < maxNodes){
threads.run(() -> CallBlocks.linkPowerDistributors(null, tile, result)); threads.run(() -> Call.linkPowerDistributors(null, tile, result));
} }
return false; return false;
} }

View File

@@ -14,11 +14,9 @@ import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.SpawnerTrait; import io.anuke.mindustry.entities.traits.SpawnerTrait;
import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.UnitType; import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.gen.CallEntity;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.ItemType; import io.anuke.mindustry.type.ItemType;
@@ -66,7 +64,7 @@ public class CoreBlock extends StorageBlock{
flags = EnumSet.of(BlockFlag.resupplyPoint, BlockFlag.target); flags = EnumSet.of(BlockFlag.resupplyPoint, BlockFlag.target);
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onUnitRespawn(Tile tile, Unit player){ public static void onUnitRespawn(Tile tile, Unit player){
if(player == null) return; if(player == null) return;
@@ -82,7 +80,7 @@ public class CoreBlock extends StorageBlock{
entity.currentUnit = null; entity.currentUnit = null;
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void setCoreSolid(Tile tile, boolean solid){ public static void setCoreSolid(Tile tile, boolean solid){
CoreEntity entity = tile.entity(); CoreEntity entity = tile.entity();
entity.solid = solid; entity.solid = solid;
@@ -193,7 +191,7 @@ public class CoreBlock extends StorageBlock{
CoreEntity entity = tile.entity(); CoreEntity entity = tile.entity();
if(!entity.solid && !Units.anyEntities(tile)){ if(!entity.solid && !Units.anyEntities(tile)){
CallBlocks.setCoreSolid(tile, true); Call.setCoreSolid(tile, true);
} }
if(entity.currentUnit != null){ if(entity.currentUnit != null){
@@ -207,7 +205,7 @@ public class CoreBlock extends StorageBlock{
} }
if(entity.progress >= 1f){ if(entity.progress >= 1f){
CallBlocks.onUnitRespawn(tile, entity.currentUnit); Call.onUnitRespawn(tile, entity.currentUnit);
} }
}else{ }else{
entity.warmup += Timers.delta(); entity.warmup += Timers.delta();
@@ -250,7 +248,7 @@ public class CoreBlock extends StorageBlock{
if(tile.entity.items.get(item) > 0 && unit.acceptsAmmo(item)){ if(tile.entity.items.get(item) > 0 && unit.acceptsAmmo(item)){
tile.entity.items.remove(item, 1); tile.entity.items.remove(item, 1);
unit.addAmmo(item); unit.addAmmo(item);
CallEntity.transferAmmo(item, tile.drawx(), tile.drawy(), unit); Call.transferAmmo(item, tile.drawx(), tile.drawy(), unit);
return; return;
} }
} }
@@ -264,7 +262,7 @@ public class CoreBlock extends StorageBlock{
} }
/* /*
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onCoreUnitSet(Tile tile, Unit player){ public static void onCoreUnitSet(Tile tile, Unit player){
CoreEntity entity = tile.entity(); CoreEntity entity = tile.entity();
entity.currentUnit = player; entity.currentUnit = player;

View File

@@ -3,11 +3,9 @@ package io.anuke.mindustry.world.blocks.storage;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.annotations.Annotations.Loc; import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote; import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.SelectionTrait; import io.anuke.mindustry.world.blocks.SelectionTrait;
@@ -25,7 +23,7 @@ public class SortedUnloader extends Unloader implements SelectionTrait{
configurable = true; configurable = true;
} }
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void setSortedUnloaderItem(Player player, Tile tile, Item item){ public static void setSortedUnloaderItem(Player player, Tile tile, Item item){
SortedUnloaderEntity entity = tile.entity(); SortedUnloaderEntity entity = tile.entity();
entity.sortItem = item; entity.sortItem = item;
@@ -63,7 +61,7 @@ public class SortedUnloader extends Unloader implements SelectionTrait{
@Override @Override
public void buildTable(Tile tile, Table table){ public void buildTable(Tile tile, Table table){
SortedUnloaderEntity entity = tile.entity(); SortedUnloaderEntity entity = tile.entity();
buildItemTable(table, true, () -> entity.sortItem, item -> CallBlocks.setSortedUnloaderItem(null, tile, item)); buildItemTable(table, true, () -> entity.sortItem, item -> Call.setSortedUnloaderItem(null, tile, item));
} }
@Override @Override

View File

@@ -52,7 +52,7 @@ public class CommandCenter extends Block{
//TODO //TODO
} }
@Remote(called = Loc.server, forward = true, in = In.blocks, targets = Loc.both) @Remote(called = Loc.server, forward = true, targets = Loc.both)
public static void onCommandCenterSet(Player player, Tile tile, UnitCommand command){ public static void onCommandCenterSet(Player player, Tile tile, UnitCommand command){
for(Tile center : world.indexer().getAllied(tile.getTeam(), BlockFlag.comandCenter)){ for(Tile center : world.indexer().getAllied(tile.getTeam(), BlockFlag.comandCenter)){
if(center.block() instanceof CommandCenter){ if(center.block() instanceof CommandCenter){

View File

@@ -11,7 +11,7 @@ import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.SpawnerTrait; import io.anuke.mindustry.entities.traits.SpawnerTrait;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.In;
@@ -44,7 +44,7 @@ public class MechFactory extends Block{
solidifes = true; solidifes = true;
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks) @Remote(targets = Loc.both, called = Loc.server)
public static void onMechFactoryTap(Player player, Tile tile){ public static void onMechFactoryTap(Player player, Tile tile){
if(!checkValidTap(tile, player)) return; if(!checkValidTap(tile, player)) return;
@@ -52,7 +52,7 @@ public class MechFactory extends Block{
player.beginRespawning(entity); player.beginRespawning(entity);
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onMechFactoryDone(Tile tile){ public static void onMechFactoryDone(Tile tile){
MechFactoryEntity entity = tile.entity(); MechFactoryEntity entity = tile.entity();
@@ -93,7 +93,7 @@ public class MechFactory extends Block{
if(mobile && !mech.flying) return; if(mobile && !mech.flying) return;
if(checkValidTap(tile, player)){ if(checkValidTap(tile, player)){
CallBlocks.onMechFactoryTap(player, tile); Call.onMechFactoryTap(player, tile);
}else if(player.isLocal && mobile){ }else if(player.isLocal && mobile){
player.moveTarget = tile.entity; player.moveTarget = tile.entity;
} }
@@ -159,7 +159,7 @@ public class MechFactory extends Block{
entity.time += 0.5f; entity.time += 0.5f;
if(entity.progress >= 1f){ if(entity.progress >= 1f){
CallBlocks.onMechFactoryDone(tile); Call.onMechFactoryDone(tile);
} }
}else{ }else{
if(Units.anyEntities(tile, 4f, unit -> unit.getTeam() == entity.getTeam() && unit instanceof Player)){ if(Units.anyEntities(tile, 4f, unit -> unit.getTeam() == entity.getTeam() && unit instanceof Player)){

View File

@@ -10,10 +10,9 @@ import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.SpawnerTrait; import io.anuke.mindustry.entities.traits.SpawnerTrait;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
@@ -71,7 +70,7 @@ public class Reconstructor extends Block{
entity.link = -1; entity.link = -1;
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void reconstructPlayer(Player player, Tile tile){ public static void reconstructPlayer(Player player, Tile tile){
ReconstructorEntity entity = tile.entity(); ReconstructorEntity entity = tile.entity();
@@ -91,7 +90,7 @@ public class Reconstructor extends Block{
//player.setRespawning(); //player.setRespawning();
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void linkReconstructor(Player player, Tile tile, Tile other){ public static void linkReconstructor(Player player, Tile tile, Tile other){
//just in case the client has invalid data //just in case the client has invalid data
if(!(tile.entity instanceof ReconstructorEntity) || !(other.entity instanceof ReconstructorEntity)) return; if(!(tile.entity instanceof ReconstructorEntity) || !(other.entity instanceof ReconstructorEntity)) return;
@@ -109,7 +108,7 @@ public class Reconstructor extends Block{
}); });
} }
@Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) @Remote(targets = Loc.both, called = Loc.server, forward = true)
public static void unlinkReconstructor(Player player, Tile tile, Tile other){ public static void unlinkReconstructor(Player player, Tile tile, Tile other){
//just in case the client has invalid data //just in case the client has invalid data
if(!(tile.entity instanceof ReconstructorEntity) || !(other.entity instanceof ReconstructorEntity)) return; if(!(tile.entity instanceof ReconstructorEntity) || !(other.entity instanceof ReconstructorEntity)) return;
@@ -163,10 +162,10 @@ public class Reconstructor extends Block{
ReconstructorEntity entity = tile.entity(); ReconstructorEntity entity = tile.entity();
if(entity.link == other.packedPosition()){ if(entity.link == other.packedPosition()){
CallBlocks.unlinkReconstructor(null, tile, other); Call.unlinkReconstructor(null, tile, other);
return false; return false;
}else if(other.block() instanceof Reconstructor){ }else if(other.block() instanceof Reconstructor){
CallBlocks.linkReconstructor(null, tile, other); Call.linkReconstructor(null, tile, other);
return false; return false;
} }
@@ -296,7 +295,7 @@ public class Reconstructor extends Block{
if(!checkValidTap(tile, entity, player)) return; if(!checkValidTap(tile, entity, player)) return;
CallBlocks.reconstructPlayer(player, tile); Call.reconstructPlayer(player, tile);
} }
@Override @Override

View File

@@ -9,10 +9,9 @@ import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.UnitType; import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.ItemStack;
@@ -52,7 +51,7 @@ public class UnitFactory extends Block{
consumes.require(ConsumeItems.class); consumes.require(ConsumeItems.class);
} }
@Remote(called = Loc.server, in = In.blocks) @Remote(called = Loc.server)
public static void onUnitFactorySpawn(Tile tile){ public static void onUnitFactorySpawn(Tile tile){
UnitFactoryEntity entity = tile.entity(); UnitFactoryEntity entity = tile.entity();
UnitFactory factory = (UnitFactory) tile.block(); UnitFactory factory = (UnitFactory) tile.block();
@@ -175,7 +174,7 @@ public class UnitFactory extends Block{
if(entity.buildTime >= produceTime && !entity.open){ if(entity.buildTime >= produceTime && !entity.open){
entity.open = true; entity.open = true;
Timers.run(openDuration / 1.5f, () -> CallBlocks.onUnitFactorySpawn(tile)); Timers.run(openDuration / 1.5f, () -> Call.onUnitFactorySpawn(tile));
useContent(type); useContent(type);
entity.openCountdown = openDuration; entity.openCountdown = openDuration;