Merge branch '16bititemtest'
This commit is contained in:
@@ -138,13 +138,18 @@ public class ItemTurret extends Turret{
|
||||
return ammoTypes.get(item) != null && totalAmmo + ammoTypes.get(item).ammoMultiplier <= maxAmmo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte version(){
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(Writes write){
|
||||
super.write(write);
|
||||
write.b(ammo.size);
|
||||
for(AmmoEntry entry : ammo){
|
||||
ItemEntry i = (ItemEntry)entry;
|
||||
write.b(i.item.id);
|
||||
write.s(i.item.id);
|
||||
write.s(i.amount);
|
||||
}
|
||||
}
|
||||
@@ -154,7 +159,7 @@ public class ItemTurret extends Turret{
|
||||
super.read(read, revision);
|
||||
int amount = read.ub();
|
||||
for(int i = 0; i < amount; i++){
|
||||
Item item = Vars.content.item(read.ub());
|
||||
Item item = Vars.content.item(revision < 2 ? read.ub() : read.s());
|
||||
short a = read.s();
|
||||
totalAmmo += a;
|
||||
ammo.add(new ItemEntry(item, a));
|
||||
|
||||
@@ -436,7 +436,7 @@ public abstract class Turret extends Block{
|
||||
public void read(Reads read, byte revision){
|
||||
super.read(read, revision);
|
||||
|
||||
if(revision == 1){
|
||||
if(revision >= 1){
|
||||
reload = read.f();
|
||||
rotation = read.f();
|
||||
}
|
||||
|
||||
@@ -87,16 +87,21 @@ public class LiquidSource extends Block{
|
||||
return source;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte version(){
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(Writes write){
|
||||
super.write(write);
|
||||
write.b(source == null ? -1 : source.id);
|
||||
write.s(source == null ? -1 : source.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(Reads read, byte revision){
|
||||
super.read(read, revision);
|
||||
byte id = read.b();
|
||||
int id = revision == 1 ? read.s() : read.b();
|
||||
source = id == -1 ? null : content.liquid(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,16 +107,21 @@ public class Unloader extends Block{
|
||||
return sortItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte version(){
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(Writes write){
|
||||
super.write(write);
|
||||
write.b(sortItem == null ? -1 : sortItem.id);
|
||||
write.s(sortItem == null ? -1 : sortItem.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(Reads read, byte revision){
|
||||
super.read(read, revision);
|
||||
byte id = read.b();
|
||||
int id = revision == 1 ? read.s() : read.b();
|
||||
sortItem = id == -1 ? null : content.items().get(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,5 +5,12 @@ import arc.util.io.*;
|
||||
/** A class that represents compartmentalized tile entity state. */
|
||||
public abstract class BlockModule{
|
||||
public abstract void write(Writes write);
|
||||
public abstract void read(Reads read);
|
||||
|
||||
public void read(Reads read, boolean legacy){
|
||||
read(read);
|
||||
}
|
||||
|
||||
public void read(Reads read){
|
||||
read(read, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,30 +276,30 @@ public class ItemModule extends BlockModule{
|
||||
|
||||
@Override
|
||||
public void write(Writes write){
|
||||
byte amount = 0;
|
||||
int amount = 0;
|
||||
for(int item : items){
|
||||
if(item > 0) amount++;
|
||||
}
|
||||
|
||||
write.b(amount); //amount of items
|
||||
write.s(amount); //amount of items
|
||||
|
||||
for(int i = 0; i < items.length; i++){
|
||||
if(items[i] > 0){
|
||||
write.b(i); //item ID
|
||||
write.s(i); //item ID
|
||||
write.i(items[i]); //item amount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(Reads read){
|
||||
public void read(Reads read, boolean legacy){
|
||||
//just in case, reset items
|
||||
Arrays.fill(items, 0);
|
||||
int count = read.ub();
|
||||
int count = legacy ? read.ub() : read.s();
|
||||
total = 0;
|
||||
|
||||
for(int j = 0; j < count; j++){
|
||||
int itemid = read.ub();
|
||||
int itemid = legacy ? read.ub() : read.s();
|
||||
int itemamount = read.i();
|
||||
items[content.item(itemid).id] = itemamount;
|
||||
total += itemamount;
|
||||
|
||||
@@ -114,29 +114,29 @@ public class LiquidModule extends BlockModule{
|
||||
|
||||
@Override
|
||||
public void write(Writes write){
|
||||
byte amount = 0;
|
||||
int amount = 0;
|
||||
for(float liquid : liquids){
|
||||
if(liquid > 0) amount++;
|
||||
}
|
||||
|
||||
write.b(amount); //amount of liquids
|
||||
write.s(amount); //amount of liquids
|
||||
|
||||
for(int i = 0; i < liquids.length; i++){
|
||||
if(liquids[i] > 0){
|
||||
write.b(i); //liquid ID
|
||||
write.f(liquids[i]); //item amount
|
||||
write.s(i); //liquid ID
|
||||
write.f(liquids[i]); //liquid amount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(Reads read){
|
||||
public void read(Reads read, boolean legacy){
|
||||
Arrays.fill(liquids, 0);
|
||||
total = 0f;
|
||||
int count = read.ub();
|
||||
int count = legacy ? read.ub() : read.s();
|
||||
|
||||
for(int j = 0; j < count; j++){
|
||||
int liquidid = read.ub();
|
||||
int liquidid = legacy ? read.ub() : read.s();
|
||||
float amount = read.f();
|
||||
liquids[liquidid] = amount;
|
||||
if(amount > 0){
|
||||
|
||||
Reference in New Issue
Block a user