This commit is contained in:
Daniel Mills 2020-10-18 08:39:26 -04:00
parent ffecbb2298
commit d67596117f
9 changed files with 2449 additions and 13 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>bytecode.ninja</groupId> <groupId>bytecode.ninja</groupId>
<artifactId>Iris</artifactId> <artifactId>Iris</artifactId>
<version>1.0.15</version> <version>1.0.17</version>
<name>Iris</name> <name>Iris</name>
<properties> <properties>
<skip.copy>false</skip.copy> <skip.copy>false</skip.copy>

View File

@ -5,7 +5,6 @@ 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.IrisSettings;
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.object.IrisBiome; import com.volmit.iris.object.IrisBiome;
@ -26,15 +25,9 @@ public class CommandIrisStudioGoto extends MortarCommand
@Override @Override
public boolean handle(MortarSender sender, String[] args) 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(args.length < 1) if(args.length < 1)
{ {
sender.sendMessage("/iris world goto " + getArgsUsage()); sender.sendMessage("/iris std goto " + getArgsUsage());
return true; return true;
} }

View File

@ -7,6 +7,7 @@ import org.bukkit.inventory.Inventory;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.IrisSettings; import com.volmit.iris.IrisSettings;
import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.scaffold.IrisWorlds; import com.volmit.iris.gen.scaffold.IrisWorlds;
import com.volmit.iris.object.InventorySlotType; import com.volmit.iris.object.InventorySlotType;
import com.volmit.iris.object.IrisLootTable; import com.volmit.iris.object.IrisLootTable;
@ -38,7 +39,14 @@ public class CommandIrisStudioLoot extends MortarCommand
if(sender.isPlayer()) if(sender.isPlayer())
{ {
Player p = sender.player(); Player p = sender.player();
IrisWorlds.getProvider(sender.player().getWorld()).getPopulators(); IrisTerrainProvider prov = IrisWorlds.getProvider(sender.player().getWorld());
if(prov == null)
{
sender.sendMessage("You can only use /iris loot in a studio world of iris.");
return true;
}
KList<IrisLootTable> tables = IrisWorlds.getProvider(sender.player().getWorld()).getGlUpdate().getLootTables(RNG.r, p.getLocation().getBlock()); KList<IrisLootTable> tables = IrisWorlds.getProvider(sender.player().getWorld()).getGlUpdate().getLootTables(RNG.r, p.getLocation().getBlock());
Inventory inv = Bukkit.createInventory(null, 27 * 2); Inventory inv = Bukkit.createInventory(null, 27 * 2);
Iris.proj.getActiveProject().getActiveProvider().getGlUpdate().addItems(true, inv, RNG.r, tables, InventorySlotType.STORAGE, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ(), 1); Iris.proj.getActiveProject().getActiveProvider().getGlUpdate().addItems(true, inv, RNG.r, tables, InventorySlotType.STORAGE, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ(), 1);

View File

@ -13,6 +13,9 @@ public class CommandIrisWhat extends MortarCommand
@Command @Command
private CommandIrisWhatHand hand; private CommandIrisWhatHand hand;
@Command
private CommandIrisWhatBiome biome;
public CommandIrisWhat() public CommandIrisWhat()
{ {
super("what", "w", "?"); super("what", "w", "?");

View File

@ -0,0 +1,57 @@
package com.volmit.iris.command;
import org.bukkit.World;
import org.bukkit.entity.Player;
import com.volmit.iris.Iris;
import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.provisions.ProvisionBukkit;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
public class CommandIrisWhatBiome extends MortarCommand
{
public CommandIrisWhatBiome()
{
super("biome", "bi");
setDescription("Get the biome data you are in.");
requiresPermission(Iris.perm.studio);
setCategory("Wut");
setDescription("What biome am i In");
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(sender.isPlayer())
{
Player p = sender.player();
World w = p.getWorld();
try
{
IrisBiome b = ((IrisTerrainProvider) ((ProvisionBukkit) w.getGenerator()).getProvider()).sampleTrueBiome(p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ());
sender.sendMessage("IBiome: " + b.getLoadKey() + " (" + b.getDerivative().name() + ")");
}
catch(Throwable e)
{
sender.sendMessage("Non-Iris Biome: " + p.getLocation().getBlock().getBiome().name());
}
}
else
{
sender.sendMessage("Players only.");
}
return true;
}
@Override
protected String getArgsUsage()
{
return "";
}
}

View File

@ -489,6 +489,11 @@ public class IrisTerrainProvider extends SkyTerrainProvider implements IrisConte
@Override @Override
protected void onSpawn(EntitySpawnEvent e) protected void onSpawn(EntitySpawnEvent e)
{ {
if(getTarget().getRealWorld() == null || !getTarget().getRealWorld().equals(e.getEntity().getWorld()))
{
return;
}
if(isSpawnable()) if(isSpawnable())
{ {
if(!IrisSettings.get().isSystemEntitySpawnOverrides()) if(!IrisSettings.get().isSystemEntitySpawnOverrides())

View File

@ -285,6 +285,7 @@ public class CNG
{ {
Iris.error("Failed to sample noise into array " + v.size() + " nodes"); Iris.error("Failed to sample noise into array " + v.size() + " nodes");
Iris.error("Noise Source: " + generator.getClass().getSimpleName()); Iris.error("Noise Source: " + generator.getClass().getSimpleName());
} }
return v.get(0); return v.get(0);

File diff suppressed because one or more lines are too long

View File

@ -4,16 +4,16 @@ import com.volmit.iris.util.RNG;
public class WhiteNoise implements NoiseGenerator public class WhiteNoise implements NoiseGenerator
{ {
private final FastNoiseDouble n; private final FastNoise n;
public WhiteNoise(long seed) public WhiteNoise(long seed)
{ {
n = new FastNoiseDouble(new RNG(seed).lmax()); n = new FastNoise(new RNG(seed).imax());
} }
private double f(double m) private double f(double m)
{ {
return m; return (m % 8192) * 1024;
} }
@Override @Override