From 6f68e8b2c704abba990633fa62e4080627d1a264 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Tue, 7 Jan 2020 01:28:46 -0500 Subject: [PATCH] Commands and objects --- .../java/ninja/bytecode/iris/CommandIris.java | 39 +++ .../java/ninja/bytecode/iris/CommandIsh.java | 259 +++++++++++++++++ src/main/java/ninja/bytecode/iris/Iris.java | 24 +- .../java/ninja/bytecode/iris/WandManager.java | 272 +++++------------- .../iris/generator/IrisGenerator.java | 12 +- .../bytecode/iris/schematic/Schematic.java | 10 +- .../java/ninja/bytecode/iris/util/Cuboid.java | 11 + .../ninja/bytecode/iris/util/Direction.java | 2 +- .../ninja/bytecode/iris/util/WandUtil.java | 6 +- .../objects/tree/birch/small/birch1.ish | Bin 0 -> 154 bytes .../objects/tree/birch/small/birch10.ish | Bin 0 -> 151 bytes .../objects/tree/birch/small/birch11.ish | Bin 0 -> 204 bytes .../objects/tree/birch/small/birch12.ish | Bin 0 -> 119 bytes .../objects/tree/birch/small/birch13.ish | Bin 0 -> 78 bytes .../objects/tree/birch/small/birch14.ish | Bin 0 -> 113 bytes .../objects/tree/birch/small/birch15.ish | Bin 0 -> 91 bytes .../objects/tree/birch/small/birch2.ish | Bin 0 -> 179 bytes .../objects/tree/birch/small/birch3.ish | Bin 0 -> 152 bytes .../objects/tree/birch/small/birch4.ish | Bin 0 -> 197 bytes .../objects/tree/birch/small/birch5.ish | Bin 0 -> 231 bytes .../objects/tree/birch/small/birch6.ish | Bin 0 -> 219 bytes .../objects/tree/birch/small/birch7.ish | Bin 0 -> 229 bytes .../objects/tree/birch/small/birch8.ish | Bin 0 -> 187 bytes .../objects/tree/birch/small/birch9.ish | Bin 0 -> 203 bytes .../resources/objects/tree/oak/small/oak1.ish | Bin 0 -> 85 bytes .../objects/tree/oak/small/oak10.ish | Bin 0 -> 209 bytes .../objects/tree/oak/small/oak11.ish | Bin 0 -> 215 bytes .../objects/tree/oak/small/oak12.ish | Bin 0 -> 183 bytes .../objects/tree/oak/small/oak13.ish | Bin 0 -> 145 bytes .../objects/tree/oak/small/oak14.ish | Bin 0 -> 178 bytes .../objects/tree/oak/small/oak15.ish | Bin 0 -> 145 bytes .../resources/objects/tree/oak/small/oak2.ish | Bin 0 -> 107 bytes .../resources/objects/tree/oak/small/oak3.ish | Bin 0 -> 77 bytes .../resources/objects/tree/oak/small/oak4.ish | Bin 0 -> 114 bytes .../resources/objects/tree/oak/small/oak5.ish | Bin 0 -> 196 bytes .../resources/objects/tree/oak/small/oak6.ish | Bin 0 -> 149 bytes .../resources/objects/tree/oak/small/oak7.ish | Bin 0 -> 186 bytes .../resources/objects/tree/oak/small/oak8.ish | Bin 0 -> 185 bytes .../resources/objects/tree/oak/small/oak9.ish | Bin 0 -> 218 bytes .../objects/tree/spruce/small/spruce1.ish | Bin 0 -> 181 bytes .../objects/tree/spruce/small/spruce10.ish | Bin 0 -> 112 bytes .../objects/tree/spruce/small/spruce11.ish | Bin 0 -> 184 bytes .../objects/tree/spruce/small/spruce12.ish | Bin 0 -> 147 bytes .../objects/tree/spruce/small/spruce13.ish | Bin 0 -> 118 bytes .../objects/tree/spruce/small/spruce2.ish | Bin 0 -> 177 bytes .../objects/tree/spruce/small/spruce3.ish | Bin 0 -> 158 bytes .../objects/tree/spruce/small/spruce4.ish | Bin 0 -> 186 bytes .../objects/tree/spruce/small/spruce5.ish | Bin 0 -> 180 bytes .../objects/tree/spruce/small/spruce6.ish | Bin 0 -> 185 bytes .../objects/tree/spruce/small/spruce7.ish | Bin 0 -> 274 bytes .../objects/tree/spruce/small/spruce8.ish | Bin 0 -> 213 bytes .../objects/tree/spruce/small/spruce9.ish | Bin 0 -> 99 bytes src/main/resources/plugin.yml | 5 +- 53 files changed, 410 insertions(+), 230 deletions(-) create mode 100644 src/main/java/ninja/bytecode/iris/CommandIsh.java create mode 100644 src/main/resources/objects/tree/birch/small/birch1.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch10.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch11.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch12.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch13.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch14.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch15.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch2.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch3.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch4.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch5.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch6.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch7.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch8.ish create mode 100644 src/main/resources/objects/tree/birch/small/birch9.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak1.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak10.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak11.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak12.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak13.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak14.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak15.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak2.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak3.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak4.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak5.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak6.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak7.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak8.ish create mode 100644 src/main/resources/objects/tree/oak/small/oak9.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce1.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce10.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce11.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce12.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce13.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce2.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce3.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce4.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce5.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce6.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce7.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce8.ish create mode 100644 src/main/resources/objects/tree/spruce/small/spruce9.ish diff --git a/src/main/java/ninja/bytecode/iris/CommandIris.java b/src/main/java/ninja/bytecode/iris/CommandIris.java index 87949fb0a..097ca4441 100644 --- a/src/main/java/ninja/bytecode/iris/CommandIris.java +++ b/src/main/java/ninja/bytecode/iris/CommandIris.java @@ -1,14 +1,53 @@ package ninja.bytecode.iris; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class CommandIris implements CommandExecutor { + public void msg(CommandSender s, String msg) + { + s.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GRAY + "Iris" + ChatColor.DARK_PURPLE + "]" + ChatColor.GRAY + ": " + msg); + } + @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(args.length == 0) + { + msg(sender, "/iris gen - Gen a new Iris World"); + msg(sender, "/ish - Iris Schematic Commands"); + } + + if(args.length > 0) + { + if(args[0].equalsIgnoreCase("gen")) + { + if(sender instanceof Player) + { + World wold = ((Player)sender).getWorld(); + World w = Iris.instance.createIrisWorld(); + ((Player)sender).teleport(new Location(w, 0, 256, 0)); + ((Player)sender).setFlying(true); + ((Player)sender).setGameMode(GameMode.CREATIVE); + wold.setAutoSave(false); + Bukkit.unloadWorld(wold, false); + } + + else + { + Iris.instance.createIrisWorld(); + } + } + } + return false; } } diff --git a/src/main/java/ninja/bytecode/iris/CommandIsh.java b/src/main/java/ninja/bytecode/iris/CommandIsh.java new file mode 100644 index 000000000..8b684312e --- /dev/null +++ b/src/main/java/ninja/bytecode/iris/CommandIsh.java @@ -0,0 +1,259 @@ +package ninja.bytecode.iris; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import ninja.bytecode.iris.schematic.Schematic; +import ninja.bytecode.iris.util.Cuboid; +import ninja.bytecode.iris.util.Cuboid.CuboidDirection; +import ninja.bytecode.iris.util.Direction; +import ninja.bytecode.iris.util.WandUtil; +import ninja.bytecode.shuriken.format.F; + +public class CommandIsh implements CommandExecutor +{ + public void msg(CommandSender s, String msg) + { + s.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GRAY + "Iris" + ChatColor.DARK_PURPLE + "]" + ChatColor.GRAY + ": " + msg); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) + { + if(args.length == 0) + { + msg(sender, "/ish wand - Get an Iris Wand"); + msg(sender, "/ish save - Save Schematic"); + msg(sender, "/ish load [cursor] - Paste Schematic"); + msg(sender, "/ish expand - Expand Cuboid in direction"); + msg(sender, "/ish shift - Shift Cuboid in direction"); + msg(sender, "/ish shrinkwrap - Shrink to blocks"); + msg(sender, "/ish xup - Shift up, Expand up, Contract in."); + msg(sender, "/ish xvert - Expand up, Expand down, Contract in."); + msg(sender, "/ish id - What id am i looking at"); + } + + if(args.length > 0) + { + if(sender instanceof Player) + { + Player p = (Player) sender; + if(args[0].equalsIgnoreCase("wand")) + { + p.getInventory().addItem(WandUtil.createWand()); + p.playSound(p.getLocation(), Sound.ITEM_ARMOR_EQUIP_DIAMOND, 1f, 1.55f); + } + + if(args[0].equalsIgnoreCase("id")) + { + + Block b = p.getTargetBlock(null, 64); + msg(p, b.getType().getId() + ":" + b.getData() + " (" + b.getType().toString() + ":" + b.getData() + ")"); + } + + if(args[0].equalsIgnoreCase("save")) + { + Schematic s = WandUtil.createSchematic(p.getInventory().getItemInMainHand(), p.getLocation()); + File f = new File(Iris.instance.getDataFolder(), "schematics/" + args[1] + ".ish"); + f.getParentFile().mkdirs(); + try + { + FileOutputStream fos = new FileOutputStream(f); + s.write(fos); + msg(p, "Saved " + args[1] + " (" + F.f(s.getSchematic().size()) + " Entries)"); + p.playSound(p.getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 0.45f); + } + + catch(Throwable e1) + { + e1.printStackTrace(); + } + } + + if(args[0].equalsIgnoreCase("load")) + { + Schematic s = new Schematic(1, 1, 1); + File f = new File(Iris.instance.getDataFolder(), "schematics/" + args[1] + ".ish"); + if(!f.exists()) + { + msg(p, "Not Found"); + return true; + } + + try + { + FileInputStream fin = new FileInputStream(f); + s.read(fin); + + boolean cursor = false; + for(String i : args) + { + if(i.equalsIgnoreCase("cursor")) + { + cursor = true; + break; + } + } + + Location at = p.getLocation(); + + if(cursor) + { + at = p.getTargetBlock(null, 64).getLocation(); + } + + WandUtil.pasteSchematic(s, at); + p.playSound(p.getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 1.25f); + msg(p, "Pasted " + args[1] + " (" + F.f(s.getSchematic().size()) + " Blocks Modified)"); + } + + catch(Throwable e1) + { + e1.printStackTrace(); + } + } + + if(args[0].equalsIgnoreCase("xup")) + { + Location[] b = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + b[0].add(new Vector(0, 1, 0)); + b[1].add(new Vector(0, 1, 0)); + Location a1 = b[0].clone(); + Location a2 = b[1].clone(); + Cuboid cursor = new Cuboid(a1, a2); + + while(!cursor.containsOnly(Material.AIR)) + { + a1.add(new Vector(0, 1, 0)); + a2.add(new Vector(0, 1, 0)); + cursor = new Cuboid(a1, a2); + } + + a1.add(new Vector(0, -1, 0)); + a2.add(new Vector(0, -1, 0)); + b[0] = a1; + a2 = b[1]; + cursor = new Cuboid(a1, a2); + cursor = cursor.contract(CuboidDirection.North); + cursor = cursor.contract(CuboidDirection.South); + cursor = cursor.contract(CuboidDirection.East); + cursor = cursor.contract(CuboidDirection.West); + b[0] = cursor.getLowerNE(); + b[1] = cursor.getUpperSW(); + p.getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); + p.updateInventory(); + p.playSound(p.getLocation(), Sound.ENTITY_ITEMFRAME_ROTATE_ITEM, 1f, 0.55f); + } + + if(args[0].equalsIgnoreCase("shrinkwrap") || args[0].equalsIgnoreCase("shrink")) + { + Location[] b = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + Location a1 = b[0].clone(); + Location a2 = b[1].clone(); + Cuboid cursor = new Cuboid(a1, a2); + cursor = cursor.contract(CuboidDirection.North); + cursor = cursor.contract(CuboidDirection.South); + cursor = cursor.contract(CuboidDirection.East); + cursor = cursor.contract(CuboidDirection.West); + cursor = cursor.contract(CuboidDirection.Up); + cursor = cursor.contract(CuboidDirection.Down); + b[0] = cursor.getLowerNE(); + b[1] = cursor.getUpperSW(); + p.getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); + p.updateInventory(); + p.playSound(p.getLocation(), Sound.ENTITY_ITEMFRAME_ROTATE_ITEM, 1f, 0.55f); + } + + if(args[0].equalsIgnoreCase("expand")) + { + int amt = Integer.valueOf(args[1]); + Location[] b = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + Location a1 = b[0].clone(); + Location a2 = b[1].clone(); + Cuboid cursor = new Cuboid(a1, a2); + Direction d = Direction.closest(p.getLocation().getDirection()).reverse(); + cursor = cursor.expand(d, amt); + b[0] = cursor.getLowerNE(); + b[1] = cursor.getUpperSW(); + p.getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); + p.updateInventory(); + p.playSound(p.getLocation(), Sound.ENTITY_ITEMFRAME_ROTATE_ITEM, 1f, 0.55f); + } + + if(args[0].equalsIgnoreCase("shift")) + { + int amt = Integer.valueOf(args[1]); + Location[] b = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + Location a1 = b[0].clone(); + Location a2 = b[1].clone(); + Direction d = Direction.closest(p.getLocation().getDirection()).reverse(); + a1.add(d.toVector().multiply(amt)); + a2.add(d.toVector().multiply(amt)); + Cuboid cursor = new Cuboid(a1, a2); + b[0] = cursor.getLowerNE(); + b[1] = cursor.getUpperSW(); + p.getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); + p.updateInventory(); + p.playSound(p.getLocation(), Sound.ENTITY_ITEMFRAME_ROTATE_ITEM, 1f, 0.55f); + } + + if(args[0].equalsIgnoreCase("xvert")) + { + Location[] b = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + Location a1 = b[0].clone(); + Location a2 = b[1].clone(); + Location a1x = b[0].clone(); + Location a2x = b[1].clone(); + Cuboid cursor = new Cuboid(a1, a2); + Cuboid cursorx = new Cuboid(a1, a2); + + while(!cursor.containsOnly(Material.AIR)) + { + a1.add(new Vector(0, 1, 0)); + a2.add(new Vector(0, 1, 0)); + cursor = new Cuboid(a1, a2); + } + + a1.add(new Vector(0, -1, 0)); + a2.add(new Vector(0, -1, 0)); + + while(!cursorx.containsOnly(Material.AIR)) + { + a1x.add(new Vector(0, -1, 0)); + a2x.add(new Vector(0, -1, 0)); + cursorx = new Cuboid(a1x, a2x); + } + + a1x.add(new Vector(0, 1, 0)); + a2x.add(new Vector(0, 1, 0)); + b[0] = a1; + b[1] = a2x; + cursor = new Cuboid(b[0], b[1]); + cursor = cursor.contract(CuboidDirection.North); + cursor = cursor.contract(CuboidDirection.South); + cursor = cursor.contract(CuboidDirection.East); + cursor = cursor.contract(CuboidDirection.West); + b[0] = cursor.getLowerNE(); + b[1] = cursor.getUpperSW(); + p.getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); + p.updateInventory(); + p.playSound(p.getLocation(), Sound.ENTITY_ITEMFRAME_ROTATE_ITEM, 1f, 0.55f); + } + } + } + + return false; + } +} diff --git a/src/main/java/ninja/bytecode/iris/Iris.java b/src/main/java/ninja/bytecode/iris/Iris.java index 9ef935e1a..bf3a96e87 100644 --- a/src/main/java/ninja/bytecode/iris/Iris.java +++ b/src/main/java/ninja/bytecode/iris/Iris.java @@ -4,15 +4,14 @@ import java.util.UUID; import java.util.function.Function; import org.bukkit.Bukkit; +import org.bukkit.Chunk; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; @@ -28,6 +27,7 @@ import ninja.bytecode.shuriken.execution.TaskExecutor; public class Iris extends JavaPlugin implements Listener { + public static GSet refresh = new GSet<>(); public static Profiler profiler; public static TaskExecutor genPool; public static IrisGenerator gen; @@ -45,6 +45,8 @@ public class Iris extends JavaPlugin implements Listener gen = new IrisGenerator(); genPool = new TaskExecutor(getTC(), settings.performance.threadPriority, "Iris Generator"); getServer().getPluginManager().registerEvents((Listener) this, this); + getCommand("iris").setExecutor(new CommandIris()); + getCommand("ish").setExecutor(new CommandIsh()); new WandManager(); // Debug world regens @@ -117,23 +119,7 @@ public class Iris extends JavaPlugin implements Listener return new IrisGenerator(); } - @EventHandler - public void on(PlayerCommandPreprocessEvent e) - { - if(e.getMessage().toLowerCase().equals("/iris gen")) - { - e.setCancelled(true); - World wold = e.getPlayer().getWorld(); - World w = createIrisWorld(); - e.getPlayer().teleport(new Location(w, 0, 256, 0)); - e.getPlayer().setFlying(true); - e.getPlayer().setGameMode(GameMode.CREATIVE); - wold.setAutoSave(false); - Bukkit.unloadWorld(wold, false); - } - } - - private World createIrisWorld() + public World createIrisWorld() { World ww = Bukkit.createWorld(new WorldCreator("iris-worlds/" + UUID.randomUUID().toString()).generator(new IrisGenerator()).seed(5944323)); ww.setSpawnFlags(false, false); diff --git a/src/main/java/ninja/bytecode/iris/WandManager.java b/src/main/java/ninja/bytecode/iris/WandManager.java index 5da76a45b..84c5ef616 100644 --- a/src/main/java/ninja/bytecode/iris/WandManager.java +++ b/src/main/java/ninja/bytecode/iris/WandManager.java @@ -1,31 +1,26 @@ package ninja.bytecode.iris; import java.awt.Color; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import org.bukkit.Bukkit; +import org.bukkit.Chunk; import org.bukkit.Location; -import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.util.Vector; -import ninja.bytecode.iris.schematic.Schematic; -import ninja.bytecode.iris.util.Cuboid; -import ninja.bytecode.iris.util.Cuboid.CuboidDirection; import ninja.bytecode.iris.util.ParticleEffect; import ninja.bytecode.iris.util.ParticleRedstone; import ninja.bytecode.iris.util.WandUtil; public class WandManager implements Listener { + @SuppressWarnings("deprecation") public WandManager() { Bukkit.getPluginManager().registerEvents(this, Iris.instance); @@ -35,219 +30,104 @@ public class WandManager implements Listener { tick(i); } - }, 0, 4); + + for(Chunk i : Iris.refresh) + { + i.getWorld().refreshChunk(i.getX(), i.getZ()); + } + + Iris.refresh.clear(); + }, 0, 2); } @EventHandler public void tick(Player p) { - if(WandUtil.isWand(p.getInventory().getItemInMainHand())) + try { - Location[] d = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); - ParticleEffect.CRIT_MAGIC.display(0.1f, 1, d[0].clone().add(0.5, 0.5, 0.5).clone().add(Vector.getRandom().subtract(Vector.getRandom()).normalize().clone().multiply(0.65)), p); - ParticleEffect.CRIT.display(0.1f, 1, d[1].clone().add(0.5, 0.5, 0.5).clone().add(Vector.getRandom().subtract(Vector.getRandom()).normalize().clone().multiply(0.65)), p); - - if(!d[0].getWorld().equals(d[1].getWorld())) + if(WandUtil.isWand(p.getInventory().getItemInMainHand())) { - return; - } + Location[] d = WandUtil.getCuboid(p.getInventory().getItemInMainHand()); + ParticleEffect.CRIT_MAGIC.display(0.1f, 1, d[0].clone().add(0.5, 0.5, 0.5).clone().add(Vector.getRandom().subtract(Vector.getRandom()).normalize().clone().multiply(0.65)), p); + ParticleEffect.CRIT.display(0.1f, 1, d[1].clone().add(0.5, 0.5, 0.5).clone().add(Vector.getRandom().subtract(Vector.getRandom()).normalize().clone().multiply(0.65)), p); - if(d[0].distanceSquared(d[1]) > 64 * 64) - { - return; - } - - int minx = Math.min(d[0].getBlockX(), d[1].getBlockX()); - int miny = Math.min(d[0].getBlockY(), d[1].getBlockY()); - int minz = Math.min(d[0].getBlockZ(), d[1].getBlockZ()); - int maxx = Math.max(d[0].getBlockX(), d[1].getBlockX()); - int maxy = Math.max(d[0].getBlockY(), d[1].getBlockY()); - int maxz = Math.max(d[0].getBlockZ(), d[1].getBlockZ()); - - for(double j = minx - 1; j < maxx + 1; j += 0.25) - { - for(double k = miny - 1; k < maxy + 1; k += 0.25) + if(!d[0].getWorld().equals(d[1].getWorld())) { - for(double l = minz - 1; l < maxz + 1; l += 0.25) + return; + } + + if(d[0].distanceSquared(d[1]) > 64 * 64) + { + return; + } + + int minx = Math.min(d[0].getBlockX(), d[1].getBlockX()); + int miny = Math.min(d[0].getBlockY(), d[1].getBlockY()); + int minz = Math.min(d[0].getBlockZ(), d[1].getBlockZ()); + int maxx = Math.max(d[0].getBlockX(), d[1].getBlockX()); + int maxy = Math.max(d[0].getBlockY(), d[1].getBlockY()); + int maxz = Math.max(d[0].getBlockZ(), d[1].getBlockZ()); + + for(double j = minx - 1; j < maxx + 1; j += 0.25) + { + for(double k = miny - 1; k < maxy + 1; k += 0.25) { - boolean jj = j == minx || j == maxx; - boolean kk = k == miny || k == maxy; - boolean ll = l == minz || l == maxz; - double aa = j; - double bb = k; - double cc = l; - - if((jj && kk) || (jj && ll) || (ll && kk)) + for(double l = minz - 1; l < maxz + 1; l += 0.25) { - Vector push = new Vector(0, 0, 0); + boolean jj = j == minx || j == maxx; + boolean kk = k == miny || k == maxy; + boolean ll = l == minz || l == maxz; + double aa = j; + double bb = k; + double cc = l; - if(j == minx) + if((jj && kk) || (jj && ll) || (ll && kk)) { - push.add(new Vector(-0.55, 0, 0)); - } + Vector push = new Vector(0, 0, 0); - if(k == miny) - { - push.add(new Vector(0, -0.55, 0)); - } + if(j == minx) + { + push.add(new Vector(-0.55, 0, 0)); + } - if(l == minz) - { - push.add(new Vector(0, 0, -0.55)); - } + if(k == miny) + { + push.add(new Vector(0, -0.55, 0)); + } - if(j == maxx) - { - push.add(new Vector(0.55, 0, 0)); - } + if(l == minz) + { + push.add(new Vector(0, 0, -0.55)); + } - if(k == maxy) - { - push.add(new Vector(0, 0.55, 0)); - } + if(j == maxx) + { + push.add(new Vector(0.55, 0, 0)); + } - if(l == maxz) - { - push.add(new Vector(0, 0, 0.55)); - } + if(k == maxy) + { + push.add(new Vector(0, 0.55, 0)); + } - Location lv = new Location(d[0].getWorld(), aa, bb, cc).clone().add(0.5, 0.5, 0.5).clone().add(push); - int color = Color.getHSBColor((float) (0.5f + (Math.sin((aa + bb + cc + (p.getTicksLived() / 2)) / 20f) / 2)), 1, 1).getRGB(); - new ParticleRedstone().setColor(new Color(color)).play(lv, p); + if(l == maxz) + { + push.add(new Vector(0, 0, 0.55)); + } + + Location lv = new Location(d[0].getWorld(), aa, bb, cc).clone().add(0.5, 0.5, 0.5).clone().add(push); + int color = Color.getHSBColor((float) (0.5f + (Math.sin((aa + bb + cc + (p.getTicksLived() / 2)) / 20f) / 2)), 1, 1).getRGB(); + new ParticleRedstone().setColor(new Color(color)).play(lv, p); + } } } } } } - } - - @EventHandler - public void on(PlayerCommandPreprocessEvent e) - { - if(e.getMessage().startsWith("/isave ")) - { - e.setCancelled(true); - Schematic s = WandUtil.createSchematic(e.getPlayer().getInventory().getItemInMainHand(), e.getPlayer().getLocation()); - File f = new File(Iris.instance.getDataFolder(), "schematics/" + e.getMessage().split("\\Q \\E")[1] + ".ish"); - f.getParentFile().mkdirs(); - try - { - FileOutputStream fos = new FileOutputStream(f); - s.write(fos); - e.getPlayer().sendMessage("Done!"); - } - - catch(Throwable e1) - { - e1.printStackTrace(); - } - } - - if(e.getMessage().startsWith("/iload ")) - { - e.setCancelled(true); - Schematic s = new Schematic(1, 1, 1); - File f = new File(Iris.instance.getDataFolder(), "schematics/" + e.getMessage().split("\\Q \\E")[1] + ".ish"); - if(!f.exists()) - { - e.getPlayer().sendMessage("Not Found"); - return; - } - - try - { - FileInputStream fin = new FileInputStream(f); - s.read(fin); - WandUtil.pasteSchematic(s, e.getPlayer().getLocation()); - e.getPlayer().sendMessage("Done!"); - } - - catch(Throwable e1) - { - e1.printStackTrace(); - } - } - if(e.getMessage().startsWith("/iup")) + catch(Throwable e) { - e.setCancelled(true); - Location[] b = WandUtil.getCuboid(e.getPlayer().getInventory().getItemInMainHand()); - b[0].add(new Vector(0, 1, 0)); - b[1].add(new Vector(0, 1, 0)); - Location a1 = b[0].clone(); - Location a2 = b[1].clone(); - Cuboid cursor = new Cuboid(a1, a2); - - while(!cursor.containsOnly(Material.AIR)) - { - a1.add(new Vector(0, 1, 0)); - a2.add(new Vector(0, 1, 0)); - cursor = new Cuboid(a1, a2); - } - a1.add(new Vector(0, -1, 0)); - a2.add(new Vector(0, -1, 0)); - b[0] = a1; - a2 = b[1]; - cursor = new Cuboid(a1, a2); - cursor = cursor.contract(CuboidDirection.North); - cursor = cursor.contract(CuboidDirection.South); - cursor = cursor.contract(CuboidDirection.East); - cursor = cursor.contract(CuboidDirection.West); - b[0] = cursor.getLowerNE(); - b[1] = cursor.getUpperSW(); - e.getPlayer().getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); - e.getPlayer().updateInventory(); - } - - if(e.getMessage().startsWith("/ivert")) - { - e.setCancelled(true); - Location[] b = WandUtil.getCuboid(e.getPlayer().getInventory().getItemInMainHand()); - - Location a1 = b[0].clone(); - Location a2 = b[1].clone(); - Location a1x = b[0].clone(); - Location a2x = b[1].clone(); - Cuboid cursor = new Cuboid(a1, a2); - Cuboid cursorx = new Cuboid(a1, a2); - - while(!cursor.containsOnly(Material.AIR)) - { - a1.add(new Vector(0, 1, 0)); - a2.add(new Vector(0, 1, 0)); - cursor = new Cuboid(a1, a2); - } - - a1.add(new Vector(0, -1, 0)); - a2.add(new Vector(0, -1, 0)); - - while(!cursorx.containsOnly(Material.AIR)) - { - a1x.add(new Vector(0, -1, 0)); - a2x.add(new Vector(0, -1, 0)); - cursorx = new Cuboid(a1x, a2x); - } - - a1x.add(new Vector(0, 1, 0)); - a2x.add(new Vector(0, 1, 0)); - b[0] = a1; - b[1] = a2x; - cursor = new Cuboid(b[0], b[1]); - cursor = cursor.contract(CuboidDirection.North); - cursor = cursor.contract(CuboidDirection.South); - cursor = cursor.contract(CuboidDirection.East); - cursor = cursor.contract(CuboidDirection.West); - b[0] = cursor.getLowerNE(); - b[1] = cursor.getUpperSW(); - e.getPlayer().getInventory().setItemInMainHand(WandUtil.createWand(b[0], b[1])); - e.getPlayer().updateInventory(); - } - - if(e.getMessage().equals("/iris wand")) - { - e.setCancelled(true); - e.getPlayer().getInventory().addItem(WandUtil.createWand()); } } @@ -260,7 +140,7 @@ public class WandManager implements Listener { e.setCancelled(true); e.getPlayer().getInventory().setItemInMainHand(WandUtil.update(true, e.getClickedBlock().getLocation(), e.getPlayer().getInventory().getItemInMainHand())); - + e.getPlayer().playSound(e.getClickedBlock().getLocation(), Sound.BLOCK_END_PORTAL_FRAME_FILL, 1f, 0.67f); e.getPlayer().updateInventory(); } @@ -268,7 +148,7 @@ public class WandManager implements Listener { e.setCancelled(true); e.getPlayer().getInventory().setItemInMainHand(WandUtil.update(false, e.getClickedBlock().getLocation(), e.getPlayer().getInventory().getItemInMainHand())); - + e.getPlayer().playSound(e.getClickedBlock().getLocation(), Sound.BLOCK_END_PORTAL_FRAME_FILL, 1f, 1.17f); e.getPlayer().updateInventory(); } } diff --git a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java index 74aafada7..352b15813 100644 --- a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java @@ -233,17 +233,7 @@ public class IrisGenerator extends ParallelChunkGenerator p.add(new BiomeBiasSchematicPopulator(i.getSchematicGroups().get(j), i, gs.getSchematics().toArray(new Schematic[gs.size()]))); } } - - p.add(new BlockPopulator() - { - @SuppressWarnings("deprecation") - @Override - public void populate(World world, Random random, Chunk source) - { - Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () -> world.refreshChunk(source.getX(), source.getZ()), 50); - } - }); - + L.i("Initialized " + b + " Biomes with " + p.size() + " Populators using " + sch + " Schematics"); } diff --git a/src/main/java/ninja/bytecode/iris/schematic/Schematic.java b/src/main/java/ninja/bytecode/iris/schematic/Schematic.java index 7a0212796..16675c756 100644 --- a/src/main/java/ninja/bytecode/iris/schematic/Schematic.java +++ b/src/main/java/ninja/bytecode/iris/schematic/Schematic.java @@ -14,6 +14,7 @@ import org.bukkit.Material; import org.bukkit.World; import org.bukkit.util.BlockVector; +import ninja.bytecode.iris.Iris; import ninja.bytecode.iris.util.Catalyst12; import ninja.bytecode.iris.util.MB; import ninja.bytecode.shuriken.collections.GMap; @@ -137,9 +138,15 @@ public class Schematic s.put(b); } + public int sh(int g) + { + int m = (g / 2); + return g % 2 == 0 ? m : m + 1; + } + public void place(World source, int wx, int wy, int wz) { - Location start = new Location(source, wx, wy, wz).clone().add(w / 2, centeredHeight ? 0 : -(h / 2), d / 2); + Location start = new Location(source, wx, wy, wz).clone().add(sh(w), sh(h) + 1, sh(d)); for(BlockVector i : getSchematic().k()) { @@ -153,6 +160,7 @@ public class Schematic try { + Iris.refresh.add(f.getChunk()); Catalyst12.setBlock(source, f.getBlockX(), f.getBlockY(), f.getBlockZ(), b); } diff --git a/src/main/java/ninja/bytecode/iris/util/Cuboid.java b/src/main/java/ninja/bytecode/iris/util/Cuboid.java index d7d18ab5e..017b202e6 100644 --- a/src/main/java/ninja/bytecode/iris/util/Cuboid.java +++ b/src/main/java/ninja/bytecode/iris/util/Cuboid.java @@ -422,6 +422,17 @@ public class Cuboid implements Iterable, Cloneable, ConfigurationSerializ } } + public Cuboid expand(Direction dir, int amount) + { + int ax = dir.toVector().getBlockX() == 1 ? amount : 0; + int sx = dir.toVector().getBlockX() == -1 ? -amount : 0; + int ay = dir.toVector().getBlockY() == 1 ? amount : 0; + int sy = dir.toVector().getBlockY() == -1 ? -amount : 0; + int az = dir.toVector().getBlockZ() == 1 ? amount : 0; + int sz = dir.toVector().getBlockZ() == -1 ? -amount : 0; + return new Cuboid(worldName, x1 + sx, y1 + sy, z1 + sz, x2 + ax, y2 + ay, z2 + az); + } + /** * Shift the Cuboid in the given direction by the given amount. * diff --git a/src/main/java/ninja/bytecode/iris/util/Direction.java b/src/main/java/ninja/bytecode/iris/util/Direction.java index 52b22e640..790098c92 100644 --- a/src/main/java/ninja/bytecode/iris/util/Direction.java +++ b/src/main/java/ninja/bytecode/iris/util/Direction.java @@ -62,7 +62,7 @@ public enum Direction for(Direction i : values()) { Vector x = i.toVector(); - double g = x.distance(v); + double g = x.dot(v); if(g < m) { diff --git a/src/main/java/ninja/bytecode/iris/util/WandUtil.java b/src/main/java/ninja/bytecode/iris/util/WandUtil.java index 287338da8..09cca3b29 100644 --- a/src/main/java/ninja/bytecode/iris/util/WandUtil.java +++ b/src/main/java/ninja/bytecode/iris/util/WandUtil.java @@ -15,7 +15,6 @@ import org.bukkit.util.BlockVector; import ninja.bytecode.iris.schematic.Schematic; import ninja.bytecode.shuriken.collections.GList; -import ninja.bytecode.shuriken.logging.L; public class WandUtil { @@ -108,6 +107,11 @@ public class WandUtil Location[] f = getCuboid(item); Location other = left ? f[1] : f[0]; + if(other != null && !other.getWorld().getName().equals(a.getWorld().getName())) + { + other = null; + } + return createWand(left ? a : other, left ? other : a); } diff --git a/src/main/resources/objects/tree/birch/small/birch1.ish b/src/main/resources/objects/tree/birch/small/birch1.ish new file mode 100644 index 0000000000000000000000000000000000000000..7a8e2863a4a0c3c3062c5f003c6b05214ebefe0a GIT binary patch literal 154 zcmV;L0A>FliwFP!000000Cka34umiWLo<$a3B|Tp) z=^lJACjMeZracV1nrMdhQ(pWZ?MM4!Z;EBwg=#76O?jk6Ym?6X!Q#Gk>;a0cjR=qe F002&~Lm&VE literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch11.ish b/src/main/resources/objects/tree/birch/small/birch11.ish new file mode 100644 index 0000000000000000000000000000000000000000..ce63063ce54304c788af557a98613c4f3203b76d GIT binary patch literal 204 zcmV;-05ks|iwFP!000000Bw>{4#F@DLo*N)U;W@N9G{y}Z-ph5Yq`=C?I~^(ClT?8 zh-X~!eT*~WEw1w#-=1tE)&_#ISPyHJLD*kQxl?Nxl%*C%3scKI8*W`6`-@>X!^`7R=Z@_3_ zdQ)w8HP<}VQ)0Z6%8-7ue+wh8Abk|$J~(fuS;EX5W;bB=4`xrHz2%PR8}|CpJ#b=D~j!wYO}p1WNxDP&%`8@@N&@_fko zQxX;Fei7R2w{MC1b>7=!xyLr*dyo0cnQ}2zZf@tUrF?rWX*oY~L$CL*lh0MUcQS9t W4u9bH@9!q3GKN6as(mLI85jUx`!wAE literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch13.ish b/src/main/resources/objects/tree/birch/small/birch13.ish new file mode 100644 index 0000000000000000000000000000000000000000..8b8b956ea64ee6f0e9034617446d1626d3e5ebba GIT binary patch literal 78 zcmb2|=3sz;h->0vox_?p0@ABKHJR7f3{QqtX$<5S$k{i;QVie1@BG6-r9dKZa%eQp8mAY PYSj#_)3YB_R(0 literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch2.ish b/src/main/resources/objects/tree/birch/small/birch2.ish new file mode 100644 index 0000000000000000000000000000000000000000..58625d1a9bd7c8546c18b20b692d759c89518565 GIT binary patch literal 179 zcmV;k08IZMiwFP!000000CkeV4gxUZbo9Q@`G^B4CV4(o6 z0B$(^6Nhc(AM@Pb)0E9K>Tp~d7Ru<(49Y4WOuip&^|dMl;{37W<8hk ztxb*VSsCpxT8#^*o%Ry#*TS&W8Z?__Rvbrq?FHsPpjwUVoxAzfH|-_$9WbLB%7$or hN6H{|liu{QBW9!+^Z}}??S#7_*&p=fv?FycfDJ=|=p7*M-;l9;B=34dD&pWu0@+Fs?#1 znqZzY!&xD#`7bsG{RO{2VvQNhFvPzM@eYFSc2F+??~>=|qL;<~D_(QI&;tMfWz1pl literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch5.ish b/src/main/resources/objects/tree/birch/small/birch5.ish new file mode 100644 index 0000000000000000000000000000000000000000..38f4d6e3f61ff7c31396adfd703f6e4be9cd2e9f GIT binary patch literal 231 zcmVv9%IUJ?v|_uk$$sn>EiF zzuFN`!0K!ZvhpwEntgoyBNo68UWt4rw8mQS@Zc$H1?#NM-U2;9J)Ui>r(iEpqm!or z47CS_J<@E1$QQzc;C#7U%%qFCa+()p4dx)k90c9318d+*2w#Hkmzgtz^9J?2iF_OH hgZaX_FUIrCHR@mDUb?8!MGa<->ff`NBeQw^*yB>{FUt=#p46D}M-Yh#n!%e5;Cg+mMZ1 zs$Tn%ZZEGR8~F*Zlh+|H+|S6{1WWdgyK)c6AMJ%yeYgBgIw6##Q7TE VccF`#!|9(!_5&$soHv97002U_YC`}3 literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch7.ish b/src/main/resources/objects/tree/birch/small/birch7.ish new file mode 100644 index 0000000000000000000000000000000000000000..402c63909518085590332037d47920554f65c4d4 GIT binary patch literal 229 zcmVy#z0lj=n;ofVg`Q#GPPX)< z{@XLz$i+R1y#A*)P&=d_WiPVjbH2A;fF0Xs8zE0y|@R;LS{@)qwq9z9?}y%4W6y2^`e$6*t6($ f{U3?f^q{e4%@dznF%Q-{*dTiYO}P;qtONi60_Jg& literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch8.ish b/src/main/resources/objects/tree/birch/small/birch8.ish new file mode 100644 index 0000000000000000000000000000000000000000..7bc0ccc23cfea281763b245e4c5fd109311560e3 GIT binary patch literal 187 zcmV;s07U;EiwFP!000000Bw>{4udcZL)}fAw4Z(KD7!x=8%ZgmAS-*3P{Dd`TpCFa zNiQAiw~rcY(@~55>ocC`n z@Cv*FZ{?zD=eKF^Zsq%dw$~51wdOO;xd1Mln{1SPY4`4#6TGO+xvaC%U=AAGQNr1> p&I@p^dFF)77kBoA9v$}U#Vg|MKh%5y`2u=e+6E5oLpt~a007aqTB85} literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/birch/small/birch9.ish b/src/main/resources/objects/tree/birch/small/birch9.ish new file mode 100644 index 0000000000000000000000000000000000000000..cf1a54734607fbdfede97556d8c6885cdb3bfe2b GIT binary patch literal 203 zcmV;+05ty}iwFP!000000CkgH3IZ_$p!JOF8*O?8yP#bGFX$kV% zNh9`lu6x$~%uldZH_o7;-)vsQnuz`JOM8;vu$N#R+3XGS%{ja9W7dEz?;-Ss$QNo> zb$Ex6xnKeDSl7${*j;#I*5^W>)7~4${$UN+2DuvTm8(8#-xhuKZ}MCY_6B%Xx-`%O F005gVW?KLN literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak1.ish b/src/main/resources/objects/tree/oak/small/oak1.ish new file mode 100644 index 0000000000000000000000000000000000000000..cebafc0488c8c17f118488dd263d17d23c6142b3 GIT binary patch literal 85 zcmb2|=3sz;+csziov jE4LEE8FeL}CmfXsV7#MiP@Y`K9mB)$IQWdv8=z?bL}?(2 literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak10.ish b/src/main/resources/objects/tree/oak/small/oak10.ish new file mode 100644 index 0000000000000000000000000000000000000000..0c35fb2732ed8b8f368514d9674ad2291f927ba1 GIT binary patch literal 209 zcmV;?051O@iwFP!000000CiJA3d1lAv%BrE>wdF`?Eep0tu|1%C_)VsgOFlJRwLpS z5$`zacN=HaC64nM-?On~EatuyyJ>QoCI^sxWMjHFXb;iC@!A*2+sg2Y?_+O_FRF#kYjGpgaiNp8*F6Q literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak11.ish b/src/main/resources/objects/tree/oak/small/oak11.ish new file mode 100644 index 0000000000000000000000000000000000000000..ca667c63dc8427b05f773b8dfb471820c75a7a79 GIT binary patch literal 215 zcmV;|04V<-iwFP!000000CkdG4#F@DgA;yUc;q}>WA{G@)Lq9?$u*|Z)a_H8WR@f1 z9ubc??^m4XQulK_w?57vmcpQnzL|xx>i5HlPu7$jFEv}WlWnu{p*MBP;OgjRc4apG zGj)?~wa3>#VIa16W%`BDhHA;f#Z%Q9)>K=&!OVdE+ckteGR9OwEl*C9xB)N# z7;)@B9IMs--M-JVEyGe7{WF8Iy6?e=UpWj5W&5G((fb?=lOs%heeK*w$E?ns(KVwx z*~Eqz9awkvpgG8|n|~VnqWg<(U$cn~6C2ux(Ivgz?LADa>OyNKyPBB|Wl^57SIU|) lsxLK%(Jdy&Lr3qYbC71P()bsqzA&|1Yz2rS*K5!N007V7Q$+v( literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak13.ish b/src/main/resources/objects/tree/oak/small/oak13.ish new file mode 100644 index 0000000000000000000000000000000000000000..93b886ccb2bd9f3a02a07f00d24641303898d93b GIT binary patch literal 145 zcmV;C0B-*uiwFP!000000Ckd43V<*SL$f)-Z*SnCy#Ga9wQ46N#6qn+64R*w8i2)n z_TKPTjk$Wa(~DW$7olTjKRPf=JTnWn- zbAoc8_ab&K!pp4uc*hwz*F>&~T;uO6yj6G=8+-DT~ zbAoc8_ab&K!pp4uc*hwz*F>&~T;uO6yj6G=8+-DT~H~zvZs!yQXNBPh0-i;^B%pXY=|deViV-ch_r~+uP54*lE13__Vdtzk|Q`-eW!T L<)3c_BLf2f!y_>V literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak3.ish b/src/main/resources/objects/tree/oak/small/oak3.ish new file mode 100644 index 0000000000000000000000000000000000000000..be13af32377a47d30bea21882920e2033e53a8d3 GIT binary patch literal 77 zcmb2|=3sz;GxcX2je`R~qTP#UmR;#I;Uk7tcH bdTyL)mTF!kK3n31uYn;$u%WpB5uhmmTBaS* literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak4.ish b/src/main/resources/objects/tree/oak/small/oak4.ish new file mode 100644 index 0000000000000000000000000000000000000000..e364ed875dad55e8c3a514c2aa304f97c1c52dfd GIT binary patch literal 114 zcmb2|=3sz;+zA(X8w@yH)(47zIDGa_z0kohMavTtx2WjzS7|oz9%$SjzoPWq=HEI; zJJgL2hDC0uj(ynk;*IUWOUAb%zio71_gyFH+R>cvJw?;(Uu-^g`i@ffM|pwYHjmWq Sz0EPGX58z&Q|tsI0|Nm2F*RiX literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak5.ish b/src/main/resources/objects/tree/oak/small/oak5.ish new file mode 100644 index 0000000000000000000000000000000000000000..ba19ab1e510b7a6b46218aab471c963b22585dd9 GIT binary patch literal 196 zcmV;#06YI5iwFP!000000Bw>{3d1lAL+x&ZefKUq%I<%WMO~pzal{Lh&_|>=vLoUZ z5%0M6&vCAE-{M;P`8|uJF*%EMb!~t)T-(mxT3~WkT7gzj%cJ&Q^VZqSz?huX`xE>U z{1W_}4e-mB&5|?RG1<3gVr+n4wyc+anDziB*VgY3&JFNe*sRgBYJFe&3tGY3Tsx@d y*-x0=gqcjJMLv_AwXEcR#riw^oLW!4=YrV~%%5ORsg?nE-0TlfDl57)1ONa*2xQv; literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak6.ish b/src/main/resources/objects/tree/oak/small/oak6.ish new file mode 100644 index 0000000000000000000000000000000000000000..8dc79530e649a27f51dc251d25568bbb9de79e27 GIT binary patch literal 149 zcmV;G0BZjqiwFP!000000Ckdq4TT^KL=U5X04H!M_n!p#sMI_z*o2@j*Y;YKv`PB4 zv$k{SiPZ1?;^MupHu=K9(5;zW z%pgSE|*`w13;4QA6X%*Gi(Uh<%Bh}}+o zBHIM>KJgA5>(=r@YeM^1SMj2{8E?S`vbCG&7ov`t1Ka%%(Jw{6RCm?MZ^-HWF-y?% o9wGdN@E5{g@Lbj&Fc&id{oz{>UWV9h6Zi6CAIZsvr_cic01Eh9y#N3J literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak8.ish b/src/main/resources/objects/tree/oak/small/oak8.ish new file mode 100644 index 0000000000000000000000000000000000000000..706e021d9ee8eb2941a7393abcdbfc2493a5552c GIT binary patch literal 185 zcmV;q07m~GiwFP!000000Bw>%4#F@D1Z^k>t~`am^#2cOY)I84TFh9g+^%NRSZgzT znAy{={{Hmp-R-K~{_EABZE#gf;)GpX)y^03t2e<*TmToqHJIZ*x@tGohR1=M+AcFV zcn!P;-pWPQ=65|$v~?b6XC1&bIIjU0z=d*ytz1g(Kly?ewXv6VHyrlBA)|!ZvhE9T nq|F_ycTUO3t0s9Q^kEMM9arbJc_yYg{w7^>$ literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/oak/small/oak9.ish b/src/main/resources/objects/tree/oak/small/oak9.ish new file mode 100644 index 0000000000000000000000000000000000000000..70182d017e99d52789818875c0b1189a9f2ae42b GIT binary patch literal 218 zcmV<0044t)iwFP!000000CkdU4#F@DgX8iLzqt{p55`YfH-78C`i1e+ysqrDAY%uLhFG|fy?`VG}8qnW0em1>ox)=Ylg^w!J_n$|3A UD5LvOEsXZUcJHhyT&x5D0M^`ZH2?qr literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce1.ish b/src/main/resources/objects/tree/spruce/small/spruce1.ish new file mode 100644 index 0000000000000000000000000000000000000000..f4bcf7ab608dff54556688752742d79e94b5597b GIT binary patch literal 181 zcmV;m080NKiwFP!000000CiG14gxU{n}8@NX!r*IuXz}Z!(>So%XlqCkt}=eh`2<= zHNO9&7vhI|y<49U4u%^5bM;zrN!-X2!Yyx_9Dlm{&+}*Q#N6~Wqg&i_)`0_E7+pw? zMzh)TD%S}d&*<{N`x5WKTew_)ou7%9>?ObU=HkJ`gNX;@-R5t0-ed+j=e^wv^#Rid jWcI29-KFjWW^XX}0&|m%>RYv>$+2@E+1MSGYy$uQ<&aoq literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce10.ish b/src/main/resources/objects/tree/spruce/small/spruce10.ish new file mode 100644 index 0000000000000000000000000000000000000000..14fe2ff83dcb4bc98ddbb204efe948f7d098283b GIT binary patch literal 112 zcmb2|=3sz;(g}fF4F){Uix<`Z>-fIEOMUa!qkhTZ%!?mSEJ$5*_me&mv74KGrn=L?4tGj+BeGUpVhgBb>}?Ko>P0|hWVc_lmF=+V*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce11.ish b/src/main/resources/objects/tree/spruce/small/spruce11.ish new file mode 100644 index 0000000000000000000000000000000000000000..ccfa712fb1bc742c0ceb2569f96b6e0c383e18d4 GIT binary patch literal 184 zcmV;p07w5HiwFP!000000Bw@N4#OY}L&GGrQ!o3E{r|B)R?Nzpbe`o%DDY&`#55v$ zL_Fil@3^96ew}NZXT&eQY;B0&I%TPY(G}ZEqq^k7+*Jl)eVq+ky*)DXY)u%1_40&u zWr(R)Z0Grz)me1YFc4!84$+NVljenClh~j4rWcr=As#ekRbRcz_h{Omu<8$bS6CC) mX%0v|n0m$3d(}<-2ED2N2Qc0bGutrz727^txYxFn0{{S;8(Fmg literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce12.ish b/src/main/resources/objects/tree/spruce/small/spruce12.ish new file mode 100644 index 0000000000000000000000000000000000000000..59b67b8aae9b98b774db4be584ca23ff949fb318 GIT binary patch literal 147 zcmV;E0BrvsiwFP!000000Ckc}4!|G?M6rqK%1sZ@``^Ng6)3itk||DNATOhiA0nzm zw9{KpHPNTTMpG9sN!XA?HX37`_$Cv?0Jl6ipa1{> literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce2.ish b/src/main/resources/objects/tree/spruce/small/spruce2.ish new file mode 100644 index 0000000000000000000000000000000000000000..2ac0969fbabb694b3078f8e6a16f669ef01b0b86 GIT binary patch literal 177 zcmV;i08alOiwFP!000000Bw?83IibwgeNTveeq>a(feOuFSf=io4`0tKq8+R&5r;M z03SU5JEl!AMi^D445uka1kWmfga7EWXc)v36sm-)a+N`(W literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce3.ish b/src/main/resources/objects/tree/spruce/small/spruce3.ish new file mode 100644 index 0000000000000000000000000000000000000000..409fa7a87687647a311f67d1d77435de0cf6b4df GIT binary patch literal 158 zcmV;P0Ac?hiwFP!000000Ckd44udcZLk$wzSAV#|?tg||j3$&V>5LU3p`s@nyDb1V z05AO3w~xVp_VF~2A$Dn(flL^bg;kk7=z5`3cJ)|eow?D+MaQf~=8fe>3vaSdzK=PC zefz1GSn7IcUC*HK8ha^6y)JumV%pD&4AXlPwkV@q{T{PM=XLYa|1mpPEbpo4*NZNb MolvuCF3bV|0NVLU5&!@I literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce4.ish b/src/main/resources/objects/tree/spruce/small/spruce4.ish new file mode 100644 index 0000000000000000000000000000000000000000..7fa1e8ba8546c4256856c8a2bedda4ae647b4caa GIT binary patch literal 186 zcmV;r07d^FiwFP!000000Bw@N4#F@DLtW4$E?oEw{{PO8QJ0n_lWQfHY)^ILGy!k` zc;L+MF=OV2GhT}agRtlN5dLQ)!WfMmp=F_Ep{0501zXVz&-chzjhS!4j?gq^`38|c zc}99xEs7dYZTi)7`R{dSd`&x|XY~SM+gla)vCz`IG-r9g-A7~B%!?YiN9r$Ux6MtM o_Q9eL+WXP8L-uIfT|bvS7dzCfUj}zCy_osMewt?ZWLN_L0KV2)p8x;= literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce5.ish b/src/main/resources/objects/tree/spruce/small/spruce5.ish new file mode 100644 index 0000000000000000000000000000000000000000..6c757ca6a30cfdeac5f17074af2f0264c82c5f40 GIT binary patch literal 180 zcmV;l089TLiwFP!000000CiG93d1lAQ#Jy-?6QCC|Hpl7R+mz{2u}?ZgOC)(6@Urg zfn&b6b=Dj>&TDN4Q literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce6.ish b/src/main/resources/objects/tree/spruce/small/spruce6.ish new file mode 100644 index 0000000000000000000000000000000000000000..26937cea29221c59958eb822198cd7d1f1681ec1 GIT binary patch literal 185 zcmV;q07m~GiwFP!000000Bw@N4#O}AL&>HdcIailvHw5!!xqSr6*|u{Qbqb?Qy?|7 z&CDKl=GT~Ezj)4PUkBh{HqHp4b6{KQoV>v-y9{eM`7q4DEmtfqRYy$uQckWg2 literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce7.ish b/src/main/resources/objects/tree/spruce/small/spruce7.ish new file mode 100644 index 0000000000000000000000000000000000000000..ef502eceed745fa9cb03002574736014eaed6693 GIT binary patch literal 274 zcmV+t0qy=DiwFP!000000Bw^|4#O}ALt#@l?V~@t)(*XcEs!N`Qn{{?sz^^JhCt2i zX=X3m&rfa9PPaYY?OPj4W_FIwmXT{B*EkonM=r4~SFjMQg3oqeueWQ3Z;0HWT2inO ztS}oMMR*kPR`+otyCEAn4s4w>8s~R-ChO*-i(JFpna94&Dg^qH?wAqX=P*y4M{<2F ze!`=OS_<`HLKmKeLfjXkzNGr*KjWmUf+es8cGAU8y4XnH*aNHLG(|Cg8xc4G!}yLfcH*sCDl6N8#V)EvS$sNX7dRrp?X Yurm+%cMJ6~>noG}0SB&VU+e_{0NdJvCjbBd literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce8.ish b/src/main/resources/objects/tree/spruce/small/spruce8.ish new file mode 100644 index 0000000000000000000000000000000000000000..6dab9c6da8515d8dd980020b9f37490c876f52c0 GIT binary patch literal 213 zcmb2|=3sz;(n*0_OolwHlc$RQ`EdMpMHPSAq?)r~Ey=I4nZ6?4JJ&?Pz0xYg5+Fbc$oW_M}dC zue$O4g}a|^$mX+tvcXv|KUl0j>+}<=>0HJu44BvIK4~Zqh&vGz6R|J8A({C&+h^;W N?2jEQ1X@@a7yvi%V=Djv literal 0 HcmV?d00001 diff --git a/src/main/resources/objects/tree/spruce/small/spruce9.ish b/src/main/resources/objects/tree/spruce/small/spruce9.ish new file mode 100644 index 0000000000000000000000000000000000000000..c01f988e7ea0130e26f3118c590d7a8a2cc7a3dd GIT binary patch literal 99 zcmb2|=3sz;-2Ol=21O2+<*~2I6W`ZQ_X}ILMD$}sNeOPr2A2Cz52`a|J^qai#@Uqsjy*WU;qGM CL@E&g literal 0 HcmV?d00001 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9c9773c6f..08edf6cb4 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,3 +1,6 @@ name: ${project.name} version: ${project.version} -main: ninja.bytecode.iris.Iris \ No newline at end of file +main: ninja.bytecode.iris.Iris +commands: + iris: + ish: \ No newline at end of file