mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-29 20:19:06 +00:00
Metrics
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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]";
|
||||
}
|
||||
}
|
||||
@@ -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 "";
|
||||
}
|
||||
}
|
||||
@@ -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 "";
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user