Better IO

This commit is contained in:
Anuken
2020-02-13 22:11:59 -05:00
parent e3621f44da
commit 09c57c32d6
54 changed files with 568 additions and 619 deletions

View File

@@ -1,12 +1,11 @@
package mindustry.entities.def;
import arc.func.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.*;
import mindustry.gen.*;
import java.io.*;
import static mindustry.Vars.player;
@Component
@@ -53,11 +52,11 @@ abstract class EntityComp{
abstract boolean serialize();
@MethodPriority(1)
void read(DataInput input) throws IOException{
void read(Reads read){
afterRead();
}
void write(DataOutput output) throws IOException{
void write(Writes write){
}

View File

@@ -5,7 +5,7 @@ import mindustry.gen.*;
@Component
abstract class MassComp implements Velc{
float mass = 1f;
transient float mass = 1f;
public void impulse(float x, float y){
vel().add(x / mass, y / mass);

View File

@@ -5,6 +5,7 @@ import arc.math.geom.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
@@ -13,8 +14,6 @@ import mindustry.world.*;
import mindustry.world.consumers.*;
import mindustry.world.modules.*;
import java.io.*;
import static mindustry.Vars.*;
@EntityDef(value = {Tilec.class}, isFinal = false, genio = false, serialize = false)
@@ -63,30 +62,30 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc{
}
@CallSuper
public void write(DataOutput output) throws IOException{
output.writeFloat(health());
output.writeByte(tile.rotation());
output.writeByte(tile.getTeamID());
if(items != null) items.write(output);
if(power != null) power.write(output);
if(liquids != null) liquids.write(output);
if(cons != null) cons.write(output);
public void write(Writes write){
write.f(health());
write.b(tile.rotation());
write.b(tile.getTeamID());
if(items != null) items.write(write);
if(power != null) power.write(write);
if(liquids != null) liquids.write(write);
if(cons != null) cons.write(write);
}
@CallSuper
@Override
public void read(DataInput input, byte revision) throws IOException{
health(input.readFloat());
byte rotation = input.readByte();
byte team = input.readByte();
public void read(Reads read, byte revision){
health(read.f());
byte rotation = read.b();
byte team = read.b();
tile.setTeam(Team.get(team));
tile.rotation(rotation);
if(items != null) items.read(input);
if(power != null) power.read(input);
if(liquids != null) liquids.read(input);
if(cons != null) cons.read(input);
if(items != null) items.read(read);
if(power != null) power.read(read);
if(liquids != null) liquids.read(read);
if(cons != null) cons.read(read);
}
@Override

View File

@@ -10,7 +10,7 @@ abstract class VelComp implements Posc{
@Import float x, y;
final Vec2 vel = new Vec2();
float drag = 0f;
transient float drag = 0f;
//velocity needs to be called first, as it affects delta and lastPosition
@MethodPriority(-1)