aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorglowredman <35727266+glowredman@users.noreply.github.com>2022-02-10 21:56:38 +0100
committerGitHub <noreply@github.com>2022-02-10 21:56:38 +0100
commit34baef9a6a1b72c97eba20601ac09b23d9ae3754 (patch)
treeeb515d06c798ae5277909b85718cfb8b2bf56fb8 /src/main/java/gregtech/common
parentb87977e7f636f58ea6366868abddcf0993be01fd (diff)
downloadGT5-Unofficial-34baef9a6a1b72c97eba20601ac09b23d9ae3754.tar.gz
GT5-Unofficial-34baef9a6a1b72c97eba20601ac09b23d9ae3754.tar.bz2
GT5-Unofficial-34baef9a6a1b72c97eba20601ac09b23d9ae3754.zip
Fix Ore Particles (#926)
* Fix ore particles * simplify getIcon methods * Fix spacing, fix accidental renaming of args
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores.java24
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java27
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java6
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java6
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java6
-rw-r--r--src/main/java/gregtech/common/render/GT_Renderer_Block.java38
6 files changed, 102 insertions, 5 deletions
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java
index c3f53a7bc5..2f06a7c8c5 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores.java
@@ -16,6 +16,7 @@ import static gregtech.api.enums.Textures.BlockIcons.BASALT_STONE;
import static gregtech.api.enums.Textures.BlockIcons.GRANITE_BLACK_STONE;
import static gregtech.api.enums.Textures.BlockIcons.GRANITE_RED_STONE;
import static gregtech.api.enums.Textures.BlockIcons.MARBLE_STONE;
+import net.minecraft.util.IIcon;
public class GT_Block_Ores extends GT_Block_Ores_Abstract {
public GT_Block_Ores() {
@@ -33,6 +34,29 @@ public class GT_Block_Ores extends GT_Block_Ores_Abstract {
}
@Override
+ public IIcon getIcon(int side, int meta) {
+ int index = ((meta / 1000) % 16);
+ switch (index) {
+ case 0:
+ return Blocks.stone.getIcon(side, 0);
+ case 1:
+ return Blocks.netherrack.getIcon(side, 0);
+ case 2:
+ return Blocks.end_stone.getIcon(side, 0);
+ case 3:
+ return GRANITE_BLACK_STONE.getIcon();
+ case 4:
+ return GRANITE_RED_STONE.getIcon();
+ case 5:
+ return MARBLE_STONE.getIcon();
+ case 6:
+ return BASALT_STONE.getIcon();
+ default:
+ return Blocks.stone.getIcon(side, 0);
+ }
+ }
+
+ @Override
public int getBaseBlockHarvestLevel(int aMeta) {
switch (aMeta) {
case 3:
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
index d862e5a555..908cca472f 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
@@ -17,6 +17,7 @@ import gregtech.common.render.GT_Renderer_Block;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
+import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
@@ -27,6 +28,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
+import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -37,12 +39,12 @@ import java.util.List;
import java.util.Set;
public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements ITileEntityProvider {
- public static ThreadLocal<GT_TileEntity_Ores> mTemporaryTileEntity = new ThreadLocal();
+ public static ThreadLocal<GT_TileEntity_Ores> mTemporaryTileEntity = new ThreadLocal<>();
public static boolean FUCKING_LOCK = false;
public static boolean tHideOres;
private final String aTextName = ".name";
private final String aTextSmall = "Small ";
- public static Set aBlockedOres = new HashSet<Materials>();
+ public static Set<Materials> aBlockedOres = new HashSet<Materials>();
protected GT_Block_Ores_Abstract(String aUnlocalizedName, int aOreMetaCount, boolean aHideFirstMeta, Material aMaterial) {
super(GT_Item_Ores.class, aUnlocalizedName, aMaterial);
@@ -104,7 +106,7 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
}
public String getLocalizedNameFormat(Materials aMaterial) {
- switch (aMaterial.mName) {
+ switch (aMaterial.mName) {
case "InfusedAir":
case "InfusedDull":
case "InfusedEarth":
@@ -129,7 +131,7 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
return "%material";
default:
return "%material" + OrePrefixes.ore.mLocalizedMaterialPost;
- }
+ }
}
public String getLocalizedName(Materials aMaterial) {
@@ -249,6 +251,20 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister aIconRegister) {
}
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean addHitEffects(World worldObj, MovingObjectPosition target, EffectRenderer effectRenderer) {
+ GT_Renderer_Block.addHitEffects(effectRenderer, this, worldObj, target.blockX, target.blockY, target.blockZ, target.sideHit);
+ return true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean addDestroyEffects(World world, int x, int y, int z, int meta, EffectRenderer effectRenderer) {
+ GT_Renderer_Block.addDestroyEffects(effectRenderer, this, world, x, y, z);
+ return true;
+ }
@Override
public int getDamageValue(World aWorld, int aX, int aY, int aZ) {
@@ -283,7 +299,7 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
if ((tTileEntity instanceof GT_TileEntity_Ores)) {
return ((GT_TileEntity_Ores) tTileEntity).getDrops(getDroppedBlock(), aFortune);
}
- return mTemporaryTileEntity.get() == null ? new ArrayList() : ((GT_TileEntity_Ores) mTemporaryTileEntity.get()).getDrops(getDroppedBlock(), aFortune);
+ return mTemporaryTileEntity.get() == null ? new ArrayList<>() : ((GT_TileEntity_Ores) mTemporaryTileEntity.get()).getDrops(getDroppedBlock(), aFortune);
}
@Override
@@ -293,6 +309,7 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
public abstract ITexture[] getTextureSet(); //Must have 16 entries.
+ @SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void getSubBlocks(Item aItem, CreativeTabs aTab, List aList) {
for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) {
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java
index 6749f8d136..f749b8ac5b 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java
@@ -9,6 +9,7 @@ import gregtech.api.render.TextureFactory;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
+import net.minecraft.util.IIcon;
public class GT_Block_Ores_UB1 extends GT_Block_Ores_Abstract {
Block aUBBlock = GameRegistry.findBlock("UndergroundBiomes", "igneousStone");
@@ -27,6 +28,11 @@ public class GT_Block_Ores_UB1 extends GT_Block_Ores_Abstract {
public OrePrefixes[] getProcessingPrefix() { //Must have 8 entries.
return new OrePrefixes[]{OrePrefixes.oreRedgranite, OrePrefixes.oreBlackgranite, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.oreBasalt, OrePrefixes.ore, OrePrefixes.ore};
}
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return aUBBlock.getIcon(side, (meta / 1000) % 8);
+ }
@Override
public int getBaseBlockHarvestLevel(int aMeta) {
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java
index 5d78ab0aa3..a1e0f69637 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java
@@ -9,6 +9,7 @@ import gregtech.api.render.TextureFactory;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
+import net.minecraft.util.IIcon;
public class GT_Block_Ores_UB2 extends GT_Block_Ores_Abstract {
Block aUBBlock = GameRegistry.findBlock("UndergroundBiomes", "metamorphicStone");
@@ -27,6 +28,11 @@ public class GT_Block_Ores_UB2 extends GT_Block_Ores_Abstract {
public OrePrefixes[] getProcessingPrefix() { //Must have 8 entries; an entry can be null to disable automatic recipes.
return new OrePrefixes[]{OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.oreMarble, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore};
}
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return aUBBlock.getIcon(side, (meta / 1000) % 8);
+ }
@Override
public int getBaseBlockHarvestLevel(int aMeta) {
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java
index e4111af1c5..280b6450df 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java
@@ -9,6 +9,7 @@ import gregtech.api.render.TextureFactory;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
+import net.minecraft.util.IIcon;
public class GT_Block_Ores_UB3 extends GT_Block_Ores_Abstract {
Block aUBBlock = GameRegistry.findBlock("UndergroundBiomes", "sedimentaryStone");
@@ -27,6 +28,11 @@ public class GT_Block_Ores_UB3 extends GT_Block_Ores_Abstract {
public OrePrefixes[] getProcessingPrefix() { //Must have 8 entries; an entry can be null to disable automatic recipes.
return new OrePrefixes[]{OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore};
}
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return aUBBlock.getIcon(side, (meta / 1000) % 8);
+ }
@Override
public int getBaseBlockHarvestLevel(int aMeta) {
diff --git a/src/main/java/gregtech/common/render/GT_Renderer_Block.java b/src/main/java/gregtech/common/render/GT_Renderer_Block.java
index eb2b68ac57..311da428f8 100644
--- a/src/main/java/gregtech/common/render/GT_Renderer_Block.java
+++ b/src/main/java/gregtech/common/render/GT_Renderer_Block.java
@@ -9,15 +9,20 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.interfaces.tileentity.IPipeRenderedTileEntity;
import gregtech.api.interfaces.tileentity.ITexturedTileEntity;
+import gregtech.api.objects.XSTR;
import gregtech.common.blocks.GT_Block_Machines;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.particle.EffectRenderer;
+import net.minecraft.client.particle.EntityDiggingFX;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
import org.lwjgl.opengl.GL11;
import static gregtech.api.interfaces.metatileentity.IConnectable.CONNECTED_DOWN;
@@ -447,6 +452,39 @@ public class GT_Renderer_Block implements ISimpleBlockRenderingHandler {
return true;
}
+
+ public static void addHitEffects(EffectRenderer effectRenderer, Block block, World world, int x, int y, int z, int side) {
+ double rX = x + XSTR.XSTR_INSTANCE.nextDouble() * 0.8 + 0.1;
+ double rY = y + XSTR.XSTR_INSTANCE.nextDouble() * 0.8 + 0.1;
+ double rZ = z + XSTR.XSTR_INSTANCE.nextDouble() * 0.8 + 0.1;
+ if (side == 0) {
+ rY = y - 0.1;
+ } else if (side == 1) {
+ rY = y + 1.1;
+ } else if (side == 2) {
+ rZ = z - 0.1;
+ } else if (side == 3) {
+ rZ = z + 1.1;
+ } else if (side == 4) {
+ rX = x - 0.1;
+ } else if (side == 5) {
+ rX = x + 1.1;
+ }
+ effectRenderer.addEffect((new EntityDiggingFX(world, rX, rY, rZ, 0.0, 0.0, 0.0, block, block.getDamageValue(world, x, y, z), side)).applyColourMultiplier(x, y, z).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F));
+ }
+
+ public static void addDestroyEffects(EffectRenderer effectRenderer, Block block, World world, int x, int y, int z) {
+ for (int iX = 0; iX < 4; ++iX) {
+ for (int iY = 0; iY < 4; ++iY) {
+ for (int iZ = 0; iZ < 4; ++iZ) {
+ double bX = x + (iX + 0.5) / 4.0;
+ double bY = y + (iY + 0.5) / 4.0;
+ double bZ = z + (iZ + 0.5) / 4.0;
+ effectRenderer.addEffect((new EntityDiggingFX(world, bX, bY, bZ, bX - x - 0.5, bY - y - 0.5, bZ - z - 0.5, block, block.getDamageValue(world, x, y, z))).applyColourMultiplier(x, y, z));
+ }
+ }
+ }
+ }
@Override
public void renderInventoryBlock(Block aBlock, int aMeta, int aModelID, RenderBlocks aRenderer) {