Removed UnitCommand / Disabled mechs flying over env. blocks

This commit is contained in:
Anuken
2019-01-17 19:00:18 -05:00
parent c63dca1c0d
commit bd6cfa6461
128 changed files with 1582 additions and 1593 deletions

View File

@@ -115,6 +115,25 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
achievedFlight = true;
}
@Override
public void move(float x, float y){
if(!mech.flying){
EntityQuery.collisions().move(this, x, y);
}else{
moveBy(x, y);
}
}
@Override
public boolean collidesGrid(int x, int y){
Tile tile = world.tile(x, y);
if(!isFlying()) return true;
if(!mech.flying && tile != null && !tile.block().synthetic() && tile.block().solid){
return true;
}
return false;
}
@Override
public float drag(){
return mech.drag;

View File

@@ -74,6 +74,11 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
return carrier;
}
@Override
public boolean collidesGrid(int x, int y){
return !isFlying();
}
@Override
public void setCarrier(CarryTrait carrier){
this.carrier = carrier;
@@ -244,8 +249,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
velocity.limit(maxVelocity()).scl(1f + (status.getSpeedMultiplier()-1f) * Time.delta());
if(isFlying()){
x += velocity.x * Time.delta();
y += velocity.y * Time.delta();
move(velocity.x * Time.delta(), velocity.y * Time.delta());
}else{
boolean onLiquid = floor.isLiquid;

View File

@@ -88,9 +88,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
return type.drag;
}
/**Called when a command is recieved from the command center.*/
public abstract void onCommand(UnitCommand command);
/**Initialize the type and team of this unit. Only call once!*/
public void init(UnitType type, Team team){
if(this.type != null) throw new RuntimeException("This unit is already initialized!");

View File

@@ -120,11 +120,8 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
};
@Override
public void onCommand(UnitCommand command){
state.set(command == UnitCommand.retreat ? retreat :
command == UnitCommand.attack ? attack :
command == UnitCommand.patrol ? patrol :
null);
public void move(float x, float y){
moveBy(x, y);
}
@Override

View File

@@ -78,14 +78,6 @@ public abstract class GroundUnit extends BaseUnit{
}
};
@Override
public void onCommand(UnitCommand command){
state.set(command == UnitCommand.retreat ? retreat :
command == UnitCommand.attack ? attack :
command == UnitCommand.patrol ? patrol :
null);
}
@Override
public void init(UnitType type, Team team){
super.init(type, team);

View File

@@ -1,17 +0,0 @@
package io.anuke.mindustry.entities.units;
import io.anuke.arc.Core;
public enum UnitCommand{
attack, retreat, patrol;
private final String localized;
UnitCommand(){
localized = Core.bundle.get("command." + name());
}
public String localized(){
return localized;
}
}

View File

@@ -13,7 +13,6 @@ import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.BuilderTrait;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.FlyingUnit;
import io.anuke.mindustry.entities.units.UnitCommand;
import io.anuke.mindustry.entities.units.UnitState;
import io.anuke.mindustry.game.EventType.BuildSelectEvent;
import io.anuke.mindustry.gen.Call;
@@ -262,11 +261,6 @@ public class Drone extends FlyingUnit implements BuilderTrait{
}
}
@Override
public void onCommand(UnitCommand command){
//no
}
@Override
public boolean canMine(Item item){
return type.toMine.contains(item);

View File

@@ -23,6 +23,7 @@ public class GlobalData{
public GlobalData(){
Core.settings.setSerializer(ContentType.class, (stream, t) -> stream.writeInt(t.ordinal()), stream -> ContentType.values()[stream.readInt()]);
Core.settings.setSerializer(Item.class, (stream, t) -> stream.writeUTF(t.name), stream -> content.getByName(ContentType.item, stream.readUTF()));
}
public void addItem(Item item, int amount){
@@ -94,7 +95,7 @@ public class GlobalData{
//set up default values
if(!Core.settings.has("item-" + Items.copper)){
addItem(Items.copper, 1000);
// addItem(Items.copper, 1000);
}
}

View File

@@ -1,8 +1,11 @@
package io.anuke.mindustry.io;
import io.anuke.arc.graphics.Color;
import io.anuke.annotations.Annotations.ReadClass;
import io.anuke.annotations.Annotations.WriteClass;
import io.anuke.arc.entities.Effects;
import io.anuke.arc.entities.Effects.Effect;
import io.anuke.arc.entities.Entities;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.entities.bullet.Bullet;
@@ -12,7 +15,6 @@ import io.anuke.mindustry.entities.traits.CarriableTrait;
import io.anuke.mindustry.entities.traits.CarryTrait;
import io.anuke.mindustry.entities.traits.ShooterTrait;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.UnitCommand;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.net.Packets.AdminAction;
import io.anuke.mindustry.net.Packets.KickReason;
@@ -20,9 +22,6 @@ import io.anuke.mindustry.type.*;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Pos;
import io.anuke.mindustry.world.Tile;
import io.anuke.arc.entities.Effects;
import io.anuke.arc.entities.Effects.Effect;
import io.anuke.arc.entities.Entities;
import java.io.DataInput;
import java.io.DataOutput;
@@ -232,16 +231,6 @@ public class TypeIO{
return AdminAction.values()[buffer.get()];
}
@WriteClass(UnitCommand.class)
public static void writeCommand(ByteBuffer buffer, UnitCommand reason){
buffer.put((byte) reason.ordinal());
}
@ReadClass(UnitCommand.class)
public static UnitCommand readCommand(ByteBuffer buffer){
return UnitCommand.values()[buffer.get()];
}
@WriteClass(Effect.class)
public static void writeEffect(ByteBuffer buffer, Effect effect){
buffer.putShort((short) effect.id);