Better IO
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import java.io.*;
|
||||
import arc.util.io.*;
|
||||
|
||||
/** A class that represents compartmentalized tile entity state. */
|
||||
public abstract class BlockModule{
|
||||
public abstract void write(DataOutput stream) throws IOException;
|
||||
|
||||
public abstract void read(DataInput stream) throws IOException;
|
||||
public abstract void write(Writes write);
|
||||
public abstract void read(Reads read);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import arc.util.io.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.world.consumers.Consume;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
public class ConsumeModule extends BlockModule{
|
||||
private boolean valid, optionalValid;
|
||||
private final Tilec entity;
|
||||
@@ -59,12 +58,12 @@ public class ConsumeModule extends BlockModule{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutput stream) throws IOException{
|
||||
stream.writeBoolean(valid);
|
||||
public void write(Writes write){
|
||||
write.bool(valid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(DataInput stream) throws IOException{
|
||||
valid = stream.readBoolean();
|
||||
public void read(Reads read){
|
||||
valid = read.bool();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import arc.util.io.*;
|
||||
import mindustry.type.Item;
|
||||
import mindustry.type.ItemStack;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static mindustry.Vars.content;
|
||||
@@ -121,32 +121,32 @@ public class ItemModule extends BlockModule{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutput stream) throws IOException{
|
||||
public void write(Writes write){
|
||||
byte amount = 0;
|
||||
for(int item : items){
|
||||
if(item > 0) amount++;
|
||||
}
|
||||
|
||||
stream.writeByte(amount); //amount of items
|
||||
write.b(amount); //amount of items
|
||||
|
||||
for(int i = 0; i < items.length; i++){
|
||||
if(items[i] > 0){
|
||||
stream.writeByte(i); //item ID
|
||||
stream.writeInt(items[i]); //item amount
|
||||
write.b(i); //item ID
|
||||
write.i(items[i]); //item amount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(DataInput stream) throws IOException{
|
||||
public void read(Reads read){
|
||||
//just in case, reset items
|
||||
Arrays.fill(items, 0);
|
||||
byte count = stream.readByte();
|
||||
byte count = read.b();
|
||||
total = 0;
|
||||
|
||||
for(int j = 0; j < count; j++){
|
||||
int itemid = stream.readByte();
|
||||
int itemamount = stream.readInt();
|
||||
int itemid = read.b();
|
||||
int itemamount = read.i();
|
||||
items[content.item(itemid).id] = itemamount;
|
||||
total += itemamount;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import arc.math.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.type.Liquid;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static mindustry.Vars.content;
|
||||
@@ -83,31 +83,31 @@ public class LiquidModule extends BlockModule{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutput stream) throws IOException{
|
||||
public void write(Writes write){
|
||||
byte amount = 0;
|
||||
for(float liquid : liquids){
|
||||
if(liquid > 0) amount++;
|
||||
}
|
||||
|
||||
stream.writeByte(amount); //amount of liquids
|
||||
write.b(amount); //amount of liquids
|
||||
|
||||
for(int i = 0; i < liquids.length; i++){
|
||||
if(liquids[i] > 0){
|
||||
stream.writeByte(i); //liquid ID
|
||||
stream.writeFloat(liquids[i]); //item amount
|
||||
write.b(i); //liquid ID
|
||||
write.f(liquids[i]); //item amount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(DataInput stream) throws IOException{
|
||||
public void read(Reads read){
|
||||
Arrays.fill(liquids, 0);
|
||||
total = 0f;
|
||||
byte count = stream.readByte();
|
||||
byte count = read.b();
|
||||
|
||||
for(int j = 0; j < count; j++){
|
||||
int liquidid = stream.readByte();
|
||||
float amount = stream.readFloat();
|
||||
int liquidid = read.b();
|
||||
float amount = read.f();
|
||||
liquids[liquidid] = amount;
|
||||
if(amount > 0){
|
||||
current = content.liquid(liquidid);
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import arc.struct.IntArray;
|
||||
import arc.util.io.*;
|
||||
import mindustry.world.blocks.power.PowerGraph;
|
||||
|
||||
import java.io.DataInput;
|
||||
import java.io.DataOutput;
|
||||
import java.io.IOException;
|
||||
|
||||
public class PowerModule extends BlockModule{
|
||||
/**
|
||||
* In case of unbuffered consumers, this is the percentage (1.0f = 100%) of the demanded power which can be supplied.
|
||||
@@ -18,22 +15,22 @@ public class PowerModule extends BlockModule{
|
||||
public IntArray links = new IntArray();
|
||||
|
||||
@Override
|
||||
public void write(DataOutput stream) throws IOException{
|
||||
stream.writeShort(links.size);
|
||||
public void write(Writes write){
|
||||
write.s(links.size);
|
||||
for(int i = 0; i < links.size; i++){
|
||||
stream.writeInt(links.get(i));
|
||||
write.i(links.get(i));
|
||||
}
|
||||
stream.writeFloat(status);
|
||||
write.f(status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(DataInput stream) throws IOException{
|
||||
public void read(Reads read){
|
||||
links.clear();
|
||||
short amount = stream.readShort();
|
||||
short amount = read.s();
|
||||
for(int i = 0; i < amount; i++){
|
||||
links.add(stream.readInt());
|
||||
links.add(read.i());
|
||||
}
|
||||
status = stream.readFloat();
|
||||
status = read.f();
|
||||
if(Float.isNaN(status) || Float.isInfinite(status)) status = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user