diff options
author | Detrav <witalyezep@gmail.com> | 2016-03-25 02:38:40 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-03-25 02:38:40 +0300 |
commit | ba0c87e808d6757d99cb2cc54f7a9f12b1374ecb (patch) | |
tree | c0bfcadad12615c9ac6634eb36f33941d320af51 /src | |
parent | 71926744c75fc4b40c1a084f79187b00baa3e74b (diff) | |
download | GT5-Unofficial-ba0c87e808d6757d99cb2cc54f7a9f12b1374ecb.tar.gz GT5-Unofficial-ba0c87e808d6757d99cb2cc54f7a9f12b1374ecb.tar.bz2 GT5-Unofficial-ba0c87e808d6757d99cb2cc54f7a9f12b1374ecb.zip |
Add biome scanner
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/detrav/DetravScannerMod.java | 2 | ||||
-rw-r--r-- | src/main/java/com/detrav/commands/DetravBiomeScannerCommand.java | 112 |
2 files changed, 114 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java index f51fcdd333..62a21a6609 100644 --- a/src/main/java/com/detrav/DetravScannerMod.java +++ b/src/main/java/com/detrav/DetravScannerMod.java @@ -1,5 +1,6 @@ package com.detrav; +import com.detrav.commands.DetravBiomeScannerCommand; import com.detrav.proxies.CommonProxy; import com.detrav.utils.DetravCreativeTab; import com.detrav.net.DetravNetwork; @@ -58,5 +59,6 @@ public class DetravScannerMod public void serverLoad(FMLServerStartingEvent event) { //event.registerServerCommand(new DetravScannerCommand()); + event.registerServerCommand(new DetravBiomeScannerCommand()); } } diff --git a/src/main/java/com/detrav/commands/DetravBiomeScannerCommand.java b/src/main/java/com/detrav/commands/DetravBiomeScannerCommand.java new file mode 100644 index 0000000000..eb0e01a2a7 --- /dev/null +++ b/src/main/java/com/detrav/commands/DetravBiomeScannerCommand.java @@ -0,0 +1,112 @@ +package com.detrav.commands; + +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import scala.Int; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.awt.image.WritableRaster; +import java.io.File; +import java.io.FileWriter; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Dictionary; +import java.util.HashMap; +import java.util.List; + +/** + * Created by wital_000 on 25.03.2016. + */ +public class DetravBiomeScannerCommand implements ICommand { + private List aliases; + + public DetravBiomeScannerCommand() + { + this.aliases = new ArrayList<String>(); + this.aliases.add("DetravBiomeScanner"); + this.aliases.add("dbscan"); + } + + @Override + public String getCommandName() { + return "DetravBiomeScanner"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "DetravBiomeScanner radius"; + } + + @Override + public List getCommandAliases() { + return this.aliases; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + try { + if(args.length==1) { + int aXaZ = Integer.parseInt(args[0]); + int step = aXaZ * 2 / 512; + if (step < 1) step = 1; + World w = sender.getEntityWorld(); + ChunkCoordinates cor = sender.getPlayerCoordinates(); + BufferedImage image = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB); + WritableRaster r = image.getRaster(); + HashMap<String, Integer> colors = new HashMap<String, Integer>(); + for (int i = cor.posX - aXaZ, ii = 0; ii < 512; i += step, ii++) + for (int j = cor.posZ - aXaZ, jj = 0; jj < 512; j += step, jj++) { + BiomeGenBase biome = w.getBiomeGenForCoords(i, j); + r.setSample(ii, jj, 0, biome.color & 0xFF); + r.setSample(ii, jj, 1, (biome.color >> 8) & 0xFF); + r.setSample(ii, jj, 2, (biome.color >> 16) & 0xFF); + r.setSample(ii, jj, 3, 0xFF); + if (!colors.containsKey(biome.biomeName)) + colors.put(biome.biomeName, biome.color); + } + File outfile = new File("biomes.png"); + ImageIO.write(image, "png", outfile); + File outfileTxt = new File("biomes.txt"); + PrintWriter fw = new PrintWriter(outfileTxt); + for (String key : colors.keySet()) { + fw.println(String.format("Biome: %s , Color: %d", key, colors.get(key))); + } + fw.println(String.format("From (%d,%d) to (%d,%d)", cor.posX - aXaZ, cor.posZ - aXaZ, cor.posX - aXaZ + step * 512, cor.posZ - aXaZ + step * 512)); + fw.flush(); + fw.close(); + return; + } + } + catch (Exception e) + { + sender.addChatMessage(new ChatComponentText("catch ERROR")); + return; + } + sender.addChatMessage(new ChatComponentText("ERROR")); + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) { + return true; + } + + @Override + public List addTabCompletionOptions(ICommandSender p_71516_1_, String[] p_71516_2_) { + return null; + } + + @Override + public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) { + return false; + } + + @Override + public int compareTo(Object o) { + return 0; + } +} |