From 0b251cb1464cc4add7b863d11bd938d510433952 Mon Sep 17 00:00:00 2001 From: NepJr Date: Wed, 7 Oct 2026 04:50:55 -0700 Subject: [PATCH 1/2] Raw Ores implementation --- .../api/unification/material/Material.java | 5 + .../material/info/MaterialIconType.java | 2 + .../material/properties/PropertyKey.java | 1 + .../material/properties/RawOreProperty.java | 193 ++++++++++++++++++ .../api/unification/ore/OrePrefix.java | 2 + .../java/gregtech/common/CommonProxy.java | 9 +- .../java/gregtech/common/blocks/BlockOre.java | 28 +++ .../java/gregtech/common/items/MetaItems.java | 1 + .../recipe/handlers/OreRecipeHandler.java | 2 + .../resources/assets/gregtech/lang/en_us.lang | 1 + .../item/material_sets/diamond/raw_ore.json | 6 + .../item/material_sets/dull/raw_ore.json | 6 + .../item/material_sets/fine/raw_ore.json | 6 + .../item/material_sets/metallic/raw_ore.json | 6 + .../item/material_sets/shiny/raw_ore.json | 6 + .../items/material_sets/diamond/raw_ore.png | Bin 0 -> 1742 bytes .../diamond/raw_ore_secondary.png | Bin 0 -> 337 bytes .../items/material_sets/dull/raw_ore.png | Bin 0 -> 4842 bytes .../material_sets/dull/raw_ore_secondary.png | Bin 0 -> 418 bytes .../items/material_sets/fine/raw_ore.png | Bin 0 -> 4869 bytes .../material_sets/fine/raw_ore_secondary.png | Bin 0 -> 337 bytes .../items/material_sets/metallic/raw_ore.png | Bin 0 -> 4409 bytes .../metallic/raw_ore_secondary.png | Bin 0 -> 424 bytes .../items/material_sets/shiny/raw_ore.png | Bin 0 -> 4348 bytes .../material_sets/shiny/raw_ore_overlay.png | Bin 0 -> 4397 bytes .../material_sets/shiny/raw_ore_secondary.png | Bin 0 -> 305 bytes 26 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 src/main/java/gregtech/api/unification/material/properties/RawOreProperty.java create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/diamond/raw_ore.json create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/dull/raw_ore.json create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/fine/raw_ore.json create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/metallic/raw_ore.json create mode 100644 src/main/resources/assets/gregtech/models/item/material_sets/shiny/raw_ore.json create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/diamond/raw_ore.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/diamond/raw_ore_secondary.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/dull/raw_ore.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/dull/raw_ore_secondary.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore_secondary.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/metallic/raw_ore.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/metallic/raw_ore_secondary.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_overlay.png create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_secondary.png diff --git a/src/main/java/gregtech/api/unification/material/Material.java b/src/main/java/gregtech/api/unification/material/Material.java index f258eacef73..d70a198f993 100644 --- a/src/main/java/gregtech/api/unification/material/Material.java +++ b/src/main/java/gregtech/api/unification/material/Material.java @@ -26,6 +26,7 @@ import gregtech.api.unification.material.properties.OreProperty; import gregtech.api.unification.material.properties.PolymerProperty; import gregtech.api.unification.material.properties.PropertyKey; +import gregtech.api.unification.material.properties.RawOreProperty; import gregtech.api.unification.material.properties.RotorProperty; import gregtech.api.unification.material.properties.WireProperties; import gregtech.api.unification.material.properties.WoodProperty; @@ -1040,21 +1041,25 @@ public Builder blast(UnaryOperator b) { public Builder ore() { properties.ensureSet(PropertyKey.ORE); + properties.ensureSet(PropertyKey.RAW_ORE); return this; } public Builder ore(boolean emissive) { properties.setProperty(PropertyKey.ORE, new OreProperty(1, 1, emissive)); + properties.setProperty(PropertyKey.RAW_ORE, new RawOreProperty(1, 1)); return this; } public Builder ore(int oreMultiplier, int byproductMultiplier) { properties.setProperty(PropertyKey.ORE, new OreProperty(oreMultiplier, byproductMultiplier)); + properties.setProperty(PropertyKey.RAW_ORE, new RawOreProperty(oreMultiplier, byproductMultiplier)); return this; } public Builder ore(int oreMultiplier, int byproductMultiplier, boolean emissive) { properties.setProperty(PropertyKey.ORE, new OreProperty(oreMultiplier, byproductMultiplier, emissive)); + properties.setProperty(PropertyKey.RAW_ORE, new RawOreProperty(oreMultiplier, byproductMultiplier)); return this; } diff --git a/src/main/java/gregtech/api/unification/material/info/MaterialIconType.java b/src/main/java/gregtech/api/unification/material/info/MaterialIconType.java index 23d4589d3b5..27a708e56c2 100644 --- a/src/main/java/gregtech/api/unification/material/info/MaterialIconType.java +++ b/src/main/java/gregtech/api/unification/material/info/MaterialIconType.java @@ -27,6 +27,8 @@ public class MaterialIconType { public static final MaterialIconType dustImpure = new MaterialIconType("dustImpure"); public static final MaterialIconType dustPure = new MaterialIconType("dustPure"); + public static final MaterialIconType rawOre = new MaterialIconType("rawOre"); + public static final MaterialIconType crushed = new MaterialIconType("crushed"); public static final MaterialIconType crushedPurified = new MaterialIconType("crushedPurified"); public static final MaterialIconType crushedCentrifuged = new MaterialIconType("crushedCentrifuged"); diff --git a/src/main/java/gregtech/api/unification/material/properties/PropertyKey.java b/src/main/java/gregtech/api/unification/material/properties/PropertyKey.java index 3ccd75e4f93..37e8f28b93e 100644 --- a/src/main/java/gregtech/api/unification/material/properties/PropertyKey.java +++ b/src/main/java/gregtech/api/unification/material/properties/PropertyKey.java @@ -13,6 +13,7 @@ public class PropertyKey { public static final PropertyKey ITEM_PIPE = new PropertyKey<>("item_pipe", ItemPipeProperties.class); public static final PropertyKey ORE = new PropertyKey<>("ore", OreProperty.class); + public static final PropertyKey RAW_ORE = new PropertyKey<>("raw_ore", RawOreProperty.class); public static final PropertyKey TOOL = new PropertyKey<>("tool", MaterialToolProperty.class); public static final PropertyKey EXTRATOOL = new PropertyKey<>("extra_tool", ExtraToolProperty.class); diff --git a/src/main/java/gregtech/api/unification/material/properties/RawOreProperty.java b/src/main/java/gregtech/api/unification/material/properties/RawOreProperty.java new file mode 100644 index 00000000000..3fa808c7bd9 --- /dev/null +++ b/src/main/java/gregtech/api/unification/material/properties/RawOreProperty.java @@ -0,0 +1,193 @@ +package gregtech.api.unification.material.properties; + +import gregtech.api.unification.material.Material; + +import net.minecraft.util.math.MathHelper; + +import org.apache.commons.lang3.tuple.Pair; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +public class RawOreProperty implements IMaterialProperty { + + /** + * List of Ore byproducts. + *

+ * Default: none, meaning only this property's Material. + */ + // @ZenProperty + private final List oreByProducts = new ArrayList<>(); + + /** + * Crushed Ore output amount multiplier during Maceration. + *

+ * Default: 1 (no multiplier). + */ + // @ZenProperty + private int oreMultiplier; + + /** + * Byproducts output amount multiplier during Maceration. + *

+ * Default: 1 (no multiplier). + */ + // @ZenProperty + private int byProductMultiplier; + + /** + * Material to which smelting of this Ore will result. + *

+ * Material will have a Dust Property. + * Default: none. + */ + // @ZenProperty + @Nullable + private Material directSmeltResult; + + /** + * Material in which this Ore should be washed to give additional output. + *

+ * Material will have a Fluid Property. + * Default: none. + */ + // @ZenProperty + @Nullable + private Material washedIn; + + /** + * The amount of Material that the ore should be washed in + * in the Chemical Bath. + *

+ * Default 100 mb + */ + private int washedAmount = 100; + + /** + * During Electromagnetic Separation, this Ore will be separated + * into this Material and the Material specified by this field. + * Limit 2 Materials + *

+ * Material will have a Dust Property. + * Default: none. + */ + // @ZenProperty + private final List separatedInto = new ArrayList<>(); + + public RawOreProperty(int oreMultiplier, int byProductMultiplier) { + this.oreMultiplier = oreMultiplier; + this.byProductMultiplier = byProductMultiplier; + } + + /** + * Default values constructor. + */ + public RawOreProperty() { + this(1, 1); + } + + public void setOreMultiplier(int multiplier) { + this.oreMultiplier = multiplier; + } + + public int getOreMultiplier() { + return this.oreMultiplier; + } + + public void setByProductMultiplier(int multiplier) { + this.byProductMultiplier = multiplier; + } + + public int getByProductMultiplier() { + return this.byProductMultiplier; + } + + public void setDirectSmeltResult(@Nullable Material m) { + this.directSmeltResult = m; + } + + @Nullable + public Material getDirectSmeltResult() { + return this.directSmeltResult; + } + + public void setWashedIn(@Nullable Material m) { + this.washedIn = m; + } + + public void setWashedIn(@Nullable Material m, int washedAmount) { + this.washedIn = m; + this.washedAmount = washedAmount; + } + + public Pair getWashedIn() { + return Pair.of(this.washedIn, this.washedAmount); + } + + public void setSeparatedInto(Material... materials) { + this.separatedInto.addAll(Arrays.asList(materials)); + } + + @Nullable + public List getSeparatedInto() { + return this.separatedInto; + } + + /** + * Set the ore byproducts for this property + * + * @param materials the materials to use as byproducts + */ + public void setOreByProducts(@NotNull Material... materials) { + setOreByProducts(Arrays.asList(materials)); + } + + /** + * Set the ore byproducts for this property + * + * @param materials the materials to use as byproducts + */ + public void setOreByProducts(@NotNull Collection materials) { + this.oreByProducts.clear(); + this.oreByProducts.addAll(materials); + } + + /** + * Add ore byproducts to this property + * + * @param materials the materials to add as byproducts + */ + public void addOreByProducts(@NotNull Material... materials) { + this.oreByProducts.addAll(Arrays.asList(materials)); + } + + public List getOreByProducts() { + return this.oreByProducts; + } + + @Nullable + public final Material getOreByProduct(int index) { + if (this.oreByProducts.isEmpty()) return null; + return this.oreByProducts.get(MathHelper.clamp(index, 0, this.oreByProducts.size() - 1)); + } + + @NotNull + public final Material getOreByProduct(int index, @NotNull Material fallback) { + Material material = getOreByProduct(index); + return material != null ? material : fallback; + } + + @Override + public void verifyProperty(MaterialProperties properties) { + properties.ensureSet(PropertyKey.DUST, true); + + if (directSmeltResult != null) directSmeltResult.getProperties().ensureSet(PropertyKey.DUST, true); + if (washedIn != null) washedIn.getProperties().ensureSet(PropertyKey.FLUID, true); + separatedInto.forEach(m -> m.getProperties().ensureSet(PropertyKey.DUST, true)); + oreByProducts.forEach(m -> m.getProperties().ensureSet(PropertyKey.DUST, true)); + } +} diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java index ad05ae197ae..e02794e452a 100644 --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -139,6 +139,7 @@ public class OrePrefix { mat -> Collections.singletonList(I18n.format("metaitem.dust.tooltip.purify"))); public static final OrePrefix dust = new OrePrefix("dust", M, null, MaterialIconType.dust, ENABLE_UNIFICATION, hasDustProperty); + public static final OrePrefix rawOre = new OrePrefix("oreRaw", M, null, MaterialIconType.rawOre, ENABLE_UNIFICATION, hasRawOreProperty); // A Nugget. Introduced by Eloraam public static final OrePrefix nugget = new OrePrefix("nugget", M / 9, null, MaterialIconType.nugget, @@ -341,6 +342,7 @@ public static class Conditions { public static final Predicate hasOreProperty = mat -> mat.hasProperty(PropertyKey.ORE); public static final Predicate hasGemProperty = mat -> mat.hasProperty(PropertyKey.GEM); public static final Predicate hasDustProperty = mat -> mat.hasProperty(PropertyKey.DUST); + public static final Predicate hasRawOreProperty = mat -> mat.hasProperty(PropertyKey.RAW_ORE); public static final Predicate hasIngotProperty = mat -> mat.hasProperty(PropertyKey.INGOT); public static final Predicate hasBlastProperty = mat -> mat.hasProperty(PropertyKey.BLAST); public static final Predicate hasRotorProperty = mat -> mat.hasProperty(PropertyKey.ROTOR); diff --git a/src/main/java/gregtech/common/CommonProxy.java b/src/main/java/gregtech/common/CommonProxy.java index 81d4c20a828..14ef510e216 100644 --- a/src/main/java/gregtech/common/CommonProxy.java +++ b/src/main/java/gregtech/common/CommonProxy.java @@ -33,6 +33,7 @@ import gregtech.common.blocks.MetaBlocks; import gregtech.common.blocks.OreItemBlock; import gregtech.common.blocks.StoneVariantBlock; +import gregtech.api.util.Mods; import gregtech.common.items.MetaItems; import gregtech.common.items.ToolItems; import gregtech.common.pipelike.cable.BlockCable; @@ -47,6 +48,7 @@ import gregtech.common.pipelike.optical.ItemBlockOpticalPipe; import gregtech.datafix.GTDataFixers; import gregtech.integration.groovy.GroovyScriptModule; +import gregtech.integration.jei.basic.OreByProduct; import gregtech.loaders.MaterialInfoLoader; import gregtech.loaders.OreDictionaryLoader; import gregtech.loaders.recipe.CraftingComponent; @@ -254,7 +256,12 @@ public static void registerItems(RegistryEvent.Register event) { for (IGTTool tool : ToolItems.getAllTools()) { registry.register(tool.get()); } - + + if (Mods.JustEnoughItems.isModLoaded()) + { + OreByProduct.addOreByProductPrefix(OrePrefix.rawOre); + } + GTRecipeManager.preLoad(); for (MTERegistry r : GregTechAPI.mteManager.getRegistries()) { diff --git a/src/main/java/gregtech/common/blocks/BlockOre.java b/src/main/java/gregtech/common/blocks/BlockOre.java index db69901b8ff..b7bd3c8faf2 100644 --- a/src/main/java/gregtech/common/blocks/BlockOre.java +++ b/src/main/java/gregtech/common/blocks/BlockOre.java @@ -1,9 +1,16 @@ package gregtech.common.blocks; +<<<<<<< HEAD +======= +import gregtech.api.GTValues; +import gregtech.api.GregTechAPI; +>>>>>>> 7bed7c622 (Raw Ores implementation) import gregtech.api.items.toolitem.ToolClasses; +import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.info.MaterialFlags; import gregtech.api.unification.material.properties.PropertyKey; +import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.ore.StoneType; import gregtech.api.unification.ore.StoneTypes; import gregtech.api.util.GTUtility; @@ -28,6 +35,7 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; @@ -96,6 +104,26 @@ public Item getItemDropped(@NotNull IBlockState state, @NotNull Random rand, int IBlockState stoneOre = OreConfigUtils.getOreForMaterial(this.material).get(StoneTypes.STONE); return Item.getItemFromBlock(stoneOre.getBlock()); } + + @Override + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) + { + if(fortune > 0) + { + int i = GTValues.RNG.nextInt((fortune + 2) - 1); + + if (i < 0) + { + i = 0; + } + + drops.add(OreDictUnifier.get(OrePrefix.rawOre, material, i + 1)); + } + else + { + drops.add(OreDictUnifier.get(OrePrefix.rawOre, material, 1)); + } + } @Override public int damageDropped(@NotNull IBlockState state) { diff --git a/src/main/java/gregtech/common/items/MetaItems.java b/src/main/java/gregtech/common/items/MetaItems.java index 23c49bb279f..33ce91412a2 100644 --- a/src/main/java/gregtech/common/items/MetaItems.java +++ b/src/main/java/gregtech/common/items/MetaItems.java @@ -581,6 +581,7 @@ private MetaItems() {} orePrefixes.add(OrePrefix.dustTiny); orePrefixes.add(OrePrefix.dustImpure); orePrefixes.add(OrePrefix.dustPure); + orePrefixes.add(OrePrefix.rawOre); orePrefixes.add(OrePrefix.crushed); orePrefixes.add(OrePrefix.crushedPurified); orePrefixes.add(OrePrefix.crushedCentrifuged); diff --git a/src/main/java/gregtech/loaders/recipe/handlers/OreRecipeHandler.java b/src/main/java/gregtech/loaders/recipe/handlers/OreRecipeHandler.java index 39db751beae..5eab94ced2a 100644 --- a/src/main/java/gregtech/loaders/recipe/handlers/OreRecipeHandler.java +++ b/src/main/java/gregtech/loaders/recipe/handlers/OreRecipeHandler.java @@ -45,6 +45,8 @@ public static void register() { OrePrefix.oreRedSand.addProcessingHandler(PropertyKey.ORE, OreRecipeHandler::processOre); } + OrePrefix.rawOre.addProcessingHandler(PropertyKey.ORE, OreRecipeHandler::processOre); + OrePrefix.crushed.addProcessingHandler(PropertyKey.ORE, OreRecipeHandler::processCrushedOre); OrePrefix.crushedPurified.addProcessingHandler(PropertyKey.ORE, OreRecipeHandler::processCrushedPurified); OrePrefix.crushedCentrifuged.addProcessingHandler(PropertyKey.ORE, OreRecipeHandler::processCrushedCentrifuged); diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 3429aad9618..b86fbdc4640 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -1480,6 +1480,7 @@ item.material.oreprefix.dustSmall=Small Pile of %s Dust item.material.oreprefix.dustImpure=Impure Pile of %s Dust item.material.oreprefix.dustPure=Purified Pile of %s Dust item.material.oreprefix.dust=%s Dust +item.material.oreprefix.oreRaw=Raw %s Ore item.material.oreprefix.nugget=%s Nugget item.material.oreprefix.plateDense=Dense %s Plate item.material.oreprefix.plateDouble=Double %s Plate diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/diamond/raw_ore.json b/src/main/resources/assets/gregtech/models/item/material_sets/diamond/raw_ore.json new file mode 100644 index 00000000000..6bf3f19d233 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/diamond/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/diamond/raw_ore" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/dull/raw_ore.json b/src/main/resources/assets/gregtech/models/item/material_sets/dull/raw_ore.json new file mode 100644 index 00000000000..b2c7d531414 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/dull/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/dull/raw_ore" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/fine/raw_ore.json b/src/main/resources/assets/gregtech/models/item/material_sets/fine/raw_ore.json new file mode 100644 index 00000000000..6e8f4b0e950 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/fine/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/fine/raw_ore" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/metallic/raw_ore.json b/src/main/resources/assets/gregtech/models/item/material_sets/metallic/raw_ore.json new file mode 100644 index 00000000000..7cd35be96b5 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/metallic/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/metallic/raw_ore" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/shiny/raw_ore.json b/src/main/resources/assets/gregtech/models/item/material_sets/shiny/raw_ore.json new file mode 100644 index 00000000000..69bf51364f3 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/material_sets/shiny/raw_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/material_sets/shiny/raw_ore" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/diamond/raw_ore.png b/src/main/resources/assets/gregtech/textures/items/material_sets/diamond/raw_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..cd85f7b1eee52fcb5c96e70b780c9d8cf5510a92 GIT binary patch literal 1742 zcmah~Yitx%6dsHafz(u~5ebRofC&wqo#*b(j=Rz=yQLdlDD6fdgxWhZcehh^9?VR; z+mc{xgp?mf#8+Zeh*2OWHb_DxfM{ZUM2nE1qW*y<2E~+=Q2jw9!85ZDNp_x9Pdf-sbGHvT7M2q*)3Ml?@xv1QB0T zwvoCWd!&L3x|yJ6PJK?1x|X0eg|lqdUW@zmj$sFP53kRu!`s!EMy+|eVNtv+1A~D* zM3#-B>B{8<6%fnt?3)>i3?Sb21hqNaNv^dVOo|~f#M0@qKFCu*LXvSu%gbG<_9_Xi z5>%h(*)qeFN~KUq2w6^n;bO5E!}1Kz(}1AeA=5);+H_Y`NUAg`?5d7#d%9(kJ}pwL z0WU#89+dU?)0Yy0$pAcmZ>)B!)AOe#V7L1oQSbxjT)g@_QrtRm4|G$zoZ5EW=e&GU3j z5)>qfktm9y8c)V_J!Gob=KMkrRJq-93IxZr`1U?$!B{n9ooKQtP zhaDGs%O~U5kRVc|ue=P&gM`R$J8%uQB(HTa@+>E3S;Yk9hb4WV%DXHa4h?xIg**&g zEHB7xROZAS$IBus^O4moSZZKP)AK|B2MvxA3BP!yt{u7y(TD2h>H+D-JLZ_G#-dIJ zy)GlQvIQ3nVvVXA)jnhvFbo6e!wO8lN3A8OB_~K4Enp!N~%s2I4^51>%sas`Y5DAxnMO7aIhk*(iNSAc-QGIs1q+{$ZcHw>Wbz z87jCrLn7d)SYZOe3jAtA&0p0ABQ`+*2gY8wVXOzn?<1L1GAC{LaR1r8FSR!A-udp! z$@8mH7q0gS$mc96XX7a{&yRtF)@Xdoq#-}&^Gr?cFq0Z9jji;wK z9{K1m=Qf(1KRO$aX7+#UF5UC>?CC$^=U(VKdh568%em1fPEP$Kp8d=n{btAOzl>jd zn3y@%;vTs2>vW6S-;^F7zWnc*2{C(UX6M#~-9Sv7I5BhT-~SWEwkmX zzCU)b zUq0X5a1?F3IJN4F(8x2X5pv(jE58%39Z$>mHL3f0KDf|6b#Y=x%cIRdw_QK8`>i*A h+HXHD`US8$hV(4-F!350} z5zVRrg3bjAJclGUxc%0Zw$v1ydQ084ENEWtf*J8U3v8BT&Qf3Qa=nz_@BGD220VPH ztL;Ar%5`L>KiuNs=VPh!Y3&@p!p9X{E`GkDp%pVeTlAG{HN4xY&Qlm0t`jWcdO-5q zm&dcUk8`|KGb%a}CGw3a$|>jewzdtq(z+)vD_vw!I_)YT(0Fco>dM0ZCss1NtDm*( zuWmw&&hwb_?k!uVovZYA5nixa&afq*c-QF+mAj5#bRYbkmU{EC)5NVEd#4>detgRB g)yp2uH+aTc{Bgpnc2=2appO|mUHx3vIVCg!0JPGE2><{9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/dull/raw_ore.png b/src/main/resources/assets/gregtech/textures/items/material_sets/dull/raw_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..57cb47bbf72b5ff279dbe4aacf073be095766b5e GIT binary patch literal 4842 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore.png b/src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2caa917ef7269f7799c92e678af5b315459772 GIT binary patch literal 4869 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore_secondary.png b/src/main/resources/assets/gregtech/textures/items/material_sets/fine/raw_ore_secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..919e81f2f045eddec3ba25b9c94cbeeb23f179ce GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DpT>jv*HQYbW02Z8qR(alYE=!Jf!Hp*F)_vqkQ;EM4Y!zzg)tcZoAG~6r>6m<7Q;rZEltf)9jQ@DtZz4{ez9HR zxk^&wL$Q^M-Tbf_=NM`iv7TW%7?^Od@#Nmn4=(q2h~IRaoLV0#^ux<=g&vF6Ch@PW g?>zpnik+@3q*oWA)QppO|mUHx3vIVCg!0GpGCz5oCK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/metallic/raw_ore.png b/src/main/resources/assets/gregtech/textures/items/material_sets/metallic/raw_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..258bfe80df9f4bcc182520965f157274a91002dc GIT binary patch literal 4409 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_overlay.png b/src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf067c696bb8c5dd5a51802815a02f372e3b9cb GIT binary patch literal 4397 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_secondary.png b/src/main/resources/assets/gregtech/textures/items/material_sets/shiny/raw_ore_secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..54f2df93def7b4db108b70ec2329dfe654eb8626 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DF5-jv*HQM<>1JJ*>dfl6kdNfP2es1NPn- z&52eF9flIhXBqp>C Date: Wed, 7 Oct 2026 20:04:05 -0700 Subject: [PATCH 2/2] fix minor hiccup --- src/main/java/gregtech/common/blocks/BlockOre.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/gregtech/common/blocks/BlockOre.java b/src/main/java/gregtech/common/blocks/BlockOre.java index b7bd3c8faf2..003146490ce 100644 --- a/src/main/java/gregtech/common/blocks/BlockOre.java +++ b/src/main/java/gregtech/common/blocks/BlockOre.java @@ -1,10 +1,6 @@ package gregtech.common.blocks; -<<<<<<< HEAD -======= import gregtech.api.GTValues; -import gregtech.api.GregTechAPI; ->>>>>>> 7bed7c622 (Raw Ores implementation) import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.Material;