From a8480b5694f687f76f520c3ddb9f2450d310d613 Mon Sep 17 00:00:00 2001 From: M_W_K <31022105+M-W-K@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:37:48 -0600 Subject: [PATCH 1/9] Fix the no distinct buses button (#2577) --- .../gui/widget/button_no_distinct_buses.png | Bin 1932 -> 333 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/gregtech/textures/gui/widget/button_no_distinct_buses.png b/src/main/resources/assets/gregtech/textures/gui/widget/button_no_distinct_buses.png index 351ac8bbf004d77682c0204bed593066dcd83101..fd5cb681e07f525389612d3e64889faca1375b6d 100644 GIT binary patch delta 317 zcmV-D0mA-_56uFQ8Gi-<0036bj#mHx00DDSM?wIu&K&6g009O`L_t(IPh&JUH~-H- zAqWWxVPFIq1Y%GEN=i!b8&rJ1jN!}g{|ujgF))1k$-uDHxErf|7zXX%zaOm7(a{mE zA@Xu5*dSy>(AD8I2;DGbXTS_WR)f`R*c8GH!X<|@jIe3IXMX{TLB;n=8G02Ffr+dU z*=xw*XML=c;iy$N1ByZEw;+MKTnD#d=!Sgz!@zLf4$YwGE2Rt{(4rXKRmcVz9x7!3 z8FbSL%^>fyrC6gFJ>ei5CcCSY;jtTBOR-6Le?2+AWvTcAiNofixX`8X(5ZL1-U2<&LY}*tM zq@qwe1wnywR6s_pD4?BT6sbBzMjbi-0YPOdoem85!03Q-)VFC;%M6*>WZ%p0_j}*> zd*AmpddlXE7?w2*L68xy5=RC69b-Hh>F`?^^*TV1vB?Px}PH*0r zUy@!p&bgtyvEO54m#Oev3w-;@BX0$b2zPMYPyuVw$_lR2YeD}i6aX(G4 z=IUJ={(ZCS!Z%kRe^>F5XWX@2w%gwhZ}{Ew$K8&D*{5ervfmuL_&2cX)~L5DF`Lfzus3en z>x!2X-fc(r&|l5!y8qAUM?<PLAW6nwolhdmk@Py9rN}uS zQd(Ntvjk~rY1#DNrsn46wQJWtUXJ`&j&!(@%S(}V7t-cLI?9lrE0B11=|m`%87)~5 zLy(c3#*_B-#^6l^8FWMO`gEUr9xth3lOU@iFvY`Bh(?ftS@EbK1%Zx=AfQBS*zF_V zW2hqAuqxI~x}$bbt(2_PK;_CZue35KS!Hb2%n`#1;yhFc16@Gl;ZP*T$8A_bn1}Di zHi4lDh#s_IKDP(8s~SKV6JsKAXI!bJF(`tf1)A*VD;&j15xBBp)w&+#38Jp9&QxbM zsak-btX3;Q(gaQ85P`?)Bf1dBBeCp0k)(_R#3W6L>WUgc4Ou}{Yjhh10sh=CI z(L#wVWQhPF5QeZAJdNrw`2b6F$!GI3;qjbgpzc)|BWBii{KXo{y_3J%> zOyy|+p&7hGm1>N5Tn-y%9Lme8q{w{Yl@-l0$M`L{Xk|s5VWIbeU$)>Dijn;^XJ##C zHl^c=#B?Dd0Ye8Wn-nO*`5BoZ^Elj0u{6$btbkiYIS)5m0mV?9m9m&EDgJy-fu$#e z2F7FP$WTY5%oYplXK=sSEaQymr*W&r%Hk|5SxAcE1dEu5p|Zpmt6ErqSEhu803f1~ z0EQaQ@`WCk4WmtDa_I>Px*tMq*gPdt6Ho4Xl`yE(1;aQh&up>M7Ar?HB*|KtB;qBY z#b9L_QWR;TVeE$QJPaKgC>TWtsfmPmy9NYZ)x4@2vSCIHsKH6qDy-H%_e+!*MAawy z08M-n-B1Zu4A@H6c1S@J70C-y-%&B47RXp~Q>qps0RUSTR!bjDdCHA2q{xX@%8XMi zB|#@e3KwZBjaxWMru>Wu@;EWYkEwpWPS8MM0A>f1fW?tW0?kRdHZ6s#s|JQ8Bu(KI zjgy?0rg)O(;f<3lPeRX$0l5?qMq3WduYh=(6@9n??c6si5^Ojt;0p3mM6Bi}$X2A_H13$0 szjWeA--CTrVBUg?y+_*2f8~BSJhDFh>WYI4b{J#T Date: Sat, 10 Aug 2024 02:02:44 -0400 Subject: [PATCH 2/9] fission: hafnium and zirconium (#2563) --- .../java/gregtech/api/recipes/RecipeMaps.java | 2 +- .../api/unification/material/Materials.java | 7 +++ .../material/materials/ElementMaterials.java | 6 ++ .../materials/FirstDegreeMaterials.java | 56 +++++++++++++++---- .../materials/MaterialFlagAddition.java | 3 + .../recipe/chemistry/MixerRecipes.java | 18 ++++++ .../recipe/chemistry/NuclearRecipes.java | 45 +++++++++++++++ .../recipe/chemistry/TitaniumRecipes.java | 8 +++ .../resources/assets/gregtech/lang/en_us.lang | 7 +++ .../worldgen/vein/end/naquadah_vein.json | 2 +- 10 files changed, 142 insertions(+), 12 deletions(-) diff --git a/src/main/java/gregtech/api/recipes/RecipeMaps.java b/src/main/java/gregtech/api/recipes/RecipeMaps.java index b0766a74c9a..414ead42aba 100644 --- a/src/main/java/gregtech/api/recipes/RecipeMaps.java +++ b/src/main/java/gregtech/api/recipes/RecipeMaps.java @@ -751,7 +751,7 @@ public final class RecipeMaps { public static final RecipeMap ELECTROMAGNETIC_SEPARATOR_RECIPES = new RecipeMapBuilder<>( "electromagnetic_separator", new SimpleRecipeBuilder()) .itemInputs(1) - .itemOutputs(3) + .itemOutputs(4) .itemSlotOverlay(GuiTextures.CRUSHED_ORE_OVERLAY, false) .itemSlotOverlay(GuiTextures.DUST_OVERLAY, true) .progressBar(GuiTextures.PROGRESS_BAR_MAGNET) diff --git a/src/main/java/gregtech/api/unification/material/Materials.java b/src/main/java/gregtech/api/unification/material/Materials.java index 258ec405f21..30174ce8f44 100644 --- a/src/main/java/gregtech/api/unification/material/Materials.java +++ b/src/main/java/gregtech/api/unification/material/Materials.java @@ -470,6 +470,13 @@ public static void register() { public static Material Pyrochlore; public static Material RTMAlloy; public static Material IlmeniteSlag; + public static Material Zircon; + public static Material Zirconia; + public static Material ZirconiumTetrachloride; + public static Material Hafnia; + public static Material HafniumTetrachloride; + public static Material Zircaloy4; + public static Material Inconel718; /** * Organic chemistry diff --git a/src/main/java/gregtech/api/unification/material/materials/ElementMaterials.java b/src/main/java/gregtech/api/unification/material/materials/ElementMaterials.java index 299e3118af0..3687efcf6d7 100644 --- a/src/main/java/gregtech/api/unification/material/materials/ElementMaterials.java +++ b/src/main/java/gregtech/api/unification/material/materials/ElementMaterials.java @@ -306,8 +306,11 @@ public static void register() { .build(); Hafnium = new Material.Builder(42, gregtechId("hafnium")) + .ingot() .color(0x99999A).iconSet(SHINY) .element(Elements.Hf) + .blast(b -> b.temp(2227, GasTier.HIGH) + .blastStats(GTValues.VA[GTValues.EV], 2000)) .build(); Hassium = new Material.Builder(43, gregtechId("hassium")) @@ -911,8 +914,11 @@ public static void register() { .build(); Zirconium = new Material.Builder(123, gregtechId("zirconium")) + .ingot() .color(0xC8FFFF).iconSet(METALLIC) .element(Elements.Zr) + .blast(b -> b.temp(2125, GasTier.MID) + .blastStats(GTValues.VA[GTValues.EV], 1200)) .build(); Naquadah = new Material.Builder(124, gregtechId("naquadah")) diff --git a/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java b/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java index 5f3b827550c..ff2806d31d5 100644 --- a/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java +++ b/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java @@ -166,7 +166,12 @@ public static void register() { .components(Hydrogen, 2, Oxygen, 1) .build(); - // FREE ID 270 + Zircon = new Material.Builder(270, gregtechId("zircon")) + .gem().ore() + .color(0xC31313) + .flags(DISABLE_DECOMPOSITION) + .components(Zirconium, 1, Silicon, 1, Oxygen, 4) + .build(); Coal = new Material.Builder(271, gregtechId("coal")) .gem(1, 1600).ore(2, 1) // default coal burn time in vanilla @@ -626,7 +631,12 @@ public static void register() { .components(Antimony, 2, Sulfur, 3) .build(); - // Free ID 326 + Zirconia = new Material.Builder(326, gregtechId("zirconia")) + .dust() + .color(0x689F9F).iconSet(SHINY) + .flags(DISABLE_DECOMPOSITION) + .components(Zirconium, 1, Oxygen, 2) + .build(); Tetrahedrite = new Material.Builder(327, gregtechId("tetrahedrite")) .dust().ore() @@ -821,9 +831,19 @@ public static void register() { .components(Copper, 2, Sulfur, 1) .build(); - // Free ID 349 + ZirconiumTetrachloride = new Material.Builder(349, gregtechId("zirconium_tetrachloride")) + .dust() + .color(0x689FBF).iconSet(METALLIC) + .flags(DISABLE_DECOMPOSITION) + .components(Zirconium, 1, Chlorine, 4) + .build(); - // Free ID 350 + Hafnia = new Material.Builder(350, gregtechId("hafnia")) + .dust() + .color(0x39393A).iconSet(SHINY) + .flags(DISABLE_DECOMPOSITION) + .components(Hafnium, 1, Oxygen, 2) + .build(); GalliumArsenide = new Material.Builder(351, gregtechId("gallium_arsenide")) .ingot(1) @@ -872,6 +892,7 @@ public static void register() { MagnesiumChloride = new Material.Builder(357, gregtechId("magnesium_chloride")) .dust(1) .color(0xD40D5C) + .flags(DISABLE_DECOMPOSITION) .components(Magnesium, 1, Chlorine, 2) .build(); @@ -1031,7 +1052,12 @@ public static void register() { .components(Potassium, 1, Lithium, 3, Aluminium, 4, Fluorine, 2, Oxygen, 10) .build(); - // Free ID 383 + HafniumTetrachloride = new Material.Builder(383, gregtechId("hafnium_tetrachloride")) + .dust() + .color(0x69699A).iconSet(METALLIC) + .flags(DISABLE_DECOMPOSITION) + .components(Hafnium, 1, Chlorine, 4) + .build(); GlauconiteSand = new Material.Builder(384, gregtechId("glauconite_sand")) .dust().ore(3, 1) @@ -1063,11 +1089,15 @@ public static void register() { .components(Potassium, 1, Aluminium, 3, Silicon, 2, Hydrogen, 6, Oxygen, 14) .build(); - // Free ID 389 + /* Free IDs: 389-390 */ - // Free ID 390 - - // Free ID 391 + Zircaloy4 = new Material.Builder(391, gregtechId("zircaloy_4")) + .ingot() + .color(0x8A6E68).iconSet(METALLIC) + .components(Zirconium, 16, Tin, 2, Chrome, 1) + .blast(b -> b.temp(2123, GasTier.MID) + .blastStats(GTValues.VA[EV])) + .build(); Talc = new Material.Builder(392, gregtechId("talc")) .dust().ore(2, 1) @@ -1537,7 +1567,13 @@ public static void register() { .components(Calcium, 2, Niobium, 2, Oxygen, 7) .build(); - // FREE ID 450 + Inconel718 = new Material.Builder(450, gregtechId("inconel_718")) + .ingot() + .color(0x566570).iconSet(SHINY) + .components(Nickel, 5, Chrome, 2, Iron, 2, Niobium, 1, Molybdenum, 1) + .blast(b -> b.temp(2622, GasTier.LOW) + .blastStats(GTValues.VA[HV])) + .build(); RTMAlloy = new Material.Builder(451, gregtechId("rtm_alloy")) .ingot().fluid() diff --git a/src/main/java/gregtech/api/unification/material/materials/MaterialFlagAddition.java b/src/main/java/gregtech/api/unification/material/materials/MaterialFlagAddition.java index eca07c9093d..bd132ca9d3c 100644 --- a/src/main/java/gregtech/api/unification/material/materials/MaterialFlagAddition.java +++ b/src/main/java/gregtech/api/unification/material/materials/MaterialFlagAddition.java @@ -402,5 +402,8 @@ public static void register() { oreProp = Pyrochlore.getProperty(PropertyKey.ORE); oreProp.setOreByProducts(Apatite, Calcium, Niobium); + + oreProp = Zircon.getProperty(PropertyKey.ORE); + oreProp.setOreByProducts(Zircon, Ilmenite, Rutile); } } diff --git a/src/main/java/gregtech/loaders/recipe/chemistry/MixerRecipes.java b/src/main/java/gregtech/loaders/recipe/chemistry/MixerRecipes.java index 78c2726505c..c0edbab21b7 100644 --- a/src/main/java/gregtech/loaders/recipe/chemistry/MixerRecipes.java +++ b/src/main/java/gregtech/loaders/recipe/chemistry/MixerRecipes.java @@ -594,5 +594,23 @@ public static void init() { .circuitMeta(1) .output(dust, RTMAlloy, 7) .buildAndRegister(); + + MIXER_RECIPES.recipeBuilder().duration(600).EUt(VA[EV]) + .input(dust, Zirconium, 16) + .input(dust, Tin, 2) + .input(dust, Chrome, 1) + .circuitMeta(1) + .output(dust, Zircaloy4, 19) + .buildAndRegister(); + + MIXER_RECIPES.recipeBuilder().duration(400).EUt(VA[EV]) + .input(dust, Nickel, 5) + .input(dust, Chrome, 2) + .input(dust, Iron, 2) + .input(dust, Niobium) + .input(dust, Molybdenum) + .circuitMeta(4) + .output(dust, Inconel718, 11) + .buildAndRegister(); } } diff --git a/src/main/java/gregtech/loaders/recipe/chemistry/NuclearRecipes.java b/src/main/java/gregtech/loaders/recipe/chemistry/NuclearRecipes.java index 01d3bfc0b08..2133853d789 100644 --- a/src/main/java/gregtech/loaders/recipe/chemistry/NuclearRecipes.java +++ b/src/main/java/gregtech/loaders/recipe/chemistry/NuclearRecipes.java @@ -4,10 +4,12 @@ import static gregtech.api.recipes.RecipeMaps.*; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtech.api.unification.ore.OrePrefix.ingotHot; public class NuclearRecipes { public static void init() { + // uranium isotopes CHEMICAL_RECIPES.recipeBuilder().duration(200).EUt(VA[LV]) .input(dust, Uraninite, 3) .fluidInputs(HydrofluoricAcid.getFluid(4000)) @@ -39,5 +41,48 @@ public static void init() { .output(dust, Uranium238) .fluidOutputs(Fluorine.getFluid(6000)) .buildAndRegister(); + + // zirconium and hafnium + // ZrSiO4 -> ZrO2 + SiO2 + BLAST_RECIPES.recipeBuilder().duration(200).EUt(VA[MV]).blastFurnaceTemp(3073) + .input(dust, Zircon, 6) + .output(dust, SiliconDioxide, 3) + .output(dust, Zirconia, 3) + .chancedOutput(dust, Hafnia, 3333, 0) + .buildAndRegister(); + + // ZrO2 + C + 4Cl -> ZrCl4 + CO2 + CHEMICAL_RECIPES.recipeBuilder().duration(400).EUt(VA[HV]) + .input(dust, Zirconia, 3) + .input(dust, Carbon) + .fluidInputs(Chlorine.getFluid(4000)) + .output(dust, ZirconiumTetrachloride, 5) + .fluidOutputs(CarbonDioxide.getFluid(1000)) + .buildAndRegister(); + + // ZrCl4 + 2Mg -> Zr + 2MgCl2 + BLAST_RECIPES.recipeBuilder().duration(800).EUt(VA[EV]).blastFurnaceTemp(2125) + .input(dust, ZirconiumTetrachloride, 5) + .input(dust, Magnesium, 2) + .output(ingotHot, Zirconium) + .output(dust, MagnesiumChloride, 6) + .buildAndRegister(); + + // HfO2 + C + 4Cl -> HfCl4 + CO2 + CHEMICAL_RECIPES.recipeBuilder().duration(400).EUt(VA[HV]) + .input(dust, Hafnia, 3) + .input(dust, Carbon) + .fluidInputs(Chlorine.getFluid(4000)) + .output(dust, HafniumTetrachloride, 5) + .fluidOutputs(CarbonDioxide.getFluid(1000)) + .buildAndRegister(); + + // HfCl4 + 2Mg -> Hf + 2MgCl2 + BLAST_RECIPES.recipeBuilder().duration(2000).EUt(VA[EV]).blastFurnaceTemp(2227) + .input(dust, HafniumTetrachloride, 5) + .input(dust, Magnesium, 2) + .output(ingotHot, Hafnium) + .output(dust, MagnesiumChloride, 6) + .buildAndRegister(); } } diff --git a/src/main/java/gregtech/loaders/recipe/chemistry/TitaniumRecipes.java b/src/main/java/gregtech/loaders/recipe/chemistry/TitaniumRecipes.java index 15a4b467771..b8ed97b96a8 100644 --- a/src/main/java/gregtech/loaders/recipe/chemistry/TitaniumRecipes.java +++ b/src/main/java/gregtech/loaders/recipe/chemistry/TitaniumRecipes.java @@ -48,6 +48,13 @@ private static void titaniumProcess() { .output(dust, MagnesiumChloride, 6) .blastFurnaceTemp(Titanium.getBlastTemperature() + 200) .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().duration(200).EUt(VA[HV]) + .input(dust, Sodium, 2) + .input(dust, MagnesiumChloride, 3) + .output(dust, Magnesium) + .output(dust, Salt, 4) + .buildAndRegister(); } // The production of Soda Ash and Calcium Chloride from Salt and Calcite @@ -161,6 +168,7 @@ private static void ilmeniteProcess() { ELECTROMAGNETIC_SEPARATOR_RECIPES.recipeBuilder() .input(dust, IlmeniteSlag) .chancedOutput(dust, Iron, 8000, 0) + .chancedOutput(dust, Zircon, 2500, 0) .chancedOutput(dust, Tantalum, 2000, 0) .chancedOutput(dust, Niobium, 500, 0) .duration(50).EUt(VA[MV]).buildAndRegister(); diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 55d74be23f2..ad4571025da 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -1831,6 +1831,13 @@ gregtech.material.naquadria_sulfate=Naquadria Sulfate gregtech.material.pyrochlore=Pyrochlore gregtech.material.rtm_alloy=RTM Alloy gregtech.material.ilmenite_slag=Ilmenite Slag +gregtech.material.zircon=Zircon +gregtech.material.zirconia=Zirconia +gregtech.material.zirconium_tetrachloride=Zirconium Tetrachloride +gregtech.material.hafnia=Hafnia +gregtech.material.hafnium_tetrachloride=Hafnium Tetrachloride +gregtech.material.zircaloy_4=Zircaloy-4 +gregtech.material.inconel_718=Inconel-718 # Organic Chemistry Materials diff --git a/src/main/resources/assets/gregtech/worldgen/vein/end/naquadah_vein.json b/src/main/resources/assets/gregtech/worldgen/vein/end/naquadah_vein.json index d223a5e7651..a8c23d9f419 100644 --- a/src/main/resources/assets/gregtech/worldgen/vein/end/naquadah_vein.json +++ b/src/main/resources/assets/gregtech/worldgen/vein/end/naquadah_vein.json @@ -31,7 +31,7 @@ "between": "ore:naquadah" }, { - "sporadic": "ore:plutonium" + "sporadic": "ore:zircon" } ] } From fbc0f91c0ab8509250f0bbf1d71db227dfe33eb6 Mon Sep 17 00:00:00 2001 From: TechLord22 <37029404+TechLord22@users.noreply.github.com> Date: Sat, 10 Aug 2024 17:32:19 -0400 Subject: [PATCH 3/9] remove usages of NonNullList (#2581) --- .../api/block/machines/BlockMachine.java | 2 +- .../capability/impl/AbstractRecipeLogic.java | 5 ++-- .../capability/impl/BoilerRecipeLogic.java | 9 ++---- .../api/capability/impl/miner/MinerLogic.java | 4 +-- .../java/gregtech/api/cover/CoverBase.java | 6 ++-- .../api/gui/impl/FakeModularGuiContainer.java | 8 ++--- .../api/metatileentity/MetaTileEntity.java | 7 +++-- .../SimpleMachineMetaTileEntity.java | 3 +- .../java/gregtech/api/recipes/Recipe.java | 14 ++++----- .../gregtech/api/recipes/RecipeBuilder.java | 17 ++++------- .../api/unification/OreDictUnifier.java | 4 +-- .../java/gregtech/api/util/BlockUtility.java | 5 ++-- .../java/gregtech/api/util/GTUtility.java | 29 +++++++++---------- .../impl/FakeModularUIContainerClipboard.java | 6 ++-- .../MetaTileEntityClipboard.java | 4 +-- .../electric/MetaTileEntityFisher.java | 5 ++-- .../electric/MetaTileEntityMiner.java | 2 +- .../MetaTileEntityMaintenanceHatch.java | 2 +- .../MetaTileEntityMufflerHatch.java | 4 +-- .../MetaTileEntityObjectHolder.java | 3 +- .../MetaTileEntityPassthroughHatchItem.java | 3 +- .../MetaTileEntityRotorHolder.java | 3 +- .../appeng/MetaTileEntityAEHostablePart.java | 4 +-- .../hpca/MetaTileEntityHPCAComponent.java | 3 +- .../steam/boiler/SteamBoiler.java | 2 +- .../storage/CraftingRecipeLogic.java | 7 ++--- .../storage/MetaTileEntityBuffer.java | 4 +-- .../storage/MetaTileEntityCrate.java | 4 +-- .../storage/MetaTileEntityQuantumChest.java | 3 +- .../storage/MetaTileEntityWorkbench.java | 3 +- 30 files changed, 74 insertions(+), 101 deletions(-) diff --git a/src/main/java/gregtech/api/block/machines/BlockMachine.java b/src/main/java/gregtech/api/block/machines/BlockMachine.java index 94cb7f24fbf..b6baf911627 100644 --- a/src/main/java/gregtech/api/block/machines/BlockMachine.java +++ b/src/main/java/gregtech/api/block/machines/BlockMachine.java @@ -341,7 +341,7 @@ public void breakBlock(@NotNull World worldIn, @NotNull BlockPos pos, @NotNull I MetaTileEntity metaTileEntity = getMetaTileEntity(worldIn, pos); if (metaTileEntity != null) { if (!metaTileEntity.keepsInventory()) { - NonNullList inventoryContents = NonNullList.create(); + List inventoryContents = new ArrayList<>(); metaTileEntity.clearMachineInventory(inventoryContents); for (ItemStack itemStack : inventoryContents) { Block.spawnAsEntity(worldIn, pos, itemStack); diff --git a/src/main/java/gregtech/api/capability/impl/AbstractRecipeLogic.java b/src/main/java/gregtech/api/capability/impl/AbstractRecipeLogic.java index b0916e6917a..c1ca110c2ef 100644 --- a/src/main/java/gregtech/api/capability/impl/AbstractRecipeLogic.java +++ b/src/main/java/gregtech/api/capability/impl/AbstractRecipeLogic.java @@ -30,7 +30,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.PacketBuffer; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants; @@ -71,7 +70,7 @@ public abstract class AbstractRecipeLogic extends MTETrait implements IWorkable, protected int maxProgressTime; protected long recipeEUt; protected List fluidOutputs; - protected NonNullList itemOutputs; + protected List itemOutputs; protected boolean isActive; protected boolean workingEnabled = true; @@ -1227,7 +1226,7 @@ public void deserializeNBT(@NotNull NBTTagCompound compound) { this.maxProgressTime = compound.getInteger("MaxProgress"); this.recipeEUt = compound.getLong("RecipeEUt"); NBTTagList itemOutputsList = compound.getTagList("ItemOutputs", Constants.NBT.TAG_COMPOUND); - this.itemOutputs = NonNullList.create(); + this.itemOutputs = new ArrayList<>(itemOutputsList.tagCount()); for (int i = 0; i < itemOutputsList.tagCount(); i++) { this.itemOutputs.add(new ItemStack(itemOutputsList.getCompoundTagAt(i))); } diff --git a/src/main/java/gregtech/api/capability/impl/BoilerRecipeLogic.java b/src/main/java/gregtech/api/capability/impl/BoilerRecipeLogic.java index dd42dd54aee..28b2ee7afd0 100644 --- a/src/main/java/gregtech/api/capability/impl/BoilerRecipeLogic.java +++ b/src/main/java/gregtech/api/capability/impl/BoilerRecipeLogic.java @@ -17,7 +17,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.util.NonNullList; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -30,7 +29,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Collections; -import java.util.List; import static gregtech.api.capability.GregtechDataCodes.BOILER_HEAT; import static gregtech.api.capability.GregtechDataCodes.BOILER_LAST_TICK_STEAM; @@ -51,7 +49,7 @@ public class BoilerRecipeLogic extends AbstractRecipeLogic implements ICategoryO public BoilerRecipeLogic(MetaTileEntityLargeBoiler tileEntity) { super(tileEntity, null); this.fluidOutputs = Collections.emptyList(); - this.itemOutputs = NonNullList.create(); + this.itemOutputs = Collections.emptyList(); } @Override @@ -80,7 +78,6 @@ protected void trySearchNewRecipe() { // can optimize with an override of checkPreviousRecipe() and a check here IMultipleTankHandler importFluids = boiler.getImportFluids(); - List dummyList = NonNullList.create(); boolean didStartRecipe = false; for (IFluidTank fluidTank : importFluids.getFluidTanks()) { @@ -88,7 +85,7 @@ protected void trySearchNewRecipe() { if (fuelStack == null || CommonFluidFilters.BOILER_FLUID.test(fuelStack)) continue; Recipe dieselRecipe = RecipeMaps.COMBUSTION_GENERATOR_FUELS.findRecipe( - GTValues.V[GTValues.MAX], dummyList, Collections.singletonList(fuelStack)); + GTValues.V[GTValues.MAX], Collections.emptyList(), Collections.singletonList(fuelStack)); // run only if it can apply a certain amount of "parallel", this is to mitigate int division if (dieselRecipe != null && fuelStack.amount >= dieselRecipe.getFluidInputs().get(0).getAmount() * FLUID_DRAIN_MULTIPLIER) { @@ -102,7 +99,7 @@ protected void trySearchNewRecipe() { } Recipe denseFuelRecipe = RecipeMaps.SEMI_FLUID_GENERATOR_FUELS.findRecipe( - GTValues.V[GTValues.MAX], dummyList, Collections.singletonList(fuelStack)); + GTValues.V[GTValues.MAX], Collections.emptyList(), Collections.singletonList(fuelStack)); // run only if it can apply a certain amount of "parallel", this is to mitigate int division if (denseFuelRecipe != null && fuelStack.amount >= denseFuelRecipe.getFluidInputs().get(0).getAmount() * FLUID_DRAIN_MULTIPLIER) { diff --git a/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java b/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java index 3439aca4a57..2565c02a7a5 100644 --- a/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java +++ b/src/main/java/gregtech/api/capability/impl/miner/MinerLogic.java @@ -180,7 +180,7 @@ public void performMining() { blockState = metaTileEntity.getWorld().getBlockState(blocksToMine.getFirst()); } // When we are here we have an ore to mine! I'm glad we aren't threaded - if (!blocksToMine.isEmpty() & GTUtility.isOre(GTUtility.toItem(blockState))) { + if (!blocksToMine.isEmpty() && GTUtility.isOre(GTUtility.toItem(blockState))) { // get the small ore drops, if a small ore getSmallOreBlockDrops(blockDrops, world, blocksToMine.getFirst(), blockState); // get the block's drops. @@ -280,7 +280,7 @@ protected void getRegularBlockDrops(NonNullList blockDrops, WorldServ * @param blockDrops the List of items to insert * @param world the {@link WorldServer} the miner is in */ - private void mineAndInsertItems(NonNullList blockDrops, WorldServer world) { + private void mineAndInsertItems(List blockDrops, WorldServer world) { // If the block's drops can fit in the inventory, move the previously mined position to the block // replace the ore block with cobblestone instead of breaking it to prevent mob spawning // remove the ore block's position from the mining queue diff --git a/src/main/java/gregtech/api/cover/CoverBase.java b/src/main/java/gregtech/api/cover/CoverBase.java index 49a3429f842..8382a8a1d4b 100644 --- a/src/main/java/gregtech/api/cover/CoverBase.java +++ b/src/main/java/gregtech/api/cover/CoverBase.java @@ -10,7 +10,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.IItemHandlerModifiable; @@ -21,6 +20,9 @@ import codechicken.lib.vec.Matrix4; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; +import java.util.List; + public abstract class CoverBase implements Cover { private final CoverDefinition definition; @@ -55,7 +57,7 @@ public CoverBase(@NotNull CoverDefinition definition, @NotNull CoverableView cov * @param inventory the inventory to clear */ protected void dropInventoryContents(@NotNull IItemHandlerModifiable inventory) { - NonNullList drops = NonNullList.create(); + List drops = new ArrayList<>(); MetaTileEntity.clearInventory(drops, inventory); for (ItemStack itemStack : drops) { Block.spawnAsEntity(getWorld(), getPos(), itemStack); diff --git a/src/main/java/gregtech/api/gui/impl/FakeModularGuiContainer.java b/src/main/java/gregtech/api/gui/impl/FakeModularGuiContainer.java index 150a28c245f..574b010e1f8 100644 --- a/src/main/java/gregtech/api/gui/impl/FakeModularGuiContainer.java +++ b/src/main/java/gregtech/api/gui/impl/FakeModularGuiContainer.java @@ -8,16 +8,14 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; -import net.minecraft.util.NonNullList; - -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; public abstract class FakeModularGuiContainer implements WidgetUIAccess { - protected final NonNullList inventoryItemStacks = NonNullList.create(); - public final List inventorySlots = Lists.newArrayList(); + protected final List inventoryItemStacks = new ArrayList<>(); + public final List inventorySlots = new ArrayList<>(); public final ModularUI modularUI; protected int windowId; diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 0369acfd850..d2a3f5b4597 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -915,7 +915,7 @@ private void updateSound() { * @param dropsList list of meta tile entity drops * @param harvester harvester of this meta tile entity, or null */ - public void getDrops(NonNullList dropsList, @Nullable EntityPlayer harvester) {} + public void getDrops(@NotNull List<@NotNull ItemStack> dropsList, @Nullable EntityPlayer harvester) {} public final ItemStack getPickItem(CuboidRayTraceResult result, EntityPlayer player) { IndexedCuboid6 hitCuboid = result.cuboid6; @@ -1325,12 +1325,13 @@ public boolean isValid() { return getHolder() != null && getHolder().isValid(); } - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, importItems); clearInventory(itemBuffer, exportItems); } - public static void clearInventory(NonNullList itemBuffer, IItemHandlerModifiable inventory) { + public static void clearInventory(@NotNull List<@NotNull ItemStack> itemBuffer, + @NotNull IItemHandlerModifiable inventory) { for (int i = 0; i < inventory.getSlots(); i++) { ItemStack stackInSlot = inventory.getStackInSlot(i); if (!stackInSlot.isEmpty()) { diff --git a/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java index ac0896d0305..64b8d3c86eb 100644 --- a/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java @@ -37,7 +37,6 @@ 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.text.TextComponentTranslation; import net.minecraft.world.World; @@ -475,7 +474,7 @@ public boolean isAllowInputFromOutputSideFluids() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, chargerInventory); } diff --git a/src/main/java/gregtech/api/recipes/Recipe.java b/src/main/java/gregtech/api/recipes/Recipe.java index a367ca68445..923c463e0c4 100644 --- a/src/main/java/gregtech/api/recipes/Recipe.java +++ b/src/main/java/gregtech/api/recipes/Recipe.java @@ -16,7 +16,6 @@ import gregtech.integration.groovy.GroovyScriptModule; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; @@ -59,8 +58,6 @@ */ public class Recipe { - private static final NonNullList EMPTY = NonNullList.create(); - /** * This method was deprecated in 2.8 and will be removed in 2.9 * @@ -73,7 +70,7 @@ public static int getMaxChancedValue() { } private final List inputs; - private final NonNullList outputs; + private final List outputs; /** * A chance of 10000 equals 100% @@ -122,10 +119,9 @@ public Recipe(@NotNull List inputs, recipePropertyStorage; this.inputs = GTRecipeInputCache.deduplicateInputs(inputs); if (outputs.isEmpty()) { - this.outputs = EMPTY; + this.outputs = Collections.emptyList(); } else { - this.outputs = NonNullList.create(); - this.outputs.addAll(outputs); + this.outputs = new ArrayList<>(outputs); } this.chancedOutputs = chancedOutputs; this.chancedFluidOutputs = chancedFluidOutputs; @@ -457,7 +453,7 @@ public List getInputs() { return inputs; } - public NonNullList getOutputs() { + public List getOutputs() { return outputs; } @@ -475,7 +471,7 @@ public NonNullList getOutputs() { * @return A list of all resulting ItemStacks from the recipe, after chance has been applied to any chanced outputs */ public List getResultItemOutputs(int recipeTier, int machineTier, RecipeMap recipeMap) { - List outputs = new ArrayList<>(GTUtility.copyStackList(getOutputs())); + List outputs = new ArrayList<>(getOutputs()); ChanceBoostFunction function = recipeMap.getChanceFunction(); List chancedOutputsList = getChancedOutputs().roll(function, recipeTier, machineTier); diff --git a/src/main/java/gregtech/api/recipes/RecipeBuilder.java b/src/main/java/gregtech/api/recipes/RecipeBuilder.java index 8ca69043551..b57b8c25db4 100644 --- a/src/main/java/gregtech/api/recipes/RecipeBuilder.java +++ b/src/main/java/gregtech/api/recipes/RecipeBuilder.java @@ -35,7 +35,6 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.common.Optional; @@ -89,8 +88,8 @@ public class RecipeBuilder> { protected boolean recipePropertyStorageErrored = false; protected RecipeBuilder() { - this.inputs = NonNullList.create(); - this.outputs = NonNullList.create(); + this.inputs = new ArrayList<>(); + this.outputs = new ArrayList<>(); this.chancedOutputs = new ArrayList<>(); this.fluidInputs = new ArrayList<>(); this.fluidOutputs = new ArrayList<>(); @@ -99,10 +98,8 @@ protected RecipeBuilder() { public RecipeBuilder(Recipe recipe, RecipeMap recipeMap) { this.recipeMap = recipeMap; - this.inputs = NonNullList.create(); - this.inputs.addAll(recipe.getInputs()); - this.outputs = NonNullList.create(); - this.outputs.addAll(GTUtility.copyStackList(recipe.getOutputs())); + this.inputs = new ArrayList<>(recipe.getInputs()); + this.outputs = new ArrayList<>(recipe.getOutputs()); this.chancedOutputs = new ArrayList<>(recipe.getChancedOutputs().getChancedEntries()); this.fluidInputs = new ArrayList<>(recipe.getFluidInputs()); this.fluidOutputs = GTUtility.copyFluidList(recipe.getFluidOutputs()); @@ -120,10 +117,8 @@ public RecipeBuilder(Recipe recipe, RecipeMap recipeMap) { @SuppressWarnings("CopyConstructorMissesField") protected RecipeBuilder(RecipeBuilder recipeBuilder) { this.recipeMap = recipeBuilder.recipeMap; - this.inputs = NonNullList.create(); - this.inputs.addAll(recipeBuilder.getInputs()); - this.outputs = NonNullList.create(); - this.outputs.addAll(GTUtility.copyStackList(recipeBuilder.getOutputs())); + this.inputs = new ArrayList<>(recipeBuilder.getInputs()); + this.outputs = new ArrayList<>(recipeBuilder.getOutputs()); this.chancedOutputs = new ArrayList<>(recipeBuilder.chancedOutputs); this.fluidInputs = new ArrayList<>(recipeBuilder.getFluidInputs()); this.fluidOutputs = GTUtility.copyFluidList(recipeBuilder.getFluidOutputs()); diff --git a/src/main/java/gregtech/api/unification/OreDictUnifier.java b/src/main/java/gregtech/api/unification/OreDictUnifier.java index aeaf123cdb2..76e6c376086 100644 --- a/src/main/java/gregtech/api/unification/OreDictUnifier.java +++ b/src/main/java/gregtech/api/unification/OreDictUnifier.java @@ -13,7 +13,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.oredict.OreDictionary; @@ -87,8 +86,7 @@ public static void registerOre(ItemStack itemStack, String oreDict) { public static void init() { for (String registeredOreName : OreDictionary.getOreNames()) { - NonNullList theseOres = OreDictionary.getOres(registeredOreName); - for (ItemStack itemStack : theseOres) { + for (ItemStack itemStack : OreDictionary.getOres(registeredOreName)) { onItemRegistration(new OreRegisterEvent(registeredOreName, itemStack)); } } diff --git a/src/main/java/gregtech/api/util/BlockUtility.java b/src/main/java/gregtech/api/util/BlockUtility.java index 77b816da15a..daa6e382e2d 100644 --- a/src/main/java/gregtech/api/util/BlockUtility.java +++ b/src/main/java/gregtech/api/util/BlockUtility.java @@ -47,9 +47,8 @@ public BlockWrapper() { super(Material.AIR); } - @NotNull @Override - public NonNullList captureDrops(boolean start) { + public @NotNull NonNullList captureDrops(boolean start) { return super.captureDrops(start); } } @@ -58,7 +57,7 @@ public static void startCaptureDrops() { WRAPPER.captureDrops(true); } - public static NonNullList stopCaptureDrops() { + public static @NotNull NonNullList stopCaptureDrops() { return WRAPPER.captureDrops(false); } diff --git a/src/main/java/gregtech/api/util/GTUtility.java b/src/main/java/gregtech/api/util/GTUtility.java index 1d5658dcce6..cc54a5a2d49 100644 --- a/src/main/java/gregtech/api/util/GTUtility.java +++ b/src/main/java/gregtech/api/util/GTUtility.java @@ -54,7 +54,6 @@ import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; -import com.google.common.collect.Lists; import com.google.common.util.concurrent.AtomicDouble; import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet; import org.apache.commons.lang3.ArrayUtils; @@ -64,6 +63,7 @@ import org.jetbrains.annotations.Nullable; import java.util.AbstractList; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -446,18 +446,20 @@ public static NBTTagCompound getOrCreateNbtCompound(ItemStack stack) { return compound; } - public static NonNullList copyStackList(List itemStacks) { - ItemStack[] stacks = new ItemStack[itemStacks.size()]; - for (int i = 0; i < itemStacks.size(); i++) { - stacks[i] = copy(itemStacks.get(i)); + public static @NotNull List<@NotNull ItemStack> copyStackList(@NotNull List<@NotNull ItemStack> itemStacks) { + List list = new ArrayList<>(itemStacks.size()); + for (ItemStack itemStack : itemStacks) { + list.add(copy(itemStack)); } - return NonNullList.from(ItemStack.EMPTY, stacks); + return list; } - public static List copyFluidList(List fluidStacks) { - FluidStack[] stacks = new FluidStack[fluidStacks.size()]; - for (int i = 0; i < fluidStacks.size(); i++) stacks[i] = fluidStacks.get(i).copy(); - return Lists.newArrayList(stacks); + public static @NotNull List<@NotNull FluidStack> copyFluidList(@NotNull List<@NotNull FluidStack> fluidStacks) { + List list = new ArrayList<>(fluidStacks.size()); + for (FluidStack stack : fluidStacks) { + list.add(stack.copy()); + } + return list; } /** @@ -466,8 +468,7 @@ public static List copyFluidList(List fluidStacks) { * @param stack item stack for copying * @return a copy of ItemStack, or {@link ItemStack#EMPTY} if the stack is empty */ - @NotNull - public static ItemStack copy(@NotNull ItemStack stack) { + public static @NotNull ItemStack copy(@NotNull ItemStack stack) { return stack.isEmpty() ? ItemStack.EMPTY : stack.copy(); } @@ -820,9 +821,7 @@ public static Set getAllSubItems(@NotNull Item item) { if (tab == null || tab == CreativeTabs.SEARCH) continue; item.getSubItems(tab, subItems); } - Set set = new ObjectOpenCustomHashSet<>(ItemStackHashStrategy.comparingItemDamageCount()); - set.addAll(subItems); - return set; + return new ObjectOpenCustomHashSet<>(subItems, ItemStackHashStrategy.comparingItemDamageCount()); } /** diff --git a/src/main/java/gregtech/common/gui/impl/FakeModularUIContainerClipboard.java b/src/main/java/gregtech/common/gui/impl/FakeModularUIContainerClipboard.java index af569788b80..e7c4b8dad09 100644 --- a/src/main/java/gregtech/common/gui/impl/FakeModularUIContainerClipboard.java +++ b/src/main/java/gregtech/common/gui/impl/FakeModularUIContainerClipboard.java @@ -10,10 +10,8 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; -import net.minecraft.util.NonNullList; import net.minecraft.util.Tuple; -import com.google.common.collect.Lists; import io.netty.buffer.Unpooled; import java.util.ArrayList; @@ -24,8 +22,8 @@ public class FakeModularUIContainerClipboard extends FakeModularGuiContainer { - private final NonNullList inventoryItemStacks = NonNullList.create(); - public final List inventorySlots = Lists.newArrayList(); + private final List inventoryItemStacks = new ArrayList<>(); + public final List inventorySlots = new ArrayList<>(); public int windowId; public MetaTileEntityClipboard clipboard; diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java index 64ea0d7ffcf..e0a728238c8 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java @@ -219,7 +219,7 @@ public void setClipboard(ItemStack stack) { } @Override - public void getDrops(NonNullList dropsList, @Nullable EntityPlayer harvester) { + public void getDrops(@NotNull List<@NotNull ItemStack> dropsList, @Nullable EntityPlayer harvester) { dropsList.clear(); dropsList.add(this.getClipboard()); } @@ -258,7 +258,7 @@ private void breakClipboard(@Nullable EntityPlayer player) { BlockPos pos = this.getPos(); // Saving this for later so it doesn't get mangled World world = this.getWorld(); // Same here - NonNullList drops = NonNullList.create(); + List drops = new ArrayList<>(); getDrops(drops, player); Block.spawnAsEntity(getWorld(), pos, drops.get(0)); diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java index 2b8aa936f42..076cc395674 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityFisher.java @@ -18,7 +18,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -99,8 +98,8 @@ public void update() { } if (waterCount == WATER_CHECK_SIZE) { LootTable table = world.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING); - NonNullList itemStacks = NonNullList.create(); - itemStacks.addAll(table.generateLootForPools(world.rand, new LootContext.Builder(world).build())); + List itemStacks = table.generateLootForPools(world.rand, + new LootContext.Builder(world).build()); if (GTTransferUtils.addItemsToItemHandler(exportItems, true, itemStacks)) { GTTransferUtils.addItemsToItemHandler(exportItems, false, itemStacks); energyContainer.removeEnergy(energyAmountPerFish); diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java index 91fd07df207..78603f145d1 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java @@ -278,7 +278,7 @@ public T getCapability(Capability capability, EnumFacing side) { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, chargerInventory); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java index dda660e024f..31c87a58251 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMaintenanceHatch.java @@ -112,7 +112,7 @@ protected void initializeInventory() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, itemStackHandler); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java index 5bc07d2e793..4634293686a 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java @@ -24,7 +24,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -35,6 +34,7 @@ import codechicken.lib.render.pipeline.IVertexOperation; import codechicken.lib.vec.Matrix4; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -75,7 +75,7 @@ public void update() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, inventory); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java index efb526a0616..c55fcbfeaa8 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityObjectHolder.java @@ -24,7 +24,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandler; @@ -75,7 +74,7 @@ private boolean isSlotBlocked() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, heldItems); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java index b60a9781bed..febd79c80d6 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchItem.java @@ -18,7 +18,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; @@ -141,7 +140,7 @@ protected boolean shouldSerializeInventories() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, itemStackHandler); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java index d78b7fe5042..1fd863b864f 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityRotorHolder.java @@ -28,7 +28,6 @@ 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.BlockPos; import net.minecraft.world.World; @@ -295,7 +294,7 @@ public void onLeftClick(EntityPlayer player, EnumFacing facing, CuboidRayTraceRe } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, inventory); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java index 9084eeed969..c71b4acf74e 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java @@ -8,7 +8,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import appeng.api.AEApi; @@ -30,6 +29,7 @@ import java.io.IOException; import java.util.EnumSet; +import java.util.List; import static gregtech.api.capability.GregtechDataCodes.UPDATE_ONLINE_STATUS; @@ -61,7 +61,7 @@ public void update() { * So there is no need to drop them. */ @Override - public void clearMachineInventory(NonNullList itemBuffer) {} + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) {} @Override public void writeInitialSyncData(PacketBuffer buf) { diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java index 4a8da7d2234..35a257ad2cf 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/hpca/MetaTileEntityHPCAComponent.java @@ -25,7 +25,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -236,7 +235,7 @@ public boolean shouldDropWhenDestroyed() { } @Override - public void getDrops(NonNullList dropsList, @Nullable EntityPlayer harvester) { + public void getDrops(@NotNull List<@NotNull ItemStack> dropsList, @Nullable EntityPlayer harvester) { if (canBeDamaged() && isDamaged()) { if (isAdvanced()) { dropsList.add(MetaBlocks.COMPUTER_CASING diff --git a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java index a39ebdfff58..b88dd4e658d 100644 --- a/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java +++ b/src/main/java/gregtech/common/metatileentities/steam/boiler/SteamBoiler.java @@ -372,7 +372,7 @@ public SoundEvent getSound() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, containerInventory); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java index f5efc438a37..035b741ef76 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java +++ b/src/main/java/gregtech/common/metatileentities/storage/CraftingRecipeLogic.java @@ -14,7 +14,6 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; @@ -24,6 +23,7 @@ import com.google.common.collect.Lists; import java.util.Collections; +import java.util.List; import java.util.Map; public class CraftingRecipeLogic { @@ -111,9 +111,8 @@ public boolean performRecipe(EntityPlayer player) { return false; } ForgeHooks.setCraftingPlayer(player); - NonNullList remainingItems = cachedRecipe.getRemainingItems(inventoryCrafting); // todo right here is - // where tools get - // damaged (in UI) + // todo right here is where tools get damaged (in UI) + List remainingItems = cachedRecipe.getRemainingItems(inventoryCrafting); ForgeHooks.setCraftingPlayer(null); for (int i = 0; i < remainingItems.size(); i++) { ItemStack itemStack = remainingItems.get(i); diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java index a7fa403e9db..855b0501edf 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java @@ -18,7 +18,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.items.ItemStackHandler; @@ -29,6 +28,7 @@ import codechicken.lib.vec.Matrix4; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -147,7 +147,7 @@ public void addToolUsages(ItemStack stack, @Nullable World world, List t } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, itemStackHandler); } } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java index 235ea73f8c3..1f00f06818b 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCrate.java @@ -19,7 +19,6 @@ 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.world.World; import net.minecraftforge.fml.relauncher.Side; @@ -40,6 +39,7 @@ import com.cleanroommc.modularui.widgets.ItemSlot; import com.cleanroommc.modularui.widgets.layout.Grid; import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; @@ -87,7 +87,7 @@ protected void initializeInventory() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { if (!isTaped) { clearInventory(itemBuffer, inventory); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java index bd6dca83fb8..085ca35b1fa 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java @@ -31,7 +31,6 @@ 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.util.text.ITextComponent; @@ -513,7 +512,7 @@ public boolean isAllowInputFromOutputSideFluids() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { clearInventory(itemBuffer, importItems); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java index 93dc559bb11..879c657d6fe 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java @@ -31,7 +31,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.items.ItemStackHandler; @@ -182,7 +181,7 @@ private CraftingRecipeLogic getCraftingRecipeLogic() { } @Override - public void clearMachineInventory(NonNullList itemBuffer) { + public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer) { super.clearMachineInventory(itemBuffer); clearInventory(itemBuffer, internalInventory); clearInventory(itemBuffer, toolInventory); From 7ca48a932fc4272983730e52b3d4bbbef35bae9e Mon Sep 17 00:00:00 2001 From: Integer Limit <103940576+IntegerLimit@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:58:57 +1000 Subject: [PATCH 4/9] Add Missing Side Only Annotations (#2579) --- .../api/recipes/recipeproperties/CleanroomProperty.java | 3 +++ .../api/recipes/recipeproperties/ComputationProperty.java | 3 +++ .../gregtech/api/recipes/recipeproperties/DefaultProperty.java | 3 +++ .../api/recipes/recipeproperties/DimensionProperty.java | 3 +++ .../api/recipes/recipeproperties/FusionEUToStartProperty.java | 3 +++ .../recipes/recipeproperties/ImplosionExplosiveProperty.java | 3 +++ .../api/recipes/recipeproperties/PrimitiveProperty.java | 3 +++ .../api/recipes/recipeproperties/ResearchProperty.java | 3 +++ .../gregtech/api/recipes/recipeproperties/ScanProperty.java | 3 +++ .../api/recipes/recipeproperties/TemperatureProperty.java | 3 +++ .../api/recipes/recipeproperties/TotalComputationProperty.java | 3 +++ .../common/metatileentities/MetaTileEntityClipboard.java | 3 +++ .../metatileentities/converter/MetaTileEntityConverter.java | 3 +++ .../electric/centralmonitor/MetaTileEntityMonitorScreen.java | 1 + .../multi/multiblockpart/MetaTileEntityMultiblockPart.java | 3 +++ .../common/metatileentities/storage/MetaTileEntityBuffer.java | 3 +++ .../metatileentities/storage/MetaTileEntityCreativeEnergy.java | 3 +++ .../metatileentities/storage/MetaTileEntityQuantumChest.java | 3 +++ .../metatileentities/storage/MetaTileEntityQuantumTank.java | 3 +++ .../metatileentities/storage/MetaTileEntityWorkbench.java | 3 +++ .../fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java | 3 +++ .../itempipe/longdistance/MetaTileEntityLDItemEndpoint.java | 3 +++ 22 files changed, 64 insertions(+) diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/CleanroomProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/CleanroomProperty.java index 2152e3a3e43..e048ffa5626 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/CleanroomProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/CleanroomProperty.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.jetbrains.annotations.NotNull; @@ -25,6 +27,7 @@ public static CleanroomProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(@NotNull Minecraft minecraft, int x, int y, int color, Object value) { CleanroomType type = castValue(value); if (type == null) return; diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/ComputationProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/ComputationProperty.java index 20fa33c1a05..5f2de1b653b 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/ComputationProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/ComputationProperty.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class ComputationProperty extends RecipeProperty { @@ -21,6 +23,7 @@ public static ComputationProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.computation_per_tick", castValue(value)), x, y, color); diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/DefaultProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/DefaultProperty.java index 9620d1b6a22..1579297b2cd 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/DefaultProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/DefaultProperty.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class DefaultProperty extends RecipeProperty { @@ -9,6 +11,7 @@ public DefaultProperty(String key, Class type) { super(key, type); } + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe." + getKey(), castValue(value)), x, y, color); diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/DimensionProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/DimensionProperty.java index f233e7cd7f3..3795db18aa1 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/DimensionProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/DimensionProperty.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.IntArrayList; @@ -26,6 +28,7 @@ public static DimensionProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { DimensionPropertyList list = castValue(value); diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/FusionEUToStartProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/FusionEUToStartProperty.java index 60188d8cd5f..758480a4816 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/FusionEUToStartProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/FusionEUToStartProperty.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.tuple.Pair; @@ -32,6 +34,7 @@ public static FusionEUToStartProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.eu_to_start", TextFormattingUtil.formatLongToCompactString(castValue(value))) + getFusionTierName(castValue(value)), diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/ImplosionExplosiveProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/ImplosionExplosiveProperty.java index 725129e8843..fd88401041b 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/ImplosionExplosiveProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/ImplosionExplosiveProperty.java @@ -3,6 +3,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class ImplosionExplosiveProperty extends RecipeProperty { @@ -23,6 +25,7 @@ public static ImplosionExplosiveProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.explosive", ((ItemStack) value).getDisplayName()), x, y, color); diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/PrimitiveProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/PrimitiveProperty.java index 6419cd2aab0..908127d3573 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/PrimitiveProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/PrimitiveProperty.java @@ -1,6 +1,8 @@ package gregtech.api.recipes.recipeproperties; import net.minecraft.client.Minecraft; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; /** * Simple Marker Property to tell JEI to not display Total EU and EU/t. @@ -22,6 +24,7 @@ public static PrimitiveProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) {} @Override diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/ResearchProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/ResearchProperty.java index 510ed5eaa71..ec4d6ab105e 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/ResearchProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/ResearchProperty.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.jetbrains.annotations.NotNull; @@ -24,6 +26,7 @@ public static ResearchProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(@NotNull Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.research"), x, y, color); } diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/ScanProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/ScanProperty.java index 3548c982fa8..8018561a710 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/ScanProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/ScanProperty.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.jetbrains.annotations.NotNull; @@ -24,6 +26,7 @@ public static ScanProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.scan_for_research"), x, y, color); } diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/TemperatureProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/TemperatureProperty.java index 0b647d69523..c9c1681d9ae 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/TemperatureProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/TemperatureProperty.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.apache.commons.lang3.Validate; import org.jetbrains.annotations.NotNull; @@ -31,6 +33,7 @@ public static TemperatureProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.temperature", value, getMinTierForTemperature(castValue(value))), x, y, color); diff --git a/src/main/java/gregtech/api/recipes/recipeproperties/TotalComputationProperty.java b/src/main/java/gregtech/api/recipes/recipeproperties/TotalComputationProperty.java index 3557539d1ee..a6247be32c4 100644 --- a/src/main/java/gregtech/api/recipes/recipeproperties/TotalComputationProperty.java +++ b/src/main/java/gregtech/api/recipes/recipeproperties/TotalComputationProperty.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class TotalComputationProperty extends RecipeProperty { @@ -21,6 +23,7 @@ public static TotalComputationProperty getInstance() { } @Override + @SideOnly(Side.CLIENT) public void drawInfo(Minecraft minecraft, int x, int y, int color, Object value) { minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.total_computation", castValue(value)), x, y, color); diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java index e0a728238c8..36942d2d51c 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntityClipboard.java @@ -42,6 +42,8 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import codechicken.lib.raytracer.CuboidRayTraceResult; import codechicken.lib.raytracer.IndexedCuboid6; @@ -330,6 +332,7 @@ public IndexedCuboid6 getPageCuboid() { } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(CLIPBOARD_RENDERER.getParticleTexture(), 0xFFFFFF); } diff --git a/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java b/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java index c19166ac6ef..bbf2039b094 100644 --- a/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java +++ b/src/main/java/gregtech/common/metatileentities/converter/MetaTileEntityConverter.java @@ -26,6 +26,8 @@ import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.energy.CapabilityEnergy; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import codechicken.lib.raytracer.CuboidRayTraceResult; import codechicken.lib.render.CCRenderState; @@ -155,6 +157,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[getTier()].getParticleSprite(), getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java index 46bcafb51d5..0758efb8e70 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/centralmonitor/MetaTileEntityMonitorScreen.java @@ -849,6 +849,7 @@ public void addInformation(ItemStack stack, @Nullable World player, List } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(null, -1); } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java index 04b67b858b2..0a1b098a0b4 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockPart.java @@ -15,6 +15,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import codechicken.lib.render.CCRenderState; import codechicken.lib.render.pipeline.ColourMultiplier; @@ -40,6 +42,7 @@ public MetaTileEntityMultiblockPart(ResourceLocation metaTileEntityId, int tier) } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(getBaseTexture().getParticleSprite(), getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java index 855b0501edf..1ecb31c1821 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityBuffer.java @@ -20,6 +20,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.ItemStackHandler; import codechicken.lib.render.CCRenderState; @@ -64,6 +66,7 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[tier].getParticleSprite(), this.getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java index ec6afb97341..23e3a09ebba 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeEnergy.java @@ -29,6 +29,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import codechicken.lib.render.CCRenderState; import codechicken.lib.render.pipeline.ColourMultiplier; @@ -78,6 +80,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[this.setTier].getParticleSprite(), this.getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java index 085ca35b1fa..f51405428e6 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumChest.java @@ -39,6 +39,8 @@ import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; @@ -117,6 +119,7 @@ public void renderMetaTileEntity(double x, double y, double z, float partialTick } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[tier].getParticleSprite(), getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java index 7e5d244f556..41db93d301b 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityQuantumTank.java @@ -52,6 +52,8 @@ import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.IItemHandlerModifiable; import codechicken.lib.raytracer.CuboidRayTraceResult; @@ -296,6 +298,7 @@ public void renderMetaTileEntity(double x, double y, double z, float partialTick } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[tier].getParticleSprite(), getPaintingColorForRendering()); } diff --git a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java index 879c657d6fe..bbfb8c2685e 100644 --- a/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java +++ b/src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityWorkbench.java @@ -33,6 +33,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.ItemStackHandler; import codechicken.lib.render.CCRenderState; @@ -119,6 +121,7 @@ public int getDefaultPaintingColor() { } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.CRAFTING_TABLE.getParticleSprite(), getDefaultPaintingColor()); } diff --git a/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java b/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java index 55ddb9d3ba1..00a550356a7 100644 --- a/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java +++ b/src/main/java/gregtech/common/pipelike/fluidpipe/longdistance/MetaTileEntityLDFluidEndpoint.java @@ -20,6 +20,8 @@ import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import codechicken.lib.render.CCRenderState; import codechicken.lib.render.pipeline.ColourMultiplier; @@ -96,6 +98,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[GTValues.LV].getParticleSprite(), 0xFFFFFF); } diff --git a/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java b/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java index e062224904b..4179399fd0e 100644 --- a/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java +++ b/src/main/java/gregtech/common/pipelike/itempipe/longdistance/MetaTileEntityLDItemEndpoint.java @@ -17,6 +17,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; @@ -97,6 +99,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, } @Override + @SideOnly(Side.CLIENT) public Pair getParticleTexture() { return Pair.of(Textures.VOLTAGE_CASINGS[GTValues.LV].getParticleSprite(), 0xFFFFFF); } From 9fde08c8b09fa2f71435b4c30bae04e24e9b58db Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Sun, 11 Aug 2024 08:00:06 -0700 Subject: [PATCH 5/9] Fix Legacy Filter NBT Reading (#2570) --- .../java/gregtech/common/covers/CoverConveyor.java | 8 ++++++-- .../java/gregtech/common/covers/CoverFluidFilter.java | 9 ++++----- .../java/gregtech/common/covers/CoverItemFilter.java | 8 ++++---- src/main/java/gregtech/common/covers/CoverPump.java | 7 +++++-- .../common/covers/filter/BaseFilterContainer.java | 11 ++++++++--- .../covers/filter/readers/SimpleItemFilterReader.java | 1 + 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/gregtech/common/covers/CoverConveyor.java b/src/main/java/gregtech/common/covers/CoverConveyor.java index fe5960703fb..798c0000e8c 100644 --- a/src/main/java/gregtech/common/covers/CoverConveyor.java +++ b/src/main/java/gregtech/common/covers/CoverConveyor.java @@ -682,8 +682,12 @@ public void readFromNBT(@NotNull NBTTagCompound tagCompound) { this.distributionMode = DistributionMode.VALUES[tagCompound.getInteger("DistributionMode")]; this.isWorkingAllowed = tagCompound.getBoolean("WorkingAllowed"); this.manualImportExportMode = ManualImportExportMode.VALUES[tagCompound.getInteger("ManualImportExportMode")]; - this.itemFilterContainer.deserializeNBT(tagCompound.getCompoundTag("Filter")); - this.itemFilterContainer.handleLegacyNBT(tagCompound.getCompoundTag("Filter")); + var filterTag = tagCompound.getCompoundTag("Filter"); + if (filterTag.hasKey("IsBlacklist")) { + this.itemFilterContainer.handleLegacyNBT(filterTag); + } else { + this.itemFilterContainer.deserializeNBT(filterTag); + } } @Override diff --git a/src/main/java/gregtech/common/covers/CoverFluidFilter.java b/src/main/java/gregtech/common/covers/CoverFluidFilter.java index c89663d7bd5..c8763119b57 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidFilter.java +++ b/src/main/java/gregtech/common/covers/CoverFluidFilter.java @@ -191,14 +191,13 @@ public void writeToNBT(@NotNull NBTTagCompound tagCompound) { public void readFromNBT(@NotNull NBTTagCompound tagCompound) { super.readFromNBT(tagCompound); this.filterMode = FluidFilterMode.values()[tagCompound.getInteger("FilterMode")]; - var filterTag = tagCompound.getCompoundTag("Filter"); - if (!filterTag.hasKey("FilterInventory")) { + if (tagCompound.hasKey("IsBlacklist")) { this.fluidFilterContainer.setFilterStack(getDefinition().getDropItemStack()); + this.fluidFilterContainer.handleLegacyNBT(tagCompound); + this.fluidFilterContainer.setBlacklistFilter(tagCompound.getBoolean("IsBlacklist")); } else { - this.fluidFilterContainer.deserializeNBT(filterTag); + this.fluidFilterContainer.deserializeNBT(tagCompound.getCompoundTag("Filter")); } - - this.fluidFilterContainer.handleLegacyNBT(tagCompound); } private class FluidHandlerFiltered extends FluidHandlerDelegate { diff --git a/src/main/java/gregtech/common/covers/CoverItemFilter.java b/src/main/java/gregtech/common/covers/CoverItemFilter.java index 3ce3841912a..5267d23469d 100644 --- a/src/main/java/gregtech/common/covers/CoverItemFilter.java +++ b/src/main/java/gregtech/common/covers/CoverItemFilter.java @@ -179,13 +179,13 @@ public void writeToNBT(@NotNull NBTTagCompound tagCompound) { public void readFromNBT(@NotNull NBTTagCompound tagCompound) { super.readFromNBT(tagCompound); this.filterMode = ItemFilterMode.VALUES[tagCompound.getInteger("FilterMode")]; - var filterTag = tagCompound.getCompoundTag("Filter"); - if (!filterTag.hasKey("FilterInventory")) { + if (tagCompound.hasKey("IsBlacklist")) { this.itemFilterContainer.setFilterStack(getDefinition().getDropItemStack()); + this.itemFilterContainer.handleLegacyNBT(tagCompound); + this.itemFilterContainer.setBlacklistFilter(tagCompound.getBoolean("IsBlacklist")); } else { - this.itemFilterContainer.deserializeNBT(filterTag); + this.itemFilterContainer.deserializeNBT(tagCompound.getCompoundTag("Filter")); } - this.itemFilterContainer.handleLegacyNBT(tagCompound); } @Override diff --git a/src/main/java/gregtech/common/covers/CoverPump.java b/src/main/java/gregtech/common/covers/CoverPump.java index 92b2dd9edd4..2fdb55e2cdd 100644 --- a/src/main/java/gregtech/common/covers/CoverPump.java +++ b/src/main/java/gregtech/common/covers/CoverPump.java @@ -405,8 +405,11 @@ public void readFromNBT(@NotNull NBTTagCompound tagCompound) { this.isWorkingAllowed = tagCompound.getBoolean("WorkingAllowed"); this.manualImportExportMode = ManualImportExportMode.VALUES[tagCompound.getInteger("ManualImportExportMode")]; this.bucketMode = BucketMode.VALUES[tagCompound.getInteger("BucketMode")]; - this.fluidFilterContainer.deserializeNBT(tagCompound.getCompoundTag("Filter")); - this.fluidFilterContainer.handleLegacyNBT(tagCompound); + var filterTag = tagCompound.getCompoundTag("Filter"); + if (filterTag.hasKey("IsBlacklist")) + this.fluidFilterContainer.handleLegacyNBT(filterTag); + else + this.fluidFilterContainer.deserializeNBT(filterTag); } @Override diff --git a/src/main/java/gregtech/common/covers/filter/BaseFilterContainer.java b/src/main/java/gregtech/common/covers/filter/BaseFilterContainer.java index 091e6534e92..38867b542bf 100644 --- a/src/main/java/gregtech/common/covers/filter/BaseFilterContainer.java +++ b/src/main/java/gregtech/common/covers/filter/BaseFilterContainer.java @@ -187,7 +187,6 @@ public void setTransferSize(int transferSize) { public NBTTagCompound serializeNBT() { NBTTagCompound tagCompound = new NBTTagCompound(); tagCompound.setTag("FilterInventory", super.serializeNBT()); - // tagCompound.setInteger("MaxStackSize", getMaxTransferSize()); tagCompound.setInteger("TransferStackSize", getTransferSize()); return tagCompound; } @@ -201,9 +200,15 @@ public void deserializeNBT(NBTTagCompound nbt) { } public void handleLegacyNBT(NBTTagCompound nbt) { - if (hasFilter()) { - getFilter().getFilterReader().handleLegacyNBT(nbt); + // for filters as covers, the stack is set manually, and "FilterInventory" doesn't exist to be deserialized + // also, ItemStackHandler's deserialization doesn't use setStackInSlot, so I have to do that manually here + if (nbt.hasKey("FilterInventory")) { + super.deserializeNBT(nbt.getCompoundTag("FilterInventory")); + setFilter(BaseFilter.getFilterFromStack(getFilterStack())); } + + if (hasFilter()) + getFilter().getFilterReader().handleLegacyNBT(nbt); } /** Uses Cleanroom MUI */ diff --git a/src/main/java/gregtech/common/covers/filter/readers/SimpleItemFilterReader.java b/src/main/java/gregtech/common/covers/filter/readers/SimpleItemFilterReader.java index 7e9ea677b3e..84a66fe90b2 100644 --- a/src/main/java/gregtech/common/covers/filter/readers/SimpleItemFilterReader.java +++ b/src/main/java/gregtech/common/covers/filter/readers/SimpleItemFilterReader.java @@ -81,6 +81,7 @@ public void setStackInSlot(int slot, ItemStack stack) { } NBTTagList list = getInventoryNbt(); list.set(slot, stack.isEmpty() ? new NBTTagCompound() : stack.serializeNBT()); + markDirty(); } } From dde9598e0d84a27868c2fda84e0a3619dcfd3b8c Mon Sep 17 00:00:00 2001 From: Serenibyss <10861407+serenibyss@users.noreply.github.com> Date: Sun, 11 Aug 2024 21:31:09 -0500 Subject: [PATCH 6/9] Update build script version to 1723428048 (#2532) Co-authored-by: TechLord22 <37029404+TechLord22@users.noreply.github.com> Co-authored-by: alongstringofnumbers --- build.gradle | 28 ++++++++++++++++++++++-- gradle.properties | 21 ++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 09eec4b5c3a..892add04600 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1720106721 +//version: 1723428048 /* * DO NOT CHANGE THIS FILE! * Also, you may replace this file at any time if there is an update available. @@ -1237,6 +1237,30 @@ if (cfApiKey.isPresent() || deploymentDebug.toBoolean()) { additionalFile.changelog = changelogRaw } } + doLast { + // No File IDs in Debug Mode + if (!deploymentDebug.toBoolean()) { + def list = [] + for (def artifact : tasks.curseforge.getUploadArtifacts()) { + list.add(artifact) + for (def additionalArtifact : artifact.getAdditionalArtifacts()) { + list.add(additionalArtifact) + } + } + def summary = "## CurseForge Build Summary (Mod ${modName} | Project ID ${curseForgeProjectId})" + for (def artifact : list) { + def fileId = artifact.getCurseFileId() + def fileName = artifact.getArtifact().getSingleFile().name + println("Uploaded File ${fileName}, With File ID: ${fileId}") + summary = summary + "\n - File: ${fileName} | File ID: ${fileId}" + } + println(summary) + def stepSummary = providers.environmentVariable("GITHUB_STEP_SUMMARY") + if (stepSummary.isPresent()) { + file(stepSummary.get()).write(summary) + } + } + } } tasks.curseforge.dependsOn(build) tasks.curseforge.dependsOn('generateChangelog') @@ -1367,7 +1391,7 @@ def getChangelog() { // Buildscript updating -def buildscriptGradleVersion = '8.5' +def buildscriptGradleVersion = '8.9' tasks.named('wrapper', Wrapper).configure { gradleVersion = buildscriptGradleVersion diff --git a/gradle.properties b/gradle.properties index 7c35906e44c..7520aad5201 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,11 +26,20 @@ minecraftVersion = 1.12.2 # Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty # Alternatively this can be set with the 'DEV_USERNAME' environment variable. developmentEnvironmentUserName = Developer +# Additional arguments applied to the JVM when launching minecraft +# Syntax: -arg1=value1;-arg2=value2;... +# Example value: -Dmixin.debug.verify=true;-XX:+UnlockExperimentalVMOptions +additionalJavaArguments= # Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8. # See https://github.com/bsideup/jabel for details on how this works. # Using this requires that you use a Java 17 JDK for development. enableModernJavaSyntax = true +# Enables runClient/runServer tasks for Java 17 and Java 21 using LWJGL3ify. +# This is primarily used to test if your mod is compatible with platforms running +# Minecraft 1.12.2 on modern versions of Java and LWJGL, and assist in fixing any problems with it. +# Using this requires that you use a Java 17/Java 21 JDK for development. +enableJava17RunTasks=false # Generate a class with String fields for the mod id, name and version named with the fields below generateGradleTokenClass = gregtech.GTInternalTags @@ -42,6 +51,7 @@ gradleTokenVersion = VERSION # leave this property empty. # Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api apiPackage = + # If you want to keep your API code in src/api instead of src/main useSrcApiPath=false @@ -54,6 +64,8 @@ accessTransformersFile = gregtech_at.cfg usesMixins = true # Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! mixinsPackage = mixins +# Location of the mixin config refmap. If left, blank, defaults to "mixins.${modId}.refmap.json". Target file must have the "json" extension. +mixinConfigRefmap= # Automatically generates a mixin config json if enabled, with the name mixins.modid.json generateMixinConfig = false # Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! @@ -62,18 +74,27 @@ coreModClass = asm.GregTechLoadingPlugin # If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that # there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false! containsMixinsAndOrCoreModOnly=false + # Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. forceEnableMixins=false + # Outputs pre-transformed and post-transformed loaded classes to run/CLASSLOADER_TEMP. Can be used in combination with # diff to see exactly what your ASM or Mixins are changing in the target file. # Optionally can be specified with the 'CORE_MOD_DEBUG' env var. Will output a lot of files! enableCoreModDebug=false + # Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories includeWellKnownRepositories=true + # Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will # be available at compiletime and runtime for your mod (in-game and in-code). # Overrides the above setting to be always true, as these repositories are needed to fetch the mods includeCommonDevEnvMods = true +# Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, +# and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. +# This will add 'strip-latest-forge-requirements' as 'runtimeOnlyNonPublishable'. +# Requires useMixins or forceEnableMixins to be true, as the mod uses mixins to function. +stripForgeRequirements=false # If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a4413138c96..09523c0e549 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From f8db4351d78cc4055946759e573ff53481502465 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:16:40 -0500 Subject: [PATCH 7/9] Fission Reactor's ShapeInfo support for Relative Directions (#2576) --- .../gregtech/api/pattern/BlockPattern.java | 96 ++----------------- .../api/pattern/FactoryBlockPattern.java | 2 +- .../api/pattern/MultiblockShapeInfo.java | 55 ++++++++++- .../gregtech/api/util/RelativeDirection.java | 87 +++++++++++++++++ .../MetaTileEntityElectricBlastFurnace.java | 4 +- .../electric/MetaTileEntityFusionReactor.java | 3 +- .../multi/electric/MetaTileEntityHPCA.java | 4 +- .../MetaTileEntityLargeChemicalReactor.java | 4 +- .../MetaTileEntityResearchStation.java | 4 +- 9 files changed, 161 insertions(+), 98 deletions(-) diff --git a/src/main/java/gregtech/api/pattern/BlockPattern.java b/src/main/java/gregtech/api/pattern/BlockPattern.java index f392ba1b26e..98fde0d5a9d 100644 --- a/src/main/java/gregtech/api/pattern/BlockPattern.java +++ b/src/main/java/gregtech/api/pattern/BlockPattern.java @@ -165,7 +165,8 @@ private PatternMatchContext checkPatternAt(World world, BlockPos centerPos, Enum for (int b = 0, y = -centerOffset[1]; b < this.thumbLength; b++, y++) { for (int a = 0, x = -centerOffset[0]; a < this.palmLength; a++, x++) { TraceabilityPredicate predicate = this.blockMatches[c][b][a]; - BlockPos pos = setActualRelativeOffset(x, y, z, frontFacing, upwardsFacing, isFlipped) + BlockPos pos = RelativeDirection.setActualRelativeOffset(x, y, z, frontFacing, upwardsFacing, + isFlipped, structureDir) .add(centerPos.getX(), centerPos.getY(), centerPos.getZ()); worldState.update(world, pos, matchContext, globalCount, layerCount, predicate); TileEntity tileEntity = worldState.getTileEntity(); @@ -250,9 +251,10 @@ public void autoBuild(EntityPlayer player, MultiblockControllerBase controllerBa for (int b = 0, y = -centerOffset[1]; b < this.thumbLength; b++, y++) { for (int a = 0, x = -centerOffset[0]; a < this.palmLength; a++, x++) { TraceabilityPredicate predicate = this.blockMatches[c][b][a]; - BlockPos pos = setActualRelativeOffset(x, y, z, facing, controllerBase.getUpwardsFacing(), - controllerBase.isFlipped()) - .add(centerPos.getX(), centerPos.getY(), centerPos.getZ()); + BlockPos pos = RelativeDirection.setActualRelativeOffset(x, y, z, facing, + controllerBase.getUpwardsFacing(), + controllerBase.isFlipped(), structureDir) + .add(centerPos.getX(), centerPos.getY(), centerPos.getZ()); worldState.update(world, pos, matchContext, globalCount, layerCount, predicate); if (!world.getBlockState(pos).getMaterial().isReplaceable()) { blocks.put(pos, world.getBlockState(pos)); @@ -571,7 +573,8 @@ public BlockInfo[][][] getPreview(int[] repetition) { } } BlockInfo info = infos == null || infos.length == 0 ? BlockInfo.EMPTY : infos[0]; - BlockPos pos = setActualRelativeOffset(z, y, x, EnumFacing.NORTH, EnumFacing.UP, false); + BlockPos pos = RelativeDirection.setActualRelativeOffset(z, y, x, EnumFacing.NORTH, + EnumFacing.UP, false, structureDir); // TODO if (info.getTileEntity() instanceof MetaTileEntityHolder) { MetaTileEntityHolder holder = new MetaTileEntityHolder(); @@ -624,87 +627,4 @@ public BlockInfo[][][] getPreview(int[] repetition) { }); return result; } - - private BlockPos setActualRelativeOffset(int x, int y, int z, EnumFacing facing, EnumFacing upwardsFacing, - boolean isFlipped) { - int[] c0 = new int[] { x, y, z }, c1 = new int[3]; - if (facing == EnumFacing.UP || facing == EnumFacing.DOWN) { - EnumFacing of = facing == EnumFacing.DOWN ? upwardsFacing : upwardsFacing.getOpposite(); - for (int i = 0; i < 3; i++) { - switch (structureDir[i].getActualFacing(of)) { - case UP -> c1[1] = c0[i]; - case DOWN -> c1[1] = -c0[i]; - case WEST -> c1[0] = -c0[i]; - case EAST -> c1[0] = c0[i]; - case NORTH -> c1[2] = -c0[i]; - case SOUTH -> c1[2] = c0[i]; - } - } - int xOffset = upwardsFacing.getXOffset(); - int zOffset = upwardsFacing.getZOffset(); - int tmp; - if (xOffset == 0) { - tmp = c1[2]; - c1[2] = zOffset > 0 ? c1[1] : -c1[1]; - c1[1] = zOffset > 0 ? -tmp : tmp; - } else { - tmp = c1[0]; - c1[0] = xOffset > 0 ? c1[1] : -c1[1]; - c1[1] = xOffset > 0 ? -tmp : tmp; - } - if (isFlipped) { - if (upwardsFacing == EnumFacing.NORTH || upwardsFacing == EnumFacing.SOUTH) { - c1[0] = -c1[0]; // flip X-axis - } else { - c1[2] = -c1[2]; // flip Z-axis - } - } - } else { - for (int i = 0; i < 3; i++) { - switch (structureDir[i].getActualFacing(facing)) { - case UP -> c1[1] = c0[i]; - case DOWN -> c1[1] = -c0[i]; - case WEST -> c1[0] = -c0[i]; - case EAST -> c1[0] = c0[i]; - case NORTH -> c1[2] = -c0[i]; - case SOUTH -> c1[2] = c0[i]; - } - } - if (upwardsFacing == EnumFacing.WEST || upwardsFacing == EnumFacing.EAST) { - int xOffset = upwardsFacing == EnumFacing.WEST ? facing.rotateY().getXOffset() : - facing.rotateY().getOpposite().getXOffset(); - int zOffset = upwardsFacing == EnumFacing.WEST ? facing.rotateY().getZOffset() : - facing.rotateY().getOpposite().getZOffset(); - int tmp; - if (xOffset == 0) { - tmp = c1[2]; - c1[2] = zOffset > 0 ? -c1[1] : c1[1]; - c1[1] = zOffset > 0 ? tmp : -tmp; - } else { - tmp = c1[0]; - c1[0] = xOffset > 0 ? -c1[1] : c1[1]; - c1[1] = xOffset > 0 ? tmp : -tmp; - } - } else if (upwardsFacing == EnumFacing.SOUTH) { - c1[1] = -c1[1]; - if (facing.getXOffset() == 0) { - c1[0] = -c1[0]; - } else { - c1[2] = -c1[2]; - } - } - if (isFlipped) { - if (upwardsFacing == EnumFacing.NORTH || upwardsFacing == EnumFacing.SOUTH) { - if (facing == EnumFacing.NORTH || facing == EnumFacing.SOUTH) { - c1[0] = -c1[0]; // flip X-axis - } else { - c1[2] = -c1[2]; // flip Z-axis - } - } else { - c1[1] = -c1[1]; // flip Y-axis - } - } - } - return new BlockPos(c1[0], c1[1], c1[2]); - } } diff --git a/src/main/java/gregtech/api/pattern/FactoryBlockPattern.java b/src/main/java/gregtech/api/pattern/FactoryBlockPattern.java index fa44ba6cdcc..7b2e272f991 100644 --- a/src/main/java/gregtech/api/pattern/FactoryBlockPattern.java +++ b/src/main/java/gregtech/api/pattern/FactoryBlockPattern.java @@ -30,7 +30,7 @@ private FactoryBlockPattern(RelativeDirection charDir, RelativeDirection stringD structureDir[1] = stringDir; structureDir[2] = aisleDir; int flags = 0; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < this.structureDir.length; i++) { switch (structureDir[i]) { case UP: case DOWN: diff --git a/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java b/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java index f8cd3a5cbaf..f82b3dc8319 100644 --- a/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java +++ b/src/main/java/gregtech/api/pattern/MultiblockShapeInfo.java @@ -3,10 +3,12 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.MetaTileEntityHolder; import gregtech.api.util.BlockInfo; +import gregtech.api.util.RelativeDirection; import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; import org.jetbrains.annotations.NotNull; @@ -14,8 +16,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Supplier; +import static gregtech.api.util.RelativeDirection.*; + public class MultiblockShapeInfo { /** {@code [x][y][z]} */ @@ -33,14 +38,48 @@ public BlockInfo[][][] getBlocks() { } public static Builder builder() { - return new Builder(); + return builder(RIGHT, DOWN, BACK); + } + + public static Builder builder(@NotNull RelativeDirection... structureDir) { + if (structureDir.length != 3) throw new IllegalArgumentException("Must have exactly 3 directions!"); + return new Builder(structureDir[0], structureDir[1], structureDir[2]); } public static class Builder { + private final RelativeDirection[] structureDir = new RelativeDirection[3]; + private List shape = new ArrayList<>(); private Map symbolMap = new HashMap<>(); + /** + * Use {@link #builder(RelativeDirection...)} + * + * @param structureDir The directions that the provided block pattern is based upon (character, string, row). + */ + @Deprecated + public Builder(@NotNull RelativeDirection... structureDir) { + this(structureDir[0], structureDir[1], structureDir[2]); + } + + @Deprecated + public Builder(@NotNull RelativeDirection one, @NotNull RelativeDirection two, + @NotNull RelativeDirection three) { + this.structureDir[0] = Objects.requireNonNull(one); + this.structureDir[1] = Objects.requireNonNull(two); + this.structureDir[2] = Objects.requireNonNull(three); + int flags = 0; + for (int i = 0; i < this.structureDir.length; i++) { + switch (structureDir[i]) { + case UP, DOWN -> flags |= 0x1; + case LEFT, RIGHT -> flags |= 0x2; + case FRONT, BACK -> flags |= 0x4; + } + } + if (flags != 0x7) throw new IllegalArgumentException("The directions must be on different axes!"); + } + public Builder aisle(String... data) { this.shape.add(data); return this; @@ -85,7 +124,13 @@ private BlockInfo[][][] bakeArray() { final int maxZ = shape.size(); final int maxY = shape.get(0).length; final int maxX = shape.get(0)[0].length(); - BlockInfo[][][] blockInfos = new BlockInfo[maxX][maxY][maxZ]; + + BlockPos end = RelativeDirection.setActualRelativeOffset(maxX, maxY, maxZ, EnumFacing.SOUTH, EnumFacing.UP, + true, structureDir); + BlockPos addition = new BlockPos(end.getX() < 0 ? -end.getX() - 1 : 0, end.getY() < 0 ? -end.getY() - 1 : 0, + end.getZ() < 0 ? -end.getZ() - 1 : 0); + BlockPos bound = new BlockPos(Math.abs(end.getX()), Math.abs(end.getY()), Math.abs(end.getZ())); + BlockInfo[][][] blockInfos = new BlockInfo[bound.getX()][bound.getY()][bound.getZ()]; for (int z = 0; z < maxZ; z++) { String[] aisleEntry = shape.get(z); for (int y = 0; y < maxY; y++) { @@ -103,7 +148,9 @@ private BlockInfo[][][] bakeArray() { } else if (tileEntity != null) { info = new BlockInfo(info.getBlockState(), tileEntity); } - blockInfos[x][y][z] = info; + BlockPos pos = RelativeDirection.setActualRelativeOffset(x, y, z, EnumFacing.SOUTH, + EnumFacing.UP, true, structureDir).add(addition); + blockInfos[pos.getX()][pos.getY()][pos.getZ()] = info; } } } @@ -111,7 +158,7 @@ private BlockInfo[][][] bakeArray() { } public Builder shallowCopy() { - Builder builder = new Builder(); + Builder builder = new Builder(this.structureDir); builder.shape = new ArrayList<>(this.shape); builder.symbolMap = new HashMap<>(this.symbolMap); return builder; diff --git a/src/main/java/gregtech/api/util/RelativeDirection.java b/src/main/java/gregtech/api/util/RelativeDirection.java index c55db969ee4..41c67e91f09 100644 --- a/src/main/java/gregtech/api/util/RelativeDirection.java +++ b/src/main/java/gregtech/api/util/RelativeDirection.java @@ -192,4 +192,91 @@ public static BlockPos offsetPos(BlockPos pos, EnumFacing frontFacing, EnumFacin return pos.add(oX, oY, oZ); } + + /** + * Offset a BlockPos relatively in any direction by any amount. Pass negative values to offset down, right or + * backwards. + */ + public static BlockPos setActualRelativeOffset(int x, int y, int z, EnumFacing facing, EnumFacing upwardsFacing, + boolean isFlipped, RelativeDirection[] structureDir) { + int[] c0 = new int[] { x, y, z }, c1 = new int[3]; + if (facing == EnumFacing.UP || facing == EnumFacing.DOWN) { + EnumFacing of = facing == EnumFacing.DOWN ? upwardsFacing : upwardsFacing.getOpposite(); + for (int i = 0; i < 3; i++) { + switch (structureDir[i].getActualFacing(of)) { + case UP -> c1[1] = c0[i]; + case DOWN -> c1[1] = -c0[i]; + case WEST -> c1[0] = -c0[i]; + case EAST -> c1[0] = c0[i]; + case NORTH -> c1[2] = -c0[i]; + case SOUTH -> c1[2] = c0[i]; + } + } + int xOffset = upwardsFacing.getXOffset(); + int zOffset = upwardsFacing.getZOffset(); + int tmp; + if (xOffset == 0) { + tmp = c1[2]; + c1[2] = zOffset > 0 ? c1[1] : -c1[1]; + c1[1] = zOffset > 0 ? -tmp : tmp; + } else { + tmp = c1[0]; + c1[0] = xOffset > 0 ? c1[1] : -c1[1]; + c1[1] = xOffset > 0 ? -tmp : tmp; + } + if (isFlipped) { + if (upwardsFacing == EnumFacing.NORTH || upwardsFacing == EnumFacing.SOUTH) { + c1[0] = -c1[0]; // flip X-axis + } else { + c1[2] = -c1[2]; // flip Z-axis + } + } + } else { + for (int i = 0; i < 3; i++) { + switch (structureDir[i].getActualFacing(facing)) { + case UP -> c1[1] = c0[i]; + case DOWN -> c1[1] = -c0[i]; + case WEST -> c1[0] = -c0[i]; + case EAST -> c1[0] = c0[i]; + case NORTH -> c1[2] = -c0[i]; + case SOUTH -> c1[2] = c0[i]; + } + } + if (upwardsFacing == EnumFacing.WEST || upwardsFacing == EnumFacing.EAST) { + int xOffset = upwardsFacing == EnumFacing.WEST ? facing.rotateY().getXOffset() : + facing.rotateY().getOpposite().getXOffset(); + int zOffset = upwardsFacing == EnumFacing.WEST ? facing.rotateY().getZOffset() : + facing.rotateY().getOpposite().getZOffset(); + int tmp; + if (xOffset == 0) { + tmp = c1[2]; + c1[2] = zOffset > 0 ? -c1[1] : c1[1]; + c1[1] = zOffset > 0 ? tmp : -tmp; + } else { + tmp = c1[0]; + c1[0] = xOffset > 0 ? -c1[1] : c1[1]; + c1[1] = xOffset > 0 ? tmp : -tmp; + } + } else if (upwardsFacing == EnumFacing.SOUTH) { + c1[1] = -c1[1]; + if (facing.getXOffset() == 0) { + c1[0] = -c1[0]; + } else { + c1[2] = -c1[2]; + } + } + if (isFlipped) { + if (upwardsFacing == EnumFacing.NORTH || upwardsFacing == EnumFacing.SOUTH) { + if (facing == EnumFacing.NORTH || facing == EnumFacing.SOUTH) { + c1[0] = -c1[0]; // flip X-axis + } else { + c1[2] = -c1[2]; // flip Z-axis + } + } else { + c1[1] = -c1[1]; // flip Y-axis + } + } + } + return new BlockPos(c1[0], c1[1], c1[2]); + } } diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java index 5e2714e2b98..78d9449eaf2 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityElectricBlastFurnace.java @@ -52,6 +52,8 @@ import java.util.Comparator; import java.util.List; +import static gregtech.api.util.RelativeDirection.*; + public class MetaTileEntityElectricBlastFurnace extends RecipeMapMultiblockController implements IHeatingCoil { private int blastFurnaceTemperature; @@ -179,7 +181,7 @@ public SoundEvent getBreakdownSound() { @Override public List getMatchingShapes() { ArrayList shapeInfo = new ArrayList<>(); - MultiblockShapeInfo.Builder builder = MultiblockShapeInfo.builder() + MultiblockShapeInfo.Builder builder = MultiblockShapeInfo.builder(RIGHT, DOWN, FRONT) .aisle("EEM", "CCC", "CCC", "XXX") .aisle("FXD", "C#C", "C#C", "XHX") .aisle("ISO", "CCC", "CCC", "XXX") diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java index c0b529bd90b..4b6b9db00d5 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java @@ -86,6 +86,7 @@ import static gregtech.api.recipes.logic.OverclockingLogic.PERFECT_HALF_DURATION_FACTOR; import static gregtech.api.recipes.logic.OverclockingLogic.PERFECT_HALF_VOLTAGE_FACTOR; +import static gregtech.api.util.RelativeDirection.*; public class MetaTileEntityFusionReactor extends RecipeMapMultiblockController implements IFastRenderMetaTileEntity, IBloomEffect { @@ -162,7 +163,7 @@ protected BlockPattern createStructurePattern() { public List getMatchingShapes() { List shapeInfos = new ArrayList<>(); - MultiblockShapeInfo.Builder baseBuilder = MultiblockShapeInfo.builder() + MultiblockShapeInfo.Builder baseBuilder = MultiblockShapeInfo.builder(RIGHT, DOWN, FRONT) .aisle("###############", "######WGW######", "###############") .aisle("######DCD######", "####GG###GG####", "######UCU######") .aisle("####CC###CC####", "###w##EGE##s###", "####CC###CC####") diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java index 0345a985bd8..f1bf2dc9593 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityHPCA.java @@ -64,6 +64,8 @@ import java.util.Set; import java.util.function.Supplier; +import static gregtech.api.util.RelativeDirection.*; + public class MetaTileEntityHPCA extends MultiblockWithDisplayBase implements IOpticalComputationProvider, IControllable, IProgressBarMultiblock { @@ -229,7 +231,7 @@ private void consumeEnergy() { @Override public List getMatchingShapes() { List shapeInfo = new ArrayList<>(); - MultiblockShapeInfo.Builder builder = MultiblockShapeInfo.builder() + MultiblockShapeInfo.Builder builder = MultiblockShapeInfo.builder(RIGHT, DOWN, FRONT) .aisle("AA", "EC", "MC", "HC", "AA") .aisle("VA", "6V", "3V", "0V", "VA") .aisle("VA", "7V", "4V", "1V", "VA") diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java index cb12da25e2b..a15161260ee 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeChemicalReactor.java @@ -37,6 +37,8 @@ import java.util.ArrayList; import java.util.List; +import static gregtech.api.util.RelativeDirection.*; + public class MetaTileEntityLargeChemicalReactor extends RecipeMapMultiblockController { public MetaTileEntityLargeChemicalReactor(ResourceLocation metaTileEntityId) { @@ -69,7 +71,7 @@ protected BlockPattern createStructurePattern() { @Override public List getMatchingShapes() { ArrayList shapeInfo = new ArrayList<>(); - MultiblockShapeInfo.Builder baseBuilder = MultiblockShapeInfo.builder() + MultiblockShapeInfo.Builder baseBuilder = MultiblockShapeInfo.builder(RIGHT, DOWN, FRONT) .where('S', MetaTileEntities.LARGE_CHEMICAL_REACTOR, EnumFacing.SOUTH) .where('X', MetaBlocks.METAL_CASING.getState(BlockMetalCasing.MetalCasingType.PTFE_INERT_CASING)) .where('P', diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java index ac987d7c73b..50923590e11 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityResearchStation.java @@ -45,6 +45,8 @@ import java.util.Collections; import java.util.List; +import static gregtech.api.util.RelativeDirection.*; + public class MetaTileEntityResearchStation extends RecipeMapMultiblockController implements IOpticalComputationReceiver { @@ -143,7 +145,7 @@ protected BlockPattern createStructurePattern() { @Override public List getMatchingShapes() { - return Collections.singletonList(MultiblockShapeInfo.builder() + return Collections.singletonList(MultiblockShapeInfo.builder(RIGHT, DOWN, FRONT) .aisle("XXX", "VVV", "POP", "PEP", "PMP", "VVV", "XXX") .aisle("XXX", "VAV", "AAA", "AAA", "AAA", "VAV", "XXX") .aisle("XXX", "VAV", "XAX", "XSX", "XAX", "VAV", "XXX") From 3aee29a2d13a381dbffbad351b0099dfe4521fce Mon Sep 17 00:00:00 2001 From: Envoidia <76633436+IncandescenceSy@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:29:48 -0500 Subject: [PATCH 8/9] Fix incorrect pipe material (#2589) --- src/main/java/gregtech/loaders/recipe/CraftingComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gregtech/loaders/recipe/CraftingComponent.java b/src/main/java/gregtech/loaders/recipe/CraftingComponent.java index f6c8898f9d9..1d1debf9b6f 100644 --- a/src/main/java/gregtech/loaders/recipe/CraftingComponent.java +++ b/src/main/java/gregtech/loaders/recipe/CraftingComponent.java @@ -390,7 +390,7 @@ public static void initializeComponents() { { 4, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.Titanium) }, { 5, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.TungstenSteel) }, { 6, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.NiobiumTitanium) }, - { 7, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.Ultimet) }, + { 7, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.Iridium) }, { 8, new UnificationEntry(OrePrefix.pipeLargeFluid, Materials.Naquadah) }, }).collect(Collectors.toMap(data -> (Integer) data[0], data -> data[1]))); From 518a896382a41a9c80f3fbfc0b947fb794980ffd Mon Sep 17 00:00:00 2001 From: TechLord22 <37029404+TechLord22@users.noreply.github.com> Date: Thu, 22 Aug 2024 18:46:58 -0400 Subject: [PATCH 9/9] fix duplicate assembly line research entries (#2584) --- src/main/java/gregtech/api/recipes/RecipeMap.java | 2 +- .../api/recipes/machines/RecipeMapAssemblyLine.java | 6 ++++++ .../gregtech/common/items/behaviors/DataItemBehavior.java | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/gregtech/api/recipes/RecipeMap.java b/src/main/java/gregtech/api/recipes/RecipeMap.java index b782e5e9f4e..df5ae2d7d2e 100644 --- a/src/main/java/gregtech/api/recipes/RecipeMap.java +++ b/src/main/java/gregtech/api/recipes/RecipeMap.java @@ -437,7 +437,7 @@ public boolean removeRecipe(@NotNull Recipe recipe) { * @see GTRecipeHandler#removeAllRecipes(RecipeMap) */ @ApiStatus.Internal - void removeAllRecipes() { + protected void removeAllRecipes() { if (GroovyScriptModule.isCurrentlyRunning()) { this.lookup.getRecipes(false).forEach(this.getGroovyScriptRecipeMap()::addBackup); } diff --git a/src/main/java/gregtech/api/recipes/machines/RecipeMapAssemblyLine.java b/src/main/java/gregtech/api/recipes/machines/RecipeMapAssemblyLine.java index 7edeb9a7f62..5c23b88f6a2 100644 --- a/src/main/java/gregtech/api/recipes/machines/RecipeMapAssemblyLine.java +++ b/src/main/java/gregtech/api/recipes/machines/RecipeMapAssemblyLine.java @@ -61,6 +61,12 @@ public boolean removeRecipe(@NotNull Recipe recipe) { return true; } + @Override + protected void removeAllRecipes() { + super.removeAllRecipes(); + researchEntries.clear(); + } + @Override public void addDataStickEntry(@NotNull String researchId, @NotNull Recipe recipe) { if (researchId.contains("xmetaitem.")) { diff --git a/src/main/java/gregtech/common/items/behaviors/DataItemBehavior.java b/src/main/java/gregtech/common/items/behaviors/DataItemBehavior.java index 7be90f4d9ff..116dca7ee5d 100644 --- a/src/main/java/gregtech/common/items/behaviors/DataItemBehavior.java +++ b/src/main/java/gregtech/common/items/behaviors/DataItemBehavior.java @@ -6,11 +6,12 @@ import gregtech.api.recipes.RecipeMaps; import gregtech.api.recipes.machines.IResearchRecipeMap; import gregtech.api.util.AssemblyLineManager; +import gregtech.api.util.ItemStackHashStrategy; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; -import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -41,7 +42,7 @@ public void addInformation(@NotNull ItemStack itemStack, List lines) { .getDataStickEntry(researchId); if (recipes != null && !recipes.isEmpty()) { lines.add(I18n.format("behavior.data_item.assemblyline.title")); - Collection added = new ObjectOpenHashSet<>(); + Collection added = new ObjectOpenCustomHashSet<>(ItemStackHashStrategy.comparingAllButCount()); for (Recipe recipe : recipes) { ItemStack output = recipe.getOutputs().get(0); if (added.add(output)) {