Fixed compilation errors

This commit is contained in:
Anuken
2018-03-14 20:15:25 -04:00
parent 1cd30e9057
commit 01ba051c43
26 changed files with 64 additions and 84 deletions

View File

@@ -4,7 +4,7 @@
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.Tile" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.io.Maps" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.Player" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.enemies.BaseUnit" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.units.BaseUnit" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.Map" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.EnemySpawn" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.core.GameState" />

View File

@@ -9,7 +9,7 @@ import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Shield;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.io.Platform;
import io.anuke.mindustry.net.ClientDebug;
import io.anuke.mindustry.net.ServerDebug;

View File

@@ -4,7 +4,7 @@ import com.badlogic.gdx.ai.pfa.PathFinderRequest;
import com.badlogic.gdx.ai.pfa.PathSmoother;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.game.SpawnPoint;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Timers;

View File

@@ -3,13 +3,12 @@ package io.anuke.mindustry.core;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.IntMap;
import com.badlogic.gdx.utils.IntSet;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.SyncEntity;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.io.Platform;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.Net.SendMode;
@@ -130,6 +129,7 @@ public class NetClient extends Module {
long time = data.getLong();
byte groupid = data.get();
byte writesize = data.get();
EntityGroup<?> group = Entities.getGroup(groupid);
@@ -148,7 +148,7 @@ public class NetClient extends Module {
req.group = groupid;
Net.send(req, SendMode.udp);
}
data.position(data.position() + SyncEntity.getWriteSize((Class<? extends SyncEntity>) group.getType()));
data.position(data.position() + writesize);
} else {
entity.read(data, time);
}
@@ -322,14 +322,8 @@ public class NetClient extends Module {
void sync(){
if(timer.get(0, playerSyncTime)){
byte[] bytes = new byte[player.getWriteSize() + 8];
ByteBuffer buffer = ByteBuffer.wrap(bytes);
buffer.putLong(TimeUtils.millis());
player.write(buffer);
PositionPacket packet = new PositionPacket();
packet.data = bytes;
packet.player = player;
Net.send(packet, SendMode.udp);
}

View File

@@ -42,6 +42,7 @@ public class NetServer extends Module{
private ObjectMap<String, ByteArray> weapons = new ObjectMap<>();
private boolean closing = false;
private Timer timer = new Timer(5);
private ByteBuffer writeBuffer = ByteBuffer.allocate(32);
public NetServer(){
@@ -153,11 +154,7 @@ public class NetServer extends Module{
});
Net.handleServer(PositionPacket.class, (id, packet) -> {
ByteBuffer buffer = ByteBuffer.wrap(packet.data);
long time = buffer.getLong();
Player player = connections.get(id);
player.read(buffer, time);
//...don't do anything here as it's already handled by the packet itself
});
Net.handleServer(ShootPacket.class, (id, packet) -> {
@@ -320,8 +317,12 @@ public class NetServer extends Module{
for(EntityGroup<?> group : Entities.getAllGroups()) {
if(group.size() == 0 || !(group.all().iterator().next() instanceof SyncEntity)) continue;
((SyncEntity)group.all().get(0)).write(writeBuffer);
//get write size for one entity (adding 4, as you need to write the ID as well)
int writesize = SyncEntity.getWriteSize((Class<? extends SyncEntity>)group.getType()) + 4;
int writesize = writeBuffer.position() + 4;
writeBuffer.position(0);
//amount of entities
int amount = group.size();
//maximum amount of entities per packet
@@ -339,12 +340,14 @@ public class NetServer extends Module{
//calculate amount of entities to go into this packet
int csize = Math.min(amount-i, maxsize);
//create a byte array to write to
byte[] bytes = new byte[csize*writesize + 1 + 8];
byte[] bytes = new byte[csize*writesize + 1 + 1 + 8];
//wrap it for easy writing
current = ByteBuffer.wrap(bytes);
current.putLong(TimeUtils.millis());
//write the group ID so the client knows which group this is
current.put((byte)group.getID());
//write size of each entity write here
current.put((byte)writesize);
}
SyncEntity entity = (SyncEntity) group.all().get(i);

View File

@@ -15,7 +15,7 @@ import com.badlogic.gdx.utils.Pools;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.SyncEntity;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.game.SpawnPoint;
import io.anuke.mindustry.graphics.BlockRenderer;
import io.anuke.mindustry.graphics.Shaders;
@@ -184,7 +184,7 @@ public class Renderer extends RendererModule{
Graphics.shader(Shaders.outline, false);
Entities.draw(enemyGroup);
Entities.draw(playerGroup, p -> !p.isAndroid);
Entities.draw(playerGroup, p -> !p.mech.flying);
Graphics.shader();
Entities.draw(Entities.defaultGroup());
@@ -192,7 +192,7 @@ public class Renderer extends RendererModule{
blocks.drawBlocks(true);
Graphics.shader(Shaders.outline, false);
Entities.draw(playerGroup, p -> p.isAndroid);
Entities.draw(playerGroup, p -> p.mech.flying);
Graphics.shader();
Entities.draw(bulletGroup);
@@ -508,7 +508,7 @@ public class Renderer extends RendererModule{
}
for(Player player : playerGroup.all()){
if(!player.isDead() && !player.isAndroid) drawHealth(player);
if(!player.isDead()) drawHealth(player);
}
}
}

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.entities.BulletEntity;
import io.anuke.ucore.entities.Entity;

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.entities;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.entities.effect.DamageArea;
import io.anuke.mindustry.entities.effect.EMP;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.graphics.Fx;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.core.Effects;

View File

@@ -76,7 +76,7 @@ public abstract class SyncEntity extends DestructibleEntity{
return (T)this;
}
private static boolean isSmoothing(){
public static boolean isSmoothing(){
return threads.isEnabled() && threads.getFPS() <= Gdx.graphics.getFramesPerSecond() / 2f;
}

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.effect;
import com.badlogic.gdx.math.Interpolation;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.defense.ShieldBlock;
import io.anuke.ucore.core.Timers;

View File

@@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.graphics.Fx;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry.entities.enemies;
package io.anuke.mindustry.entities.units;
import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.Unit;

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry.entities.enemies;
package io.anuke.mindustry.entities.units;
import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.entities.BulletType;

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry.entities.enemies;
package io.anuke.mindustry.entities.units;
public class UnitTypes {
//TODO list types here.

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.game;
import io.anuke.mindustry.entities.enemies.UnitType;
import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.state;
@@ -30,7 +30,8 @@ public class EnemySpawn{
public EnemySpawn(UnitType type){
this.type = type;
}
//TODO
public int evaluate(int wave, int lane){
if(wave < after || wave > before || (wave - after) % spacing != 0){
return 0;
@@ -41,6 +42,6 @@ public class EnemySpawn{
}
public int tier(int wave, int lane){
return Mathf.clamp(tier + (wave-after)/tierscale, 1, UnitType.maxtier);
return Mathf.clamp(tier + (wave-after)/tierscale, 1, 5);
}
}

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.game;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.resource.Weapon;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;

View File

@@ -1,10 +1,9 @@
package io.anuke.mindustry.io.versions;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.IntMap;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.enemies.UnitType;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.mindustry.game.Difficulty;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.io.SaveFileVersion;
@@ -120,25 +119,18 @@ public class Save16 extends SaveFileVersion {
int enemies = stream.readInt();
Array<BaseUnit> enemiesToUpdate = new Array<>();
for(int i = 0; i < enemies; i ++){
byte type = stream.readByte();
int lane = stream.readByte();
float x = stream.readFloat();
float y = stream.readFloat();
byte tier = stream.readByte();
int health = stream.readShort();
try{
BaseUnit enemy = new BaseUnit(UnitType.getByID(type));
enemy.lane = lane;
enemy.health = health;
enemy.x = x;
enemy.y = y;
enemy.tier = tier;
enemy.add(enemyGroup);
enemiesToUpdate.add(enemy);
}catch (Exception e){
throw new RuntimeException(e);
}
@@ -158,10 +150,6 @@ public class Save16 extends SaveFileVersion {
world.loadMap(world.maps().getMap(mapid), seed);
if(!headless) renderer.clearTiles();
for(BaseUnit enemy : enemiesToUpdate){
enemy.node = -2;
}
int rocks = stream.readInt();
for(int x = 0; x < world.width(); x ++){
@@ -285,10 +273,8 @@ public class Save16 extends SaveFileVersion {
for(int i = 0; i < enemies.size(); i ++){
BaseUnit enemy = enemies.get(i);
stream.writeByte(enemy.type.id); //type
stream.writeByte(enemy.lane); //lane
stream.writeFloat(enemy.x); //x
stream.writeFloat(enemy.y); //y
stream.writeByte(enemy.tier); //tier
stream.writeShort(enemy.health); //health
}

View File

@@ -4,7 +4,7 @@ import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.net.Net.SendMode;
import io.anuke.mindustry.net.Packets.*;
import io.anuke.mindustry.resource.Weapon;

View File

@@ -1,8 +1,10 @@
package io.anuke.mindustry.net;
import com.badlogic.gdx.utils.Base64Coder;
import com.badlogic.gdx.utils.TimeUtils;
import com.badlogic.gdx.utils.reflect.ClassReflection;
import com.badlogic.gdx.utils.reflect.ReflectionException;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.SyncEntity;
import io.anuke.mindustry.io.Version;
@@ -141,17 +143,21 @@ public class Packets {
}
public static class PositionPacket implements Packet{
public byte[] data;
public Player player;
@Override
public void write(ByteBuffer buffer) {
buffer.put(data);
buffer.putInt(player.id);
buffer.putLong(TimeUtils.millis());
player.write(buffer);
}
@Override
public void read(ByteBuffer buffer) {
data = new byte[SyncEntity.getWriteSize(Player.class) + 8];
buffer.get(data);
int id = buffer.getInt();
long time = buffer.getLong();
player = Vars.playerGroup.getByID(id);
player.read(buffer, time);
}
}

View File

@@ -3,8 +3,6 @@ package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.enemies.UnitTypes;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.builders.button;
@@ -66,10 +64,6 @@ public class DebugFragment implements Fragment {
netClient.clearRecieved();
});
row();
new button("spawn", () -> {
new BaseUnit(UnitTypes.healer).set(player.x, player.y).add();
});
row();
}}.end();
row();

View File

@@ -96,22 +96,21 @@ public class PlayerListFragment implements Fragment{
button.margin(5).marginBottom(10);
Stack stack = new Stack();
BorderImage image = new BorderImage(Draw.region(player.isAndroid ? "ship-standard" : "mech-standard-icon"), 3f);
BorderImage image = new BorderImage(Draw.region("mech-" + player.mech.name), 3f);
stack.add(image);
if(!player.isAndroid) {
stack.add(new Element(){
public void draw(){
float s = getWidth() / 12f;
for(int i : Mathf.signs){
Draw.rect((i < 0 ? player.weaponLeft.name : player.weaponRight.name)
+ "-equip", x + s * 6 + i * 3*s, y + s*6 + 2*s, -8*s*i, 8*s);
}
stack.add(new Element(){
public void draw(){
float s = getWidth() / 12f;
for(int i : Mathf.signs){
Draw.rect((i < 0 ? player.weaponLeft.name : player.weaponRight.name)
+ "-equip", x + s * 6 + i * 3*s, y + s*6 + 2*s, -8*s*i, 8*s);
}
});
}
}
});
button.add(stack).size(h);
button.labelWrap("[#" + player.getColor().toString().toUpperCase() + "]" + player.name).width(170f).pad(10);
button.add().grow();

View File

@@ -119,7 +119,7 @@ public class Placement {
if(type.solid || type.solidifes) {
for (Player player : playerGroup.all()) {
if (!player.isAndroid && rect.overlaps(player.hitbox.getRect(player.x, player.y))) {
if (!player.mech.flying && rect.overlaps(player.hitbox.getRect(player.x, player.y))) {
return false;
}
}

View File

@@ -4,9 +4,6 @@ import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectMap;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.enemies.UnitTypes;
import io.anuke.mindustry.game.SpawnPoint;
import io.anuke.mindustry.world.ColorMapper.BlockPair;
import io.anuke.mindustry.world.blocks.Blocks;
@@ -15,7 +12,6 @@ import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.noise.Noise;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world;
public class WorldGenerator {
@@ -77,7 +73,8 @@ public class WorldGenerator {
}
if(color == Hue.rgb(Color.PURPLE)){
if(!Vars.android) new BaseUnit(UnitTypes.target).set(x * tilesize, y * tilesize).add();
//TODO place unit here
//if(!Vars.android) new BaseUnit(UnitTypes.target).set(x * tilesize, y * tilesize).add();
floor = Blocks.stone;
}

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.types.defense;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.MathUtils;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.graphics.Fx;
import io.anuke.mindustry.world.Layer;
import io.anuke.mindustry.world.Tile;

View File

@@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.enemies.BaseUnit;
import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.graphics.Fx;
import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.*;