""Fix"" Parallax map null issues

This commit is contained in:
Daniel Mills 2020-10-27 02:49:52 -04:00
parent 361d02e075
commit e75afe6c41
3 changed files with 102 additions and 77 deletions

View File

@ -173,6 +173,20 @@ public abstract class ParallaxTerrainProvider extends TopographicTerrainProvider
{
try
{
if(getParallaxMap() == null)
{
if(getTarget() == null)
{
Iris.warn("Parallax map was accessed before init! Serving a dummy chunk!");
return new AtomicSliverMap();
}
else
{
setParallaxMap(new AtomicWorldData(getTarget()));
}
}
return getParallaxMap().loadChunk(x, z);
}

View File

@ -1,26 +1,17 @@
package com.volmit.iris.manager;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.bukkit.Bukkit;
import com.minelazz.epicworldgenerator.structures.StructureObject;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
import com.sk89q.worldedit.math.BlockVector3;
import com.volmit.iris.Iris;
import com.volmit.iris.object.IrisObject;
import com.volmit.iris.util.Converter;
import com.volmit.iris.util.FastBlockData;
import com.volmit.iris.util.J;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarSender;
import com.volmit.iris.util.SKConversion;
public class ConversionManager
{
@ -33,6 +24,8 @@ public class ConversionManager
converters = new KList<>();
J.s(() ->
{
J.attemptAsync(() ->
{
if(Bukkit.getPluginManager().isPluginEnabled("WorldEdit"))
{
@ -53,7 +46,7 @@ public class ConversionManager
@Override
public void convert(File in, File out)
{
convertSchematic(in, out);
SKConversion.convertSchematic(in, out);
}
});
@ -74,10 +67,11 @@ public class ConversionManager
@Override
public void convert(File in, File out)
{
convertSchematic(in, out);
SKConversion.convertSchematic(in, out);
}
});
}
});
}, 5);
converters.add(new Converter()
@ -110,38 +104,6 @@ public class ConversionManager
});
}
public void convertSchematic(File in, File out)
{
ClipboardFormat format = ClipboardFormats.findByFile(in);
try(ClipboardReader reader = format.getReader(new FileInputStream(in)))
{
Clipboard clipboard = reader.read();
BlockVector3 size = clipboard.getMaximumPoint().subtract(clipboard.getMinimumPoint());
IrisObject o = new IrisObject(size.getBlockX() + 1, size.getBlockY() + 1, size.getBlockZ() + 1);
for(int i = clipboard.getMinimumPoint().getBlockX(); i <= clipboard.getMaximumPoint().getBlockX(); i++)
{
for(int j = clipboard.getMinimumPoint().getBlockY(); j <= clipboard.getMaximumPoint().getBlockY(); j++)
{
for(int k = clipboard.getMinimumPoint().getBlockZ(); k <= clipboard.getMaximumPoint().getBlockZ(); k++)
{
o.setUnsigned(i - clipboard.getMinimumPoint().getBlockX(), j - clipboard.getMinimumPoint().getBlockY(), k - clipboard.getMinimumPoint().getBlockZ(), FastBlockData.of(BukkitAdapter.adapt(clipboard.getFullBlock(BlockVector3.at(i, j, k)))));
}
}
}
o.write(out);
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void check(MortarSender s)
{
int m = 0;

View File

@ -0,0 +1,49 @@
package com.volmit.iris.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
import com.sk89q.worldedit.math.BlockVector3;
import com.volmit.iris.object.IrisObject;
public class SKConversion
{
public static void convertSchematic(File in, File out)
{
ClipboardFormat format = ClipboardFormats.findByFile(in);
try(ClipboardReader reader = format.getReader(new FileInputStream(in)))
{
Clipboard clipboard = reader.read();
BlockVector3 size = clipboard.getMaximumPoint().subtract(clipboard.getMinimumPoint());
IrisObject o = new IrisObject(size.getBlockX() + 1, size.getBlockY() + 1, size.getBlockZ() + 1);
for(int i = clipboard.getMinimumPoint().getBlockX(); i <= clipboard.getMaximumPoint().getBlockX(); i++)
{
for(int j = clipboard.getMinimumPoint().getBlockY(); j <= clipboard.getMaximumPoint().getBlockY(); j++)
{
for(int k = clipboard.getMinimumPoint().getBlockZ(); k <= clipboard.getMaximumPoint().getBlockZ(); k++)
{
o.setUnsigned(i - clipboard.getMinimumPoint().getBlockX(), j - clipboard.getMinimumPoint().getBlockY(), k - clipboard.getMinimumPoint().getBlockZ(), FastBlockData.of(BukkitAdapter.adapt(clipboard.getFullBlock(BlockVector3.at(i, j, k)))));
}
}
}
o.write(out);
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}