mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2024-11-26 12:15:19 +01:00
Slightly larger En/Decoder buffers, isSimilar for Brew
This commit is contained in:
parent
2121bf5c8a
commit
562f96e4b1
@ -327,6 +327,16 @@ public class BIngredients {
|
||||
return Math.max(quality, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) return true;
|
||||
if (!(obj instanceof BIngredients)) return false;
|
||||
BIngredients other = ((BIngredients) obj);
|
||||
return cookedTime == other.cookedTime &&
|
||||
ingredients.equals(other.ingredients) &&
|
||||
materials.equals(other.materials);
|
||||
}
|
||||
|
||||
// Creates a copy ingredients
|
||||
@Override
|
||||
public BIngredients clone() {
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.PotionMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class BRecipe {
|
||||
@ -251,18 +252,7 @@ public class BRecipe {
|
||||
ItemStack potion = new ItemStack(Material.POTION);
|
||||
PotionMeta potionMeta = (PotionMeta) potion.getItemMeta();
|
||||
|
||||
ArrayList<ItemStack> list = new ArrayList<>(ingredients.size());
|
||||
for (ItemStack item : ingredients) {
|
||||
if (item.getDurability() == -1) {
|
||||
list.add(new ItemStack(item.getType(), item.getAmount()));
|
||||
} else {
|
||||
list.add(item.clone());
|
||||
}
|
||||
}
|
||||
|
||||
BIngredients bIngredients = new BIngredients(list, cookingTime);
|
||||
|
||||
Brew brew = new Brew(bIngredients, quality, distillruns, getAge(), wood, getName(5), false, true);
|
||||
Brew brew = createBrew(quality);
|
||||
|
||||
Brew.PotionColor.fromString(getColor()).colorBrew(potionMeta, potion, false);
|
||||
potionMeta.setDisplayName(P.p.color("&f" + getName(quality)));
|
||||
@ -283,6 +273,21 @@ public class BRecipe {
|
||||
return potion;
|
||||
}
|
||||
|
||||
public Brew createBrew(int quality) {
|
||||
ArrayList<ItemStack> list = new ArrayList<>(ingredients.size());
|
||||
for (ItemStack item : ingredients) {
|
||||
if (item.getDurability() == -1) {
|
||||
list.add(new ItemStack(item.getType(), item.getAmount()));
|
||||
} else {
|
||||
list.add(item.clone());
|
||||
}
|
||||
}
|
||||
|
||||
BIngredients bIngredients = new BIngredients(list, cookingTime);
|
||||
|
||||
return new Brew(bIngredients, quality, distillruns, getAge(), wood, getName(5), false, true);
|
||||
}
|
||||
|
||||
|
||||
// Getter
|
||||
|
||||
@ -365,4 +370,13 @@ public class BRecipe {
|
||||
public String toString() {
|
||||
return "BRecipe{" + getName(5) + '}';
|
||||
}
|
||||
|
||||
public static BRecipe get(String name) {
|
||||
for (BRecipe recipe : BIngredients.recipes) {
|
||||
if (recipe.getName(5).equalsIgnoreCase(name)) {
|
||||
return recipe;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -222,6 +222,20 @@ public class Brew {
|
||||
return copy;
|
||||
}*/
|
||||
|
||||
public boolean isSimilar(Brew brew) {
|
||||
if (brew == null) return false;
|
||||
if (equals(brew)) return true;
|
||||
return quality == brew.quality &&
|
||||
distillRuns == brew.distillRuns &&
|
||||
Float.compare(brew.ageTime, ageTime) == 0 &&
|
||||
Float.compare(brew.wood, wood) == 0 &&
|
||||
unlabeled == brew.unlabeled &&
|
||||
persistent == brew.persistent &&
|
||||
immutable == brew.immutable &&
|
||||
ingredients.equals(brew.ingredients) &&
|
||||
currentRecipe != null ? currentRecipe.equals(brew.currentRecipe) : brew.currentRecipe == null;
|
||||
}
|
||||
|
||||
// Clones this instance
|
||||
@Override
|
||||
public Brew clone() throws CloneNotSupportedException {
|
||||
|
@ -298,6 +298,8 @@ public class InventoryListener implements Listener {
|
||||
}
|
||||
P.p.log(brew.toString());
|
||||
P.p.log(potion.getLore().get(0).replaceAll("§", ""));
|
||||
P.p.log("similar to beispiel? " + BRecipe.get("Beispiel").createBrew(10).isSimilar(brew));
|
||||
|
||||
//brew.touch();
|
||||
|
||||
/*try {
|
||||
|
@ -7,8 +7,8 @@ import java.io.InputStream;
|
||||
public class Base91DecoderStream extends FilterInputStream {
|
||||
|
||||
private final basE91 decoder = new basE91();
|
||||
private byte[] decbuf = new byte[18];
|
||||
private byte[] buf = new byte[18];
|
||||
private byte[] decbuf = new byte[32];
|
||||
private byte[] buf = new byte[32];
|
||||
private int reader = 0;
|
||||
private int count = 0;
|
||||
private byte[] markBuf = null;
|
||||
@ -62,6 +62,7 @@ public class Base91DecoderStream extends FilterInputStream {
|
||||
int out = 0;
|
||||
int writeSize;
|
||||
while (count > 0) {
|
||||
// Not enough data in buffer, write all out, decode and repeat
|
||||
writeSize = Math.min(len, count - reader);
|
||||
System.arraycopy(buf, reader, b, off + out, writeSize);
|
||||
out += writeSize;
|
||||
@ -99,7 +100,8 @@ public class Base91DecoderStream extends FilterInputStream {
|
||||
|
||||
@Override
|
||||
public int available() throws IOException {
|
||||
return (int) (in.available() * 0.813F); // Ratio encoded to decoded with random data
|
||||
if (count == -1) return 0;
|
||||
return (int) (in.available() * 0.813F) + count - reader; // Ratio encoded to decoded with random data
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,8 +8,8 @@ import java.io.OutputStream;
|
||||
public class Base91EncoderStream extends FilterOutputStream {
|
||||
|
||||
private final basE91 encoder = new basE91();
|
||||
private byte[] buf = new byte[16];
|
||||
private byte[] encBuf = new byte[24];
|
||||
private byte[] buf = new byte[32];
|
||||
private byte[] encBuf = new byte[48];
|
||||
private int writer = 0;
|
||||
private int encoded = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user