mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-30 20:39:21 +00:00
Schema system
This commit is contained in:
@@ -72,7 +72,7 @@ public class CommandIrisGoto extends MortarCommand
|
||||
}
|
||||
}
|
||||
|
||||
IrisBiome biome = g.loadBiome(args[0]);
|
||||
IrisBiome biome = args[0].equals("this") ? g.sampleTrueBiome(p.getLocation().getBlockX(), p.getLocation().getBlockZ()).getBiome() : g.loadBiome(args[0]);
|
||||
|
||||
if(biome == null)
|
||||
{
|
||||
|
||||
@@ -31,6 +31,13 @@ public class CommandIrisObjectSave extends MortarCommand
|
||||
return true;
|
||||
}
|
||||
|
||||
if(args.length < 2)
|
||||
{
|
||||
sender.sendMessage("/iris o save <PROJECT> <object>");
|
||||
sender.sendMessage("I.e. /iris o save overworld some-tree/tree1");
|
||||
return true;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
boolean overwrite = false;
|
||||
|
||||
@@ -40,95 +40,7 @@ public class CommandIrisStudioCreate extends MortarCommand
|
||||
return true;
|
||||
}
|
||||
|
||||
IrisDimension dimension = new IrisDimension();
|
||||
dimension.setLoadKey(args[0]);
|
||||
dimension.setName(Form.capitalizeWords(args[0].replaceAll("\\Q-\\E", " ")));
|
||||
|
||||
if(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "dimensions", dimension.getLoadKey() + ".json").exists())
|
||||
{
|
||||
sender.sendMessage("Project Already Exists! Open it instead!");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("Creating New Project \"" + dimension.getName() + "\"...");
|
||||
IrisRegion exampleRegion = new IrisRegion();
|
||||
exampleRegion.setName("Example Region");
|
||||
exampleRegion.setLoadKey("example-region");
|
||||
IrisBiome exampleLand1 = new IrisBiome();
|
||||
exampleLand1.setName("Example Land 1");
|
||||
exampleLand1.setLoadKey("land-1");
|
||||
IrisBiome exampleShore1 = new IrisBiome();
|
||||
exampleShore1.setName("Example Shore");
|
||||
exampleShore1.setLoadKey("shore");
|
||||
IrisBiome exampleOcean1 = new IrisBiome();
|
||||
exampleOcean1.setName("Example Sea");
|
||||
exampleOcean1.setLoadKey("sea");
|
||||
IrisBiome exampleLand2 = new IrisBiome();
|
||||
exampleLand2.setName("Example Land 2");
|
||||
exampleLand2.setLoadKey("land-2");
|
||||
exampleLand2.setRarity(4);
|
||||
dimension.setSeaZoom(1);
|
||||
dimension.setLandZoom(1.5);
|
||||
IrisGenerator gen = new IrisGenerator();
|
||||
IrisNoiseGenerator gg = new IrisNoiseGenerator(true);
|
||||
gen.setInterpolationFunction(InterpolationMethod.HERMITE);
|
||||
gen.setInterpolationScale(185);
|
||||
gen.getComposite().add(gg);
|
||||
gen.setLoadKey("example-generator");
|
||||
IrisBiomeGeneratorLink b1 = new IrisBiomeGeneratorLink();
|
||||
b1.setGenerator(gen.getLoadKey());
|
||||
b1.setMin(3);
|
||||
b1.setMax(7);
|
||||
IrisBiomeGeneratorLink b2 = new IrisBiomeGeneratorLink();
|
||||
b2.setGenerator(gen.getLoadKey());
|
||||
b2.setMin(12);
|
||||
b2.setMax(35);
|
||||
IrisBiomeGeneratorLink b3 = new IrisBiomeGeneratorLink();
|
||||
b3.setGenerator(gen.getLoadKey());
|
||||
b3.setMin(-1);
|
||||
b3.setMax(1);
|
||||
IrisBiomeGeneratorLink b4 = new IrisBiomeGeneratorLink();
|
||||
b4.setGenerator(gen.getLoadKey());
|
||||
b4.setMin(-5);
|
||||
b4.setMax(-38);
|
||||
exampleLand2.getLayers().get(0).getPalette().clear();
|
||||
exampleLand2.getLayers().get(0).getPalette().add("RED_SAND");
|
||||
exampleShore1.getLayers().get(0).getPalette().clear();
|
||||
exampleShore1.getLayers().get(0).getPalette().add("SAND");
|
||||
exampleOcean1.getLayers().get(0).getPalette().clear();
|
||||
exampleOcean1.getLayers().get(0).getPalette().add("SAND");
|
||||
exampleLand1.getGenerators().clear();
|
||||
exampleLand1.getGenerators().add(b1);
|
||||
exampleLand2.getGenerators().clear();
|
||||
exampleLand2.getGenerators().add(b2);
|
||||
exampleShore1.getGenerators().clear();
|
||||
exampleShore1.getGenerators().add(b3);
|
||||
exampleOcean1.getGenerators().clear();
|
||||
exampleOcean1.getGenerators().add(b4);
|
||||
exampleRegion.getLandBiomes().add(exampleLand1.getLoadKey());
|
||||
exampleRegion.getLandBiomes().add(exampleLand2.getLoadKey());
|
||||
exampleRegion.getShoreBiomes().add(exampleShore1.getLoadKey());
|
||||
exampleRegion.getSeaBiomes().add(exampleOcean1.getLoadKey());
|
||||
dimension.getRegions().add(exampleRegion.getLoadKey());
|
||||
|
||||
try
|
||||
{
|
||||
String g = "{\"folders\": [{\"path\": \".\"}],\"settings\": {\"workbench.colorTheme\": \"Monokai\",\"workbench.preferredHighContrastColorTheme\": \"Solarized Dark\",\"workbench.preferredDarkColorTheme\": \"Solarized Dark\",\"workbench.statusBar.visible\": false,\"workbench.tips.enabled\": false,\"workbench.tree.indent\": 24,\"files.autoSave\": \"onFocusChange\"}}";
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "dimensions", dimension.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(dimension)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "regions", exampleRegion.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleRegion)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "biomes", exampleLand1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleLand1)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "biomes", exampleLand2.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleLand2)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "biomes", exampleShore1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleShore1)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "biomes", exampleOcean1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleOcean1)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "generators", gen.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(gen)).toString(4));
|
||||
IO.writeAll(Iris.instance.getDataFile("packs", dimension.getLoadKey(), dimension.getLoadKey() + ".code-workspace"), new JSONObject(g).toString(4));
|
||||
Iris.proj.open(sender, dimension.getName());
|
||||
}
|
||||
|
||||
catch(JSONException | IOException e)
|
||||
{
|
||||
sender.sendMessage("Failed! Check the console.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
Iris.proj.create(sender, args[0]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user