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.server.ServerState;
import ru.windcorp.progressia.test.TestContent; import ru.windcorp.progressia.test.TestContent;
import ru.windcorp.progressia.test.TestMusicPlayer; import ru.windcorp.progressia.test.TestMusicPlayer;
import ru.windcorp.progressia.test.TestPlayerControls;
public class ClientProxy implements Proxy { public class ClientProxy implements Proxy {

View File

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

View File

@ -44,7 +44,7 @@ import ru.windcorp.progressia.server.ServerState;
public class TestPlayerControls { public class TestPlayerControls {
private static final TestPlayerControls INSTANCE = new TestPlayerControls(); private static TestPlayerControls INSTANCE = new TestPlayerControls();
public static TestPlayerControls getInstance() { public static TestPlayerControls getInstance() {
return INSTANCE; return INSTANCE;
@ -90,6 +90,11 @@ public class TestPlayerControls {
private LayerTestGUI debugLayer = null; private LayerTestGUI debugLayer = null;
private Runnable updateCallback = null; private Runnable updateCallback = null;
public static void resetInstance()
{
INSTANCE = new TestPlayerControls();
}
public void applyPlayerControls() { public void applyPlayerControls() {
if (ClientState.getInstance() == null || !ClientState.getInstance().isReady()) { 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.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import com.google.common.io.CountingOutputStream;
import glm.vec._3.i.Vec3i; import glm.vec._3.i.Vec3i;
import ru.windcorp.progressia.common.state.IOContext; import ru.windcorp.progressia.common.state.IOContext;
import ru.windcorp.progressia.common.world.ChunkData; import ru.windcorp.progressia.common.world.ChunkData;
@ -231,15 +233,28 @@ public class TestWorldDiskIO {
offset = (int) (output.length()-fullOffset)/sectorSize; offset = (int) (output.length()-fullOffset)/sectorSize;
output.seek(shortOffset); output.seek(shortOffset);
output.writeInt(offset); output.writeInt(offset);
output.write(200); //output.write(200);
} }
output.seek(fullOffset+sectorSize*offset); output.seek(fullOffset+sectorSize*offset);
int bytestoWrite = output.readInt();
//output.mark(sectorSize*sectorLength); //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); ChunkIO.save(chunk, trueOutput, IOContext.SAVE);
writeGenerationHint(chunk, trueOutput, server); 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) // else if (currentFormat)