mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-29 20:19:06 +00:00
Performance & Fixes
This commit is contained in:
@@ -1,27 +1,20 @@
|
||||
package com.volmit.iris.object;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.volmit.iris.util.*;
|
||||
import lombok.Data;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.IO;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.KMap;
|
||||
|
||||
import lombok.Data;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@Data
|
||||
public class IrisCompat
|
||||
{
|
||||
private KList<IrisCompatabilityBlockFilter> blockFilters = new KList<>();
|
||||
private KList<IrisCompatabilityItemFilter> itemFilters = new KList<>();
|
||||
private transient KMap<String, BlockData> blockResolves = new KMap<>();
|
||||
private transient KMap<String, Material> itemResolves = new KMap<>();
|
||||
private KList<IrisCompatabilityBlockFilter> blockFilters;
|
||||
private KList<IrisCompatabilityItemFilter> itemFilters;
|
||||
|
||||
public IrisCompat()
|
||||
{
|
||||
@@ -31,162 +24,140 @@ public class IrisCompat
|
||||
|
||||
public BlockData getBlock(String n)
|
||||
{
|
||||
return blockResolves.compute(n, (k, v) ->
|
||||
String buf = n;
|
||||
int err = 16;
|
||||
|
||||
BlockData tx = B.getOrNull(buf);
|
||||
|
||||
if(tx != null)
|
||||
{
|
||||
if(k != null && v != null)
|
||||
return tx;
|
||||
}
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(err-- <= 0)
|
||||
{
|
||||
return v;
|
||||
return B.get("STONE");
|
||||
}
|
||||
|
||||
String buf = k;
|
||||
int err = 16;
|
||||
|
||||
BlockData tx = B.parseBlockDataOrNull(buf);
|
||||
|
||||
if(tx != null)
|
||||
for(IrisCompatabilityBlockFilter i : blockFilters)
|
||||
{
|
||||
return tx;
|
||||
}
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(err-- <= 0)
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
{
|
||||
return B.parseBlockDataOrNull("STONE");
|
||||
}
|
||||
BlockData b = i.getReplace();
|
||||
|
||||
for(IrisCompatabilityBlockFilter i : blockFilters)
|
||||
{
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
if(b != null)
|
||||
{
|
||||
BlockData b = i.getReplace();
|
||||
|
||||
if(b != null)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
||||
return B.parseBlockDataOrNull("STONE");
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return B.get("STONE");
|
||||
}
|
||||
}
|
||||
|
||||
public Material getItem(String n)
|
||||
{
|
||||
return itemResolves.compute(n, (k, v) ->
|
||||
String buf = n;
|
||||
int err = 16;
|
||||
Material txf = B.getMaterialOrNull(buf);
|
||||
|
||||
if(txf != null)
|
||||
{
|
||||
if(k != null && v != null)
|
||||
return txf;
|
||||
}
|
||||
|
||||
int nomore = 64;
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(nomore < 0)
|
||||
{
|
||||
return v;
|
||||
return B.getMaterial("STONE");
|
||||
}
|
||||
|
||||
String buf = k;
|
||||
int err = 16;
|
||||
Material txf = B.getMaterialOrNull(buf);
|
||||
|
||||
if(txf != null)
|
||||
nomore--;
|
||||
if(err-- <= 0)
|
||||
{
|
||||
return txf;
|
||||
}
|
||||
|
||||
int nomore = 64;
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(nomore < 0)
|
||||
{
|
||||
return B.parseBlockDataOrNull("STONE").getMaterial();
|
||||
}
|
||||
|
||||
nomore--;
|
||||
if(err-- <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
for(IrisCompatabilityItemFilter i : itemFilters)
|
||||
{
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
{
|
||||
Material b = i.getReplace();
|
||||
|
||||
if(b != null)
|
||||
{
|
||||
return b;
|
||||
}
|
||||
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
buf = k;
|
||||
BlockData tx = B.parseBlockDataOrNull(buf);
|
||||
|
||||
if(tx != null)
|
||||
for(IrisCompatabilityItemFilter i : itemFilters)
|
||||
{
|
||||
return tx.getMaterial();
|
||||
}
|
||||
nomore = 64;
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(nomore < 0)
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
{
|
||||
return B.parseBlockDataOrNull("STONE").getMaterial();
|
||||
}
|
||||
Material b = i.getReplace();
|
||||
|
||||
nomore--;
|
||||
|
||||
if(err-- <= 0)
|
||||
{
|
||||
return B.parseBlockDataOrNull("STONE").getMaterial();
|
||||
}
|
||||
|
||||
for(IrisCompatabilityBlockFilter i : blockFilters)
|
||||
{
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
if(b != null)
|
||||
{
|
||||
BlockData b = i.getReplace();
|
||||
|
||||
if(b != null)
|
||||
{
|
||||
return b.getMaterial();
|
||||
}
|
||||
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
||||
return B.parseBlockDataOrNull("STONE").getMaterial();
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
buf = n;
|
||||
BlockData tx = B.getOrNull(buf);
|
||||
|
||||
if(tx != null)
|
||||
{
|
||||
return tx.getMaterial();
|
||||
}
|
||||
nomore = 64;
|
||||
|
||||
searching: while(true)
|
||||
{
|
||||
if(nomore < 0)
|
||||
{
|
||||
return B.getMaterial("STONE");
|
||||
}
|
||||
|
||||
nomore--;
|
||||
|
||||
if(err-- <= 0)
|
||||
{
|
||||
return B.getMaterial("STONE");
|
||||
}
|
||||
|
||||
for(IrisCompatabilityBlockFilter i : blockFilters)
|
||||
{
|
||||
if(i.getWhen().equalsIgnoreCase(buf))
|
||||
{
|
||||
BlockData b = i.getReplace();
|
||||
|
||||
if(b != null)
|
||||
{
|
||||
return b.getMaterial();
|
||||
}
|
||||
|
||||
buf = i.getSupplement();
|
||||
continue searching;
|
||||
}
|
||||
}
|
||||
|
||||
return B.getMaterial("STONE");
|
||||
}
|
||||
}
|
||||
|
||||
public static IrisCompat configured(File f)
|
||||
{
|
||||
IrisCompat def = new IrisCompat();
|
||||
String defa = new JSONObject(new Gson().toJson(def)).toString(4);
|
||||
J.attemptAsync(() -> IO.writeAll(new File(f.getParentFile(), "compat.default.json"), defa));
|
||||
|
||||
if(!f.exists())
|
||||
{
|
||||
try
|
||||
{
|
||||
IO.writeAll(f, new Gson().toJson(def));
|
||||
}
|
||||
|
||||
catch(IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
J.attemptAsync(() -> IO.writeAll(f, defa));
|
||||
}
|
||||
|
||||
try
|
||||
@@ -195,12 +166,12 @@ public class IrisCompat
|
||||
|
||||
for(IrisCompatabilityBlockFilter i : rea.getBlockFilters())
|
||||
{
|
||||
def.getBlockFilters().add(0, i);
|
||||
def.getBlockFilters().add(i);
|
||||
}
|
||||
|
||||
for(IrisCompatabilityItemFilter i : rea.getItemFilters())
|
||||
{
|
||||
def.getItemFilters().add(0, i);
|
||||
def.getItemFilters().add(i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,14 +44,14 @@ public class IrisCompatabilityBlockFilter
|
||||
|
||||
public BlockData getFind()
|
||||
{
|
||||
return findData.aquire(() -> B.getBlockData(when));
|
||||
return findData.aquire(() -> B.get(when));
|
||||
}
|
||||
|
||||
public BlockData getReplace()
|
||||
{
|
||||
return replaceData.aquire(() ->
|
||||
{
|
||||
BlockData b = B.parseBlockDataOrNull(supplement);
|
||||
BlockData b = B.getOrNull(supplement);
|
||||
|
||||
if(b == null)
|
||||
{
|
||||
|
||||
@@ -401,16 +401,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
return r;
|
||||
}
|
||||
|
||||
public BlockData resolveBlock(String bd)
|
||||
{
|
||||
return Iris.compat.getBlock(bd);
|
||||
}
|
||||
|
||||
public Material resolveItem(String bd)
|
||||
{
|
||||
return Iris.compat.getItem(bd);
|
||||
}
|
||||
|
||||
public IrisGeneratorStyle getBiomeStyle(InferredType type)
|
||||
{
|
||||
switch(type)
|
||||
|
||||
@@ -37,10 +37,10 @@ import lombok.experimental.Accessors;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class IrisObject extends IrisRegistrant
|
||||
{
|
||||
private static final BlockData AIR = B.getBlockData("CAVE_AIR");
|
||||
private static final BlockData VAIR = B.getBlockData("VOID_AIR");
|
||||
private static final BlockData VAIR_DEBUG = B.getBlockData("COBWEB");
|
||||
private static final BlockData[] SNOW_LAYERS = new BlockData[] {B.getBlockData("minecraft:snow[layers=1]"), B.getBlockData("minecraft:snow[layers=2]"), B.getBlockData("minecraft:snow[layers=3]"), B.getBlockData("minecraft:snow[layers=4]"), B.getBlockData("minecraft:snow[layers=5]"), B.getBlockData("minecraft:snow[layers=6]"), B.getBlockData("minecraft:snow[layers=7]"), B.getBlockData("minecraft:snow[layers=8]")};
|
||||
private static final BlockData AIR = B.get("CAVE_AIR");
|
||||
private static final BlockData VAIR = B.get("VOID_AIR");
|
||||
private static final BlockData VAIR_DEBUG = B.get("COBWEB");
|
||||
private static final BlockData[] SNOW_LAYERS = new BlockData[] {B.get("minecraft:snow[layers=1]"), B.get("minecraft:snow[layers=2]"), B.get("minecraft:snow[layers=3]"), B.get("minecraft:snow[layers=4]"), B.get("minecraft:snow[layers=5]"), B.get("minecraft:snow[layers=6]"), B.get("minecraft:snow[layers=7]"), B.get("minecraft:snow[layers=8]")};
|
||||
public static boolean shitty = false;
|
||||
private KMap<BlockVector, BlockData> blocks;
|
||||
private int w;
|
||||
@@ -234,7 +234,7 @@ public class IrisObject extends IrisRegistrant
|
||||
|
||||
for(int i = 0; i < s; i++)
|
||||
{
|
||||
blocks.put(new BlockVector(din.readShort(), din.readShort(), din.readShort()), B.getBlockData(din.readUTF()));
|
||||
blocks.put(new BlockVector(din.readShort(), din.readShort(), din.readShort()), B.get(din.readUTF()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user