Better deletion

-Makes new TestPlayerControls instance each time you enter a world
-Some dynamic sizing of chunk data within region files.
This commit is contained in:
opfromthestart 2021-08-05 12:29:29 -04:00
parent 0c66f1751e
commit 254faca0a5
4 changed files with 26 additions and 3 deletions

View File

@ -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 {

View File

@ -108,6 +108,8 @@ public class LayerButtonTest extends MenuLayer {
ServerState.getInstance().shutdown("Safe Exit");
ServerState.setInstance(null);
TestPlayerControls.resetInstance();
}
});

View File

@ -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()) {

View File

@ -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)