9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-29 20:19:06 +00:00
This commit is contained in:
Daniel Mills
2021-01-01 18:53:32 -05:00
parent 8dd858e813
commit a921845ae3
13 changed files with 193 additions and 131 deletions

View File

@@ -12,6 +12,9 @@ public class CommandIrisStudio extends MortarCommand
@Command
private CommandIrisStudioCreate create;
@Command
private CommandIrisStudioFix fix;
@Command
private CommandIrisStudioOpen open;

View File

@@ -0,0 +1,65 @@
package com.volmit.iris.manager.command;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisSettings;
import com.volmit.iris.scaffold.hunk.Hunk;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
import org.bukkit.Chunk;
import org.bukkit.block.data.BlockData;
public class CommandIrisStudioFix extends MortarCommand
{
public CommandIrisStudioFix()
{
super("fix");
requiresPermission(Iris.perm.studio);
setDescription("Go to the spawn of the currently open studio world.");
setCategory("Studio");
}
@Override
public void addTabOptions(MortarSender sender, String[] args, KList<String> list) {
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(!IrisSettings.get().isStudio())
{
sender.sendMessage("To use Iris Studio, please enable studio in Iris/settings.json");
return true;
}
if(!Iris.proj.isProjectOpen())
{
sender.sendMessage("There is not a studio currently loaded.");
return true;
}
try
{
Chunk c = sender.player().getLocation().getChunk();
int cx = c.getX() * 16;
int cz = c.getZ() * 16;
Hunk<BlockData> bd = Hunk.viewBlocks(c);
Iris.proj.getActiveProject().getActiveProvider().getCompound().getDefaultEngine().getFramework().getEngineParallax().insertParallax(cx, cz, bd);
sender.sendMessage("Done!");
}
catch(Throwable e)
{
sender.sendMessage("Failed to teleport to the studio world. Try re-opening the project.");
}
return true;
}
@Override
protected String getArgsUsage()
{
return "";
}
}

View File

@@ -1,8 +1,9 @@
package com.volmit.iris.manager.edit;
import com.volmit.iris.util.*;
import com.volmit.iris.scaffold.engine.EngineCompositeGenerator;
import com.volmit.iris.scaffold.IrisWorlds;
import com.volmit.iris.scaffold.engine.IrisAccess;
import com.volmit.iris.scaffold.parallax.ParallaxAccess;
import com.volmit.iris.util.*;
import lombok.Data;
import org.bukkit.World;
import org.bukkit.block.Block;
@@ -18,10 +19,11 @@ public class DustRevealer {
public static void spawn(Block block, MortarSender sender)
{
World world = block.getWorld();
IrisAccess access = IrisWorlds.access(world);
if(world.getGenerator() instanceof EngineCompositeGenerator)
if(access != null)
{
ParallaxAccess a = ((EngineCompositeGenerator)world.getGenerator()).getComposite().getEngineForHeight(block.getY()).getParallax();
ParallaxAccess a = access.getEngineAccess(block.getY()).getParallaxAccess();
if(a.getObject(block.getX(), block.getY(), block.getZ()) != null)
{
@@ -43,32 +45,39 @@ public class DustRevealer {
J.s(() -> {
new BlockSignal(world.getBlockAt(block.getX(), block.getY(), block.getZ()), 100);
J.a(() -> {
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ()));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX(), block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() + 1, block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX() + 1, block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ() + 1));
is(new BlockPosition(block.getX()-1, block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX()-1, block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX()-1, block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX()-1, block.getY() - 1, block.getZ() + 1));
is(new BlockPosition(block.getX()+1, block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX()+1, block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX()+1, block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX()+1, block.getY() - 1, block.getZ() + 1));
try {
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ()));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX(), block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX() + 1, block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ() + 1));
is(new BlockPosition(block.getX() - 1, block.getY(), block.getZ() - 1));
is(new BlockPosition(block.getX() + 1, block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX() + 1, block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY() + 1, block.getZ()));
is(new BlockPosition(block.getX() - 1, block.getY() - 1, block.getZ()));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX(), block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX(), block.getY() - 1, block.getZ() + 1));
is(new BlockPosition(block.getX()-1, block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX()-1, block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX()-1, block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX()-1, block.getY() - 1, block.getZ() + 1));
is(new BlockPosition(block.getX()+1, block.getY() + 1, block.getZ() - 1));
is(new BlockPosition(block.getX()+1, block.getY() + 1, block.getZ() + 1));
is(new BlockPosition(block.getX()+1, block.getY() - 1, block.getZ() - 1));
is(new BlockPosition(block.getX()+1, block.getY() - 1, block.getZ() + 1));
}
catch(Throwable e)
{
e.printStackTrace();
}
});
}, RNG.r.i(3,6));
}
@@ -78,6 +87,7 @@ public class DustRevealer {
{
hits.add(a);
new DustRevealer(parallax, world, a, key, hits);
return true;
}
return false;