Experimental sync changes

This commit is contained in:
Anuken
2018-02-12 18:10:14 -05:00
parent 86a4ff971c
commit 4d54e5c0e1
10 changed files with 62 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
#Autogenerated file. Do not modify. #Autogenerated file. Do not modify.
#Mon Feb 12 16:05:35 EST 2018 #Mon Feb 12 17:32:19 EST 2018
version=beta version=beta
androidBuildCode=177 androidBuildCode=177
name=Mindustry name=Mindustry

View File

@@ -284,7 +284,7 @@ public class NetClient extends Module {
Tile tile = world.tile(packet.position); Tile tile = world.tile(packet.position);
if (tile == null || tile.entity == null) return; if (tile == null || tile.entity == null) return;
Tile next = tile.getNearby(packet.rotation); Tile next = tile.getNearby(packet.rotation);
tile.entity.items[packet.itemid]--; tile.entity.items[packet.itemid] --;
next.block().handleItem(Item.getByID(packet.itemid), next, tile); next.block().handleItem(Item.getByID(packet.itemid), next, tile);
}; };
@@ -294,6 +294,20 @@ public class NetClient extends Module {
r.run(); r.run();
} }
}); });
Net.handleClient(ItemAddPacket.class, packet -> {
Runnable r = () -> {
Tile tile = world.tile(packet.position);
if (tile == null || tile.entity == null) return;
tile.entity.items[packet.itemid] ++;
};
if(threads.isEnabled()){
threads.run(r);
}else{
r.run();
}
});
} }
@Override @Override

View File

@@ -152,7 +152,7 @@ public class Renderer extends RendererModule{
camera.position.set(lastx - deltax, lasty - deltay, 0); camera.position.set(lastx - deltax, lasty - deltay, 0);
if(debug) record(); //this only does something if GdxGifRecorder is on the class path, which it usually isn't if(debug && ui.chatfrag.chatOpen()) record(); //this only does something if GdxGifRecorder is on the class path, which it usually isn't
} }
} }

View File

@@ -137,4 +137,11 @@ public class NetEvents {
packet.itemid = (byte)item.id; packet.itemid = (byte)item.id;
Net.send(packet, SendMode.udp); Net.send(packet, SendMode.udp);
} }
public static void handleItemAdd(Tile tile, Item item){
ItemAddPacket packet = new ItemAddPacket();
packet.position = tile.packedPosition();
packet.itemid = (byte)item.id;
Net.send(packet, SendMode.udp);
}
} }

View File

@@ -522,4 +522,21 @@ public class Packets {
itemid = buffer.get(); itemid = buffer.get();
} }
} }
public static class ItemAddPacket implements Packet{
public int position;
public byte itemid;
@Override
public void write(ByteBuffer buffer) {
buffer.putInt(position);
buffer.put(itemid);
}
@Override
public void read(ByteBuffer buffer) {
position = buffer.getInt();
itemid = buffer.get();
}
}
} }

View File

@@ -38,7 +38,8 @@ public class Registrator {
CustomMapPacket.class, CustomMapPacket.class,
MapAckPacket.class, MapAckPacket.class,
EntitySpawnPacket.class, EntitySpawnPacket.class,
ItemTransferPacket.class ItemTransferPacket.class,
ItemAddPacket.class,
}; };
private static ObjectIntMap<Class<?>> ids = new ObjectIntMap<>(); private static ObjectIntMap<Class<?>> ids = new ObjectIntMap<>();

View File

@@ -150,7 +150,12 @@ public class Block{
public void handleItem(Item item, Tile tile, Tile source){ public void handleItem(Item item, Tile tile, Tile source){
if(tile.entity == null) return; if(tile.entity == null) return;
tile.entity.addItem(item, 1);
if(Net.server() || !Net.active()){
tile.entity.addItem(item, 1);
if(Net.server()) NetEvents.handleItemAdd(tile, item);
}
} }
public boolean acceptItem(Item item, Tile tile, Tile source){ public boolean acceptItem(Item item, Tile tile, Tile source){

View File

@@ -48,7 +48,7 @@ public class Router extends Block{
@Override @Override
public void handleItem(Item item, Tile tile, Tile source){ public void handleItem(Item item, Tile tile, Tile source){
super.handleItem(item, tile, source); super.handleItem(item, tile, source);
tile.setExtra((byte)tile.relativeTo(source.x, source.y)); tile.setExtra(tile.relativeTo(source.x, source.y));
} }
@Override @Override

View File

@@ -4,11 +4,13 @@ import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet; import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetEvents;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.PowerBlock; import io.anuke.mindustry.world.blocks.types.PowerBlock;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ImageButton; import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Table;
@@ -133,8 +135,13 @@ public class Teleporter extends PowerBlock{
Array<Tile> links = findLinks(tile); Array<Tile> links = findLinks(tile);
if(links.size > 0){ if(links.size > 0){
Tile target = links.get(Mathf.random(0, links.size-1));
target.entity.addItem(item, 1); if(Net.server() || !Net.active()){
Tile target = links.random();
target.entity.addItem(item, 1);
if(Net.server()) NetEvents.handleItemAdd(target, item);
}
} }
entity.power -= powerPerItem; entity.power -= powerPerItem;
@@ -170,6 +177,7 @@ public class Teleporter extends PowerBlock{
} }
} }
} }
for(Tile remove : removal) for(Tile remove : removal)
teleporters[entity.color].remove(remove); teleporters[entity.color].remove(remove);

View File

@@ -188,7 +188,7 @@ public class ServerControl extends Module {
return; return;
} }
netCommon.sendMessage("[DARK_GRAY][[Server]:[] " + arg[0]); netCommon.sendMessage("[GRAY][[Server]:[] " + arg[0]);
info("&lyServer: &lb{0}", arg[0]); info("&lyServer: &lb{0}", arg[0]);
}).mergeArgs(); }).mergeArgs();