Attempts at fixing desync for blocks
This commit is contained in:
@@ -158,13 +158,16 @@ public class NetClient extends Module {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Net.handle(StateSyncPacket.class, packet -> {
|
Net.handle(StateSyncPacket.class, packet -> {
|
||||||
System.arraycopy(packet.items, 0, Vars.control.items, 0, packet.items.length);
|
Gdx.app.postRunnable(() -> {
|
||||||
|
|
||||||
Vars.control.setWaveData(packet.enemies, packet.wave, packet.countdown);
|
System.arraycopy(packet.items, 0, Vars.control.items, 0, packet.items.length);
|
||||||
|
|
||||||
Timers.resetTime(packet.time + (float)(TimeUtils.timeSinceMillis(packet.timestamp) / 1000.0 * 60.0));
|
Vars.control.setWaveData(packet.enemies, packet.wave, packet.countdown);
|
||||||
|
|
||||||
Gdx.app.postRunnable(Vars.ui.hudfrag::updateItems);
|
Timers.resetTime(packet.time + (float) (TimeUtils.timeSinceMillis(packet.timestamp) / 1000.0 * 60.0));
|
||||||
|
|
||||||
|
Gdx.app.postRunnable(Vars.ui.hudfrag::updateItems);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Net.handle(EnemySpawnPacket.class, spawn -> {
|
Net.handle(EnemySpawnPacket.class, spawn -> {
|
||||||
@@ -226,6 +229,9 @@ public class NetClient extends Module {
|
|||||||
|
|
||||||
Gdx.app.postRunnable(() -> {
|
Gdx.app.postRunnable(() -> {
|
||||||
try {
|
try {
|
||||||
|
long timestamp = stream.readLong();
|
||||||
|
float elapsed = TimeUtils.timeSinceMillis(timestamp) / 1000f * 60f;
|
||||||
|
|
||||||
while (stream.available() > 0) {
|
while (stream.available() > 0) {
|
||||||
int pos = stream.readInt();
|
int pos = stream.readInt();
|
||||||
|
|
||||||
@@ -235,7 +241,7 @@ public class NetClient extends Module {
|
|||||||
byte times = stream.readByte();
|
byte times = stream.readByte();
|
||||||
|
|
||||||
for (int i = 0; i < times; i++) {
|
for (int i = 0; i < times; i++) {
|
||||||
tile.entity.timer.getTimes()[i] = stream.readFloat();
|
tile.entity.timer.getTimes()[i] = stream.readFloat() + elapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
tile.entity.read(stream);
|
tile.entity.read(stream);
|
||||||
|
|||||||
@@ -336,6 +336,8 @@ public class NetServer extends Module{
|
|||||||
try {
|
try {
|
||||||
DataOutputStream stream = new DataOutputStream(bs);
|
DataOutputStream stream = new DataOutputStream(bs);
|
||||||
|
|
||||||
|
stream.writeLong(TimeUtils.millis());
|
||||||
|
|
||||||
for (int rx = -viewx / 2; rx <= viewx / 2; rx++) {
|
for (int rx = -viewx / 2; rx <= viewx / 2; rx++) {
|
||||||
for (int ry = -viewy / 2; ry <= viewy / 2; ry++) {
|
for (int ry = -viewy / 2; ry <= viewy / 2; ry++) {
|
||||||
Tile tile = Vars.world.tile(x + rx, y + ry);
|
Tile tile = Vars.world.tile(x + rx, y + ry);
|
||||||
|
|||||||
@@ -137,8 +137,7 @@ public class JoinDialog extends FloatingDialog {
|
|||||||
server.content.add("[lightgray]" + Bundles.format("text.server.hostname", host.name)).pad(4);
|
server.content.add("[lightgray]" + Bundles.format("text.server.hostname", host.name)).pad(4);
|
||||||
server.content.row();
|
server.content.row();
|
||||||
server.content.add("[lightgray]" + (host.players != 1 ? Bundles.format("text.players", host.players) :
|
server.content.add("[lightgray]" + (host.players != 1 ? Bundles.format("text.players", host.players) :
|
||||||
Bundles.format("text.players.single", host.players))).left();
|
Bundles.format("text.players.single", host.players)));
|
||||||
|
|
||||||
}, e -> {
|
}, e -> {
|
||||||
server.content.clear();
|
server.content.clear();
|
||||||
server.content.add("$text.host.invalid");
|
server.content.add("$text.host.invalid");
|
||||||
@@ -179,7 +178,7 @@ public class JoinDialog extends FloatingDialog {
|
|||||||
content().row();
|
content().row();
|
||||||
content().add(pane).width(w).pad(0);
|
content().add(pane).width(w).pad(0);
|
||||||
content().row();
|
content().row();
|
||||||
content().addButton("$text.server.add", "clear", () -> {
|
content().addCenteredImageTextButton("$text.server.add", "icon-add", "clear", 14*3, () -> {
|
||||||
renaming = null;
|
renaming = null;
|
||||||
join.show();
|
join.show();
|
||||||
}).width(w).height(80f);
|
}).width(w).height(80f);
|
||||||
|
|||||||
Reference in New Issue
Block a user