From 65adcbc9b04ef027bc43c21b808155a3c2f0bb46 Mon Sep 17 00:00:00 2001 From: AndreySolodovnikov <37311176+AndreySolodovnikov@users.noreply.github.com> Date: Sun, 28 Apr 2019 20:04:21 +0300 Subject: [PATCH] Added organic replicator (#1530) * Improved LuV+conveyor modules now LuV+ Conveyors can work with more than 1 stack per tick * Fixed conveyors * Revert "Fixed conveyors" This reverts commit 467563b8c92502247ab3d5cad9165cbe77e0b998. * Revert "Improved LuV+conveyor modules" This reverts commit 4dc2e2124c85e336461e58a11b3cf9c7222cca16. * Added organic replicator Added new machine for duplicating seeds --- src/main/java/gregtech/GT_Mod.java | 2 + .../java/gregtech/api/enums/ItemList.java | 1 + .../java/gregtech/api/util/GT_Recipe.java | 4 +- .../GT_MetaTileEntity_OrganicReplicator.java | 96 ++++++++++++++++++ .../preload/GT_Loader_MetaTileEntities.java | 19 ++++ .../organic_replicator/OVERLAY_BOTTOM.png | Bin 0 -> 143 bytes .../OVERLAY_BOTTOM_ACTIVE.png | Bin 0 -> 143 bytes .../organic_replicator/OVERLAY_FRONT.png | Bin 0 -> 1249 bytes .../OVERLAY_FRONT_ACTIVE.png | Bin 0 -> 1022 bytes .../OVERLAY_FRONT_ACTIVE.png.mcmeta | 5 + .../organic_replicator/OVERLAY_SIDE.png | Bin 0 -> 143 bytes .../OVERLAY_SIDE_ACTIVE.png | Bin 0 -> 143 bytes .../organic_replicator/OVERLAY_TOP.png | Bin 0 -> 176 bytes .../organic_replicator/OVERLAY_TOP_ACTIVE.png | Bin 0 -> 214 bytes .../OVERLAY_TOP_ACTIVE.png.mcmeta | 5 + 15 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_OrganicReplicator.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_BOTTOM.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_BOTTOM_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_SIDE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_SIDE_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_TOP.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_TOP_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_TOP_ACTIVE.png.mcmeta diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 02dc3956..254b7bfa 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -874,7 +874,9 @@ public class GT_Mod implements IGT_Mod { GT_Recipe.GT_Recipe_Map.sReplicatorFakeRecipes.addFakeRecipe(false, null, ISmat0, ISmat1, new FluidStack[]{Materials.UUMatter.getFluid(tMaterial.getMass())}, null, (int) (tMaterial.getMass() * 512L), 32, 0); } } + } + GT_Recipe.GT_Recipe_Map.sOrganicReplicatorFakeRecipes.addFakeRecipe(false,(new ItemStack[]{ItemList.IC2_Crop_Seeds.getWithName(1,"Instance seeds to duplicate(does not get consumed in progress)",new Object[0])}),(new ItemStack[]{ItemList.IC2_Crop_Seeds.getWithName(1,"Duplicated seeds; Chance equals efficiency")}),null, (new FluidStack[]{Materials.UUMatter.getFluid(1L)}),null,200,32,0); if (!GT_MetaTileEntity_Massfabricator.sRequiresUUA) GT_Recipe.GT_Recipe_Map.sMassFabFakeRecipes.addFakeRecipe(false, null, null, null, null, new FluidStack[]{Materials.UUMatter.getFluid(1L)}, GT_MetaTileEntity_Massfabricator.sDurationMultiplier, 256, 0); GT_Recipe.GT_Recipe_Map.sMassFabFakeRecipes.addFakeRecipe(false, null, null, null, new FluidStack[]{Materials.UUAmplifier.getFluid(GT_MetaTileEntity_Massfabricator.sUUAperUUM)}, new FluidStack[]{Materials.UUMatter.getFluid(1L)}, GT_MetaTileEntity_Massfabricator.sDurationMultiplier / GT_MetaTileEntity_Massfabricator.sUUASpeedBonus, 256, 0); GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Side", new Object[0])}, new ItemStack[]{new ItemStack(Blocks.cobblestone, 1)}, null, null, null, 16, 32, 0); diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index 857dadf0..e49b5be6 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -618,6 +618,7 @@ public enum ItemList implements IItemContainer { Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer, Machine_LuV_Hammer, Machine_ZPM_Hammer, Machine_UV_Hammer, Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater, Machine_LuV_FluidHeater, Machine_ZPM_FluidHeater, Machine_UV_FluidHeater, Machine_LV_Miner, Machine_MV_Miner, + Machine_LV_OrganicReplicator, Machine_MV_OrganicReplicator, Machine_HV_OrganicReplicator, Machine_EV_OrganicReplicator, Machine_IV_OrganicReplicator, Machine_LuV_OrganicReplicator, Machine_ZPM_OrganicReplicator, Machine_UV_OrganicReplicator, Neutron_Reflector, Reactor_Coolant_He_1, Reactor_Coolant_He_3, Reactor_Coolant_He_6, Reactor_Coolant_NaK_1, Reactor_Coolant_NaK_3, Reactor_Coolant_NaK_6, diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index ab54beda..5950c51e 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -512,8 +512,8 @@ public class GT_Recipe implements Comparable { public static final GT_Recipe_Map sRockBreakerFakeRecipes = new GT_Recipe_Map(new HashSet(3), "gt.recipe.rockbreaker", "Rock Breaker", null, RES_PATH_GUI + "basicmachines/RockBreaker", 1, 1, 0, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map(new HashSet(1000), "gt.recipe.byproductlist", "Ore Byproduct List", null, RES_PATH_GUI + "basicmachines/Default", 1, 6, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sReplicatorFakeRecipes = new GT_Recipe_Map(new HashSet(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true); - //public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet(30), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); - public static final GT_Recipe_Map sAssemblylineVisualRecipes = new GT_Recipe_Map(new HashSet(30), "gt.recipe.fakeAssemblylineProcess", "Assemblyline Process", null, RES_PATH_GUI + "FakeAssemblyline", 1, 1, 1, 0, 1, E, 1, E, true, false); + public static final GT_Recipe_Map sOrganicReplicatorFakeRecipes = new GT_Recipe_Map(new HashSet(1),"gt.recipe.organicreplicaator","Organic Replicator", null,RES_PATH_GUI + "basicmachines/OrganicReplicator",1,1,1,1,1,E,1,E,true,true); + //public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet(30), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true); public static final GT_Recipe_Map sAssemblylineVisualRecipes = new GT_Recipe_Map(new HashSet(30), "gt.recipe.fakeAssemblylineProcess", "Assemblyline Process", null, RES_PATH_GUI + "FakeAssemblyline", 1, 1, 1, 0, 1, E, 1, E, true, false); public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.plasmaarcfurnace", "Plasma Arc Furnace", null, RES_PATH_GUI + "basicmachines/PlasmaArcFurnace", 1, 4, 1, 1, 1, E, 1, E, true, true); public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(new HashSet(10000), "gt.recipe.arcfurnace", "Arc Furnace", null, RES_PATH_GUI + "basicmachines/ArcFurnace", 1, 4, 1, 1, 3, E, 1, E, true, true); public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer(new HashSet(100), "gt.recipe.printer", "Printer", null, RES_PATH_GUI + "basicmachines/Printer", 1, 1, 1, 1, 1, E, 1, E, true, true); diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_OrganicReplicator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_OrganicReplicator.java new file mode 100644 index 00000000..9751b0a8 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_OrganicReplicator.java @@ -0,0 +1,96 @@ +package gregtech.common.tileentities.machines.basic; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.*; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; +import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import ic2.api.crops.CropCard; +import ic2.api.crops.Crops; +import ic2.core.item.ItemCropSeed; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.FluidStack; + +public class GT_MetaTileEntity_OrganicReplicator extends GT_MetaTileEntity_BasicMachine{ + + private static short EUMultiplier = 500; + private static float UUMatterMultiplier = 2; + + public GT_MetaTileEntity_OrganicReplicator(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, 1, new String[]{"Copies seeds with efficiency: "+Math.min((aTier+5)*10,100)+"%","Uses UUMatter for each seed","The better crop the more UUMatter it needs"}, 1, 1, "OrganicReplicator.png", "", new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_SIDE_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_SIDE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_FRONT")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_TOP_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_TOP")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/organic_replicator/OVERLAY_BOTTOM_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("OVERLAY_BOTTOM"))); + } + + public GT_MetaTileEntity_OrganicReplicator(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public GT_MetaTileEntity_OrganicReplicator(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) { + super(aName, aTier, 1, aDescription, aTextures, 1, 1, aGUIName, aNEIName); + } + + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_OrganicReplicator(this.mName, this.mTier, this.mDescriptionArray, this.mTextures, this.mGUIName, this.mNEIName); + } + + public int checkRecipe(){ + FluidStack tFluid = getFillableStack(); + ItemStack aStack = getInputAt(0); + float efficiency = Math.min((this.mTier+5)*10,100); + if ((tFluid != null) && (tFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)))&& ItemList.IC2_Crop_Seeds.isStackEqual(aStack, true, true)&&isOutputEmpty()) { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT == null) { + tNBT = new NBTTagCompound(); + } + if (tNBT.getByte("scan") == 4){ + int aGain = ItemCropSeed.getGainFromStack(aStack); + int aGrowth = ItemCropSeed.getGrowthFromStack(aStack); + int aResistance = ItemCropSeed.getResistanceFromStack(aStack); + CropCard v= Crops.instance.getCropCard(aStack); + int aCropTier = v.tier(); + this.mEUt = ((int) gregtech.api.enums.GT_Values.V[this.mTier]); + this.mMaxProgresstime = (aCropTier+1)*EUMultiplier/ (1 << this.mTier - 1); + //setFillableStack(new FluidStack(getFillableStack().fluid,Math.round(getFillableStack().amount-(aCropTier*4+aGain+aGrowth+aResistance)*UUMatterMultiplier))); + FluidStack f = tFluid; + f.amount = ((int) (f.amount - (aCropTier*4+aGain+aGrowth+aResistance)*UUMatterMultiplier)); + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{aStack}); + this.mOutputItems[0].setTagCompound(tNBT); + if(getBaseMetaTileEntity().getRandomNumber(100) > efficiency){ + this.mOutputItems[0] = null; + } + return 2; + } + + } + return 0; + } + + public void onConfigLoad(GT_Config aConfig){ + super.onConfigLoad(aConfig); + EUMultiplier = (short) aConfig.get(ConfigCategories.machineconfig,"organicreplicator.euMultiplier",500); + UUMatterMultiplier = aConfig.get(ConfigCategories.machineconfig,"organicreplicator.UUMatterMultiplier",2); + } + + @Override + public GT_Recipe.GT_Recipe_Map getRecipeList() { + return GT_Recipe.GT_Recipe_Map.sOrganicReplicatorFakeRecipes; + } + + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (ItemList.IC2_Crop_Seeds.isStackEqual(aStack)); + } + + public boolean isFluidInputAllowed(FluidStack aFluid) { + return aFluid.isFluidEqual(Materials.UUMatter.getFluid(1L)); + } + + public int getCapacity() { + return 100000; + } + +} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index 8f425bd3..e961f9ad 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -1081,6 +1081,25 @@ public class GT_Loader_MetaTileEntities implements Runnable { GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_Miner.get(1L), bitsd, new Object[]{"EEE", aTextWireHull, "CSC", 'M', ItemList.Hull_LV, 'E', ItemList.Electric_Motor_LV, 'C', OrePrefixes.circuit.get(Materials.Basic), 'W', OrePrefixes.cableGt01.get(Materials.Tin), 'S', ItemList.Sensor_LV}); GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_Miner.get(1L), bitsd, new Object[]{"EEE", aTextWireHull, "CSC", 'M', ItemList.Hull_MV, 'E', ItemList.Electric_Motor_MV, 'C', OrePrefixes.circuit.get(Materials.Good), 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'S', ItemList.Sensor_MV}); + + ItemList.Machine_LV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(681,"basicmachine.organicreplicator.tier.01","Basic Organic Replicator",1).getStackForm(1L)); + ItemList.Machine_MV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(682,"basicmachine.organicreplicator.tier.02","Advanced Organic Replicator",2).getStackForm(1L)); + ItemList.Machine_HV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(683,"basicmachine.organicreplicator.tier.03","Advanced Organic Replicator II",3).getStackForm(1L)); + ItemList.Machine_EV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(684,"basicmachine.organicreplicator.tier.04","Advanced Organic Replicator III",4).getStackForm(1L)); + ItemList.Machine_IV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(685,"basicmachine.organicreplicator.tier.05","Advanced Organic Replicator IV",5).getStackForm(1L)); + ItemList.Machine_LuV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(686,"basicmachine.organicreplicator.tier.06","Advanced Organic Replicator V",6).getStackForm(1L)); + ItemList.Machine_ZPM_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(687,"basicmachine.organicreplicator.tier.07","Advanced Organic Replicator VI",7).getStackForm(1L)); + ItemList.Machine_UV_OrganicReplicator.set(new GT_MetaTileEntity_OrganicReplicator(688,"basicmachine.organicreplicator.tier.08","Advanced Organic Replicator VII",8).getStackForm(1L)); + + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_LV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Basic),'F',ItemList.Field_Generator_LV,'W',OrePrefixes.cableGt01.get(Materials.Tin)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_MV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_MV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Good),'F',ItemList.Field_Generator_MV,'W',OrePrefixes.cableGt01.get(Materials.Copper)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_HV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_HV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Advanced),'F',ItemList.Field_Generator_HV,'W',OrePrefixes.cableGt01.get(Materials.Gold)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_EV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_EV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Data),'F',ItemList.Field_Generator_EV,'W',OrePrefixes.cableGt01.get(Materials.Aluminium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_IV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_IV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Elite),'F',ItemList.Field_Generator_IV,'W',OrePrefixes.cableGt01.get(Materials.Tungsten)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_LuV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_LuV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Master),'F',ItemList.Field_Generator_LuV,'W',OrePrefixes.cableGt01.get(Materials.VanadiumGallium)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_ZPM_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_ZPM,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Ultimate),'F',ItemList.Field_Generator_ZPM,'W',OrePrefixes.cableGt01.get(Materials.Naquadah)}); + GT_ModHandler.addCraftingRecipe(ItemList.Machine_UV_OrganicReplicator.get(1L),bitsd,new Object[]{"CRC","WFW","CMC",'M',ItemList.Hull_UV,'R',Ic2Items.crop,'C',OrePrefixes.circuit.get(Materials.Superconductor),'F',ItemList.Field_Generator_UV,'W',OrePrefixes.cableGt01.get(Materials.NaquadahAlloy)}); + } private static void run3() { diff --git a/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_BOTTOM.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7e63b92493ad4724bb39f3b4f2661895e9a9f0 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE%y{W;-5;PJdx@v7EBierE%y{W;-5;PJdx@v7EBierE2BR01_tK! znIRD+5xzcF$@#f@i7EL>sd^Q;1whpd3^w)^1&PVosU-?Ysp*+{wn|D0nJKnP;ikR@ zz6H*y8JQkcMXAA6ej&+K*~ykEO7?a(6;?paxv3?I3Kh9IdBs*0wn|_#t$=Khu)dN4 zSV>8?t&$_iGKC1=00rm#qErP_Jrmtz0|O%kLp=j9&`|(U`e3AMU|I01d`q;|3 zC^fMpzbGU>KgTY(G^w~GF)uk)0cdz;dR}UgjXt^>8-0*vNR~sqgCu~>HK`Su2v4Fo z2P6Y?4~T8$3M9f(i;98%vNJF;GO*Fd5Viq}1Y}mE=0vz;=BDO>6&spCm7+@^DUZaZ z97%#aAC_dM;qW0y2IfN$+sZRHF+DXrGo>WM4&-KZF&l({PikH|hAOBaL|H^oYH@x} zDJT`#nHxb3Ll%T6i^Qf3SrDQOp(->lv&0T&9-1(g00JipV3M{2CKy;ovP0y;)I4DB zD+gw?+4f6yf%)@>r;B5Vh2Yl7XL*|qcv|BFmOCzLQjAzMz3%{n&q1M?Ey1dO58YQq zg*7NME!@&KMZ=`PGdliJ`XAfb3Jvl{?;bwh{!!v{dCN`VLk3f#o>%r2${6x6TRh*j z=G?Yi-gF^ecE<)4&wxib@$Ph zmHS*To3s~*xGwO0Q^51Ak}a91P$pkZ_|EseXII^+WL^Gv!245bDP46hOx7_4S6Fo+k-*%fHRz`z&~;1l8sQ~&}CmuYEf z&6zW&si`R=BSS|=CpI=#Pfzdc*|TkJZQ0q`(b3Tpd1fzJvSb0*>MprSMn*P~iYJu5H2xO-xL(1Pk`=-CIyl(BI#`T69~bd2P9J?IMn~%e2=8iG_8^PHt~+ zpQEufNG!b3p|zx>#KOWNPrIleYsZhN;F3ndS`t|NmFMWwaF-p3Egde!&d4F1@UY+6?3}CV9KN z#P7y98#*`$T)c55hiysJg|4Iv)AV0$Z{4@|)9c*7i93oup4iy1@v}@npI_61>ArGv z=eWOUvW(e2`?X->0?WGm73<{>8XQe#XqMQd${#dw#iP_e9X$Oj)c8%?E*hrpk?@(2 zW3QI`!|tC$M+dm$}qHVk$1oLo7uu{;>yoXM&I^W zbhx62+EJ>(AGd4w^7p~UO_QmvAUQh^kM zk%6J5u7Q!Rk!gs5xs`#Dm64Gyh+*)u(03P#hTQy=%(P0}8fNHxWdlX9r>mdKI;Vst E0A=rrfB*mh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE.png.mcmeta new file mode 100644 index 00000000..24f863c9 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_FRONT_ACTIVE.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation":{ + "frametime":3 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_SIDE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_SIDE.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7e63b92493ad4724bb39f3b4f2661895e9a9f0 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE%y{W;-5;PJdx@v7EBierE%y{W;-5;PJdx@v7EBierEDX&EbZ6m0~qq8yQO~cQC%Fb7OCL!p_&TtT}NaAH%mY&&k?v Sem@7=#^CAd=d#Wzp$PzBz&KI> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_TOP_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/basicmachines/organic_replicator/OVERLAY_TOP_ACTIVE.png new file mode 100644 index 0000000000000000000000000000000000000000..e4021daeee9fd294978e0ca751cb2dbcabe39ba5 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!3HFSYrjteQk(@Ik;M!Qd`Cc-ajG_-G*Ga^ z)5S3);_%z4hFk{>I9!YGt=Z}O{G9Bb1TR+a*(*f0r2J%5{9r%ng|qibi>=$%9Sxt$ z>vCoL-v>M1B{TV_H*+M(2v=13HGL3wa*e4!z-Zy|_(7z?YVK)u;Wx7vFZZv#cI(AU z{brl1UJG76V328Ge#2V8z<0p$cjAh+<5j1UIM