This commit is contained in:
parent
2f57bc6a97
commit
9c6a779ef8
3 changed files with 53 additions and 1 deletions
|
@ -1,7 +1,11 @@
|
||||||
package net.pietru.cookie_utils.api;
|
package net.pietru.cookie_utils.api;
|
||||||
|
|
||||||
import com.badlogic.gdx.math.Vector3;
|
import com.badlogic.gdx.math.Vector3;
|
||||||
|
import com.badlogic.gdx.utils.Json;
|
||||||
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
import finalforeach.cosmicreach.GameSingletons;
|
import finalforeach.cosmicreach.GameSingletons;
|
||||||
|
import finalforeach.cosmicreach.ZoneLoader;
|
||||||
|
import finalforeach.cosmicreach.ZoneLoaders;
|
||||||
import finalforeach.cosmicreach.accounts.Account;
|
import finalforeach.cosmicreach.accounts.Account;
|
||||||
import finalforeach.cosmicreach.entities.player.Player;
|
import finalforeach.cosmicreach.entities.player.Player;
|
||||||
import finalforeach.cosmicreach.io.SaveLocation;
|
import finalforeach.cosmicreach.io.SaveLocation;
|
||||||
|
@ -9,6 +13,7 @@ import finalforeach.cosmicreach.networking.NetworkIdentity;
|
||||||
import finalforeach.cosmicreach.networking.packets.MessagePacket;
|
import finalforeach.cosmicreach.networking.packets.MessagePacket;
|
||||||
import finalforeach.cosmicreach.networking.server.ServerSingletons;
|
import finalforeach.cosmicreach.networking.server.ServerSingletons;
|
||||||
import finalforeach.cosmicreach.savelib.utils.TriConsumer;
|
import finalforeach.cosmicreach.savelib.utils.TriConsumer;
|
||||||
|
import finalforeach.cosmicreach.world.IZoneLoader;
|
||||||
import finalforeach.cosmicreach.world.Zone;
|
import finalforeach.cosmicreach.world.Zone;
|
||||||
import finalforeach.cosmicreach.worldgen.ZoneGenerator;
|
import finalforeach.cosmicreach.worldgen.ZoneGenerator;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
@ -16,7 +21,9 @@ import net.pietru.cookie_utils.permissions.GroupPerms;
|
||||||
import net.pietru.cookie_utils.permissions.Permissions;
|
import net.pietru.cookie_utils.permissions.Permissions;
|
||||||
import net.pietru.cookie_utils.setups.Setup;
|
import net.pietru.cookie_utils.setups.Setup;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -345,5 +352,31 @@ public class TextCommands {
|
||||||
MessagePacket packet = new MessagePacket("Reloaded: "+reloaded_funcs);
|
MessagePacket packet = new MessagePacket("Reloaded: "+reloaded_funcs);
|
||||||
packet.setupAndSend(channelHandlerContext);
|
packet.setupAndSend(channelHandlerContext);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
commands.put("dump",(args, networkIdentity, channelHandlerContext) -> {
|
||||||
|
File dumps_folder = new File(SaveLocation.getSaveFolder(),"dumps");
|
||||||
|
if (!dumps_folder.exists())
|
||||||
|
dumps_folder.mkdirs();
|
||||||
|
List<String> arg_list = Arrays.stream(args).toList();
|
||||||
|
String reloaded_funcs = "";
|
||||||
|
if (arg_list.contains("zones") || args.length==1) {
|
||||||
|
int i = 0;
|
||||||
|
for(IZoneLoader z : ZoneLoaders.INSTANCE.getAllZoneLoaders()) {
|
||||||
|
File dump_file = new File(get_path_string(SaveLocation.getSaveFolder().getPath(), "dumps", "zone_"+String.valueOf(i++)+".json"));
|
||||||
|
try {
|
||||||
|
Json json = new Json();
|
||||||
|
json.setOutputType(JsonWriter.OutputType.json);
|
||||||
|
BufferedWriter writer = new BufferedWriter(new FileWriter(dump_file.getPath()));
|
||||||
|
writer.write(json.prettyPrint(z));
|
||||||
|
writer.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reloaded_funcs+="zones ";
|
||||||
|
}
|
||||||
|
MessagePacket packet = new MessagePacket("Dumped: "+reloaded_funcs);
|
||||||
|
packet.setupAndSend(channelHandlerContext);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,6 @@ public class MessagePacketMixin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
message=message.replace("\n","");
|
//message=message.replace("\n","");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package net.pietru.cookie_utils.mixins;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import com.badlogic.gdx.utils.Queue;
|
||||||
|
import finalforeach.cosmicreach.ZoneLoader;
|
||||||
|
import finalforeach.cosmicreach.util.Point3DMap;
|
||||||
|
import finalforeach.cosmicreach.worldgen.ChunkColumn;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@Mixin(ZoneLoader.class)
|
||||||
|
public class ZoneLoaderMixin {
|
||||||
|
@Shadow
|
||||||
|
public Point3DMap<ChunkColumn> loadedChunkColumns = new Point3DMap();
|
||||||
|
@Shadow
|
||||||
|
public Queue<ChunkColumn> chunkColumnsToGenerate = new Queue(16, ChunkColumn.class);
|
||||||
|
@Shadow
|
||||||
|
public Array<ChunkColumn> chunkColumnsToRemove = new Array(false, 16, ChunkColumn.class);
|
||||||
|
}
|
Loading…
Reference in a new issue