From cc4b0d01c045ab09d19e7a7cb0abb5e7af5b302d Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 30 Apr 2022 23:07:14 -0700 Subject: [PATCH] pile shenanigans --- .../machine/pile/BlockGraphiteDrilled.java | 35 ++++++++++++++++-- .../pile/BlockGraphiteDrilledBase.java | 12 +++++- .../machine/pile/BlockGraphiteFuel.java | 16 +++++++- .../blocks/machine/pile/BlockGraphiteRod.java | 33 +++++++++++------ .../machine/pile/BlockGraphiteSource.java | 19 +++++++++- .../machine/pile/TileEntityPileBase.java | 22 ++++++++--- .../machine/pile/TileEntityPileFuel.java | 6 +-- .../machine/pile/TileEntityPileSource.java | 2 +- .../block_graphite_drilled_aluminum.png | Bin 0 -> 459 bytes .../blocks/block_graphite_fuel_aluminum.png | Bin 0 -> 453 bytes .../block_graphite_plutonium_aluminum.png | Bin 0 -> 459 bytes .../blocks/block_graphite_rod_in_aluminum.png | Bin 0 -> 461 bytes .../block_graphite_rod_out_aluminum.png | Bin 0 -> 468 bytes .../blocks/block_graphite_source_aluminum.png | Bin 0 -> 458 bytes 14 files changed, 115 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled_aluminum.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel_aluminum.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_plutonium_aluminum.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_in_aluminum.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_rod_out_aluminum.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_graphite_source_aluminum.png diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java index a0c6ce4a0..483cb7ac2 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java @@ -3,12 +3,16 @@ package com.hbm.blocks.machine.pile; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import api.hbm.block.IToolable; +import api.hbm.block.IToolable.ToolType; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase { +public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IToolable { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { @@ -16,13 +20,17 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase { if(player.getHeldItem() != null) { int meta = world.getBlockMetadata(x, y, z); - - if(side == meta * 2 || side == meta * 2 + 1) { + int cfg = meta & 3; + + if(side == cfg * 2 || side == cfg * 2 + 1) { if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_uranium, ModBlocks.block_graphite_fuel)) return true; if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_plutonium, ModBlocks.block_graphite_plutonium)) return true; if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_source, ModBlocks.block_graphite_source)) return true; if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_boron, ModBlocks.block_graphite_rod)) return true; - if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; + if(meta >> 2 != 1) { + if(checkInteraction(world, x, y, z, meta | 4, player, ModItems.hull_small_aluminium, ModBlocks.block_graphite_drilled)) return true; + if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; + } } } @@ -42,4 +50,23 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase { return false; } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + int meta = world.getBlockMetadata(x, y, z); + int cfg = meta & 3; + + if(tool != ToolType.SCREWDRIVER) + return false; + + if(!world.isRemote && (side == cfg * 2 || side == cfg * 2 + 1) && meta >> 2 == 1) { + world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, cfg, 3); + world.playSoundEffect(x + 0.5, y + 1.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 0.85F); + + BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.hull_small_aluminium)); + } + + return true; + } } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 213df7cfd..45142da3f 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -23,6 +23,8 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable { @SideOnly(Side.CLIENT) protected IIcon sideIcon; + @SideOnly(Side.CLIENT) + protected IIcon blockIconAluminum; //shrouded in aluminum public BlockGraphiteDrilledBase() { super(ModBlocks.block_graphite.getMaterial(), ((BlockFlammable) ModBlocks.block_graphite).encouragement, ((BlockFlammable) ModBlocks.block_graphite).flammability); @@ -38,6 +40,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable { public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite"); + this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_drilled_aluminum"); } @Override @@ -45,9 +48,14 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable { public IIcon getIcon(int side, int metadata) { int cfg = metadata & 3; + int meta = metadata >> 2; - if(side == cfg * 2 || side == cfg * 2 + 1) + if(side == cfg * 2 || side == cfg * 2 + 1) { + if(meta == 1) + return this.blockIconAluminum; + return this.blockIcon; + } return this.sideIcon; } @@ -70,6 +78,8 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable { public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { ArrayList drops = new ArrayList(); drops.add(new ItemStack(ModItems.ingot_graphite, 8)); + if(meta >> 2 == 1) + drops.add(new ItemStack(ModItems.hull_small_aluminium, 1)); return drops; } } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index ad5f41247..43351e185 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -4,9 +4,13 @@ import java.util.ArrayList; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.pile.TileEntityPileFuel; import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -23,6 +27,13 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab return new TileEntityPileFuel(); } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_fuel_aluminum"); + } + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { ArrayList drops = super.getDrops(world, x, y, z, metadata, fortune); @@ -37,9 +48,10 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab if(tool == ToolType.SCREWDRIVER) { - int meta = world.getBlockMetadata(x, y, z) & 3; + int meta = world.getBlockMetadata(x, y, z); + int cfg = meta & 3; - if(side == meta * 2 || side == meta * 2 + 1) { + if(side == cfg * 2 || side == cfg * 2 + 1) { world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3); this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_uranium)); } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java index 1111b45c2..4812b6dc8 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteRod.java @@ -20,12 +20,15 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola @SideOnly(Side.CLIENT) protected IIcon outIcon; + @SideOnly(Side.CLIENT) + protected IIcon outIconAluminum; @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite"); + this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_rod_in_aluminum"); + this.outIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_rod_out_aluminum"); this.outIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_rod_out"); } @@ -35,8 +38,11 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola int cfg = metadata & 3; - if(side == cfg * 2 || side == cfg * 2 + 1) - return ((metadata & 4) > 0) ? this.outIcon : this.blockIcon; + if(side == cfg * 2 || side == cfg * 2 + 1) { + if((metadata & 4) == 4) + return ((metadata & 8) > 0) ? this.outIconAluminum : this.blockIconAluminum; + return ((metadata & 8) > 0) ? this.outIcon : this.blockIcon; + } return this.sideIcon; } @@ -48,7 +54,7 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola return false; int oldMeta = world.getBlockMetadata(x, y, z); - int newMeta = oldMeta ^ 4; //toggle bit #3 + int newMeta = oldMeta ^ 8; //toggle bit #4 int pureMeta = oldMeta & 3; //in case the bit was set if(side == pureMeta * 2 || side == pureMeta * 2 + 1) { @@ -60,7 +66,7 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola world.playSoundEffect(x + 0.5D, y + 0.5D, z + 0.5D, "random.click", 0.3F, pureMeta == oldMeta ? 0.75F : 0.65F); - ForgeDirection dir = ForgeDirection.getOrientation(pureMeta); + ForgeDirection dir = ForgeDirection.getOrientation(side); if(dir == ForgeDirection.UNKNOWN) return true; @@ -68,17 +74,19 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola for(int i = -1; i <= 1; i += 1) { //why is XZ switched? i don't know, man - int ix = x + dir.offsetZ * i; + /* ForgeDirection's getOrientation method operates on actual sides, not n/s or w/e, so you had to switch x & z for w/e to work since it was actually returning north. also meant that + n/s hasn't been working this entire time */ + int ix = x + dir.offsetX * i; int iy = y + dir.offsetY * i; - int iz = z + dir.offsetX * i; + int iz = z + dir.offsetZ * i; while(world.getBlock(ix, iy, iz) == this && world.getBlockMetadata(ix, iy, iz) == oldMeta) { world.setBlockMetadataWithNotify(ix, iy, iz, newMeta, 3); - ix += dir.offsetZ * i; + ix += dir.offsetX * i; iy += dir.offsetY * i; - iz += dir.offsetX * i; + iz += dir.offsetZ * i; } } @@ -96,10 +104,11 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola if(!world.isRemote) { - int meta = world.getBlockMetadata(x, y, z) & 3; + int meta = world.getBlockMetadata(x, y, z); + int cfg = meta & 3; - if(side == meta * 2 || side == meta * 2 + 1) { - world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3); + if(side == cfg * 2 || side == cfg * 2 + 1) { + world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta & 7, 3); this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_boron)); } } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteSource.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteSource.java index 97120c264..cf02a9785 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteSource.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteSource.java @@ -4,9 +4,13 @@ import java.util.ArrayList; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.pile.TileEntityPileSource; import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -21,6 +25,16 @@ public class BlockGraphiteSource extends BlockGraphiteDrilledTE implements ITool return new TileEntityPileSource(); } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + if(this == ModBlocks.block_graphite_plutonium) + this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_plutonium_aluminum"); + else if(this == ModBlocks.block_graphite_source) + this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_source_aluminum"); + } + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { ArrayList drops = super.getDrops(world, x, y, z, metadata, fortune); @@ -36,9 +50,10 @@ public class BlockGraphiteSource extends BlockGraphiteDrilledTE implements ITool if(!world.isRemote) { - int meta = world.getBlockMetadata(x, y, z) & 3; + int meta = world.getBlockMetadata(x, y, z); + int cfg = meta & 3; - if(side == meta * 2 || side == meta * 2 + 1) { + if(side == cfg * 2 || side == cfg * 2 + 1) { world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3); this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(whoAmIAgain())); } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index d19ae6d75..9fed6d5b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -26,6 +26,7 @@ public abstract class TileEntityPileBase extends TileEntity { Vec3 vec = Vec3.createVectorHelper(1, 0, 0); vec.rotateAroundZ((float)(rand.nextDouble() * Math.PI * 2D)); vec.rotateAroundY((float)(rand.nextDouble() * Math.PI * 2D)); + vec.rotateAroundX((float)(rand.nextDouble() * Math.PI * 2D)); int prevX = xCoord; int prevY = yCoord; @@ -44,6 +45,16 @@ public abstract class TileEntityPileBase extends TileEntity { prevY = y; prevZ = z; + /*if(i == range) { + NBTTagCompound data2 = new NBTTagCompound(); + data2.setString("type", "vanillaExt"); + data2.setString("mode", "greendust"); + data2.setDouble("posX", xCoord + 0.5 + vec.xCoord * range); + data2.setDouble("posY", yCoord + 0.5 + vec.yCoord * range); + data2.setDouble("posZ", zCoord + 0.5 + vec.zCoord * range); + MainRegistry.proxy.effectNT(data2); + }*/ + Block b = worldObj.getBlock(x, y, z); if(b == ModBlocks.concrete || b == ModBlocks.concrete_smooth || b == ModBlocks.concrete_asbestos || b == ModBlocks.concrete_colored || b == ModBlocks.brick_concrete) @@ -54,19 +65,20 @@ public abstract class TileEntityPileBase extends TileEntity { int meta = worldObj.getBlockMetadata(x, y, z); - if(b == ModBlocks.block_graphite_rod && (meta & 4) == 0) + if(b == ModBlocks.block_graphite_rod && (meta & 8) == 0) return; TileEntity te = worldObj.getTileEntity(x, y, z); if(te instanceof IPileNeutronReceiver) { - //this part throttles neutron efficiency for reactions that are way too close, efficiency reaches 100% after 2.5 meters - float mult = Math.min((float)range / 1.5F, 1F); - int n = (int)(flux * mult); + //this part throttles neutron efficiency for reactions that are way too close, efficiency reaches 100% after 1.5 meters + //This entire time, this multiplier has been using the max distance, not the actual one, meaning efficency has always been 100% + //float mult = Math.min((float)i / 1.5F, 1F); + //int n = (int)(flux * mult); IPileNeutronReceiver rec = (IPileNeutronReceiver) te; - rec.receiveNeutrons(n); + rec.receiveNeutrons(flux); return; } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 4549d5d23..6f3401be0 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -34,7 +34,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr } private void dissipateHeat() { - this.heat -= heat * 0.05; //remove 5% of the stored heat per tick + this.heat -= (this.getBlockMetadata() & 4) == 4 ? heat * 0.065 : heat * 0.05; //remove 5% of the stored heat per tick; 6.5% for windscale } private void react() { @@ -42,7 +42,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr int reaction = (int) (this.neutrons * (1D - ((double)this.heat / (double)this.maxHeat) * 0.5D)); //max heat reduces reaction by 50% due to thermal expansion this.lastNeutrons = this.neutrons; - this.neutrons = 0;; + this.neutrons = 0; this.progress += reaction; @@ -51,7 +51,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr this.heat += reaction; - for(int i = 0; i < 16; i++) + for(int i = 0; i < 12; i++) this.castRay((int) Math.max(reaction * 0.25, 1), 5); } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java index dc01a2ba2..ad1cc976f 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java @@ -11,7 +11,7 @@ public class TileEntityPileSource extends TileEntityPileBase { int n = this.getBlockType() == ModBlocks.block_graphite_source ? 1 : 3; - for(int i = 0; i < 16; i++) { + for(int i = 0; i < 12; i++) { this.castRay(n, 5); } } diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled_aluminum.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_drilled_aluminum.png new file mode 100644 index 0000000000000000000000000000000000000000..fb546e6e4774f0bc2523bafb708195d08baa8471 GIT binary patch literal 459 zcmV;+0W|)JP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0bof)K~y+T)sjC? z!e9`_egCDDgw4Uhgv5j*vqQfD3zM5pCOYZlH(+qk(ZN+Wqb#m2CgP%#--Lh-DbPY& zf8`7@_z66c%e{Bc-967y)#-HR^Z8=2D2gIUk~B?;vn(^l;E8?T&+~jZ98M+^GOFEf z$8kKJPRWYV!w73FJ;Z>p*=$BLRTYNecs%CKV`FKuK`EuRmgSV#PYG|T)vD~00)fxmFrT>L3VOtrou7Y#L{U3Env; zm(|AB>-Ac#MoedUI5xruV%AyEs9g1wX6;}wK(QQc{eQT9c!D?EnFsjlqPxAdDSD{l zRin`WO+*$P!OQz6CoS1nv$wlL1_Lej|Gy=rz5z*M%tcC-OEv%i002ovPDHLkV1jG2 B%3=Tj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel_aluminum.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_fuel_aluminum.png new file mode 100644 index 0000000000000000000000000000000000000000..ee21bacff6269fc4ca02933e7f591b0915f06354 GIT binary patch literal 453 zcmV;$0XqJPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0a{5!K~y+T)sn4F z15pr#xj!qqNgV<~vI$AMR3rKZE2zQ&h6EHS-T(&{hahMK0Sf|y0mV~bo86YB?Y4W{ z^4$*E1Q2LW)0_D@bLY(5Rh>?!EKBFyd_EtK$CJqfdpeyOV>q#Ewc2bpOVe~X91>AU zk_-le(P%_eKn+(|YpKD81d5`dn5=5I+j*Yj<18&89h6d9YiUl3{-iif7>3eI5*U)h zmP&D{|HAJXb`FkAzz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/block_graphite_plutonium_aluminum.png b/src/main/resources/assets/hbm/textures/blocks/block_graphite_plutonium_aluminum.png new file mode 100644 index 0000000000000000000000000000000000000000..23ef0dbe3df740dd2385983be90c8e0f6077c68f GIT binary patch literal 459 zcmV;+0W|)JP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0bof)K~y+T)snwU z!$1_rd%4TdLN^Bop&+z1IEh0C_ab!BMRXE$QV`tS)J;0s)xlYCa1$42H~$MaLt40| zX?|Sdr#%Uxg0tVi@x6QBm-oK!PV{=cG)=QCD~ckH<0MJo#uzCjE4*5*=6N0j!DKSw zM0C5|Fbtz8;?#m1exZ~i2aX6#r&E%NicY7awPw$zGKZ}ogm4_k7AHh~Laee@tJzvM z0I@N+&9qzcKk?JU-r=!y`RK_VTwVO(VgKm#J$%beC5@xZ6kD4+2fN$oe)n*4c5c-{ z;8PawW3Bs_*BfiAr3Z&vB+v;^QhiltX=>)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0b)r+K~y+T)sjC? z!e9`_dH-~v37dn135f~C&JKKohJ?vYClj4?@*6n1I-3wo9Nb)8TwHYWn^2%sDD)rx z+A|C~IC~{8_uk!e_dM6C!C;VOS)S*c&1St`r)i2`6ooN{6TjJPmSs7aOqRPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0clA@K~y+T)smr4 z!%z^$_xfJNmdqg#BuhxPv7iWI0$($Q14RO6BO$@zKw=SCa0CaLsY2rrBq;udr5i14 z*RI|8wMP~*_y@Q)ulL^FclUkwsydy{bUIDbbUvTQahxOxewJlgYgYVnxjdWAJkJZm zkQ3!N&UieIqKH#5FqAOHfWapTn@lEviK=$H9RvY;Hl@O(gHp<}ENM=N{)AX{rBabz z62Ordz93}_{@Z?Q*grbfHV>TatILZe4TkKW8V-7=uImPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0bfZ(K~y+T)sneN z15p%)y~{8p5Cl=M5Q4&FsV(vbX;Rr~C1|CUZ(u26V`*b;rLBz!B537v#3H%l5Hedf zzvP4|w6OLcIGlUW|DWxS>U27z(P%s#&t|hM%kn(OpG+pk7%YCNRGLnw&bc^_xl!$Q zdpH~>Ny4oF4JoX(Xz(F{G))l`RjpQQFc@&=u(E(uP)cd7r8pt#6T+Huxh%CLfFm({ zQOXhh62E6SI6gHVA3b^37w3P>aCmao*k1E}A90pvs~f@5{vNzy1|3CF7=~X96zni` zF6=wke|^4xe0e7$Y-vnWi=pWRSYw5qW+?^4vaVtV)}U*(TC>^2*6VfS*@A}!WYNY} ztJO-S!j@6a7e__^63|0k8%C|6fw-8x&Fin`6fXGXMYp07*qoM6N<$f~jP^ Ak^lez literal 0 HcmV?d00001