From 7e1595598bcb728febda1c7527cb96a8ca7a2f0a Mon Sep 17 00:00:00 2001 From: TechLord22 <37029404+TechLord22@users.noreply.github.com> Date: Sat, 9 Dec 2023 22:31:24 -0500 Subject: [PATCH] Remove the GT Safe (#2276) --- .../api/capability/GregtechDataCodes.java | 4 - .../java/gregtech/api/gui/GuiTextures.java | 2 - .../client/renderer/texture/Textures.java | 16 +- .../renderer/texture/custom/SafeRenderer.java | 94 ---- .../metatileentities/MetaTileEntities.java | 91 +++- .../storage/MetaTileEntityLockedSafe.java | 432 ------------------ .../resources/assets/gregtech/lang/en_us.lang | 5 - .../resources/assets/gregtech/lang/ja_jp.lang | 5 - .../resources/assets/gregtech/lang/ru_ru.lang | 5 - .../resources/assets/gregtech/lang/zh_cn.lang | 5 - .../loot_tables/chests/abandoned_safe_1.json | 212 --------- .../blocks/storage/safe/base_bottom.png | Bin 420 -> 0 bytes .../blocks/storage/safe/base_front.png | Bin 179 -> 0 bytes .../blocks/storage/safe/base_side.png | Bin 411 -> 0 bytes .../textures/blocks/storage/safe/base_top.png | Bin 418 -> 0 bytes .../blocks/storage/safe/door_back.png | Bin 411 -> 0 bytes .../blocks/storage/safe/door_front.png | Bin 394 -> 0 bytes .../blocks/storage/safe/door_side.png | Bin 156 -> 0 bytes .../gui/progress_bar/progress_bar_unlock.png | Bin 1136 -> 0 bytes 19 files changed, 96 insertions(+), 775 deletions(-) delete mode 100644 src/main/java/gregtech/client/renderer/texture/custom/SafeRenderer.java delete mode 100644 src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLockedSafe.java delete mode 100644 src/main/resources/assets/gregtech/loot_tables/chests/abandoned_safe_1.json delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_bottom.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_front.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_side.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_top.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_back.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_front.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_side.png delete mode 100644 src/main/resources/assets/gregtech/textures/gui/progress_bar/progress_bar_unlock.png diff --git a/src/main/java/gregtech/api/capability/GregtechDataCodes.java b/src/main/java/gregtech/api/capability/GregtechDataCodes.java index b8720654da1..e425d3339e4 100644 --- a/src/main/java/gregtech/api/capability/GregtechDataCodes.java +++ b/src/main/java/gregtech/api/capability/GregtechDataCodes.java @@ -26,10 +26,6 @@ public static int assignId() { // Drum public static final int UPDATE_AUTO_OUTPUT = assignId(); - // Safe - public static final int UPDATE_LOCKED_STATE = assignId(); - public static final int UPDATE_CONTENTS_SEED = assignId(); - // Steam Machines public static final int NEEDS_VENTING = assignId(); public static final int VENTING_SIDE = assignId(); diff --git a/src/main/java/gregtech/api/gui/GuiTextures.java b/src/main/java/gregtech/api/gui/GuiTextures.java index 698540b1e6e..fb073716142 100644 --- a/src/main/java/gregtech/api/gui/GuiTextures.java +++ b/src/main/java/gregtech/api/gui/GuiTextures.java @@ -378,8 +378,6 @@ public class GuiTextures { .fullImage("textures/gui/progress_bar/progress_bar_slice.png"); public static final SteamTexture PROGRESS_BAR_SOLAR_STEAM = SteamTexture .fullImage("textures/gui/progress_bar/progress_bar_solar_%s.png"); - public static final TextureArea PROGRESS_BAR_UNLOCK = TextureArea - .fullImage("textures/gui/progress_bar/progress_bar_unlock.png"); public static final TextureArea PROGRESS_BAR_UNPACKER = TextureArea .fullImage("textures/gui/progress_bar/progress_bar_unpacker.png"); public static final TextureArea PROGRESS_BAR_WIREMILL = TextureArea diff --git a/src/main/java/gregtech/client/renderer/texture/Textures.java b/src/main/java/gregtech/client/renderer/texture/Textures.java index 09de1dbb6ef..39db1d4f0e2 100644 --- a/src/main/java/gregtech/client/renderer/texture/Textures.java +++ b/src/main/java/gregtech/client/renderer/texture/Textures.java @@ -7,8 +7,19 @@ import gregtech.client.renderer.CubeRendererState; import gregtech.client.renderer.ICubeRenderer; import gregtech.client.renderer.cclop.UVMirror; -import gregtech.client.renderer.texture.cube.*; -import gregtech.client.renderer.texture.custom.*; +import gregtech.client.renderer.texture.cube.AlignedOrientedOverlayRenderer; +import gregtech.client.renderer.texture.cube.LDPipeOverlayRenderer; +import gregtech.client.renderer.texture.cube.OrientedOverlayRenderer; +import gregtech.client.renderer.texture.cube.SidedCubeRenderer; +import gregtech.client.renderer.texture.cube.SimpleOrientedCubeRenderer; +import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer; +import gregtech.client.renderer.texture.cube.SimpleSidedCubeRenderer; +import gregtech.client.renderer.texture.custom.ClipboardRenderer; +import gregtech.client.renderer.texture.custom.CrateRenderer; +import gregtech.client.renderer.texture.custom.DrumRenderer; +import gregtech.client.renderer.texture.custom.FireboxActiveRenderer; +import gregtech.client.renderer.texture.custom.LargeTurbineRenderer; +import gregtech.client.renderer.texture.custom.QuantumStorageRenderer; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; @@ -49,7 +60,6 @@ public class Textures { public static final CrateRenderer METAL_CRATE = new CrateRenderer("storage/crates/metal_crate"); public static final DrumRenderer WOODEN_DRUM = new DrumRenderer("storage/drums/wooden_drum"); public static final DrumRenderer DRUM = new DrumRenderer("storage/drums/drum"); - public static final SafeRenderer SAFE = new SafeRenderer("storage/safe"); public static final LargeTurbineRenderer LARGE_TURBINE_ROTOR_RENDERER = new LargeTurbineRenderer(); public static final QuantumStorageRenderer QUANTUM_STORAGE_RENDERER = new QuantumStorageRenderer(); diff --git a/src/main/java/gregtech/client/renderer/texture/custom/SafeRenderer.java b/src/main/java/gregtech/client/renderer/texture/custom/SafeRenderer.java deleted file mode 100644 index 9e213bfa27d..00000000000 --- a/src/main/java/gregtech/client/renderer/texture/custom/SafeRenderer.java +++ /dev/null @@ -1,94 +0,0 @@ -package gregtech.client.renderer.texture.custom; - -import gregtech.api.GTValues; -import gregtech.client.renderer.texture.Textures; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumFacing.Axis; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.pipeline.IVertexOperation; -import codechicken.lib.texture.TextureUtils.IIconRegister; -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Matrix4; -import codechicken.lib.vec.Rotation; - -import java.util.Arrays; -import java.util.List; - -public class SafeRenderer implements IIconRegister { - - private static final Cuboid6 mainBoxOuter = new Cuboid6(3 / 16.0, 0 / 16.0, 3 / 16.0, 13 / 16.0, 14 / 16.0, - 13 / 16.0); - private static final Cuboid6 mainBoxInner = new Cuboid6(4 / 16.0, 1 / 16.0, 3 / 16.0, 12 / 16.0, 13 / 16.0, - 12 / 16.0); - private static final Cuboid6 doorBox = new Cuboid6(4 / 16.0, 1 / 16.0, 3 / 16.0, 12 / 16.0, 13 / 16.0, 4 / 16.0); - private static final List rotations = Arrays.asList(EnumFacing.NORTH, EnumFacing.WEST, EnumFacing.SOUTH, - EnumFacing.EAST); - - private final String basePath; - - @SideOnly(Side.CLIENT) - private TextureAtlasSprite[] textures; - - public SafeRenderer(String basePath) { - this.basePath = basePath; - Textures.iconRegisters.add(this); - } - - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getParticleTexture() { - return textures[1]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(TextureMap textureMap) { - String formattedBase = GTValues.MODID + ":blocks/" + basePath; - this.textures = new TextureAtlasSprite[7]; - this.textures[0] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/base_bottom")); - this.textures[1] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/base_top")); - this.textures[2] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/base_side")); - this.textures[3] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/base_front")); - - this.textures[4] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/door_side")); - this.textures[5] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/door_back")); - this.textures[6] = textureMap.registerSprite(new ResourceLocation(formattedBase + "/door_front")); - } - - @SideOnly(Side.CLIENT) - public void render(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline, EnumFacing rotation, - float capRotation) { - translation.translate(0.5, 0.5, 0.5); - translation.rotate(Math.toRadians(90.0 * rotations.indexOf(rotation)), Rotation.axes[1]); - translation.translate(-0.5, -0.5, -0.5); - - for (EnumFacing renderSide : EnumFacing.VALUES) { - TextureAtlasSprite baseSprite = renderSide.getAxis() == Axis.Y ? - textures[renderSide.getIndex()] : - renderSide == EnumFacing.NORTH ? textures[3] : textures[2]; - Textures.renderFace(renderState, translation, pipeline, renderSide, mainBoxOuter, baseSprite, - BlockRenderLayer.CUTOUT_MIPPED); - if (renderSide == EnumFacing.NORTH) continue; - Textures.renderFace(renderState, translation, pipeline, renderSide, mainBoxInner, baseSprite, - BlockRenderLayer.CUTOUT_MIPPED); - } - - translation.translate(4 / 16.0, 7 / 16.0, 3 / 16.0); - translation.rotate(Math.toRadians(capRotation), Rotation.axes[1]); - translation.translate(-4 / 16.0, -7 / 16.0, -3 / 16.0); - - for (EnumFacing renderSide : EnumFacing.VALUES) { - TextureAtlasSprite doorSprite = renderSide == EnumFacing.NORTH ? textures[6] : - renderSide == EnumFacing.SOUTH ? textures[5] : textures[4]; - Textures.renderFace(renderState, translation, pipeline, renderSide, doorBox, doorSprite, - BlockRenderLayer.CUTOUT_MIPPED); - } - } -} diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index dcee3394859..d35d77f79d8 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -20,14 +20,76 @@ import gregtech.common.blocks.BlockTurbineCasing; import gregtech.common.blocks.MetaBlocks; import gregtech.common.metatileentities.converter.MetaTileEntityConverter; -import gregtech.common.metatileentities.electric.*; -import gregtech.common.metatileentities.multi.*; -import gregtech.common.metatileentities.multi.electric.*; +import gregtech.common.metatileentities.electric.MetaTileEntityAlarm; +import gregtech.common.metatileentities.electric.MetaTileEntityBatteryBuffer; +import gregtech.common.metatileentities.electric.MetaTileEntityBlockBreaker; +import gregtech.common.metatileentities.electric.MetaTileEntityCharger; +import gregtech.common.metatileentities.electric.MetaTileEntityDiode; +import gregtech.common.metatileentities.electric.MetaTileEntityFisher; +import gregtech.common.metatileentities.electric.MetaTileEntityGasCollector; +import gregtech.common.metatileentities.electric.MetaTileEntityHull; +import gregtech.common.metatileentities.electric.MetaTileEntityItemCollector; +import gregtech.common.metatileentities.electric.MetaTileEntityMagicEnergyAbsorber; +import gregtech.common.metatileentities.electric.MetaTileEntityMiner; +import gregtech.common.metatileentities.electric.MetaTileEntityPump; +import gregtech.common.metatileentities.electric.MetaTileEntityRockBreaker; +import gregtech.common.metatileentities.electric.MetaTileEntitySingleCombustion; +import gregtech.common.metatileentities.electric.MetaTileEntitySingleTurbine; +import gregtech.common.metatileentities.electric.MetaTileEntityTransformer; +import gregtech.common.metatileentities.electric.MetaTileEntityWorldAccelerator; +import gregtech.common.metatileentities.electric.SimpleMachineMetaTileEntityResizable; +import gregtech.common.metatileentities.multi.BoilerType; +import gregtech.common.metatileentities.multi.MetaTileEntityCokeOven; +import gregtech.common.metatileentities.multi.MetaTileEntityCokeOvenHatch; +import gregtech.common.metatileentities.multi.MetaTileEntityLargeBoiler; +import gregtech.common.metatileentities.multi.MetaTileEntityMultiblockTank; +import gregtech.common.metatileentities.multi.MetaTileEntityPrimitiveBlastFurnace; +import gregtech.common.metatileentities.multi.MetaTileEntityPrimitiveWaterPump; +import gregtech.common.metatileentities.multi.MetaTileEntityPumpHatch; +import gregtech.common.metatileentities.multi.MetaTileEntityTankValve; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityActiveTransformer; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityAssemblyLine; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityCleanroom; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityCrackingUnit; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityDataBank; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityDistillationTower; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityElectricBlastFurnace; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityFluidDrill; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityFusionReactor; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityHPCA; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityImplosionCompressor; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityLargeChemicalReactor; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityLargeMiner; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityMultiSmelter; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityNetworkSwitch; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityPowerSubstation; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityProcessingArray; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityPyrolyseOven; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityResearchStation; +import gregtech.common.metatileentities.multi.electric.MetaTileEntityVacuumFreezer; import gregtech.common.metatileentities.multi.electric.centralmonitor.MetaTileEntityCentralMonitor; import gregtech.common.metatileentities.multi.electric.centralmonitor.MetaTileEntityMonitorScreen; import gregtech.common.metatileentities.multi.electric.generator.MetaTileEntityLargeCombustionEngine; import gregtech.common.metatileentities.multi.electric.generator.MetaTileEntityLargeTurbine; -import gregtech.common.metatileentities.multi.multiblockpart.*; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityAutoMaintenanceHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityCleaningMaintenanceHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityComputationHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityDataAccessHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityEnergyHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityFluidHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityItemBus; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityLaserHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMachineHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMaintenanceHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMufflerHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityMultiFluidHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityObjectHolder; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityOpticalDataHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchFluid; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchItem; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityReservoirHatch; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityRotorHolder; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntitySubstationEnergyHatch; import gregtech.common.metatileentities.multi.multiblockpart.appeng.MetaTileEntityMEInputBus; import gregtech.common.metatileentities.multi.multiblockpart.appeng.MetaTileEntityMEInputHatch; import gregtech.common.metatileentities.multi.multiblockpart.appeng.MetaTileEntityMEOutputBus; @@ -39,13 +101,28 @@ import gregtech.common.metatileentities.multi.steam.MetaTileEntitySteamGrinder; import gregtech.common.metatileentities.multi.steam.MetaTileEntitySteamOven; import gregtech.common.metatileentities.primitive.MetaTileEntityCharcoalPileIgniter; -import gregtech.common.metatileentities.steam.*; +import gregtech.common.metatileentities.steam.SteamAlloySmelter; +import gregtech.common.metatileentities.steam.SteamCompressor; +import gregtech.common.metatileentities.steam.SteamExtractor; +import gregtech.common.metatileentities.steam.SteamFurnace; +import gregtech.common.metatileentities.steam.SteamHammer; +import gregtech.common.metatileentities.steam.SteamMacerator; +import gregtech.common.metatileentities.steam.SteamMiner; +import gregtech.common.metatileentities.steam.SteamRockBreaker; import gregtech.common.metatileentities.steam.boiler.SteamCoalBoiler; import gregtech.common.metatileentities.steam.boiler.SteamLavaBoiler; import gregtech.common.metatileentities.steam.boiler.SteamSolarBoiler; import gregtech.common.metatileentities.steam.multiblockpart.MetaTileEntitySteamHatch; import gregtech.common.metatileentities.steam.multiblockpart.MetaTileEntitySteamItemBus; -import gregtech.common.metatileentities.storage.*; +import gregtech.common.metatileentities.storage.MetaTileEntityBuffer; +import gregtech.common.metatileentities.storage.MetaTileEntityCrate; +import gregtech.common.metatileentities.storage.MetaTileEntityCreativeChest; +import gregtech.common.metatileentities.storage.MetaTileEntityCreativeEnergy; +import gregtech.common.metatileentities.storage.MetaTileEntityCreativeTank; +import gregtech.common.metatileentities.storage.MetaTileEntityDrum; +import gregtech.common.metatileentities.storage.MetaTileEntityQuantumChest; +import gregtech.common.metatileentities.storage.MetaTileEntityQuantumTank; +import gregtech.common.metatileentities.storage.MetaTileEntityWorkbench; import gregtech.common.pipelike.fluidpipe.longdistance.MetaTileEntityLDFluidEndpoint; import gregtech.common.pipelike.itempipe.longdistance.MetaTileEntityLDItemEndpoint; import gregtech.integration.jei.multiblock.MultiblockInfoCategory; @@ -302,7 +379,6 @@ public class MetaTileEntities { public static MetaTileEntityActiveTransformer ACTIVE_TRANSFORMER; // STORAGE SECTION - public static MetaTileEntityLockedSafe LOCKED_SAFE; public static MetaTileEntityTankValve WOODEN_TANK_VALVE; public static MetaTileEntityTankValve STEEL_TANK_VALVE; public static MetaTileEntityMultiblockTank WOODEN_TANK; @@ -1038,7 +1114,6 @@ public static void init() { new MetaTileEntityRotorHolder(gregtechId("rotor_holder.uv"), GTValues.UV)); // Misc, IDs 1646-1999 - LOCKED_SAFE = registerMetaTileEntity(1646, new MetaTileEntityLockedSafe(gregtechId("locked_safe"))); WORKBENCH = registerMetaTileEntity(1647, new MetaTileEntityWorkbench(gregtechId("workbench"))); PRIMITIVE_WATER_PUMP = registerMetaTileEntity(1648, new MetaTileEntityPrimitiveWaterPump(gregtechId("primitive_water_pump"))); diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLockedSafe.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLockedSafe.java deleted file mode 100644 index d8230181390..00000000000 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityLockedSafe.java +++ /dev/null @@ -1,432 +0,0 @@ -package gregtech.common.metatileentities.storage; - -import gregtech.api.GTValues; -import gregtech.api.gui.GuiTextures; -import gregtech.api.gui.ModularUI; -import gregtech.api.gui.widgets.LabelWidget; -import gregtech.api.gui.widgets.ProgressWidget; -import gregtech.api.gui.widgets.ProgressWidget.MoveType; -import gregtech.api.gui.widgets.ServerWidgetGroup; -import gregtech.api.gui.widgets.SlotWidget; -import gregtech.api.items.itemhandlers.GTItemStackHandler; -import gregtech.api.metatileentity.IFastRenderMetaTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; -import gregtech.api.recipes.ingredients.GTRecipeInput; -import gregtech.api.recipes.ingredients.GTRecipeItemInput; -import gregtech.api.recipes.ingredients.GTRecipeOreInput; -import gregtech.api.util.GTUtility; -import gregtech.client.renderer.texture.Textures; -import gregtech.common.worldgen.LootTableHelper; -import gregtech.loaders.recipe.CraftingComponent; -import gregtech.loaders.recipe.CraftingComponent.Component; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.world.WorldServer; -import net.minecraft.world.storage.loot.LootContext; -import net.minecraft.world.storage.loot.LootTable; -import net.minecraftforge.common.util.Constants.NBT; -import net.minecraftforge.items.ItemStackHandler; -import net.minecraftforge.oredict.OreDictionary; - -import codechicken.lib.raytracer.CuboidRayTraceResult; -import codechicken.lib.raytracer.IndexedCuboid6; -import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.pipeline.ColourMultiplier; -import codechicken.lib.render.pipeline.IVertexOperation; -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Matrix4; -import org.apache.commons.lang3.tuple.Pair; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -import java.util.Random; -import java.util.function.DoubleSupplier; - -import static gregtech.api.capability.GregtechDataCodes.UPDATE_CONTENTS_SEED; -import static gregtech.api.capability.GregtechDataCodes.UPDATE_LOCKED_STATE; - -public class MetaTileEntityLockedSafe extends MetaTileEntity implements IFastRenderMetaTileEntity { - - private static final int MAX_UNLOCK_PROGRESS = 100; - private static Component[] ALLOWED_COMPONENTS; - private static final IndexedCuboid6 COLLISION_BOX = new IndexedCuboid6(null, - new Cuboid6(3 / 16.0, 0 / 16.0, 3 / 16.0, 13 / 16.0, 14 / 16.0, 13 / 16.0)); - - private int unlockProgress = -1; - private int unlockComponentTier = 1; - private boolean isSafeUnlocked = false; - - private long unlockComponentsSeed = 0L; - private final ItemStackHandler unlockComponents = new GTItemStackHandler(this, 2); - private final ItemStackHandler unlockInventory = new GTItemStackHandler(this, 2) { - - @NotNull - @Override - public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { - int maxStackSize = canPutUnlockItemInSlot(slot, stack); - if (maxStackSize == 0) return stack; - int maxAmount = Math.min(maxStackSize, stack.getCount()); - int remainder = stack.getCount() - maxAmount; - stack = stack.copy(); - stack.setCount(maxAmount); - int addAmount = super.insertItem(slot, stack, simulate).getCount(); - int totalAmount = remainder + addAmount; - return totalAmount == 0 ? ItemStack.EMPTY : GTUtility.copy(totalAmount, stack); - } - - @Override - protected void onContentsChanged(int slot) { - super.onContentsChanged(slot); - recheckUnlockItemsAndUnlock(); - } - }; - private final ItemStackHandler safeLootInventory = new GTItemStackHandler(this, 27); - private float doorAngle = 0.0f; - private float prevDoorAngle = 0.0f; - - public MetaTileEntityLockedSafe(ResourceLocation metaTileEntityId) { - super(metaTileEntityId); - } - - @Override - public void clearMachineInventory(NonNullList itemBuffer) { - if (isSafeUnlocked()) { - clearInventory(itemBuffer, safeLootInventory); - } - } - - @Override - public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new MetaTileEntityLockedSafe(metaTileEntityId); - } - - @Override - public void update() { - super.update(); - updateOpenVisualAnimation(); - updateOpenProgress(); - } - - @Override - public boolean onRightClick(EntityPlayer playerIn, EnumHand hand, EnumFacing facing, - CuboidRayTraceResult hitResult) { - generateUnlockComponents(); - return super.onRightClick(playerIn, hand, facing, hitResult); - } - - @Override - public void addCollisionBoundingBox(List collisionList) { - collisionList.add(COLLISION_BOX); - } - - @Override - public boolean shouldDropWhenDestroyed() { - return false; - } - - @Override - public float getBlockHardness() { - return isSafeUnlocked() ? 6.0f : -1.0f; - } - - @Override - public float getBlockResistance() { - return 6000000.0F; - } - - private void generateUnlockComponents() { - if (!getWorld().isRemote && unlockComponentsSeed == 0L) { - setUnlockComponentsSeed(new Random().nextLong()); - } - } - - private void updateDisplayUnlockComponents() { - GTRecipeInput[] unlockComponents = getUnlockComponents(); - for (int i = 0; i < Math.min(this.unlockComponents.getSlots(), unlockComponents.length); i++) { - if (unlockComponents[i].isOreDict()) { - this.unlockComponents.setStackInSlot(i, - OreDictionary.getOres(OreDictionary.getOreName(unlockComponents[i].getOreDict())).get(0)); - } else { - this.unlockComponents.setStackInSlot(i, (unlockComponents[i].getInputStacks()[0])); - } - } - } - - private GTRecipeInput[] getUnlockComponents() { - if (ALLOWED_COMPONENTS == null) - ALLOWED_COMPONENTS = new Component[] { CraftingComponent.PUMP, CraftingComponent.CONVEYOR, - CraftingComponent.EMITTER, CraftingComponent.SENSOR }; - - Random random = new Random(unlockComponentsSeed); - return new GTRecipeInput[] { - new GTRecipeOreInput(CraftingComponent.CIRCUIT.getIngredient(unlockComponentTier).toString()), - new GTRecipeItemInput((ItemStack) ALLOWED_COMPONENTS[random.nextInt(ALLOWED_COMPONENTS.length)] - .getIngredient(unlockComponentTier)), - }; - } - - private void recheckUnlockItemsAndUnlock() { - if (getWorld() != null && !getWorld().isRemote && !isSafeUnlocked() && - checkUnlockedItems() && unlockProgress == -1) { - this.unlockProgress++; - markDirty(); - } - } - - private int canPutUnlockItemInSlot(int slot, ItemStack itemStack) { - if (itemStack.isEmpty()) { - return 0; - } - boolean isRequiredItem = false; - int amountRequired = 0; - GTRecipeInput[] unlockComponents = getUnlockComponents(); - for (GTRecipeInput stack : unlockComponents) { - if (stack == null) continue; - if (!stack.acceptsStack(itemStack)) continue; - amountRequired = stack.getAmount(); - isRequiredItem = true; - break; - } - if (!isRequiredItem) { - return 0; - } - for (int i = 0; i < unlockInventory.getSlots(); i++) { - ItemStack componentStack = unlockInventory.getStackInSlot(i); - if (componentStack.isEmpty()) continue; - if (!componentStack.isItemEqual(itemStack)) continue; - return slot == i ? amountRequired - componentStack.getCount() : 0; - } - return amountRequired; - } - - private boolean checkUnlockedItems() { - GTRecipeInput[] unlockComponents = getUnlockComponents(); - for (GTRecipeInput stack : unlockComponents) { - if (stack == null) continue; - int itemLeftToCheck = stack.getAmount(); - for (int i = 0; i < unlockInventory.getSlots(); i++) { - ItemStack otherStack = unlockInventory.getStackInSlot(i); - if (otherStack.isEmpty()) continue; - if (stack.acceptsStack(otherStack)) continue; - itemLeftToCheck -= otherStack.getCount(); - } - if (itemLeftToCheck > 0) return false; - } - return true; - } - - private void updateOpenProgress() { - if (!getWorld().isRemote && unlockProgress >= 0 && unlockProgress < MAX_UNLOCK_PROGRESS) { - ++this.unlockProgress; - if (unlockProgress >= MAX_UNLOCK_PROGRESS) { - generateChestContents(); - setSafeUnlocked(true); - } - } - } - - private void generateChestContents() { - ResourceLocation lootTableLocation = GTUtility.gregtechId("chests/abandoned_safe_" + unlockComponentTier); - WorldServer worldServer = (WorldServer) getWorld(); - LootTable lootTable = worldServer.getLootTableManager().getLootTableFromLocation(lootTableLocation); - LootContext lootContext = new LootContext.Builder(worldServer).build(); - Random random = new Random(); - List loots = lootTable.generateLootForPools(random, lootContext); - LootTableHelper.fillInventory(safeLootInventory, random, loots); - } - - private void updateOpenVisualAnimation() { - this.prevDoorAngle = doorAngle; - if ((!isSafeUnlocked && this.doorAngle > 0.0F) || - (isSafeUnlocked && this.doorAngle < 1.0F)) { - if (isSafeUnlocked) { - this.doorAngle += 0.1F; - } else { - this.doorAngle -= 0.1F; - } - if (this.doorAngle > 1.0F) { - this.doorAngle = 1.0F; - } else if (this.doorAngle < 0.0F) { - this.doorAngle = 0.0F; - } - } - } - - public boolean isSafeUnlocked() { - return isSafeUnlocked; - } - - public void setSafeUnlocked(boolean safeUnlocked) { - this.isSafeUnlocked = safeUnlocked; - if (getWorld() != null && !getWorld().isRemote) { - writeCustomData(UPDATE_LOCKED_STATE, buf -> buf.writeBoolean(safeUnlocked)); - notifyBlockUpdate(); - markDirty(); - } - } - - protected void setUnlockComponentsSeed(long unlockComponentsSeed) { - this.unlockComponentsSeed = unlockComponentsSeed; - if (getWorld() != null && !getWorld().isRemote) { - updateDisplayUnlockComponents(); - writeCustomData(UPDATE_CONTENTS_SEED, buf -> buf.writeVarLong(unlockComponentsSeed)); - markDirty(); - } - } - - @Override - public void writeInitialSyncData(PacketBuffer buf) { - super.writeInitialSyncData(buf); - buf.writeVarInt(unlockComponentTier); - buf.writeBoolean(isSafeUnlocked); - buf.writeFloat(doorAngle); - buf.writeVarLong(unlockComponentsSeed); - } - - @Override - public void receiveInitialSyncData(PacketBuffer buf) { - super.receiveInitialSyncData(buf); - this.unlockComponentTier = buf.readVarInt(); - this.isSafeUnlocked = buf.readBoolean(); - this.doorAngle = buf.readFloat(); - this.prevDoorAngle = doorAngle; - this.unlockComponentsSeed = buf.readVarLong(); - } - - @Override - public void receiveCustomData(int dataId, PacketBuffer buf) { - super.receiveCustomData(dataId, buf); - if (dataId == UPDATE_LOCKED_STATE) { - this.isSafeUnlocked = buf.readBoolean(); - } else if (dataId == UPDATE_CONTENTS_SEED) { - this.unlockComponentsSeed = buf.readVarLong(); - } - } - - @Override - public void initFromItemStackData(NBTTagCompound itemStack) { - super.initFromItemStackData(itemStack); - if (itemStack.hasKey("ComponentTier", NBT.TAG_ANY_NUMERIC)) { - this.unlockComponentTier = itemStack.getInteger("ComponentTier"); - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound data) { - data = super.writeToNBT(data); - data.setInteger("UnlockProgress", unlockProgress); - data.setInteger("ComponentTier", unlockComponentTier); - data.setBoolean("Unlocked", isSafeUnlocked); - - data.setLong("UnlockComponentsSeed", unlockComponentsSeed); - data.setTag("UnlockInventory", unlockInventory.serializeNBT()); - data.setTag("LootInventory", safeLootInventory.serializeNBT()); - return data; - } - - @Override - public void readFromNBT(NBTTagCompound data) { - super.readFromNBT(data); - this.unlockProgress = data.getInteger("UnlockProgress"); - this.unlockComponentTier = data.getInteger("ComponentTier"); - this.isSafeUnlocked = data.getBoolean("Unlocked"); - - this.unlockComponentsSeed = data.getLong("UnlockComponentsSeed"); - this.unlockInventory.deserializeNBT(data.getCompoundTag("UnlockInventory")); - this.safeLootInventory.deserializeNBT(data.getCompoundTag("LootInventory")); - updateDisplayUnlockComponents(); - } - - @Override - public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {} - - @Override - public void renderMetaTileEntityFast(CCRenderState renderState, Matrix4 translation, float partialTicks) { - ColourMultiplier colourMultiplier = new ColourMultiplier( - GTUtility.convertRGBtoOpaqueRGBA_CL(GTValues.VC[unlockComponentTier])); - float angle = prevDoorAngle + (doorAngle - prevDoorAngle) * partialTicks; - angle = 1.0f - (1.0f - angle) * (1.0f - angle) * (1.0f - angle); - float resultDoorAngle = angle * 120.0f; - Textures.SAFE.render(renderState, translation, new IVertexOperation[] { colourMultiplier }, getFrontFacing(), - resultDoorAngle); - } - - @Override - public Pair getParticleTexture() { - return Pair.of(Textures.SAFE.getParticleTexture(), GTValues.VC[unlockComponentTier]); - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public int getLightOpacity() { - return 1; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(getPos().add(-1, 0, -1), getPos().add(2, 1, 2)); - } - - @Override - protected ModularUI createUI(EntityPlayer entityPlayer) { - DoubleSupplier supplier = () -> 0.2 + (unlockProgress / (MAX_UNLOCK_PROGRESS * 1.0)) * 0.8; - ModularUI.Builder builder = ModularUI.defaultBuilder() - .widget(new ProgressWidget(supplier, 5, 5, 166, 74, - GuiTextures.PROGRESS_BAR_UNLOCK, - MoveType.VERTICAL_INVERTED)) - .bindPlayerInventory(entityPlayer.inventory); - - ServerWidgetGroup lockedGroup = new ServerWidgetGroup(() -> !isSafeUnlocked && unlockProgress < 0); - lockedGroup.addWidget(new LabelWidget(5, 20, "gregtech.machine.locked_safe.malfunctioning")); - lockedGroup.addWidget(new LabelWidget(5, 30, "gregtech.machine.locked_safe.requirements")); - - lockedGroup.addWidget( - new SlotWidget(unlockInventory, 0, 70, 40, false, true).setBackgroundTexture(GuiTextures.SLOT)); - lockedGroup.addWidget( - new SlotWidget(unlockInventory, 1, 70 + 18, 40, false, true).setBackgroundTexture(GuiTextures.SLOT)); - - lockedGroup.addWidget(new SlotWidget(unlockComponents, 0, 70, 58, false, false)); - lockedGroup.addWidget(new SlotWidget(unlockComponents, 1, 70 + 18, 58, false, false)); - - ServerWidgetGroup unlockedGroup = new ServerWidgetGroup(() -> isSafeUnlocked); - for (int row = 0; row < 3; row++) { - for (int col = 0; col < 9; col++) { - unlockedGroup.addWidget(new SlotWidget(safeLootInventory, col + row * 9, - 8 + col * 18, 15 + row * 18, true, false)); - } - } - - return builder.widget(unlockedGroup) - .widget(lockedGroup) - .build(getHolder(), entityPlayer); - } - - @Override - public boolean canPlaceCoverOnSide(@NotNull EnumFacing side) { - return false; - } - - @Override - public boolean canRenderMachineGrid(@NotNull ItemStack mainHandStack, @NotNull ItemStack offHandStack) { - return false; - } - - @Override - public boolean showToolUsages() { - return false; - } -} diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index b5fd935ad7b..f34849c4bdd 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -2718,11 +2718,6 @@ gregtech.machine.crate.titanium.name=Titanium Crate gregtech.machine.crate.tungstensteel.name=Tungstensteel Crate gregtech.crate.tooltip.taped_movement=Can be Taped to keep inventory contents when broken -# Safe -gregtech.machine.locked_safe.name=Locked Safe -gregtech.machine.locked_safe.malfunctioning=§cMalfunctioning! -gregtech.machine.locked_safe.requirements=§7Replacements required: - # Workbench gregtech.machine.workbench.name=Crafting Station gregtech.machine.workbench.tooltip1=Better than Forestry diff --git a/src/main/resources/assets/gregtech/lang/ja_jp.lang b/src/main/resources/assets/gregtech/lang/ja_jp.lang index 28cb715332c..648aa40ec41 100644 --- a/src/main/resources/assets/gregtech/lang/ja_jp.lang +++ b/src/main/resources/assets/gregtech/lang/ja_jp.lang @@ -2723,11 +2723,6 @@ gregtech.machine.crate.titanium.name=チタン製クレート gregtech.machine.crate.tungstensteel.name=タングステンスチール製クレート gregtech.crate.tooltip.taped_movement=テープを使うと撤去時に中身を保持できる -# Safe -gregtech.machine.locked_safe.name=金庫 -gregtech.machine.locked_safe.malfunctioning=§c故障中! -gregtech.machine.locked_safe.requirements=§7要交換部品: - # Workbench gregtech.machine.workbench.name=クラフティングステーション gregtech.machine.workbench.tooltip1=Forestryのワークベンチより優秀 diff --git a/src/main/resources/assets/gregtech/lang/ru_ru.lang b/src/main/resources/assets/gregtech/lang/ru_ru.lang index 349a33f2169..6150191749e 100644 --- a/src/main/resources/assets/gregtech/lang/ru_ru.lang +++ b/src/main/resources/assets/gregtech/lang/ru_ru.lang @@ -2454,11 +2454,6 @@ gregtech.machine.crate.stainless_steel.name=Ящик из нержавеющей gregtech.machine.crate.titanium.name=Титановый ящик gregtech.machine.crate.tungstensteel.name=Ящик из вольфрамовой стали -# Safe -gregtech.machine.locked_safe.name=Закрытый сейф -gregtech.machine.locked_safe.malfunctioning=§cСломан! -gregtech.machine.locked_safe.requirements=§7Требуется замена: - # Workbench gregtech.machine.workbench.name=Инженерный верстак gregtech.machine.workbench.tooltip1=Лучше, чем в Forestry diff --git a/src/main/resources/assets/gregtech/lang/zh_cn.lang b/src/main/resources/assets/gregtech/lang/zh_cn.lang index f410418bbce..88906474bcf 100644 --- a/src/main/resources/assets/gregtech/lang/zh_cn.lang +++ b/src/main/resources/assets/gregtech/lang/zh_cn.lang @@ -2718,11 +2718,6 @@ gregtech.machine.crate.titanium.name=钛板条箱 gregtech.machine.crate.tungstensteel.name=钨钢板条箱 gregtech.crate.tooltip.taped_movement=可以用胶带打包库存,在破坏时一起带走 -# Safe -gregtech.machine.locked_safe.name=上锁的保险柜 -gregtech.machine.locked_safe.malfunctioning=§c运行故障! -gregtech.machine.locked_safe.requirements=§7替换部件需求: - # Workbench gregtech.machine.workbench.name=合成站 gregtech.machine.workbench.tooltip1=比林业的好 diff --git a/src/main/resources/assets/gregtech/loot_tables/chests/abandoned_safe_1.json b/src/main/resources/assets/gregtech/loot_tables/chests/abandoned_safe_1.json deleted file mode 100644 index 7accc9b7c68..00000000000 --- a/src/main/resources/assets/gregtech/loot_tables/chests/abandoned_safe_1.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "pools": [ - { - "name": "resources_pool", - "rolls": { - "min": 7, - "max": 12 - }, - "entries": [ - { - "type": "gregtech:ore_dict", - "name": "ingotSteel", - "functions": [ - { - "function": "set_count", - "count": { - "min": 4, - "max": 6 - } - } - ], - "weight": 10 - }, - { - "type": "gregtech:ore_dict", - "name": "plateSteel", - "functions": [ - { - "function": "set_count", - "count": { - "min": 4, - "max": 6 - } - } - ], - "weight": 10 - }, - { - "type": "gregtech:ore_dict", - "name": "ingotBronze", - "functions": [ - { - "function": "set_count", - "count": { - "min": 3, - "max": 8 - } - } - ], - "weight": 10 - }, - { - "type": "gregtech:ore_dict", - "name": "ingotAluminium", - "functions": [ - { - "function": "set_count", - "count": { - "min": 3, - "max": 9 - } - } - ], - "weight": 5 - }, - { - "type": "gregtech:ore_dict", - "name": "plateAluminium", - "functions": [ - { - "function": "set_count", - "count": { - "min": 3, - "max": 9 - } - } - ], - "weight": 5 - }, - { - "type": "item", - "name": "minecraft:redstone", - "functions": [ - { - "function": "set_count", - "count": { - "min": 7, - "max": 11 - } - } - ], - "weight": 5 - }, - { - "type": "item", - "name": "minecraft:gold_ingot", - "functions": [ - { - "function": "set_count", - "count": { - "min": 2, - "max": 5 - } - } - ], - "weight": 5 - }, - { - "type": "item", - "name": "minecraft:diamond", - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ], - "weight": 2 - } - ] - }, - { - "name": "components_pool", - "rolls": 3, - "entries": [ - { - "type": "gregtech:meta_item", - "name": "electric.motor.lv", - "functions": [ - { - "function": "set_count", - "count": { - "min": 2, - "max": 3 - } - } - ], - "weight": 20 - }, - { - "type": "gregtech:meta_item", - "name": "conveyor.module.lv", - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ], - "weight": 15 - }, - { - "type": "gregtech:meta_item", - "name": "electric.pump.lv", - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ], - "weight": 12 - }, - { - "type": "gregtech:meta_item", - "name": "robot.arm.lv", - "functions": [ - { - "function": "set_count", - "count": 1 - } - ], - "weight": 11 - }, - { - "type": "gregtech:meta_item", - "name": "emitter.lv", - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ], - "weight": 9 - }, - { - "type": "gregtech:meta_item", - "name": "sensor.lv", - "functions": [ - { - "function": "set_count", - "count": { - "min": 1, - "max": 2 - } - } - ], - "weight": 9 - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_bottom.png b/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_bottom.png deleted file mode 100644 index d02d5b81f6fa39db7dab1e3b0a175eb3757029e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)N2bZe?^J zG%hhNHvLWs=l}o#B1uF+R5(wilFM$wFc3xgZ#L~BB1kRa(f(04mAWXR5QmUb9(gz~ zLVnsT^P9Jw&Jg O0000!lvI6;>1s;*b z3=DjGL736~_k^`TL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3(J+r@loG*ZC3_V>O zLoEE0fBgS%?<%ocK~thNIQ0If`4T;A*bg(L*qPa69azDrU?aq%z^44=PdWp`x7E)+ U8}BGe0%~UPboFyt=akR{01e$Wk^lez diff --git a/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_side.png b/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_side.png deleted file mode 100644 index ac0793f747be42020de511159a56989d8bf9555e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)N2bZe?^J zG%hhNHvLWs=l}o#8A(JzR5(wijoVJbP!L7=ZeD!x5AcQ{EiF|lwn8v5UNFXMj7Ec$ zLb;<+Q9waHV4InwNTbO)#)p;ZnRKlQ0r(fcF8@N{5uTfe471LUKxZ;Rd;A%gt z*Y7%AT-O`8bgMWkmE{8T)4AjFWfF;ta)kpY#gaH+?-yY09rE$0pd@9BHRD~002ovPDHLk FV1g1{r}F>+ diff --git a/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_top.png b/src/main/resources/assets/gregtech/textures/blocks/storage/safe/base_top.png deleted file mode 100644 index e9361efca6ffbb79b0fc64e4fdd2b1dfa6627b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmV;T0bTxyP)<{97<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHvLWs=l}o#AW1|)R5(wil3P#0KoEub;rgHtisB^}DgGi8eN#f%#TIM;q4$ft zA7=(h+PDRZ4=2-|&iQ6$+ZKR-$(U>+W3q`Vhtu;*bgUk3y0$@mdB-(nPX*AiY^dcI zwC_U)K}Cvk!}*LLHkH-@xXU;U@ewC*k`!*5NgPM9Nck(7r0g*QR1k`RL9FfbXvKg7 zCeUF--DvDz5T7}YXuX{)+&=c<#1U!J)k!D{j6f8Ji-lZd+4BeBl4+V3m=*;-i*HQw z9Fr`En`N}Za^D0`RGf<0TdyUuk@tU}&GDiXuI{^3S_6PqO`KcpZ*>zJBOQ=k}e2ld}sdtpOY(W3q{i$-{-#56&STQn)YD1^@s6 M07*qoM6N<$g6W>BO8@`> diff --git a/src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_back.png b/src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_back.png deleted file mode 100644 index c12c82dda048ff6095d947079fc49553e708b8bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)N2bZe?^J zG%hhNHvLWs=l}o#8A(JzR5(wijoVJbP!L7=ZeD!x5AcQ{EiF|lwn8v5UNFXMj7Ec$ zLb;<+Q9waHV4InwNTbO)#)p;ZnRKlQ0r(fcF8@N{5uTfe471LUKxZ;Rd;A%gt z*Y7%AT-O`8bgMWkmE{8T)4AjFWfF;ta)kpY#gaH+?-yY09rE$0pd@9BHRD~002ovPDHLk FV1jl(r+xqc diff --git a/src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_front.png b/src/main/resources/assets/gregtech/textures/blocks/storage/safe/door_front.png deleted file mode 100644 index 7470109b0a39345ee31c6adea66e390de3b47091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmV;50d@X~P)N2bZe?^J zG%hhNHvLWs=l}o#2uVaiR5(wijmt_xQ51&vtN11d0^z(;lP0}^UA&}6Jyu@O2!hDl zpqexZyp*J%VuMsPG9TdAf59Pdu(ve$SZ6KH_iY8>U+g^Y!`gCqbPN+#ovlEBK1Xl% zyEeN&GjyikXbnf^0pf}8UqjRepLp%|%mSU|dAx-3L0`c?R(Sbn3)(!6@Lt7d`R0@n#m_PnKnE!N6m!p$`;_6%qKeZQC-r-;}DzKa}->%-y{Rls&k| z(m6pJa0|C0Fhn_&ypo+Wl1l3XPBt&XCc(s|pbdoGYn((AICET_$5SHlb!lvI6;>1s;*b z3=DjGK$vmro+3}6phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7?p4neN&KE#6Ql2i3 sAr}70D^}$za`t8^uz@hI74KJFhGxrJfrJ>J8lWl$Pgg&ebxsLQ0Gd!IC;$Ke diff --git a/src/main/resources/assets/gregtech/textures/gui/progress_bar/progress_bar_unlock.png b/src/main/resources/assets/gregtech/textures/gui/progress_bar/progress_bar_unlock.png deleted file mode 100644 index 25b60223437923dea90fd39754f040aa1056bdc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcmeAS@N?(olHy`uVBq!ia0vp^%Yb+S2OE%VS}kxKNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?F3=Q9c<$Jfr1hxt`Q}{`DrEPiAAXl1&Nt?C3<kneVc088NA;>&v%uivo!Qk`IigIf2?{KSZZ%}cg*&v2Ny_WJL?)9U#8 zf~1Edy8U{;{rd7hzt3muez&Xt_xJnxH#@nj-#uC{=f2^qM#A~np4WvoH|wr++Ljw` z`hRlqz8l5j&DApeM;G&byL0q|-0^RL-}v88e|^L5)V$plPW$85E8FUn$+*S>)dm0h z`p@d#&C)Bf)$fvm_S?m~Z~Cl}bUxPS_4RMn?sIPziwpmLeBbc=#4bI${NV zoLXJqpV=R~rRq;<;FdlvppS~`e;>_}`wDc7&-;(vH^Bkm(ywfzvrUE-szfHar7zjOY>OZZ}2Ri?O+;QiRE1H3-_8i|>JLT`;-%qW! z^>2EvH}Asw>#sfdyJg)2#ewRk)a~8hS6(JtdVJpQ8CTYyzdrGeO&8F}%fGh%y%(4c zRB`0q{p4H8;%nvVV@1|3J_J;D=YE~xZ1-A_s_H*UU{mETKIY)>)^&FTnK?u5xb*G5 zU7+xMRmc+E&jb|PA$NT8Tlcv@J<7l5+q~)qI&8=Bj{!EXfQfi-XQJNw=) z2F8;5m)BpdE*(xf9(bh{sBUTe`}L3K#=76#_*_rz>+8>@D%SlJJYD@<);T3K0RYpAC8q!Y