mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-30 04:29:05 +00:00
Fix commands & support regeneration
This commit is contained in:
@@ -2,6 +2,7 @@ package com.volmit.iris.manager;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@@ -22,7 +23,7 @@ public class EditManager implements Listener
|
||||
{
|
||||
this.editors = new KMap<>();
|
||||
Iris.instance.registerListener(this);
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::update, 0, 20);
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::update, 0, 0);
|
||||
}
|
||||
|
||||
public BlockData get(World world, int x, int y, int z)
|
||||
@@ -35,6 +36,26 @@ public class EditManager implements Listener
|
||||
open(world).set(x, y, z, d);
|
||||
}
|
||||
|
||||
public void setBiome(World world, int x, int y, int z, Biome d)
|
||||
{
|
||||
open(world).setBiome(x, y, z, d);
|
||||
}
|
||||
|
||||
public void setBiome(World world, int x, int z, Biome d)
|
||||
{
|
||||
open(world).setBiome(x, z, d);
|
||||
}
|
||||
|
||||
public Biome getBiome(World world, int x, int y, int z)
|
||||
{
|
||||
return open(world).getBiome(x, y, z);
|
||||
}
|
||||
|
||||
public Biome getBiome(World world, int x, int z)
|
||||
{
|
||||
return open(world).getBiome(x, z);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void on(WorldUnloadEvent e)
|
||||
{
|
||||
|
||||
@@ -110,6 +110,7 @@ public class IrisBoardManager implements BoardProvider, Listener
|
||||
v.add(C.GREEN + "Parallax" + C.GRAY + ": " + Form.f((int) g.getParallaxMap().getLoadedChunks().size()));
|
||||
v.add(C.GREEN + "Objects" + C.GRAY + ": " + Form.f(g.getData().getObjectLoader().count()));
|
||||
v.add(C.GREEN + "Memory" + C.GRAY + ": " + mem);
|
||||
v.add(C.GREEN + "Jobs" + C.GRAY + ": " + Iris.jobCount());
|
||||
v.add("&7&m------------------");
|
||||
v.add(C.GREEN + "Heightmap" + C.GRAY + ": " + (int) g.getTerrainHeight(x, z));
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.WorldType;
|
||||
@@ -207,7 +206,7 @@ public class IrisProject
|
||||
|
||||
if(sender.isPlayer())
|
||||
{
|
||||
sender.player().teleport(new Location(world, 0, 0, world.getHighestBlockYAt(0, 0)));
|
||||
sender.player().teleport(world.getSpawnLocation());
|
||||
}
|
||||
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () ->
|
||||
|
||||
@@ -12,14 +12,7 @@ import com.google.gson.Gson;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.IrisSettings;
|
||||
import com.volmit.iris.object.InterpolationMethod;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisBiomeGeneratorLink;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import com.volmit.iris.object.IrisGenerator;
|
||||
import com.volmit.iris.object.IrisInterpolator;
|
||||
import com.volmit.iris.object.IrisNoiseGenerator;
|
||||
import com.volmit.iris.object.IrisRegion;
|
||||
import com.volmit.iris.util.Form;
|
||||
import com.volmit.iris.util.IO;
|
||||
import com.volmit.iris.util.J;
|
||||
@@ -448,101 +441,7 @@ public class ProjectManager
|
||||
|
||||
public void create(MortarSender sender, String s)
|
||||
{
|
||||
if(generate(sender, s))
|
||||
{
|
||||
Iris.proj.open(sender, s);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean generate(MortarSender sender, String s)
|
||||
{
|
||||
IrisDimension dimension = new IrisDimension();
|
||||
dimension.setLoadKey(s);
|
||||
dimension.setName(Form.capitalizeWords(s.replaceAll("\\Q-\\E", " ")));
|
||||
|
||||
if(getWorkspaceFile(dimension.getLoadKey(), "dimensions", dimension.getLoadKey() + ".json").exists())
|
||||
{
|
||||
sender.sendMessage("Project Already Exists! Open it instead!");
|
||||
return false;
|
||||
}
|
||||
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.getComposite().add(gg);
|
||||
IrisInterpolator it = new IrisInterpolator();
|
||||
it.setFunction(InterpolationMethod.BILINEAR_STARCAST_9);
|
||||
it.setHorizontalScale(9);
|
||||
gen.setInterpolator(it);
|
||||
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);
|
||||
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());
|
||||
IrisProject project = new IrisProject(getWorkspaceFolder(dimension.getLoadKey()));
|
||||
try
|
||||
{
|
||||
JSONObject ws = project.createCodeWorkspaceConfig();
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "dimensions", dimension.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(dimension)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "regions", exampleRegion.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleRegion)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "biomes", exampleLand1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleLand1)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "biomes", exampleLand2.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleLand2)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "biomes", exampleShore1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleShore1)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "biomes", exampleOcean1.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(exampleOcean1)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), "generators", gen.getLoadKey() + ".json"), new JSONObject(new Gson().toJson(gen)).toString(4));
|
||||
IO.writeAll(getWorkspaceFile(dimension.getLoadKey(), dimension.getLoadKey() + ".code-workspace"), ws.toString(0));
|
||||
}
|
||||
|
||||
catch(JSONException | IOException e)
|
||||
{
|
||||
sender.sendMessage("Failed! Check the console.");
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
create(sender, s, "example");
|
||||
}
|
||||
|
||||
public void updateWorkspace()
|
||||
|
||||
Reference in New Issue
Block a user