Added TileEntity.read/writeConfig()

This commit is contained in:
Anuken
2018-10-28 22:29:23 -04:00
parent ac918c1a81
commit d4ea8c56c3
29 changed files with 109 additions and 136 deletions

View File

@@ -22,8 +22,8 @@ import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -182,12 +182,12 @@ public class DebugBlocks extends BlockList implements ContentList{
public Liquid source = Liquids.water;
@Override
public void write(DataOutputStream stream) throws IOException{
public void writeConfig(DataOutput stream) throws IOException{
stream.writeByte(source.id);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void readConfig(DataInput stream) throws IOException{
source = content.liquid(stream.readByte());
}
}

View File

@@ -28,8 +28,8 @@ import io.anuke.ucore.entities.trait.HealthTrait;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Timer;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tileGroup;
@@ -120,11 +120,13 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
return dead || tile.entity != this;
}
public void write(DataOutputStream stream) throws IOException{
}
public void write(DataOutput stream) throws IOException{}
public void read(DataInputStream stream) throws IOException{
}
public void writeConfig(DataOutput stream) throws IOException{}
public void read(DataInput stream) throws IOException{}
public void readConfig(DataInput stream) throws IOException{}
public boolean collide(Bullet other){
return true;

View File

@@ -13,7 +13,6 @@ 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.BlockBuildBeginEvent;
import io.anuke.mindustry.game.EventType.BuildSelectEvent;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
@@ -270,7 +269,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
}
private void notifyPlaced(BuildEntity entity, boolean isBreaking){
float timeToBuild = entity.recipe.cost;
float timeToBuild = entity.buildCost;
float dist = Math.min(entity.distanceTo(x, y) - placeDistance, 0);
if(!state.is(build) && dist / type.maxVelocity < timeToBuild * 0.9f){

View File

@@ -67,6 +67,7 @@ public abstract class SaveFileVersion{
if(tile.entity.liquids != null) tile.entity.liquids.write(stream);
if(tile.entity.cons != null) tile.entity.cons.write(stream);
tile.entity.writeConfig(stream);
tile.entity.write(stream);
}else if(tile.block() == Blocks.air){
int consecutives = 0;
@@ -152,6 +153,7 @@ public abstract class SaveFileVersion{
if(tile.entity.liquids != null) tile.entity.liquids.read(stream);
if(tile.entity.cons != null) tile.entity.cons.read(stream);
tile.entity.readConfig(stream);
tile.entity.read(stream);
if(tile.block() == StorageBlocks.core){

View File

@@ -73,6 +73,7 @@ public class NetworkIO{
if(tile.entity.liquids != null) tile.entity.liquids.write(stream);
if(tile.entity.cons != null) tile.entity.cons.write(stream);
tile.entity.writeConfig(stream);
tile.entity.write(stream);
}else if(tile.block() == Blocks.air){
int consecutives = 0;
@@ -229,6 +230,7 @@ public class NetworkIO{
if(tile.entity.liquids != null) tile.entity.liquids.read(stream);
if(tile.entity.cons != null) tile.entity.cons.read(stream);
tile.entity.readConfig(stream);
tile.entity.read(stream);
}else if(wallid == 0){
int consecutives = stream.readUnsignedByte();

View File

@@ -28,8 +28,8 @@ import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -302,7 +302,7 @@ public class BuildBlock extends Block{
}
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(progress);
stream.writeShort(previous == null ? -1 : previous.id);
stream.writeShort(recipe == null ? -1 : recipe.result.id);
@@ -319,7 +319,7 @@ public class BuildBlock extends Block{
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
progress = stream.readFloat();
short pid = stream.readShort();
short rid = stream.readShort();

View File

@@ -12,8 +12,8 @@ import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.threads;
@@ -89,14 +89,12 @@ public class Door extends Wall{
public boolean open = false;
@Override
public void write(DataOutputStream stream) throws IOException{
super.write(stream);
public void write(DataOutput stream) throws IOException{
stream.writeBoolean(open);
}
@Override
public void read(DataInputStream stream) throws IOException{
super.read(stream);
public void read(DataInput stream) throws IOException{
open = stream.readBoolean();
}
}

View File

@@ -25,8 +25,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -197,7 +197,7 @@ public class ForceProjector extends Block {
float phaseHeat;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeBoolean(broken);
stream.writeFloat(buildup);
stream.writeFloat(radscl);
@@ -206,7 +206,7 @@ public class ForceProjector extends Block {
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
broken = stream.readBoolean();
buildup = stream.readFloat();
radscl = stream.readFloat();

View File

@@ -16,8 +16,8 @@ import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -131,13 +131,13 @@ public class MendProjector extends Block{
float phaseHeat;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(heat);
stream.writeFloat(phaseHeat);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
heat = stream.readFloat();
phaseHeat = stream.readFloat();
}

View File

@@ -16,8 +16,8 @@ import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -133,13 +133,13 @@ public class OverdriveProjector extends Block{
float phaseHeat;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(heat);
stream.writeFloat(phaseHeat);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
heat = stream.readFloat();
phaseHeat = stream.readFloat();
}

View File

@@ -31,8 +31,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.content;
@@ -354,7 +354,7 @@ public abstract class Turret extends Block{
public TargetTrait target;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeByte(ammo.size);
for(AmmoEntry entry : ammo){
stream.writeByte(entry.type.id);
@@ -363,7 +363,7 @@ public abstract class Turret extends Block{
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
byte amount = stream.readByte();
for(int i = 0; i < amount; i++){
AmmoType type = content.getByID(ContentType.ammo, stream.readByte());

View File

@@ -9,8 +9,8 @@ import io.anuke.mindustry.world.modules.LiquidModule;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class Conduit extends LiquidBlock{
@@ -136,12 +136,12 @@ public class Conduit extends LiquidBlock{
int blendshadowrot;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(smoothLiquid);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
smoothLiquid = stream.readFloat();
}
}

View File

@@ -16,8 +16,8 @@ import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -384,7 +384,7 @@ public class Conveyor extends Block{
float clogHeat = 0f;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeInt(convey.size);
for(int i = 0; i < convey.size; i++){
@@ -393,7 +393,7 @@ public class Conveyor extends Block{
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
convey.clear();
int amount = stream.readInt();
convey.ensureCapacity(amount);

View File

@@ -23,8 +23,8 @@ import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -325,7 +325,7 @@ public class ItemBridge extends Block{
public float cycleSpeed = 1f;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeInt(link);
stream.writeFloat(uptime);
stream.writeByte(incoming.size);
@@ -338,7 +338,7 @@ public class ItemBridge extends Block{
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
link = stream.readInt();
uptime = stream.readFloat();
byte links = stream.readByte();

View File

@@ -30,8 +30,8 @@ import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -322,13 +322,13 @@ public class MassDriver extends Block{
}
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeInt(link);
stream.writeFloat(rotation);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
link = stream.readInt();
rotation = stream.readFloat();
}

View File

@@ -14,8 +14,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -122,12 +122,12 @@ public class Sorter extends Block implements SelectionTrait{
public Item sortItem = content.item(0);
@Override
public void write(DataOutputStream stream) throws IOException{
public void writeConfig(DataOutput stream) throws IOException{
stream.writeByte(sortItem.id);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void readConfig(DataInput stream) throws IOException{
sortItem = content.items().get(stream.readByte());
}
}

View File

@@ -27,8 +27,8 @@ import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -342,7 +342,7 @@ public class WarpGate extends PowerBlock{
public float time;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeByte(color);
stream.writeBoolean(active);
stream.writeFloat(activeScl);
@@ -351,7 +351,7 @@ public class WarpGate extends PowerBlock{
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
color = stream.readByte();
active = stream.readBoolean();
activeScl = stream.readFloat();

View File

@@ -17,8 +17,8 @@ import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -121,12 +121,12 @@ public abstract class ItemGenerator extends PowerGenerator{
public float explosiveness;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(efficiency);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
efficiency = stream.readFloat();
}
}

View File

@@ -20,8 +20,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Translator;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.tilesize;
@@ -202,14 +202,12 @@ public class NuclearReactor extends PowerGenerator{
public float flash;
@Override
public void write(DataOutputStream stream) throws IOException{
super.write(stream);
public void write(DataOutput stream) throws IOException{
stream.writeFloat(heat);
}
@Override
public void read(DataInputStream stream) throws IOException{
super.read(stream);
public void read(DataInput stream) throws IOException{
heat = stream.readFloat();
}
}

View File

@@ -15,8 +15,8 @@ import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.SeedRandom;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class Cultivator extends Drill{
@@ -113,12 +113,12 @@ public class Cultivator extends Drill{
public float warmup;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(warmup);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
warmup = stream.readFloat();
}
}

View File

@@ -18,8 +18,8 @@ import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class GenericCrafter extends Block{
@@ -125,13 +125,13 @@ public class GenericCrafter extends Block{
public float warmup;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(progress);
stream.writeFloat(warmup);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
progress = stream.readFloat();
warmup = stream.readFloat();
}

View File

@@ -19,8 +19,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -210,12 +210,12 @@ public class PowerSmelter extends PowerBlock{
public float craftTime;
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(heat);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
heat = stream.readFloat();
}
}

View File

@@ -30,8 +30,8 @@ import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.EnumSet;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -246,13 +246,13 @@ public class CoreBlock extends StorageBlock{
}
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeBoolean(solid);
stream.writeInt(droneID);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
solid = stream.readBoolean();
droneID = stream.readInt();
}

View File

@@ -12,8 +12,8 @@ import io.anuke.mindustry.world.blocks.SelectionTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.layout.Table;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -75,12 +75,12 @@ public class SortedUnloader extends Unloader implements SelectionTrait{
public Item sortItem = null;
@Override
public void write(DataOutputStream stream) throws IOException{
public void writeConfig(DataOutput stream) throws IOException{
stream.writeByte(sortItem == null ? -1 : sortItem.id);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void readConfig(DataInput stream) throws IOException{
byte id = stream.readByte();
sortItem = id == -1 ? null : content.items().get(id);
}

View File

@@ -24,8 +24,8 @@ import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.EnumSet;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -115,12 +115,12 @@ public class CommandCenter extends Block{
public UnitCommand command = UnitCommand.attack;
@Override
public void write(DataOutputStream stream) throws IOException{
public void writeConfig(DataOutput stream) throws IOException{
stream.writeByte(command.ordinal());
}
@Override
public void read(DataInputStream stream) throws IOException{
public void readConfig(DataInput stream) throws IOException{
command = UnitCommand.values()[stream.readByte()];
}
}

View File

@@ -1,28 +0,0 @@
package io.anuke.mindustry.world.blocks.units;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
public class DropPoint extends Block{
public DropPoint(String name){
super(name);
hasItems = true;
solid = true;
update = true;
}
@Override
public boolean acceptItem(Item item, Tile tile, Tile source){
return false;
}
@Override
public void update(Tile tile){
if(tile.entity.items.total() > 0){
tryDump(tile);
}
}
}

View File

@@ -27,8 +27,8 @@ import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.mobile;
@@ -237,14 +237,14 @@ public class MechPad extends Block{
}
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(progress);
stream.writeFloat(time);
stream.writeFloat(heat);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
progress = stream.readFloat();
time = stream.readFloat();
heat = stream.readFloat();

View File

@@ -23,8 +23,8 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
@@ -329,12 +329,12 @@ public class Reconstructor extends Block{
}
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeInt(link);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
link = stream.readInt();
}
}

View File

@@ -30,8 +30,8 @@ import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.EnumSet;
import io.anuke.ucore.util.Mathf;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class UnitFactory extends Block{
@@ -227,13 +227,13 @@ public class UnitFactory extends Block{
public float warmup; //only for enemy spawners
@Override
public void write(DataOutputStream stream) throws IOException{
public void write(DataOutput stream) throws IOException{
stream.writeFloat(buildTime);
stream.writeFloat(warmup);
}
@Override
public void read(DataInputStream stream) throws IOException{
public void read(DataInput stream) throws IOException{
buildTime = stream.readFloat();
warmup = stream.readFloat();
}