mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 10:12:53 +00:00
Instant changes
This commit is contained in:
parent
1d11585fcd
commit
8ffe6fa8fb
11
pom.xml
11
pom.xml
@ -152,6 +152,10 @@
|
|||||||
<id>CodeMC</id>
|
<id>CodeMC</id>
|
||||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>WorldEdit</id>
|
||||||
|
<url>https://maven.enginehub.org/repo/</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Spigot API -->
|
<!-- Spigot API -->
|
||||||
@ -186,6 +190,13 @@
|
|||||||
<version>1.14.4</version>
|
<version>1.14.4</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- Hooks -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
|
<artifactId>worldedit-bukkit</artifactId>
|
||||||
|
<version>7.2.0-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<!-- Utilities -->
|
<!-- Utilities -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bstats</groupId>
|
<groupId>org.bstats</groupId>
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package com.volmit.iris;
|
|
||||||
|
|
||||||
import org.bukkit.generator.ChunkGenerator.BiomeGrid;
|
|
||||||
import org.bukkit.generator.ChunkGenerator.ChunkData;
|
|
||||||
|
|
||||||
import com.volmit.iris.util.ChunkPosition;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class GeneratedChunk
|
|
||||||
{
|
|
||||||
private ChunkPosition pos;
|
|
||||||
private ChunkData data;
|
|
||||||
private BiomeGrid grid;
|
|
||||||
|
|
||||||
public GeneratedChunk(ChunkPosition pos)
|
|
||||||
{
|
|
||||||
this.pos = pos;
|
|
||||||
}
|
|
||||||
}
|
|
@ -23,6 +23,13 @@ import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
|||||||
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||||
import com.volmit.iris.link.MultiverseCoreLink;
|
import com.volmit.iris.link.MultiverseCoreLink;
|
||||||
|
import com.volmit.iris.manager.EditManager;
|
||||||
|
import com.volmit.iris.manager.IrisBoardManager;
|
||||||
|
import com.volmit.iris.manager.IrisDataManager;
|
||||||
|
import com.volmit.iris.manager.IrisHotloadManager;
|
||||||
|
import com.volmit.iris.manager.ProjectManager;
|
||||||
|
import com.volmit.iris.manager.StructureManager;
|
||||||
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.C;
|
import com.volmit.iris.util.C;
|
||||||
import com.volmit.iris.util.Form;
|
import com.volmit.iris.util.Form;
|
||||||
import com.volmit.iris.util.GroupedExecutor;
|
import com.volmit.iris.util.GroupedExecutor;
|
||||||
@ -44,6 +51,7 @@ public class Iris extends MortarPlugin
|
|||||||
public static IrisHotloadManager hotloader;
|
public static IrisHotloadManager hotloader;
|
||||||
public static WandManager wand;
|
public static WandManager wand;
|
||||||
public static StructureManager struct;
|
public static StructureManager struct;
|
||||||
|
public static EditManager edit;
|
||||||
public static IrisBoardManager board;
|
public static IrisBoardManager board;
|
||||||
public static String nmsTag = findNMSTag();
|
public static String nmsTag = findNMSTag();
|
||||||
public static MultiverseCoreLink linkMultiverseCore;
|
public static MultiverseCoreLink linkMultiverseCore;
|
||||||
@ -141,6 +149,7 @@ public class Iris extends MortarPlugin
|
|||||||
proj = new ProjectManager();
|
proj = new ProjectManager();
|
||||||
board = new IrisBoardManager();
|
board = new IrisBoardManager();
|
||||||
linkMultiverseCore = new MultiverseCoreLink();
|
linkMultiverseCore = new MultiverseCoreLink();
|
||||||
|
edit = new EditManager();
|
||||||
J.a(() -> IO.delete(getTemp()));
|
J.a(() -> IO.delete(getTemp()));
|
||||||
J.a(() -> bstats());
|
J.a(() -> bstats());
|
||||||
J.s(this::splash, 20);
|
J.s(this::splash, 20);
|
||||||
|
@ -11,13 +11,13 @@ import org.zeroturnaround.zip.ZipUtil;
|
|||||||
import org.zeroturnaround.zip.commons.FileUtils;
|
import org.zeroturnaround.zip.commons.FileUtils;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisDataManager;
|
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||||
import com.volmit.iris.gen.nms.NMSCreator;
|
import com.volmit.iris.gen.nms.NMSCreator;
|
||||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||||
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||||
|
import com.volmit.iris.manager.IrisDataManager;
|
||||||
import com.volmit.iris.object.IrisDimension;
|
import com.volmit.iris.object.IrisDimension;
|
||||||
import com.volmit.iris.util.Form;
|
import com.volmit.iris.util.Form;
|
||||||
import com.volmit.iris.util.IO;
|
import com.volmit.iris.util.IO;
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisMetrics;
|
|
||||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||||
|
import com.volmit.iris.gen.scaffold.IrisMetrics;
|
||||||
import com.volmit.iris.util.C;
|
import com.volmit.iris.util.C;
|
||||||
import com.volmit.iris.util.Form;
|
import com.volmit.iris.util.Form;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
||||||
import com.volmit.iris.util.Direction;
|
import com.volmit.iris.util.Direction;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
||||||
import com.volmit.iris.util.Direction;
|
import com.volmit.iris.util.Direction;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
|
@ -9,7 +9,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.object.IrisObject;
|
import com.volmit.iris.object.IrisObject;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.object.IrisObject;
|
import com.volmit.iris.object.IrisObject;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
||||||
import com.volmit.iris.util.Direction;
|
import com.volmit.iris.util.Direction;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
|
@ -4,7 +4,7 @@ import org.bukkit.Sound;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.util.Vector;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.util.Vector;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.WandManager;
|
import com.volmit.iris.manager.WandManager;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureClose extends MortarCommand
|
public class CommandIrisStructureClose extends MortarCommand
|
||||||
{
|
{
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureCreate extends MortarCommand
|
public class CommandIrisStructureCreate extends MortarCommand
|
||||||
{
|
{
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureExpand extends MortarCommand
|
public class CommandIrisStructureExpand extends MortarCommand
|
||||||
{
|
{
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureMore extends MortarCommand
|
public class CommandIrisStructureMore extends MortarCommand
|
||||||
{
|
{
|
||||||
|
@ -5,9 +5,9 @@ import org.bukkit.entity.Player;
|
|||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.object.IrisStructure;
|
import com.volmit.iris.object.IrisStructure;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureOpen extends MortarCommand
|
public class CommandIrisStructureOpen extends MortarCommand
|
||||||
{
|
{
|
||||||
|
@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.MortarCommand;
|
import com.volmit.iris.util.MortarCommand;
|
||||||
import com.volmit.iris.util.MortarSender;
|
import com.volmit.iris.util.MortarSender;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class CommandIrisStructureSave extends MortarCommand
|
public class CommandIrisStructureSave extends MortarCommand
|
||||||
{
|
{
|
||||||
|
17
src/main/java/com/volmit/iris/edit/BlockEditor.java
Normal file
17
src/main/java/com/volmit/iris/edit/BlockEditor.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.volmit.iris.edit;
|
||||||
|
|
||||||
|
import java.io.Closeable;
|
||||||
|
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
|
public interface BlockEditor extends Closeable
|
||||||
|
{
|
||||||
|
public long last();
|
||||||
|
|
||||||
|
public void set(int x, int y, int z, BlockData d);
|
||||||
|
|
||||||
|
public BlockData get(int x, int y, int z);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close();
|
||||||
|
}
|
40
src/main/java/com/volmit/iris/edit/BukkitBlockEditor.java
Normal file
40
src/main/java/com/volmit/iris/edit/BukkitBlockEditor.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package com.volmit.iris.edit;
|
||||||
|
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
|
import com.volmit.iris.util.M;
|
||||||
|
|
||||||
|
public class BukkitBlockEditor implements BlockEditor
|
||||||
|
{
|
||||||
|
private final World world;
|
||||||
|
|
||||||
|
public BukkitBlockEditor(World world)
|
||||||
|
{
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void set(int x, int y, int z, BlockData d)
|
||||||
|
{
|
||||||
|
world.getBlockAt(x, y, z).setBlockData(d, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData get(int x, int y, int z)
|
||||||
|
{
|
||||||
|
return world.getBlockAt(x, y, z).getBlockData();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long last()
|
||||||
|
{
|
||||||
|
return M.ms();
|
||||||
|
}
|
||||||
|
}
|
51
src/main/java/com/volmit/iris/edit/WEBlockEditor.java
Normal file
51
src/main/java/com/volmit/iris/edit/WEBlockEditor.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package com.volmit.iris.edit;
|
||||||
|
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.EditSession;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||||
|
import com.sk89q.worldedit.math.BlockVector3;
|
||||||
|
import com.volmit.iris.util.M;
|
||||||
|
|
||||||
|
public class WEBlockEditor implements BlockEditor
|
||||||
|
{
|
||||||
|
private final World world;
|
||||||
|
private final EditSession es;
|
||||||
|
private long last;
|
||||||
|
|
||||||
|
public WEBlockEditor(World world)
|
||||||
|
{
|
||||||
|
last = M.ms();
|
||||||
|
this.world = world;
|
||||||
|
es = WorldEdit.getInstance().newEditSessionBuilder().world(BukkitAdapter.adapt(world)).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void set(int x, int y, int z, BlockData d)
|
||||||
|
{
|
||||||
|
last = M.ms();
|
||||||
|
es.rawSetBlock(BlockVector3.at(x, y, z), BukkitAdapter.adapt(d));
|
||||||
|
world.getBlockAt(x, y, z).setBlockData(d, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData get(int x, int y, int z)
|
||||||
|
{
|
||||||
|
return world.getBlockAt(x, y, z).getBlockData();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close()
|
||||||
|
{
|
||||||
|
es.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long last()
|
||||||
|
{
|
||||||
|
return last;
|
||||||
|
}
|
||||||
|
}
|
@ -22,14 +22,14 @@ import org.bukkit.event.world.ChunkUnloadEvent;
|
|||||||
import org.bukkit.event.world.WorldUnloadEvent;
|
import org.bukkit.event.world.WorldUnloadEvent;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisContext;
|
|
||||||
import com.volmit.iris.IrisDataManager;
|
|
||||||
import com.volmit.iris.IrisMetrics;
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
import com.volmit.iris.gen.atomics.AtomicMulticache;
|
import com.volmit.iris.gen.atomics.AtomicMulticache;
|
||||||
|
import com.volmit.iris.gen.scaffold.IrisContext;
|
||||||
|
import com.volmit.iris.gen.scaffold.IrisMetrics;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
import com.volmit.iris.gen.scaffold.TerrainProvider;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||||
|
import com.volmit.iris.manager.IrisDataManager;
|
||||||
import com.volmit.iris.noise.CNG;
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisDimension;
|
import com.volmit.iris.object.IrisDimension;
|
||||||
|
@ -14,9 +14,9 @@ import org.bukkit.event.entity.EntitySpawnEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisContext;
|
|
||||||
import com.volmit.iris.IrisSettings;
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.gen.atomics.AtomicRegionData;
|
import com.volmit.iris.gen.atomics.AtomicRegionData;
|
||||||
|
import com.volmit.iris.gen.scaffold.IrisContext;
|
||||||
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
import com.volmit.iris.gen.scaffold.IrisGenConfiguration;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
import com.volmit.iris.gen.scaffold.TerrainChunk;
|
||||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.gen.scaffold;
|
||||||
|
|
||||||
import com.volmit.iris.gen.scaffold.TerrainTarget;
|
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisDimension;
|
import com.volmit.iris.object.IrisDimension;
|
||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
@ -1,5 +1,6 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.gen.scaffold;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.util.RollingSequence;
|
import com.volmit.iris.util.RollingSequence;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
81
src/main/java/com/volmit/iris/manager/EditManager.java
Normal file
81
src/main/java/com/volmit/iris/manager/EditManager.java
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.world.WorldUnloadEvent;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
|
import com.volmit.iris.edit.BlockEditor;
|
||||||
|
import com.volmit.iris.edit.BukkitBlockEditor;
|
||||||
|
import com.volmit.iris.edit.WEBlockEditor;
|
||||||
|
import com.volmit.iris.util.KMap;
|
||||||
|
import com.volmit.iris.util.M;
|
||||||
|
|
||||||
|
public class EditManager implements Listener
|
||||||
|
{
|
||||||
|
private KMap<World, BlockEditor> editors;
|
||||||
|
|
||||||
|
public EditManager()
|
||||||
|
{
|
||||||
|
this.editors = new KMap<>();
|
||||||
|
Iris.instance.registerListener(this);
|
||||||
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::update, 0, 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockData get(World world, int x, int y, int z)
|
||||||
|
{
|
||||||
|
return open(world).get(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set(World world, int x, int y, int z, BlockData d)
|
||||||
|
{
|
||||||
|
open(world).set(x, y, z, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void on(WorldUnloadEvent e)
|
||||||
|
{
|
||||||
|
if(editors.containsKey(e.getWorld()))
|
||||||
|
{
|
||||||
|
editors.remove(e.getWorld()).close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
for(World i : editors.k())
|
||||||
|
{
|
||||||
|
if(M.ms() - editors.get(i).last() > 1000)
|
||||||
|
{
|
||||||
|
editors.remove(i).close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockEditor open(World world)
|
||||||
|
{
|
||||||
|
if(editors.containsKey(world))
|
||||||
|
{
|
||||||
|
return editors.get(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockEditor e = null;
|
||||||
|
|
||||||
|
if(Bukkit.getPluginManager().isPluginEnabled("WorldEdit"))
|
||||||
|
{
|
||||||
|
e = new WEBlockEditor(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e = new BukkitBlockEditor(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
editors.put(world, e);
|
||||||
|
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -8,6 +8,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
||||||
import com.volmit.iris.noise.CNG;
|
import com.volmit.iris.noise.CNG;
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
@ -1,10 +1,13 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
|
import com.volmit.iris.IrisSettings;
|
||||||
|
import com.volmit.iris.gen.scaffold.IrisContext;
|
||||||
import com.volmit.iris.util.ChronoLatch;
|
import com.volmit.iris.util.ChronoLatch;
|
||||||
import com.volmit.iris.util.FolderWatcher;
|
import com.volmit.iris.util.FolderWatcher;
|
||||||
import com.volmit.iris.util.J;
|
import com.volmit.iris.util.J;
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.awt.GraphicsEnvironment;
|
import java.awt.GraphicsEnvironment;
|
||||||
@ -26,6 +26,8 @@ import org.zeroturnaround.zip.commons.FileUtils;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.JsonSyntaxException;
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
|
import com.volmit.iris.IrisSettings;
|
||||||
import com.volmit.iris.gen.IrisTerrainProvider;
|
import com.volmit.iris.gen.IrisTerrainProvider;
|
||||||
import com.volmit.iris.gen.nms.NMSCreator;
|
import com.volmit.iris.gen.nms.NMSCreator;
|
||||||
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
import com.volmit.iris.gen.provisions.ProvisionBukkit;
|
@ -1,9 +1,9 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.volmit.iris.structure.StructureTemplate;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
import com.volmit.iris.util.StructureTemplate;
|
|
||||||
|
|
||||||
public class StructureManager
|
public class StructureManager
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris;
|
package com.volmit.iris.manager;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -22,6 +22,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
import org.bukkit.util.BlockVector;
|
import org.bukkit.util.BlockVector;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.object.IrisObject;
|
import com.volmit.iris.object.IrisObject;
|
||||||
import com.volmit.iris.util.C;
|
import com.volmit.iris.util.C;
|
||||||
import com.volmit.iris.util.Cuboid;
|
import com.volmit.iris.util.Cuboid;
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.structure;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -38,6 +38,23 @@ import com.volmit.iris.object.IrisStructureTile;
|
|||||||
import com.volmit.iris.object.NoiseStyle;
|
import com.volmit.iris.object.NoiseStyle;
|
||||||
import com.volmit.iris.object.StructureTileCondition;
|
import com.volmit.iris.object.StructureTileCondition;
|
||||||
import com.volmit.iris.object.TileResult;
|
import com.volmit.iris.object.TileResult;
|
||||||
|
import com.volmit.iris.util.B;
|
||||||
|
import com.volmit.iris.util.C;
|
||||||
|
import com.volmit.iris.util.ChronoLatch;
|
||||||
|
import com.volmit.iris.util.Cuboid;
|
||||||
|
import com.volmit.iris.util.Form;
|
||||||
|
import com.volmit.iris.util.IO;
|
||||||
|
import com.volmit.iris.util.IObjectPlacer;
|
||||||
|
import com.volmit.iris.util.J;
|
||||||
|
import com.volmit.iris.util.JSONObject;
|
||||||
|
import com.volmit.iris.util.KMap;
|
||||||
|
import com.volmit.iris.util.MaterialBlock;
|
||||||
|
import com.volmit.iris.util.RNG;
|
||||||
|
import com.volmit.iris.util.UIElement;
|
||||||
|
import com.volmit.iris.util.UIStaticDecorator;
|
||||||
|
import com.volmit.iris.util.UIWindow;
|
||||||
|
import com.volmit.iris.util.Window;
|
||||||
|
import com.volmit.iris.util.WindowResolution;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -64,6 +81,7 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
private KMap<Location, Runnable> updates = new KMap<>();
|
private KMap<Location, Runnable> updates = new KMap<>();
|
||||||
private File folder;
|
private File folder;
|
||||||
private CNG variants;
|
private CNG variants;
|
||||||
|
private boolean quiet = true;
|
||||||
private KMap<Location, Integer> forceVariant = new KMap<>();
|
private KMap<Location, Integer> forceVariant = new KMap<>();
|
||||||
|
|
||||||
public StructureTemplate(String name, String dimension, Player worker, Location c, int size, int w, int h, boolean use3d)
|
public StructureTemplate(String name, String dimension, Player worker, Location c, int size, int w, int h, boolean use3d)
|
||||||
@ -74,7 +92,7 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
folder = Iris.instance.getDataFolder("packs", dimension);
|
folder = Iris.instance.getDataFolder("packs", dimension);
|
||||||
gLatch = new ChronoLatch(250);
|
gLatch = new ChronoLatch(250);
|
||||||
focus = center;
|
focus = center;
|
||||||
dirtyLatch = new ChronoLatch(2350);
|
dirtyLatch = new ChronoLatch(250);
|
||||||
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::tick, 0, 0);
|
task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::tick, 0, 0);
|
||||||
this.world = c.getWorld();
|
this.world = c.getWorld();
|
||||||
this.center = c.clone();
|
this.center = c.clone();
|
||||||
@ -143,6 +161,8 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
{
|
{
|
||||||
Iris.info("Loading existing structure");
|
Iris.info("Loading existing structure");
|
||||||
|
|
||||||
|
// TODO load input properties
|
||||||
|
|
||||||
for(IrisStructureTile i : structure.getTiles().copy())
|
for(IrisStructureTile i : structure.getTiles().copy())
|
||||||
{
|
{
|
||||||
String realType = i.getForceObjects().get(1).getLoadKey().replaceAll("\\Q-1\\E", "");
|
String realType = i.getForceObjects().get(1).getLoadKey().replaceAll("\\Q-1\\E", "");
|
||||||
@ -354,11 +374,15 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
|
|
||||||
if(dirtyLatch.couldFlip())
|
if(dirtyLatch.couldFlip())
|
||||||
{
|
{
|
||||||
int u = 3;
|
updateAll();
|
||||||
while(updates.size() > 0 && u-- > 0)
|
}
|
||||||
{
|
}
|
||||||
runClosestTo();
|
|
||||||
}
|
public void updateAll()
|
||||||
|
{
|
||||||
|
while(updates.size() > 0)
|
||||||
|
{
|
||||||
|
runClosestTo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,6 +410,11 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void mod(Location l)
|
private void mod(Location l)
|
||||||
|
{
|
||||||
|
mod(l, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void mod(Location l, boolean u)
|
||||||
{
|
{
|
||||||
if(!isWithinBounds(l))
|
if(!isWithinBounds(l))
|
||||||
{
|
{
|
||||||
@ -538,8 +567,11 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
}
|
}
|
||||||
|
|
||||||
r.getTile().getForceObjects().get(getVariant(c, r.getTile())).place(bottomCenter.getBlockX(), bottomCenter.getBlockY(), bottomCenter.getBlockZ(), this, r.getPlacement(), rng);
|
r.getTile().getForceObjects().get(getVariant(c, r.getTile())).place(bottomCenter.getBlockX(), bottomCenter.getBlockY(), bottomCenter.getBlockZ(), this, r.getPlacement(), rng);
|
||||||
center.getWorld().playSound(center, Sound.BLOCK_ANCIENT_DEBRIS_BREAK, 1f, 0.35f);
|
if(!quiet)
|
||||||
center.getWorld().spawnParticle(Particle.FLASH, center.getX(), center.getY(), center.getZ(), 1);
|
{
|
||||||
|
center.getWorld().playSound(center, Sound.ENTITY_SHULKER_BULLET_HIT, 1f, 1.6f);
|
||||||
|
center.getWorld().spawnParticle(Particle.FLASH, center.getX(), center.getY(), center.getZ(), 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWithinBounds(Location l)
|
public boolean isWithinBounds(Location l)
|
||||||
@ -774,7 +806,7 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
world.getBlockAt(x, y, z).setBlockData(d, false);
|
Iris.edit.set(world, x, y, z, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1068,7 +1100,10 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void on(BlockBreakEvent e)
|
public void on(BlockBreakEvent e)
|
||||||
{
|
{
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () -> mod(e.getBlock().getLocation()), 5);
|
quiet = false;
|
||||||
|
mod(e.getBlock().getLocation(), false);
|
||||||
|
updateAll();
|
||||||
|
quiet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -1134,7 +1169,10 @@ public class StructureTemplate implements Listener, IObjectPlacer
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void on(BlockPlaceEvent e)
|
public void on(BlockPlaceEvent e)
|
||||||
{
|
{
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () -> mod(e.getBlock().getLocation()), 5);
|
quiet = false;
|
||||||
|
mod(e.getBlock().getLocation(), false);
|
||||||
|
updateAll();
|
||||||
|
quiet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void more()
|
public void more()
|
Loading…
x
Reference in New Issue
Block a user