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
2020-11-15 23:36:33 -05:00
parent 116ab72f4e
commit 6d08faa30f
33 changed files with 576 additions and 265 deletions

View File

@@ -2,7 +2,6 @@ package com.volmit.iris.manager;
import com.volmit.iris.Iris;
import com.volmit.iris.object.*;
import com.volmit.iris.util.KMap;
import com.volmit.iris.util.ObjectResourceLoader;
import com.volmit.iris.util.RNG;
import com.volmit.iris.util.ResourceLoader;
@@ -14,7 +13,6 @@ import java.util.function.Function;
@Data
public class IrisDataManager
{
public static final KMap<Integer, IrisDataManager> managers = new KMap<>();
private ResourceLoader<IrisBiome> biomeLoader;
private ResourceLoader<IrisLootTable> lootLoader;
private ResourceLoader<IrisRegion> regionLoader;
@@ -39,17 +37,11 @@ public class IrisDataManager
this.id = RNG.r.imax();
closed = false;
hotloaded();
if(!oneshot)
{
managers.put(id, this);
}
}
public void close()
{
closed = true;
managers.remove(id);
dump();
this.lootLoader = null;
this.entityLoader = null;
@@ -62,23 +54,6 @@ public class IrisDataManager
this.objectLoader = null;
}
public static void dumpManagers()
{
for(IrisDataManager i : managers.v())
{
Iris.warn(i.getId() + " @ " + i.getDataFolder().getAbsolutePath());
printData(i.lootLoader);
printData(i.entityLoader);
printData(i.regionLoader);
printData(i.biomeLoader);
printData(i.dimensionLoader);
printData(i.structureLoader);
printData(i.generatorLoader);
printData(i.blockLoader);
printData(i.objectLoader);
}
}
private static void printData(ResourceLoader<?> rl)
{
Iris.warn(" " + rl.getResourceTypeName() + " @ /" + rl.getFolderName() + ": Cache=" + rl.getLoadCache().size() + " Folders=" + rl.getFolders().size());

View File

@@ -35,15 +35,6 @@ public class CommandIris extends MortarCommand
@Command
private CommandIrisMetrics metrics;
@Command
private CommandIrisCTC ctc;
@Command
private CommandIrisLMM lmm;
@Command
private CommandIrisIDM idm;
@Command
private CommandIrisPregen pregen;

View File

@@ -1,71 +0,0 @@
package com.volmit.iris.manager.command;
import com.volmit.iris.Iris;
import com.volmit.iris.scaffold.IrisWorlds;
import com.volmit.iris.scaffold.engine.IrisAccess;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
import org.bukkit.World;
import org.bukkit.entity.Player;
public class CommandIrisCTC extends MortarCommand
{
public CommandIrisCTC()
{
super("ctc", "threads", "thread");
setDescription("Change generator thread count");
requiresPermission(Iris.perm.studio);
setCategory("World");
}
@Override
public void addTabOptions(MortarSender sender, String[] args, KList<String> list) {
if(args.length == 0)
{
list.qadd("4").qadd("8").qadd("12").qadd("16").qadd("18").qadd("24").qadd("32");
}
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(sender.isPlayer())
{
Player p = sender.player();
World world = p.getWorld();
if(!IrisWorlds.isIrisWorld(world))
{
sender.sendMessage("You must be in an iris world.");
return true;
}
IrisAccess g = IrisWorlds.access(world);
if(args.length == 0){
sender.sendMessage("Current threads: " + g.getThreadCount());
sender.sendMessage("You can change the treadcount with /iris ctc <number>");
return true;
}
int m = Math.min(Math.max(Integer.valueOf(args[0]), 2), 256);
g.changeThreadCount(m);
sender.sendMessage("Thread count changed to " + m);
return true;
}
else
{
sender.sendMessage("Players only.");
}
return true;
}
@Override
protected String getArgsUsage()
{
return "[thread-count]";
}
}

View File

@@ -1,43 +0,0 @@
package com.volmit.iris.manager.command;
import com.volmit.iris.Iris;
import com.volmit.iris.manager.IrisDataManager;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
public class CommandIrisIDM extends MortarCommand
{
public CommandIrisIDM()
{
super("idm");
setDescription("Diagnostics for Iris Data Managers");
requiresPermission(Iris.perm.studio);
setCategory("World");
}
@Override
public void addTabOptions(MortarSender sender, String[] args, KList<String> list) {
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(sender.isPlayer())
{
sender.sendMessage("Use this in the console.");
return true;
}
sender.sendMessage("Total Managers: " + IrisDataManager.managers.size());
IrisDataManager.dumpManagers();
return true;
}
@Override
protected String getArgsUsage()
{
return "";
}
}

View File

@@ -1,36 +0,0 @@
package com.volmit.iris.manager.command;
import com.volmit.iris.Iris;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
public class CommandIrisLMM extends MortarCommand
{
public CommandIrisLMM()
{
super("lmm");
setDescription("Toggle Low Memory Mode");
requiresPermission(Iris.perm.studio);
setCategory("World");
}
@Override
public void addTabOptions(MortarSender sender, String[] args, KList<String> list) {
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
Iris.lowMemoryMode = !Iris.lowMemoryMode;
sender.sendMessage("Low Memory Mode is " + (Iris.lowMemoryMode ? "On" : "Off"));
return true;
}
@Override
protected String getArgsUsage()
{
return "";
}
}

View File

@@ -36,7 +36,16 @@ public class CommandIrisMetrics extends MortarCommand
}
IrisAccess g = IrisWorlds.access(world);
// TODO: METRICS
try
{
g.printMetrics(sender);
}
catch(Throwable e)
{
sender.sendMessage("You must be in an iris world.");
}
return true;
}

