diff --git a/src/main/java/ru/windcorp/progressia/client/ClientProxy.java b/src/main/java/ru/windcorp/progressia/client/ClientProxy.java index 402c5e8..cd75d42 100644 --- a/src/main/java/ru/windcorp/progressia/client/ClientProxy.java +++ b/src/main/java/ru/windcorp/progressia/client/ClientProxy.java @@ -33,6 +33,7 @@ import ru.windcorp.progressia.common.util.crash.CrashReports; import ru.windcorp.progressia.server.ServerState; import ru.windcorp.progressia.test.TestContent; import ru.windcorp.progressia.test.TestMusicPlayer; +import ru.windcorp.progressia.test.TestPlayerControls; public class ClientProxy implements Proxy { diff --git a/src/main/java/ru/windcorp/progressia/test/LayerButtonTest.java b/src/main/java/ru/windcorp/progressia/test/LayerButtonTest.java index c6e5d00..6f829da 100644 --- a/src/main/java/ru/windcorp/progressia/test/LayerButtonTest.java +++ b/src/main/java/ru/windcorp/progressia/test/LayerButtonTest.java @@ -108,6 +108,8 @@ public class LayerButtonTest extends MenuLayer { ServerState.getInstance().shutdown("Safe Exit"); ServerState.setInstance(null); + + TestPlayerControls.resetInstance(); } }); diff --git a/src/main/java/ru/windcorp/progressia/test/TestPlayerControls.java b/src/main/java/ru/windcorp/progressia/test/TestPlayerControls.java index 80e2146..960a97e 100644 --- a/src/main/java/ru/windcorp/progressia/test/TestPlayerControls.java +++ b/src/main/java/ru/windcorp/progressia/test/TestPlayerControls.java @@ -44,7 +44,7 @@ import ru.windcorp.progressia.server.ServerState; public class TestPlayerControls { - private static final TestPlayerControls INSTANCE = new TestPlayerControls(); + private static TestPlayerControls INSTANCE = new TestPlayerControls(); public static TestPlayerControls getInstance() { return INSTANCE; @@ -90,6 +90,11 @@ public class TestPlayerControls { private LayerTestGUI debugLayer = null; private Runnable updateCallback = null; + + public static void resetInstance() + { + INSTANCE = new TestPlayerControls(); + } public void applyPlayerControls() { if (ClientState.getInstance() == null || !ClientState.getInstance().isReady()) { diff --git a/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java b/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java index e8b53e9..897ee83 100644 --- a/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java +++ b/src/main/java/ru/windcorp/progressia/test/TestWorldDiskIO.java @@ -39,6 +39,8 @@ import java.util.zip.InflaterInputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import com.google.common.io.CountingOutputStream; + import glm.vec._3.i.Vec3i; import ru.windcorp.progressia.common.state.IOContext; import ru.windcorp.progressia.common.world.ChunkData; @@ -231,15 +233,28 @@ public class TestWorldDiskIO { offset = (int) (output.length()-fullOffset)/sectorSize; output.seek(shortOffset); output.writeInt(offset); - output.write(200); + //output.write(200); } output.seek(fullOffset+sectorSize*offset); + + int bytestoWrite = output.readInt(); //output.mark(sectorSize*sectorLength); - DataOutputStream trueOutput = new DataOutputStream(Channels.newOutputStream(output.getChannel())); + DataOutputStream trueOutput = new DataOutputStream(Channels.newOutputStream(output.getChannel())); + CountingOutputStream countOutput = new CountingOutputStream(trueOutput); + //trueOutput. ChunkIO.save(chunk, trueOutput, IOContext.SAVE); writeGenerationHint(chunk, trueOutput, server); + + while (countOutput.getCount()%sectorSize != 0) { + countOutput.write(0); + } + + output.seek(shortOffset+offsetBytes); + output.write((int) countOutput.getCount()/sectorSize); + + countOutput.close(); } } // else if (currentFormat)