diff --git a/changelog b/changelog index 6033ddcf9..ba1fe08f2 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,8 @@ * Rad absorbers now use metadata, existing blocks will be converted automatically * Fissure bombs that go off in crater biomes now create fissures with metadata 1 which creates radioactive volcanic lava * If a crater biome is created on top of an existing fissue, it will keep producing normal volcanic lava +* Simplified the battery socket's client packets, reducing CPU load # Fixed -* Potentially fixed yet another issue regarding crates \ No newline at end of file +* Potentially fixed yet another issue regarding crates +* Fixed battery socket `fillpercent` RoR function always assuming a max power of 1 \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockPlushie.java b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java index 946961fc4..9fd7a32b0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPlushie.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java @@ -159,7 +159,8 @@ public class BlockPlushie extends BlockContainer implements IBlockMulti, IToolti NONE( "NONE", null), YOMI( "Yomi", "Hi! Can I be your rabbit friend?"), NUMBERNINE( "Number Nine", "None of y'all deserve coal."), - HUNDUN( "Hundun", "混沌"); + HUNDUN( "Hundun", "混沌"), + DERG( "Dragon", "Squeeze him."); public String label; public String inscription; diff --git a/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java index 61cb49b96..4cac3f5cb 100644 --- a/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java +++ b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java @@ -82,9 +82,9 @@ public class MachineBatterySocket extends BlockDummyable implements ITooltipProv if(socket.syncStack == null) return; List text = new ArrayList(); - text.add(BobMathUtil.getShortNumber(socket.powerFromStack(socket.syncStack)) + " / " + BobMathUtil.getShortNumber(socket.maxPowerFromStack(socket.syncStack)) + "HE"); + text.add(BobMathUtil.getShortNumber(socket.syncPower) + " / " + BobMathUtil.getShortNumber(socket.syncMaxPower) + "HE"); - double percent = (double) socket.powerFromStack(socket.syncStack) / (double) socket.maxPowerFromStack(socket.syncStack); + double percent = (double) socket.syncPower / socket.syncMaxPower; int charge = (int) Math.floor(percent * 10_000D); int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlushie.java b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java index a482eba91..e870f472c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPlushie.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java @@ -31,9 +31,11 @@ public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRen public static final IModelCustom yomiModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/yomi.obj"), false).asVBO(); public static final IModelCustom hundunModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/hundun.obj"), false).asVBO(); + public static final IModelCustom dergModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/derg.obj"), false).asVBO(); public static final ResourceLocation yomiTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/yomi.png"); public static final ResourceLocation numbernineTex = new ResourceLocation(RefStrings.MODID, "textures/models/horse/numbernine.png"); public static final ResourceLocation hundunTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/hundun.png"); + public static final ResourceLocation dergTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/derg.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { @@ -54,13 +56,14 @@ public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRen case YOMI: GL11.glScaled(0.5, 0.5, 0.5); break; case NUMBERNINE: GL11.glScaled(0.75, 0.75, 0.75); break; case HUNDUN: GL11.glScaled(1, 1, 1); break; + case DERG: break; } - renderPlushie(te.type); + renderPlushie(te.type, te.squishTimer > 0); GL11.glPopMatrix(); } - public static void renderPlushie(PlushieType type) { + public static void renderPlushie(PlushieType type, boolean squish) { GL11.glEnable(GL12.GL_RESCALE_NORMAL); @@ -114,6 +117,11 @@ public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRen Minecraft.getMinecraft().getTextureManager().bindTexture(hundunTex); hundunModel.renderPart("goober_posed"); break; + case DERG: + Minecraft.getMinecraft().getTextureManager().bindTexture(dergTex); + dergModel.renderPart("Derg"); + dergModel.renderPart(squish ? "Blep" : "ColonThree"); + break; } } @@ -139,8 +147,9 @@ public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRen case YOMI: GL11.glScaled(1.25, 1.25, 1.25); break; case NUMBERNINE: GL11.glTranslated(0, 0.25, 0.25); GL11.glScaled(1.25, 1.25, 1.25); break; case HUNDUN: GL11.glTranslated(0.5, 0.5, 0); GL11.glScaled(1.25, 1.25, 1.25); break; + case DERG: GL11.glScaled(1.5, 1.5, 1.5); break; } - renderPlushie(type); + renderPlushie(type, false); }}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java index c9b7873e3..36fadf854 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerBatterySocket; import com.hbm.inventory.gui.GUIBatterySocket; -import com.hbm.util.BufferUtil; import com.hbm.util.CompatEnergyControl; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,6 +18,7 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; @@ -29,7 +29,9 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR public long[] log = new long[20]; public long delta = 0; - + + public long syncPower = 0; + public long syncMaxPower = 0; public ItemStack syncStack; public TileEntityBatterySocket() { @@ -61,14 +63,22 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR public void serialize(ByteBuf buf) { super.serialize(buf); buf.writeLong(delta); - BufferUtil.writeItemStack(buf, this.slots[0]); + buf.writeLong(this.getPower()); + buf.writeLong(this.getMaxPower()); + if(this.slots[0] != null) { + buf.writeInt(Item.getIdFromItem(slots[0].getItem())); + buf.writeShort(slots[0].getItemDamage()); + } } @Override public void deserialize(ByteBuf buf) { super.deserialize(buf); delta = buf.readLong(); - this.syncStack = BufferUtil.readItemStack(buf); + syncPower = buf.readLong(); + syncMaxPower = buf.readLong(); + int itemId = buf.readInt(); + if(itemId != -1) this.syncStack = new ItemStack(Item.getItemById(itemId), 1, buf.readShort()); } @Override @@ -183,7 +193,7 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR @Override public String provideRORValue(String name) { if((PREFIX_VALUE + "fill").equals(name)) return "" + this.getPower(); - if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + this.getPower() * 100 / (Math.min(this.getMaxPower(), 1)); + if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + this.getPower() * 100 / (Math.max(this.getMaxPower(), 1)); if((PREFIX_VALUE + "delta").equals(name)) return "" + delta; return null; } diff --git a/src/main/java/com/hbm/util/ArmorRegistry.java b/src/main/java/com/hbm/util/ArmorRegistry.java index 113976bae..dfe79a2ed 100644 --- a/src/main/java/com/hbm/util/ArmorRegistry.java +++ b/src/main/java/com/hbm/util/ArmorRegistry.java @@ -73,13 +73,13 @@ public class ArmorRegistry { ItemStack filter = mask.getFilter(stack, entity); if(filter != null) { + //add the HazardClasses from the filter, then remove the ones blacklisted by the mask - List filProt = (List) hazardClasses.get(filter.getItem()).clone(); - - for(HazardClass c : mask.getBlacklist(stack, entity)) - filProt.remove(c); - - prot.addAll(filProt); + if(hazardClasses.containsKey(filter.getItem())) { + List filProt = (List) hazardClasses.get(filter.getItem()).clone(); + for(HazardClass c : mask.getBlacklist(stack, entity)) filProt.remove(c); + prot.addAll(filProt); + } } } diff --git a/src/main/resources/assets/hbm/models/trinkets/derg.obj b/src/main/resources/assets/hbm/models/trinkets/derg.obj new file mode 100644 index 000000000..c97930f49 --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/derg.obj @@ -0,0 +1,464 @@ +# Blender v2.79 (sub 0) OBJ File: 'derg.blend' +# www.blender.org +o ColonThree +v 0.510000 0.781250 0.062500 +v 0.510000 0.656250 0.062500 +v 0.510000 0.781250 -0.062500 +v 0.510000 0.656250 -0.062500 +vt 0.333333 0.785714 +vt 0.458333 1.000000 +vt 0.333333 1.000000 +vt 0.458333 0.785714 +vn 1.0000 0.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 2/1/1 4/4/1 3/2/1 +o Blep +v 0.500000 0.718750 0.062500 +v 0.500000 0.593750 0.062500 +v 0.500000 0.718750 -0.062500 +v 0.500000 0.593750 -0.062500 +v 0.562500 0.718750 -0.062500 +v 0.562500 0.718750 0.062500 +v 0.562500 0.593750 0.062500 +v 0.562500 0.593750 -0.062500 +vt 0.541667 0.964286 +vt 0.583333 0.892857 +vt 0.583333 0.964286 +vt 0.479167 0.892857 +vt 0.520833 0.964286 +vt 0.479167 0.964286 +vt 0.520833 0.892857 +vt 0.541667 0.892857 +vt 0.458333 0.892857 +vt 0.458333 0.964286 +vt 0.520833 0.857143 +vt 0.479167 0.857143 +vt 0.479167 1.000000 +vt 0.520833 1.000000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 7/5/2 6/6/2 5/7/2 +f 11/8/3 9/9/3 10/10/3 +f 7/5/4 12/11/4 8/12/4 +f 6/13/5 10/10/5 5/14/5 +f 8/15/6 11/8/6 6/16/6 +f 5/17/7 9/9/7 7/18/7 +f 7/5/2 8/12/2 6/6/2 +f 11/8/3 12/11/3 9/9/3 +f 7/5/4 9/9/4 12/11/4 +f 6/13/5 11/8/5 10/10/5 +f 8/15/6 12/11/6 11/8/6 +f 5/17/7 10/10/7 9/9/7 +o Derg +v -0.250000 0.625000 0.250000 +v -0.250000 1.125000 0.250000 +v -0.250000 0.625000 -0.250000 +v -0.250000 1.125000 -0.250000 +v 0.250000 0.625000 0.250000 +v 0.250000 1.125000 0.250000 +v 0.250000 0.625000 -0.250000 +v 0.250000 1.125000 -0.250000 +v 0.250000 0.656250 0.093750 +v 0.250000 0.843750 0.093750 +v 0.250000 0.656250 -0.093750 +v 0.250000 0.843750 -0.093750 +v 0.500000 0.843750 -0.093750 +v 0.500000 0.656250 -0.093750 +v 0.500000 0.656250 0.093750 +v 0.500000 0.843750 0.093750 +v 0.000000 1.016747 -0.062500 +v -0.324760 1.204247 -0.062500 +v 0.000000 1.016747 -0.187500 +v -0.324760 1.204247 -0.187500 +v 0.062500 1.125000 -0.062500 +v -0.262260 1.312500 -0.062500 +v 0.062500 1.125000 -0.187500 +v -0.262260 1.312500 -0.187500 +v -0.102903 0.625000 0.084597 +v -0.102903 0.250000 0.084597 +v -0.147097 0.625000 0.040403 +v -0.147097 0.250000 0.040403 +v -0.279680 0.625000 0.261374 +v -0.279680 0.250000 0.261374 +v -0.323874 0.625000 0.217180 +v -0.323874 0.250000 0.217180 +v -0.125000 0.625000 0.187500 +v -0.125000 0.625000 -0.187500 +v 0.125000 0.625000 0.187500 +v 0.125000 0.625000 -0.187500 +v -0.125000 0.125000 -0.187500 +v -0.125000 0.125000 0.187500 +v 0.125000 0.125000 -0.187500 +v 0.125000 0.125000 0.187500 +v -0.062500 0.000000 -0.031250 +v -0.062500 0.125000 -0.031250 +v -0.062500 0.000000 -0.156250 +v -0.062500 0.125000 -0.156250 +v 0.437500 0.000000 -0.031250 +v 0.437500 0.125000 -0.031250 +v 0.437500 0.000000 -0.156250 +v 0.437500 0.125000 -0.156250 +v 0.062500 0.588388 0.187500 +v 0.062500 0.323223 0.452665 +v 0.062500 0.500000 0.099112 +v 0.062500 0.234835 0.364277 +v -0.062500 0.588388 0.187500 +v -0.062500 0.323223 0.452665 +v -0.062500 0.500000 0.099112 +v -0.062500 0.234835 0.364277 +v -0.544051 -0.023375 0.062500 +v -0.565757 0.099726 0.062500 +v -0.544051 -0.023375 -0.062500 +v -0.565757 0.099726 -0.062500 +v -0.051647 0.063450 0.062500 +v -0.073353 0.186550 0.062500 +v -0.051647 0.063450 -0.062500 +v -0.073353 0.186550 -0.062500 +v -0.062500 0.234835 -0.364277 +v -0.062500 0.500000 -0.099112 +v -0.062500 0.323223 -0.452665 +v -0.062500 0.588388 -0.187500 +v 0.062500 0.234835 -0.364277 +v 0.062500 0.500000 -0.099112 +v 0.062500 0.323223 -0.452665 +v 0.062500 0.588388 -0.187500 +v 0.437500 0.125000 0.156250 +v 0.437500 0.000000 0.156250 +v 0.437500 0.125000 0.031250 +v 0.437500 0.000000 0.031250 +v -0.062500 0.125000 0.156250 +v -0.062500 0.000000 0.156250 +v -0.062500 0.125000 0.031250 +v -0.062500 0.000000 0.031250 +v -0.323874 0.250000 -0.217180 +v -0.323874 0.625000 -0.217180 +v -0.279680 0.250000 -0.261374 +v -0.279680 0.625000 -0.261374 +v -0.147097 0.250000 -0.040403 +v -0.147097 0.625000 -0.040403 +v -0.102903 0.250000 -0.084597 +v -0.102903 0.625000 -0.084597 +v -0.262260 1.312500 0.062500 +v 0.062500 1.125000 0.062500 +v -0.262260 1.312500 0.187500 +v 0.062500 1.125000 0.187500 +v -0.324760 1.204247 0.062500 +v 0.000000 1.016747 0.062500 +v -0.324760 1.204247 0.187500 +v 0.000000 1.016747 0.187500 +vt 0.666667 0.714286 +vt 0.500000 0.428571 +vt 0.666667 0.428571 +vt 0.500000 0.714286 +vt 0.333333 0.428571 +vt 0.333333 0.714286 +vt 0.166667 0.428571 +vt 0.166667 0.714286 +vt -0.000000 0.428571 +vt 0.166667 0.142857 +vt 0.333333 0.142857 +vt 0.333333 1.000000 +vt 0.479167 0.285714 +vt 0.416667 0.178571 +vt 0.479167 0.178571 +vt 0.333333 0.178571 +vt 0.416667 0.285714 +vt 0.333333 0.285714 +vt 0.479167 0.035714 +vt 0.416667 0.035714 +vt 0.416667 0.428571 +vt 0.479167 0.428571 +vt 0.562500 0.285714 +vt 0.562500 0.178571 +vt 0.125000 0.785714 +vt 0.166667 1.000000 +vt 0.125000 1.000000 +vt -0.000000 0.785714 +vt 0.041667 1.000000 +vt -0.000000 1.000000 +vt 0.041667 0.785714 +vt 0.083333 1.000000 +vt 0.041667 0.714286 +vt 0.083333 0.785714 +vt 0.812500 0.678571 +vt 0.895833 0.714286 +vt 0.895833 0.678571 +vt 0.895833 0.428571 +vt 0.812500 0.464286 +vt 0.895833 0.464286 +vt 0.916667 0.464286 +vt 1.000000 0.678571 +vt 1.000000 0.464286 +vt 0.791667 0.464286 +vt 0.791667 0.714286 +vt 0.666667 0.571429 +vt 0.791667 0.571429 +vt 0.666667 1.000000 +vt 0.791667 1.000000 +vt 0.875000 1.000000 +vt 1.000000 0.714286 +vt 1.000000 1.000000 +vt 0.583333 1.000000 +vt 0.666667 0.714286 +vt 0.875000 0.714286 +vt 0.604167 0.357143 +vt 0.645833 0.428571 +vt 0.604167 0.428571 +vt 0.645833 0.357143 +vt 0.687500 0.071429 +vt 0.687500 0.357143 +vt 0.645833 0.071429 +vt 0.604167 0.000000 +vt 0.645833 0.000000 +vt 0.604167 0.071429 +vt 0.562500 0.357143 +vt 0.562500 0.071429 +vt 0.729167 0.357143 +vt 0.916667 0.678571 +vt 0.083333 0.142857 +vt 0.041667 0.214286 +vt 0.083333 0.214286 +vt 0.125000 0.214286 +vt 0.166667 0.428571 +vt 0.166667 0.214286 +vt -0.000000 0.214286 +vt 0.041667 0.428571 +vt 0.083333 0.428571 +vt 0.125000 0.428571 +vt 0.770833 0.357143 +vt 0.812500 0.428571 +vt 0.770833 0.428571 +vt 0.812500 0.357143 +vt 0.854167 0.071429 +vt 0.854167 0.357143 +vt 0.812500 0.071429 +vt 0.770833 0.000000 +vt 0.812500 0.000000 +vt 0.729167 0.071429 +vt 0.729167 0.357143 +vt 0.895833 0.357143 +vt 0.770833 0.071429 +vt 0.125000 0.428571 +vt 0.083333 0.214286 +vt 0.125000 0.214286 +vt 0.083333 0.428571 +vt 0.041667 0.214286 +vt 0.041667 0.428571 +vt -0.000000 0.214286 +vt 0.166667 0.428571 +vt 0.166667 0.214286 +vt 0.083333 0.142857 +vt 0.604167 0.071429 +vt 0.645833 0.357143 +vt 0.645833 0.071429 +vt 0.729167 0.357143 +vt 0.687500 0.071429 +vt 0.687500 0.357143 +vt 0.562500 0.357143 +vt 0.562500 0.071429 +vt 0.604167 0.000000 +vt 0.645833 0.000000 +vt 0.916667 0.678571 +vt 0.895833 0.464286 +vt 0.916667 0.464286 +vt 0.895833 0.678571 +vt 0.812500 0.464286 +vt 0.812500 0.678571 +vt 0.791667 0.464286 +vt 1.000000 0.678571 +vt 1.000000 0.464286 +vt 0.895833 0.428571 +vt 0.812500 0.714286 +vt 0.645833 0.428571 +vt 0.604167 0.357143 +vt 0.604167 0.428571 +vt 0.041667 0.714286 +vt 0.083333 0.785714 +vt 0.041667 0.785714 +vt 0.083333 1.000000 +vt 0.125000 0.785714 +vt 0.125000 1.000000 +vt 0.041667 1.000000 +vt -0.000000 0.785714 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt -0.000000 0.714286 +vt 0.166667 1.000000 +vt 0.166667 0.785714 +vt 0.083333 0.714286 +vt 0.812500 0.714286 +vt 0.812500 0.428571 +vt 0.791667 0.678571 +vt 0.583333 0.714286 +vt 0.729167 0.071429 +vt 0.041667 0.142857 +vt -0.000000 0.428571 +vt 0.895833 0.071429 +vt -0.000000 0.428571 +vt 0.041667 0.142857 +vt 0.729167 0.071429 +vt 0.791667 0.678571 +vt 0.812500 0.428571 +vt 0.895833 0.714286 +vt 0.083333 0.714286 +vt 0.166667 0.785714 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.9848 -0.1736 0.0000 +vn 0.9848 0.1736 0.0000 +vn 0.1736 -0.9848 0.0000 +vn -0.1736 0.9848 0.0000 +vn 0.0000 0.7071 -0.7071 +s off +f 14/19/8 15/20/8 13/21/8 +f 16/22/9 19/23/9 15/20/9 +f 20/24/10 17/25/10 19/23/10 +f 18/26/11 13/27/11 17/25/11 +f 19/23/12 13/28/12 15/29/12 +f 16/30/13 18/26/13 20/24/13 +f 25/31/10 27/32/10 26/33/10 +f 21/34/11 28/35/11 22/36/11 +f 23/37/12 27/32/12 21/38/12 +f 22/39/13 25/31/13 24/40/13 +f 24/41/9 26/33/9 23/42/9 +f 30/43/14 31/44/14 29/45/14 +f 32/46/9 35/47/9 31/48/9 +f 36/49/15 33/50/15 35/47/15 +f 33/50/11 30/43/11 29/45/11 +f 32/51/16 34/52/16 36/49/16 +f 37/53/13 43/54/13 41/55/13 +f 44/56/12 38/57/12 42/58/12 +f 44/59/17 39/60/17 40/61/17 +f 40/62/18 37/53/18 38/57/18 +f 38/57/19 41/55/19 42/58/19 +f 51/63/12 50/64/12 49/65/12 +f 47/66/10 51/63/10 48/67/10 +f 46/68/8 50/69/8 45/70/8 +f 45/71/11 52/72/11 47/66/11 +f 48/67/9 49/73/9 46/68/9 +f 54/74/8 55/75/8 53/76/8 +f 56/77/9 59/78/9 55/79/9 +f 60/80/10 57/81/10 59/82/10 +f 58/83/11 53/84/11 57/85/11 +f 59/78/12 53/86/12 55/79/12 +f 56/77/13 58/83/13 60/80/13 +f 42/58/20 43/87/20 44/59/20 +f 68/88/21 62/89/21 66/90/21 +f 68/91/22 63/92/22 64/93/22 +f 64/94/10 61/95/10 62/89/10 +f 62/89/23 65/96/23 66/90/23 +f 66/90/8 67/97/8 68/91/8 +f 70/98/24 71/99/24 69/100/24 +f 72/101/9 75/102/9 71/103/9 +f 76/104/25 73/105/25 75/106/25 +f 73/107/11 70/98/11 69/108/11 +f 75/102/26 69/109/26 71/103/26 +f 72/101/27 74/110/27 76/104/27 +f 78/111/8 79/112/8 77/113/8 +f 80/114/28 83/115/28 79/112/28 +f 84/116/10 81/117/10 83/115/10 +f 82/118/21 77/113/21 81/119/21 +f 83/115/22 77/120/22 79/112/22 +f 87/121/13 89/122/13 85/123/13 +f 92/124/12 86/125/12 90/126/12 +f 92/127/9 87/121/9 88/128/9 +f 88/129/10 85/123/10 86/130/10 +f 86/125/11 89/122/11 90/126/11 +f 94/131/17 95/132/17 93/133/17 +f 96/134/18 99/135/18 95/132/18 +f 100/136/19 97/137/19 99/135/19 +f 98/138/20 93/133/20 97/139/20 +f 99/135/12 93/140/12 95/132/12 +f 96/134/13 98/141/13 100/136/13 +f 90/142/8 91/143/8 92/144/8 +f 105/145/16 103/146/16 101/147/16 +f 104/148/11 107/149/11 108/150/11 +f 101/147/15 104/148/15 102/151/15 +f 105/152/9 102/151/9 106/153/9 +f 107/149/14 106/154/14 108/150/14 +f 14/19/8 16/22/8 15/20/8 +f 16/22/9 20/24/9 19/23/9 +f 20/24/10 18/26/10 17/25/10 +f 18/26/11 14/155/11 13/27/11 +f 19/23/12 17/25/12 13/28/12 +f 16/30/13 14/156/13 18/26/13 +f 25/31/10 28/35/10 27/32/10 +f 21/34/11 27/32/11 28/35/11 +f 23/37/12 26/33/12 27/32/12 +f 22/39/13 28/35/13 25/31/13 +f 24/41/9 25/31/9 26/33/9 +f 30/43/14 32/157/14 31/44/14 +f 32/46/9 36/49/9 35/47/9 +f 36/49/15 34/52/15 33/50/15 +f 33/50/11 34/52/11 30/43/11 +f 32/51/16 30/158/16 34/52/16 +f 37/53/13 39/159/13 43/54/13 +f 44/56/12 40/160/12 38/57/12 +f 44/59/17 43/87/17 39/60/17 +f 40/62/18 39/161/18 37/53/18 +f 38/57/19 37/53/19 41/55/19 +f 51/63/12 52/72/12 50/64/12 +f 47/66/10 52/72/10 51/63/10 +f 46/68/8 49/73/8 50/69/8 +f 45/71/11 50/162/11 52/72/11 +f 48/67/9 51/63/9 49/73/9 +f 54/74/8 56/77/8 55/75/8 +f 56/77/9 60/80/9 59/78/9 +f 60/80/10 58/83/10 57/81/10 +f 58/83/11 54/74/11 53/84/11 +f 59/78/12 57/163/12 53/86/12 +f 56/77/13 54/74/13 58/83/13 +f 42/58/20 41/55/20 43/87/20 +f 68/88/21 64/164/21 62/89/21 +f 68/91/22 67/97/22 63/92/22 +f 64/94/10 63/165/10 61/95/10 +f 62/89/23 61/95/23 65/96/23 +f 66/90/8 65/96/8 67/97/8 +f 70/98/24 72/101/24 71/99/24 +f 72/101/9 76/104/9 75/102/9 +f 76/104/25 74/110/25 73/105/25 +f 73/107/11 74/110/11 70/98/11 +f 75/102/26 73/166/26 69/109/26 +f 72/101/27 70/98/27 74/110/27 +f 78/111/8 80/114/8 79/112/8 +f 80/114/28 84/116/28 83/115/28 +f 84/116/10 82/167/10 81/117/10 +f 82/118/21 78/111/21 77/113/21 +f 83/115/22 81/168/22 77/120/22 +f 87/121/13 91/143/13 89/122/13 +f 92/124/12 88/169/12 86/125/12 +f 92/127/9 91/143/9 87/121/9 +f 88/129/10 87/121/10 85/123/10 +f 86/125/11 85/123/11 89/122/11 +f 94/131/17 96/134/17 95/132/17 +f 96/134/18 100/136/18 99/135/18 +f 100/136/19 98/170/19 97/137/19 +f 98/138/20 94/131/20 93/133/20 +f 99/135/12 97/171/12 93/140/12 +f 96/134/13 94/172/13 98/141/13 +f 90/142/8 89/122/8 91/143/8 +f 105/145/16 107/173/16 103/146/16 +f 104/148/11 103/146/11 107/149/11 +f 101/147/15 103/146/15 104/148/15 +f 105/152/9 101/147/9 102/151/9 +f 107/149/14 105/174/14 106/154/14 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/derg.png b/src/main/resources/assets/hbm/textures/models/trinkets/derg.png new file mode 100644 index 000000000..8d382fbe6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/derg.png differ