View File

@@ -27,8 +27,8 @@ public class CommandIrisStudio extends MortarCommand
@Command
private CommandIrisStudioUpdate update;
@Command
private CommandIrisStudioMap map;
//@Command
//private CommandIrisStudioMap map;
@Command
private CommandIrisStudioGoto got0;

View File

@@ -2,6 +2,7 @@ package com.volmit.iris.manager.command;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisSettings;
import com.volmit.iris.manager.gui.IrisVision;
import com.volmit.iris.scaffold.engine.IrisAccess;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
@@ -38,8 +39,8 @@ public class CommandIrisStudioMap extends MortarCommand
}
IrisAccess g = Iris.proj.getActiveProject().getActiveProvider();
// IrisVision.launch(g);
sender.sendMessage("NYI: Opening Map!");
IrisVision.launch(g, 0);
sender.sendMessage("Opening Map!");
return true;
}

View File

@@ -1,7 +1,7 @@
package com.volmit.iris.manager.gui;
import com.volmit.iris.Iris;
import com.volmit.iris.scaffold.engine.GeneratorAccess;
import com.volmit.iris.scaffold.engine.IrisAccess;
import com.volmit.iris.util.*;
import javax.imageio.ImageIO;
@@ -35,7 +35,6 @@ public class IrisVision extends JPanel implements MouseWheelListener
private double oz = 0;
private double oxp = 0;
private double ozp = 0;
private short lid = -1;
double tfps = 240D;
private RollingSequence rs = new RollingSequence(512);
private O<Integer> m = new O<>();
@@ -131,7 +130,6 @@ public class IrisVision extends JPanel implements MouseWheelListener
working.add(key);
double mk = mscale;
double mkd = scale;
short l = lid;
e.submit(() ->
{
PrecisionStopwatch ps = PrecisionStopwatch.start();
@@ -139,7 +137,7 @@ public class IrisVision extends JPanel implements MouseWheelListener
rs.put(ps.getMilliseconds());
working.remove(key);
if(mk == mscale && mkd == scale && lid == l)
if(mk == mscale && mkd == scale)
{
positions.put(key, b);
}
@@ -162,7 +160,6 @@ public class IrisVision extends JPanel implements MouseWheelListener
workingfast.add(key);
double mk = mscale;
double mkd = scale;
short l = lid;
eh.submit(() ->
{
PrecisionStopwatch ps = PrecisionStopwatch.start();
@@ -170,7 +167,7 @@ public class IrisVision extends JPanel implements MouseWheelListener
rs.put(ps.getMilliseconds());
workingfast.remove(key);
if(mk == mscale && mkd == scale && lid == l)
if(mk == mscale && mkd == scale)
{
fastpositions.put(key, b);
}
@@ -202,17 +199,6 @@ public class IrisVision extends JPanel implements MouseWheelListener
ozp += Math.abs(ozp - oz) * 0.36;
}
// TODO: DETECT HOTLOADS
if(false)
{
working.clear();
workingfast.clear();
positions.clear();
fastpositions.clear();
//TODO: lid = Iris.proj.getActiveProject().getActiveProvider().getCacheID();
Iris.info("Hotloading Vision");
}
PrecisionStopwatch p = PrecisionStopwatch.start();
Graphics2D g = (Graphics2D) gx;
w = getWidth();
@@ -293,14 +279,13 @@ public class IrisVision extends JPanel implements MouseWheelListener
});
}
private static void createAndShowGUI(Renderer r, short s)
private static void createAndShowGUI(Renderer r, int s)
{
JFrame frame = new JFrame("Vision");
IrisVision nv = new IrisVision();
nv.renderer = new IrisRenderer(r);
frame.add(nv);
frame.setSize(1440, 820);
nv.lid = s;
frame.setVisible(true);
File file = Iris.getCached("Iris Icon", "https://raw.githubusercontent.com/VolmitSoftware/Iris/master/icon.png");
@@ -318,11 +303,10 @@ public class IrisVision extends JPanel implements MouseWheelListener
}
}
public static void launch(GeneratorAccess g)
{
public static void launch(IrisAccess g, int i) {
J.a(() ->
{
//createAndShowGUI(g.createRenderer(), g.getCacheID());
createAndShowGUI((x, z) -> g.getEngineAccess(i).draw(x, z), i);
});
}
@@ -334,7 +318,7 @@ public class IrisVision extends JPanel implements MouseWheelListener
return;
}
Iris.info("BPP: " + (mscale) + " BW: " + (w * mscale));
Iris.info("Blocks/Pixel: " + (mscale) + ", Blocks Wide: " + (w * mscale));
positions.clear();
fastpositions.clear();
mscale = mscale + ((0.044 * mscale) * notches);