mirror of
https://github.com/boy0001/FastAsyncWorldedit.git
synced 2024-11-25 03:55:35 +01:00
CFI with dimensions
This commit is contained in:
parent
addfb8b0e5
commit
8afcc054f0
@ -24,6 +24,7 @@ import com.intellectualcrafters.plot.object.worlds.SinglePlotAreaManager;
|
|||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
import com.plotsquared.general.commands.Command;
|
import com.plotsquared.general.commands.Command;
|
||||||
import com.plotsquared.general.commands.CommandDeclaration;
|
import com.plotsquared.general.commands.CommandDeclaration;
|
||||||
|
import com.sk89q.worldedit.Vector2D;
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
import com.sk89q.worldedit.extension.input.InputParseException;
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
import com.sk89q.worldedit.extension.input.ParserContext;
|
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||||
@ -51,7 +52,7 @@ import javax.imageio.ImageIO;
|
|||||||
category = CommandCategory.APPEARANCE,
|
category = CommandCategory.APPEARANCE,
|
||||||
requiredType = RequiredType.NONE,
|
requiredType = RequiredType.NONE,
|
||||||
description = "Generate a world from an image",
|
description = "Generate a world from an image",
|
||||||
usage = "/plots cfi [url]"
|
usage = "/plots cfi [url or dimensions]"
|
||||||
)
|
)
|
||||||
public class CreateFromImage extends Command {
|
public class CreateFromImage extends Command {
|
||||||
private final WorldEdit we;
|
private final WorldEdit we;
|
||||||
@ -71,8 +72,12 @@ public class CreateFromImage extends Command {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
FawePlayer<Object> fp = FawePlayer.wrap(player.getName());
|
FawePlayer<Object> fp = FawePlayer.wrap(player.getName());
|
||||||
if (argList.get(0).toLowerCase().startsWith("http")) {
|
HeightMapMCAGenerator generator = player.getMeta("HMGenerator");
|
||||||
|
Plot plot = player.getMeta("HMGeneratorPlot");
|
||||||
|
if (generator == null) {
|
||||||
|
final Vector2D dimensions;
|
||||||
final BufferedImage image;
|
final BufferedImage image;
|
||||||
|
if (argList.get(0).toLowerCase().startsWith("http")) {
|
||||||
try {
|
try {
|
||||||
URL url = new URL(argList.get(0));
|
URL url = new URL(argList.get(0));
|
||||||
if (!url.getHost().equals("i.imgur.com")) {
|
if (!url.getHost().equals("i.imgur.com")) {
|
||||||
@ -85,6 +90,15 @@ public class CreateFromImage extends Command {
|
|||||||
player.sendMessage(e.getMessage());
|
player.sendMessage(e.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
dimensions = null;
|
||||||
|
} else {
|
||||||
|
image = null;
|
||||||
|
if (argList.size() != 2) {
|
||||||
|
C.COMMAND_SYNTAX.send(player, getUsage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dimensions = new Vector2D(Integer.parseInt(argList.get(0)), Integer.parseInt(argList.get(1)));
|
||||||
|
}
|
||||||
fp.runAction(new Runnable() {
|
fp.runAction(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -123,10 +137,16 @@ public class CreateFromImage extends Command {
|
|||||||
fp.sendMessage(BBC.getPrefix() + "/2 cfi addcaves");
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi addcaves");
|
||||||
fp.sendMessage(BBC.getPrefix() + "/2 cfi addore[s]");
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi addore[s]");
|
||||||
fp.sendMessage(BBC.getPrefix() + "/2 cfi addschems");
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi addschems");
|
||||||
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi setheight");
|
||||||
fp.sendMessage(BBC.getPrefix() + "/2 cfi done");
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi done");
|
||||||
fp.sendMessage(BBC.getPrefix() + "/2 cfi cancel");
|
fp.sendMessage(BBC.getPrefix() + "/2 cfi cancel");
|
||||||
File folder = new File(PS.imp().getWorldContainer(), plot.getWorldName() + File.separator + "region");
|
File folder = new File(PS.imp().getWorldContainer(), plot.getWorldName() + File.separator + "region");
|
||||||
HeightMapMCAGenerator generator = new HeightMapMCAGenerator(image, folder);
|
HeightMapMCAGenerator generator;
|
||||||
|
if (image != null) {
|
||||||
|
generator = new HeightMapMCAGenerator(image, folder);
|
||||||
|
} else {
|
||||||
|
generator = new HeightMapMCAGenerator(dimensions.getBlockX(), dimensions.getBlockZ(), folder);
|
||||||
|
}
|
||||||
player.setMeta("HMGenerator", generator);
|
player.setMeta("HMGenerator", generator);
|
||||||
player.setMeta("HMGeneratorPlot", plot);
|
player.setMeta("HMGeneratorPlot", plot);
|
||||||
}
|
}
|
||||||
@ -136,8 +156,6 @@ public class CreateFromImage extends Command {
|
|||||||
fp.runAction(new Runnable() {
|
fp.runAction(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
HeightMapMCAGenerator generator = player.getMeta("HMGenerator");
|
|
||||||
Plot plot = player.getMeta("HMGeneratorPlot");
|
|
||||||
if (generator == null) {
|
if (generator == null) {
|
||||||
C.COMMAND_SYNTAX.send(player, getUsage());
|
C.COMMAND_SYNTAX.send(player, getUsage());
|
||||||
return;
|
return;
|
||||||
@ -147,8 +165,8 @@ public class CreateFromImage extends Command {
|
|||||||
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <image or mask> <value> [white-only]");
|
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <image or mask> <value> [white-only]");
|
||||||
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <value>");
|
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <value>");
|
||||||
return;
|
return;
|
||||||
} else if (!StringMan.isEqualIgnoreCaseToAny(argList.get(0), "done", "cancel", "addcaves", "addore", "addores", "addschems")) {
|
} else if (!StringMan.isEqualIgnoreCaseToAny(argList.get(0), "done", "cancel", "addcaves", "addore", "addores", "addschems", "setheight")) {
|
||||||
C.COMMAND_SYNTAX.send(player, "/2 cfi <setbiome|setoverlay|setmain|setfloor|setcolumn|done|cancel|addcaves|addore[s]|addschems>");
|
C.COMMAND_SYNTAX.send(player, "/2 cfi <setbiome|setoverlay|setmain|setfloor|setcolumn|done|cancel|addcaves|addore[s]|addschems|setheight>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,6 +196,21 @@ public class CreateFromImage extends Command {
|
|||||||
player.sendMessage(BBC.getPrefix() + "Added schems, what's next?");
|
player.sendMessage(BBC.getPrefix() + "Added schems, what's next?");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
case "setheight": {
|
||||||
|
if (argList.size() != 2) {
|
||||||
|
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <height>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (argList.get(1).startsWith("http")) {
|
||||||
|
player.sendMessage("Loading image (3)...");
|
||||||
|
BufferedImage image = getImgurImage(argList.get(1), fp);
|
||||||
|
generator.setHeight(image);
|
||||||
|
} else {
|
||||||
|
generator.setHeights(Integer.parseInt(args[1]));
|
||||||
|
}
|
||||||
|
player.sendMessage("Set height, what's next?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
case "addores":
|
case "addores":
|
||||||
if (argList.size() != 2) {
|
if (argList.size() != 2) {
|
||||||
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <mask>");
|
C.COMMAND_SYNTAX.send(player, "/2 cfi " + argList.get(0) + " <mask>");
|
||||||
|
@ -175,11 +175,11 @@ public interface Extent extends InputExtent, OutputExtent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
default public void addOres(Region region, Mask mask) throws WorldEditException {
|
default public void addOres(Region region, Mask mask) throws WorldEditException {
|
||||||
addOre(region, mask, new BlockPattern(BlockID.DIRT), 20, 4, 100, 0, 255);
|
addOre(region, mask, new BlockPattern(BlockID.DIRT), 30, 4, 100, 0, 255);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.GRAVEL), 20, 2, 100, 0, 255);
|
addOre(region, mask, new BlockPattern(BlockID.GRAVEL), 30, 2, 100, 0, 255);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.STONE, 1), 20, 4, 100, 0, 79);
|
addOre(region, mask, new BlockPattern(BlockID.STONE, 1), 30, 4, 100, 0, 79);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.STONE, 3), 20, 4, 100, 0, 79);
|
addOre(region, mask, new BlockPattern(BlockID.STONE, 3), 30, 4, 100, 0, 79);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.STONE, 5), 20, 4, 100, 0, 79);
|
addOre(region, mask, new BlockPattern(BlockID.STONE, 5), 30, 4, 100, 0, 79);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.COAL_ORE), 17, 20, 100, 0, 127);
|
addOre(region, mask, new BlockPattern(BlockID.COAL_ORE), 17, 20, 100, 0, 127);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.IRON_ORE), 9, 20, 100, 0, 63);
|
addOre(region, mask, new BlockPattern(BlockID.IRON_ORE), 9, 20, 100, 0, 63);
|
||||||
addOre(region, mask, new BlockPattern(BlockID.GOLD_ORE), 9, 2, 100, 0, 31);
|
addOre(region, mask, new BlockPattern(BlockID.GOLD_ORE), 9, 2, 100, 0, 31);
|
||||||
|
Loading…
Reference in New Issue
Block a user