From a297bf0f4c4f1bc5de8bf71d3348be84ab06ed9d Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 7 Oct 2021 15:21:56 +0200 Subject: [PATCH] crates save contents, more connected pain, fixed mercury dupe with drums --- .../hbm/blocks/generic/BlockStorageCrate.java | 82 +++++++-------- src/main/java/com/hbm/render/block/ct/CT.java | 94 ++++++++---------- .../com/hbm/render/block/ct/CTContext.java | 65 +++++++++--- .../hbm/render/block/ct/CTStitchReceiver.java | 2 +- .../java/com/hbm/render/block/ct/IconCT.java | 8 +- .../machine/TileEntityStorageDrum.java | 4 +- .../com/hbm/world/feature/SchistStratum.java | 5 +- .../hbm/textures/blocks/hadron_coil_alloy.png | Bin 140 -> 544 bytes .../textures/blocks/hadron_coil_alloy_ct.png | Bin 0 -> 880 bytes .../blocks/hadron_coil_chlorophyte.png | Bin 179 -> 597 bytes .../blocks/hadron_coil_chlorophyte_ct.png | Bin 0 -> 1072 bytes .../hbm/textures/blocks/hadron_coil_gold.png | Bin 132 -> 545 bytes .../textures/blocks/hadron_coil_gold_ct.png | Bin 0 -> 884 bytes .../textures/blocks/hadron_coil_magtung.png | Bin 258 -> 650 bytes .../blocks/hadron_coil_magtung_ct.png | Bin 0 -> 1444 bytes .../hbm/textures/blocks/hadron_coil_mese.png | Bin 137 -> 502 bytes .../textures/blocks/hadron_coil_mese_ct.png | Bin 0 -> 838 bytes .../textures/blocks/hadron_coil_neodymium.png | Bin 135 -> 581 bytes .../blocks/hadron_coil_neodymium_ct.png | Bin 0 -> 941 bytes .../blocks/hadron_coil_schrabidate.png | Bin 142 -> 589 bytes .../blocks/hadron_coil_schrabidate_ct.png | Bin 0 -> 985 bytes .../blocks/hadron_coil_schrabidium.png | Bin 130 -> 501 bytes .../blocks/hadron_coil_schrabidium_ct.png | Bin 0 -> 808 bytes .../textures/blocks/hadron_coil_starmetal.png | Bin 133 -> 561 bytes .../blocks/hadron_coil_starmetal_ct.png | Bin 0 -> 923 bytes .../assets/hbm/textures/blocks/test_ct.png | Bin 122 -> 122 bytes .../assets/hbm/textures/blocks/test_ct_ct.png | Bin 161 -> 202 bytes src/main/resources/mcmod.info | 2 +- 28 files changed, 141 insertions(+), 121 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_alloy_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_chlorophyte_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_gold_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_magtung_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_mese_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_neodymium_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidate_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidium_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_coil_starmetal_ct.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 6b464459c..b2e897abf 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -1,5 +1,7 @@ package com.hbm.blocks.generic; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; @@ -24,6 +26,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -87,50 +90,31 @@ public class BlockStorageCrate extends BlockContainer { } @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(((TileEntityLockableBase) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_)).isLocked()) { - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - return; - } - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList drops = new ArrayList(); + + ItemStack drop = new ItemStack(this); + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + if(inv != null) { + + drop.stackTagCompound = new NBTTagCompound(); + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(stack == null) + continue; + + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + drop.stackTagCompound.setTag("slot" + i, slot); } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + + drops.add(drop); + + return drops; } @Override @@ -161,10 +145,19 @@ public class BlockStorageCrate extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + if(inv != null && stack.hasTagCompound()) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + inv.setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); + } + } if(this != ModBlocks.safe) - super.onBlockPlacedBy(world, x, y, z, player, itemStack); + super.onBlockPlacedBy(world, x, y, z, player, stack); int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; @@ -181,5 +174,4 @@ public class BlockStorageCrate extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } - } diff --git a/src/main/java/com/hbm/render/block/ct/CT.java b/src/main/java/com/hbm/render/block/ct/CT.java index 1108906ad..a8a6fb315 100644 --- a/src/main/java/com/hbm/render/block/ct/CT.java +++ b/src/main/java/com/hbm/render/block/ct/CT.java @@ -4,16 +4,26 @@ import java.util.ArrayList; import java.util.List; public class CT { + + /* LEXICAL ORDER */ + // 1 2 3 + // 4 # 5 + // 6 7 8 + + /* ROTATIONAL ORDER */ + // 1 2 3 + // 8 # 4 + // 7 6 5 public static final int l = 0; //left public static final int r = 1; //right public static final int t = 0; //top public static final int b = 2; //bottom - public static final int f = 4; //full/unconnected - public static final int c = 8; //connected - public static final int j = 16; //junction - public static final int h = 32; //horizontal - public static final int v = 64; //vertical + public static final int f = 0; //full/unconnected + public static final int c = 4; //connected + public static final int j = 8; //junction + public static final int h = 12; //horizontal + public static final int v = 16; //vertical public static final int ftl = f | t | l; public static final int ftr = f | t | r; @@ -36,58 +46,34 @@ public class CT { public static final int vbl = v | b | l; public static final int vbr = v | b | r; - /*private static int[] coords = new int[20]; - private static int[] indices = new int[68]; - - static { - - int[] dimX = new int[] {CT.t, CT.b}; - int[] dimY = new int[] {CT.l, CT.r}; - int[] dimZ = new int[] {CT.f, CT.c, CT.j, CT.h, CT.v}; - - int index = 0; - - for(int i : dimX) { - for(int j : dimY) { - for(int k : dimZ) { - coords[index] = i | j | k; - indices[i | j | k] = index; - index++; - } - } - } + public static boolean isL(int i) { + return (i & l) != 0; + } + public static boolean isR(int i) { + return (i & r) != 0; + } + public static boolean isT(int i) { + return (i & t) != 0; + } + public static boolean isB(int i) { + return (i & b) != 0; } - public static int coordToIndex(int coord) { - return indices[coord]; + public static boolean isF(int i) { + return i >= f && i < f + 4; + } + public static boolean isC(int i) { + return i >= c && i < c + 4; + } + public static boolean isJ(int i) { + return i >= j && i < j + 4; + } + public static boolean isH(int i) { + return i >= h && i < h + 4; + } + public static boolean isV(int i) { + return i >= v && i < v + 4; } - - public static int indexToCoord(int index) { - return coords[index]; - }*/ - - public static int[] coords = new int[] { - ftl, - ftr, - fbl, - fbr, - ctl, - ctr, - cbl, - cbr, - jtl, - jtr, - jbl, - jbr, - htl, - htr, - hbl, - hbr, - vtl, - vtr, - vbl, - vbr - }; /* _____________________ * / I am in great pain. \ diff --git a/src/main/java/com/hbm/render/block/ct/CTContext.java b/src/main/java/com/hbm/render/block/ct/CTContext.java index 1392803f1..b5f1c6cb8 100644 --- a/src/main/java/com/hbm/render/block/ct/CTContext.java +++ b/src/main/java/com/hbm/render/block/ct/CTContext.java @@ -4,6 +4,7 @@ import net.minecraft.block.Block; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import static com.hbm.render.block.ct.CT.*; @@ -11,19 +12,53 @@ public class CTContext { public static CTFace[] faces; - //dim 1: faces (forgeDir) - //dim 2: neighbors (TL, TC, TR, CL, CR, BL, BC, BR) - //dim 3: coord (x/y/z, [-1;1]) + //dim 1: 6x faces (forgeDir) + //dim 2: 8x neighbors (TL, TC, TR, CL, CR, BL, BC, BR) + //dim 3: 3x coord (x/y/z, [-1;1]) public static int[][][] access = new int[][][] { - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }, - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }, - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }, - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }, - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }, - { {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} } - //TODO + lcfs(ForgeDirection.NORTH, ForgeDirection.EAST), //DOWN guess + lcfs(ForgeDirection.SOUTH, ForgeDirection.EAST), //UP guess + lcfs(ForgeDirection.UP, ForgeDirection.EAST), //NORTH + lcfs(ForgeDirection.UP, ForgeDirection.WEST), //SOUTH + lcfs(ForgeDirection.UP, ForgeDirection.NORTH), //WEST + lcfs(ForgeDirection.UP, ForgeDirection.EAST) //EAST }; + //lexical coordinates from side + private static int[][] lcfs(ForgeDirection up, ForgeDirection left) { + + ForgeDirection down = up.getOpposite(); + ForgeDirection right = left.getOpposite(); + + int[][] lexicalCoordinates = new int[][] { + cfs(up, left), + cfs(up), + cfs(up, right), + cfs(left), + cfs(right), + cfs(down, left), + cfs(down), + cfs(down, right), + }; + + return lexicalCoordinates; + } + + //coordinates from sides + private static int[] cfs(ForgeDirection... dirs) { + int x = 0; + int y = 0; + int z = 0; + + for(ForgeDirection dir : dirs) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + } + + return new int[] {x, y, z}; + } + /** * Generates the six CTFaces and fills the faces array, the faces contain the information on what icon types should be used * @param world @@ -68,12 +103,18 @@ public class CTContext { /** * Returns the overarching texture type based on whether the horizontal, vertical and corner are connected - * @param vert * @param hor * @param corner + * @param vert * @return the bitmask for the full texture type that should be used (f/c/j/h/v) */ - public static int cornerType(boolean vert, boolean hor, boolean corner) { + public static int cornerType(boolean hor, boolean corner, boolean vert) { + + /* + * C - V + * | + * H + */ if(vert && hor && corner) return c; diff --git a/src/main/java/com/hbm/render/block/ct/CTStitchReceiver.java b/src/main/java/com/hbm/render/block/ct/CTStitchReceiver.java index 5387c9766..be89c4ef2 100644 --- a/src/main/java/com/hbm/render/block/ct/CTStitchReceiver.java +++ b/src/main/java/com/hbm/render/block/ct/CTStitchReceiver.java @@ -23,7 +23,7 @@ public class CTStitchReceiver { public void postStitch() { for(int i = 0; i < 20; i++) { - fragCache[i] = new IconCT(i < 4 ? parentFull : parentCT, CT.coords[i]); + fragCache[i] = new IconCT(i < 4 ? parentFull : parentCT, i); } } } diff --git a/src/main/java/com/hbm/render/block/ct/IconCT.java b/src/main/java/com/hbm/render/block/ct/IconCT.java index b89953534..dd66acd29 100644 --- a/src/main/java/com/hbm/render/block/ct/IconCT.java +++ b/src/main/java/com/hbm/render/block/ct/IconCT.java @@ -24,18 +24,18 @@ public class IconCT implements IIcon { float dv = parent.getMinV(); //set pos to full block (coarse positioning) - if((type & v) > 0 || (type & j) > 0) { + if(CT.isV(type) || CT.isJ(type)) { du += lenU * 2; } - if((type & h) > 0 || (type & j) > 0) { + if(CT.isH(type) || CT.isJ(type)) { dv += lenV * 2; } //set pos to sub-block (fine positioning) - if((type & r) > 0) { + if(CT.isR(type)) { du += lenU; } - if((type & b) > 0) { + if(CT.isB(type)) { dv += lenV; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 7db854b65..bb7aab4fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -98,7 +98,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } - if(item == ModItems.nugget_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { + if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } } @@ -181,7 +181,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu item == ModItems.nuclear_waste_long_tiny || item == ModItems.nuclear_waste_short || item == ModItems.nuclear_waste_short_tiny || - item == ModItems.nugget_au198) + item == ModItems.ingot_au198) return true; return false; diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index cba1d896f..89dac1f1a 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -1,5 +1,7 @@ package com.hbm.world.feature; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -17,7 +19,7 @@ public class SchistStratum { public void onDecorate(DecorateBiomeEvent.Pre event) { if(this.noise == null) { - this.noise = new NoiseGeneratorPerlin(event.rand, 4); + this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed()), 4); } World world = event.world; @@ -32,7 +34,6 @@ public class SchistStratum { int threshold = 5; for(int x = cX; x < cX + 16; x++) { - for(int z = cZ; z < cZ + 16; z++) { double n = noise.func_151601_a(x * scale, z * scale); diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_alloy.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_alloy.png index 3fb4c9d16290dabe702676bc9ff79e28d5e556b6..95b8a45ed500b368eea82be547f5676d1ce9cee7 100644 GIT binary patch delta 503 zcmV?WlcuqDNYXcCjDj-&I@1)7-Oia3ILH>JA}{>LI{Kq5E0Tetp%*L#Bod<$7ro_&VL~yjga>qtubJ#X;MY|eBzUNcp%ob}!_9gfNF+R&=1)=jk5vazwzc<>bYHV=&l-uvbZ4WN|581v5_ zbUGch)@=_~rI`-vs9x>w@a_9ACW8^#eSOvn=Y7QcY|kf^)9H79dU2XJ7WY`2#&=XPoop47>mU002ovPDHLkV1l$Y_B#Lo delta 96 zcmZ3$(!)5xIFiBH)5S5wqBprFAmjJ{!`;()`p@4>{PE|ld~@guU1rT1H7}Fs)>}pf yfs1~EWPPS&)YW|BV-{AO<$gH9gr_Y~f`Q?vkK=#+24NirAn1wo(_PgVhK6>~l^39CjD&U(Y-l3lKxAA+7`zJi zUV%Gz;uW}e=R#Zvx*11k7!rt~hnc2lI_Y#LQ>oO?sdHQuRT&3+tV|VHyO;Wk_f(zd z``%Mx^3~9-o<8I8{Ue@-mYw|}H__j`xkb0zMM}xe_-F3i9k3Ce|7-p6h2^bbpYIp9 zvDUI$t&nxhclL(>2q92Pu{r8Yxb-sW)=FdZ0EG6Pb|>n&)40p}dXn92-TYp)?}f&ptS z#+b?s#Bq!|Fa|{$+P?dowimuzR2?nw( z!}Gk#45VpVwxQVC+H%yqdc7V>DL#DgQ>F93cPDxMVzEGXyIq73XsuC7p_D53rS zqtjZ8wYI#clmht299SMaTFbz}WCrxgg=;Bg8K=JQBc&uslCrf5$fT4=DY4d)rYUKf z(rUFz^Dq4gx8i_ojd`KP@sy8(C;a-}DBpswZ{s#ceS)(k^TR1&oVUtNbrthMzw>GS zCFX}yj(;;D&X$PdDV=nE5WQ^v=O1}6iQU~@=bS?bQJz$akqeX=(dl#$Lg1Vu2m+!gDi0Q( z=kfmUKfW@EUN-;b-A_o81Th+o$}}v@i}PBM^+i|}0hJ^P#u%J)Wf&=?_#%7w$}drv z|MtOWgkhM!;A*w1o5u8dJ(470ew2^bkMI5We*wT^vEXlEg`L=m_sFsU0000cNu;o)pBhkds)!7E@%C-E4M=h0W~jjE9nmK}5lK`yA%Wyw7_tXt&#r z|0oI2YPFD35{4mR7*f|Y0M4CeTWkFTYc1AVoO9%Pei|U9M1LuTQVJmiT5FthKFAn@ z5CS0t)>^8nqN*wY1V9*uD5Z#^h!4Zpb#(Ym8w$ z9wV}xZudUJVV}VuqrRBX?d~%i_DR!}a;0E;Zi+Ex{sSQdQcCKzjO*-CUhVVwSw?*; z<~I9tzLK!c7Ij_w5sTRvmzS5lgCt293W;7ZtPQe)C#VDm%8LkptJMB?QNjN^orQIe$5Kt5aWm)<)_boW*m`*qn1{tvySCJkS4ht$(ebsaaTOH-xTU00000NkvXXu0mjf@>K({ delta 136 zcmV;30C)e@1hWB8Pw z*RNkQynOkR!NI|SfmA-zZ{24M*O$Iw2x+rtxV7Rv1F3wL*RNkQxVgDAyn6MR;pNMB q41Xm^<1>-!=g}}24TE7C1^~1d2(@2OG?V}U002ovPDHLkU;%;^vp@*| diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_chlorophyte_ct.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_chlorophyte_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..6169eecc61ef627170c74d18b383b9bdd6c57d98 GIT binary patch literal 1072 zcmV-01kd}4P)+z4wj+Rk#-b?5G>21!m-$DpM z6h+kQb!4Sd!EqdH+ooJD)2{{)LZFmlwp7A#oCD|Q=jZV}kLNGhy|~T&&s~;2d!LOP zyY#C848y>(EVjOF(mihhl9LM`#pkL2l)Bs8;q?G6>k2kn_@ce5I=a?g#&0?D7 z{sRny0j)Jb5Ts^6N|{(N6b9lrCJe*W3`9|sKsXczq9`H^!_*9P#yf;zI6MZVlo*DQ zngOl#GYE&lfMFPnjEtmaAPmFAhM_Rf3!=0PWHK3~l*3~nj$^desTnYfCP5GkkAWZv zXt&#`8R%`np)nAKA)QVqH3PoyqqQC$1HE04mI2@QlWjN@2DH}Xa=FwD9ErP$1)@|c z#SC~Ai$#=D{MubjbsmW07^M`oS`DL6C?JHuFbtGZD5VmAdSUT=bVgA`6h+BBr4+z^ z4$PErRvnb%VcRZC{}B6)Dx^Uty@^7%YtV`F5qSuD%K zG)+v?#4rp@)5NkYEXyL3$smNlG)0O-FE^5v@kb#|B9n_@;Yinz0t@dI^_0z@Y~<`{8Kcyoa@$9~ zS?92N>+8MLIilvgWW8)Qo3y)4JkR69k3ZnBy5Ah>tsgiC2GzLjns?B~B>7^vNGPQQ~y z2tgdjwA?Xr=l$ehG3K7-XZt%ox%f6ax1MGHi(Rl(E_3htBU*vYg$pwTL4YWi%Sjsw zA&^og=e1tf_sXhQP(ct7hGEiby;8Dm8+EC{!<&tldVcTv4y}_Ri^9u;6t*sO;DQvVl zI8FrxKfpD94>_>#J6Hy61dA)LkTlDYJJ=WqF&lPfXJ;%n*-h{`1gCq7=Xsy`%{yW+ z7zF;~Xn=mdkJcKc6iO+ossbQ{I@^2S7`*p*?+GEWSS;!Qt$#If923VeQcA3~gbq?CB?Da(?wEZYW3DdIS$*Xwb7bV2Xw7sUJ=GfgQn_VnlPFUj+~X(zV{?F&F@auOrOB)mBEl3D>22 un1N^FZ&Sh7B^B%*Qo$KWKj;Vjzzlr%LJKY$ja$C}00008aw(jo3?WU*kV^goLQ=&L1>+_zuC$3zvo@y#VS!?w1S&gI{@bhFR-;P#3BPxj!i zZjZ0O`Vr?G)9Dnsiun4@001EbN-5U1dWi9@rT*<}eZ*v!PG6T-J1%!1l;G84N zvdRo3NkW!o^)Vo&L~C7{0c$PZ`}!ErS`!38Wd^b=E7MR514SdM%0Q#hKuTF31KxYA zwUrrYHk*qosDlAx471s+G6RKpZ46{tMv^3z8HnQ;Yi-WY>I^iIQZ5*<5wrAU|Cf)h zknBgq@r6Yh*1>?amLLc!GmxffS%#w9?Rr*xI-L$mDQ>_2Yo&eQ%ez0IlwvZOpxf;> zLI||hD5X$JmH8>6Jl;B;b2#V9cS+@po25`O%To?HZ!;mlxky2ue zDNCz>OiGEA66YLgnv$j|jYgvs|Mau#yxY3Vxh3N3I|Dig+ZY@1$p;bNJ>1As@Y5Ig zwXI$b(0)WbJ}Q+{+HVp+ZojzP=jq;!d^x#vv!8b;8!>m#eoMQm`0;<}Ahi=%VK=#a}(ZbC%-I@8SPvKtI{bJJicZS4g5E^U>Scom0+|=;(XV z|Gno|Z9-zQ%Q+kI&XOs3lK9|{d@za4%}wvUM+i}FDn-i$${EpWwGcw!z31@okT{OZ z#Ucm-K6>xx*AAk8i+}sehZtiJ8yg$tG%Uo6eGMot5ye%?dyg@OEX(lTm%~UY#pfUY z`P!2x#J|6PmHB+0|KM~wU3D7M>2xs0V86})0000< KMNUMnLSTZSdZK#( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_magtung.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_magtung.png index cd58dbab9c493ce5f363bbd286eff1d6f2da7ed3..9359e85201ab5bc0dc861687c1922964406577b1 100644 GIT binary patch delta 610 zcmV-o0-gPW0*VEYGk*d>Nkl1wOS>mP%q!5vu7M5~gu)9?L0gJ_h z>jVq&iUf@C6yF2$ zyzeLK^}69d#s;WXtJt=UloBZ=d7cAc%#^LQE*7-bXst2EpnsH_0&LsHaU2}S!LlsU zG{qQGfU+#ZvMemiLTk-rGGQ{A0AK+~DRCT!N~OZj-@n=1+(b%A7>4xweHx7hj^hx9 zA(cu6$8oT2dmdm}7C)}8SlQp_Tffh79CP#hOuOC2^E{MNBuT>h`a0!unNq1VbCBmb zX_~U^x(x2_Kz}J1jaX~9Iq3CZID{nOd#gpa+oe=0A%vI#j4@;{5y^Z!o}rdYZv}AL5wt(h^yg z%^X;kg>Bp1#4)W_Yr5=t_`Xl4(_#DemhHiSk3qn)>wl8xc@c3Dk~t z5OC7z%)wf(4xY2D=!Oj-gg{Ek)BQap$y8voiFwHj%f&H!neqP3=0tFf`M!LRFUKKMRS6p`%gFu1sY zAb>dL>s!_qQ4|#^h$VKf@?^76uPIGlaK7{hox wE;|43@dzP`*o-lxXz>%07*qoM6N<$g8s-a$N&HU delta 215 zcmV;|04V>81%d*QGk*ZNNkl)|8YHT0{c$uRY zTbP4F1TU75JqW9tm6gQfkns5b4MWyi&&&`JIOniw4H*Vtnt*jh)-+$UZCjlGtMg!t z*&pW_Zdop2uf9KE#(+?k{)+s8-6SIvg};mW4@Ozn`IycjOi)$h7}Yt1sV4%Nd3TU1 z@X|pnj8NA;Rp6#IRP{h0GebQQC?cTn7GebcI7r!sitQZMq&&}k>dH{CM{+_ZJs=rtAE0^(s?SQzQ}zWLf6u(W89w^eNr1U$?|}4-WF{^faHlE@2o_ ztJRS1cXW(3FMBt#&64R<6q3m#@pznaxs0Z1l*{Fo_@#UIpjc#oB0&%Y)M_>4=4Gi{ zw^q|UI{F@&TrNjmQBX^zwPgY%Ng^JP^GmS^j>F{GSWEm|sf1z}#5+0&!w>*@eT}zD z#%~Z1MG;Js?&0AL@tUSFG&IEA+#J5|*9idB7<5d+*lRx+D!SlRT4ScWwbsYdv6p>|_Y13rl(xnaY zFLfOwmBOE!i$o}J;X=6Cp)c5VB?tlx!yuhbGrv)58wPt*DTEg< zqArkrZf_rZceZbJ9LJ`oiN#|0zR$5^$9VksF|S^|YKfOmo#NGl2Yj)z!ph1Dj^iMI z=mcy=*3;+$Ns_qs;6bE;R`^UN!xLSn_R&YHZTRIj1ejM86u|d=+S=OcZRt4dOQ&1n z3xxuPVGxVOq7n!_Jv|}YeA?UFktB)5#l=nS1GjJAMv^29!$9ck>k9=zK$c}BNkWpO z$S9h_qS-Rd-$4*W|4EVrKwDcIy}iBU^LZ+jO3US@`{YTKyLaiURwJC;tY17HCmxR@ ziXv`fVQ3QZJP%P65k-+82v})|XvdBn0K{Uk_ddR1H`zA1*RSd8?5qdyG8P;Aqrabr zl?wBv62C7lGI;nfx~`*X8j7NDX zn}6=6N(K4M8Gh3=7T>-_?j9blTc~Y=em`JCYnVG?|ENt5*-8dJP zm(gsSY7@VK1#cwaxdvYTwoo8nt)f<|nCWyqO_o(3r|C53XJ(*W2HR$`;c}Hq1dZ zhr%!n5dZNFWFTVHmQ!yiBcDi+1~1EXK{}&zZP%X-y_tl4*SWn`9E# zb?asnS!3hlq9{h@BZ?wTvuYZY>$-TJM;L~YsYsGUHj!A}2U^rTlgaSp$rE<(-i_lp y^#Co)+O8YZ-rio{@fzd&pZ0-dG6{fT82klxCopXCeHtqO0000%K<4i*WBs=CtkVjao<(K(-ODT*TSAIkvbd5$p#tuBtgy`+P?+3j1c<%`zP*qhlFvgIkDQTLbl)_p|2%$G}&VQklLMes!p0;gi+jdBx zwI)qdCX)%%=>xMF?Dw$ULRoU5pPm-fb={{^Cj+Gv)9C|ucaY~G0$*QT>HGUXWLZX% zB!fZMby#be&EWGBx-Ra^CEVN$dOnXylv0SuP$7hXbB_HU4u^Pnv4EIs9#@W zjdQ5xMAkXSc7GdVE|=HCRRx<(WYRPZ&bgt2QVL@XWf^0BH@sfM`+Ef1b=@UIV+`Z* zxM%R)@M<+MaL)BL41kEBwf<)YqtWQn;Phxt4CeEAc(aMI&vjWsk|bDbhYHqO>bmCf z@fWwZ@b(5TFYx@#mHznn-CrSq6h#s8JV!)Gk^~XypGNG7kJg$j%McMl2pkRvj>jXr z-EOE5LZE4y{>`6%9ueuUErfuzw$}!rs;VEq>`&`2i9#Yq3B|Y+00000NkvXXu0mjf DGxy+W delta 93 zcmeyy+{rk>IE=x;)5S5wqWA3uMNtL?k)sy`CpR6blyYzJZ=TrL?CN*s&axfmYgmh& x-WOaBNo-19@F@4QQMjUhanoDrn&$k3CiZEQbNv|#B7GQuz|+;wWt~$(69D*CB`g2{ diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_mese_ct.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_mese_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..d29d3317aac93ce271703b8f3b05232ff334d9f9 GIT binary patch literal 838 zcmV-M1G)T(P) zy$yGXKYZ9AO;fbiJbU(yogGNi+w;GFhxK)M|9+FIs+deB=w-yWw*f#Yg)xTF2+q$J z=WlJnbjpnk;({sEpPs_W2{`8v5dicu;zvhU4QQ=7If=`>DF5eA7>!^s7+|f94Rpak2!XOJTQi`w zMk&=D10sU=zBL0?Rb4^Y1p`%8;k|FoKv5KU@4I6_YfX|Qtr-X*TtV0c14)w5@Aq3X z;Jt6Qp%VsbBWlY)uh(lD&|NSfB7_jgvbfBP@@odHwaqE$gn_awxwyD!%|I>Q83W#X zilS)EK%VD>5V~VPYkemM@;q;jVJAKiLSQ%?w)TN~5CN!-jSXSRXKif_V+@ZUe{FRi zc=zrF#u&!qF-e-HD5Xe}1Y-=wm}Y-!v$$@ZRaH?{RrAgm18~C!&dwGy@Z-nL#&zvt z&N)_BS6NwEVK5lroWoj+wU#7Fu-4+7!#PK<*F!0VwH9Lx!{LxOZ@%#85rnXK+tL)2 zg6Gfo2q6$cK)rp7j7E{pEQ@<|pZH(m*W;&8<4R;1=$)NdtW*T(zHwXe>nkyzgHF>} ze10D3y>EQi(^J=TaDeRYA|lAy8S=kl9#Z_^0O29UcXtsUQd|Uia0b-JkI2?mr1JDM zj?DYSi|lt%e0Uh^)!rVmtO-r0@mw#Og13q9@5g$zxw$DK(palf3a$0ko$dFG7z_p| zr4SKjvl)4wHy4Y3zt8&mm%k38KgB~#N0{vqObT4hp Q!2kdN07*qoM6N<$f*Y8JoB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_neodymium.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_neodymium.png index 3ef8394ee14f99c403c6048d5c0f300c08533c67..e9dab4a0a4bc040b96cac4ee91d4bf1601110579 100644 GIT binary patch delta 541 zcmV+&0^QMR1T~kj9oT~}WIh=EN@2RTlMIZ<8E1cJGX*)WC00000NkvXXu0mjfgLw** delta 91 zcmV-h0HpuL1cw2TGgJURNkl+){GkdqI2)_ xCJ~_SmTmp%nqb?i2~MJ#U_fUd?1OzEKp#TbNMmhVrt|;+002ovPDHLkV1mn>CISEe diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_neodymium_ct.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_neodymium_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..046efd4597ced11cb120b3e97363aefa5d42ad34 GIT binary patch literal 941 zcmV;e15*5nP)F`<|qeLx>VV$dIv9hhRE)@?1*YrAs0wc)o5~ z41x|>>NVug$lB7;U~C8p925kSRVg_MSJaj&HL@(d_v7s#?wk}WJ^K#wPWR=W_r5Q@ zpXbMkLFJAmc z6h(~3V`LWddc6*S5CWwXwb~Y)PG@Dj<2ZPp$A`~3JVv7dr>Do4 z#_#PN(r&l0EDPWFmwU6AyRHj>QVQF)X}8-gewO8WgCj^nJ1?{>S?YFm`cWs1e(@&I`-5QZUI>(mTLDG@^C$AB@0AP7=35Ji;> z2=ibdiXws_NX>u{Wr85cj{zwqmSv@8APmC`2=idTvMfraQfdZ*ARvmO{1}J}QCbEH zh0?_V@?gLiLl}ms87LONL~ETN16pg&&dyRZ5T{^n3IVzEfgzN&$RS2L=OgB?AWsuRl7t72lt2+t{{^loG9Vl3Foj zQc9$hL{WtA`}n?3p-@Q7A3y#Yt*0x^V?7!TxOM9$Y|LQbae8{p?(Q?LtFM|p@qU@L z4rJBxbDF!Zi^%$4kX2{y1zGiHXFxoB_?2-Shfb$MqtT$-?Q$Kxs{F3fdwYj88V$tD zmp>cN^Jur*^!q((wJolrKh*^WYW|1KM+lMhZ)27lgCM{dgHnpw zY=%ZVesDLy(fe~nt!I}0a|N}F&JZzQev$o zgir)I=a5n&rNnzrmStpF27m-mN@0wlQmN2*?=bhDA@4k-m(KG2W5o4GFDWNa=%uq% zDiw?|XsxFMq?GKuOIdjHnsT_tuTO2Vy}<>|y~o6HOcX_vfIQE!)-t!c#PB%f^h1-; zmz2fz6(ScGdVhXxnNj-`DJ4RPNk9kz=NzNo(8$qS^EXszkjo6N5*Uur(u*rB(3 zz})H*d7c*)%W;k6a=Bn|nYp{YUodda72l8mLI{*n|9{M&R4O5*oG=(K&B-4I^J~le z`23aDW{uwN!IbXTo6J0ju+~ljthIRWnYn#T>G@NB*1mDF)u3N*GPk-kr59e@qSNUV zEr=vZLbX~&2tgD@2qB7<9rIC25yvq?2to)91_Oq}A?iXBikr!(cQFM#F&N>AJHF0J$?qV@Jlav;Y7A07*qoM6N<$ Eg1A>K4FCWD diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidate_ct.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidate_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..587e0c372f038e123c9a8bc387269fd560aa86d9 GIT binary patch literal 985 zcmV;~119{5P)y zXZSud&*yob--z#jT{B0|n{3W3(tNbe)%!Pj8NK($LyE;BQc9YCy~ee>x5x*DQ{$_@ zE%DwDAF=bxJ)$VWaU5hC^Q-r70w9DyDaG*A1l=uXVEoARByO$6$xEg&KYHE-Kx>U{ z+qktB+q30?@!c(l`dkIAHA0A90%^=QXBGiaN@3eJ^|=cB%NqmZw`a>7tW~jX8?ALO zfi&jLN9%C{Qc4cis*Fre4vgPl-e7oYfk7 z5F}!`n1Q}|W()*D zfa|)68R&Mqgkjj@CkqColraN)3r}%ZoKxd>mR70HRj};taT{jAKp2KtmX(+R-}mD- z6r-b~hLl&SR6;4m?w=PDod>pl{t2ZNjYb1qEEW+$ptVLRg;FZ6Pe03(qce&kq9}^* zDWw2jm;<%>zXvj~TYmgP;<{fy+qSW78!088=f$nnhfGR|l#(cl@O>ZO_sQjQvH2?> ze~x8_Xw6s8EL&%xhO<(l_(7xh0vB6jKfe3j4a|kh)K*=pf9&(tm!A*~y~AE5q_))I z@;9Hst5?{ogw&Uhxbp1{a;5hLliUoev7}^D-Y4Xw6q~R~)WCxXpR>%XUxy`P920txi1$(rS_RzaXtn zy$jOn|D6Hx;hSHZk?BdgTMpZ^W%idhIFBAQeh2BDrB$|P%ZM-T+%s;iMSZTq!CIB! zsR_=bI}5deTktgVr!x;ZSgRt&$H$E^1|dXzQt6LeAl?y$LIEKJ#u(b|Hr;MFK3G_m z#XrC2&s;?RHMa{DJkLY-jf^q4t{cz%lgmd45$|tf44&r^1Odhvlu~p$9WITz?3N#& z`6c@17mLs6bV8I;XvcBVZevQN5}xN#PxxP8kGTLe8V&vhJw~Y|F}TNY00000NkvXX Hu0mjfSM|s| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidium.png b/src/main/resources/assets/hbm/textures/blocks/hadron_coil_schrabidium.png index e1f73bd6a08b365ccc2dc80cae9e587c49a6b302..67a2ff0e745de79a629eb3a633188d8c31838173 100644 GIT binary patch delta 460 zcmV;-0W61+NVSEwPhe~R z&-UBwf4IpnSP&H|j6nezw5@SSF>AG$TaL$qEIeDIAjKO=4s-~b20)NIBj4{L*IiJs*&*ymp zYb|-6vs^Cuc{m_tiMB0Vt~@;@{k`ir9*=1{a}6-YOy-vt2myux`u>Cd_3%JZ6l7U8 z2aMy0_Z}%rczZ*SM|gk7Y&I|qNlR6sZHqAm5t%EfDj|ev%wd?!&(G*?ht@UJ^`y63 zXxkg8?n*Xj%YFvj4Vn}Ai-=jOVGra{V*aU5?UI_Fp{ z7Bhp-%ypd@gb-2<2OuI?YyX+S-QC@7Kw6p$1F0%>yPY~W&8==*vMj@UKL>d4i81mG z`2F~ZzP`>&RF*gT$NfEr!y&zbtk-K@tyYK#S(YIpX+>qPe5|z;MS+N*s`P!&FbwSX z`?-Ruayp&T&j0;+L?k_%s^Yy*+5vQ3_r-_(`uqXEXH9jvZXS~W00005hc delta 86 zcmV-c0IC1=1A+mNGfx0HNkl+F2LBR<`nTGE20(l*3!~=X( z6zFS^(nN^#ZFTw7ujojhhp!XfN~#BYza#)MxOD1wELTxT_azm-!q3V+__>%xnhV zzwh-o$H!=%bNg|9#P#wr{=_-bG>tzm3b?wu+yCqg@*L+JRaM2=M3derGW@Xxz< zSZi4>m$>P4iZKS~9M)Q_we9}wvb^0oLkNTr+HclcfM5H-X0xAx^YdR4cf0*d)08w# z5fQxiH>I_OOhgb7LI_kd{aVdz76ID6 z53#$5w=41DMO=wIN6g6y)ODnHz2>2IS8<0H)@WLV+YH!I5Hn%?`yyN?6Wg8%P{8cTkYF~{x}8i z62G{J@kd8Ts;U@c+LOwzorADvI#d{y`0jgMQxxT*UxwU*eKmX%-Krb$M`Qr!IO@p--x7rSc mzT?%`m6MDB0000BjU6otR{o~&3n7(5ibo#7m~-?>*!CKKU5CIT3ZMnqAB zF$QA{ZQBAM@|qn&=nNqQLI{Wmo6Y7mAc`XT{XYGEAFVacIe$c?3-aEhwMJ`A2!W<) zXqpB9Gaiq>4TnPpg8{?gkmu)^o12d$$p=IRyu1jvx1YJZ93wJ7>pdbu2!Z{6j|MQt zptZ(Y$n&o>jZoK~s;b}V>+4S>NkSaQ0IvaU+v1!fO;c8@6}#Pm?RLj(c1KscX-6yCctYmdhnYQBV{Gd7d+$-(#&kgBl&ldhfB;QdKpx z+1)$ya=D}|ORTl@dI!Asrxmo;L{WsbmMqJDYc7g{vMfo{l(ucVin|&wE-si(PYixF z7ezsqWh@pCc<;M4A^@cn#+ZL*(ChWi1CB>?WRPVU^MCn0Wm!^|<(anDk|Z(Cxl@31 z?k({<)9Du$iwCT=SZhhs^h{q}^>}(xT?=Y5naF4~LMcTY$0((`lRfe=#*iclN-0Ey zs;a2#n#ae-(+VQO;c)0~{^#dWN_Dk~2+p}qM*y46=C5!2r}+U~jc&%|MHQa_0000< LMNUMnLIPldn0@xw delta 89 zcmV-f0H*)31cd>RGg1INNkl|=$#GAM_##~7R v2#{^v?EZsotN-96=in6sYSo|`R09Fp)7D96ME@;}00000NkvXXu0mjfMrDk`@9m* zpa111lL=825k(Q>@tEuAmoJYP3Gi&6Jbr>P_R9L#uTQyq_eY*R`-7q=SS%LE zCg$Vu7yuyzN-0L85!2~(V|^Hg%w{vzAFqk|WHPz@63-(D0%o%r##qkJlPl|wk6)m* z#`8R~Ec?{Jw&qb30icv32m-X$ESH9ZgQr*4$8n6-nji>p&H*5sn6Eb=r9^8@7=|0` z<2YtC8qw?Z=yW=l4Ya{Pp68@#TAKkWB|?by7;w&Et*y;KQ52s;*pz{yD6rPnX2ADX zSZmv3KuU?{d9@kH^ZXNpZ7|?@9^G!YHUrk$>KIyKpd3VX8Ss6-YCyKZfOC#K&(T^F z$MMGcl7UXAQ{94A7)aBUBuQ#BP@1>KfVGy@YE_#7V+?tox5t2#@>&cSW2$S|${fh^ zoSmJW+H;@`A^@?wyX$E942MIMQuzMuTKmA!(IHAH=JPq;U@$-kf#-QBrBF&$=Ti=g z_0d@r1w~O*pDCpP=yto@zkkUs-LenAir1OZY?(lo8ERtcGu5-BA` zQIKUBS(f4Z{+ju(WSQG&UTR}3{r(Rm$(zd`aOck6@B90Y>G!`S%euUOpK|ZsPxN|U z<6NH)9~=)K{=$tL-{D-JzJ3?7+bwBjj<%jiu3b?gM+7RtFL=|%J*f{InY!$&Vr^|H2q)D zR5#9oruu(pKs2yjQ$HZ~WHhRK{{RH|(0av1K`{UT002ovPDHLkV1hg8!ifL? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct.png b/src/main/resources/assets/hbm/textures/blocks/test_ct.png index 3efc3f85cc666db15feb70e6a6c57c8fd8b3e8fc..95f7f1d8dbb9af4aed0c6bce166dd22078cc0635 100644 GIT binary patch delta 67 zcmb=bnqXsRVvz9TyaQvxA{S$3AmHvP{P!nwl8Kbmtf1qpi`jal3@msOWIo*CVECTE VdO!N_ruPg$;OXk;vd$@?2>?Ql7^VOK delta 67 zcmb=bnqXs>l92G@yaQvxA{S$3AmHx#_}@O0FEJ%$NguZxuY_qrfy99m1{Zb;GQ<|L U%CDVo$-@8yp00i_>zopr05R(pq5uE@ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct_ct.png b/src/main/resources/assets/hbm/textures/blocks/test_ct_ct.png index 3ebf39fc3de9d912b4f575d7d00e439b689cae49..540e708a8d3719f395db45ba936f628701611852 100644 GIT binary patch delta 158 zcmZ3;c#3g?NqwWIi(^Pc>)UIFTnz?1tqHPQQReEN>6P~LIcBny%VOl zgI8BDiMm{`S14lGaBJEX^A@=u&P-|3wHv2hW`(O1ztv{`i%mlR;+*4A3_#%N>gTe~ HDWM4f+66#w delta 116 zcmX@bxR7yzNp6Ivi(^Pc>)Y$rd-uGP;h8qV0^7N!|L{K%XS1Z<~-)*0Estz_